diff --git a/consensus/polybft/contractsapi/gen_sc_data.go b/consensus/polybft/contractsapi/gen_sc_data.go index 1145521ff9..2c1d8fbdf1 100644 --- a/consensus/polybft/contractsapi/gen_sc_data.go +++ b/consensus/polybft/contractsapi/gen_sc_data.go @@ -4,18 +4,18 @@ package contractsapi var NativeERC20Artifact string = `{"_format":"hh-sol-artifact-1","contractName":"NativeERC20","sourceName":"contracts/blade/NativeERC20.sol","abi":[{"inputs":[{"internalType":"string","name":"only","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"predicate_","type":"address"},{"internalType":"address","name":"rootToken_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"uint256","name":"tokenSupply_","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rootToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b506111f3806100206000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806351351d53116100c357806395d89b411161007c57806395d89b411461029a5780639dc29fac146102a2578063a457c2d7146102b5578063a9059cbb146102c8578063dd62ed3e146102db578063e6198705146102ee57600080fd5b806351351d531461023c57806355b01e4d1461024a5780635ea5df791461025857806370a0823114610261578063740b08dc1461027c578063947287cf1461029157600080fd5b806323b872dd1161011557806323b872dd146101dc578063284017f5146101ef578063313ce567146101f8578063395093511461020d5780633b878c221461022057806340c10f191461022957600080fd5b806306fdde031461015257806307b3e25214610170578063095ea7b31461019657806318160ddd146101b95780631f2d0065146101cb575b600080fd5b61015a6102ff565b6040516101679190610d24565b60405180910390f35b61017e6004600360981b0181565b6040516001600160a01b039091168152602001610167565b6101a96101a4366004610d73565b610391565b6040519015158152602001610167565b6034545b604051908152602001610167565b6036546001600160a01b031661017e565b6101a96101ea366004610d9d565b6103ab565b61017e61202081565b60395460405160ff9091168152602001610167565b6101a961021b366004610d73565b6103cf565b61017e61101081565b6101a9610237366004610d73565b6103f1565b61017e6002600160a01b0381565b61017e6004600160991b0181565b6101bd61138881565b6101bd61026f366004610dd9565b6001600160a01b03163190565b61028f61028a366004610e44565b61043a565b005b6101bd61520881565b61015a6105ef565b6101a96102b0366004610d73565b6105fe565b6101a96102c3366004610d73565b610635565b6101a96102d6366004610d73565b6106b0565b6101bd6102e9366004610ef8565b6106be565b6035546001600160a01b031661017e565b60606037805461030e90610f2b565b80601f016020809104026020016040519081016040528092919081815260200182805461033a90610f2b565b80156103875780601f1061035c57610100808354040283529160200191610387565b820191906000526020600020905b81548152906001019060200180831161036a57829003601f168201915b5050505050905090565b60003361039f8185856106e9565b60019150505b92915050565b6000336103b985828561080d565b6103c4858585610887565b506001949350505050565b60003361039f8185856103e283836106be565b6103ec9190610f7b565b6106e9565b6035546000906001600160a01b031633146104275760405162461bcd60e51b815260040161041e90610f8e565b60405180910390fd5b6104318383610a4c565b50600192915050565b600054610100900460ff161580801561045a5750600054600160ff909116105b806104745750303b158015610474575060005460ff166001145b6104d75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161041e565b6000805460ff1916600117905580156104fa576000805461ff0019166101001790555b336002600160a01b031461053e5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b604482015260640161041e565b603580546001600160a01b03808c166001600160a01b03199283161790925560368054928b1692909116919091179055603761057b878983611037565b506038610589858783611037565b506039805460ff191660ff8516179055603482905580156105e4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b60606038805461030e90610f2b565b6035546000906001600160a01b0316331461062b5760405162461bcd60e51b815260040161041e90610f8e565b6104318383610ba6565b6000338161064382866106be565b9050838110156106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161041e565b6103c482868684036106e9565b60003361039f818585610887565b6001600160a01b03918216600090815260336020908152604080832093909416825291909152205490565b6001600160a01b03831661074b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161041e565b6001600160a01b0382166107ac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161041e565b6001600160a01b0383811660008181526033602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061081984846106be565b9050600019811461088157818110156108745760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161041e565b61088184848484036106e9565b50505050565b6001600160a01b0383166108eb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161041e565b6001600160a01b03821661094d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161041e565b6000806120206001600160a01b0316858585604051602001610971939291906110f8565b60408051601f198184030181529082905261098b9161111c565b6000604051808303816000865af19150503d80600081146109c8576040519150601f19603f3d011682016040523d82523d6000602084013e6109cd565b606091505b50915091508180156109ee5750808060200190518101906109ee9190611138565b610a0a5760405162461bcd60e51b815260040161041e9061115a565b836001600160a01b0316856001600160a01b031660008051602061119e83398151915285604051610a3d91815260200190565b60405180910390a35050505050565b6001600160a01b038216610aa25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161041e565b8060346000828254610ab49190610f7b565b9091555050604051600090819061202090610ad7908390879087906020016110f8565b60408051601f1981840301815290829052610af19161111c565b6000604051808303816000865af19150503d8060008114610b2e576040519150601f19603f3d011682016040523d82523d6000602084013e610b33565b606091505b5091509150818015610b54575080806020019051810190610b549190611138565b610b705760405162461bcd60e51b815260040161041e9061115a565b6040518381526001600160a01b0385169060009060008051602061119e833981519152906020015b60405180910390a350505050565b6001600160a01b038216610c065760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161041e565b8060346000828254610c18919061118a565b9091555050604051600090819061202090610c3b908690849087906020016110f8565b60408051601f1981840301815290829052610c559161111c565b6000604051808303816000865af19150503d8060008114610c92576040519150601f19603f3d011682016040523d82523d6000602084013e610c97565b606091505b5091509150818015610cb8575080806020019051810190610cb89190611138565b610cd45760405162461bcd60e51b815260040161041e9061115a565b6040518381526000906001600160a01b0386169060008051602061119e83398151915290602001610b98565b60005b83811015610d1b578181015183820152602001610d03565b50506000910152565b6020815260008251806020840152610d43816040850160208701610d00565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610d6e57600080fd5b919050565b60008060408385031215610d8657600080fd5b610d8f83610d57565b946020939093013593505050565b600080600060608486031215610db257600080fd5b610dbb84610d57565b9250610dc960208501610d57565b9150604084013590509250925092565b600060208284031215610deb57600080fd5b610df482610d57565b9392505050565b60008083601f840112610e0d57600080fd5b50813567ffffffffffffffff811115610e2557600080fd5b602083019150836020828501011115610e3d57600080fd5b9250929050565b60008060008060008060008060c0898b031215610e6057600080fd5b610e6989610d57565b9750610e7760208a01610d57565b9650604089013567ffffffffffffffff80821115610e9457600080fd5b610ea08c838d01610dfb565b909850965060608b0135915080821115610eb957600080fd5b50610ec68b828c01610dfb565b909550935050608089013560ff81168114610ee057600080fd5b8092505060a089013590509295985092959890939650565b60008060408385031215610f0b57600080fd5b610f1483610d57565b9150610f2260208401610d57565b90509250929050565b600181811c90821680610f3f57607f821691505b602082108103610f5f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103a5576103a5610f65565b60208082526024908201527f4e617469766545524332303a204f6e6c79207072656469636174652063616e2060408201526318d85b1b60e21b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561103257600081815260208120601f850160051c8101602086101561100f5750805b601f850160051c820191505b8181101561102e5782815560010161101b565b5050505b505050565b67ffffffffffffffff83111561104f5761104f610fd2565b6110638361105d8354610f2b565b83610fe8565b6000601f841160018114611097576000851561107f5750838201355b600019600387901b1c1916600186901b1783556110f1565b600083815260209020601f19861690835b828110156110c857868501358255602094850194600190920191016110a8565b50868210156110e55760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000825161112e818460208701610d00565b9190910192915050565b60006020828403121561114a57600080fd5b81518015158114610df457600080fd5b60208082526016908201527514149150d3d35412531157d0d0531317d1905253115160521b604082015260600190565b818103818111156103a5576103a5610f6556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203a945168f2c318ff4c3adf50a3688a2f31a5382d9a320c32c4ff797c5898c27264736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806351351d53116100c357806395d89b411161007c57806395d89b411461029a5780639dc29fac146102a2578063a457c2d7146102b5578063a9059cbb146102c8578063dd62ed3e146102db578063e6198705146102ee57600080fd5b806351351d531461023c57806355b01e4d1461024a5780635ea5df791461025857806370a0823114610261578063740b08dc1461027c578063947287cf1461029157600080fd5b806323b872dd1161011557806323b872dd146101dc578063284017f5146101ef578063313ce567146101f8578063395093511461020d5780633b878c221461022057806340c10f191461022957600080fd5b806306fdde031461015257806307b3e25214610170578063095ea7b31461019657806318160ddd146101b95780631f2d0065146101cb575b600080fd5b61015a6102ff565b6040516101679190610d24565b60405180910390f35b61017e6004600360981b0181565b6040516001600160a01b039091168152602001610167565b6101a96101a4366004610d73565b610391565b6040519015158152602001610167565b6034545b604051908152602001610167565b6036546001600160a01b031661017e565b6101a96101ea366004610d9d565b6103ab565b61017e61202081565b60395460405160ff9091168152602001610167565b6101a961021b366004610d73565b6103cf565b61017e61101081565b6101a9610237366004610d73565b6103f1565b61017e6002600160a01b0381565b61017e6004600160991b0181565b6101bd61138881565b6101bd61026f366004610dd9565b6001600160a01b03163190565b61028f61028a366004610e44565b61043a565b005b6101bd61520881565b61015a6105ef565b6101a96102b0366004610d73565b6105fe565b6101a96102c3366004610d73565b610635565b6101a96102d6366004610d73565b6106b0565b6101bd6102e9366004610ef8565b6106be565b6035546001600160a01b031661017e565b60606037805461030e90610f2b565b80601f016020809104026020016040519081016040528092919081815260200182805461033a90610f2b565b80156103875780601f1061035c57610100808354040283529160200191610387565b820191906000526020600020905b81548152906001019060200180831161036a57829003601f168201915b5050505050905090565b60003361039f8185856106e9565b60019150505b92915050565b6000336103b985828561080d565b6103c4858585610887565b506001949350505050565b60003361039f8185856103e283836106be565b6103ec9190610f7b565b6106e9565b6035546000906001600160a01b031633146104275760405162461bcd60e51b815260040161041e90610f8e565b60405180910390fd5b6104318383610a4c565b50600192915050565b600054610100900460ff161580801561045a5750600054600160ff909116105b806104745750303b158015610474575060005460ff166001145b6104d75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161041e565b6000805460ff1916600117905580156104fa576000805461ff0019166101001790555b336002600160a01b031461053e5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b604482015260640161041e565b603580546001600160a01b03808c166001600160a01b03199283161790925560368054928b1692909116919091179055603761057b878983611037565b506038610589858783611037565b506039805460ff191660ff8516179055603482905580156105e4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b60606038805461030e90610f2b565b6035546000906001600160a01b0316331461062b5760405162461bcd60e51b815260040161041e90610f8e565b6104318383610ba6565b6000338161064382866106be565b9050838110156106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161041e565b6103c482868684036106e9565b60003361039f818585610887565b6001600160a01b03918216600090815260336020908152604080832093909416825291909152205490565b6001600160a01b03831661074b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161041e565b6001600160a01b0382166107ac5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161041e565b6001600160a01b0383811660008181526033602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061081984846106be565b9050600019811461088157818110156108745760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161041e565b61088184848484036106e9565b50505050565b6001600160a01b0383166108eb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161041e565b6001600160a01b03821661094d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161041e565b6000806120206001600160a01b0316858585604051602001610971939291906110f8565b60408051601f198184030181529082905261098b9161111c565b6000604051808303816000865af19150503d80600081146109c8576040519150601f19603f3d011682016040523d82523d6000602084013e6109cd565b606091505b50915091508180156109ee5750808060200190518101906109ee9190611138565b610a0a5760405162461bcd60e51b815260040161041e9061115a565b836001600160a01b0316856001600160a01b031660008051602061119e83398151915285604051610a3d91815260200190565b60405180910390a35050505050565b6001600160a01b038216610aa25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161041e565b8060346000828254610ab49190610f7b565b9091555050604051600090819061202090610ad7908390879087906020016110f8565b60408051601f1981840301815290829052610af19161111c565b6000604051808303816000865af19150503d8060008114610b2e576040519150601f19603f3d011682016040523d82523d6000602084013e610b33565b606091505b5091509150818015610b54575080806020019051810190610b549190611138565b610b705760405162461bcd60e51b815260040161041e9061115a565b6040518381526001600160a01b0385169060009060008051602061119e833981519152906020015b60405180910390a350505050565b6001600160a01b038216610c065760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161041e565b8060346000828254610c18919061118a565b9091555050604051600090819061202090610c3b908690849087906020016110f8565b60408051601f1981840301815290829052610c559161111c565b6000604051808303816000865af19150503d8060008114610c92576040519150601f19603f3d011682016040523d82523d6000602084013e610c97565b606091505b5091509150818015610cb8575080806020019051810190610cb89190611138565b610cd45760405162461bcd60e51b815260040161041e9061115a565b6040518381526000906001600160a01b0386169060008051602061119e83398151915290602001610b98565b60005b83811015610d1b578181015183820152602001610d03565b50506000910152565b6020815260008251806020840152610d43816040850160208701610d00565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610d6e57600080fd5b919050565b60008060408385031215610d8657600080fd5b610d8f83610d57565b946020939093013593505050565b600080600060608486031215610db257600080fd5b610dbb84610d57565b9250610dc960208501610d57565b9150604084013590509250925092565b600060208284031215610deb57600080fd5b610df482610d57565b9392505050565b60008083601f840112610e0d57600080fd5b50813567ffffffffffffffff811115610e2557600080fd5b602083019150836020828501011115610e3d57600080fd5b9250929050565b60008060008060008060008060c0898b031215610e6057600080fd5b610e6989610d57565b9750610e7760208a01610d57565b9650604089013567ffffffffffffffff80821115610e9457600080fd5b610ea08c838d01610dfb565b909850965060608b0135915080821115610eb957600080fd5b50610ec68b828c01610dfb565b909550935050608089013560ff81168114610ee057600080fd5b8092505060a089013590509295985092959890939650565b60008060408385031215610f0b57600080fd5b610f1483610d57565b9150610f2260208401610d57565b90509250929050565b600181811c90821680610f3f57607f821691505b602082108103610f5f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103a5576103a5610f65565b60208082526024908201527f4e617469766545524332303a204f6e6c79207072656469636174652063616e2060408201526318d85b1b60e21b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561103257600081815260208120601f850160051c8101602086101561100f5750805b601f850160051c820191505b8181101561102e5782815560010161101b565b5050505b505050565b67ffffffffffffffff83111561104f5761104f610fd2565b6110638361105d8354610f2b565b83610fe8565b6000601f841160018114611097576000851561107f5750838201355b600019600387901b1c1916600186901b1783556110f1565b600083815260209020601f19861690835b828110156110c857868501358255602094850194600190920191016110a8565b50868210156110e55760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000825161112e818460208701610d00565b9190910192915050565b60006020828403121561114a57600080fd5b81518015158114610df457600080fd5b60208082526016908201527514149150d3d35412531157d0d0531317d1905253115160521b604082015260600190565b818103818111156103a5576103a5610f6556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203a945168f2c318ff4c3adf50a3688a2f31a5382d9a320c32c4ff797c5898c27264736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` var NativeERC20MintableArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"NativeERC20Mintable","sourceName":"contracts/blade/NativeERC20Mintable.sol","abi":[{"inputs":[{"internalType":"string","name":"only","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"predicate_","type":"address"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"rootToken_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"uint256","name":"tokenSupply_","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b5061001a3361001f565b61008d565b603480546001600160a01b03191690556100388161003b565b50565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6114e18061009c6000396000f3fe608060405234801561001057600080fd5b50600436106101845760003560e01c80636091636b116100d95780639dc29fac116100875780639dc29fac146102fa578063a457c2d71461030d578063a9059cbb14610320578063dd62ed3e14610333578063e30c397814610346578063e619870514610357578063f2fde38b1461036857600080fd5b80636091636b1461029857806370a08231146102ad578063715018a6146102c857806379ba5097146102d05780638da5cb5b146102d8578063947287cf146102e957806395d89b41146102f257600080fd5b8063313ce56711610136578063313ce5671461022f57806339509351146102445780633b878c221461025757806340c10f191461026057806351351d531461027357806355b01e4d146102815780635ea5df791461028f57600080fd5b806306fdde031461018957806307b3e252146101a7578063095ea7b3146101cd57806318160ddd146101f05780631f2d00651461020257806323b872dd14610213578063284017f514610226575b600080fd5b61019161037b565b60405161019e9190610ff9565b60405180910390f35b6101b56004600360981b0181565b6040516001600160a01b03909116815260200161019e565b6101e06101db366004611048565b61040d565b604051901515815260200161019e565b6036545b60405190815260200161019e565b6038546001600160a01b03166101b5565b6101e0610221366004611072565b610427565b6101b561202081565b603b5460405160ff909116815260200161019e565b6101e0610252366004611048565b61044b565b6101b561101081565b6101e061026e366004611048565b61046d565b6101b56002600160a01b0381565b6101b56004600160991b0181565b6101f461138881565b6102ab6102a63660046110f7565b6104cb565b005b6101f46102bb3660046111bb565b6001600160a01b03163190565b6102ab6106eb565b6102ab6106ff565b6033546001600160a01b03166101b5565b6101f461520881565b610191610779565b6101e0610308366004611048565b610788565b6101e061031b366004611048565b6107d4565b6101e061032e366004611048565b61084f565b6101f46103413660046111dd565b61085d565b6034546001600160a01b03166101b5565b6037546001600160a01b03166101b5565b6102ab6103763660046111bb565b610888565b60606039805461038a90611210565b80601f01602080910402602001604051908101604052809291908181526020018280546103b690611210565b80156104035780601f106103d857610100808354040283529160200191610403565b820191906000526020600020905b8154815290600101906020018083116103e657829003601f168201915b5050505050905090565b60003361041b8185856108f9565b60019150505b92915050565b600033610435858285610a1d565b610440858585610a97565b506001949350505050565b60003361041b81858561045e838361085d565b6104689190611260565b6108f9565b6037546000906001600160a01b031633148061049357506033546001600160a01b031633145b6104b85760405162461bcd60e51b81526004016104af90611273565b60405180910390fd5b6104c28383610c5c565b50600192915050565b600054610100900460ff16158080156104eb5750600054600160ff909116105b806105055750303b158015610505575060005460ff166001145b6105685760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104af565b6000805460ff19166001179055801561058b576000805461ff0019166101001790555b336002600160a01b03146105cf5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064016104af565b6001600160a01b0389166106305760405162461bcd60e51b815260206004820152602260248201527f4e617469766545524332303a20496e76616c6964206f776e6572206164647265604482015261737360f01b60648201526084016104af565b603780546001600160a01b03808d166001600160a01b03199283161790925560388054928b1692909116919091179055603961066d878983611325565b50603a61067b858783611325565b50603b805460ff191660ff8516179055603682905561069989610db6565b80156106df576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050565b6106f3610dcf565b6106fd6000610db6565b565b60345433906001600160a01b0316811461076d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104af565b61077681610db6565b50565b6060603a805461038a90611210565b6037546000906001600160a01b03163314806107ae57506033546001600160a01b031633145b6107ca5760405162461bcd60e51b81526004016104af90611273565b6104c28383610e29565b600033816107e2828661085d565b9050838110156108425760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104af565b61044082868684036108f9565b60003361041b818585610a97565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b610890610dcf565b603480546001600160a01b0383166001600160a01b031990911681179091556108c16033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6001600160a01b03831661095b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104af565b6001600160a01b0382166109bc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104af565b6001600160a01b0383811660008181526035602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610a29848461085d565b90506000198114610a915781811015610a845760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104af565b610a9184848484036108f9565b50505050565b6001600160a01b038316610afb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104af565b6001600160a01b038216610b5d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104af565b6000806120206001600160a01b0316858585604051602001610b81939291906113e6565b60408051601f1981840301815290829052610b9b9161140a565b6000604051808303816000865af19150503d8060008114610bd8576040519150601f19603f3d011682016040523d82523d6000602084013e610bdd565b606091505b5091509150818015610bfe575080806020019051810190610bfe9190611426565b610c1a5760405162461bcd60e51b81526004016104af90611448565b836001600160a01b0316856001600160a01b031660008051602061148c83398151915285604051610c4d91815260200190565b60405180910390a35050505050565b6001600160a01b038216610cb25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104af565b8060366000828254610cc49190611260565b9091555050604051600090819061202090610ce7908390879087906020016113e6565b60408051601f1981840301815290829052610d019161140a565b6000604051808303816000865af19150503d8060008114610d3e576040519150601f19603f3d011682016040523d82523d6000602084013e610d43565b606091505b5091509150818015610d64575080806020019051810190610d649190611426565b610d805760405162461bcd60e51b81526004016104af90611448565b6040518381526001600160a01b0385169060009060008051602061148c833981519152906020015b60405180910390a350505050565b603480546001600160a01b031916905561077681610f83565b6033546001600160a01b031633146106fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104af565b6001600160a01b038216610e895760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104af565b8060366000828254610e9b9190611478565b9091555050604051600090819061202090610ebe908690849087906020016113e6565b60408051601f1981840301815290829052610ed89161140a565b6000604051808303816000865af19150503d8060008114610f15576040519150601f19603f3d011682016040523d82523d6000602084013e610f1a565b606091505b5091509150818015610f3b575080806020019051810190610f3b9190611426565b610f575760405162461bcd60e51b81526004016104af90611448565b6040518381526000906001600160a01b0386169060008051602061148c83398151915290602001610da8565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60005b83811015610ff0578181015183820152602001610fd8565b50506000910152565b6020815260008251806020840152611018816040850160208701610fd5565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461104357600080fd5b919050565b6000806040838503121561105b57600080fd5b6110648361102c565b946020939093013593505050565b60008060006060848603121561108757600080fd5b6110908461102c565b925061109e6020850161102c565b9150604084013590509250925092565b60008083601f8401126110c057600080fd5b50813567ffffffffffffffff8111156110d857600080fd5b6020830191508360208285010111156110f057600080fd5b9250929050565b600080600080600080600080600060e08a8c03121561111557600080fd5b61111e8a61102c565b985061112c60208b0161102c565b975061113a60408b0161102c565b965060608a013567ffffffffffffffff8082111561115757600080fd5b6111638d838e016110ae565b909850965060808c013591508082111561117c57600080fd5b506111898c828d016110ae565b90955093505060a08a013560ff811681146111a357600080fd5b8092505060c08a013590509295985092959850929598565b6000602082840312156111cd57600080fd5b6111d68261102c565b9392505050565b600080604083850312156111f057600080fd5b6111f98361102c565b91506112076020840161102c565b90509250929050565b600181811c9082168061122457607f821691505b60208210810361124457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104215761042161124a565b6020808252602d908201527f4e617469766545524332303a204f6e6c7920707265646963617465206f72206f60408201526c1ddb995c8818d85b8818d85b1b609a1b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561132057600081815260208120601f850160051c810160208610156112fd5750805b601f850160051c820191505b8181101561131c57828155600101611309565b5050505b505050565b67ffffffffffffffff83111561133d5761133d6112c0565b6113518361134b8354611210565b836112d6565b6000601f841160018114611385576000851561136d5750838201355b600019600387901b1c1916600186901b1783556113df565b600083815260209020601f19861690835b828110156113b65786850135825560209485019460019092019101611396565b50868210156113d35760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000825161141c818460208701610fd5565b9190910192915050565b60006020828403121561143857600080fd5b815180151581146111d657600080fd5b60208082526016908201527514149150d3d35412531157d0d0531317d1905253115160521b604082015260600190565b818103818111156104215761042161124a56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ad10722c8133ddbaecec5b5f69de0f130a068e610576a2067f102244e1eae9c764736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106101845760003560e01c80636091636b116100d95780639dc29fac116100875780639dc29fac146102fa578063a457c2d71461030d578063a9059cbb14610320578063dd62ed3e14610333578063e30c397814610346578063e619870514610357578063f2fde38b1461036857600080fd5b80636091636b1461029857806370a08231146102ad578063715018a6146102c857806379ba5097146102d05780638da5cb5b146102d8578063947287cf146102e957806395d89b41146102f257600080fd5b8063313ce56711610136578063313ce5671461022f57806339509351146102445780633b878c221461025757806340c10f191461026057806351351d531461027357806355b01e4d146102815780635ea5df791461028f57600080fd5b806306fdde031461018957806307b3e252146101a7578063095ea7b3146101cd57806318160ddd146101f05780631f2d00651461020257806323b872dd14610213578063284017f514610226575b600080fd5b61019161037b565b60405161019e9190610ff9565b60405180910390f35b6101b56004600360981b0181565b6040516001600160a01b03909116815260200161019e565b6101e06101db366004611048565b61040d565b604051901515815260200161019e565b6036545b60405190815260200161019e565b6038546001600160a01b03166101b5565b6101e0610221366004611072565b610427565b6101b561202081565b603b5460405160ff909116815260200161019e565b6101e0610252366004611048565b61044b565b6101b561101081565b6101e061026e366004611048565b61046d565b6101b56002600160a01b0381565b6101b56004600160991b0181565b6101f461138881565b6102ab6102a63660046110f7565b6104cb565b005b6101f46102bb3660046111bb565b6001600160a01b03163190565b6102ab6106eb565b6102ab6106ff565b6033546001600160a01b03166101b5565b6101f461520881565b610191610779565b6101e0610308366004611048565b610788565b6101e061031b366004611048565b6107d4565b6101e061032e366004611048565b61084f565b6101f46103413660046111dd565b61085d565b6034546001600160a01b03166101b5565b6037546001600160a01b03166101b5565b6102ab6103763660046111bb565b610888565b60606039805461038a90611210565b80601f01602080910402602001604051908101604052809291908181526020018280546103b690611210565b80156104035780601f106103d857610100808354040283529160200191610403565b820191906000526020600020905b8154815290600101906020018083116103e657829003601f168201915b5050505050905090565b60003361041b8185856108f9565b60019150505b92915050565b600033610435858285610a1d565b610440858585610a97565b506001949350505050565b60003361041b81858561045e838361085d565b6104689190611260565b6108f9565b6037546000906001600160a01b031633148061049357506033546001600160a01b031633145b6104b85760405162461bcd60e51b81526004016104af90611273565b60405180910390fd5b6104c28383610c5c565b50600192915050565b600054610100900460ff16158080156104eb5750600054600160ff909116105b806105055750303b158015610505575060005460ff166001145b6105685760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104af565b6000805460ff19166001179055801561058b576000805461ff0019166101001790555b336002600160a01b03146105cf5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064016104af565b6001600160a01b0389166106305760405162461bcd60e51b815260206004820152602260248201527f4e617469766545524332303a20496e76616c6964206f776e6572206164647265604482015261737360f01b60648201526084016104af565b603780546001600160a01b03808d166001600160a01b03199283161790925560388054928b1692909116919091179055603961066d878983611325565b50603a61067b858783611325565b50603b805460ff191660ff8516179055603682905561069989610db6565b80156106df576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050565b6106f3610dcf565b6106fd6000610db6565b565b60345433906001600160a01b0316811461076d5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104af565b61077681610db6565b50565b6060603a805461038a90611210565b6037546000906001600160a01b03163314806107ae57506033546001600160a01b031633145b6107ca5760405162461bcd60e51b81526004016104af90611273565b6104c28383610e29565b600033816107e2828661085d565b9050838110156108425760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104af565b61044082868684036108f9565b60003361041b818585610a97565b6001600160a01b03918216600090815260356020908152604080832093909416825291909152205490565b610890610dcf565b603480546001600160a01b0383166001600160a01b031990911681179091556108c16033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6001600160a01b03831661095b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104af565b6001600160a01b0382166109bc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104af565b6001600160a01b0383811660008181526035602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610a29848461085d565b90506000198114610a915781811015610a845760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104af565b610a9184848484036108f9565b50505050565b6001600160a01b038316610afb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104af565b6001600160a01b038216610b5d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104af565b6000806120206001600160a01b0316858585604051602001610b81939291906113e6565b60408051601f1981840301815290829052610b9b9161140a565b6000604051808303816000865af19150503d8060008114610bd8576040519150601f19603f3d011682016040523d82523d6000602084013e610bdd565b606091505b5091509150818015610bfe575080806020019051810190610bfe9190611426565b610c1a5760405162461bcd60e51b81526004016104af90611448565b836001600160a01b0316856001600160a01b031660008051602061148c83398151915285604051610c4d91815260200190565b60405180910390a35050505050565b6001600160a01b038216610cb25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104af565b8060366000828254610cc49190611260565b9091555050604051600090819061202090610ce7908390879087906020016113e6565b60408051601f1981840301815290829052610d019161140a565b6000604051808303816000865af19150503d8060008114610d3e576040519150601f19603f3d011682016040523d82523d6000602084013e610d43565b606091505b5091509150818015610d64575080806020019051810190610d649190611426565b610d805760405162461bcd60e51b81526004016104af90611448565b6040518381526001600160a01b0385169060009060008051602061148c833981519152906020015b60405180910390a350505050565b603480546001600160a01b031916905561077681610f83565b6033546001600160a01b031633146106fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104af565b6001600160a01b038216610e895760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016104af565b8060366000828254610e9b9190611478565b9091555050604051600090819061202090610ebe908690849087906020016113e6565b60408051601f1981840301815290829052610ed89161140a565b6000604051808303816000865af19150503d8060008114610f15576040519150601f19603f3d011682016040523d82523d6000602084013e610f1a565b606091505b5091509150818015610f3b575080806020019051810190610f3b9190611426565b610f575760405162461bcd60e51b81526004016104af90611448565b6040518381526000906001600160a01b0386169060008051602061148c83398151915290602001610da8565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60005b83811015610ff0578181015183820152602001610fd8565b50506000910152565b6020815260008251806020840152611018816040850160208701610fd5565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461104357600080fd5b919050565b6000806040838503121561105b57600080fd5b6110648361102c565b946020939093013593505050565b60008060006060848603121561108757600080fd5b6110908461102c565b925061109e6020850161102c565b9150604084013590509250925092565b60008083601f8401126110c057600080fd5b50813567ffffffffffffffff8111156110d857600080fd5b6020830191508360208285010111156110f057600080fd5b9250929050565b600080600080600080600080600060e08a8c03121561111557600080fd5b61111e8a61102c565b985061112c60208b0161102c565b975061113a60408b0161102c565b965060608a013567ffffffffffffffff8082111561115757600080fd5b6111638d838e016110ae565b909850965060808c013591508082111561117c57600080fd5b506111898c828d016110ae565b90955093505060a08a013560ff811681146111a357600080fd5b8092505060c08a013590509295985092959850929598565b6000602082840312156111cd57600080fd5b6111d68261102c565b9392505050565b600080604083850312156111f057600080fd5b6111f98361102c565b91506112076020840161102c565b90509250929050565b600181811c9082168061122457607f821691505b60208210810361124457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156104215761042161124a565b6020808252602d908201527f4e617469766545524332303a204f6e6c7920707265646963617465206f72206f60408201526c1ddb995c8818d85b8818d85b1b609a1b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f82111561132057600081815260208120601f850160051c810160208610156112fd5750805b601f850160051c820191505b8181101561131c57828155600101611309565b5050505b505050565b67ffffffffffffffff83111561133d5761133d6112c0565b6113518361134b8354611210565b836112d6565b6000601f841160018114611385576000851561136d5750838201355b600019600387901b1c1916600186901b1783556113df565b600083815260209020601f19861690835b828110156113b65786850135825560209485019460019092019101611396565b50868210156113d35760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000825161141c818460208701610fd5565b9190910192915050565b60006020828403121561143857600080fd5b815180151581146111d657600080fd5b60208082526016908201527514149150d3d35412531157d0d0531317d1905253115160521b604082015260600190565b818103818111156104215761042161124a56feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220ad10722c8133ddbaecec5b5f69de0f130a068e610576a2067f102244e1eae9c764736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` var ChildERC20Artifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC20","sourceName":"contracts/blade/ChildERC20.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"rootToken_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"}],"name":"invalidateNext","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rootToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50611920806100206000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806340c10f19116100ad578063a457c2d711610071578063a457c2d71461028b578063a9059cbb1461029e578063dd62ed3e146102b1578063e6198705146102c4578063f6d2ee86146102d557600080fd5b806340c10f191461021f57806370a082311461023257806395d89b411461025b5780639b77ef11146102635780639dc29fac1461027857600080fd5b80631f2d0065116100f45780631f2d00651461018c57806323b872dd146101b15780632d0335ab146101c4578063313ce567146101ed578063395093511461020c57600080fd5b806306fdde0314610126578063095ea7b3146101445780630c53c51c1461016757806318160ddd1461017a575b600080fd5b61012e6102e8565b60405161013b9190611395565b60405180910390f35b6101576101523660046113cb565b61037a565b604051901515815260200161013b565b61012e61017536600461144f565b61039e565b60a0545b60405190815260200161013b565b60d1546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b6101576101bf3660046114c5565b610681565b61017e6101d2366004611501565b6001600160a01b031660009081526038602052604090205490565b60d154600160a01b900460ff1660405160ff909116815260200161013b565b61015761021a3660046113cb565b6106af565b61015761022d3660046113cb565b6106db565b61017e610240366004611501565b6001600160a01b03166000908152609e602052604090205490565b61012e61071b565b61027661027136600461151c565b61072a565b005b6101576102863660046113cb565b610751565b6101576102993660046113cb565b610788565b6101576102ac3660046113cb565b61080e565b61017e6102bf366004611535565b610826565b60d0546001600160a01b0316610199565b6102766102e3366004611568565b610851565b606060a180546102f7906115ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610323906115ec565b80156103705780601f1061034557610100808354040283529160200191610370565b820191906000526020600020905b81548152906001019060200180831161035357829003601f168201915b5050505050905090565b600080610385610ad1565b9050610392818585610ae0565b60019150505b92915050565b606060006103e187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610c0592505050565b90506001600160e01b031960003581169082160361046c5760405162461bcd60e51b815260206004820152603d60248201527f66756e6374696f6e5369676e61747572652063616e206e6f74206265206f662060448201527f657865637574654d6574615472616e73616374696f6e206d6574686f6400000060648201526084015b60405180910390fd5b604080516060810182526001600160a01b038a16600081815260386020908152848220548452808401929092528351601f8b0183900483028101830185528a815290938301918b908b9081908401838280828437600092019190915250505091525090506104dd8982888888610c20565b6105335760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b6064820152608401610463565b603860008a6001600160a01b03166001600160a01b031681526020019081526020016000206000815460010191905081905550600080306001600160a01b03168a8a8d60405160200161058893929190611626565b60408051601f19818403018152908290526105a29161164c565b6000604051808303816000865af19150503d80600081146105df576040519150601f19603f3d011682016040523d82523d6000602084013e6105e4565b606091505b5091509150816106365760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610463565b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8b338c8c60405161066b9493929190611668565b60405180910390a19a9950505050505050505050565b60008061068c610ad1565b9050610699858285610cfc565b6106a4858585610d76565b506001949350505050565b6000806106ba610ad1565b90506103928185856106cc8589610826565b6106d691906116b4565b610ae0565b60d0546000906001600160a01b031633146107085760405162461bcd60e51b8152600401610463906116d5565b6107128383610f0f565b50600192915050565b606060a280546102f7906115ec565b33600090815260386020526040812080548392906107499084906116b4565b909155505050565b60d0546000906001600160a01b0316331461077e5760405162461bcd60e51b8152600401610463906116d5565b6107128383610fbf565b600080610793610ad1565b905060006107a18286610826565b9050838110156108015760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610463565b6106a48286868403610ae0565b600080610819610ad1565b9050610392818585610d76565b6001600160a01b039182166000908152609f6020908152604080832093909416825291909152205490565b606b54610100900460ff16158080156108715750606b54600160ff909116105b8061088b5750303b15801561088b5750606b5460ff166001145b6108ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610463565b606b805460ff19166001179055801561091157606b805461ff0019166101001790555b6001600160a01b0387161580159061092857508415155b801561093357508215155b61097f5760405162461bcd60e51b815260206004820152601e60248201527f4368696c6445524332303a204241445f494e495449414c495a4154494f4e00006044820152606401610463565b60d1805460ff8416600160a01b026001600160a81b03199091166001600160a01b038a161717905560d080546001600160a01b03191633179055604080516020601f8801819004810282018101909252868152610a2a91889088908190840183828082843760009201919091525050604080516020601f8a0181900481028201810190925288815292508891508790819084018382808284376000920191909152506110de92505050565b610a8286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b6020820152915061110f9050565b8015610ac857606b805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6000610adb61117b565b905090565b6001600160a01b038316610b425760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610463565b6001600160a01b038216610ba35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610463565b6001600160a01b038381166000818152609f602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60008151600003610c1857506000919050565b506020015190565b6000806001610c36610c31886111d7565b611254565b6040805160008152602081018083529290925260ff861690820152606081018790526080810186905260a0016020604051602081039080840390855afa158015610c84573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610cdb5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606401610463565b866001600160a01b0316816001600160a01b03161491505095945050505050565b6000610d088484610826565b90506000198114610d705781811015610d635760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610463565b610d708484848403610ae0565b50505050565b6001600160a01b038316610dda5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610463565b6001600160a01b038216610e3c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610463565b6001600160a01b0383166000908152609e602052604090205481811015610eb45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610463565b6001600160a01b038085166000818152609e602052604080822086860390559286168082529083902080548601905591516000805160206118cb83398151915290610f029086815260200190565b60405180910390a3610d70565b6001600160a01b038216610f655760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610463565b8060a06000828254610f7791906116b4565b90915550506001600160a01b0382166000818152609e60209081526040808320805486019055518481526000805160206118cb833981519152910160405180910390a35b5050565b6001600160a01b03821661101f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610463565b6001600160a01b0382166000908152609e6020526040902054818110156110935760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610463565b6001600160a01b0383166000818152609e60209081526040808320868603905560a080548790039055518581529192916000805160206118cb8339815191529101610bf8565b505050565b606b54610100900460ff166111055760405162461bcd60e51b815260040161046390611718565b610fbb8282611281565b815160208084019190912082519183019190912060038290556004819055466001557f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61115d8184846112c1565b600055600280546001600160a01b0319163017905560055550505050565b60003033036111d157600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506111d49050565b50335b90565b60006040518060800160405280604381526020016118886043913980516020918201208351848301516040808701518051908601209051611237950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b600061039861126161130a565b8360405161190160f01b8152600281019290925260228201526042902090565b606b54610100900460ff166112a85760405162461bcd60e51b815260040161046390611718565b60a16112b483826117c7565b5060a26110d982826117c7565b6040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6002546000906001600160a01b031630148015611328575060015446145b15611334575060005490565b610adb6005546003546004546112c1565b60005b83811015611360578181015183820152602001611348565b50506000910152565b60008151808452611381816020860160208601611345565b601f01601f19169290920160200192915050565b6020815260006113a86020830184611369565b9392505050565b80356001600160a01b03811681146113c657600080fd5b919050565b600080604083850312156113de57600080fd5b6113e7836113af565b946020939093013593505050565b60008083601f84011261140757600080fd5b50813567ffffffffffffffff81111561141f57600080fd5b60208301915083602082850101111561143757600080fd5b9250929050565b803560ff811681146113c657600080fd5b60008060008060008060a0878903121561146857600080fd5b611471876113af565b9550602087013567ffffffffffffffff81111561148d57600080fd5b61149989828a016113f5565b90965094505060408701359250606087013591506114b96080880161143e565b90509295509295509295565b6000806000606084860312156114da57600080fd5b6114e3846113af565b92506114f1602085016113af565b9150604084013590509250925092565b60006020828403121561151357600080fd5b6113a8826113af565b60006020828403121561152e57600080fd5b5035919050565b6000806040838503121561154857600080fd5b611551836113af565b915061155f602084016113af565b90509250929050565b6000806000806000806080878903121561158157600080fd5b61158a876113af565b9550602087013567ffffffffffffffff808211156115a757600080fd5b6115b38a838b016113f5565b909750955060408901359150808211156115cc57600080fd5b506115d989828a016113f5565b90945092506114b990506060880161143e565b600181811c9082168061160057607f821691505b60208210810361162057634e487b7160e01b600052602260045260246000fd5b50919050565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b6000825161165e818460208701611345565b9190910192915050565b6001600160a01b0385811682528416602082015260606040820181905281018290526000828460808401376000608084840101526080601f19601f850116830101905095945050505050565b8082018082111561039857634e487b7160e01b600052601160045260246000fd5b60208082526023908201527f4368696c6445524332303a204f6e6c79207072656469636174652063616e2063604082015262185b1b60ea1b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f8211156110d957600081815260208120601f850160051c810160208610156117a05750805b601f850160051c820191505b818110156117bf578281556001016117ac565b505050505050565b815167ffffffffffffffff8111156117e1576117e1611763565b6117f5816117ef84546115ec565b84611779565b602080601f83116001811461182a57600084156118125750858301515b600019600386901b1c1916600185901b1785556117bf565b600085815260208120601f198616915b828110156118595788860151825594840194600190910190840161183a565b50858210156118775787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122025382f2e5346073a2875deb90af71e629e8a47644d5cf7790f05f8e5b91544e164736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106101215760003560e01c806340c10f19116100ad578063a457c2d711610071578063a457c2d71461028b578063a9059cbb1461029e578063dd62ed3e146102b1578063e6198705146102c4578063f6d2ee86146102d557600080fd5b806340c10f191461021f57806370a082311461023257806395d89b411461025b5780639b77ef11146102635780639dc29fac1461027857600080fd5b80631f2d0065116100f45780631f2d00651461018c57806323b872dd146101b15780632d0335ab146101c4578063313ce567146101ed578063395093511461020c57600080fd5b806306fdde0314610126578063095ea7b3146101445780630c53c51c1461016757806318160ddd1461017a575b600080fd5b61012e6102e8565b60405161013b9190611395565b60405180910390f35b6101576101523660046113cb565b61037a565b604051901515815260200161013b565b61012e61017536600461144f565b61039e565b60a0545b60405190815260200161013b565b60d1546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b6101576101bf3660046114c5565b610681565b61017e6101d2366004611501565b6001600160a01b031660009081526038602052604090205490565b60d154600160a01b900460ff1660405160ff909116815260200161013b565b61015761021a3660046113cb565b6106af565b61015761022d3660046113cb565b6106db565b61017e610240366004611501565b6001600160a01b03166000908152609e602052604090205490565b61012e61071b565b61027661027136600461151c565b61072a565b005b6101576102863660046113cb565b610751565b6101576102993660046113cb565b610788565b6101576102ac3660046113cb565b61080e565b61017e6102bf366004611535565b610826565b60d0546001600160a01b0316610199565b6102766102e3366004611568565b610851565b606060a180546102f7906115ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610323906115ec565b80156103705780601f1061034557610100808354040283529160200191610370565b820191906000526020600020905b81548152906001019060200180831161035357829003601f168201915b5050505050905090565b600080610385610ad1565b9050610392818585610ae0565b60019150505b92915050565b606060006103e187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610c0592505050565b90506001600160e01b031960003581169082160361046c5760405162461bcd60e51b815260206004820152603d60248201527f66756e6374696f6e5369676e61747572652063616e206e6f74206265206f662060448201527f657865637574654d6574615472616e73616374696f6e206d6574686f6400000060648201526084015b60405180910390fd5b604080516060810182526001600160a01b038a16600081815260386020908152848220548452808401929092528351601f8b0183900483028101830185528a815290938301918b908b9081908401838280828437600092019190915250505091525090506104dd8982888888610c20565b6105335760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b6064820152608401610463565b603860008a6001600160a01b03166001600160a01b031681526020019081526020016000206000815460010191905081905550600080306001600160a01b03168a8a8d60405160200161058893929190611626565b60408051601f19818403018152908290526105a29161164c565b6000604051808303816000865af19150503d80600081146105df576040519150601f19603f3d011682016040523d82523d6000602084013e6105e4565b606091505b5091509150816106365760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610463565b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8b338c8c60405161066b9493929190611668565b60405180910390a19a9950505050505050505050565b60008061068c610ad1565b9050610699858285610cfc565b6106a4858585610d76565b506001949350505050565b6000806106ba610ad1565b90506103928185856106cc8589610826565b6106d691906116b4565b610ae0565b60d0546000906001600160a01b031633146107085760405162461bcd60e51b8152600401610463906116d5565b6107128383610f0f565b50600192915050565b606060a280546102f7906115ec565b33600090815260386020526040812080548392906107499084906116b4565b909155505050565b60d0546000906001600160a01b0316331461077e5760405162461bcd60e51b8152600401610463906116d5565b6107128383610fbf565b600080610793610ad1565b905060006107a18286610826565b9050838110156108015760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610463565b6106a48286868403610ae0565b600080610819610ad1565b9050610392818585610d76565b6001600160a01b039182166000908152609f6020908152604080832093909416825291909152205490565b606b54610100900460ff16158080156108715750606b54600160ff909116105b8061088b5750303b15801561088b5750606b5460ff166001145b6108ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610463565b606b805460ff19166001179055801561091157606b805461ff0019166101001790555b6001600160a01b0387161580159061092857508415155b801561093357508215155b61097f5760405162461bcd60e51b815260206004820152601e60248201527f4368696c6445524332303a204241445f494e495449414c495a4154494f4e00006044820152606401610463565b60d1805460ff8416600160a01b026001600160a81b03199091166001600160a01b038a161717905560d080546001600160a01b03191633179055604080516020601f8801819004810282018101909252868152610a2a91889088908190840183828082843760009201919091525050604080516020601f8a0181900481028201810190925288815292508891508790819084018382808284376000920191909152506110de92505050565b610a8286868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b6020820152915061110f9050565b8015610ac857606b805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6000610adb61117b565b905090565b6001600160a01b038316610b425760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610463565b6001600160a01b038216610ba35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610463565b6001600160a01b038381166000818152609f602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60008151600003610c1857506000919050565b506020015190565b6000806001610c36610c31886111d7565b611254565b6040805160008152602081018083529290925260ff861690820152606081018790526080810186905260a0016020604051602081039080840390855afa158015610c84573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610cdb5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606401610463565b866001600160a01b0316816001600160a01b03161491505095945050505050565b6000610d088484610826565b90506000198114610d705781811015610d635760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610463565b610d708484848403610ae0565b50505050565b6001600160a01b038316610dda5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610463565b6001600160a01b038216610e3c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610463565b6001600160a01b0383166000908152609e602052604090205481811015610eb45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610463565b6001600160a01b038085166000818152609e602052604080822086860390559286168082529083902080548601905591516000805160206118cb83398151915290610f029086815260200190565b60405180910390a3610d70565b6001600160a01b038216610f655760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610463565b8060a06000828254610f7791906116b4565b90915550506001600160a01b0382166000818152609e60209081526040808320805486019055518481526000805160206118cb833981519152910160405180910390a35b5050565b6001600160a01b03821661101f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610463565b6001600160a01b0382166000908152609e6020526040902054818110156110935760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610463565b6001600160a01b0383166000818152609e60209081526040808320868603905560a080548790039055518581529192916000805160206118cb8339815191529101610bf8565b505050565b606b54610100900460ff166111055760405162461bcd60e51b815260040161046390611718565b610fbb8282611281565b815160208084019190912082519183019190912060038290556004819055466001557f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61115d8184846112c1565b600055600280546001600160a01b0319163017905560055550505050565b60003033036111d157600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506111d49050565b50335b90565b60006040518060800160405280604381526020016118886043913980516020918201208351848301516040808701518051908601209051611237950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b600061039861126161130a565b8360405161190160f01b8152600281019290925260228201526042902090565b606b54610100900460ff166112a85760405162461bcd60e51b815260040161046390611718565b60a16112b483826117c7565b5060a26110d982826117c7565b6040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6002546000906001600160a01b031630148015611328575060015446145b15611334575060005490565b610adb6005546003546004546112c1565b60005b83811015611360578181015183820152602001611348565b50506000910152565b60008151808452611381816020860160208601611345565b601f01601f19169290920160200192915050565b6020815260006113a86020830184611369565b9392505050565b80356001600160a01b03811681146113c657600080fd5b919050565b600080604083850312156113de57600080fd5b6113e7836113af565b946020939093013593505050565b60008083601f84011261140757600080fd5b50813567ffffffffffffffff81111561141f57600080fd5b60208301915083602082850101111561143757600080fd5b9250929050565b803560ff811681146113c657600080fd5b60008060008060008060a0878903121561146857600080fd5b611471876113af565b9550602087013567ffffffffffffffff81111561148d57600080fd5b61149989828a016113f5565b90965094505060408701359250606087013591506114b96080880161143e565b90509295509295509295565b6000806000606084860312156114da57600080fd5b6114e3846113af565b92506114f1602085016113af565b9150604084013590509250925092565b60006020828403121561151357600080fd5b6113a8826113af565b60006020828403121561152e57600080fd5b5035919050565b6000806040838503121561154857600080fd5b611551836113af565b915061155f602084016113af565b90509250929050565b6000806000806000806080878903121561158157600080fd5b61158a876113af565b9550602087013567ffffffffffffffff808211156115a757600080fd5b6115b38a838b016113f5565b909750955060408901359150808211156115cc57600080fd5b506115d989828a016113f5565b90945092506114b990506060880161143e565b600181811c9082168061160057607f821691505b60208210810361162057634e487b7160e01b600052602260045260246000fd5b50919050565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b6000825161165e818460208701611345565b9190910192915050565b6001600160a01b0385811682528416602082015260606040820181905281018290526000828460808401376000608084840101526080601f19601f850116830101905095945050505050565b8082018082111561039857634e487b7160e01b600052601160045260246000fd5b60208082526023908201527f4368696c6445524332303a204f6e6c79207072656469636174652063616e2063604082015262185b1b60ea1b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b601f8211156110d957600081815260208120601f850160051c810160208610156117a05750805b601f850160051c820191505b818110156117bf578281556001016117ac565b505050505050565b815167ffffffffffffffff8111156117e1576117e1611763565b6117f5816117ef84546115ec565b84611779565b602080601f83116001811461182a57600084156118125750858301515b600019600386901b1c1916600185901b1785556117bf565b600085815260208120601f198616915b828110156118595788860151825594840194600190910190840161183a565b50858210156118775787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122025382f2e5346073a2875deb90af71e629e8a47644d5cf7790f05f8e5b91544e164736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` -var ChildERC20PredicateArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC20Predicate","sourceName":"contracts/blade/ChildERC20Predicate.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC20Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"address","name":"newNativeTokenRootAddress","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootERC20Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rootTokenToChildToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IChildERC20","name":"childToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC20","name":"childToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50611531806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063947287cf116100b8578063d41f17711161007c578063d41f177114610283578063d7c9e3ec146102aa578063eeb49945146102d1578063f3fef3a3146102e4578063f6451255146102f7578063f7013ef61461031e57600080fd5b8063947287cf1461020e578063b075061114610217578063b176806514610220578063c3b35a7e14610247578063c5ac2b1c1461025c57600080fd5b806355b01e4d116100ff57806355b01e4d1461019a5780635ea5df79146101a857806371cf93b7146101bf5780637efab4f5146101d25780639079dfb3146101fb57600080fd5b806307b3e2521461013c578063116191b614610167578063284017f51461017a5780633b878c221461018357806351351d531461018c575b600080fd5b61014a6004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b60005461014a906001600160a01b031681565b61014a61202081565b61014a61101081565b61014a6002600160a01b0381565b61014a6004600160991b0181565b6101b161138881565b60405190815260200161015e565b60355461014a906001600160a01b031681565b61014a6101e0366004611030565b6037602052600090815260409020546001600160a01b031681565b60365461014a906001600160a01b031681565b6101b161520881565b6101b160015481565b6101b17f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61025a610255366004611054565b610331565b005b6101b17faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b6101b17f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6101b17f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b61025a6102df366004611095565b610341565b61025a6102f236600461111e565b610513565b6101b17f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b61025a61032c36600461114a565b610522565b61033c83838361063d565b505050565b6000546001600160a01b031633146103aa5760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204f4e4c595f4741544557416044820152605960f81b60648201526084015b60405180910390fd5b6035546001600160a01b038481169116146104185760405162461bcd60e51b815260206004820152602860248201527f4368696c6445524332305072656469636174653a204f4e4c595f524f4f545f50604482015267524544494341544560c01b60648201526084016103a1565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216104476020600084866111ae565b610450916111d8565b0361046f5761046a61046582602081866111ae565b6109b9565b61050d565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad61049e6020600084866111ae565b6104a7916111d8565b036104b65761046a8282610c64565b60405162461bcd60e51b815260206004820152602660248201527f4368696c6445524332305072656469636174653a20494e56414c49445f5349476044820152654e415455524560d01b60648201526084016103a1565b50505050565b61051e82338361063d565b5050565b600254610100900460ff16158080156105425750600254600160ff909116105b8061055c5750303b15801561055c575060025460ff166001145b6105bf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103a1565b6002805460ff1916600117905580156105e2576002805461ff0019166101001790555b6105ef8686868686610dd9565b8015610635576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b826001600160a01b03163b6000036106a15760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204e4f545f434f4e545241436044820152601560fa1b60648201526084016103a1565b6000836001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070591906111f6565b6001600160a01b038181166000908152603760205260409020549192508581169116146107445760405162461bcd60e51b81526004016103a190611213565b6001600160a01b03811661075a5761075a611256565b306001600160a01b0316846001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c691906111f6565b6001600160a01b0316146107dc576107dc611256565b604051632770a7eb60e21b81526001600160a01b03851690639dc29fac9061080a903390869060040161126c565b6020604051808303816000875af1158015610829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084d9190611285565b6108995760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204255524e5f4641494c454460448201526064016103a1565b600054603554604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152878116608083015260a08083018890528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb9461092a9492169290919060c4016112ed565b600060405180830381600087803b15801561094457600080fd5b505af1158015610958573d6000803e3d6000fd5b50505050826001600160a01b0316846001600160a01b0316826001600160a01b03167f9c4f744b2e971d7058a9d8f43977e0e17bf7d57a48659f0e18541b7ee3d022e433866040516109ab92919061126c565b60405180910390a450505050565b60008080806109ca85870187611321565b6001600160a01b0380851660009081526037602052604090205494985092965090945092501680610a0d5760405162461bcd60e51b81526004016103a190611213565b806001600160a01b03163b600003610a2757610a27611256565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8b91906111f6565b9050856001600160a01b0316816001600160a01b031614610aae57610aae611256565b6001600160a01b038116610ac457610ac4611256565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3091906111f6565b6001600160a01b031614610b4657610b46611256565b6040516340c10f1960e01b81526001600160a01b038316906340c10f1990610b74908790879060040161126c565b6020604051808303816000875af1158015610b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb79190611285565b610c035760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204d494e545f4641494c454460448201526064016103a1565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f8be9001bb612c7123a1861dc0d9d94e683261f6cbbd7c7438b708975bc4908a38887604051610c5292919061126c565b60405180910390a45050505050505050565b6000808080610c7585870187611415565b92975090955093509150506001600160a01b038416610c9657610c96611256565b6001600160a01b038481166000908152603760205260409020541615610cbe57610cbe611256565b6036546040516bffffffffffffffffffffffff19606087901b166020820152600091610d0e916001600160a01b039091169060340160405160208183030381529060405280519060200120610ef2565b6001600160a01b038681166000908152603760205260409081902080546001600160a01b031916928416928317905551637b69774360e11b81529192509063f6d2ee8690610d669088908890889088906004016114b0565b600060405180830381600087803b158015610d8057600080fd5b505af1158015610d94573d6000803e3d6000fd5b50506040516001600160a01b038085169350881691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a350505050505050565b610de38582610f8f565b6001600160a01b03841615801590610e0357506001600160a01b03831615155b610e5f5760405162461bcd60e51b815260206004820152602760248201527f4368696c6445524332305072656469636174653a204241445f494e495449414c60448201526624ad20aa24a7a760c91b60648201526084016103a1565b603580546001600160a01b038087166001600160a01b031992831617909255603680548684169216919091179055821615610eeb576001600160a01b03821660008181526037602052604080822080546001600160a01b03191661101090811790915590519092917f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61791a35b5050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116610f895760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b60448201526064016103a1565b92915050565b6001600160a01b03821615801590610fa657508015155b610ff25760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e00000060448201526064016103a1565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6001600160a01b038116811461102d57600080fd5b50565b60006020828403121561104257600080fd5b813561104d81611018565b9392505050565b60008060006060848603121561106957600080fd5b833561107481611018565b9250602084013561108481611018565b929592945050506040919091013590565b600080600080606085870312156110ab57600080fd5b8435935060208501356110bd81611018565b9250604085013567ffffffffffffffff808211156110da57600080fd5b818701915087601f8301126110ee57600080fd5b8135818111156110fd57600080fd5b88602082850101111561110f57600080fd5b95989497505060200194505050565b6000806040838503121561113157600080fd5b823561113c81611018565b946020939093013593505050565b600080600080600060a0868803121561116257600080fd5b853561116d81611018565b9450602086013561117d81611018565b9350604086013561118d81611018565b9250606086013561119d81611018565b949793965091946080013592915050565b600080858511156111be57600080fd5b838611156111cb57600080fd5b5050820193919092039150565b80356020831015610f8957600019602084900360031b1b1692915050565b60006020828403121561120857600080fd5b815161104d81611018565b60208082526023908201527f4368696c6445524332305072656469636174653a20554e4d41505045445f544f60408201526225a2a760e91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03929092168252602082015260400190565b60006020828403121561129757600080fd5b8151801515811461104d57600080fd5b6000815180845260005b818110156112cd576020818501810151868301820152016112b1565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090611311908301856112a7565b9050826040830152949350505050565b6000806000806080858703121561133757600080fd5b843561134281611018565b9350602085013561135281611018565b9250604085013561136281611018565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261139957600080fd5b813567ffffffffffffffff808211156113b4576113b4611372565b604051601f8301601f19908116603f011681019082821181831017156113dc576113dc611372565b816040528381528660208588010111156113f557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561142d57600080fd5b85359450602086013561143f81611018565b9350604086013567ffffffffffffffff8082111561145c57600080fd5b61146889838a01611388565b9450606088013591508082111561147e57600080fd5b5061148b88828901611388565b925050608086013560ff811681146114a257600080fd5b809150509295509295909350565b6001600160a01b03851681526080602082018190526000906114d4908301866112a7565b82810360408401526114e681866112a7565b91505060ff831660608301529594505050505056fea2646970667358221220515ac4d4d9fcc6b80a228526a4264b8fde2bc08c0cc3ea51b37df6679ddb7eab64736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063947287cf116100b8578063d41f17711161007c578063d41f177114610283578063d7c9e3ec146102aa578063eeb49945146102d1578063f3fef3a3146102e4578063f6451255146102f7578063f7013ef61461031e57600080fd5b8063947287cf1461020e578063b075061114610217578063b176806514610220578063c3b35a7e14610247578063c5ac2b1c1461025c57600080fd5b806355b01e4d116100ff57806355b01e4d1461019a5780635ea5df79146101a857806371cf93b7146101bf5780637efab4f5146101d25780639079dfb3146101fb57600080fd5b806307b3e2521461013c578063116191b614610167578063284017f51461017a5780633b878c221461018357806351351d531461018c575b600080fd5b61014a6004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b60005461014a906001600160a01b031681565b61014a61202081565b61014a61101081565b61014a6002600160a01b0381565b61014a6004600160991b0181565b6101b161138881565b60405190815260200161015e565b60355461014a906001600160a01b031681565b61014a6101e0366004611030565b6037602052600090815260409020546001600160a01b031681565b60365461014a906001600160a01b031681565b6101b161520881565b6101b160015481565b6101b17f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61025a610255366004611054565b610331565b005b6101b17faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b6101b17f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6101b17f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b61025a6102df366004611095565b610341565b61025a6102f236600461111e565b610513565b6101b17f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b61025a61032c36600461114a565b610522565b61033c83838361063d565b505050565b6000546001600160a01b031633146103aa5760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204f4e4c595f4741544557416044820152605960f81b60648201526084015b60405180910390fd5b6035546001600160a01b038481169116146104185760405162461bcd60e51b815260206004820152602860248201527f4368696c6445524332305072656469636174653a204f4e4c595f524f4f545f50604482015267524544494341544560c01b60648201526084016103a1565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216104476020600084866111ae565b610450916111d8565b0361046f5761046a61046582602081866111ae565b6109b9565b61050d565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad61049e6020600084866111ae565b6104a7916111d8565b036104b65761046a8282610c64565b60405162461bcd60e51b815260206004820152602660248201527f4368696c6445524332305072656469636174653a20494e56414c49445f5349476044820152654e415455524560d01b60648201526084016103a1565b50505050565b61051e82338361063d565b5050565b600254610100900460ff16158080156105425750600254600160ff909116105b8061055c5750303b15801561055c575060025460ff166001145b6105bf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103a1565b6002805460ff1916600117905580156105e2576002805461ff0019166101001790555b6105ef8686868686610dd9565b8015610635576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b826001600160a01b03163b6000036106a15760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204e4f545f434f4e545241436044820152601560fa1b60648201526084016103a1565b6000836001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070591906111f6565b6001600160a01b038181166000908152603760205260409020549192508581169116146107445760405162461bcd60e51b81526004016103a190611213565b6001600160a01b03811661075a5761075a611256565b306001600160a01b0316846001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c691906111f6565b6001600160a01b0316146107dc576107dc611256565b604051632770a7eb60e21b81526001600160a01b03851690639dc29fac9061080a903390869060040161126c565b6020604051808303816000875af1158015610829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084d9190611285565b6108995760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204255524e5f4641494c454460448201526064016103a1565b600054603554604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152878116608083015260a08083018890528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb9461092a9492169290919060c4016112ed565b600060405180830381600087803b15801561094457600080fd5b505af1158015610958573d6000803e3d6000fd5b50505050826001600160a01b0316846001600160a01b0316826001600160a01b03167f9c4f744b2e971d7058a9d8f43977e0e17bf7d57a48659f0e18541b7ee3d022e433866040516109ab92919061126c565b60405180910390a450505050565b60008080806109ca85870187611321565b6001600160a01b0380851660009081526037602052604090205494985092965090945092501680610a0d5760405162461bcd60e51b81526004016103a190611213565b806001600160a01b03163b600003610a2757610a27611256565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8b91906111f6565b9050856001600160a01b0316816001600160a01b031614610aae57610aae611256565b6001600160a01b038116610ac457610ac4611256565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3091906111f6565b6001600160a01b031614610b4657610b46611256565b6040516340c10f1960e01b81526001600160a01b038316906340c10f1990610b74908790879060040161126c565b6020604051808303816000875af1158015610b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb79190611285565b610c035760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204d494e545f4641494c454460448201526064016103a1565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f8be9001bb612c7123a1861dc0d9d94e683261f6cbbd7c7438b708975bc4908a38887604051610c5292919061126c565b60405180910390a45050505050505050565b6000808080610c7585870187611415565b92975090955093509150506001600160a01b038416610c9657610c96611256565b6001600160a01b038481166000908152603760205260409020541615610cbe57610cbe611256565b6036546040516bffffffffffffffffffffffff19606087901b166020820152600091610d0e916001600160a01b039091169060340160405160208183030381529060405280519060200120610ef2565b6001600160a01b038681166000908152603760205260409081902080546001600160a01b031916928416928317905551637b69774360e11b81529192509063f6d2ee8690610d669088908890889088906004016114b0565b600060405180830381600087803b158015610d8057600080fd5b505af1158015610d94573d6000803e3d6000fd5b50506040516001600160a01b038085169350881691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a350505050505050565b610de38582610f8f565b6001600160a01b03841615801590610e0357506001600160a01b03831615155b610e5f5760405162461bcd60e51b815260206004820152602760248201527f4368696c6445524332305072656469636174653a204241445f494e495449414c60448201526624ad20aa24a7a760c91b60648201526084016103a1565b603580546001600160a01b038087166001600160a01b031992831617909255603680548684169216919091179055821615610eeb576001600160a01b03821660008181526037602052604080822080546001600160a01b03191661101090811790915590519092917f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61791a35b5050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116610f895760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b60448201526064016103a1565b92915050565b6001600160a01b03821615801590610fa657508015155b610ff25760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e00000060448201526064016103a1565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6001600160a01b038116811461102d57600080fd5b50565b60006020828403121561104257600080fd5b813561104d81611018565b9392505050565b60008060006060848603121561106957600080fd5b833561107481611018565b9250602084013561108481611018565b929592945050506040919091013590565b600080600080606085870312156110ab57600080fd5b8435935060208501356110bd81611018565b9250604085013567ffffffffffffffff808211156110da57600080fd5b818701915087601f8301126110ee57600080fd5b8135818111156110fd57600080fd5b88602082850101111561110f57600080fd5b95989497505060200194505050565b6000806040838503121561113157600080fd5b823561113c81611018565b946020939093013593505050565b600080600080600060a0868803121561116257600080fd5b853561116d81611018565b9450602086013561117d81611018565b9350604086013561118d81611018565b9250606086013561119d81611018565b949793965091946080013592915050565b600080858511156111be57600080fd5b838611156111cb57600080fd5b5050820193919092039150565b80356020831015610f8957600019602084900360031b1b1692915050565b60006020828403121561120857600080fd5b815161104d81611018565b60208082526023908201527f4368696c6445524332305072656469636174653a20554e4d41505045445f544f60408201526225a2a760e91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03929092168252602082015260400190565b60006020828403121561129757600080fd5b8151801515811461104d57600080fd5b6000815180845260005b818110156112cd576020818501810151868301820152016112b1565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090611311908301856112a7565b9050826040830152949350505050565b6000806000806080858703121561133757600080fd5b843561134281611018565b9350602085013561135281611018565b9250604085013561136281611018565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261139957600080fd5b813567ffffffffffffffff808211156113b4576113b4611372565b604051601f8301601f19908116603f011681019082821181831017156113dc576113dc611372565b816040528381528660208588010111156113f557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561142d57600080fd5b85359450602086013561143f81611018565b9350604086013567ffffffffffffffff8082111561145c57600080fd5b61146889838a01611388565b9450606088013591508082111561147e57600080fd5b5061148b88828901611388565b925050608086013560ff811681146114a257600080fd5b809150509295509295909350565b6001600160a01b03851681526080602082018190526000906114d4908301866112a7565b82810360408401526114e681866112a7565b91505060ff831660608301529594505050505056fea2646970667358221220515ac4d4d9fcc6b80a228526a4264b8fde2bc08c0cc3ea51b37df6679ddb7eab64736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` -var ChildERC20PredicateACLArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC20PredicateAccessList","sourceName":"contracts/blade/ChildERC20PredicateAccessList.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"AllowListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"BlockListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC20Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"address","name":"newNativeTokenRootAddress","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"},{"internalType":"bool","name":"newUseAllowList","type":"bool"},{"internalType":"bool","name":"newUseBlockList","type":"bool"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC20Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"address","name":"newNativeTokenRootAddress","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootERC20Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rootTokenToChildToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseAllowList","type":"bool"}],"name":"setAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseBlockList","type":"bool"}],"name":"setBlockList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC20","name":"childToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC20","name":"childToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50611c9e806100206000396000f3fe608060405234801561001057600080fd5b506004361061018f5760003560e01c8063947287cf116100e4578063d41f177111610092578063d41f177114610336578063d7c9e3ec1461035d578063e30c397814610384578063eeb4994514610395578063f2fde38b146103a8578063f3fef3a3146103bb578063f6451255146103ce578063f7013ef6146103f557600080fd5b8063947287cf1461029d578063b0750611146102a6578063b1768065146102af578063c1225a20146102d6578063c3b35a7e146102e9578063c5ac2b1c146102fc578063c5e4683a1461032357600080fd5b80635ea5df79116101415780635ea5df7914610215578063715018a61461022c57806371cf93b71461023457806379ba5097146102475780637efab4f51461024f5780638da5cb5b146102795780639079dfb31461028a57600080fd5b806307b3e25214610194578063116191b6146101bf578063284017f5146101d25780633b878c22146101db5780634a86653c146101e457806351351d53146101f957806355b01e4d14610207575b600080fd5b6101a26004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546101a2906001600160a01b031681565b6101a261202081565b6101a261101081565b6101f76101f2366004611658565b610408565b005b6101a26002600160a01b0381565b6101a26004600160991b0181565b61021e61138881565b6040519081526020016101b6565b6101f761050d565b60fe546101a2906001600160a01b031681565b6101f7610521565b6101a261025d3660046116f8565b610100602052600090815260409020546001600160a01b031681565b6035546001600160a01b03166101a2565b60ff546101a2906001600160a01b031681565b61021e61520881565b61021e60015481565b61021e7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6101f76102e436600461171c565b61059b565b6101f76102f7366004611739565b6105ea565b61021e7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b6101f761033136600461171c565b610602565b61021e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b61021e7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101a2565b6101f76103a336600461177a565b610649565b6101f76103b63660046116f8565b610816565b6101f76103c9366004611803565b610887565b61021e7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6101f761040336600461182f565b61089e565b600254610100900460ff16158080156104285750600254600160ff909116105b806104425750303b158015610442575060025460ff166001145b6104675760405162461bcd60e51b815260040161045e90611893565b60405180910390fd5b6002805460ff19166001179055801561048a576002805461ff0019166101001790555b6104978989898989610972565b60cb805461ffff191685151561ff00191617610100851515021790556104bc82610a8c565b8015610502576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b610515610aa5565b61051f6000610a8c565b565b60675433906001600160a01b0316811461058f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161045e565b61059881610a8c565b50565b6105a3610aa5565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b6105f2610aff565b6105fd838383610b07565b505050565b61060a610aa5565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b6000546001600160a01b031633146106ad5760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204f4e4c595f4741544557416044820152605960f81b606482015260840161045e565b60fe546001600160a01b0384811691161461071b5760405162461bcd60e51b815260206004820152602860248201527f4368696c6445524332305072656469636174653a204f4e4c595f524f4f545f50604482015267524544494341544560c01b606482015260840161045e565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82161074a6020600084866118e1565b6107539161190b565b036107725761076d61076882602081866118e1565b610e84565b610810565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad6107a16020600084866118e1565b6107aa9161190b565b036107b95761076d8282611130565b60405162461bcd60e51b815260206004820152602660248201527f4368696c6445524332305072656469636174653a20494e56414c49445f5349476044820152654e415455524560d01b606482015260840161045e565b50505050565b61081e610aa5565b606780546001600160a01b0383166001600160a01b0319909116811790915561084f6035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61088f610aff565b61089a823383610b07565b5050565b600254610100900460ff16158080156108be5750600254600160ff909116105b806108d85750303b1580156108d8575060025460ff166001145b6108f45760405162461bcd60e51b815260040161045e90611893565b6002805460ff191660011790558015610917576002805461ff0019166101001790555b6109248686868686610972565b801561096a576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b61097c85826112a7565b6001600160a01b0384161580159061099c57506001600160a01b03831615155b6109f85760405162461bcd60e51b815260206004820152602760248201527f4368696c6445524332305072656469636174653a204241445f494e495449414c60448201526624ad20aa24a7a760c91b606482015260840161045e565b60fe80546001600160a01b038087166001600160a01b03199283161790925560ff80548684169216919091179055821615610a85576001600160a01b0382166000818152610100602052604080822080546001600160a01b03191661101090811790915590519092917f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61791a35b5050505050565b606780546001600160a01b031916905561059881611330565b6035546001600160a01b0316331461051f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045e565b61051f611382565b826001600160a01b03163b600003610b6b5760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204e4f545f434f4e545241436044820152601560fa1b606482015260840161045e565b6000836001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcf9190611929565b6001600160a01b0381811660009081526101006020526040902054919250858116911614610c0f5760405162461bcd60e51b815260040161045e90611946565b6001600160a01b038116610c2557610c25611989565b306001600160a01b0316846001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c919190611929565b6001600160a01b031614610ca757610ca7611989565b604051632770a7eb60e21b81526001600160a01b03851690639dc29fac90610cd5903390869060040161199f565b6020604051808303816000875af1158015610cf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1891906119b8565b610d645760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204255524e5f4641494c4544604482015260640161045e565b60005460fe54604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152878116608083015260a08083018890528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb94610df59492169290919060c401611a25565b600060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b50505050826001600160a01b0316846001600160a01b0316826001600160a01b03167f9c4f744b2e971d7058a9d8f43977e0e17bf7d57a48659f0e18541b7ee3d022e43386604051610e7692919061199f565b60405180910390a450505050565b6000808080610e9585870187611a59565b6001600160a01b038085166000908152610100602052604090205494985092965090945092501680610ed95760405162461bcd60e51b815260040161045e90611946565b806001600160a01b03163b600003610ef357610ef3611989565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f579190611929565b9050856001600160a01b0316816001600160a01b031614610f7a57610f7a611989565b6001600160a01b038116610f9057610f90611989565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611929565b6001600160a01b03161461101257611012611989565b6040516340c10f1960e01b81526001600160a01b038316906340c10f1990611040908790879060040161199f565b6020604051808303816000875af115801561105f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108391906119b8565b6110cf5760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204d494e545f4641494c4544604482015260640161045e565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f8be9001bb612c7123a1861dc0d9d94e683261f6cbbd7c7438b708975bc4908a3888760405161111e92919061199f565b60405180910390a45050505050505050565b600080808061114185870187611b4d565b92975090955093509150506001600160a01b03841661116257611162611989565b6001600160a01b0384811660009081526101006020526040902054161561118b5761118b611989565b60ff546040516bffffffffffffffffffffffff19606087901b1660208201526000916111db916001600160a01b039091169060340160405160208183030381529060405280519060200120611598565b6001600160a01b03868116600090815261010060205260409081902080546001600160a01b031916928416928317905551637b69774360e11b81529192509063f6d2ee8690611234908890889088908890600401611be8565b600060405180830381600087803b15801561124e57600080fd5b505af1158015611262573d6000803e3d6000fd5b50506040516001600160a01b038085169350881691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a350505050505050565b6001600160a01b038216158015906112be57508015155b61130a5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e000000604482015260640161045e565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff161561148d57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b0191611388916113e49190611c33565b6000604051808303818686fa925050503d8060008114611420576040519150601f19603f3d011682016040523d82523d6000602084013e611425565b606091505b509150915081801561144a57506000818060200190518101906114489190611c4f565b115b61148a5760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b604482015260640161045e565b50505b60cb54610100900460ff161561051f57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b0191611388916114f49190611c33565b6000604051808303818686fa925050503d8060008114611530576040519150601f19603f3d011682016040523d82523d6000602084013e611535565b606091505b509150915081801561155b5750808060200190518101906115569190611c4f565b600114155b61089a5760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b604482015260640161045e565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811661162f5760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b604482015260640161045e565b92915050565b6001600160a01b038116811461059857600080fd5b801515811461059857600080fd5b600080600080600080600080610100898b03121561167557600080fd5b883561168081611635565b9750602089013561169081611635565b965060408901356116a081611635565b955060608901356116b081611635565b94506080890135935060a08901356116c78161164a565b925060c08901356116d78161164a565b915060e08901356116e781611635565b809150509295985092959890939650565b60006020828403121561170a57600080fd5b813561171581611635565b9392505050565b60006020828403121561172e57600080fd5b81356117158161164a565b60008060006060848603121561174e57600080fd5b833561175981611635565b9250602084013561176981611635565b929592945050506040919091013590565b6000806000806060858703121561179057600080fd5b8435935060208501356117a281611635565b9250604085013567ffffffffffffffff808211156117bf57600080fd5b818701915087601f8301126117d357600080fd5b8135818111156117e257600080fd5b8860208285010111156117f457600080fd5b95989497505060200194505050565b6000806040838503121561181657600080fd5b823561182181611635565b946020939093013593505050565b600080600080600060a0868803121561184757600080fd5b853561185281611635565b9450602086013561186281611635565b9350604086013561187281611635565b9250606086013561188281611635565b949793965091946080013592915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600080858511156118f157600080fd5b838611156118fe57600080fd5b5050820193919092039150565b8035602083101561162f57600019602084900360031b1b1692915050565b60006020828403121561193b57600080fd5b815161171581611635565b60208082526023908201527f4368696c6445524332305072656469636174653a20554e4d41505045445f544f60408201526225a2a760e91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03929092168252602082015260400190565b6000602082840312156119ca57600080fd5b81516117158161164a565b60005b838110156119f05781810151838201526020016119d8565b50506000910152565b60008151808452611a118160208601602086016119d5565b601f01601f19169290920160200192915050565b6001600160a01b0384168152606060208201819052600090611a49908301856119f9565b9050826040830152949350505050565b60008060008060808587031215611a6f57600080fd5b8435611a7a81611635565b93506020850135611a8a81611635565b92506040850135611a9a81611635565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611ad157600080fd5b813567ffffffffffffffff80821115611aec57611aec611aaa565b604051601f8301601f19908116603f01168101908282118183101715611b1457611b14611aaa565b81604052838152866020858801011115611b2d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215611b6557600080fd5b853594506020860135611b7781611635565b9350604086013567ffffffffffffffff80821115611b9457600080fd5b611ba089838a01611ac0565b94506060880135915080821115611bb657600080fd5b50611bc388828901611ac0565b925050608086013560ff81168114611bda57600080fd5b809150509295509295909350565b6001600160a01b0385168152608060208201819052600090611c0c908301866119f9565b8281036040840152611c1e81866119f9565b91505060ff8316606083015295945050505050565b60008251611c458184602087016119d5565b9190910192915050565b600060208284031215611c6157600080fd5b505191905056fea264697066735822122070ffefdf7a3316289c6c68cd9f04a983e622a998ca1545df7103059d50b7cfc964736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b506004361061018f5760003560e01c8063947287cf116100e4578063d41f177111610092578063d41f177114610336578063d7c9e3ec1461035d578063e30c397814610384578063eeb4994514610395578063f2fde38b146103a8578063f3fef3a3146103bb578063f6451255146103ce578063f7013ef6146103f557600080fd5b8063947287cf1461029d578063b0750611146102a6578063b1768065146102af578063c1225a20146102d6578063c3b35a7e146102e9578063c5ac2b1c146102fc578063c5e4683a1461032357600080fd5b80635ea5df79116101415780635ea5df7914610215578063715018a61461022c57806371cf93b71461023457806379ba5097146102475780637efab4f51461024f5780638da5cb5b146102795780639079dfb31461028a57600080fd5b806307b3e25214610194578063116191b6146101bf578063284017f5146101d25780633b878c22146101db5780634a86653c146101e457806351351d53146101f957806355b01e4d14610207575b600080fd5b6101a26004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546101a2906001600160a01b031681565b6101a261202081565b6101a261101081565b6101f76101f2366004611658565b610408565b005b6101a26002600160a01b0381565b6101a26004600160991b0181565b61021e61138881565b6040519081526020016101b6565b6101f761050d565b60fe546101a2906001600160a01b031681565b6101f7610521565b6101a261025d3660046116f8565b610100602052600090815260409020546001600160a01b031681565b6035546001600160a01b03166101a2565b60ff546101a2906001600160a01b031681565b61021e61520881565b61021e60015481565b61021e7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6101f76102e436600461171c565b61059b565b6101f76102f7366004611739565b6105ea565b61021e7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b6101f761033136600461171c565b610602565b61021e7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b61021e7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101a2565b6101f76103a336600461177a565b610649565b6101f76103b63660046116f8565b610816565b6101f76103c9366004611803565b610887565b61021e7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6101f761040336600461182f565b61089e565b600254610100900460ff16158080156104285750600254600160ff909116105b806104425750303b158015610442575060025460ff166001145b6104675760405162461bcd60e51b815260040161045e90611893565b60405180910390fd5b6002805460ff19166001179055801561048a576002805461ff0019166101001790555b6104978989898989610972565b60cb805461ffff191685151561ff00191617610100851515021790556104bc82610a8c565b8015610502576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b610515610aa5565b61051f6000610a8c565b565b60675433906001600160a01b0316811461058f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161045e565b61059881610a8c565b50565b6105a3610aa5565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b6105f2610aff565b6105fd838383610b07565b505050565b61060a610aa5565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b6000546001600160a01b031633146106ad5760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204f4e4c595f4741544557416044820152605960f81b606482015260840161045e565b60fe546001600160a01b0384811691161461071b5760405162461bcd60e51b815260206004820152602860248201527f4368696c6445524332305072656469636174653a204f4e4c595f524f4f545f50604482015267524544494341544560c01b606482015260840161045e565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82161074a6020600084866118e1565b6107539161190b565b036107725761076d61076882602081866118e1565b610e84565b610810565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad6107a16020600084866118e1565b6107aa9161190b565b036107b95761076d8282611130565b60405162461bcd60e51b815260206004820152602660248201527f4368696c6445524332305072656469636174653a20494e56414c49445f5349476044820152654e415455524560d01b606482015260840161045e565b50505050565b61081e610aa5565b606780546001600160a01b0383166001600160a01b0319909116811790915561084f6035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61088f610aff565b61089a823383610b07565b5050565b600254610100900460ff16158080156108be5750600254600160ff909116105b806108d85750303b1580156108d8575060025460ff166001145b6108f45760405162461bcd60e51b815260040161045e90611893565b6002805460ff191660011790558015610917576002805461ff0019166101001790555b6109248686868686610972565b801561096a576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b61097c85826112a7565b6001600160a01b0384161580159061099c57506001600160a01b03831615155b6109f85760405162461bcd60e51b815260206004820152602760248201527f4368696c6445524332305072656469636174653a204241445f494e495449414c60448201526624ad20aa24a7a760c91b606482015260840161045e565b60fe80546001600160a01b038087166001600160a01b03199283161790925560ff80548684169216919091179055821615610a85576001600160a01b0382166000818152610100602052604080822080546001600160a01b03191661101090811790915590519092917f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61791a35b5050505050565b606780546001600160a01b031916905561059881611330565b6035546001600160a01b0316331461051f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045e565b61051f611382565b826001600160a01b03163b600003610b6b5760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204e4f545f434f4e545241436044820152601560fa1b606482015260840161045e565b6000836001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcf9190611929565b6001600160a01b0381811660009081526101006020526040902054919250858116911614610c0f5760405162461bcd60e51b815260040161045e90611946565b6001600160a01b038116610c2557610c25611989565b306001600160a01b0316846001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c919190611929565b6001600160a01b031614610ca757610ca7611989565b604051632770a7eb60e21b81526001600160a01b03851690639dc29fac90610cd5903390869060040161199f565b6020604051808303816000875af1158015610cf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1891906119b8565b610d645760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204255524e5f4641494c4544604482015260640161045e565b60005460fe54604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152878116608083015260a08083018890528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb94610df59492169290919060c401611a25565b600060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b50505050826001600160a01b0316846001600160a01b0316826001600160a01b03167f9c4f744b2e971d7058a9d8f43977e0e17bf7d57a48659f0e18541b7ee3d022e43386604051610e7692919061199f565b60405180910390a450505050565b6000808080610e9585870187611a59565b6001600160a01b038085166000908152610100602052604090205494985092965090945092501680610ed95760405162461bcd60e51b815260040161045e90611946565b806001600160a01b03163b600003610ef357610ef3611989565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f579190611929565b9050856001600160a01b0316816001600160a01b031614610f7a57610f7a611989565b6001600160a01b038116610f9057610f90611989565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611929565b6001600160a01b03161461101257611012611989565b6040516340c10f1960e01b81526001600160a01b038316906340c10f1990611040908790879060040161199f565b6020604051808303816000875af115801561105f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108391906119b8565b6110cf5760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204d494e545f4641494c4544604482015260640161045e565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f8be9001bb612c7123a1861dc0d9d94e683261f6cbbd7c7438b708975bc4908a3888760405161111e92919061199f565b60405180910390a45050505050505050565b600080808061114185870187611b4d565b92975090955093509150506001600160a01b03841661116257611162611989565b6001600160a01b0384811660009081526101006020526040902054161561118b5761118b611989565b60ff546040516bffffffffffffffffffffffff19606087901b1660208201526000916111db916001600160a01b039091169060340160405160208183030381529060405280519060200120611598565b6001600160a01b03868116600090815261010060205260409081902080546001600160a01b031916928416928317905551637b69774360e11b81529192509063f6d2ee8690611234908890889088908890600401611be8565b600060405180830381600087803b15801561124e57600080fd5b505af1158015611262573d6000803e3d6000fd5b50506040516001600160a01b038085169350881691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a350505050505050565b6001600160a01b038216158015906112be57508015155b61130a5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e000000604482015260640161045e565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff161561148d57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b0191611388916113e49190611c33565b6000604051808303818686fa925050503d8060008114611420576040519150601f19603f3d011682016040523d82523d6000602084013e611425565b606091505b509150915081801561144a57506000818060200190518101906114489190611c4f565b115b61148a5760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b604482015260640161045e565b50505b60cb54610100900460ff161561051f57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b0191611388916114f49190611c33565b6000604051808303818686fa925050503d8060008114611530576040519150601f19603f3d011682016040523d82523d6000602084013e611535565b606091505b509150915081801561155b5750808060200190518101906115569190611c4f565b600114155b61089a5760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b604482015260640161045e565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811661162f5760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b604482015260640161045e565b92915050565b6001600160a01b038116811461059857600080fd5b801515811461059857600080fd5b600080600080600080600080610100898b03121561167557600080fd5b883561168081611635565b9750602089013561169081611635565b965060408901356116a081611635565b955060608901356116b081611635565b94506080890135935060a08901356116c78161164a565b925060c08901356116d78161164a565b915060e08901356116e781611635565b809150509295985092959890939650565b60006020828403121561170a57600080fd5b813561171581611635565b9392505050565b60006020828403121561172e57600080fd5b81356117158161164a565b60008060006060848603121561174e57600080fd5b833561175981611635565b9250602084013561176981611635565b929592945050506040919091013590565b6000806000806060858703121561179057600080fd5b8435935060208501356117a281611635565b9250604085013567ffffffffffffffff808211156117bf57600080fd5b818701915087601f8301126117d357600080fd5b8135818111156117e257600080fd5b8860208285010111156117f457600080fd5b95989497505060200194505050565b6000806040838503121561181657600080fd5b823561182181611635565b946020939093013593505050565b600080600080600060a0868803121561184757600080fd5b853561185281611635565b9450602086013561186281611635565b9350604086013561187281611635565b9250606086013561188281611635565b949793965091946080013592915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600080858511156118f157600080fd5b838611156118fe57600080fd5b5050820193919092039150565b8035602083101561162f57600019602084900360031b1b1692915050565b60006020828403121561193b57600080fd5b815161171581611635565b60208082526023908201527f4368696c6445524332305072656469636174653a20554e4d41505045445f544f60408201526225a2a760e91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03929092168252602082015260400190565b6000602082840312156119ca57600080fd5b81516117158161164a565b60005b838110156119f05781810151838201526020016119d8565b50506000910152565b60008151808452611a118160208601602086016119d5565b601f01601f19169290920160200192915050565b6001600160a01b0384168152606060208201819052600090611a49908301856119f9565b9050826040830152949350505050565b60008060008060808587031215611a6f57600080fd5b8435611a7a81611635565b93506020850135611a8a81611635565b92506040850135611a9a81611635565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611ad157600080fd5b813567ffffffffffffffff80821115611aec57611aec611aaa565b604051601f8301601f19908116603f01168101908282118183101715611b1457611b14611aaa565b81604052838152866020858801011115611b2d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215611b6557600080fd5b853594506020860135611b7781611635565b9350604086013567ffffffffffffffff80821115611b9457600080fd5b611ba089838a01611ac0565b94506060880135915080821115611bb657600080fd5b50611bc388828901611ac0565b925050608086013560ff81168114611bda57600080fd5b809150509295509295909350565b6001600160a01b0385168152608060208201819052600090611c0c908301866119f9565b8281036040840152611c1e81866119f9565b91505060ff8316606083015295945050505050565b60008251611c458184602087016119d5565b9190910192915050565b600060208284031215611c6157600080fd5b505191905056fea264697066735822122070ffefdf7a3316289c6c68cd9f04a983e622a998ca1545df7103059d50b7cfc964736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` +var ChildERC20PredicateArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC20Predicate","sourceName":"contracts/blade/ChildERC20Predicate.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC20Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"address","name":"newNativeTokenRootAddress","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootERC20Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sourceTokenToDestinationToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IChildERC20","name":"childToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC20","name":"childToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50611531806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063947287cf116100b8578063d41f17711161007c578063d41f177114610283578063d7c9e3ec146102aa578063eeb49945146102d1578063f3fef3a3146102e4578063f6451255146102f7578063f7013ef61461031e57600080fd5b8063947287cf1461020e578063b075061114610217578063b176806514610220578063c3b35a7e14610247578063c5ac2b1c1461025c57600080fd5b806351351d53116100ff57806351351d53146101b557806355b01e4d146101c35780635ea5df79146101d157806371cf93b7146101e85780639079dfb3146101fb57600080fd5b806307b3e2521461013c578063116191b614610167578063284017f51461017a5780633b878c221461018357806340acd98d1461018c575b600080fd5b61014a6004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b60005461014a906001600160a01b031681565b61014a61202081565b61014a61101081565b61014a61019a366004611030565b6037602052600090815260409020546001600160a01b031681565b61014a6002600160a01b0381565b61014a6004600160991b0181565b6101da61138881565b60405190815260200161015e565b60355461014a906001600160a01b031681565b60365461014a906001600160a01b031681565b6101da61520881565b6101da60015481565b6101da7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61025a610255366004611054565b610331565b005b6101da7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b6101da7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6101da7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b61025a6102df366004611095565b610341565b61025a6102f236600461111e565b610513565b6101da7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b61025a61032c36600461114a565b610522565b61033c83838361063d565b505050565b6000546001600160a01b031633146103aa5760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204f4e4c595f4741544557416044820152605960f81b60648201526084015b60405180910390fd5b6035546001600160a01b038481169116146104185760405162461bcd60e51b815260206004820152602860248201527f4368696c6445524332305072656469636174653a204f4e4c595f524f4f545f50604482015267524544494341544560c01b60648201526084016103a1565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216104476020600084866111ae565b610450916111d8565b0361046f5761046a61046582602081866111ae565b6109b9565b61050d565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad61049e6020600084866111ae565b6104a7916111d8565b036104b65761046a8282610c64565b60405162461bcd60e51b815260206004820152602660248201527f4368696c6445524332305072656469636174653a20494e56414c49445f5349476044820152654e415455524560d01b60648201526084016103a1565b50505050565b61051e82338361063d565b5050565b600254610100900460ff16158080156105425750600254600160ff909116105b8061055c5750303b15801561055c575060025460ff166001145b6105bf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103a1565b6002805460ff1916600117905580156105e2576002805461ff0019166101001790555b6105ef8686868686610dd9565b8015610635576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b826001600160a01b03163b6000036106a15760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204e4f545f434f4e545241436044820152601560fa1b60648201526084016103a1565b6000836001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070591906111f6565b6001600160a01b038181166000908152603760205260409020549192508581169116146107445760405162461bcd60e51b81526004016103a190611213565b6001600160a01b03811661075a5761075a611256565b306001600160a01b0316846001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c691906111f6565b6001600160a01b0316146107dc576107dc611256565b604051632770a7eb60e21b81526001600160a01b03851690639dc29fac9061080a903390869060040161126c565b6020604051808303816000875af1158015610829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084d9190611285565b6108995760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204255524e5f4641494c454460448201526064016103a1565b600054603554604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152878116608083015260a08083018890528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb9461092a9492169290919060c4016112ed565b600060405180830381600087803b15801561094457600080fd5b505af1158015610958573d6000803e3d6000fd5b50505050826001600160a01b0316846001600160a01b0316826001600160a01b03167f9c4f744b2e971d7058a9d8f43977e0e17bf7d57a48659f0e18541b7ee3d022e433866040516109ab92919061126c565b60405180910390a450505050565b60008080806109ca85870187611321565b6001600160a01b0380851660009081526037602052604090205494985092965090945092501680610a0d5760405162461bcd60e51b81526004016103a190611213565b806001600160a01b03163b600003610a2757610a27611256565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8b91906111f6565b9050856001600160a01b0316816001600160a01b031614610aae57610aae611256565b6001600160a01b038116610ac457610ac4611256565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3091906111f6565b6001600160a01b031614610b4657610b46611256565b6040516340c10f1960e01b81526001600160a01b038316906340c10f1990610b74908790879060040161126c565b6020604051808303816000875af1158015610b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb79190611285565b610c035760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204d494e545f4641494c454460448201526064016103a1565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f8be9001bb612c7123a1861dc0d9d94e683261f6cbbd7c7438b708975bc4908a38887604051610c5292919061126c565b60405180910390a45050505050505050565b6000808080610c7585870187611415565b92975090955093509150506001600160a01b038416610c9657610c96611256565b6001600160a01b038481166000908152603760205260409020541615610cbe57610cbe611256565b6036546040516bffffffffffffffffffffffff19606087901b166020820152600091610d0e916001600160a01b039091169060340160405160208183030381529060405280519060200120610ef2565b6001600160a01b038681166000908152603760205260409081902080546001600160a01b031916928416928317905551637b69774360e11b81529192509063f6d2ee8690610d669088908890889088906004016114b0565b600060405180830381600087803b158015610d8057600080fd5b505af1158015610d94573d6000803e3d6000fd5b50506040516001600160a01b038085169350881691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a350505050505050565b610de38582610f8f565b6001600160a01b03841615801590610e0357506001600160a01b03831615155b610e5f5760405162461bcd60e51b815260206004820152602760248201527f4368696c6445524332305072656469636174653a204241445f494e495449414c60448201526624ad20aa24a7a760c91b60648201526084016103a1565b603580546001600160a01b038087166001600160a01b031992831617909255603680548684169216919091179055821615610eeb576001600160a01b03821660008181526037602052604080822080546001600160a01b03191661101090811790915590519092917f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61791a35b5050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116610f895760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b60448201526064016103a1565b92915050565b6001600160a01b03821615801590610fa657508015155b610ff25760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e00000060448201526064016103a1565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6001600160a01b038116811461102d57600080fd5b50565b60006020828403121561104257600080fd5b813561104d81611018565b9392505050565b60008060006060848603121561106957600080fd5b833561107481611018565b9250602084013561108481611018565b929592945050506040919091013590565b600080600080606085870312156110ab57600080fd5b8435935060208501356110bd81611018565b9250604085013567ffffffffffffffff808211156110da57600080fd5b818701915087601f8301126110ee57600080fd5b8135818111156110fd57600080fd5b88602082850101111561110f57600080fd5b95989497505060200194505050565b6000806040838503121561113157600080fd5b823561113c81611018565b946020939093013593505050565b600080600080600060a0868803121561116257600080fd5b853561116d81611018565b9450602086013561117d81611018565b9350604086013561118d81611018565b9250606086013561119d81611018565b949793965091946080013592915050565b600080858511156111be57600080fd5b838611156111cb57600080fd5b5050820193919092039150565b80356020831015610f8957600019602084900360031b1b1692915050565b60006020828403121561120857600080fd5b815161104d81611018565b60208082526023908201527f4368696c6445524332305072656469636174653a20554e4d41505045445f544f60408201526225a2a760e91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03929092168252602082015260400190565b60006020828403121561129757600080fd5b8151801515811461104d57600080fd5b6000815180845260005b818110156112cd576020818501810151868301820152016112b1565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090611311908301856112a7565b9050826040830152949350505050565b6000806000806080858703121561133757600080fd5b843561134281611018565b9350602085013561135281611018565b9250604085013561136281611018565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261139957600080fd5b813567ffffffffffffffff808211156113b4576113b4611372565b604051601f8301601f19908116603f011681019082821181831017156113dc576113dc611372565b816040528381528660208588010111156113f557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561142d57600080fd5b85359450602086013561143f81611018565b9350604086013567ffffffffffffffff8082111561145c57600080fd5b61146889838a01611388565b9450606088013591508082111561147e57600080fd5b5061148b88828901611388565b925050608086013560ff811681146114a257600080fd5b809150509295509295909350565b6001600160a01b03851681526080602082018190526000906114d4908301866112a7565b82810360408401526114e681866112a7565b91505060ff831660608301529594505050505056fea2646970667358221220e353397b773f5a8ca5e1cb306b05235c41ceb41941c4da3e4a68cb71932c89b364736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063947287cf116100b8578063d41f17711161007c578063d41f177114610283578063d7c9e3ec146102aa578063eeb49945146102d1578063f3fef3a3146102e4578063f6451255146102f7578063f7013ef61461031e57600080fd5b8063947287cf1461020e578063b075061114610217578063b176806514610220578063c3b35a7e14610247578063c5ac2b1c1461025c57600080fd5b806351351d53116100ff57806351351d53146101b557806355b01e4d146101c35780635ea5df79146101d157806371cf93b7146101e85780639079dfb3146101fb57600080fd5b806307b3e2521461013c578063116191b614610167578063284017f51461017a5780633b878c221461018357806340acd98d1461018c575b600080fd5b61014a6004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b60005461014a906001600160a01b031681565b61014a61202081565b61014a61101081565b61014a61019a366004611030565b6037602052600090815260409020546001600160a01b031681565b61014a6002600160a01b0381565b61014a6004600160991b0181565b6101da61138881565b60405190815260200161015e565b60355461014a906001600160a01b031681565b60365461014a906001600160a01b031681565b6101da61520881565b6101da60015481565b6101da7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61025a610255366004611054565b610331565b005b6101da7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b6101da7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6101da7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b61025a6102df366004611095565b610341565b61025a6102f236600461111e565b610513565b6101da7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b61025a61032c36600461114a565b610522565b61033c83838361063d565b505050565b6000546001600160a01b031633146103aa5760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204f4e4c595f4741544557416044820152605960f81b60648201526084015b60405180910390fd5b6035546001600160a01b038481169116146104185760405162461bcd60e51b815260206004820152602860248201527f4368696c6445524332305072656469636174653a204f4e4c595f524f4f545f50604482015267524544494341544560c01b60648201526084016103a1565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216104476020600084866111ae565b610450916111d8565b0361046f5761046a61046582602081866111ae565b6109b9565b61050d565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad61049e6020600084866111ae565b6104a7916111d8565b036104b65761046a8282610c64565b60405162461bcd60e51b815260206004820152602660248201527f4368696c6445524332305072656469636174653a20494e56414c49445f5349476044820152654e415455524560d01b60648201526084016103a1565b50505050565b61051e82338361063d565b5050565b600254610100900460ff16158080156105425750600254600160ff909116105b8061055c5750303b15801561055c575060025460ff166001145b6105bf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016103a1565b6002805460ff1916600117905580156105e2576002805461ff0019166101001790555b6105ef8686868686610dd9565b8015610635576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b826001600160a01b03163b6000036106a15760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204e4f545f434f4e545241436044820152601560fa1b60648201526084016103a1565b6000836001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070591906111f6565b6001600160a01b038181166000908152603760205260409020549192508581169116146107445760405162461bcd60e51b81526004016103a190611213565b6001600160a01b03811661075a5761075a611256565b306001600160a01b0316846001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c691906111f6565b6001600160a01b0316146107dc576107dc611256565b604051632770a7eb60e21b81526001600160a01b03851690639dc29fac9061080a903390869060040161126c565b6020604051808303816000875af1158015610829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084d9190611285565b6108995760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204255524e5f4641494c454460448201526064016103a1565b600054603554604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152878116608083015260a08083018890528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb9461092a9492169290919060c4016112ed565b600060405180830381600087803b15801561094457600080fd5b505af1158015610958573d6000803e3d6000fd5b50505050826001600160a01b0316846001600160a01b0316826001600160a01b03167f9c4f744b2e971d7058a9d8f43977e0e17bf7d57a48659f0e18541b7ee3d022e433866040516109ab92919061126c565b60405180910390a450505050565b60008080806109ca85870187611321565b6001600160a01b0380851660009081526037602052604090205494985092965090945092501680610a0d5760405162461bcd60e51b81526004016103a190611213565b806001600160a01b03163b600003610a2757610a27611256565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8b91906111f6565b9050856001600160a01b0316816001600160a01b031614610aae57610aae611256565b6001600160a01b038116610ac457610ac4611256565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3091906111f6565b6001600160a01b031614610b4657610b46611256565b6040516340c10f1960e01b81526001600160a01b038316906340c10f1990610b74908790879060040161126c565b6020604051808303816000875af1158015610b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb79190611285565b610c035760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204d494e545f4641494c454460448201526064016103a1565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f8be9001bb612c7123a1861dc0d9d94e683261f6cbbd7c7438b708975bc4908a38887604051610c5292919061126c565b60405180910390a45050505050505050565b6000808080610c7585870187611415565b92975090955093509150506001600160a01b038416610c9657610c96611256565b6001600160a01b038481166000908152603760205260409020541615610cbe57610cbe611256565b6036546040516bffffffffffffffffffffffff19606087901b166020820152600091610d0e916001600160a01b039091169060340160405160208183030381529060405280519060200120610ef2565b6001600160a01b038681166000908152603760205260409081902080546001600160a01b031916928416928317905551637b69774360e11b81529192509063f6d2ee8690610d669088908890889088906004016114b0565b600060405180830381600087803b158015610d8057600080fd5b505af1158015610d94573d6000803e3d6000fd5b50506040516001600160a01b038085169350881691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a350505050505050565b610de38582610f8f565b6001600160a01b03841615801590610e0357506001600160a01b03831615155b610e5f5760405162461bcd60e51b815260206004820152602760248201527f4368696c6445524332305072656469636174653a204241445f494e495449414c60448201526624ad20aa24a7a760c91b60648201526084016103a1565b603580546001600160a01b038087166001600160a01b031992831617909255603680548684169216919091179055821615610eeb576001600160a01b03821660008181526037602052604080822080546001600160a01b03191661101090811790915590519092917f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61791a35b5050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116610f895760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b60448201526064016103a1565b92915050565b6001600160a01b03821615801590610fa657508015155b610ff25760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e00000060448201526064016103a1565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6001600160a01b038116811461102d57600080fd5b50565b60006020828403121561104257600080fd5b813561104d81611018565b9392505050565b60008060006060848603121561106957600080fd5b833561107481611018565b9250602084013561108481611018565b929592945050506040919091013590565b600080600080606085870312156110ab57600080fd5b8435935060208501356110bd81611018565b9250604085013567ffffffffffffffff808211156110da57600080fd5b818701915087601f8301126110ee57600080fd5b8135818111156110fd57600080fd5b88602082850101111561110f57600080fd5b95989497505060200194505050565b6000806040838503121561113157600080fd5b823561113c81611018565b946020939093013593505050565b600080600080600060a0868803121561116257600080fd5b853561116d81611018565b9450602086013561117d81611018565b9350604086013561118d81611018565b9250606086013561119d81611018565b949793965091946080013592915050565b600080858511156111be57600080fd5b838611156111cb57600080fd5b5050820193919092039150565b80356020831015610f8957600019602084900360031b1b1692915050565b60006020828403121561120857600080fd5b815161104d81611018565b60208082526023908201527f4368696c6445524332305072656469636174653a20554e4d41505045445f544f60408201526225a2a760e91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03929092168252602082015260400190565b60006020828403121561129757600080fd5b8151801515811461104d57600080fd5b6000815180845260005b818110156112cd576020818501810151868301820152016112b1565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090611311908301856112a7565b9050826040830152949350505050565b6000806000806080858703121561133757600080fd5b843561134281611018565b9350602085013561135281611018565b9250604085013561136281611018565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261139957600080fd5b813567ffffffffffffffff808211156113b4576113b4611372565b604051601f8301601f19908116603f011681019082821181831017156113dc576113dc611372565b816040528381528660208588010111156113f557600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561142d57600080fd5b85359450602086013561143f81611018565b9350604086013567ffffffffffffffff8082111561145c57600080fd5b61146889838a01611388565b9450606088013591508082111561147e57600080fd5b5061148b88828901611388565b925050608086013560ff811681146114a257600080fd5b809150509295509295909350565b6001600160a01b03851681526080602082018190526000906114d4908301866112a7565b82810360408401526114e681866112a7565b91505060ff831660608301529594505050505056fea2646970667358221220e353397b773f5a8ca5e1cb306b05235c41ceb41941c4da3e4a68cb71932c89b364736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` +var ChildERC20PredicateACLArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC20PredicateAccessList","sourceName":"contracts/blade/ChildERC20PredicateAccessList.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"AllowListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"BlockListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC20Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"address","name":"newNativeTokenRootAddress","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"},{"internalType":"bool","name":"newUseAllowList","type":"bool"},{"internalType":"bool","name":"newUseBlockList","type":"bool"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC20Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"address","name":"newNativeTokenRootAddress","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootERC20Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseAllowList","type":"bool"}],"name":"setAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseBlockList","type":"bool"}],"name":"setBlockList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sourceTokenToDestinationToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC20","name":"childToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC20","name":"childToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50611c9e806100206000396000f3fe608060405234801561001057600080fd5b506004361061018f5760003560e01c8063947287cf116100e4578063d41f177111610092578063d41f177114610336578063d7c9e3ec1461035d578063e30c397814610384578063eeb4994514610395578063f2fde38b146103a8578063f3fef3a3146103bb578063f6451255146103ce578063f7013ef6146103f557600080fd5b8063947287cf1461029d578063b0750611146102a6578063b1768065146102af578063c1225a20146102d6578063c3b35a7e146102e9578063c5ac2b1c146102fc578063c5e4683a1461032357600080fd5b806355b01e4d1161014157806355b01e4d146102315780635ea5df791461023f578063715018a61461025657806371cf93b71461025e57806379ba5097146102715780638da5cb5b146102795780639079dfb31461028a57600080fd5b806307b3e25214610194578063116191b6146101bf578063284017f5146101d25780633b878c22146101db57806340acd98d146101e45780634a86653c1461020e57806351351d5314610223575b600080fd5b6101a26004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546101a2906001600160a01b031681565b6101a261202081565b6101a261101081565b6101a26101f236600461164a565b610100602052600090815260409020546001600160a01b031681565b61022161021c36600461167c565b610408565b005b6101a26002600160a01b0381565b6101a26004600160991b0181565b61024861138881565b6040519081526020016101b6565b61022161050d565b60fe546101a2906001600160a01b031681565b610221610521565b6035546001600160a01b03166101a2565b60ff546101a2906001600160a01b031681565b61024861520881565b61024860015481565b6102487f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6102216102e436600461171c565b61059b565b6102216102f7366004611739565b6105ea565b6102487faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61022161033136600461171c565b610602565b6102487f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6102487f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101a2565b6102216103a336600461177a565b610649565b6102216103b636600461164a565b610816565b6102216103c9366004611803565b610887565b6102487f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b61022161040336600461182f565b61089e565b600254610100900460ff16158080156104285750600254600160ff909116105b806104425750303b158015610442575060025460ff166001145b6104675760405162461bcd60e51b815260040161045e90611893565b60405180910390fd5b6002805460ff19166001179055801561048a576002805461ff0019166101001790555b6104978989898989610972565b60cb805461ffff191685151561ff00191617610100851515021790556104bc82610a8c565b8015610502576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b610515610aa5565b61051f6000610a8c565b565b60675433906001600160a01b0316811461058f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161045e565b61059881610a8c565b50565b6105a3610aa5565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b6105f2610aff565b6105fd838383610b07565b505050565b61060a610aa5565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b6000546001600160a01b031633146106ad5760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204f4e4c595f4741544557416044820152605960f81b606482015260840161045e565b60fe546001600160a01b0384811691161461071b5760405162461bcd60e51b815260206004820152602860248201527f4368696c6445524332305072656469636174653a204f4e4c595f524f4f545f50604482015267524544494341544560c01b606482015260840161045e565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82161074a6020600084866118e1565b6107539161190b565b036107725761076d61076882602081866118e1565b610e84565b610810565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad6107a16020600084866118e1565b6107aa9161190b565b036107b95761076d8282611130565b60405162461bcd60e51b815260206004820152602660248201527f4368696c6445524332305072656469636174653a20494e56414c49445f5349476044820152654e415455524560d01b606482015260840161045e565b50505050565b61081e610aa5565b606780546001600160a01b0383166001600160a01b0319909116811790915561084f6035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61088f610aff565b61089a823383610b07565b5050565b600254610100900460ff16158080156108be5750600254600160ff909116105b806108d85750303b1580156108d8575060025460ff166001145b6108f45760405162461bcd60e51b815260040161045e90611893565b6002805460ff191660011790558015610917576002805461ff0019166101001790555b6109248686868686610972565b801561096a576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b61097c85826112a7565b6001600160a01b0384161580159061099c57506001600160a01b03831615155b6109f85760405162461bcd60e51b815260206004820152602760248201527f4368696c6445524332305072656469636174653a204241445f494e495449414c60448201526624ad20aa24a7a760c91b606482015260840161045e565b60fe80546001600160a01b038087166001600160a01b03199283161790925560ff80548684169216919091179055821615610a85576001600160a01b0382166000818152610100602052604080822080546001600160a01b03191661101090811790915590519092917f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61791a35b5050505050565b606780546001600160a01b031916905561059881611330565b6035546001600160a01b0316331461051f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045e565b61051f611382565b826001600160a01b03163b600003610b6b5760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204e4f545f434f4e545241436044820152601560fa1b606482015260840161045e565b6000836001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcf9190611929565b6001600160a01b0381811660009081526101006020526040902054919250858116911614610c0f5760405162461bcd60e51b815260040161045e90611946565b6001600160a01b038116610c2557610c25611989565b306001600160a01b0316846001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c919190611929565b6001600160a01b031614610ca757610ca7611989565b604051632770a7eb60e21b81526001600160a01b03851690639dc29fac90610cd5903390869060040161199f565b6020604051808303816000875af1158015610cf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1891906119b8565b610d645760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204255524e5f4641494c4544604482015260640161045e565b60005460fe54604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152878116608083015260a08083018890528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb94610df59492169290919060c401611a25565b600060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b50505050826001600160a01b0316846001600160a01b0316826001600160a01b03167f9c4f744b2e971d7058a9d8f43977e0e17bf7d57a48659f0e18541b7ee3d022e43386604051610e7692919061199f565b60405180910390a450505050565b6000808080610e9585870187611a59565b6001600160a01b038085166000908152610100602052604090205494985092965090945092501680610ed95760405162461bcd60e51b815260040161045e90611946565b806001600160a01b03163b600003610ef357610ef3611989565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f579190611929565b9050856001600160a01b0316816001600160a01b031614610f7a57610f7a611989565b6001600160a01b038116610f9057610f90611989565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611929565b6001600160a01b03161461101257611012611989565b6040516340c10f1960e01b81526001600160a01b038316906340c10f1990611040908790879060040161199f565b6020604051808303816000875af115801561105f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108391906119b8565b6110cf5760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204d494e545f4641494c4544604482015260640161045e565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f8be9001bb612c7123a1861dc0d9d94e683261f6cbbd7c7438b708975bc4908a3888760405161111e92919061199f565b60405180910390a45050505050505050565b600080808061114185870187611b4d565b92975090955093509150506001600160a01b03841661116257611162611989565b6001600160a01b0384811660009081526101006020526040902054161561118b5761118b611989565b60ff546040516bffffffffffffffffffffffff19606087901b1660208201526000916111db916001600160a01b039091169060340160405160208183030381529060405280519060200120611598565b6001600160a01b03868116600090815261010060205260409081902080546001600160a01b031916928416928317905551637b69774360e11b81529192509063f6d2ee8690611234908890889088908890600401611be8565b600060405180830381600087803b15801561124e57600080fd5b505af1158015611262573d6000803e3d6000fd5b50506040516001600160a01b038085169350881691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a350505050505050565b6001600160a01b038216158015906112be57508015155b61130a5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e000000604482015260640161045e565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff161561148d57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b0191611388916113e49190611c33565b6000604051808303818686fa925050503d8060008114611420576040519150601f19603f3d011682016040523d82523d6000602084013e611425565b606091505b509150915081801561144a57506000818060200190518101906114489190611c4f565b115b61148a5760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b604482015260640161045e565b50505b60cb54610100900460ff161561051f57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b0191611388916114f49190611c33565b6000604051808303818686fa925050503d8060008114611530576040519150601f19603f3d011682016040523d82523d6000602084013e611535565b606091505b509150915081801561155b5750808060200190518101906115569190611c4f565b600114155b61089a5760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b604482015260640161045e565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811661162f5760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b604482015260640161045e565b92915050565b6001600160a01b038116811461059857600080fd5b60006020828403121561165c57600080fd5b813561166781611635565b9392505050565b801515811461059857600080fd5b600080600080600080600080610100898b03121561169957600080fd5b88356116a481611635565b975060208901356116b481611635565b965060408901356116c481611635565b955060608901356116d481611635565b94506080890135935060a08901356116eb8161166e565b925060c08901356116fb8161166e565b915060e089013561170b81611635565b809150509295985092959890939650565b60006020828403121561172e57600080fd5b81356116678161166e565b60008060006060848603121561174e57600080fd5b833561175981611635565b9250602084013561176981611635565b929592945050506040919091013590565b6000806000806060858703121561179057600080fd5b8435935060208501356117a281611635565b9250604085013567ffffffffffffffff808211156117bf57600080fd5b818701915087601f8301126117d357600080fd5b8135818111156117e257600080fd5b8860208285010111156117f457600080fd5b95989497505060200194505050565b6000806040838503121561181657600080fd5b823561182181611635565b946020939093013593505050565b600080600080600060a0868803121561184757600080fd5b853561185281611635565b9450602086013561186281611635565b9350604086013561187281611635565b9250606086013561188281611635565b949793965091946080013592915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600080858511156118f157600080fd5b838611156118fe57600080fd5b5050820193919092039150565b8035602083101561162f57600019602084900360031b1b1692915050565b60006020828403121561193b57600080fd5b815161166781611635565b60208082526023908201527f4368696c6445524332305072656469636174653a20554e4d41505045445f544f60408201526225a2a760e91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03929092168252602082015260400190565b6000602082840312156119ca57600080fd5b81516116678161166e565b60005b838110156119f05781810151838201526020016119d8565b50506000910152565b60008151808452611a118160208601602086016119d5565b601f01601f19169290920160200192915050565b6001600160a01b0384168152606060208201819052600090611a49908301856119f9565b9050826040830152949350505050565b60008060008060808587031215611a6f57600080fd5b8435611a7a81611635565b93506020850135611a8a81611635565b92506040850135611a9a81611635565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611ad157600080fd5b813567ffffffffffffffff80821115611aec57611aec611aaa565b604051601f8301601f19908116603f01168101908282118183101715611b1457611b14611aaa565b81604052838152866020858801011115611b2d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215611b6557600080fd5b853594506020860135611b7781611635565b9350604086013567ffffffffffffffff80821115611b9457600080fd5b611ba089838a01611ac0565b94506060880135915080821115611bb657600080fd5b50611bc388828901611ac0565b925050608086013560ff81168114611bda57600080fd5b809150509295509295909350565b6001600160a01b0385168152608060208201819052600090611c0c908301866119f9565b8281036040840152611c1e81866119f9565b91505060ff8316606083015295945050505050565b60008251611c458184602087016119d5565b9190910192915050565b600060208284031215611c6157600080fd5b505191905056fea2646970667358221220cf91cc84f065031d9657a1b6309639904be0e393acc07b4954b4a5865a050a2064736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b506004361061018f5760003560e01c8063947287cf116100e4578063d41f177111610092578063d41f177114610336578063d7c9e3ec1461035d578063e30c397814610384578063eeb4994514610395578063f2fde38b146103a8578063f3fef3a3146103bb578063f6451255146103ce578063f7013ef6146103f557600080fd5b8063947287cf1461029d578063b0750611146102a6578063b1768065146102af578063c1225a20146102d6578063c3b35a7e146102e9578063c5ac2b1c146102fc578063c5e4683a1461032357600080fd5b806355b01e4d1161014157806355b01e4d146102315780635ea5df791461023f578063715018a61461025657806371cf93b71461025e57806379ba5097146102715780638da5cb5b146102795780639079dfb31461028a57600080fd5b806307b3e25214610194578063116191b6146101bf578063284017f5146101d25780633b878c22146101db57806340acd98d146101e45780634a86653c1461020e57806351351d5314610223575b600080fd5b6101a26004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546101a2906001600160a01b031681565b6101a261202081565b6101a261101081565b6101a26101f236600461164a565b610100602052600090815260409020546001600160a01b031681565b61022161021c36600461167c565b610408565b005b6101a26002600160a01b0381565b6101a26004600160991b0181565b61024861138881565b6040519081526020016101b6565b61022161050d565b60fe546101a2906001600160a01b031681565b610221610521565b6035546001600160a01b03166101a2565b60ff546101a2906001600160a01b031681565b61024861520881565b61024860015481565b6102487f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6102216102e436600461171c565b61059b565b6102216102f7366004611739565b6105ea565b6102487faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61022161033136600461171c565b610602565b6102487f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6102487f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101a2565b6102216103a336600461177a565b610649565b6102216103b636600461164a565b610816565b6102216103c9366004611803565b610887565b6102487f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b61022161040336600461182f565b61089e565b600254610100900460ff16158080156104285750600254600160ff909116105b806104425750303b158015610442575060025460ff166001145b6104675760405162461bcd60e51b815260040161045e90611893565b60405180910390fd5b6002805460ff19166001179055801561048a576002805461ff0019166101001790555b6104978989898989610972565b60cb805461ffff191685151561ff00191617610100851515021790556104bc82610a8c565b8015610502576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b610515610aa5565b61051f6000610a8c565b565b60675433906001600160a01b0316811461058f5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b606482015260840161045e565b61059881610a8c565b50565b6105a3610aa5565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b6105f2610aff565b6105fd838383610b07565b505050565b61060a610aa5565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b6000546001600160a01b031633146106ad5760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204f4e4c595f4741544557416044820152605960f81b606482015260840161045e565b60fe546001600160a01b0384811691161461071b5760405162461bcd60e51b815260206004820152602860248201527f4368696c6445524332305072656469636174653a204f4e4c595f524f4f545f50604482015267524544494341544560c01b606482015260840161045e565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82161074a6020600084866118e1565b6107539161190b565b036107725761076d61076882602081866118e1565b610e84565b610810565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad6107a16020600084866118e1565b6107aa9161190b565b036107b95761076d8282611130565b60405162461bcd60e51b815260206004820152602660248201527f4368696c6445524332305072656469636174653a20494e56414c49445f5349476044820152654e415455524560d01b606482015260840161045e565b50505050565b61081e610aa5565b606780546001600160a01b0383166001600160a01b0319909116811790915561084f6035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b61088f610aff565b61089a823383610b07565b5050565b600254610100900460ff16158080156108be5750600254600160ff909116105b806108d85750303b1580156108d8575060025460ff166001145b6108f45760405162461bcd60e51b815260040161045e90611893565b6002805460ff191660011790558015610917576002805461ff0019166101001790555b6109248686868686610972565b801561096a576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b61097c85826112a7565b6001600160a01b0384161580159061099c57506001600160a01b03831615155b6109f85760405162461bcd60e51b815260206004820152602760248201527f4368696c6445524332305072656469636174653a204241445f494e495449414c60448201526624ad20aa24a7a760c91b606482015260840161045e565b60fe80546001600160a01b038087166001600160a01b03199283161790925560ff80548684169216919091179055821615610a85576001600160a01b0382166000818152610100602052604080822080546001600160a01b03191661101090811790915590519092917f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61791a35b5050505050565b606780546001600160a01b031916905561059881611330565b6035546001600160a01b0316331461051f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045e565b61051f611382565b826001600160a01b03163b600003610b6b5760405162461bcd60e51b815260206004820152602160248201527f4368696c6445524332305072656469636174653a204e4f545f434f4e545241436044820152601560fa1b606482015260840161045e565b6000836001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcf9190611929565b6001600160a01b0381811660009081526101006020526040902054919250858116911614610c0f5760405162461bcd60e51b815260040161045e90611946565b6001600160a01b038116610c2557610c25611989565b306001600160a01b0316846001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c919190611929565b6001600160a01b031614610ca757610ca7611989565b604051632770a7eb60e21b81526001600160a01b03851690639dc29fac90610cd5903390869060040161199f565b6020604051808303816000875af1158015610cf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1891906119b8565b610d645760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204255524e5f4641494c4544604482015260640161045e565b60005460fe54604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152878116608083015260a08083018890528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb94610df59492169290919060c401611a25565b600060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b50505050826001600160a01b0316846001600160a01b0316826001600160a01b03167f9c4f744b2e971d7058a9d8f43977e0e17bf7d57a48659f0e18541b7ee3d022e43386604051610e7692919061199f565b60405180910390a450505050565b6000808080610e9585870187611a59565b6001600160a01b038085166000908152610100602052604090205494985092965090945092501680610ed95760405162461bcd60e51b815260040161045e90611946565b806001600160a01b03163b600003610ef357610ef3611989565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f579190611929565b9050856001600160a01b0316816001600160a01b031614610f7a57610f7a611989565b6001600160a01b038116610f9057610f90611989565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611929565b6001600160a01b03161461101257611012611989565b6040516340c10f1960e01b81526001600160a01b038316906340c10f1990611040908790879060040161199f565b6020604051808303816000875af115801561105f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108391906119b8565b6110cf5760405162461bcd60e51b815260206004820181905260248201527f4368696c6445524332305072656469636174653a204d494e545f4641494c4544604482015260640161045e565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f8be9001bb612c7123a1861dc0d9d94e683261f6cbbd7c7438b708975bc4908a3888760405161111e92919061199f565b60405180910390a45050505050505050565b600080808061114185870187611b4d565b92975090955093509150506001600160a01b03841661116257611162611989565b6001600160a01b0384811660009081526101006020526040902054161561118b5761118b611989565b60ff546040516bffffffffffffffffffffffff19606087901b1660208201526000916111db916001600160a01b039091169060340160405160208183030381529060405280519060200120611598565b6001600160a01b03868116600090815261010060205260409081902080546001600160a01b031916928416928317905551637b69774360e11b81529192509063f6d2ee8690611234908890889088908890600401611be8565b600060405180830381600087803b15801561124e57600080fd5b505af1158015611262573d6000803e3d6000fd5b50506040516001600160a01b038085169350881691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a350505050505050565b6001600160a01b038216158015906112be57508015155b61130a5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e000000604482015260640161045e565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff161561148d57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b0191611388916113e49190611c33565b6000604051808303818686fa925050503d8060008114611420576040519150601f19603f3d011682016040523d82523d6000602084013e611425565b606091505b509150915081801561144a57506000818060200190518101906114489190611c4f565b115b61148a5760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b604482015260640161045e565b50505b60cb54610100900460ff161561051f57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b0191611388916114f49190611c33565b6000604051808303818686fa925050503d8060008114611530576040519150601f19603f3d011682016040523d82523d6000602084013e611535565b606091505b509150915081801561155b5750808060200190518101906115569190611c4f565b600114155b61089a5760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b604482015260640161045e565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811661162f5760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b604482015260640161045e565b92915050565b6001600160a01b038116811461059857600080fd5b60006020828403121561165c57600080fd5b813561166781611635565b9392505050565b801515811461059857600080fd5b600080600080600080600080610100898b03121561169957600080fd5b88356116a481611635565b975060208901356116b481611635565b965060408901356116c481611635565b955060608901356116d481611635565b94506080890135935060a08901356116eb8161166e565b925060c08901356116fb8161166e565b915060e089013561170b81611635565b809150509295985092959890939650565b60006020828403121561172e57600080fd5b81356116678161166e565b60008060006060848603121561174e57600080fd5b833561175981611635565b9250602084013561176981611635565b929592945050506040919091013590565b6000806000806060858703121561179057600080fd5b8435935060208501356117a281611635565b9250604085013567ffffffffffffffff808211156117bf57600080fd5b818701915087601f8301126117d357600080fd5b8135818111156117e257600080fd5b8860208285010111156117f457600080fd5b95989497505060200194505050565b6000806040838503121561181657600080fd5b823561182181611635565b946020939093013593505050565b600080600080600060a0868803121561184757600080fd5b853561185281611635565b9450602086013561186281611635565b9350604086013561187281611635565b9250606086013561188281611635565b949793965091946080013592915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600080858511156118f157600080fd5b838611156118fe57600080fd5b5050820193919092039150565b8035602083101561162f57600019602084900360031b1b1692915050565b60006020828403121561193b57600080fd5b815161166781611635565b60208082526023908201527f4368696c6445524332305072656469636174653a20554e4d41505045445f544f60408201526225a2a760e91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03929092168252602082015260400190565b6000602082840312156119ca57600080fd5b81516116678161166e565b60005b838110156119f05781810151838201526020016119d8565b50506000910152565b60008151808452611a118160208601602086016119d5565b601f01601f19169290920160200192915050565b6001600160a01b0384168152606060208201819052600090611a49908301856119f9565b9050826040830152949350505050565b60008060008060808587031215611a6f57600080fd5b8435611a7a81611635565b93506020850135611a8a81611635565b92506040850135611a9a81611635565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611ad157600080fd5b813567ffffffffffffffff80821115611aec57611aec611aaa565b604051601f8301601f19908116603f01168101908282118183101715611b1457611b14611aaa565b81604052838152866020858801011115611b2d57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215611b6557600080fd5b853594506020860135611b7781611635565b9350604086013567ffffffffffffffff80821115611b9457600080fd5b611ba089838a01611ac0565b94506060880135915080821115611bb657600080fd5b50611bc388828901611ac0565b925050608086013560ff81168114611bda57600080fd5b809150509295509295909350565b6001600160a01b0385168152608060208201819052600090611c0c908301866119f9565b8281036040840152611c1e81866119f9565b91505060ff8316606083015295945050505050565b60008251611c458184602087016119d5565b9190910192915050565b600060208284031215611c6157600080fd5b505191905056fea2646970667358221220cf91cc84f065031d9657a1b6309639904be0e393acc07b4954b4a5865a050a2064736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` var RootERC20PredicateArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"RootERC20Predicate","sourceName":"contracts/bridge/RootERC20Predicate.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"depositor","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"childERC20Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20Metadata","name":"rootToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20Metadata","name":"rootToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"depositTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newChildERC20Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"address","name":"newNativeTokenRoot","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20Metadata","name":"rootToken","type":"address"}],"name":"mapToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nativeTokenRoot","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sourceTokenToDestinationToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b506114bc806100206000396000f3fe608060405234801561001057600080fd5b50600436106100e05760003560e01c8063d41f177111610087578063d41f1771146101de578063d57184e414610205578063d7c9e3ec1461021e578063eeb4994514610245578063f213159c14610258578063f4a120f71461026b578063f64512551461027e578063f7013ef6146102a557600080fd5b8063116191b6146100e557806340acd98d1461011557806347e7ef241461013e5780636a00c1d7146101535780639079dfb314610166578063b075061114610179578063b176806514610190578063c5ac2b1c146101b7575b600080fd5b6000546100f8906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100f861012336600461103d565b6004602052600090815260409020546001600160a01b031681565b61015161014c366004611061565b6102b8565b005b6005546100f8906001600160a01b031681565b6003546100f8906001600160a01b031681565b61018260015481565b60405190815260200161010c565b6101827f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6101827faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b6101827f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6002546100f8906201000090046001600160a01b031681565b6101827f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b61015161025336600461108d565b6102c7565b610151610266366004611116565b61044d565b6100f861027936600461103d565b61045d565b6101827f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6101516102b3366004611157565b610824565b6102c382338361093f565b5050565b6000546001600160a01b031633146103265760405162461bcd60e51b815260206004820181905260248201527f526f6f7445524332305072656469636174653a204f4e4c595f4741544557415960448201526064015b60405180910390fd5b6002546001600160a01b0384811662010000909204161461039a5760405162461bcd60e51b815260206004820152602860248201527f526f6f7445524332305072656469636174653a204f4e4c595f4348494c445f50604482015267524544494341544560c01b606482015260840161031d565b7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696103c96020600084866111bb565b6103d2916111e5565b036103f1576103ec6103e782602081866111bb565b610abd565b610447565b60405162461bcd60e51b815260206004820152602560248201527f526f6f7445524332305072656469636174653a20494e56414c49445f5349474e604482015264415455524560d81b606482015260840161031d565b50505050565b61045883838361093f565b505050565b60006001600160a01b0382166104bf5760405162461bcd60e51b815260206004820152602160248201527f526f6f7445524332305072656469636174653a20494e56414c49445f544f4b456044820152602760f91b606482015260840161031d565b6001600160a01b0382811660009081526004602052604090205416156105325760405162461bcd60e51b815260206004820152602260248201527f526f6f7445524332305072656469636174653a20414c52454144595f4d415050604482015261115160f21b606482015260840161031d565b6002546003546040516bffffffffffffffffffffffff19606086901b166020820152620100009092046001600160a01b03908116926000926105e6921690603401604051602081830303815290604052805190602001208460405160388101919091526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b6001600160a01b03858116600081815260046020819052604080832080546001600160a01b031916878716179055825481516306fdde0360e01b815291519697509094169463417d5acb9488947f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad948c9491936306fdde039380840193908290030181865afa15801561067d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106a5919081019061123e565b896001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106e3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261070b919081019061123e565b8a6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076d91906112e0565b60405160200161078195949392919061132f565b60408051601f19818403018152908290526001546001600160e01b031960e086901b1683526107b39392600401611381565b600060405180830381600087803b1580156107cd57600080fd5b505af11580156107e1573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a39392505050565b600254610100900460ff16158080156108445750600254600160ff909116105b8061085e5750303b15801561085e575060025460ff166001145b6108c15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161031d565b6002805460ff1916600117905580156108e4576002805461ff0019166101001790555b6108f18686868686610b75565b8015610937576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6001600160a01b03808416600090815260046020526040902054168061096b576109688461045d565b90505b6001600160a01b038116610981576109816113b5565b6109966001600160a01b038516333085610cad565b600054600254604080517f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82160208201526001600160a01b0388811682840152336060830152878116608083015260a08083018890528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb94610a2f94620100009091049092169290919060c401611381565b600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50505050826001600160a01b0316816001600160a01b0316856001600160a01b03167f8be9001bb612c7123a1861dc0d9d94e683261f6cbbd7c7438b708975bc4908a33386604051610ab09291906113cb565b60405180910390a4610447565b6000808080610ace858701876113e4565b6001600160a01b0380851660009081526004602052604090205494985092965090945092501680610b0157610b016113b5565b610b156001600160a01b0386168484610d18565b826001600160a01b0316816001600160a01b0316866001600160a01b03167f9c4f744b2e971d7058a9d8f43977e0e17bf7d57a48659f0e18541b7ee3d022e48786604051610b649291906113cb565b60405180910390a450505050505050565b610b7f8582610d37565b6001600160a01b03841615801590610b9f57506001600160a01b03831615155b610bfa5760405162461bcd60e51b815260206004820152602660248201527f526f6f7445524332305072656469636174653a204241445f494e495449414c496044820152652d20aa24a7a760d11b606482015260840161031d565b6002805462010000600160b01b031916620100006001600160a01b038781169190910291909117909155600380546001600160a01b031916858316179055821615610ca657600580546001600160a01b03199081166001600160a01b038581169182178455600091825260046020526040808320805461101095168517905593549351929316917f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e6179190a35b5050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526104479085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610dc0565b6104588363a9059cbb60e01b8484604051602401610ce19291906113cb565b6001600160a01b03821615801590610d4e57508015155b610d9a5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e000000604482015260640161031d565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6000610e15826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610e959092919063ffffffff16565b9050805160001480610e36575080806020019051810190610e369190611435565b6104585760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161031d565b6060610ea48484600085610eac565b949350505050565b606082471015610f0d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161031d565b600080866001600160a01b03168587604051610f299190611457565b60006040518083038185875af1925050503d8060008114610f66576040519150601f19603f3d011682016040523d82523d6000602084013e610f6b565b606091505b5091509150610f7c87838387610f87565b979650505050505050565b60608315610ff6578251600003610fef576001600160a01b0385163b610fef5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161031d565b5081610ea4565b610ea4838381511561100b5781518083602001fd5b8060405162461bcd60e51b815260040161031d9190611473565b6001600160a01b038116811461103a57600080fd5b50565b60006020828403121561104f57600080fd5b813561105a81611025565b9392505050565b6000806040838503121561107457600080fd5b823561107f81611025565b946020939093013593505050565b600080600080606085870312156110a357600080fd5b8435935060208501356110b581611025565b9250604085013567ffffffffffffffff808211156110d257600080fd5b818701915087601f8301126110e657600080fd5b8135818111156110f557600080fd5b88602082850101111561110757600080fd5b95989497505060200194505050565b60008060006060848603121561112b57600080fd5b833561113681611025565b9250602084013561114681611025565b929592945050506040919091013590565b600080600080600060a0868803121561116f57600080fd5b853561117a81611025565b9450602086013561118a81611025565b9350604086013561119a81611025565b925060608601356111aa81611025565b949793965091946080013592915050565b600080858511156111cb57600080fd5b838611156111d857600080fd5b5050820193919092039150565b803560208310156111fe57600019602084900360031b1b165b92915050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561123557818101518382015260200161121d565b50506000910152565b60006020828403121561125057600080fd5b815167ffffffffffffffff8082111561126857600080fd5b818401915084601f83011261127c57600080fd5b81518181111561128e5761128e611204565b604051601f8201601f19908116603f011681019083821181831017156112b6576112b6611204565b816040528281528760208487010111156112cf57600080fd5b610f7c83602083016020880161121a565b6000602082840312156112f257600080fd5b815160ff8116811461105a57600080fd5b6000815180845261131b81602086016020860161121a565b601f01601f19169290920160200192915050565b8581526001600160a01b038516602082015260a06040820181905260009061135990830186611303565b828103606084015261136b8186611303565b91505060ff831660808301529695505050505050565b6001600160a01b03841681526060602082018190526000906113a590830185611303565b9050826040830152949350505050565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03929092168252602082015260400190565b600080600080608085870312156113fa57600080fd5b843561140581611025565b9350602085013561141581611025565b9250604085013561142581611025565b9396929550929360600135925050565b60006020828403121561144757600080fd5b8151801515811461105a57600080fd5b6000825161146981846020870161121a565b9190910192915050565b60208152600061105a602083018461130356fea2646970667358221220d8e18e3360c831c5e3703cb58cfd4bb2268aa7efb58c5972f53726689607081364736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100e05760003560e01c8063d41f177111610087578063d41f1771146101de578063d57184e414610205578063d7c9e3ec1461021e578063eeb4994514610245578063f213159c14610258578063f4a120f71461026b578063f64512551461027e578063f7013ef6146102a557600080fd5b8063116191b6146100e557806340acd98d1461011557806347e7ef241461013e5780636a00c1d7146101535780639079dfb314610166578063b075061114610179578063b176806514610190578063c5ac2b1c146101b7575b600080fd5b6000546100f8906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100f861012336600461103d565b6004602052600090815260409020546001600160a01b031681565b61015161014c366004611061565b6102b8565b005b6005546100f8906001600160a01b031681565b6003546100f8906001600160a01b031681565b61018260015481565b60405190815260200161010c565b6101827f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6101827faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b6101827f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6002546100f8906201000090046001600160a01b031681565b6101827f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b61015161025336600461108d565b6102c7565b610151610266366004611116565b61044d565b6100f861027936600461103d565b61045d565b6101827f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6101516102b3366004611157565b610824565b6102c382338361093f565b5050565b6000546001600160a01b031633146103265760405162461bcd60e51b815260206004820181905260248201527f526f6f7445524332305072656469636174653a204f4e4c595f4741544557415960448201526064015b60405180910390fd5b6002546001600160a01b0384811662010000909204161461039a5760405162461bcd60e51b815260206004820152602860248201527f526f6f7445524332305072656469636174653a204f4e4c595f4348494c445f50604482015267524544494341544560c01b606482015260840161031d565b7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696103c96020600084866111bb565b6103d2916111e5565b036103f1576103ec6103e782602081866111bb565b610abd565b610447565b60405162461bcd60e51b815260206004820152602560248201527f526f6f7445524332305072656469636174653a20494e56414c49445f5349474e604482015264415455524560d81b606482015260840161031d565b50505050565b61045883838361093f565b505050565b60006001600160a01b0382166104bf5760405162461bcd60e51b815260206004820152602160248201527f526f6f7445524332305072656469636174653a20494e56414c49445f544f4b456044820152602760f91b606482015260840161031d565b6001600160a01b0382811660009081526004602052604090205416156105325760405162461bcd60e51b815260206004820152602260248201527f526f6f7445524332305072656469636174653a20414c52454144595f4d415050604482015261115160f21b606482015260840161031d565b6002546003546040516bffffffffffffffffffffffff19606086901b166020820152620100009092046001600160a01b03908116926000926105e6921690603401604051602081830303815290604052805190602001208460405160388101919091526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b6001600160a01b03858116600081815260046020819052604080832080546001600160a01b031916878716179055825481516306fdde0360e01b815291519697509094169463417d5acb9488947f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad948c9491936306fdde039380840193908290030181865afa15801561067d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106a5919081019061123e565b896001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156106e3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261070b919081019061123e565b8a6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076d91906112e0565b60405160200161078195949392919061132f565b60408051601f19818403018152908290526001546001600160e01b031960e086901b1683526107b39392600401611381565b600060405180830381600087803b1580156107cd57600080fd5b505af11580156107e1573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a39392505050565b600254610100900460ff16158080156108445750600254600160ff909116105b8061085e5750303b15801561085e575060025460ff166001145b6108c15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161031d565b6002805460ff1916600117905580156108e4576002805461ff0019166101001790555b6108f18686868686610b75565b8015610937576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b6001600160a01b03808416600090815260046020526040902054168061096b576109688461045d565b90505b6001600160a01b038116610981576109816113b5565b6109966001600160a01b038516333085610cad565b600054600254604080517f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82160208201526001600160a01b0388811682840152336060830152878116608083015260a08083018890528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb94610a2f94620100009091049092169290919060c401611381565b600060405180830381600087803b158015610a4957600080fd5b505af1158015610a5d573d6000803e3d6000fd5b50505050826001600160a01b0316816001600160a01b0316856001600160a01b03167f8be9001bb612c7123a1861dc0d9d94e683261f6cbbd7c7438b708975bc4908a33386604051610ab09291906113cb565b60405180910390a4610447565b6000808080610ace858701876113e4565b6001600160a01b0380851660009081526004602052604090205494985092965090945092501680610b0157610b016113b5565b610b156001600160a01b0386168484610d18565b826001600160a01b0316816001600160a01b0316866001600160a01b03167f9c4f744b2e971d7058a9d8f43977e0e17bf7d57a48659f0e18541b7ee3d022e48786604051610b649291906113cb565b60405180910390a450505050505050565b610b7f8582610d37565b6001600160a01b03841615801590610b9f57506001600160a01b03831615155b610bfa5760405162461bcd60e51b815260206004820152602660248201527f526f6f7445524332305072656469636174653a204241445f494e495449414c496044820152652d20aa24a7a760d11b606482015260840161031d565b6002805462010000600160b01b031916620100006001600160a01b038781169190910291909117909155600380546001600160a01b031916858316179055821615610ca657600580546001600160a01b03199081166001600160a01b038581169182178455600091825260046020526040808320805461101095168517905593549351929316917f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e6179190a35b5050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526104479085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610dc0565b6104588363a9059cbb60e01b8484604051602401610ce19291906113cb565b6001600160a01b03821615801590610d4e57508015155b610d9a5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e000000604482015260640161031d565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6000610e15826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610e959092919063ffffffff16565b9050805160001480610e36575080806020019051810190610e369190611435565b6104585760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161031d565b6060610ea48484600085610eac565b949350505050565b606082471015610f0d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161031d565b600080866001600160a01b03168587604051610f299190611457565b60006040518083038185875af1925050503d8060008114610f66576040519150601f19603f3d011682016040523d82523d6000602084013e610f6b565b606091505b5091509150610f7c87838387610f87565b979650505050505050565b60608315610ff6578251600003610fef576001600160a01b0385163b610fef5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161031d565b5081610ea4565b610ea4838381511561100b5781518083602001fd5b8060405162461bcd60e51b815260040161031d9190611473565b6001600160a01b038116811461103a57600080fd5b50565b60006020828403121561104f57600080fd5b813561105a81611025565b9392505050565b6000806040838503121561107457600080fd5b823561107f81611025565b946020939093013593505050565b600080600080606085870312156110a357600080fd5b8435935060208501356110b581611025565b9250604085013567ffffffffffffffff808211156110d257600080fd5b818701915087601f8301126110e657600080fd5b8135818111156110f557600080fd5b88602082850101111561110757600080fd5b95989497505060200194505050565b60008060006060848603121561112b57600080fd5b833561113681611025565b9250602084013561114681611025565b929592945050506040919091013590565b600080600080600060a0868803121561116f57600080fd5b853561117a81611025565b9450602086013561118a81611025565b9350604086013561119a81611025565b925060608601356111aa81611025565b949793965091946080013592915050565b600080858511156111cb57600080fd5b838611156111d857600080fd5b5050820193919092039150565b803560208310156111fe57600019602084900360031b1b165b92915050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561123557818101518382015260200161121d565b50506000910152565b60006020828403121561125057600080fd5b815167ffffffffffffffff8082111561126857600080fd5b818401915084601f83011261127c57600080fd5b81518181111561128e5761128e611204565b604051601f8201601f19908116603f011681019083821181831017156112b6576112b6611204565b816040528281528760208487010111156112cf57600080fd5b610f7c83602083016020880161121a565b6000602082840312156112f257600080fd5b815160ff8116811461105a57600080fd5b6000815180845261131b81602086016020860161121a565b601f01601f19169290920160200192915050565b8581526001600160a01b038516602082015260a06040820181905260009061135990830186611303565b828103606084015261136b8186611303565b91505060ff831660808301529695505050505050565b6001600160a01b03841681526060602082018190526000906113a590830185611303565b9050826040830152949350505050565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03929092168252602082015260400190565b600080600080608085870312156113fa57600080fd5b843561140581611025565b9350602085013561141581611025565b9250604085013561142581611025565b9396929550929360600135925050565b60006020828403121561144757600080fd5b8151801515811461105a57600080fd5b6000825161146981846020870161121a565b9190910192915050565b60208152600061105a602083018461130356fea2646970667358221220d8e18e3360c831c5e3703cb58cfd4bb2268aa7efb58c5972f53726689607081364736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` var RootMintableERC20PredicateACLArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"RootMintableERC20PredicateAccessList","sourceName":"contracts/blade/RootMintableERC20PredicateAccessList.sol","abi":[{"inputs":[{"internalType":"string","name":"only","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"AllowListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"BlockListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"depositor","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC20Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"childERC20Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20Metadata","name":"rootToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20Metadata","name":"rootToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"depositTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newChildERC20Predicate","type":"address"},{"internalType":"address","name":"newTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"},{"internalType":"bool","name":"newUseAllowList","type":"bool"},{"internalType":"bool","name":"newUseBlockList","type":"bool"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newChildERC20Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"address","name":"newNativeTokenRoot","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20Metadata","name":"rootToken","type":"address"}],"name":"mapToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nativeTokenRoot","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseAllowList","type":"bool"}],"name":"setAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseBlockList","type":"bool"}],"name":"setBlockList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sourceTokenToDestinationToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50611cbb806100206000396000f3fe608060405234801561001057600080fd5b50600436106101a55760003560e01c8063947287cf116100ef578063d7c9e3ec11610092578063d7c9e3ec14610387578063e30c3978146103ae578063eeb49945146103bf578063f213159c146103d2578063f2fde38b146103e5578063f4a120f7146103f8578063f64512551461040b578063f7013ef61461043257600080fd5b8063947287cf146102c7578063b0750611146102d0578063b1768065146102d9578063c1225a2014610300578063c5ac2b1c14610313578063c5e4683a1461033a578063d41f17711461034d578063d57184e41461037457600080fd5b806355b01e4d1161015757806355b01e4d1461024757806359a85e08146102555780635ea5df79146102685780636a00c1d71461027f578063715018a61461029357806379ba50971461029b5780638da5cb5b146102a35780639079dfb3146102b457600080fd5b806307b3e252146101aa578063116191b6146101d5578063284017f5146101e85780633b878c22146101f157806340acd98d146101fa57806347e7ef241461022457806351351d5314610239575b600080fd5b6101b86004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546101b8906001600160a01b031681565b6101b861202081565b6101b861101081565b6101b8610208366004611722565b610100602052600090815260409020546001600160a01b031681565b610237610232366004611746565b610445565b005b6101b86002600160a01b0381565b6101b86004600160991b0181565b610237610263366004611780565b610454565b61027161138881565b6040519081526020016101cc565b610101546101b8906001600160a01b031681565b610237610599565b6102376105ad565b6035546001600160a01b03166101b8565b60ff546101b8906001600160a01b031681565b61027161520881565b61027160015481565b6102717f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61023761030e36600461180d565b610627565b6102717faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61023761034836600461180d565b610676565b6102717f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b60fe546101b8906001600160a01b031681565b6102717f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101b8565b6102376103cd36600461182a565b6106bd565b6102376103e03660046118b3565b610838565b6102376103f3366004611722565b610848565b6101b8610406366004611722565b6108b9565b6102717f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6102376104403660046118f4565b610c7c565b610450823383610d50565b5050565b336002600160a01b031461049d5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064015b60405180910390fd5b600254610100900460ff16158080156104bd5750600254600160ff909116105b806104d75750303b1580156104d7575060025460ff166001145b6104f35760405162461bcd60e51b815260040161049490611958565b6002805460ff191660011790558015610516576002805461ff0019166101001790555b610524888888600089610ecf565b60cb805461ffff191685151561ff001916176101008515150217905561054982610ff9565b801561058f576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6105a1611012565b6105ab6000610ff9565b565b60675433906001600160a01b0316811461061b5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610494565b61062481610ff9565b50565b61062f611012565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b61067e611012565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b6000546001600160a01b031633146107175760405162461bcd60e51b815260206004820181905260248201527f526f6f7445524332305072656469636174653a204f4e4c595f474154455741596044820152606401610494565b60fe546001600160a01b038481169116146107855760405162461bcd60e51b815260206004820152602860248201527f526f6f7445524332305072656469636174653a204f4e4c595f4348494c445f50604482015267524544494341544560c01b6064820152608401610494565b7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696107b46020600084866119a6565b6107bd916119d0565b036107dc576107d76107d282602081866119a6565b61106c565b610832565b60405162461bcd60e51b815260206004820152602560248201527f526f6f7445524332305072656469636174653a20494e56414c49445f5349474e604482015264415455524560d81b6064820152608401610494565b50505050565b610843838383610d50565b505050565b610850611012565b606780546001600160a01b0383166001600160a01b031990911681179091556108816035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60006001600160a01b03821661091b5760405162461bcd60e51b815260206004820152602160248201527f526f6f7445524332305072656469636174653a20494e56414c49445f544f4b456044820152602760f91b6064820152608401610494565b6001600160a01b0382811660009081526101006020526040902054161561098f5760405162461bcd60e51b815260206004820152602260248201527f526f6f7445524332305072656469636174653a20414c52454144595f4d415050604482015261115160f21b6064820152608401610494565b60fe5460ff546040516bffffffffffffffffffffffff19606086901b1660208201526001600160a01b0392831692600092610a3d92911690603401604051602081830303815290604052805190602001208460405160388101919091526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b6001600160a01b038581166000818152610100602052604080822080546001600160a01b031916868616179055815481516306fdde0360e01b815291519596509093169363417d5acb9387937f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad938b9391926306fdde0392600480830193928290030181865afa158015610ad5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610afd9190810190611a29565b896001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610b3b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b639190810190611a29565b8a6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc59190611acb565b604051602001610bd9959493929190611b1a565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610c0b9392600401611b6c565b600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a39392505050565b600254610100900460ff1615808015610c9c5750600254600160ff909116105b80610cb65750303b158015610cb6575060025460ff166001145b610cd25760405162461bcd60e51b815260040161049490611958565b6002805460ff191660011790558015610cf5576002805461ff0019166101001790555b610d028686868686610ecf565b8015610d48576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b610d58611125565b6001600160a01b03808416600090815261010060205260409020541680610d8557610d82846108b9565b90505b6001600160a01b038116610d9b57610d9b611ba0565b610db06001600160a01b03851633308561112d565b60005460fe54604080517f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82160208201526001600160a01b0388811682840152336060830152878116608083015260a08083018890528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb94610e419492169290919060c401611b6c565b600060405180830381600087803b158015610e5b57600080fd5b505af1158015610e6f573d6000803e3d6000fd5b50505050826001600160a01b0316816001600160a01b0316856001600160a01b03167f8be9001bb612c7123a1861dc0d9d94e683261f6cbbd7c7438b708975bc4908a33386604051610ec2929190611bb6565b60405180910390a4610832565b610ed98582611198565b6001600160a01b03841615801590610ef957506001600160a01b03831615155b610f545760405162461bcd60e51b815260206004820152602660248201527f526f6f7445524332305072656469636174653a204241445f494e495449414c496044820152652d20aa24a7a760d11b6064820152608401610494565b60fe80546001600160a01b038087166001600160a01b03199283161790925560ff80548684169216919091179055821615610ff25761010180546001600160a01b03199081166001600160a01b03858116918217845560009182526101006020526040808320805461101095168517905593549351929316917f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e6179190a35b5050505050565b606780546001600160a01b031916905561062481611221565b6035546001600160a01b031633146105ab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610494565b600080808061107d85870187611bcf565b6001600160a01b0380851660009081526101006020526040902054949850929650909450925016806110b1576110b1611ba0565b6110c56001600160a01b0386168484611273565b826001600160a01b0316816001600160a01b0316866001600160a01b03167f9c4f744b2e971d7058a9d8f43977e0e17bf7d57a48659f0e18541b7ee3d022e48786604051611114929190611bb6565b60405180910390a450505050505050565b6105ab611292565b6040516001600160a01b03808516602483015283166044820152606481018290526108329085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526114a8565b6001600160a01b038216158015906111af57508015155b6111fb5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610494565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6108438363a9059cbb60e01b8484604051602401611161929190611bb6565b60cb5460ff161561139d57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b0191611388916112f49190611c20565b6000604051808303818686fa925050503d8060008114611330576040519150601f19603f3d011682016040523d82523d6000602084013e611335565b606091505b509150915081801561135a57506000818060200190518101906113589190611c3c565b115b61139a5760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b6044820152606401610494565b50505b60cb54610100900460ff16156105ab57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b0191611388916114049190611c20565b6000604051808303818686fa925050503d8060008114611440576040519150601f19603f3d011682016040523d82523d6000602084013e611445565b606091505b509150915081801561146b5750808060200190518101906114669190611c3c565b600114155b6104505760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b6044820152606401610494565b60006114fd826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661157d9092919063ffffffff16565b905080516000148061151e57508080602001905181019061151e9190611c55565b6108435760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610494565b606061158c8484600085611594565b949350505050565b6060824710156115f55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610494565b600080866001600160a01b031685876040516116119190611c20565b60006040518083038185875af1925050503d806000811461164e576040519150601f19603f3d011682016040523d82523d6000602084013e611653565b606091505b50915091506116648783838761166f565b979650505050505050565b606083156116de5782516000036116d7576001600160a01b0385163b6116d75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610494565b508161158c565b61158c83838151156116f35781518083602001fd5b8060405162461bcd60e51b81526004016104949190611c72565b6001600160a01b038116811461062457600080fd5b60006020828403121561173457600080fd5b813561173f8161170d565b9392505050565b6000806040838503121561175957600080fd5b82356117648161170d565b946020939093013593505050565b801515811461062457600080fd5b600080600080600080600060e0888a03121561179b57600080fd5b87356117a68161170d565b965060208801356117b68161170d565b955060408801356117c68161170d565b94506060880135935060808801356117dd81611772565b925060a08801356117ed81611772565b915060c08801356117fd8161170d565b8091505092959891949750929550565b60006020828403121561181f57600080fd5b813561173f81611772565b6000806000806060858703121561184057600080fd5b8435935060208501356118528161170d565b9250604085013567ffffffffffffffff8082111561186f57600080fd5b818701915087601f83011261188357600080fd5b81358181111561189257600080fd5b8860208285010111156118a457600080fd5b95989497505060200194505050565b6000806000606084860312156118c857600080fd5b83356118d38161170d565b925060208401356118e38161170d565b929592945050506040919091013590565b600080600080600060a0868803121561190c57600080fd5b85356119178161170d565b945060208601356119278161170d565b935060408601356119378161170d565b925060608601356119478161170d565b949793965091946080013592915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600080858511156119b657600080fd5b838611156119c357600080fd5b5050820193919092039150565b803560208310156119e957600019602084900360031b1b165b92915050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015611a20578181015183820152602001611a08565b50506000910152565b600060208284031215611a3b57600080fd5b815167ffffffffffffffff80821115611a5357600080fd5b818401915084601f830112611a6757600080fd5b815181811115611a7957611a796119ef565b604051601f8201601f19908116603f01168101908382118183101715611aa157611aa16119ef565b81604052828152876020848701011115611aba57600080fd5b611664836020830160208801611a05565b600060208284031215611add57600080fd5b815160ff8116811461173f57600080fd5b60008151808452611b06816020860160208601611a05565b601f01601f19169290920160200192915050565b8581526001600160a01b038516602082015260a060408201819052600090611b4490830186611aee565b8281036060840152611b568186611aee565b91505060ff831660808301529695505050505050565b6001600160a01b0384168152606060208201819052600090611b9090830185611aee565b9050826040830152949350505050565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03929092168252602082015260400190565b60008060008060808587031215611be557600080fd5b8435611bf08161170d565b93506020850135611c008161170d565b92506040850135611c108161170d565b9396929550929360600135925050565b60008251611c32818460208701611a05565b9190910192915050565b600060208284031215611c4e57600080fd5b5051919050565b600060208284031215611c6757600080fd5b815161173f81611772565b60208152600061173f6020830184611aee56fea264697066735822122019507a8f099b042d5e1c69742065f130b3421e74ec0123367bebf1a9e4e3a81f64736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106101a55760003560e01c8063947287cf116100ef578063d7c9e3ec11610092578063d7c9e3ec14610387578063e30c3978146103ae578063eeb49945146103bf578063f213159c146103d2578063f2fde38b146103e5578063f4a120f7146103f8578063f64512551461040b578063f7013ef61461043257600080fd5b8063947287cf146102c7578063b0750611146102d0578063b1768065146102d9578063c1225a2014610300578063c5ac2b1c14610313578063c5e4683a1461033a578063d41f17711461034d578063d57184e41461037457600080fd5b806355b01e4d1161015757806355b01e4d1461024757806359a85e08146102555780635ea5df79146102685780636a00c1d71461027f578063715018a61461029357806379ba50971461029b5780638da5cb5b146102a35780639079dfb3146102b457600080fd5b806307b3e252146101aa578063116191b6146101d5578063284017f5146101e85780633b878c22146101f157806340acd98d146101fa57806347e7ef241461022457806351351d5314610239575b600080fd5b6101b86004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546101b8906001600160a01b031681565b6101b861202081565b6101b861101081565b6101b8610208366004611722565b610100602052600090815260409020546001600160a01b031681565b610237610232366004611746565b610445565b005b6101b86002600160a01b0381565b6101b86004600160991b0181565b610237610263366004611780565b610454565b61027161138881565b6040519081526020016101cc565b610101546101b8906001600160a01b031681565b610237610599565b6102376105ad565b6035546001600160a01b03166101b8565b60ff546101b8906001600160a01b031681565b61027161520881565b61027160015481565b6102717f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61023761030e36600461180d565b610627565b6102717faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61023761034836600461180d565b610676565b6102717f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b60fe546101b8906001600160a01b031681565b6102717f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101b8565b6102376103cd36600461182a565b6106bd565b6102376103e03660046118b3565b610838565b6102376103f3366004611722565b610848565b6101b8610406366004611722565b6108b9565b6102717f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6102376104403660046118f4565b610c7c565b610450823383610d50565b5050565b336002600160a01b031461049d5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064015b60405180910390fd5b600254610100900460ff16158080156104bd5750600254600160ff909116105b806104d75750303b1580156104d7575060025460ff166001145b6104f35760405162461bcd60e51b815260040161049490611958565b6002805460ff191660011790558015610516576002805461ff0019166101001790555b610524888888600089610ecf565b60cb805461ffff191685151561ff001916176101008515150217905561054982610ff9565b801561058f576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6105a1611012565b6105ab6000610ff9565b565b60675433906001600160a01b0316811461061b5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610494565b61062481610ff9565b50565b61062f611012565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b61067e611012565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b6000546001600160a01b031633146107175760405162461bcd60e51b815260206004820181905260248201527f526f6f7445524332305072656469636174653a204f4e4c595f474154455741596044820152606401610494565b60fe546001600160a01b038481169116146107855760405162461bcd60e51b815260206004820152602860248201527f526f6f7445524332305072656469636174653a204f4e4c595f4348494c445f50604482015267524544494341544560c01b6064820152608401610494565b7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696107b46020600084866119a6565b6107bd916119d0565b036107dc576107d76107d282602081866119a6565b61106c565b610832565b60405162461bcd60e51b815260206004820152602560248201527f526f6f7445524332305072656469636174653a20494e56414c49445f5349474e604482015264415455524560d81b6064820152608401610494565b50505050565b610843838383610d50565b505050565b610850611012565b606780546001600160a01b0383166001600160a01b031990911681179091556108816035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60006001600160a01b03821661091b5760405162461bcd60e51b815260206004820152602160248201527f526f6f7445524332305072656469636174653a20494e56414c49445f544f4b456044820152602760f91b6064820152608401610494565b6001600160a01b0382811660009081526101006020526040902054161561098f5760405162461bcd60e51b815260206004820152602260248201527f526f6f7445524332305072656469636174653a20414c52454144595f4d415050604482015261115160f21b6064820152608401610494565b60fe5460ff546040516bffffffffffffffffffffffff19606086901b1660208201526001600160a01b0392831692600092610a3d92911690603401604051602081830303815290604052805190602001208460405160388101919091526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b6001600160a01b038581166000818152610100602052604080822080546001600160a01b031916868616179055815481516306fdde0360e01b815291519596509093169363417d5acb9387937f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad938b9391926306fdde0392600480830193928290030181865afa158015610ad5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610afd9190810190611a29565b896001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610b3b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b639190810190611a29565b8a6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc59190611acb565b604051602001610bd9959493929190611b1a565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610c0b9392600401611b6c565b600060405180830381600087803b158015610c2557600080fd5b505af1158015610c39573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a39392505050565b600254610100900460ff1615808015610c9c5750600254600160ff909116105b80610cb65750303b158015610cb6575060025460ff166001145b610cd25760405162461bcd60e51b815260040161049490611958565b6002805460ff191660011790558015610cf5576002805461ff0019166101001790555b610d028686868686610ecf565b8015610d48576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b610d58611125565b6001600160a01b03808416600090815261010060205260409020541680610d8557610d82846108b9565b90505b6001600160a01b038116610d9b57610d9b611ba0565b610db06001600160a01b03851633308561112d565b60005460fe54604080517f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82160208201526001600160a01b0388811682840152336060830152878116608083015260a08083018890528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb94610e419492169290919060c401611b6c565b600060405180830381600087803b158015610e5b57600080fd5b505af1158015610e6f573d6000803e3d6000fd5b50505050826001600160a01b0316816001600160a01b0316856001600160a01b03167f8be9001bb612c7123a1861dc0d9d94e683261f6cbbd7c7438b708975bc4908a33386604051610ec2929190611bb6565b60405180910390a4610832565b610ed98582611198565b6001600160a01b03841615801590610ef957506001600160a01b03831615155b610f545760405162461bcd60e51b815260206004820152602660248201527f526f6f7445524332305072656469636174653a204241445f494e495449414c496044820152652d20aa24a7a760d11b6064820152608401610494565b60fe80546001600160a01b038087166001600160a01b03199283161790925560ff80548684169216919091179055821615610ff25761010180546001600160a01b03199081166001600160a01b03858116918217845560009182526101006020526040808320805461101095168517905593549351929316917f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e6179190a35b5050505050565b606780546001600160a01b031916905561062481611221565b6035546001600160a01b031633146105ab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610494565b600080808061107d85870187611bcf565b6001600160a01b0380851660009081526101006020526040902054949850929650909450925016806110b1576110b1611ba0565b6110c56001600160a01b0386168484611273565b826001600160a01b0316816001600160a01b0316866001600160a01b03167f9c4f744b2e971d7058a9d8f43977e0e17bf7d57a48659f0e18541b7ee3d022e48786604051611114929190611bb6565b60405180910390a450505050505050565b6105ab611292565b6040516001600160a01b03808516602483015283166044820152606481018290526108329085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526114a8565b6001600160a01b038216158015906111af57508015155b6111fb5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610494565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6108438363a9059cbb60e01b8484604051602401611161929190611bb6565b60cb5460ff161561139d57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b0191611388916112f49190611c20565b6000604051808303818686fa925050503d8060008114611330576040519150601f19603f3d011682016040523d82523d6000602084013e611335565b606091505b509150915081801561135a57506000818060200190518101906113589190611c3c565b115b61139a5760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b6044820152606401610494565b50505b60cb54610100900460ff16156105ab57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b0191611388916114049190611c20565b6000604051808303818686fa925050503d8060008114611440576040519150601f19603f3d011682016040523d82523d6000602084013e611445565b606091505b509150915081801561146b5750808060200190518101906114669190611c3c565b600114155b6104505760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b6044820152606401610494565b60006114fd826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661157d9092919063ffffffff16565b905080516000148061151e57508080602001905181019061151e9190611c55565b6108435760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610494565b606061158c8484600085611594565b949350505050565b6060824710156115f55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610494565b600080866001600160a01b031685876040516116119190611c20565b60006040518083038185875af1925050503d806000811461164e576040519150601f19603f3d011682016040523d82523d6000602084013e611653565b606091505b50915091506116648783838761166f565b979650505050505050565b606083156116de5782516000036116d7576001600160a01b0385163b6116d75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610494565b508161158c565b61158c83838151156116f35781518083602001fd5b8060405162461bcd60e51b81526004016104949190611c72565b6001600160a01b038116811461062457600080fd5b60006020828403121561173457600080fd5b813561173f8161170d565b9392505050565b6000806040838503121561175957600080fd5b82356117648161170d565b946020939093013593505050565b801515811461062457600080fd5b600080600080600080600060e0888a03121561179b57600080fd5b87356117a68161170d565b965060208801356117b68161170d565b955060408801356117c68161170d565b94506060880135935060808801356117dd81611772565b925060a08801356117ed81611772565b915060c08801356117fd8161170d565b8091505092959891949750929550565b60006020828403121561181f57600080fd5b813561173f81611772565b6000806000806060858703121561184057600080fd5b8435935060208501356118528161170d565b9250604085013567ffffffffffffffff8082111561186f57600080fd5b818701915087601f83011261188357600080fd5b81358181111561189257600080fd5b8860208285010111156118a457600080fd5b95989497505060200194505050565b6000806000606084860312156118c857600080fd5b83356118d38161170d565b925060208401356118e38161170d565b929592945050506040919091013590565b600080600080600060a0868803121561190c57600080fd5b85356119178161170d565b945060208601356119278161170d565b935060408601356119378161170d565b925060608601356119478161170d565b949793965091946080013592915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600080858511156119b657600080fd5b838611156119c357600080fd5b5050820193919092039150565b803560208310156119e957600019602084900360031b1b165b92915050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015611a20578181015183820152602001611a08565b50506000910152565b600060208284031215611a3b57600080fd5b815167ffffffffffffffff80821115611a5357600080fd5b818401915084601f830112611a6757600080fd5b815181811115611a7957611a796119ef565b604051601f8201601f19908116603f01168101908382118183101715611aa157611aa16119ef565b81604052828152876020848701011115611aba57600080fd5b611664836020830160208801611a05565b600060208284031215611add57600080fd5b815160ff8116811461173f57600080fd5b60008151808452611b06816020860160208601611a05565b601f01601f19169290920160200192915050565b8581526001600160a01b038516602082015260a060408201819052600090611b4490830186611aee565b8281036060840152611b568186611aee565b91505060ff831660808301529695505050505050565b6001600160a01b0384168152606060208201819052600090611b9090830185611aee565b9050826040830152949350505050565b634e487b7160e01b600052600160045260246000fd5b6001600160a01b03929092168252602082015260400190565b60008060008060808587031215611be557600080fd5b8435611bf08161170d565b93506020850135611c008161170d565b92506040850135611c108161170d565b9396929550929360600135925050565b60008251611c32818460208701611a05565b9190910192915050565b600060208284031215611c4e57600080fd5b5051919050565b600060208284031215611c6757600080fd5b815161173f81611772565b60208152600061173f6020830184611aee56fea264697066735822122019507a8f099b042d5e1c69742065f130b3421e74ec0123367bebf1a9e4e3a81f64736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` var ChildERC721Artifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC721","sourceName":"contracts/blade/ChildERC721.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"burnBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"rootToken_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"}],"name":"invalidateNext","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"mintBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rootToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50612488806100206000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063a22cb4651161007c578063a22cb465146102de578063b2dc5dc3146102f1578063b88d4fde14610304578063c87b56dd14610317578063e61987051461032a578063e985e9c51461033c57600080fd5b806370a08231146102775780637c88e3d91461028a578063906571471461029d57806395d89b41146102b05780639b77ef11146102b85780639dc29fac146102cb57600080fd5b80631f2d0065116101155780631f2d0065146101e257806323b872dd146101f45780632d0335ab1461020757806340c10f191461023e57806342842e0e146102515780636352211e1461026457600080fd5b806301ffc9a71461015257806306fdde031461017a578063081812fc1461018f578063095ea7b3146101ba5780630c53c51c146101cf575b600080fd5b610165610160366004611a73565b61034f565b60405190151581526020015b60405180910390f35b6101826103a1565b6040516101719190611ae0565b6101a261019d366004611af3565b610433565b6040516001600160a01b039091168152602001610171565b6101cd6101c8366004611b28565b61045a565b005b6101826101dd366004611b9a565b610586565b610103546001600160a01b03166101a2565b6101cd610202366004611c19565b610864565b610230610215366004611c55565b6001600160a01b031660009081526038602052604090205490565b604051908152602001610171565b61016561024c366004611b28565b61089c565b6101cd61025f366004611c19565b6108dd565b6101a2610272366004611af3565b6108f8565b610230610285366004611c55565b61092d565b610165610298366004611cb4565b6109b3565b6101cd6102ab366004611d1f565b610a9b565b610182610d0b565b6101cd6102c6366004611af3565b610d1a565b6101656102d9366004611b28565b610d41565b6101cd6102ec366004611d9f565b610db1565b6101656102ff366004611ddb565b610dc7565b6101cd610312366004611e43565b610e75565b610182610325366004611af3565b610eb4565b610102546001600160a01b03166101a2565b61016561034a366004611f1e565b610f28565b60006001600160e01b031982166380ac58cd60e01b148061038057506001600160e01b03198216635b5e139f60e01b145b8061039b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b606060d080546103b090611f51565b80601f01602080910402602001604051908101604052809291908181526020018280546103dc90611f51565b80156104295780601f106103fe57610100808354040283529160200191610429565b820191906000526020600020905b81548152906001019060200180831161040c57829003601f168201915b5050505050905090565b600061043e82610f56565b50600090815260d460205260409020546001600160a01b031690565b6000610465826108f8565b9050806001600160a01b0316836001600160a01b0316036104d75760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b806001600160a01b03166104e9610f7e565b6001600160a01b0316148061050557506105058161034a610f7e565b6105775760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016104ce565b6105818383610f8d565b505050565b606060006105c987878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610ffb92505050565b90506001600160e01b031960003581169082160361064f5760405162461bcd60e51b815260206004820152603d60248201527f66756e6374696f6e5369676e61747572652063616e206e6f74206265206f662060448201527f657865637574654d6574615472616e73616374696f6e206d6574686f6400000060648201526084016104ce565b604080516060810182526001600160a01b038a16600081815260386020908152848220548452808401929092528351601f8b0183900483028101830185528a815290938301918b908b9081908401838280828437600092019190915250505091525090506106c08982888888611016565b6107165760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084016104ce565b603860008a6001600160a01b03166001600160a01b031681526020019081526020016000206000815460010191905081905550600080306001600160a01b03168a8a8d60405160200161076b93929190611f8b565b60408051601f198184030181529082905261078591611fb1565b6000604051808303816000865af19150503d80600081146107c2576040519150601f19603f3d011682016040523d82523d6000602084013e6107c7565b606091505b5091509150816108195760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016104ce565b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8b338c8c60405161084e9493929190611fcd565b60405180910390a19a9950505050505050505050565b61087561086f610f7e565b826110f2565b6108915760405162461bcd60e51b81526004016104ce90612019565b610581838383611150565b610102546000906001600160a01b031633146108ca5760405162461bcd60e51b81526004016104ce90612066565b6108d483836112a2565b50600192915050565b61058183838360405180602001604052806000815250610e75565b600081815260d260205260408120546001600160a01b03168061039b5760405162461bcd60e51b81526004016104ce906120aa565b60006001600160a01b0382166109975760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016104ce565b506001600160a01b0316600090815260d3602052604090205490565b610102546000906001600160a01b031633146109e15760405162461bcd60e51b81526004016104ce90612066565b83828114610a315760405162461bcd60e51b815260206004820152601f60248201527f4368696c644552433732313a204172726179206c656e206d69736d617463680060448201526064016104ce565b60005b81811015610a8c57610a84878783818110610a5157610a516120dc565b9050602002016020810190610a669190611c55565b868684818110610a7857610a786120dc565b905060200201356112a2565b600101610a34565b5060019150505b949350505050565b606b54610100900460ff1615808015610abb5750606b54600160ff909116105b80610ad55750303b158015610ad55750606b5460ff166001145b610b385760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104ce565b606b805460ff191660011790558015610b5b57606b805461ff0019166101001790555b6001600160a01b03861615801590610b7257508315155b8015610b7d57508115155b610bc95760405162461bcd60e51b815260206004820152601f60248201527f4368696c644552433732313a2042616420696e697469616c697a6174696f6e0060448201526064016104ce565b61010380546001600160a01b0388166001600160a01b031991821617909155610102805490911633179055604080516020601f8701819004810282018101909252858152610c6591879087908190840183828082843760009201919091525050604080516020601f890181900481028201810190925287815292508791508690819084018382808284376000920191909152506112bc92505050565b610cbd85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b602082015291506112ed9050565b8015610d0357606b805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b606060d180546103b090611f51565b3360009081526038602052604081208054839290610d399084906120f2565b909155505050565b610102546000906001600160a01b03163314610d6f5760405162461bcd60e51b81526004016104ce90612066565b610d78826108f8565b6001600160a01b0316836001600160a01b031614610da85760405162461bcd60e51b81526004016104ce90612113565b6108d482611359565b610dc3610dbc610f7e565b83836113dc565b5050565b610102546000906001600160a01b03163314610df55760405162461bcd60e51b81526004016104ce90612066565b8160005b81811015610e69576000858583818110610e1557610e156120dc565b905060200201359050610e27816108f8565b6001600160a01b0316876001600160a01b031614610e575760405162461bcd60e51b81526004016104ce90612113565b610e6081611359565b50600101610df9565b50600195945050505050565b610e86610e80610f7e565b836110f2565b610ea25760405162461bcd60e51b81526004016104ce90612019565b610eae848484846114a6565b50505050565b6060610ebf82610f56565b6000610ed660408051602081019091526000815290565b90506000815111610ef65760405180602001604052806000815250610f21565b80610f00846114d9565b604051602001610f11929190612148565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260d56020908152604080832093909416825291909152205460ff1690565b610f5f8161156b565b610f7b5760405162461bcd60e51b81526004016104ce906120aa565b50565b6000610f88611588565b905090565b600081815260d46020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610fc2826108f8565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000815160000361100e57506000919050565b506020015190565b600080600161102c611027886115e4565b611661565b6040805160008152602081018083529290925260ff861690820152606081018790526080810186905260a0016020604051602081039080840390855afa15801561107a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110d15760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016104ce565b866001600160a01b0316816001600160a01b03161491505095945050505050565b6000806110fe836108f8565b9050806001600160a01b0316846001600160a01b0316148061112557506111258185610f28565b80610a935750836001600160a01b031661113e84610433565b6001600160a01b031614949350505050565b826001600160a01b0316611163826108f8565b6001600160a01b0316146111895760405162461bcd60e51b81526004016104ce90612177565b6001600160a01b0382166111eb5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016104ce565b826001600160a01b03166111fe826108f8565b6001600160a01b0316146112245760405162461bcd60e51b81526004016104ce90612177565b600081815260d46020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260d3855283862080546000190190559087168086528386208054600101905586865260d2909452828520805490921684179091559051849360008051602061243383398151915291a4505050565b610dc382826040518060200160405280600081525061168e565b606b54610100900460ff166112e35760405162461bcd60e51b81526004016104ce906121bc565b610dc382826116c1565b815160208084019190912082519183019190912060038290556004819055466001557f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61133b818484611701565b600055600280546001600160a01b0319163017905560055550505050565b6000611364826108f8565b905061136f826108f8565b600083815260d46020908152604080832080546001600160a01b03199081169091556001600160a01b03851680855260d38452828520805460001901905587855260d290935281842080549091169055519293508492600080516020612433833981519152908390a45050565b816001600160a01b0316836001600160a01b0316036114395760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b60448201526064016104ce565b6001600160a01b03838116600081815260d56020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6114b1848484611150565b6114bd8484848461174a565b610eae5760405162461bcd60e51b81526004016104ce90612207565b606060006114e68361184f565b60010190506000816001600160401b0381111561150557611505611e2d565b6040519080825280601f01601f19166020018201604052801561152f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461153957509392505050565b600090815260d260205260409020546001600160a01b0316151590565b60003033036115de57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506115e19050565b50335b90565b60006040518060800160405280604381526020016123f06043913980516020918201208351848301516040808701518051908601209051611644950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b600061039b61166e611927565b8360405161190160f01b8152600281019290925260228201526042902090565b6116988383611962565b6116a5600084848461174a565b6105815760405162461bcd60e51b81526004016104ce90612207565b606b54610100900460ff166116e85760405162461bcd60e51b81526004016104ce906121bc565b60d06116f4838261229f565b5060d1610581828261229f565b6040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b60006001600160a01b0384163b1561184757836001600160a01b031663150b7a02611773610f7e565b8786866040518563ffffffff1660e01b8152600401611795949392919061235e565b6020604051808303816000875af19250505080156117d0575060408051601f3d908101601f191682019092526117cd9181019061239b565b60015b61182d573d8080156117fe576040519150601f19603f3d011682016040523d82523d6000602084013e611803565b606091505b5080516000036118255760405162461bcd60e51b81526004016104ce90612207565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610a93565b506001610a93565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061188e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106118ba576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106118d857662386f26fc10000830492506010015b6305f5e10083106118f0576305f5e100830492506008015b612710831061190457612710830492506004015b60648310611916576064830492506002015b600a831061039b5760010192915050565b6002546000906001600160a01b031630148015611945575060015446145b15611951575060005490565b610f88600554600354600454611701565b6001600160a01b0382166119b85760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016104ce565b6119c18161156b565b156119de5760405162461bcd60e51b81526004016104ce906123b8565b6119e78161156b565b15611a045760405162461bcd60e51b81526004016104ce906123b8565b6001600160a01b038216600081815260d3602090815260408083208054600101905584835260d290915280822080546001600160a01b031916841790555183929190600080516020612433833981519152908290a45050565b6001600160e01b031981168114610f7b57600080fd5b600060208284031215611a8557600080fd5b8135610f2181611a5d565b60005b83811015611aab578181015183820152602001611a93565b50506000910152565b60008151808452611acc816020860160208601611a90565b601f01601f19169290920160200192915050565b602081526000610f216020830184611ab4565b600060208284031215611b0557600080fd5b5035919050565b80356001600160a01b0381168114611b2357600080fd5b919050565b60008060408385031215611b3b57600080fd5b611b4483611b0c565b946020939093013593505050565b60008083601f840112611b6457600080fd5b5081356001600160401b03811115611b7b57600080fd5b602083019150836020828501011115611b9357600080fd5b9250929050565b60008060008060008060a08789031215611bb357600080fd5b611bbc87611b0c565b955060208701356001600160401b03811115611bd757600080fd5b611be389828a01611b52565b9096509450506040870135925060608701359150608087013560ff81168114611c0b57600080fd5b809150509295509295509295565b600080600060608486031215611c2e57600080fd5b611c3784611b0c565b9250611c4560208501611b0c565b9150604084013590509250925092565b600060208284031215611c6757600080fd5b610f2182611b0c565b60008083601f840112611c8257600080fd5b5081356001600160401b03811115611c9957600080fd5b6020830191508360208260051b8501011115611b9357600080fd5b60008060008060408587031215611cca57600080fd5b84356001600160401b0380821115611ce157600080fd5b611ced88838901611c70565b90965094506020870135915080821115611d0657600080fd5b50611d1387828801611c70565b95989497509550505050565b600080600080600060608688031215611d3757600080fd5b611d4086611b0c565b945060208601356001600160401b0380821115611d5c57600080fd5b611d6889838a01611b52565b90965094506040880135915080821115611d8157600080fd5b50611d8e88828901611b52565b969995985093965092949392505050565b60008060408385031215611db257600080fd5b611dbb83611b0c565b915060208301358015158114611dd057600080fd5b809150509250929050565b600080600060408486031215611df057600080fd5b611df984611b0c565b925060208401356001600160401b03811115611e1457600080fd5b611e2086828701611c70565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215611e5957600080fd5b611e6285611b0c565b9350611e7060208601611b0c565b92506040850135915060608501356001600160401b0380821115611e9357600080fd5b818701915087601f830112611ea757600080fd5b813581811115611eb957611eb9611e2d565b604051601f8201601f19908116603f01168101908382118183101715611ee157611ee1611e2d565b816040528281528a6020848701011115611efa57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215611f3157600080fd5b611f3a83611b0c565b9150611f4860208401611b0c565b90509250929050565b600181811c90821680611f6557607f821691505b602082108103611f8557634e487b7160e01b600052602260045260246000fd5b50919050565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60008251611fc3818460208701611a90565b9190910192915050565b6001600160a01b0385811682528416602082015260606040820181905281018290526000828460808401376000608084840101526080601f19601f850116830101905095945050505050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526024908201527f4368696c644552433732313a204f6e6c79207072656469636174652063616e2060408201526318d85b1b60e21b606082015260800190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561039b57634e487b7160e01b600052601160045260246000fd5b6020808252818101527f4368696c644552433732313a204f6e6c79206f776e65722063616e206275726e604082015260600190565b6000835161215a818460208801611a90565b83519083019061216e818360208801611a90565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b601f82111561058157600081815260208120601f850160051c810160208610156122805750805b601f850160051c820191505b81811015610d035782815560010161228c565b81516001600160401b038111156122b8576122b8611e2d565b6122cc816122c68454611f51565b84612259565b602080601f83116001811461230157600084156122e95750858301515b600019600386901b1c1916600185901b178555610d03565b600085815260208120601f198616915b8281101561233057888601518255948401946001909101908401612311565b508582101561234e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061239190830184611ab4565b9695505050505050565b6000602082840312156123ad57600080fd5b8151610f2181611a5d565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060408201526060019056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220667d3c30bcd6799bcd5d1501bea0d3a68235675f8ae26bea6b04951c37765f7164736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806370a08231116100c3578063a22cb4651161007c578063a22cb465146102de578063b2dc5dc3146102f1578063b88d4fde14610304578063c87b56dd14610317578063e61987051461032a578063e985e9c51461033c57600080fd5b806370a08231146102775780637c88e3d91461028a578063906571471461029d57806395d89b41146102b05780639b77ef11146102b85780639dc29fac146102cb57600080fd5b80631f2d0065116101155780631f2d0065146101e257806323b872dd146101f45780632d0335ab1461020757806340c10f191461023e57806342842e0e146102515780636352211e1461026457600080fd5b806301ffc9a71461015257806306fdde031461017a578063081812fc1461018f578063095ea7b3146101ba5780630c53c51c146101cf575b600080fd5b610165610160366004611a73565b61034f565b60405190151581526020015b60405180910390f35b6101826103a1565b6040516101719190611ae0565b6101a261019d366004611af3565b610433565b6040516001600160a01b039091168152602001610171565b6101cd6101c8366004611b28565b61045a565b005b6101826101dd366004611b9a565b610586565b610103546001600160a01b03166101a2565b6101cd610202366004611c19565b610864565b610230610215366004611c55565b6001600160a01b031660009081526038602052604090205490565b604051908152602001610171565b61016561024c366004611b28565b61089c565b6101cd61025f366004611c19565b6108dd565b6101a2610272366004611af3565b6108f8565b610230610285366004611c55565b61092d565b610165610298366004611cb4565b6109b3565b6101cd6102ab366004611d1f565b610a9b565b610182610d0b565b6101cd6102c6366004611af3565b610d1a565b6101656102d9366004611b28565b610d41565b6101cd6102ec366004611d9f565b610db1565b6101656102ff366004611ddb565b610dc7565b6101cd610312366004611e43565b610e75565b610182610325366004611af3565b610eb4565b610102546001600160a01b03166101a2565b61016561034a366004611f1e565b610f28565b60006001600160e01b031982166380ac58cd60e01b148061038057506001600160e01b03198216635b5e139f60e01b145b8061039b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b606060d080546103b090611f51565b80601f01602080910402602001604051908101604052809291908181526020018280546103dc90611f51565b80156104295780601f106103fe57610100808354040283529160200191610429565b820191906000526020600020905b81548152906001019060200180831161040c57829003601f168201915b5050505050905090565b600061043e82610f56565b50600090815260d460205260409020546001600160a01b031690565b6000610465826108f8565b9050806001600160a01b0316836001600160a01b0316036104d75760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b806001600160a01b03166104e9610f7e565b6001600160a01b0316148061050557506105058161034a610f7e565b6105775760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c00000060648201526084016104ce565b6105818383610f8d565b505050565b606060006105c987878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610ffb92505050565b90506001600160e01b031960003581169082160361064f5760405162461bcd60e51b815260206004820152603d60248201527f66756e6374696f6e5369676e61747572652063616e206e6f74206265206f662060448201527f657865637574654d6574615472616e73616374696f6e206d6574686f6400000060648201526084016104ce565b604080516060810182526001600160a01b038a16600081815260386020908152848220548452808401929092528351601f8b0183900483028101830185528a815290938301918b908b9081908401838280828437600092019190915250505091525090506106c08982888888611016565b6107165760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b60648201526084016104ce565b603860008a6001600160a01b03166001600160a01b031681526020019081526020016000206000815460010191905081905550600080306001600160a01b03168a8a8d60405160200161076b93929190611f8b565b60408051601f198184030181529082905261078591611fb1565b6000604051808303816000865af19150503d80600081146107c2576040519150601f19603f3d011682016040523d82523d6000602084013e6107c7565b606091505b5091509150816108195760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016104ce565b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8b338c8c60405161084e9493929190611fcd565b60405180910390a19a9950505050505050505050565b61087561086f610f7e565b826110f2565b6108915760405162461bcd60e51b81526004016104ce90612019565b610581838383611150565b610102546000906001600160a01b031633146108ca5760405162461bcd60e51b81526004016104ce90612066565b6108d483836112a2565b50600192915050565b61058183838360405180602001604052806000815250610e75565b600081815260d260205260408120546001600160a01b03168061039b5760405162461bcd60e51b81526004016104ce906120aa565b60006001600160a01b0382166109975760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016104ce565b506001600160a01b0316600090815260d3602052604090205490565b610102546000906001600160a01b031633146109e15760405162461bcd60e51b81526004016104ce90612066565b83828114610a315760405162461bcd60e51b815260206004820152601f60248201527f4368696c644552433732313a204172726179206c656e206d69736d617463680060448201526064016104ce565b60005b81811015610a8c57610a84878783818110610a5157610a516120dc565b9050602002016020810190610a669190611c55565b868684818110610a7857610a786120dc565b905060200201356112a2565b600101610a34565b5060019150505b949350505050565b606b54610100900460ff1615808015610abb5750606b54600160ff909116105b80610ad55750303b158015610ad55750606b5460ff166001145b610b385760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104ce565b606b805460ff191660011790558015610b5b57606b805461ff0019166101001790555b6001600160a01b03861615801590610b7257508315155b8015610b7d57508115155b610bc95760405162461bcd60e51b815260206004820152601f60248201527f4368696c644552433732313a2042616420696e697469616c697a6174696f6e0060448201526064016104ce565b61010380546001600160a01b0388166001600160a01b031991821617909155610102805490911633179055604080516020601f8701819004810282018101909252858152610c6591879087908190840183828082843760009201919091525050604080516020601f890181900481028201810190925287815292508791508690819084018382808284376000920191909152506112bc92505050565b610cbd85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b602082015291506112ed9050565b8015610d0357606b805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b606060d180546103b090611f51565b3360009081526038602052604081208054839290610d399084906120f2565b909155505050565b610102546000906001600160a01b03163314610d6f5760405162461bcd60e51b81526004016104ce90612066565b610d78826108f8565b6001600160a01b0316836001600160a01b031614610da85760405162461bcd60e51b81526004016104ce90612113565b6108d482611359565b610dc3610dbc610f7e565b83836113dc565b5050565b610102546000906001600160a01b03163314610df55760405162461bcd60e51b81526004016104ce90612066565b8160005b81811015610e69576000858583818110610e1557610e156120dc565b905060200201359050610e27816108f8565b6001600160a01b0316876001600160a01b031614610e575760405162461bcd60e51b81526004016104ce90612113565b610e6081611359565b50600101610df9565b50600195945050505050565b610e86610e80610f7e565b836110f2565b610ea25760405162461bcd60e51b81526004016104ce90612019565b610eae848484846114a6565b50505050565b6060610ebf82610f56565b6000610ed660408051602081019091526000815290565b90506000815111610ef65760405180602001604052806000815250610f21565b80610f00846114d9565b604051602001610f11929190612148565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260d56020908152604080832093909416825291909152205460ff1690565b610f5f8161156b565b610f7b5760405162461bcd60e51b81526004016104ce906120aa565b50565b6000610f88611588565b905090565b600081815260d46020526040902080546001600160a01b0319166001600160a01b0384169081179091558190610fc2826108f8565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000815160000361100e57506000919050565b506020015190565b600080600161102c611027886115e4565b611661565b6040805160008152602081018083529290925260ff861690820152606081018790526080810186905260a0016020604051602081039080840390855afa15801561107a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110d15760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016104ce565b866001600160a01b0316816001600160a01b03161491505095945050505050565b6000806110fe836108f8565b9050806001600160a01b0316846001600160a01b0316148061112557506111258185610f28565b80610a935750836001600160a01b031661113e84610433565b6001600160a01b031614949350505050565b826001600160a01b0316611163826108f8565b6001600160a01b0316146111895760405162461bcd60e51b81526004016104ce90612177565b6001600160a01b0382166111eb5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016104ce565b826001600160a01b03166111fe826108f8565b6001600160a01b0316146112245760405162461bcd60e51b81526004016104ce90612177565b600081815260d46020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260d3855283862080546000190190559087168086528386208054600101905586865260d2909452828520805490921684179091559051849360008051602061243383398151915291a4505050565b610dc382826040518060200160405280600081525061168e565b606b54610100900460ff166112e35760405162461bcd60e51b81526004016104ce906121bc565b610dc382826116c1565b815160208084019190912082519183019190912060038290556004819055466001557f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61133b818484611701565b600055600280546001600160a01b0319163017905560055550505050565b6000611364826108f8565b905061136f826108f8565b600083815260d46020908152604080832080546001600160a01b03199081169091556001600160a01b03851680855260d38452828520805460001901905587855260d290935281842080549091169055519293508492600080516020612433833981519152908390a45050565b816001600160a01b0316836001600160a01b0316036114395760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b60448201526064016104ce565b6001600160a01b03838116600081815260d56020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6114b1848484611150565b6114bd8484848461174a565b610eae5760405162461bcd60e51b81526004016104ce90612207565b606060006114e68361184f565b60010190506000816001600160401b0381111561150557611505611e2d565b6040519080825280601f01601f19166020018201604052801561152f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461153957509392505050565b600090815260d260205260409020546001600160a01b0316151590565b60003033036115de57600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506115e19050565b50335b90565b60006040518060800160405280604381526020016123f06043913980516020918201208351848301516040808701518051908601209051611644950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b600061039b61166e611927565b8360405161190160f01b8152600281019290925260228201526042902090565b6116988383611962565b6116a5600084848461174a565b6105815760405162461bcd60e51b81526004016104ce90612207565b606b54610100900460ff166116e85760405162461bcd60e51b81526004016104ce906121bc565b60d06116f4838261229f565b5060d1610581828261229f565b6040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b60006001600160a01b0384163b1561184757836001600160a01b031663150b7a02611773610f7e565b8786866040518563ffffffff1660e01b8152600401611795949392919061235e565b6020604051808303816000875af19250505080156117d0575060408051601f3d908101601f191682019092526117cd9181019061239b565b60015b61182d573d8080156117fe576040519150601f19603f3d011682016040523d82523d6000602084013e611803565b606091505b5080516000036118255760405162461bcd60e51b81526004016104ce90612207565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610a93565b506001610a93565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061188e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106118ba576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106118d857662386f26fc10000830492506010015b6305f5e10083106118f0576305f5e100830492506008015b612710831061190457612710830492506004015b60648310611916576064830492506002015b600a831061039b5760010192915050565b6002546000906001600160a01b031630148015611945575060015446145b15611951575060005490565b610f88600554600354600454611701565b6001600160a01b0382166119b85760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016104ce565b6119c18161156b565b156119de5760405162461bcd60e51b81526004016104ce906123b8565b6119e78161156b565b15611a045760405162461bcd60e51b81526004016104ce906123b8565b6001600160a01b038216600081815260d3602090815260408083208054600101905584835260d290915280822080546001600160a01b031916841790555183929190600080516020612433833981519152908290a45050565b6001600160e01b031981168114610f7b57600080fd5b600060208284031215611a8557600080fd5b8135610f2181611a5d565b60005b83811015611aab578181015183820152602001611a93565b50506000910152565b60008151808452611acc816020860160208601611a90565b601f01601f19169290920160200192915050565b602081526000610f216020830184611ab4565b600060208284031215611b0557600080fd5b5035919050565b80356001600160a01b0381168114611b2357600080fd5b919050565b60008060408385031215611b3b57600080fd5b611b4483611b0c565b946020939093013593505050565b60008083601f840112611b6457600080fd5b5081356001600160401b03811115611b7b57600080fd5b602083019150836020828501011115611b9357600080fd5b9250929050565b60008060008060008060a08789031215611bb357600080fd5b611bbc87611b0c565b955060208701356001600160401b03811115611bd757600080fd5b611be389828a01611b52565b9096509450506040870135925060608701359150608087013560ff81168114611c0b57600080fd5b809150509295509295509295565b600080600060608486031215611c2e57600080fd5b611c3784611b0c565b9250611c4560208501611b0c565b9150604084013590509250925092565b600060208284031215611c6757600080fd5b610f2182611b0c565b60008083601f840112611c8257600080fd5b5081356001600160401b03811115611c9957600080fd5b6020830191508360208260051b8501011115611b9357600080fd5b60008060008060408587031215611cca57600080fd5b84356001600160401b0380821115611ce157600080fd5b611ced88838901611c70565b90965094506020870135915080821115611d0657600080fd5b50611d1387828801611c70565b95989497509550505050565b600080600080600060608688031215611d3757600080fd5b611d4086611b0c565b945060208601356001600160401b0380821115611d5c57600080fd5b611d6889838a01611b52565b90965094506040880135915080821115611d8157600080fd5b50611d8e88828901611b52565b969995985093965092949392505050565b60008060408385031215611db257600080fd5b611dbb83611b0c565b915060208301358015158114611dd057600080fd5b809150509250929050565b600080600060408486031215611df057600080fd5b611df984611b0c565b925060208401356001600160401b03811115611e1457600080fd5b611e2086828701611c70565b9497909650939450505050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215611e5957600080fd5b611e6285611b0c565b9350611e7060208601611b0c565b92506040850135915060608501356001600160401b0380821115611e9357600080fd5b818701915087601f830112611ea757600080fd5b813581811115611eb957611eb9611e2d565b604051601f8201601f19908116603f01168101908382118183101715611ee157611ee1611e2d565b816040528281528a6020848701011115611efa57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215611f3157600080fd5b611f3a83611b0c565b9150611f4860208401611b0c565b90509250929050565b600181811c90821680611f6557607f821691505b602082108103611f8557634e487b7160e01b600052602260045260246000fd5b50919050565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60008251611fc3818460208701611a90565b9190910192915050565b6001600160a01b0385811682528416602082015260606040820181905281018290526000828460808401376000608084840101526080601f19601f850116830101905095945050505050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60208082526024908201527f4368696c644552433732313a204f6e6c79207072656469636174652063616e2060408201526318d85b1b60e21b606082015260800190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b8082018082111561039b57634e487b7160e01b600052601160045260246000fd5b6020808252818101527f4368696c644552433732313a204f6e6c79206f776e65722063616e206275726e604082015260600190565b6000835161215a818460208801611a90565b83519083019061216e818360208801611a90565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b601f82111561058157600081815260208120601f850160051c810160208610156122805750805b601f850160051c820191505b81811015610d035782815560010161228c565b81516001600160401b038111156122b8576122b8611e2d565b6122cc816122c68454611f51565b84612259565b602080601f83116001811461230157600084156122e95750858301515b600019600386901b1c1916600185901b178555610d03565b600085815260208120601f198616915b8281101561233057888601518255948401946001909101908401612311565b508582101561234e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061239190830184611ab4565b9695505050505050565b6000602082840312156123ad57600080fd5b8151610f2181611a5d565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060408201526060019056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220667d3c30bcd6799bcd5d1501bea0d3a68235675f8ae26bea6b04951c37765f7164736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` -var ChildERC721PredicateArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC721Predicate","sourceName":"contracts/blade/ChildERC721Predicate.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"ERC721DepositBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"ERC721WithdrawBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC721Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootERC721Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rootTokenToChildToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IChildERC721","name":"childToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC721","name":"childToken","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"withdrawBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC721","name":"childToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50611eb6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d55760003560e01c8063c5ac2b1c11610087578063c5ac2b1c146101ac578063cf756fdf146101d3578063d41f1771146101e6578063d7c9e3ec1461020d578063eeb4994514610234578063f3fef3a314610247578063f64512551461025a578063f691325c1461028157600080fd5b8063116191b6146100da5780636f33e6951461010a5780637efab4f51461011f5780639079dfb314610148578063b07506111461015b578063b176806514610172578063c3b35a7e14610199575b600080fd5b6000546100ed906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61011d6101183660046115b5565b61029a565b005b6100ed61012d366004611637565b6004602052600090815260409020546001600160a01b031681565b6003546100ed906001600160a01b031681565b61016460015481565b604051908152602001610101565b6101647f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61011d6101a736600461165b565b6102ae565b6101647faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61011d6101e136600461169c565b6102be565b6101647f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6101647f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b61011d6102423660046116ed565b6103db565b61011d610255366004611775565b6105f8565b6101647f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6002546100ed906201000090046001600160a01b031681565b6102a78585858585610607565b5050505050565b6102b9838383610977565b505050565b600254610100900460ff16158080156102de5750600254600160ff909116105b806102f85750303b1580156102f8575060025460ff166001145b6103605760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff191660011790558015610383576002805461ff0019166101001790555b61038f85858585610c8e565b80156102a7576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6000546001600160a01b031633146104405760405162461bcd60e51b815260206004820152602260248201527f4368696c644552433732315072656469636174653a204f4e4c595f4741544557604482015261415960f01b6064820152608401610357565b6002546001600160a01b038481166201000090920416146104b55760405162461bcd60e51b815260206004820152602960248201527f4368696c644552433732315072656469636174653a204f4e4c595f524f4f545f60448201526850524544494341544560b81b6064820152608401610357565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216104e46020600084866117a1565b6104ed916117cb565b0361050c5761050761050282602081866117a1565b610d51565b6105f2565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1861053b6020600084866117a1565b610544916117cb565b03610553576105078282610fc7565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad6105826020600084866117a1565b61058b916117cb565b0361059a57610507828261122d565b60405162461bcd60e51b815260206004820152602760248201527f4368696c644552433732315072656469636174653a20494e56414c49445f5349604482015266474e415455524560c81b6064820152608401610357565b50505050565b610603823383610977565b5050565b846106118161139d565b61062d5760405162461bcd60e51b8152600401610357906117e9565b6000866001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610691919061182b565b6001600160a01b038181166000908152600460205260409020549192508881169116146106d05760405162461bcd60e51b815260040161035790611848565b6001600160a01b0381166106e6576106e661188c565b306001600160a01b0316876001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610752919061182b565b6001600160a01b0316146107685761076861188c565b8483146107c35760405162461bcd60e51b8152602060048201526024808201527f4368696c644552433732315072656469636174653a20494e56414c49445f4c4560448201526309c8ea8960e31b6064820152608401610357565b60405163b2dc5dc360e01b81526001600160a01b0388169063b2dc5dc3906107f3903390889088906004016118d4565b6020604051808303816000875af1158015610812573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108369190611902565b6108525760405162461bcd60e51b815260040161035790611924565b6000546002546040516001600160a01b039283169263417d5acb9262010000900416906108af907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908d908d908d908d906020016119ae565b60408051601f19818403018152908290526001546001600160e01b031960e086901b1683526108e19392600401611a48565b600060405180830381600087803b1580156108fb57600080fd5b505af115801561090f573d6000803e3d6000fd5b50505050336001600160a01b0316876001600160a01b0316826001600160a01b03167f1b7b9713fdef5dfadf92f6d6e998eb1fc4763cee62a194a095d76349f7dce20c898989896040516109669493929190611a7c565b60405180910390a450505050505050565b826109818161139d565b61099d5760405162461bcd60e51b8152600401610357906117e9565b6000846001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a01919061182b565b6001600160a01b03818116600090815260046020526040902054919250868116911614610a405760405162461bcd60e51b815260040161035790611848565b6001600160a01b038116610a5657610a5661188c565b306001600160a01b0316856001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac2919061182b565b6001600160a01b031614610ad857610ad861188c565b604051632770a7eb60e21b81526001600160a01b03861690639dc29fac90610b069033908790600401611aae565b6020604051808303816000875af1158015610b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b499190611902565b610b655760405162461bcd60e51b815260040161035790611924565b600054600254604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152888116608083015260a08083018990528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb94610bfe94620100009091049092169290919060c401611a48565b600060405180830381600087803b158015610c1857600080fd5b505af1158015610c2c573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b0316826001600160a01b03167f8194f168e6e9e449d05a46936e071a710c0f22634eaadeb5b85a8654012393193387604051610c7f929190611aae565b60405180910390a45050505050565b610c988482611432565b6001600160a01b03831615801590610cb857506001600160a01b03821615155b610d155760405162461bcd60e51b815260206004820152602860248201527f4368696c644552433732315072656469636174653a204241445f494e495449416044820152672624ad20aa24a7a760c11b6064820152608401610357565b506002805462010000600160b01b031916620100006001600160a01b0394851602179055600380546001600160a01b0319169190921617905550565b6000808080610d628587018761169c565b6001600160a01b0380851660009081526004602052604090205494985092965090945092501680610da55760405162461bcd60e51b815260040161035790611848565b610dae8161139d565b610dba57610dba61188c565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e919061182b565b9050856001600160a01b0316816001600160a01b031614610e4157610e4161188c565b6001600160a01b038116610e5757610e5761188c565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec3919061182b565b6001600160a01b031614610ed957610ed961188c565b6040516340c10f1960e01b81526001600160a01b038316906340c10f1990610f079087908790600401611aae565b6020604051808303816000875af1158015610f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4a9190611902565b610f665760405162461bcd60e51b815260040161035790611ac7565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f40e242710be14b7d61d3b93e9d56b40df89cc4dbad8bb88da38c8e0c23809ba78887604051610fb5929190611aae565b60405180910390a45050505050505050565b6000808080610fd885870187611bdc565b6001600160a01b0380851660009081526004602052604090205494995092975090955093501690508061101d5760405162461bcd60e51b815260040161035790611848565b6110268161139d565b6110325761103261188c565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611096919061182b565b9050856001600160a01b0316816001600160a01b0316146110b9576110b961188c565b6001600160a01b0381166110cf576110cf61188c565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b919061182b565b6001600160a01b0316146111515761115161188c565b604051637c88e3d960e01b81526001600160a01b03831690637c88e3d99061117f9087908790600401611cce565b6020604051808303816000875af115801561119e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c29190611902565b6111de5760405162461bcd60e51b815260040161035790611ac7565b846001600160a01b0316826001600160a01b0316876001600160a01b03167f02c575a943105cda454293b7ac636c87c94ff1bfcfac968aa5423e6b9b312ee98787604051610fb5929190611cce565b6000808061123d84860186611dc1565b91955093509150506001600160a01b03831661125b5761125b61188c565b6001600160a01b0383811660009081526004602052604090205416156112835761128361188c565b6003546040516bffffffffffffffffffffffff19606086901b1660208201526000916112d3916001600160a01b0390911690603401604051602081830303815290604052805190602001206114bb565b6001600160a01b0385811660009081526004602081905260409182902080546001600160a01b03191693851693841790559051639065714760e01b8152929350909163906571479161132b9188918891889101611e40565b600060405180830381600087803b15801561134557600080fd5b505af1158015611359573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a3505050505050565b6000816001600160a01b03163b6000036113b957506000919050565b6040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611420575060408051601f3d908101601f1916820190925261141d91810190611902565b60015b61142c57506000919050565b92915050565b6001600160a01b0382161580159061144957508015155b6114955760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610357565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811661142c5760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610357565b6001600160a01b038116811461156757600080fd5b50565b60008083601f84011261157c57600080fd5b5081356001600160401b0381111561159357600080fd5b6020830191508360208260051b85010111156115ae57600080fd5b9250929050565b6000806000806000606086880312156115cd57600080fd5b85356115d881611552565b945060208601356001600160401b03808211156115f457600080fd5b61160089838a0161156a565b9096509450604088013591508082111561161957600080fd5b506116268882890161156a565b969995985093965092949392505050565b60006020828403121561164957600080fd5b813561165481611552565b9392505050565b60008060006060848603121561167057600080fd5b833561167b81611552565b9250602084013561168b81611552565b929592945050506040919091013590565b600080600080608085870312156116b257600080fd5b84356116bd81611552565b935060208501356116cd81611552565b925060408501356116dd81611552565b9396929550929360600135925050565b6000806000806060858703121561170357600080fd5b84359350602085013561171581611552565b925060408501356001600160401b038082111561173157600080fd5b818701915087601f83011261174557600080fd5b81358181111561175457600080fd5b88602082850101111561176657600080fd5b95989497505060200194505050565b6000806040838503121561178857600080fd5b823561179381611552565b946020939093013593505050565b600080858511156117b157600080fd5b838611156117be57600080fd5b5050820193919092039150565b8035602083101561142c57600019602084900360031b1b1692915050565b60208082526022908201527f4368696c644552433732315072656469636174653a204e4f545f434f4e54524160408201526110d560f21b606082015260800190565b60006020828403121561183d57600080fd5b815161165481611552565b60208082526024908201527f4368696c644552433732315072656469636174653a20554e4d41505045445f5460408201526327a5a2a760e11b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b038311156118bb57600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03841681526040602082018190526000906118f990830184866118a2565b95945050505050565b60006020828403121561191457600080fd5b8151801515811461165457600080fd5b60208082526021908201527f4368696c644552433732315072656469636174653a204255524e5f4641494c456040820152601160fa1b606082015260800190565b8183526000602080850194508260005b858110156119a357813561198881611552565b6001600160a01b031687529582019590820190600101611975565b509495945050505050565b8781526001600160a01b0387811660208301528616604082015260a0606082018190526000906119e19083018688611965565b82810360808401526119f48185876118a2565b9a9950505050505050505050565b6000815180845260005b81811015611a2857602081850181015186830182015201611a0c565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090611a6c90830185611a02565b9050826040830152949350505050565b604081526000611a90604083018688611965565b8281036020840152611aa38185876118a2565b979650505050505050565b6001600160a01b03929092168252602082015260400190565b60208082526021908201527f4368696c644552433732315072656469636174653a204d494e545f4641494c456040820152601160fa1b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b4657611b46611b08565b604052919050565b60006001600160401b03821115611b6757611b67611b08565b5060051b60200190565b600082601f830112611b8257600080fd5b81356020611b97611b9283611b4e565b611b1e565b82815260059290921b84018101918181019086841115611bb657600080fd5b8286015b84811015611bd15780358352918301918301611bba565b509695505050505050565b600080600080600060a08688031215611bf457600080fd5b85359450602080870135611c0781611552565b94506040870135611c1781611552565b935060608701356001600160401b0380821115611c3357600080fd5b818901915089601f830112611c4757600080fd5b8135611c55611b9282611b4e565b81815260059190911b8301840190848101908c831115611c7457600080fd5b938501935b82851015611c9b578435611c8c81611552565b82529385019390850190611c79565b965050506080890135925080831115611cb357600080fd5b5050611cc188828901611b71565b9150509295509295909350565b604080825283519082018190526000906020906060840190828701845b82811015611d105781516001600160a01b031684529284019290840190600101611ceb565b5050508381038285015284518082528583019183019060005b81811015611d4557835183529284019291840191600101611d29565b5090979650505050505050565b600082601f830112611d6357600080fd5b81356001600160401b03811115611d7c57611d7c611b08565b611d8f601f8201601f1916602001611b1e565b818152846020838601011115611da457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611dd757600080fd5b843593506020850135611de981611552565b925060408501356001600160401b0380821115611e0557600080fd5b611e1188838901611d52565b93506060870135915080821115611e2757600080fd5b50611e3487828801611d52565b91505092959194509250565b6001600160a01b0384168152606060208201819052600090611e6490830185611a02565b8281036040840152611e768185611a02565b969550505050505056fea2646970667358221220f314b48c5500cb3a24e9d0f0455f15594497dbf9e5ad70171dc9e71800b73f8564736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100d55760003560e01c8063c5ac2b1c11610087578063c5ac2b1c146101ac578063cf756fdf146101d3578063d41f1771146101e6578063d7c9e3ec1461020d578063eeb4994514610234578063f3fef3a314610247578063f64512551461025a578063f691325c1461028157600080fd5b8063116191b6146100da5780636f33e6951461010a5780637efab4f51461011f5780639079dfb314610148578063b07506111461015b578063b176806514610172578063c3b35a7e14610199575b600080fd5b6000546100ed906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61011d6101183660046115b5565b61029a565b005b6100ed61012d366004611637565b6004602052600090815260409020546001600160a01b031681565b6003546100ed906001600160a01b031681565b61016460015481565b604051908152602001610101565b6101647f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61011d6101a736600461165b565b6102ae565b6101647faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61011d6101e136600461169c565b6102be565b6101647f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6101647f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b61011d6102423660046116ed565b6103db565b61011d610255366004611775565b6105f8565b6101647f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6002546100ed906201000090046001600160a01b031681565b6102a78585858585610607565b5050505050565b6102b9838383610977565b505050565b600254610100900460ff16158080156102de5750600254600160ff909116105b806102f85750303b1580156102f8575060025460ff166001145b6103605760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff191660011790558015610383576002805461ff0019166101001790555b61038f85858585610c8e565b80156102a7576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6000546001600160a01b031633146104405760405162461bcd60e51b815260206004820152602260248201527f4368696c644552433732315072656469636174653a204f4e4c595f4741544557604482015261415960f01b6064820152608401610357565b6002546001600160a01b038481166201000090920416146104b55760405162461bcd60e51b815260206004820152602960248201527f4368696c644552433732315072656469636174653a204f4e4c595f524f4f545f60448201526850524544494341544560b81b6064820152608401610357565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216104e46020600084866117a1565b6104ed916117cb565b0361050c5761050761050282602081866117a1565b610d51565b6105f2565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1861053b6020600084866117a1565b610544916117cb565b03610553576105078282610fc7565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad6105826020600084866117a1565b61058b916117cb565b0361059a57610507828261122d565b60405162461bcd60e51b815260206004820152602760248201527f4368696c644552433732315072656469636174653a20494e56414c49445f5349604482015266474e415455524560c81b6064820152608401610357565b50505050565b610603823383610977565b5050565b846106118161139d565b61062d5760405162461bcd60e51b8152600401610357906117e9565b6000866001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610691919061182b565b6001600160a01b038181166000908152600460205260409020549192508881169116146106d05760405162461bcd60e51b815260040161035790611848565b6001600160a01b0381166106e6576106e661188c565b306001600160a01b0316876001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610752919061182b565b6001600160a01b0316146107685761076861188c565b8483146107c35760405162461bcd60e51b8152602060048201526024808201527f4368696c644552433732315072656469636174653a20494e56414c49445f4c4560448201526309c8ea8960e31b6064820152608401610357565b60405163b2dc5dc360e01b81526001600160a01b0388169063b2dc5dc3906107f3903390889088906004016118d4565b6020604051808303816000875af1158015610812573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108369190611902565b6108525760405162461bcd60e51b815260040161035790611924565b6000546002546040516001600160a01b039283169263417d5acb9262010000900416906108af907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908d908d908d908d906020016119ae565b60408051601f19818403018152908290526001546001600160e01b031960e086901b1683526108e19392600401611a48565b600060405180830381600087803b1580156108fb57600080fd5b505af115801561090f573d6000803e3d6000fd5b50505050336001600160a01b0316876001600160a01b0316826001600160a01b03167f1b7b9713fdef5dfadf92f6d6e998eb1fc4763cee62a194a095d76349f7dce20c898989896040516109669493929190611a7c565b60405180910390a450505050505050565b826109818161139d565b61099d5760405162461bcd60e51b8152600401610357906117e9565b6000846001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a01919061182b565b6001600160a01b03818116600090815260046020526040902054919250868116911614610a405760405162461bcd60e51b815260040161035790611848565b6001600160a01b038116610a5657610a5661188c565b306001600160a01b0316856001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac2919061182b565b6001600160a01b031614610ad857610ad861188c565b604051632770a7eb60e21b81526001600160a01b03861690639dc29fac90610b069033908790600401611aae565b6020604051808303816000875af1158015610b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b499190611902565b610b655760405162461bcd60e51b815260040161035790611924565b600054600254604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152888116608083015260a08083018990528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb94610bfe94620100009091049092169290919060c401611a48565b600060405180830381600087803b158015610c1857600080fd5b505af1158015610c2c573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b0316826001600160a01b03167f8194f168e6e9e449d05a46936e071a710c0f22634eaadeb5b85a8654012393193387604051610c7f929190611aae565b60405180910390a45050505050565b610c988482611432565b6001600160a01b03831615801590610cb857506001600160a01b03821615155b610d155760405162461bcd60e51b815260206004820152602860248201527f4368696c644552433732315072656469636174653a204241445f494e495449416044820152672624ad20aa24a7a760c11b6064820152608401610357565b506002805462010000600160b01b031916620100006001600160a01b0394851602179055600380546001600160a01b0319169190921617905550565b6000808080610d628587018761169c565b6001600160a01b0380851660009081526004602052604090205494985092965090945092501680610da55760405162461bcd60e51b815260040161035790611848565b610dae8161139d565b610dba57610dba61188c565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e919061182b565b9050856001600160a01b0316816001600160a01b031614610e4157610e4161188c565b6001600160a01b038116610e5757610e5761188c565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec3919061182b565b6001600160a01b031614610ed957610ed961188c565b6040516340c10f1960e01b81526001600160a01b038316906340c10f1990610f079087908790600401611aae565b6020604051808303816000875af1158015610f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4a9190611902565b610f665760405162461bcd60e51b815260040161035790611ac7565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f40e242710be14b7d61d3b93e9d56b40df89cc4dbad8bb88da38c8e0c23809ba78887604051610fb5929190611aae565b60405180910390a45050505050505050565b6000808080610fd885870187611bdc565b6001600160a01b0380851660009081526004602052604090205494995092975090955093501690508061101d5760405162461bcd60e51b815260040161035790611848565b6110268161139d565b6110325761103261188c565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611096919061182b565b9050856001600160a01b0316816001600160a01b0316146110b9576110b961188c565b6001600160a01b0381166110cf576110cf61188c565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b919061182b565b6001600160a01b0316146111515761115161188c565b604051637c88e3d960e01b81526001600160a01b03831690637c88e3d99061117f9087908790600401611cce565b6020604051808303816000875af115801561119e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c29190611902565b6111de5760405162461bcd60e51b815260040161035790611ac7565b846001600160a01b0316826001600160a01b0316876001600160a01b03167f02c575a943105cda454293b7ac636c87c94ff1bfcfac968aa5423e6b9b312ee98787604051610fb5929190611cce565b6000808061123d84860186611dc1565b91955093509150506001600160a01b03831661125b5761125b61188c565b6001600160a01b0383811660009081526004602052604090205416156112835761128361188c565b6003546040516bffffffffffffffffffffffff19606086901b1660208201526000916112d3916001600160a01b0390911690603401604051602081830303815290604052805190602001206114bb565b6001600160a01b0385811660009081526004602081905260409182902080546001600160a01b03191693851693841790559051639065714760e01b8152929350909163906571479161132b9188918891889101611e40565b600060405180830381600087803b15801561134557600080fd5b505af1158015611359573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a3505050505050565b6000816001600160a01b03163b6000036113b957506000919050565b6040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611420575060408051601f3d908101601f1916820190925261141d91810190611902565b60015b61142c57506000919050565b92915050565b6001600160a01b0382161580159061144957508015155b6114955760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610357565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811661142c5760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610357565b6001600160a01b038116811461156757600080fd5b50565b60008083601f84011261157c57600080fd5b5081356001600160401b0381111561159357600080fd5b6020830191508360208260051b85010111156115ae57600080fd5b9250929050565b6000806000806000606086880312156115cd57600080fd5b85356115d881611552565b945060208601356001600160401b03808211156115f457600080fd5b61160089838a0161156a565b9096509450604088013591508082111561161957600080fd5b506116268882890161156a565b969995985093965092949392505050565b60006020828403121561164957600080fd5b813561165481611552565b9392505050565b60008060006060848603121561167057600080fd5b833561167b81611552565b9250602084013561168b81611552565b929592945050506040919091013590565b600080600080608085870312156116b257600080fd5b84356116bd81611552565b935060208501356116cd81611552565b925060408501356116dd81611552565b9396929550929360600135925050565b6000806000806060858703121561170357600080fd5b84359350602085013561171581611552565b925060408501356001600160401b038082111561173157600080fd5b818701915087601f83011261174557600080fd5b81358181111561175457600080fd5b88602082850101111561176657600080fd5b95989497505060200194505050565b6000806040838503121561178857600080fd5b823561179381611552565b946020939093013593505050565b600080858511156117b157600080fd5b838611156117be57600080fd5b5050820193919092039150565b8035602083101561142c57600019602084900360031b1b1692915050565b60208082526022908201527f4368696c644552433732315072656469636174653a204e4f545f434f4e54524160408201526110d560f21b606082015260800190565b60006020828403121561183d57600080fd5b815161165481611552565b60208082526024908201527f4368696c644552433732315072656469636174653a20554e4d41505045445f5460408201526327a5a2a760e11b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b038311156118bb57600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03841681526040602082018190526000906118f990830184866118a2565b95945050505050565b60006020828403121561191457600080fd5b8151801515811461165457600080fd5b60208082526021908201527f4368696c644552433732315072656469636174653a204255524e5f4641494c456040820152601160fa1b606082015260800190565b8183526000602080850194508260005b858110156119a357813561198881611552565b6001600160a01b031687529582019590820190600101611975565b509495945050505050565b8781526001600160a01b0387811660208301528616604082015260a0606082018190526000906119e19083018688611965565b82810360808401526119f48185876118a2565b9a9950505050505050505050565b6000815180845260005b81811015611a2857602081850181015186830182015201611a0c565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090611a6c90830185611a02565b9050826040830152949350505050565b604081526000611a90604083018688611965565b8281036020840152611aa38185876118a2565b979650505050505050565b6001600160a01b03929092168252602082015260400190565b60208082526021908201527f4368696c644552433732315072656469636174653a204d494e545f4641494c456040820152601160fa1b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b4657611b46611b08565b604052919050565b60006001600160401b03821115611b6757611b67611b08565b5060051b60200190565b600082601f830112611b8257600080fd5b81356020611b97611b9283611b4e565b611b1e565b82815260059290921b84018101918181019086841115611bb657600080fd5b8286015b84811015611bd15780358352918301918301611bba565b509695505050505050565b600080600080600060a08688031215611bf457600080fd5b85359450602080870135611c0781611552565b94506040870135611c1781611552565b935060608701356001600160401b0380821115611c3357600080fd5b818901915089601f830112611c4757600080fd5b8135611c55611b9282611b4e565b81815260059190911b8301840190848101908c831115611c7457600080fd5b938501935b82851015611c9b578435611c8c81611552565b82529385019390850190611c79565b965050506080890135925080831115611cb357600080fd5b5050611cc188828901611b71565b9150509295509295909350565b604080825283519082018190526000906020906060840190828701845b82811015611d105781516001600160a01b031684529284019290840190600101611ceb565b5050508381038285015284518082528583019183019060005b81811015611d4557835183529284019291840191600101611d29565b5090979650505050505050565b600082601f830112611d6357600080fd5b81356001600160401b03811115611d7c57611d7c611b08565b611d8f601f8201601f1916602001611b1e565b818152846020838601011115611da457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611dd757600080fd5b843593506020850135611de981611552565b925060408501356001600160401b0380821115611e0557600080fd5b611e1188838901611d52565b93506060870135915080821115611e2757600080fd5b50611e3487828801611d52565b91505092959194509250565b6001600160a01b0384168152606060208201819052600090611e6490830185611a02565b8281036040840152611e768185611a02565b969550505050505056fea2646970667358221220f314b48c5500cb3a24e9d0f0455f15594497dbf9e5ad70171dc9e71800b73f8564736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` -var ChildERC721PredicateACLArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC721PredicateAccessList","sourceName":"contracts/blade/ChildERC721PredicateAccessList.sol","abi":[{"inputs":[{"internalType":"string","name":"only","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"AllowListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"BlockListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"ERC721DepositBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"ERC721WithdrawBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC721Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"},{"internalType":"bool","name":"newUseAllowList","type":"bool"},{"internalType":"bool","name":"newUseBlockList","type":"bool"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC721Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootERC721Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rootTokenToChildToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseAllowList","type":"bool"}],"name":"setAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseBlockList","type":"bool"}],"name":"setBlockList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC721","name":"childToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC721","name":"childToken","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"withdrawBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC721","name":"childToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b506126ea806100206000396000f3fe608060405234801561001057600080fd5b506004361061019a5760003560e01c8063b0750611116100e4578063d41f177111610092578063d41f177114610354578063d7c9e3ec1461037b578063e30c3978146103a2578063eeb49945146103b3578063f2fde38b146103c6578063f3fef3a3146103d9578063f6451255146103ec578063f691325c1461041357600080fd5b8063b0750611146102b1578063b1768065146102ba578063c1225a20146102e1578063c3b35a7e146102f4578063c5ac2b1c14610307578063c5e4683a1461032e578063cf756fdf1461034157600080fd5b80635ea5df791161014c5780635ea5df79146102205780636f33e69514610237578063715018a61461024a57806379ba5097146102525780637efab4f51461025a5780638da5cb5b146102845780639079dfb314610295578063947287cf146102a857600080fd5b806307b3e2521461019f578063116191b6146101ca578063284017f5146101dd5780633b878c22146101e657806351351d53146101ef57806355b01e4d146101fd57806359a85e081461020b575b600080fd5b6101ad6004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546101ad906001600160a01b031681565b6101ad61202081565b6101ad61101081565b6101ad6002600160a01b0381565b6101ad6004600160991b0181565b61021e610219366004611c6c565b610426565b005b61022961138881565b6040519081526020016101c1565b61021e610245366004611d44565b610569565b61021e610585565b61021e610599565b6101ad610268366004611dc6565b610100602052600090815260409020546001600160a01b031681565b6035546001600160a01b03166101ad565b60ff546101ad906001600160a01b031681565b61022961520881565b61022960015481565b6102297f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61021e6102ef366004611dea565b610613565b61021e610302366004611e07565b610662565b6102297faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61021e61033c366004611dea565b61067a565b61021e61034f366004611e48565b6106c1565b6102297f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6102297f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101ad565b61021e6103c1366004611e99565b610792565b61021e6103d4366004611dc6565b6109a9565b61021e6103e7366004611f21565b610a1a565b6102297f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b60fe546101ad906001600160a01b031681565b336002600160a01b031461046f5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064015b60405180910390fd5b600254610100900460ff161580801561048f5750600254600160ff909116105b806104a95750303b1580156104a9575060025460ff166001145b6104c55760405162461bcd60e51b815260040161046690611f4d565b6002805460ff1916600117905580156104e8576002805461ff0019166101001790555b6104f488888888610a31565b60cb805461ffff191685151561ff001916176101008515150217905561051982610ae8565b801561055f576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b610571610b01565b61057e8585858585610b09565b5050505050565b61058d610e74565b6105976000610ae8565b565b60675433906001600160a01b031681146106075760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610466565b61061081610ae8565b50565b61061b610e74565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b61066a610b01565b610675838383610ece565b505050565b610682610e74565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b600254610100900460ff16158080156106e15750600254600160ff909116105b806106fb5750303b1580156106fb575060025460ff166001145b6107175760405162461bcd60e51b815260040161046690611f4d565b6002805460ff19166001179055801561073a576002805461ff0019166101001790555b61074685858585610a31565b801561057e576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6000546001600160a01b031633146107f75760405162461bcd60e51b815260206004820152602260248201527f4368696c644552433732315072656469636174653a204f4e4c595f4741544557604482015261415960f01b6064820152608401610466565b60fe546001600160a01b038481169116146108665760405162461bcd60e51b815260206004820152602960248201527f4368696c644552433732315072656469636174653a204f4e4c595f524f4f545f60448201526850524544494341544560b81b6064820152608401610466565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821610895602060008486611f9b565b61089e91611fc5565b036108bd576108b86108b38260208186611f9b565b6111de565b6109a3565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d186108ec602060008486611f9b565b6108f591611fc5565b03610904576108b88282611455565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad610933602060008486611f9b565b61093c91611fc5565b0361094b576108b882826116bc565b60405162461bcd60e51b815260206004820152602760248201527f4368696c644552433732315072656469636174653a20494e56414c49445f5349604482015266474e415455524560c81b6064820152608401610466565b50505050565b6109b1610e74565b606780546001600160a01b0383166001600160a01b031990911681179091556109e26035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610a22610b01565b610a2d823383610ece565b5050565b610a3b848261182c565b6001600160a01b03831615801590610a5b57506001600160a01b03821615155b610ab85760405162461bcd60e51b815260206004820152602860248201527f4368696c644552433732315072656469636174653a204241445f494e495449416044820152672624ad20aa24a7a760c11b6064820152608401610466565b5060fe80546001600160a01b039384166001600160a01b03199182161790915560ff805492909316911617905550565b606780546001600160a01b0319169055610610816118b5565b610597611907565b84610b1381611b1d565b610b2f5760405162461bcd60e51b815260040161046690611fe3565b6000866001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b939190612025565b6001600160a01b0381811660009081526101006020526040902054919250888116911614610bd35760405162461bcd60e51b815260040161046690612042565b6001600160a01b038116610be957610be9612086565b306001600160a01b0316876001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c559190612025565b6001600160a01b031614610c6b57610c6b612086565b848314610cc65760405162461bcd60e51b8152602060048201526024808201527f4368696c644552433732315072656469636174653a20494e56414c49445f4c4560448201526309c8ea8960e31b6064820152608401610466565b60405163b2dc5dc360e01b81526001600160a01b0388169063b2dc5dc390610cf6903390889088906004016120ce565b6020604051808303816000875af1158015610d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3991906120fc565b610d555760405162461bcd60e51b815260040161046690612119565b60005460fe546040516001600160a01b039283169263417d5acb921690610dac907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908d908d908d908d906020016121a3565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610dde9392600401612247565b600060405180830381600087803b158015610df857600080fd5b505af1158015610e0c573d6000803e3d6000fd5b50505050336001600160a01b0316876001600160a01b0316826001600160a01b03167f1b7b9713fdef5dfadf92f6d6e998eb1fc4763cee62a194a095d76349f7dce20c89898989604051610e63949392919061227b565b60405180910390a450505050505050565b6035546001600160a01b031633146105975760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610466565b82610ed881611b1d565b610ef45760405162461bcd60e51b815260040161046690611fe3565b6000846001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f589190612025565b6001600160a01b0381811660009081526101006020526040902054919250868116911614610f985760405162461bcd60e51b815260040161046690612042565b6001600160a01b038116610fae57610fae612086565b306001600160a01b0316856001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101a9190612025565b6001600160a01b03161461103057611030612086565b604051632770a7eb60e21b81526001600160a01b03861690639dc29fac9061105e90339087906004016122ad565b6020604051808303816000875af115801561107d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a191906120fc565b6110bd5760405162461bcd60e51b815260040161046690612119565b60005460fe54604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152888116608083015260a08083018990528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb9461114e9492169290919060c401612247565b600060405180830381600087803b15801561116857600080fd5b505af115801561117c573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b0316826001600160a01b03167f8194f168e6e9e449d05a46936e071a710c0f22634eaadeb5b85a86540123931933876040516111cf9291906122ad565b60405180910390a45050505050565b60008080806111ef85870187611e48565b6001600160a01b0380851660009081526101006020526040902054949850929650909450925016806112335760405162461bcd60e51b815260040161046690612042565b61123c81611b1d565b61124857611248612086565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ac9190612025565b9050856001600160a01b0316816001600160a01b0316146112cf576112cf612086565b6001600160a01b0381166112e5576112e5612086565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190612025565b6001600160a01b03161461136757611367612086565b6040516340c10f1960e01b81526001600160a01b038316906340c10f199061139590879087906004016122ad565b6020604051808303816000875af11580156113b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d891906120fc565b6113f45760405162461bcd60e51b8152600401610466906122c6565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f40e242710be14b7d61d3b93e9d56b40df89cc4dbad8bb88da38c8e0c23809ba788876040516114439291906122ad565b60405180910390a45050505050505050565b6000808080611466858701876123db565b6001600160a01b03808516600090815261010060205260409020549499509297509095509350169050806114ac5760405162461bcd60e51b815260040161046690612042565b6114b581611b1d565b6114c1576114c1612086565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611501573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115259190612025565b9050856001600160a01b0316816001600160a01b03161461154857611548612086565b6001600160a01b03811661155e5761155e612086565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ca9190612025565b6001600160a01b0316146115e0576115e0612086565b604051637c88e3d960e01b81526001600160a01b03831690637c88e3d99061160e90879087906004016124cd565b6020604051808303816000875af115801561162d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165191906120fc565b61166d5760405162461bcd60e51b8152600401610466906122c6565b846001600160a01b0316826001600160a01b0316876001600160a01b03167f02c575a943105cda454293b7ac636c87c94ff1bfcfac968aa5423e6b9b312ee987876040516114439291906124cd565b600080806116cc848601866125c0565b91955093509150506001600160a01b0383166116ea576116ea612086565b6001600160a01b0383811660009081526101006020526040902054161561171357611713612086565b60ff546040516bffffffffffffffffffffffff19606086901b166020820152600091611763916001600160a01b039091169060340160405160208183030381529060405280519060200120611bb2565b6001600160a01b03858116600090815261010060205260409081902080546001600160a01b031916928416928317905551639065714760e01b8152919250906390657147906117ba9087908790879060040161263f565b600060405180830381600087803b1580156117d457600080fd5b505af11580156117e8573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a3505050505050565b6001600160a01b0382161580159061184357508015155b61188f5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610466565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff1615611a1257604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b019161138891611969919061267f565b6000604051808303818686fa925050503d80600081146119a5576040519150601f19603f3d011682016040523d82523d6000602084013e6119aa565b606091505b50915091508180156119cf57506000818060200190518101906119cd919061269b565b115b611a0f5760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b6044820152606401610466565b50505b60cb54610100900460ff161561059757604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b019161138891611a79919061267f565b6000604051808303818686fa925050503d8060008114611ab5576040519150601f19603f3d011682016040523d82523d6000602084013e611aba565b606091505b5091509150818015611ae0575080806020019051810190611adb919061269b565b600114155b610a2d5760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b6044820152606401610466565b6000816001600160a01b03163b600003611b3957506000919050565b6040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611ba0575060408051601f3d908101601f19168201909252611b9d918101906120fc565b60015b611bac57506000919050565b92915050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116611bac5760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610466565b6001600160a01b038116811461061057600080fd5b801515811461061057600080fd5b600080600080600080600060e0888a031215611c8757600080fd5b8735611c9281611c49565b96506020880135611ca281611c49565b95506040880135611cb281611c49565b9450606088013593506080880135611cc981611c5e565b925060a0880135611cd981611c5e565b915060c0880135611ce981611c49565b8091505092959891949750929550565b60008083601f840112611d0b57600080fd5b5081356001600160401b03811115611d2257600080fd5b6020830191508360208260051b8501011115611d3d57600080fd5b9250929050565b600080600080600060608688031215611d5c57600080fd5b8535611d6781611c49565b945060208601356001600160401b0380821115611d8357600080fd5b611d8f89838a01611cf9565b90965094506040880135915080821115611da857600080fd5b50611db588828901611cf9565b969995985093965092949392505050565b600060208284031215611dd857600080fd5b8135611de381611c49565b9392505050565b600060208284031215611dfc57600080fd5b8135611de381611c5e565b600080600060608486031215611e1c57600080fd5b8335611e2781611c49565b92506020840135611e3781611c49565b929592945050506040919091013590565b60008060008060808587031215611e5e57600080fd5b8435611e6981611c49565b93506020850135611e7981611c49565b92506040850135611e8981611c49565b9396929550929360600135925050565b60008060008060608587031215611eaf57600080fd5b843593506020850135611ec181611c49565b925060408501356001600160401b0380821115611edd57600080fd5b818701915087601f830112611ef157600080fd5b813581811115611f0057600080fd5b886020828501011115611f1257600080fd5b95989497505060200194505050565b60008060408385031215611f3457600080fd5b8235611f3f81611c49565b946020939093013593505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008085851115611fab57600080fd5b83861115611fb857600080fd5b5050820193919092039150565b80356020831015611bac57600019602084900360031b1b1692915050565b60208082526022908201527f4368696c644552433732315072656469636174653a204e4f545f434f4e54524160408201526110d560f21b606082015260800190565b60006020828403121561203757600080fd5b8151611de381611c49565b60208082526024908201527f4368696c644552433732315072656469636174653a20554e4d41505045445f5460408201526327a5a2a760e11b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b038311156120b557600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03841681526040602082018190526000906120f3908301848661209c565b95945050505050565b60006020828403121561210e57600080fd5b8151611de381611c5e565b60208082526021908201527f4368696c644552433732315072656469636174653a204255524e5f4641494c456040820152601160fa1b606082015260800190565b8183526000602080850194508260005b8581101561219857813561217d81611c49565b6001600160a01b03168752958201959082019060010161216a565b509495945050505050565b8781526001600160a01b0387811660208301528616604082015260a0606082018190526000906121d6908301868861215a565b82810360808401526121e981858761209c565b9a9950505050505050505050565b60005b838110156122125781810151838201526020016121fa565b50506000910152565b600081518084526122338160208601602086016121f7565b601f01601f19169290920160200192915050565b6001600160a01b038416815260606020820181905260009061226b9083018561221b565b9050826040830152949350505050565b60408152600061228f60408301868861215a565b82810360208401526122a281858761209c565b979650505050505050565b6001600160a01b03929092168252602082015260400190565b60208082526021908201527f4368696c644552433732315072656469636174653a204d494e545f4641494c456040820152601160fa1b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561234557612345612307565b604052919050565b60006001600160401b0382111561236657612366612307565b5060051b60200190565b600082601f83011261238157600080fd5b813560206123966123918361234d565b61231d565b82815260059290921b840181019181810190868411156123b557600080fd5b8286015b848110156123d057803583529183019183016123b9565b509695505050505050565b600080600080600060a086880312156123f357600080fd5b8535945060208087013561240681611c49565b9450604087013561241681611c49565b935060608701356001600160401b038082111561243257600080fd5b818901915089601f83011261244657600080fd5b81356124546123918261234d565b81815260059190911b8301840190848101908c83111561247357600080fd5b938501935b8285101561249a57843561248b81611c49565b82529385019390850190612478565b9650505060808901359250808311156124b257600080fd5b50506124c088828901612370565b9150509295509295909350565b604080825283519082018190526000906020906060840190828701845b8281101561250f5781516001600160a01b0316845292840192908401906001016124ea565b5050508381038285015284518082528583019183019060005b8181101561254457835183529284019291840191600101612528565b5090979650505050505050565b600082601f83011261256257600080fd5b81356001600160401b0381111561257b5761257b612307565b61258e601f8201601f191660200161231d565b8181528460208386010111156125a357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156125d657600080fd5b8435935060208501356125e881611c49565b925060408501356001600160401b038082111561260457600080fd5b61261088838901612551565b9350606087013591508082111561262657600080fd5b5061263387828801612551565b91505092959194509250565b6001600160a01b03841681526060602082018190526000906126639083018561221b565b8281036040840152612675818561221b565b9695505050505050565b600082516126918184602087016121f7565b9190910192915050565b6000602082840312156126ad57600080fd5b505191905056fea2646970667358221220b48b8fdb197bb1fd73aeb724d66ad8f9aeab350a5fed5e90081463d1c8e719ba64736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b506004361061019a5760003560e01c8063b0750611116100e4578063d41f177111610092578063d41f177114610354578063d7c9e3ec1461037b578063e30c3978146103a2578063eeb49945146103b3578063f2fde38b146103c6578063f3fef3a3146103d9578063f6451255146103ec578063f691325c1461041357600080fd5b8063b0750611146102b1578063b1768065146102ba578063c1225a20146102e1578063c3b35a7e146102f4578063c5ac2b1c14610307578063c5e4683a1461032e578063cf756fdf1461034157600080fd5b80635ea5df791161014c5780635ea5df79146102205780636f33e69514610237578063715018a61461024a57806379ba5097146102525780637efab4f51461025a5780638da5cb5b146102845780639079dfb314610295578063947287cf146102a857600080fd5b806307b3e2521461019f578063116191b6146101ca578063284017f5146101dd5780633b878c22146101e657806351351d53146101ef57806355b01e4d146101fd57806359a85e081461020b575b600080fd5b6101ad6004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546101ad906001600160a01b031681565b6101ad61202081565b6101ad61101081565b6101ad6002600160a01b0381565b6101ad6004600160991b0181565b61021e610219366004611c6c565b610426565b005b61022961138881565b6040519081526020016101c1565b61021e610245366004611d44565b610569565b61021e610585565b61021e610599565b6101ad610268366004611dc6565b610100602052600090815260409020546001600160a01b031681565b6035546001600160a01b03166101ad565b60ff546101ad906001600160a01b031681565b61022961520881565b61022960015481565b6102297f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61021e6102ef366004611dea565b610613565b61021e610302366004611e07565b610662565b6102297faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61021e61033c366004611dea565b61067a565b61021e61034f366004611e48565b6106c1565b6102297f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6102297f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101ad565b61021e6103c1366004611e99565b610792565b61021e6103d4366004611dc6565b6109a9565b61021e6103e7366004611f21565b610a1a565b6102297f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b60fe546101ad906001600160a01b031681565b336002600160a01b031461046f5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064015b60405180910390fd5b600254610100900460ff161580801561048f5750600254600160ff909116105b806104a95750303b1580156104a9575060025460ff166001145b6104c55760405162461bcd60e51b815260040161046690611f4d565b6002805460ff1916600117905580156104e8576002805461ff0019166101001790555b6104f488888888610a31565b60cb805461ffff191685151561ff001916176101008515150217905561051982610ae8565b801561055f576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b610571610b01565b61057e8585858585610b09565b5050505050565b61058d610e74565b6105976000610ae8565b565b60675433906001600160a01b031681146106075760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610466565b61061081610ae8565b50565b61061b610e74565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b61066a610b01565b610675838383610ece565b505050565b610682610e74565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b600254610100900460ff16158080156106e15750600254600160ff909116105b806106fb5750303b1580156106fb575060025460ff166001145b6107175760405162461bcd60e51b815260040161046690611f4d565b6002805460ff19166001179055801561073a576002805461ff0019166101001790555b61074685858585610a31565b801561057e576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6000546001600160a01b031633146107f75760405162461bcd60e51b815260206004820152602260248201527f4368696c644552433732315072656469636174653a204f4e4c595f4741544557604482015261415960f01b6064820152608401610466565b60fe546001600160a01b038481169116146108665760405162461bcd60e51b815260206004820152602960248201527f4368696c644552433732315072656469636174653a204f4e4c595f524f4f545f60448201526850524544494341544560b81b6064820152608401610466565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821610895602060008486611f9b565b61089e91611fc5565b036108bd576108b86108b38260208186611f9b565b6111de565b6109a3565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d186108ec602060008486611f9b565b6108f591611fc5565b03610904576108b88282611455565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad610933602060008486611f9b565b61093c91611fc5565b0361094b576108b882826116bc565b60405162461bcd60e51b815260206004820152602760248201527f4368696c644552433732315072656469636174653a20494e56414c49445f5349604482015266474e415455524560c81b6064820152608401610466565b50505050565b6109b1610e74565b606780546001600160a01b0383166001600160a01b031990911681179091556109e26035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610a22610b01565b610a2d823383610ece565b5050565b610a3b848261182c565b6001600160a01b03831615801590610a5b57506001600160a01b03821615155b610ab85760405162461bcd60e51b815260206004820152602860248201527f4368696c644552433732315072656469636174653a204241445f494e495449416044820152672624ad20aa24a7a760c11b6064820152608401610466565b5060fe80546001600160a01b039384166001600160a01b03199182161790915560ff805492909316911617905550565b606780546001600160a01b0319169055610610816118b5565b610597611907565b84610b1381611b1d565b610b2f5760405162461bcd60e51b815260040161046690611fe3565b6000866001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b939190612025565b6001600160a01b0381811660009081526101006020526040902054919250888116911614610bd35760405162461bcd60e51b815260040161046690612042565b6001600160a01b038116610be957610be9612086565b306001600160a01b0316876001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c559190612025565b6001600160a01b031614610c6b57610c6b612086565b848314610cc65760405162461bcd60e51b8152602060048201526024808201527f4368696c644552433732315072656469636174653a20494e56414c49445f4c4560448201526309c8ea8960e31b6064820152608401610466565b60405163b2dc5dc360e01b81526001600160a01b0388169063b2dc5dc390610cf6903390889088906004016120ce565b6020604051808303816000875af1158015610d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3991906120fc565b610d555760405162461bcd60e51b815260040161046690612119565b60005460fe546040516001600160a01b039283169263417d5acb921690610dac907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908d908d908d908d906020016121a3565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610dde9392600401612247565b600060405180830381600087803b158015610df857600080fd5b505af1158015610e0c573d6000803e3d6000fd5b50505050336001600160a01b0316876001600160a01b0316826001600160a01b03167f1b7b9713fdef5dfadf92f6d6e998eb1fc4763cee62a194a095d76349f7dce20c89898989604051610e63949392919061227b565b60405180910390a450505050505050565b6035546001600160a01b031633146105975760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610466565b82610ed881611b1d565b610ef45760405162461bcd60e51b815260040161046690611fe3565b6000846001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f589190612025565b6001600160a01b0381811660009081526101006020526040902054919250868116911614610f985760405162461bcd60e51b815260040161046690612042565b6001600160a01b038116610fae57610fae612086565b306001600160a01b0316856001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101a9190612025565b6001600160a01b03161461103057611030612086565b604051632770a7eb60e21b81526001600160a01b03861690639dc29fac9061105e90339087906004016122ad565b6020604051808303816000875af115801561107d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a191906120fc565b6110bd5760405162461bcd60e51b815260040161046690612119565b60005460fe54604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152888116608083015260a08083018990528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb9461114e9492169290919060c401612247565b600060405180830381600087803b15801561116857600080fd5b505af115801561117c573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b0316826001600160a01b03167f8194f168e6e9e449d05a46936e071a710c0f22634eaadeb5b85a86540123931933876040516111cf9291906122ad565b60405180910390a45050505050565b60008080806111ef85870187611e48565b6001600160a01b0380851660009081526101006020526040902054949850929650909450925016806112335760405162461bcd60e51b815260040161046690612042565b61123c81611b1d565b61124857611248612086565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ac9190612025565b9050856001600160a01b0316816001600160a01b0316146112cf576112cf612086565b6001600160a01b0381166112e5576112e5612086565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190612025565b6001600160a01b03161461136757611367612086565b6040516340c10f1960e01b81526001600160a01b038316906340c10f199061139590879087906004016122ad565b6020604051808303816000875af11580156113b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d891906120fc565b6113f45760405162461bcd60e51b8152600401610466906122c6565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f40e242710be14b7d61d3b93e9d56b40df89cc4dbad8bb88da38c8e0c23809ba788876040516114439291906122ad565b60405180910390a45050505050505050565b6000808080611466858701876123db565b6001600160a01b03808516600090815261010060205260409020549499509297509095509350169050806114ac5760405162461bcd60e51b815260040161046690612042565b6114b581611b1d565b6114c1576114c1612086565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611501573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115259190612025565b9050856001600160a01b0316816001600160a01b03161461154857611548612086565b6001600160a01b03811661155e5761155e612086565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ca9190612025565b6001600160a01b0316146115e0576115e0612086565b604051637c88e3d960e01b81526001600160a01b03831690637c88e3d99061160e90879087906004016124cd565b6020604051808303816000875af115801561162d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165191906120fc565b61166d5760405162461bcd60e51b8152600401610466906122c6565b846001600160a01b0316826001600160a01b0316876001600160a01b03167f02c575a943105cda454293b7ac636c87c94ff1bfcfac968aa5423e6b9b312ee987876040516114439291906124cd565b600080806116cc848601866125c0565b91955093509150506001600160a01b0383166116ea576116ea612086565b6001600160a01b0383811660009081526101006020526040902054161561171357611713612086565b60ff546040516bffffffffffffffffffffffff19606086901b166020820152600091611763916001600160a01b039091169060340160405160208183030381529060405280519060200120611bb2565b6001600160a01b03858116600090815261010060205260409081902080546001600160a01b031916928416928317905551639065714760e01b8152919250906390657147906117ba9087908790879060040161263f565b600060405180830381600087803b1580156117d457600080fd5b505af11580156117e8573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a3505050505050565b6001600160a01b0382161580159061184357508015155b61188f5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610466565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff1615611a1257604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b019161138891611969919061267f565b6000604051808303818686fa925050503d80600081146119a5576040519150601f19603f3d011682016040523d82523d6000602084013e6119aa565b606091505b50915091508180156119cf57506000818060200190518101906119cd919061269b565b115b611a0f5760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b6044820152606401610466565b50505b60cb54610100900460ff161561059757604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b019161138891611a79919061267f565b6000604051808303818686fa925050503d8060008114611ab5576040519150601f19603f3d011682016040523d82523d6000602084013e611aba565b606091505b5091509150818015611ae0575080806020019051810190611adb919061269b565b600114155b610a2d5760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b6044820152606401610466565b6000816001600160a01b03163b600003611b3957506000919050565b6040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611ba0575060408051601f3d908101601f19168201909252611b9d918101906120fc565b60015b611bac57506000919050565b92915050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116611bac5760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610466565b6001600160a01b038116811461061057600080fd5b801515811461061057600080fd5b600080600080600080600060e0888a031215611c8757600080fd5b8735611c9281611c49565b96506020880135611ca281611c49565b95506040880135611cb281611c49565b9450606088013593506080880135611cc981611c5e565b925060a0880135611cd981611c5e565b915060c0880135611ce981611c49565b8091505092959891949750929550565b60008083601f840112611d0b57600080fd5b5081356001600160401b03811115611d2257600080fd5b6020830191508360208260051b8501011115611d3d57600080fd5b9250929050565b600080600080600060608688031215611d5c57600080fd5b8535611d6781611c49565b945060208601356001600160401b0380821115611d8357600080fd5b611d8f89838a01611cf9565b90965094506040880135915080821115611da857600080fd5b50611db588828901611cf9565b969995985093965092949392505050565b600060208284031215611dd857600080fd5b8135611de381611c49565b9392505050565b600060208284031215611dfc57600080fd5b8135611de381611c5e565b600080600060608486031215611e1c57600080fd5b8335611e2781611c49565b92506020840135611e3781611c49565b929592945050506040919091013590565b60008060008060808587031215611e5e57600080fd5b8435611e6981611c49565b93506020850135611e7981611c49565b92506040850135611e8981611c49565b9396929550929360600135925050565b60008060008060608587031215611eaf57600080fd5b843593506020850135611ec181611c49565b925060408501356001600160401b0380821115611edd57600080fd5b818701915087601f830112611ef157600080fd5b813581811115611f0057600080fd5b886020828501011115611f1257600080fd5b95989497505060200194505050565b60008060408385031215611f3457600080fd5b8235611f3f81611c49565b946020939093013593505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008085851115611fab57600080fd5b83861115611fb857600080fd5b5050820193919092039150565b80356020831015611bac57600019602084900360031b1b1692915050565b60208082526022908201527f4368696c644552433732315072656469636174653a204e4f545f434f4e54524160408201526110d560f21b606082015260800190565b60006020828403121561203757600080fd5b8151611de381611c49565b60208082526024908201527f4368696c644552433732315072656469636174653a20554e4d41505045445f5460408201526327a5a2a760e11b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b038311156120b557600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03841681526040602082018190526000906120f3908301848661209c565b95945050505050565b60006020828403121561210e57600080fd5b8151611de381611c5e565b60208082526021908201527f4368696c644552433732315072656469636174653a204255524e5f4641494c456040820152601160fa1b606082015260800190565b8183526000602080850194508260005b8581101561219857813561217d81611c49565b6001600160a01b03168752958201959082019060010161216a565b509495945050505050565b8781526001600160a01b0387811660208301528616604082015260a0606082018190526000906121d6908301868861215a565b82810360808401526121e981858761209c565b9a9950505050505050505050565b60005b838110156122125781810151838201526020016121fa565b50506000910152565b600081518084526122338160208601602086016121f7565b601f01601f19169290920160200192915050565b6001600160a01b038416815260606020820181905260009061226b9083018561221b565b9050826040830152949350505050565b60408152600061228f60408301868861215a565b82810360208401526122a281858761209c565b979650505050505050565b6001600160a01b03929092168252602082015260400190565b60208082526021908201527f4368696c644552433732315072656469636174653a204d494e545f4641494c456040820152601160fa1b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561234557612345612307565b604052919050565b60006001600160401b0382111561236657612366612307565b5060051b60200190565b600082601f83011261238157600080fd5b813560206123966123918361234d565b61231d565b82815260059290921b840181019181810190868411156123b557600080fd5b8286015b848110156123d057803583529183019183016123b9565b509695505050505050565b600080600080600060a086880312156123f357600080fd5b8535945060208087013561240681611c49565b9450604087013561241681611c49565b935060608701356001600160401b038082111561243257600080fd5b818901915089601f83011261244657600080fd5b81356124546123918261234d565b81815260059190911b8301840190848101908c83111561247357600080fd5b938501935b8285101561249a57843561248b81611c49565b82529385019390850190612478565b9650505060808901359250808311156124b257600080fd5b50506124c088828901612370565b9150509295509295909350565b604080825283519082018190526000906020906060840190828701845b8281101561250f5781516001600160a01b0316845292840192908401906001016124ea565b5050508381038285015284518082528583019183019060005b8181101561254457835183529284019291840191600101612528565b5090979650505050505050565b600082601f83011261256257600080fd5b81356001600160401b0381111561257b5761257b612307565b61258e601f8201601f191660200161231d565b8181528460208386010111156125a357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156125d657600080fd5b8435935060208501356125e881611c49565b925060408501356001600160401b038082111561260457600080fd5b61261088838901612551565b9350606087013591508082111561262657600080fd5b5061263387828801612551565b91505092959194509250565b6001600160a01b03841681526060602082018190526000906126639083018561221b565b8281036040840152612675818561221b565b9695505050505050565b600082516126918184602087016121f7565b9190910192915050565b6000602082840312156126ad57600080fd5b505191905056fea2646970667358221220b48b8fdb197bb1fd73aeb724d66ad8f9aeab350a5fed5e90081463d1c8e719ba64736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` +var ChildERC721PredicateArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC721Predicate","sourceName":"contracts/blade/ChildERC721Predicate.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"ERC721DepositBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"ERC721WithdrawBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC721Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootERC721Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sourceTokenToDestinationToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IChildERC721","name":"childToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC721","name":"childToken","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"withdrawBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC721","name":"childToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50611eb6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d55760003560e01c8063c5ac2b1c11610087578063c5ac2b1c146101ac578063cf756fdf146101d3578063d41f1771146101e6578063d7c9e3ec1461020d578063eeb4994514610234578063f3fef3a314610247578063f64512551461025a578063f691325c1461028157600080fd5b8063116191b6146100da57806340acd98d1461010a5780636f33e695146101335780639079dfb314610148578063b07506111461015b578063b176806514610172578063c3b35a7e14610199575b600080fd5b6000546100ed906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100ed61011836600461156a565b6004602052600090815260409020546001600160a01b031681565b6101466101413660046115d9565b61029a565b005b6003546100ed906001600160a01b031681565b61016460015481565b604051908152602001610101565b6101647f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6101466101a736600461165b565b6102ae565b6101647faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b6101466101e136600461169c565b6102be565b6101647f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6101647f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6101466102423660046116ed565b6103db565b610146610255366004611775565b6105f8565b6101647f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6002546100ed906201000090046001600160a01b031681565b6102a78585858585610607565b5050505050565b6102b9838383610977565b505050565b600254610100900460ff16158080156102de5750600254600160ff909116105b806102f85750303b1580156102f8575060025460ff166001145b6103605760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff191660011790558015610383576002805461ff0019166101001790555b61038f85858585610c8e565b80156102a7576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6000546001600160a01b031633146104405760405162461bcd60e51b815260206004820152602260248201527f4368696c644552433732315072656469636174653a204f4e4c595f4741544557604482015261415960f01b6064820152608401610357565b6002546001600160a01b038481166201000090920416146104b55760405162461bcd60e51b815260206004820152602960248201527f4368696c644552433732315072656469636174653a204f4e4c595f524f4f545f60448201526850524544494341544560b81b6064820152608401610357565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216104e46020600084866117a1565b6104ed916117cb565b0361050c5761050761050282602081866117a1565b610d51565b6105f2565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1861053b6020600084866117a1565b610544916117cb565b03610553576105078282610fc7565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad6105826020600084866117a1565b61058b916117cb565b0361059a57610507828261122d565b60405162461bcd60e51b815260206004820152602760248201527f4368696c644552433732315072656469636174653a20494e56414c49445f5349604482015266474e415455524560c81b6064820152608401610357565b50505050565b610603823383610977565b5050565b846106118161139d565b61062d5760405162461bcd60e51b8152600401610357906117e9565b6000866001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610691919061182b565b6001600160a01b038181166000908152600460205260409020549192508881169116146106d05760405162461bcd60e51b815260040161035790611848565b6001600160a01b0381166106e6576106e661188c565b306001600160a01b0316876001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610752919061182b565b6001600160a01b0316146107685761076861188c565b8483146107c35760405162461bcd60e51b8152602060048201526024808201527f4368696c644552433732315072656469636174653a20494e56414c49445f4c4560448201526309c8ea8960e31b6064820152608401610357565b60405163b2dc5dc360e01b81526001600160a01b0388169063b2dc5dc3906107f3903390889088906004016118d4565b6020604051808303816000875af1158015610812573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108369190611902565b6108525760405162461bcd60e51b815260040161035790611924565b6000546002546040516001600160a01b039283169263417d5acb9262010000900416906108af907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908d908d908d908d906020016119ae565b60408051601f19818403018152908290526001546001600160e01b031960e086901b1683526108e19392600401611a48565b600060405180830381600087803b1580156108fb57600080fd5b505af115801561090f573d6000803e3d6000fd5b50505050336001600160a01b0316876001600160a01b0316826001600160a01b03167f1b7b9713fdef5dfadf92f6d6e998eb1fc4763cee62a194a095d76349f7dce20c898989896040516109669493929190611a7c565b60405180910390a450505050505050565b826109818161139d565b61099d5760405162461bcd60e51b8152600401610357906117e9565b6000846001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a01919061182b565b6001600160a01b03818116600090815260046020526040902054919250868116911614610a405760405162461bcd60e51b815260040161035790611848565b6001600160a01b038116610a5657610a5661188c565b306001600160a01b0316856001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac2919061182b565b6001600160a01b031614610ad857610ad861188c565b604051632770a7eb60e21b81526001600160a01b03861690639dc29fac90610b069033908790600401611aae565b6020604051808303816000875af1158015610b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b499190611902565b610b655760405162461bcd60e51b815260040161035790611924565b600054600254604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152888116608083015260a08083018990528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb94610bfe94620100009091049092169290919060c401611a48565b600060405180830381600087803b158015610c1857600080fd5b505af1158015610c2c573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b0316826001600160a01b03167f8194f168e6e9e449d05a46936e071a710c0f22634eaadeb5b85a8654012393193387604051610c7f929190611aae565b60405180910390a45050505050565b610c988482611432565b6001600160a01b03831615801590610cb857506001600160a01b03821615155b610d155760405162461bcd60e51b815260206004820152602860248201527f4368696c644552433732315072656469636174653a204241445f494e495449416044820152672624ad20aa24a7a760c11b6064820152608401610357565b506002805462010000600160b01b031916620100006001600160a01b0394851602179055600380546001600160a01b0319169190921617905550565b6000808080610d628587018761169c565b6001600160a01b0380851660009081526004602052604090205494985092965090945092501680610da55760405162461bcd60e51b815260040161035790611848565b610dae8161139d565b610dba57610dba61188c565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e919061182b565b9050856001600160a01b0316816001600160a01b031614610e4157610e4161188c565b6001600160a01b038116610e5757610e5761188c565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec3919061182b565b6001600160a01b031614610ed957610ed961188c565b6040516340c10f1960e01b81526001600160a01b038316906340c10f1990610f079087908790600401611aae565b6020604051808303816000875af1158015610f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4a9190611902565b610f665760405162461bcd60e51b815260040161035790611ac7565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f40e242710be14b7d61d3b93e9d56b40df89cc4dbad8bb88da38c8e0c23809ba78887604051610fb5929190611aae565b60405180910390a45050505050505050565b6000808080610fd885870187611bdc565b6001600160a01b0380851660009081526004602052604090205494995092975090955093501690508061101d5760405162461bcd60e51b815260040161035790611848565b6110268161139d565b6110325761103261188c565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611096919061182b565b9050856001600160a01b0316816001600160a01b0316146110b9576110b961188c565b6001600160a01b0381166110cf576110cf61188c565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b919061182b565b6001600160a01b0316146111515761115161188c565b604051637c88e3d960e01b81526001600160a01b03831690637c88e3d99061117f9087908790600401611cce565b6020604051808303816000875af115801561119e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c29190611902565b6111de5760405162461bcd60e51b815260040161035790611ac7565b846001600160a01b0316826001600160a01b0316876001600160a01b03167f02c575a943105cda454293b7ac636c87c94ff1bfcfac968aa5423e6b9b312ee98787604051610fb5929190611cce565b6000808061123d84860186611dc1565b91955093509150506001600160a01b03831661125b5761125b61188c565b6001600160a01b0383811660009081526004602052604090205416156112835761128361188c565b6003546040516bffffffffffffffffffffffff19606086901b1660208201526000916112d3916001600160a01b0390911690603401604051602081830303815290604052805190602001206114bb565b6001600160a01b0385811660009081526004602081905260409182902080546001600160a01b03191693851693841790559051639065714760e01b8152929350909163906571479161132b9188918891889101611e40565b600060405180830381600087803b15801561134557600080fd5b505af1158015611359573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a3505050505050565b6000816001600160a01b03163b6000036113b957506000919050565b6040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611420575060408051601f3d908101601f1916820190925261141d91810190611902565b60015b61142c57506000919050565b92915050565b6001600160a01b0382161580159061144957508015155b6114955760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610357565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811661142c5760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610357565b6001600160a01b038116811461156757600080fd5b50565b60006020828403121561157c57600080fd5b813561158781611552565b9392505050565b60008083601f8401126115a057600080fd5b5081356001600160401b038111156115b757600080fd5b6020830191508360208260051b85010111156115d257600080fd5b9250929050565b6000806000806000606086880312156115f157600080fd5b85356115fc81611552565b945060208601356001600160401b038082111561161857600080fd5b61162489838a0161158e565b9096509450604088013591508082111561163d57600080fd5b5061164a8882890161158e565b969995985093965092949392505050565b60008060006060848603121561167057600080fd5b833561167b81611552565b9250602084013561168b81611552565b929592945050506040919091013590565b600080600080608085870312156116b257600080fd5b84356116bd81611552565b935060208501356116cd81611552565b925060408501356116dd81611552565b9396929550929360600135925050565b6000806000806060858703121561170357600080fd5b84359350602085013561171581611552565b925060408501356001600160401b038082111561173157600080fd5b818701915087601f83011261174557600080fd5b81358181111561175457600080fd5b88602082850101111561176657600080fd5b95989497505060200194505050565b6000806040838503121561178857600080fd5b823561179381611552565b946020939093013593505050565b600080858511156117b157600080fd5b838611156117be57600080fd5b5050820193919092039150565b8035602083101561142c57600019602084900360031b1b1692915050565b60208082526022908201527f4368696c644552433732315072656469636174653a204e4f545f434f4e54524160408201526110d560f21b606082015260800190565b60006020828403121561183d57600080fd5b815161158781611552565b60208082526024908201527f4368696c644552433732315072656469636174653a20554e4d41505045445f5460408201526327a5a2a760e11b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b038311156118bb57600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03841681526040602082018190526000906118f990830184866118a2565b95945050505050565b60006020828403121561191457600080fd5b8151801515811461158757600080fd5b60208082526021908201527f4368696c644552433732315072656469636174653a204255524e5f4641494c456040820152601160fa1b606082015260800190565b8183526000602080850194508260005b858110156119a357813561198881611552565b6001600160a01b031687529582019590820190600101611975565b509495945050505050565b8781526001600160a01b0387811660208301528616604082015260a0606082018190526000906119e19083018688611965565b82810360808401526119f48185876118a2565b9a9950505050505050505050565b6000815180845260005b81811015611a2857602081850181015186830182015201611a0c565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090611a6c90830185611a02565b9050826040830152949350505050565b604081526000611a90604083018688611965565b8281036020840152611aa38185876118a2565b979650505050505050565b6001600160a01b03929092168252602082015260400190565b60208082526021908201527f4368696c644552433732315072656469636174653a204d494e545f4641494c456040820152601160fa1b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b4657611b46611b08565b604052919050565b60006001600160401b03821115611b6757611b67611b08565b5060051b60200190565b600082601f830112611b8257600080fd5b81356020611b97611b9283611b4e565b611b1e565b82815260059290921b84018101918181019086841115611bb657600080fd5b8286015b84811015611bd15780358352918301918301611bba565b509695505050505050565b600080600080600060a08688031215611bf457600080fd5b85359450602080870135611c0781611552565b94506040870135611c1781611552565b935060608701356001600160401b0380821115611c3357600080fd5b818901915089601f830112611c4757600080fd5b8135611c55611b9282611b4e565b81815260059190911b8301840190848101908c831115611c7457600080fd5b938501935b82851015611c9b578435611c8c81611552565b82529385019390850190611c79565b965050506080890135925080831115611cb357600080fd5b5050611cc188828901611b71565b9150509295509295909350565b604080825283519082018190526000906020906060840190828701845b82811015611d105781516001600160a01b031684529284019290840190600101611ceb565b5050508381038285015284518082528583019183019060005b81811015611d4557835183529284019291840191600101611d29565b5090979650505050505050565b600082601f830112611d6357600080fd5b81356001600160401b03811115611d7c57611d7c611b08565b611d8f601f8201601f1916602001611b1e565b818152846020838601011115611da457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611dd757600080fd5b843593506020850135611de981611552565b925060408501356001600160401b0380821115611e0557600080fd5b611e1188838901611d52565b93506060870135915080821115611e2757600080fd5b50611e3487828801611d52565b91505092959194509250565b6001600160a01b0384168152606060208201819052600090611e6490830185611a02565b8281036040840152611e768185611a02565b969550505050505056fea2646970667358221220ea7f0780443ff888020e6f849aab1ba92bde432ee19d9736a09873b7ffce268864736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100d55760003560e01c8063c5ac2b1c11610087578063c5ac2b1c146101ac578063cf756fdf146101d3578063d41f1771146101e6578063d7c9e3ec1461020d578063eeb4994514610234578063f3fef3a314610247578063f64512551461025a578063f691325c1461028157600080fd5b8063116191b6146100da57806340acd98d1461010a5780636f33e695146101335780639079dfb314610148578063b07506111461015b578063b176806514610172578063c3b35a7e14610199575b600080fd5b6000546100ed906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100ed61011836600461156a565b6004602052600090815260409020546001600160a01b031681565b6101466101413660046115d9565b61029a565b005b6003546100ed906001600160a01b031681565b61016460015481565b604051908152602001610101565b6101647f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6101466101a736600461165b565b6102ae565b6101647faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b6101466101e136600461169c565b6102be565b6101647f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6101647f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6101466102423660046116ed565b6103db565b610146610255366004611775565b6105f8565b6101647f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6002546100ed906201000090046001600160a01b031681565b6102a78585858585610607565b5050505050565b6102b9838383610977565b505050565b600254610100900460ff16158080156102de5750600254600160ff909116105b806102f85750303b1580156102f8575060025460ff166001145b6103605760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff191660011790558015610383576002805461ff0019166101001790555b61038f85858585610c8e565b80156102a7576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6000546001600160a01b031633146104405760405162461bcd60e51b815260206004820152602260248201527f4368696c644552433732315072656469636174653a204f4e4c595f4741544557604482015261415960f01b6064820152608401610357565b6002546001600160a01b038481166201000090920416146104b55760405162461bcd60e51b815260206004820152602960248201527f4368696c644552433732315072656469636174653a204f4e4c595f524f4f545f60448201526850524544494341544560b81b6064820152608401610357565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216104e46020600084866117a1565b6104ed916117cb565b0361050c5761050761050282602081866117a1565b610d51565b6105f2565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1861053b6020600084866117a1565b610544916117cb565b03610553576105078282610fc7565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad6105826020600084866117a1565b61058b916117cb565b0361059a57610507828261122d565b60405162461bcd60e51b815260206004820152602760248201527f4368696c644552433732315072656469636174653a20494e56414c49445f5349604482015266474e415455524560c81b6064820152608401610357565b50505050565b610603823383610977565b5050565b846106118161139d565b61062d5760405162461bcd60e51b8152600401610357906117e9565b6000866001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa15801561066d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610691919061182b565b6001600160a01b038181166000908152600460205260409020549192508881169116146106d05760405162461bcd60e51b815260040161035790611848565b6001600160a01b0381166106e6576106e661188c565b306001600160a01b0316876001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610752919061182b565b6001600160a01b0316146107685761076861188c565b8483146107c35760405162461bcd60e51b8152602060048201526024808201527f4368696c644552433732315072656469636174653a20494e56414c49445f4c4560448201526309c8ea8960e31b6064820152608401610357565b60405163b2dc5dc360e01b81526001600160a01b0388169063b2dc5dc3906107f3903390889088906004016118d4565b6020604051808303816000875af1158015610812573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108369190611902565b6108525760405162461bcd60e51b815260040161035790611924565b6000546002546040516001600160a01b039283169263417d5acb9262010000900416906108af907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908d908d908d908d906020016119ae565b60408051601f19818403018152908290526001546001600160e01b031960e086901b1683526108e19392600401611a48565b600060405180830381600087803b1580156108fb57600080fd5b505af115801561090f573d6000803e3d6000fd5b50505050336001600160a01b0316876001600160a01b0316826001600160a01b03167f1b7b9713fdef5dfadf92f6d6e998eb1fc4763cee62a194a095d76349f7dce20c898989896040516109669493929190611a7c565b60405180910390a450505050505050565b826109818161139d565b61099d5760405162461bcd60e51b8152600401610357906117e9565b6000846001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a01919061182b565b6001600160a01b03818116600090815260046020526040902054919250868116911614610a405760405162461bcd60e51b815260040161035790611848565b6001600160a01b038116610a5657610a5661188c565b306001600160a01b0316856001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac2919061182b565b6001600160a01b031614610ad857610ad861188c565b604051632770a7eb60e21b81526001600160a01b03861690639dc29fac90610b069033908790600401611aae565b6020604051808303816000875af1158015610b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b499190611902565b610b655760405162461bcd60e51b815260040161035790611924565b600054600254604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152888116608083015260a08083018990528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb94610bfe94620100009091049092169290919060c401611a48565b600060405180830381600087803b158015610c1857600080fd5b505af1158015610c2c573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b0316826001600160a01b03167f8194f168e6e9e449d05a46936e071a710c0f22634eaadeb5b85a8654012393193387604051610c7f929190611aae565b60405180910390a45050505050565b610c988482611432565b6001600160a01b03831615801590610cb857506001600160a01b03821615155b610d155760405162461bcd60e51b815260206004820152602860248201527f4368696c644552433732315072656469636174653a204241445f494e495449416044820152672624ad20aa24a7a760c11b6064820152608401610357565b506002805462010000600160b01b031916620100006001600160a01b0394851602179055600380546001600160a01b0319169190921617905550565b6000808080610d628587018761169c565b6001600160a01b0380851660009081526004602052604090205494985092965090945092501680610da55760405162461bcd60e51b815260040161035790611848565b610dae8161139d565b610dba57610dba61188c565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e919061182b565b9050856001600160a01b0316816001600160a01b031614610e4157610e4161188c565b6001600160a01b038116610e5757610e5761188c565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec3919061182b565b6001600160a01b031614610ed957610ed961188c565b6040516340c10f1960e01b81526001600160a01b038316906340c10f1990610f079087908790600401611aae565b6020604051808303816000875af1158015610f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4a9190611902565b610f665760405162461bcd60e51b815260040161035790611ac7565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f40e242710be14b7d61d3b93e9d56b40df89cc4dbad8bb88da38c8e0c23809ba78887604051610fb5929190611aae565b60405180910390a45050505050505050565b6000808080610fd885870187611bdc565b6001600160a01b0380851660009081526004602052604090205494995092975090955093501690508061101d5760405162461bcd60e51b815260040161035790611848565b6110268161139d565b6110325761103261188c565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611096919061182b565b9050856001600160a01b0316816001600160a01b0316146110b9576110b961188c565b6001600160a01b0381166110cf576110cf61188c565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b919061182b565b6001600160a01b0316146111515761115161188c565b604051637c88e3d960e01b81526001600160a01b03831690637c88e3d99061117f9087908790600401611cce565b6020604051808303816000875af115801561119e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c29190611902565b6111de5760405162461bcd60e51b815260040161035790611ac7565b846001600160a01b0316826001600160a01b0316876001600160a01b03167f02c575a943105cda454293b7ac636c87c94ff1bfcfac968aa5423e6b9b312ee98787604051610fb5929190611cce565b6000808061123d84860186611dc1565b91955093509150506001600160a01b03831661125b5761125b61188c565b6001600160a01b0383811660009081526004602052604090205416156112835761128361188c565b6003546040516bffffffffffffffffffffffff19606086901b1660208201526000916112d3916001600160a01b0390911690603401604051602081830303815290604052805190602001206114bb565b6001600160a01b0385811660009081526004602081905260409182902080546001600160a01b03191693851693841790559051639065714760e01b8152929350909163906571479161132b9188918891889101611e40565b600060405180830381600087803b15801561134557600080fd5b505af1158015611359573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a3505050505050565b6000816001600160a01b03163b6000036113b957506000919050565b6040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611420575060408051601f3d908101601f1916820190925261141d91810190611902565b60015b61142c57506000919050565b92915050565b6001600160a01b0382161580159061144957508015155b6114955760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610357565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811661142c5760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610357565b6001600160a01b038116811461156757600080fd5b50565b60006020828403121561157c57600080fd5b813561158781611552565b9392505050565b60008083601f8401126115a057600080fd5b5081356001600160401b038111156115b757600080fd5b6020830191508360208260051b85010111156115d257600080fd5b9250929050565b6000806000806000606086880312156115f157600080fd5b85356115fc81611552565b945060208601356001600160401b038082111561161857600080fd5b61162489838a0161158e565b9096509450604088013591508082111561163d57600080fd5b5061164a8882890161158e565b969995985093965092949392505050565b60008060006060848603121561167057600080fd5b833561167b81611552565b9250602084013561168b81611552565b929592945050506040919091013590565b600080600080608085870312156116b257600080fd5b84356116bd81611552565b935060208501356116cd81611552565b925060408501356116dd81611552565b9396929550929360600135925050565b6000806000806060858703121561170357600080fd5b84359350602085013561171581611552565b925060408501356001600160401b038082111561173157600080fd5b818701915087601f83011261174557600080fd5b81358181111561175457600080fd5b88602082850101111561176657600080fd5b95989497505060200194505050565b6000806040838503121561178857600080fd5b823561179381611552565b946020939093013593505050565b600080858511156117b157600080fd5b838611156117be57600080fd5b5050820193919092039150565b8035602083101561142c57600019602084900360031b1b1692915050565b60208082526022908201527f4368696c644552433732315072656469636174653a204e4f545f434f4e54524160408201526110d560f21b606082015260800190565b60006020828403121561183d57600080fd5b815161158781611552565b60208082526024908201527f4368696c644552433732315072656469636174653a20554e4d41505045445f5460408201526327a5a2a760e11b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b038311156118bb57600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03841681526040602082018190526000906118f990830184866118a2565b95945050505050565b60006020828403121561191457600080fd5b8151801515811461158757600080fd5b60208082526021908201527f4368696c644552433732315072656469636174653a204255524e5f4641494c456040820152601160fa1b606082015260800190565b8183526000602080850194508260005b858110156119a357813561198881611552565b6001600160a01b031687529582019590820190600101611975565b509495945050505050565b8781526001600160a01b0387811660208301528616604082015260a0606082018190526000906119e19083018688611965565b82810360808401526119f48185876118a2565b9a9950505050505050505050565b6000815180845260005b81811015611a2857602081850181015186830182015201611a0c565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090611a6c90830185611a02565b9050826040830152949350505050565b604081526000611a90604083018688611965565b8281036020840152611aa38185876118a2565b979650505050505050565b6001600160a01b03929092168252602082015260400190565b60208082526021908201527f4368696c644552433732315072656469636174653a204d494e545f4641494c456040820152601160fa1b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b4657611b46611b08565b604052919050565b60006001600160401b03821115611b6757611b67611b08565b5060051b60200190565b600082601f830112611b8257600080fd5b81356020611b97611b9283611b4e565b611b1e565b82815260059290921b84018101918181019086841115611bb657600080fd5b8286015b84811015611bd15780358352918301918301611bba565b509695505050505050565b600080600080600060a08688031215611bf457600080fd5b85359450602080870135611c0781611552565b94506040870135611c1781611552565b935060608701356001600160401b0380821115611c3357600080fd5b818901915089601f830112611c4757600080fd5b8135611c55611b9282611b4e565b81815260059190911b8301840190848101908c831115611c7457600080fd5b938501935b82851015611c9b578435611c8c81611552565b82529385019390850190611c79565b965050506080890135925080831115611cb357600080fd5b5050611cc188828901611b71565b9150509295509295909350565b604080825283519082018190526000906020906060840190828701845b82811015611d105781516001600160a01b031684529284019290840190600101611ceb565b5050508381038285015284518082528583019183019060005b81811015611d4557835183529284019291840191600101611d29565b5090979650505050505050565b600082601f830112611d6357600080fd5b81356001600160401b03811115611d7c57611d7c611b08565b611d8f601f8201601f1916602001611b1e565b818152846020838601011115611da457600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611dd757600080fd5b843593506020850135611de981611552565b925060408501356001600160401b0380821115611e0557600080fd5b611e1188838901611d52565b93506060870135915080821115611e2757600080fd5b50611e3487828801611d52565b91505092959194509250565b6001600160a01b0384168152606060208201819052600090611e6490830185611a02565b8281036040840152611e768185611a02565b969550505050505056fea2646970667358221220ea7f0780443ff888020e6f849aab1ba92bde432ee19d9736a09873b7ffce268864736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` +var ChildERC721PredicateACLArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC721PredicateAccessList","sourceName":"contracts/blade/ChildERC721PredicateAccessList.sol","abi":[{"inputs":[{"internalType":"string","name":"only","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"AllowListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"BlockListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"ERC721DepositBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"ERC721WithdrawBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC721Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"},{"internalType":"bool","name":"newUseAllowList","type":"bool"},{"internalType":"bool","name":"newUseBlockList","type":"bool"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC721Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootERC721Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseAllowList","type":"bool"}],"name":"setAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseBlockList","type":"bool"}],"name":"setBlockList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sourceTokenToDestinationToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC721","name":"childToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC721","name":"childToken","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"withdrawBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC721","name":"childToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b506126ea806100206000396000f3fe608060405234801561001057600080fd5b506004361061019a5760003560e01c8063b0750611116100e4578063d41f177111610092578063d41f177114610354578063d7c9e3ec1461037b578063e30c3978146103a2578063eeb49945146103b3578063f2fde38b146103c6578063f3fef3a3146103d9578063f6451255146103ec578063f691325c1461041357600080fd5b8063b0750611146102b1578063b1768065146102ba578063c1225a20146102e1578063c3b35a7e146102f4578063c5ac2b1c14610307578063c5e4683a1461032e578063cf756fdf1461034157600080fd5b806359a85e081161014c57806359a85e08146102355780635ea5df791461024a5780636f33e69514610261578063715018a61461027457806379ba50971461027c5780638da5cb5b146102845780639079dfb314610295578063947287cf146102a857600080fd5b806307b3e2521461019f578063116191b6146101ca578063284017f5146101dd5780633b878c22146101e657806340acd98d146101ef57806351351d531461021957806355b01e4d14610227575b600080fd5b6101ad6004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546101ad906001600160a01b031681565b6101ad61202081565b6101ad61101081565b6101ad6101fd366004611c5e565b610100602052600090815260409020546001600160a01b031681565b6101ad6002600160a01b0381565b6101ad6004600160991b0181565b610248610243366004611c90565b610426565b005b61025361138881565b6040519081526020016101c1565b61024861026f366004611d68565b610569565b610248610585565b610248610599565b6035546001600160a01b03166101ad565b60ff546101ad906001600160a01b031681565b61025361520881565b61025360015481565b6102537f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6102486102ef366004611dea565b610613565b610248610302366004611e07565b610662565b6102537faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61024861033c366004611dea565b61067a565b61024861034f366004611e48565b6106c1565b6102537f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6102537f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101ad565b6102486103c1366004611e99565b610792565b6102486103d4366004611c5e565b6109a9565b6102486103e7366004611f21565b610a1a565b6102537f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b60fe546101ad906001600160a01b031681565b336002600160a01b031461046f5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064015b60405180910390fd5b600254610100900460ff161580801561048f5750600254600160ff909116105b806104a95750303b1580156104a9575060025460ff166001145b6104c55760405162461bcd60e51b815260040161046690611f4d565b6002805460ff1916600117905580156104e8576002805461ff0019166101001790555b6104f488888888610a31565b60cb805461ffff191685151561ff001916176101008515150217905561051982610ae8565b801561055f576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b610571610b01565b61057e8585858585610b09565b5050505050565b61058d610e74565b6105976000610ae8565b565b60675433906001600160a01b031681146106075760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610466565b61061081610ae8565b50565b61061b610e74565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b61066a610b01565b610675838383610ece565b505050565b610682610e74565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b600254610100900460ff16158080156106e15750600254600160ff909116105b806106fb5750303b1580156106fb575060025460ff166001145b6107175760405162461bcd60e51b815260040161046690611f4d565b6002805460ff19166001179055801561073a576002805461ff0019166101001790555b61074685858585610a31565b801561057e576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6000546001600160a01b031633146107f75760405162461bcd60e51b815260206004820152602260248201527f4368696c644552433732315072656469636174653a204f4e4c595f4741544557604482015261415960f01b6064820152608401610466565b60fe546001600160a01b038481169116146108665760405162461bcd60e51b815260206004820152602960248201527f4368696c644552433732315072656469636174653a204f4e4c595f524f4f545f60448201526850524544494341544560b81b6064820152608401610466565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821610895602060008486611f9b565b61089e91611fc5565b036108bd576108b86108b38260208186611f9b565b6111de565b6109a3565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d186108ec602060008486611f9b565b6108f591611fc5565b03610904576108b88282611455565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad610933602060008486611f9b565b61093c91611fc5565b0361094b576108b882826116bc565b60405162461bcd60e51b815260206004820152602760248201527f4368696c644552433732315072656469636174653a20494e56414c49445f5349604482015266474e415455524560c81b6064820152608401610466565b50505050565b6109b1610e74565b606780546001600160a01b0383166001600160a01b031990911681179091556109e26035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610a22610b01565b610a2d823383610ece565b5050565b610a3b848261182c565b6001600160a01b03831615801590610a5b57506001600160a01b03821615155b610ab85760405162461bcd60e51b815260206004820152602860248201527f4368696c644552433732315072656469636174653a204241445f494e495449416044820152672624ad20aa24a7a760c11b6064820152608401610466565b5060fe80546001600160a01b039384166001600160a01b03199182161790915560ff805492909316911617905550565b606780546001600160a01b0319169055610610816118b5565b610597611907565b84610b1381611b1d565b610b2f5760405162461bcd60e51b815260040161046690611fe3565b6000866001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b939190612025565b6001600160a01b0381811660009081526101006020526040902054919250888116911614610bd35760405162461bcd60e51b815260040161046690612042565b6001600160a01b038116610be957610be9612086565b306001600160a01b0316876001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c559190612025565b6001600160a01b031614610c6b57610c6b612086565b848314610cc65760405162461bcd60e51b8152602060048201526024808201527f4368696c644552433732315072656469636174653a20494e56414c49445f4c4560448201526309c8ea8960e31b6064820152608401610466565b60405163b2dc5dc360e01b81526001600160a01b0388169063b2dc5dc390610cf6903390889088906004016120ce565b6020604051808303816000875af1158015610d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3991906120fc565b610d555760405162461bcd60e51b815260040161046690612119565b60005460fe546040516001600160a01b039283169263417d5acb921690610dac907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908d908d908d908d906020016121a3565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610dde9392600401612247565b600060405180830381600087803b158015610df857600080fd5b505af1158015610e0c573d6000803e3d6000fd5b50505050336001600160a01b0316876001600160a01b0316826001600160a01b03167f1b7b9713fdef5dfadf92f6d6e998eb1fc4763cee62a194a095d76349f7dce20c89898989604051610e63949392919061227b565b60405180910390a450505050505050565b6035546001600160a01b031633146105975760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610466565b82610ed881611b1d565b610ef45760405162461bcd60e51b815260040161046690611fe3565b6000846001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f589190612025565b6001600160a01b0381811660009081526101006020526040902054919250868116911614610f985760405162461bcd60e51b815260040161046690612042565b6001600160a01b038116610fae57610fae612086565b306001600160a01b0316856001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101a9190612025565b6001600160a01b03161461103057611030612086565b604051632770a7eb60e21b81526001600160a01b03861690639dc29fac9061105e90339087906004016122ad565b6020604051808303816000875af115801561107d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a191906120fc565b6110bd5760405162461bcd60e51b815260040161046690612119565b60005460fe54604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152888116608083015260a08083018990528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb9461114e9492169290919060c401612247565b600060405180830381600087803b15801561116857600080fd5b505af115801561117c573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b0316826001600160a01b03167f8194f168e6e9e449d05a46936e071a710c0f22634eaadeb5b85a86540123931933876040516111cf9291906122ad565b60405180910390a45050505050565b60008080806111ef85870187611e48565b6001600160a01b0380851660009081526101006020526040902054949850929650909450925016806112335760405162461bcd60e51b815260040161046690612042565b61123c81611b1d565b61124857611248612086565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ac9190612025565b9050856001600160a01b0316816001600160a01b0316146112cf576112cf612086565b6001600160a01b0381166112e5576112e5612086565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190612025565b6001600160a01b03161461136757611367612086565b6040516340c10f1960e01b81526001600160a01b038316906340c10f199061139590879087906004016122ad565b6020604051808303816000875af11580156113b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d891906120fc565b6113f45760405162461bcd60e51b8152600401610466906122c6565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f40e242710be14b7d61d3b93e9d56b40df89cc4dbad8bb88da38c8e0c23809ba788876040516114439291906122ad565b60405180910390a45050505050505050565b6000808080611466858701876123db565b6001600160a01b03808516600090815261010060205260409020549499509297509095509350169050806114ac5760405162461bcd60e51b815260040161046690612042565b6114b581611b1d565b6114c1576114c1612086565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611501573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115259190612025565b9050856001600160a01b0316816001600160a01b03161461154857611548612086565b6001600160a01b03811661155e5761155e612086565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ca9190612025565b6001600160a01b0316146115e0576115e0612086565b604051637c88e3d960e01b81526001600160a01b03831690637c88e3d99061160e90879087906004016124cd565b6020604051808303816000875af115801561162d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165191906120fc565b61166d5760405162461bcd60e51b8152600401610466906122c6565b846001600160a01b0316826001600160a01b0316876001600160a01b03167f02c575a943105cda454293b7ac636c87c94ff1bfcfac968aa5423e6b9b312ee987876040516114439291906124cd565b600080806116cc848601866125c0565b91955093509150506001600160a01b0383166116ea576116ea612086565b6001600160a01b0383811660009081526101006020526040902054161561171357611713612086565b60ff546040516bffffffffffffffffffffffff19606086901b166020820152600091611763916001600160a01b039091169060340160405160208183030381529060405280519060200120611bb2565b6001600160a01b03858116600090815261010060205260409081902080546001600160a01b031916928416928317905551639065714760e01b8152919250906390657147906117ba9087908790879060040161263f565b600060405180830381600087803b1580156117d457600080fd5b505af11580156117e8573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a3505050505050565b6001600160a01b0382161580159061184357508015155b61188f5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610466565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff1615611a1257604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b019161138891611969919061267f565b6000604051808303818686fa925050503d80600081146119a5576040519150601f19603f3d011682016040523d82523d6000602084013e6119aa565b606091505b50915091508180156119cf57506000818060200190518101906119cd919061269b565b115b611a0f5760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b6044820152606401610466565b50505b60cb54610100900460ff161561059757604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b019161138891611a79919061267f565b6000604051808303818686fa925050503d8060008114611ab5576040519150601f19603f3d011682016040523d82523d6000602084013e611aba565b606091505b5091509150818015611ae0575080806020019051810190611adb919061269b565b600114155b610a2d5760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b6044820152606401610466565b6000816001600160a01b03163b600003611b3957506000919050565b6040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611ba0575060408051601f3d908101601f19168201909252611b9d918101906120fc565b60015b611bac57506000919050565b92915050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116611bac5760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610466565b6001600160a01b038116811461061057600080fd5b600060208284031215611c7057600080fd5b8135611c7b81611c49565b9392505050565b801515811461061057600080fd5b600080600080600080600060e0888a031215611cab57600080fd5b8735611cb681611c49565b96506020880135611cc681611c49565b95506040880135611cd681611c49565b9450606088013593506080880135611ced81611c82565b925060a0880135611cfd81611c82565b915060c0880135611d0d81611c49565b8091505092959891949750929550565b60008083601f840112611d2f57600080fd5b5081356001600160401b03811115611d4657600080fd5b6020830191508360208260051b8501011115611d6157600080fd5b9250929050565b600080600080600060608688031215611d8057600080fd5b8535611d8b81611c49565b945060208601356001600160401b0380821115611da757600080fd5b611db389838a01611d1d565b90965094506040880135915080821115611dcc57600080fd5b50611dd988828901611d1d565b969995985093965092949392505050565b600060208284031215611dfc57600080fd5b8135611c7b81611c82565b600080600060608486031215611e1c57600080fd5b8335611e2781611c49565b92506020840135611e3781611c49565b929592945050506040919091013590565b60008060008060808587031215611e5e57600080fd5b8435611e6981611c49565b93506020850135611e7981611c49565b92506040850135611e8981611c49565b9396929550929360600135925050565b60008060008060608587031215611eaf57600080fd5b843593506020850135611ec181611c49565b925060408501356001600160401b0380821115611edd57600080fd5b818701915087601f830112611ef157600080fd5b813581811115611f0057600080fd5b886020828501011115611f1257600080fd5b95989497505060200194505050565b60008060408385031215611f3457600080fd5b8235611f3f81611c49565b946020939093013593505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008085851115611fab57600080fd5b83861115611fb857600080fd5b5050820193919092039150565b80356020831015611bac57600019602084900360031b1b1692915050565b60208082526022908201527f4368696c644552433732315072656469636174653a204e4f545f434f4e54524160408201526110d560f21b606082015260800190565b60006020828403121561203757600080fd5b8151611c7b81611c49565b60208082526024908201527f4368696c644552433732315072656469636174653a20554e4d41505045445f5460408201526327a5a2a760e11b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b038311156120b557600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03841681526040602082018190526000906120f3908301848661209c565b95945050505050565b60006020828403121561210e57600080fd5b8151611c7b81611c82565b60208082526021908201527f4368696c644552433732315072656469636174653a204255524e5f4641494c456040820152601160fa1b606082015260800190565b8183526000602080850194508260005b8581101561219857813561217d81611c49565b6001600160a01b03168752958201959082019060010161216a565b509495945050505050565b8781526001600160a01b0387811660208301528616604082015260a0606082018190526000906121d6908301868861215a565b82810360808401526121e981858761209c565b9a9950505050505050505050565b60005b838110156122125781810151838201526020016121fa565b50506000910152565b600081518084526122338160208601602086016121f7565b601f01601f19169290920160200192915050565b6001600160a01b038416815260606020820181905260009061226b9083018561221b565b9050826040830152949350505050565b60408152600061228f60408301868861215a565b82810360208401526122a281858761209c565b979650505050505050565b6001600160a01b03929092168252602082015260400190565b60208082526021908201527f4368696c644552433732315072656469636174653a204d494e545f4641494c456040820152601160fa1b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561234557612345612307565b604052919050565b60006001600160401b0382111561236657612366612307565b5060051b60200190565b600082601f83011261238157600080fd5b813560206123966123918361234d565b61231d565b82815260059290921b840181019181810190868411156123b557600080fd5b8286015b848110156123d057803583529183019183016123b9565b509695505050505050565b600080600080600060a086880312156123f357600080fd5b8535945060208087013561240681611c49565b9450604087013561241681611c49565b935060608701356001600160401b038082111561243257600080fd5b818901915089601f83011261244657600080fd5b81356124546123918261234d565b81815260059190911b8301840190848101908c83111561247357600080fd5b938501935b8285101561249a57843561248b81611c49565b82529385019390850190612478565b9650505060808901359250808311156124b257600080fd5b50506124c088828901612370565b9150509295509295909350565b604080825283519082018190526000906020906060840190828701845b8281101561250f5781516001600160a01b0316845292840192908401906001016124ea565b5050508381038285015284518082528583019183019060005b8181101561254457835183529284019291840191600101612528565b5090979650505050505050565b600082601f83011261256257600080fd5b81356001600160401b0381111561257b5761257b612307565b61258e601f8201601f191660200161231d565b8181528460208386010111156125a357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156125d657600080fd5b8435935060208501356125e881611c49565b925060408501356001600160401b038082111561260457600080fd5b61261088838901612551565b9350606087013591508082111561262657600080fd5b5061263387828801612551565b91505092959194509250565b6001600160a01b03841681526060602082018190526000906126639083018561221b565b8281036040840152612675818561221b565b9695505050505050565b600082516126918184602087016121f7565b9190910192915050565b6000602082840312156126ad57600080fd5b505191905056fea2646970667358221220d83ebc8ecfcf65737f38a8640da237c03185da51da839df37f4b90c07061273964736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b506004361061019a5760003560e01c8063b0750611116100e4578063d41f177111610092578063d41f177114610354578063d7c9e3ec1461037b578063e30c3978146103a2578063eeb49945146103b3578063f2fde38b146103c6578063f3fef3a3146103d9578063f6451255146103ec578063f691325c1461041357600080fd5b8063b0750611146102b1578063b1768065146102ba578063c1225a20146102e1578063c3b35a7e146102f4578063c5ac2b1c14610307578063c5e4683a1461032e578063cf756fdf1461034157600080fd5b806359a85e081161014c57806359a85e08146102355780635ea5df791461024a5780636f33e69514610261578063715018a61461027457806379ba50971461027c5780638da5cb5b146102845780639079dfb314610295578063947287cf146102a857600080fd5b806307b3e2521461019f578063116191b6146101ca578063284017f5146101dd5780633b878c22146101e657806340acd98d146101ef57806351351d531461021957806355b01e4d14610227575b600080fd5b6101ad6004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546101ad906001600160a01b031681565b6101ad61202081565b6101ad61101081565b6101ad6101fd366004611c5e565b610100602052600090815260409020546001600160a01b031681565b6101ad6002600160a01b0381565b6101ad6004600160991b0181565b610248610243366004611c90565b610426565b005b61025361138881565b6040519081526020016101c1565b61024861026f366004611d68565b610569565b610248610585565b610248610599565b6035546001600160a01b03166101ad565b60ff546101ad906001600160a01b031681565b61025361520881565b61025360015481565b6102537f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6102486102ef366004611dea565b610613565b610248610302366004611e07565b610662565b6102537faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61024861033c366004611dea565b61067a565b61024861034f366004611e48565b6106c1565b6102537f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6102537f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101ad565b6102486103c1366004611e99565b610792565b6102486103d4366004611c5e565b6109a9565b6102486103e7366004611f21565b610a1a565b6102537f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b60fe546101ad906001600160a01b031681565b336002600160a01b031461046f5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064015b60405180910390fd5b600254610100900460ff161580801561048f5750600254600160ff909116105b806104a95750303b1580156104a9575060025460ff166001145b6104c55760405162461bcd60e51b815260040161046690611f4d565b6002805460ff1916600117905580156104e8576002805461ff0019166101001790555b6104f488888888610a31565b60cb805461ffff191685151561ff001916176101008515150217905561051982610ae8565b801561055f576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b610571610b01565b61057e8585858585610b09565b5050505050565b61058d610e74565b6105976000610ae8565b565b60675433906001600160a01b031681146106075760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610466565b61061081610ae8565b50565b61061b610e74565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b61066a610b01565b610675838383610ece565b505050565b610682610e74565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b600254610100900460ff16158080156106e15750600254600160ff909116105b806106fb5750303b1580156106fb575060025460ff166001145b6107175760405162461bcd60e51b815260040161046690611f4d565b6002805460ff19166001179055801561073a576002805461ff0019166101001790555b61074685858585610a31565b801561057e576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6000546001600160a01b031633146107f75760405162461bcd60e51b815260206004820152602260248201527f4368696c644552433732315072656469636174653a204f4e4c595f4741544557604482015261415960f01b6064820152608401610466565b60fe546001600160a01b038481169116146108665760405162461bcd60e51b815260206004820152602960248201527f4368696c644552433732315072656469636174653a204f4e4c595f524f4f545f60448201526850524544494341544560b81b6064820152608401610466565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f821610895602060008486611f9b565b61089e91611fc5565b036108bd576108b86108b38260208186611f9b565b6111de565b6109a3565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d186108ec602060008486611f9b565b6108f591611fc5565b03610904576108b88282611455565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad610933602060008486611f9b565b61093c91611fc5565b0361094b576108b882826116bc565b60405162461bcd60e51b815260206004820152602760248201527f4368696c644552433732315072656469636174653a20494e56414c49445f5349604482015266474e415455524560c81b6064820152608401610466565b50505050565b6109b1610e74565b606780546001600160a01b0383166001600160a01b031990911681179091556109e26035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610a22610b01565b610a2d823383610ece565b5050565b610a3b848261182c565b6001600160a01b03831615801590610a5b57506001600160a01b03821615155b610ab85760405162461bcd60e51b815260206004820152602860248201527f4368696c644552433732315072656469636174653a204241445f494e495449416044820152672624ad20aa24a7a760c11b6064820152608401610466565b5060fe80546001600160a01b039384166001600160a01b03199182161790915560ff805492909316911617905550565b606780546001600160a01b0319169055610610816118b5565b610597611907565b84610b1381611b1d565b610b2f5760405162461bcd60e51b815260040161046690611fe3565b6000866001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b939190612025565b6001600160a01b0381811660009081526101006020526040902054919250888116911614610bd35760405162461bcd60e51b815260040161046690612042565b6001600160a01b038116610be957610be9612086565b306001600160a01b0316876001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c559190612025565b6001600160a01b031614610c6b57610c6b612086565b848314610cc65760405162461bcd60e51b8152602060048201526024808201527f4368696c644552433732315072656469636174653a20494e56414c49445f4c4560448201526309c8ea8960e31b6064820152608401610466565b60405163b2dc5dc360e01b81526001600160a01b0388169063b2dc5dc390610cf6903390889088906004016120ce565b6020604051808303816000875af1158015610d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3991906120fc565b610d555760405162461bcd60e51b815260040161046690612119565b60005460fe546040516001600160a01b039283169263417d5acb921690610dac907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908d908d908d908d906020016121a3565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610dde9392600401612247565b600060405180830381600087803b158015610df857600080fd5b505af1158015610e0c573d6000803e3d6000fd5b50505050336001600160a01b0316876001600160a01b0316826001600160a01b03167f1b7b9713fdef5dfadf92f6d6e998eb1fc4763cee62a194a095d76349f7dce20c89898989604051610e63949392919061227b565b60405180910390a450505050505050565b6035546001600160a01b031633146105975760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610466565b82610ed881611b1d565b610ef45760405162461bcd60e51b815260040161046690611fe3565b6000846001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f589190612025565b6001600160a01b0381811660009081526101006020526040902054919250868116911614610f985760405162461bcd60e51b815260040161046690612042565b6001600160a01b038116610fae57610fae612086565b306001600160a01b0316856001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101a9190612025565b6001600160a01b03161461103057611030612086565b604051632770a7eb60e21b81526001600160a01b03861690639dc29fac9061105e90339087906004016122ad565b6020604051808303816000875af115801561107d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a191906120fc565b6110bd5760405162461bcd60e51b815260040161046690612119565b60005460fe54604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152888116608083015260a08083018990528351808403909101815260c083019384905260015463417d5acb60e01b9094529481169463417d5acb9461114e9492169290919060c401612247565b600060405180830381600087803b15801561116857600080fd5b505af115801561117c573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b0316826001600160a01b03167f8194f168e6e9e449d05a46936e071a710c0f22634eaadeb5b85a86540123931933876040516111cf9291906122ad565b60405180910390a45050505050565b60008080806111ef85870187611e48565b6001600160a01b0380851660009081526101006020526040902054949850929650909450925016806112335760405162461bcd60e51b815260040161046690612042565b61123c81611b1d565b61124857611248612086565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611288573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ac9190612025565b9050856001600160a01b0316816001600160a01b0316146112cf576112cf612086565b6001600160a01b0381166112e5576112e5612086565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190612025565b6001600160a01b03161461136757611367612086565b6040516340c10f1960e01b81526001600160a01b038316906340c10f199061139590879087906004016122ad565b6020604051808303816000875af11580156113b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d891906120fc565b6113f45760405162461bcd60e51b8152600401610466906122c6565b836001600160a01b0316826001600160a01b0316876001600160a01b03167f40e242710be14b7d61d3b93e9d56b40df89cc4dbad8bb88da38c8e0c23809ba788876040516114439291906122ad565b60405180910390a45050505050505050565b6000808080611466858701876123db565b6001600160a01b03808516600090815261010060205260409020549499509297509095509350169050806114ac5760405162461bcd60e51b815260040161046690612042565b6114b581611b1d565b6114c1576114c1612086565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611501573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115259190612025565b9050856001600160a01b0316816001600160a01b03161461154857611548612086565b6001600160a01b03811661155e5761155e612086565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ca9190612025565b6001600160a01b0316146115e0576115e0612086565b604051637c88e3d960e01b81526001600160a01b03831690637c88e3d99061160e90879087906004016124cd565b6020604051808303816000875af115801561162d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165191906120fc565b61166d5760405162461bcd60e51b8152600401610466906122c6565b846001600160a01b0316826001600160a01b0316876001600160a01b03167f02c575a943105cda454293b7ac636c87c94ff1bfcfac968aa5423e6b9b312ee987876040516114439291906124cd565b600080806116cc848601866125c0565b91955093509150506001600160a01b0383166116ea576116ea612086565b6001600160a01b0383811660009081526101006020526040902054161561171357611713612086565b60ff546040516bffffffffffffffffffffffff19606086901b166020820152600091611763916001600160a01b039091169060340160405160208183030381529060405280519060200120611bb2565b6001600160a01b03858116600090815261010060205260409081902080546001600160a01b031916928416928317905551639065714760e01b8152919250906390657147906117ba9087908790879060040161263f565b600060405180830381600087803b1580156117d457600080fd5b505af11580156117e8573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a3505050505050565b6001600160a01b0382161580159061184357508015155b61188f5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610466565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff1615611a1257604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b019161138891611969919061267f565b6000604051808303818686fa925050503d80600081146119a5576040519150601f19603f3d011682016040523d82523d6000602084013e6119aa565b606091505b50915091508180156119cf57506000818060200190518101906119cd919061269b565b115b611a0f5760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b6044820152606401610466565b50505b60cb54610100900460ff161561059757604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b019161138891611a79919061267f565b6000604051808303818686fa925050503d8060008114611ab5576040519150601f19603f3d011682016040523d82523d6000602084013e611aba565b606091505b5091509150818015611ae0575080806020019051810190611adb919061269b565b600114155b610a2d5760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b6044820152606401610466565b6000816001600160a01b03163b600003611b3957506000919050565b6040516301ffc9a760e01b81526380ac58cd60e01b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611ba0575060408051601f3d908101601f19168201909252611b9d918101906120fc565b60015b611bac57506000919050565b92915050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116611bac5760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610466565b6001600160a01b038116811461061057600080fd5b600060208284031215611c7057600080fd5b8135611c7b81611c49565b9392505050565b801515811461061057600080fd5b600080600080600080600060e0888a031215611cab57600080fd5b8735611cb681611c49565b96506020880135611cc681611c49565b95506040880135611cd681611c49565b9450606088013593506080880135611ced81611c82565b925060a0880135611cfd81611c82565b915060c0880135611d0d81611c49565b8091505092959891949750929550565b60008083601f840112611d2f57600080fd5b5081356001600160401b03811115611d4657600080fd5b6020830191508360208260051b8501011115611d6157600080fd5b9250929050565b600080600080600060608688031215611d8057600080fd5b8535611d8b81611c49565b945060208601356001600160401b0380821115611da757600080fd5b611db389838a01611d1d565b90965094506040880135915080821115611dcc57600080fd5b50611dd988828901611d1d565b969995985093965092949392505050565b600060208284031215611dfc57600080fd5b8135611c7b81611c82565b600080600060608486031215611e1c57600080fd5b8335611e2781611c49565b92506020840135611e3781611c49565b929592945050506040919091013590565b60008060008060808587031215611e5e57600080fd5b8435611e6981611c49565b93506020850135611e7981611c49565b92506040850135611e8981611c49565b9396929550929360600135925050565b60008060008060608587031215611eaf57600080fd5b843593506020850135611ec181611c49565b925060408501356001600160401b0380821115611edd57600080fd5b818701915087601f830112611ef157600080fd5b813581811115611f0057600080fd5b886020828501011115611f1257600080fd5b95989497505060200194505050565b60008060408385031215611f3457600080fd5b8235611f3f81611c49565b946020939093013593505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008085851115611fab57600080fd5b83861115611fb857600080fd5b5050820193919092039150565b80356020831015611bac57600019602084900360031b1b1692915050565b60208082526022908201527f4368696c644552433732315072656469636174653a204e4f545f434f4e54524160408201526110d560f21b606082015260800190565b60006020828403121561203757600080fd5b8151611c7b81611c49565b60208082526024908201527f4368696c644552433732315072656469636174653a20554e4d41505045445f5460408201526327a5a2a760e11b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b038311156120b557600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03841681526040602082018190526000906120f3908301848661209c565b95945050505050565b60006020828403121561210e57600080fd5b8151611c7b81611c82565b60208082526021908201527f4368696c644552433732315072656469636174653a204255524e5f4641494c456040820152601160fa1b606082015260800190565b8183526000602080850194508260005b8581101561219857813561217d81611c49565b6001600160a01b03168752958201959082019060010161216a565b509495945050505050565b8781526001600160a01b0387811660208301528616604082015260a0606082018190526000906121d6908301868861215a565b82810360808401526121e981858761209c565b9a9950505050505050505050565b60005b838110156122125781810151838201526020016121fa565b50506000910152565b600081518084526122338160208601602086016121f7565b601f01601f19169290920160200192915050565b6001600160a01b038416815260606020820181905260009061226b9083018561221b565b9050826040830152949350505050565b60408152600061228f60408301868861215a565b82810360208401526122a281858761209c565b979650505050505050565b6001600160a01b03929092168252602082015260400190565b60208082526021908201527f4368696c644552433732315072656469636174653a204d494e545f4641494c456040820152601160fa1b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561234557612345612307565b604052919050565b60006001600160401b0382111561236657612366612307565b5060051b60200190565b600082601f83011261238157600080fd5b813560206123966123918361234d565b61231d565b82815260059290921b840181019181810190868411156123b557600080fd5b8286015b848110156123d057803583529183019183016123b9565b509695505050505050565b600080600080600060a086880312156123f357600080fd5b8535945060208087013561240681611c49565b9450604087013561241681611c49565b935060608701356001600160401b038082111561243257600080fd5b818901915089601f83011261244657600080fd5b81356124546123918261234d565b81815260059190911b8301840190848101908c83111561247357600080fd5b938501935b8285101561249a57843561248b81611c49565b82529385019390850190612478565b9650505060808901359250808311156124b257600080fd5b50506124c088828901612370565b9150509295509295909350565b604080825283519082018190526000906020906060840190828701845b8281101561250f5781516001600160a01b0316845292840192908401906001016124ea565b5050508381038285015284518082528583019183019060005b8181101561254457835183529284019291840191600101612528565b5090979650505050505050565b600082601f83011261256257600080fd5b81356001600160401b0381111561257b5761257b612307565b61258e601f8201601f191660200161231d565b8181528460208386010111156125a357600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156125d657600080fd5b8435935060208501356125e881611c49565b925060408501356001600160401b038082111561260457600080fd5b61261088838901612551565b9350606087013591508082111561262657600080fd5b5061263387828801612551565b91505092959194509250565b6001600160a01b03841681526060602082018190526000906126639083018561221b565b8281036040840152612675818561221b565b9695505050505050565b600082516126918184602087016121f7565b9190910192915050565b6000602082840312156126ad57600080fd5b505191905056fea2646970667358221220d83ebc8ecfcf65737f38a8640da237c03185da51da839df37f4b90c07061273964736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` var RootERC721PredicateArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"RootERC721Predicate","sourceName":"contracts/bridge/RootERC721Predicate.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"depositor","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"depositor","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"ERC721DepositBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"ERC721WithdrawBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"childERC721Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC721Metadata","name":"rootToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC721Metadata","name":"rootToken","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"depositBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC721Metadata","name":"rootToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"depositTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newChildERC721Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC721Metadata","name":"rootToken","type":"address"}],"name":"mapToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sourceTokenToDestinationToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b5061199c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100fb5760003560e01c8063c5ac2b1c116100a2578063eeb4994511610071578063eeb4994514610297578063f213159c146102aa578063f4a120f7146102bd578063f6451255146102d0578063ff6f870c146102f757600080fd5b8063c5ac2b1c1461020f578063cf756fdf14610236578063d41f177114610249578063d7c9e3ec1461027057600080fd5b8063116191b614610100578063150b7a021461013057806340acd98d1461016757806347e7ef24146101905780634fdca69d146101a55780639079dfb3146101be578063b0750611146101d1578063b1768065146101e8575b600080fd5b600054610113906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61014e61013e3660046111b2565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610127565b610113610175366004611260565b6004602052600090815260409020546001600160a01b031681565b6101a361019e366004611284565b61030a565b005b600254610113906201000090046001600160a01b031681565b600354610113906001600160a01b031681565b6101da60015481565b604051908152602001610127565b6101da7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6101da7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b6101a36102443660046112b0565b610319565b6101da7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6101da7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6101a36102a5366004611301565b610437565b6101a36102b8366004611389565b61060b565b6101136102cb366004611260565b61061b565b6101da7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6101a3610305366004611415565b610981565b6103158233836109e9565b5050565b600254610100900460ff16158080156103395750600254600160ff909116105b806103535750303b158015610353575060025460ff166001145b6103bb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff1916600117905580156103de576002805461ff0019166101001790555b6103ea85858585610b72565b8015610430576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b0316331461049b5760405162461bcd60e51b815260206004820152602160248201527f526f6f744552433732315072656469636174653a204f4e4c595f4741544557416044820152605960f81b60648201526084016103b2565b6002546001600160a01b038481166201000090920416146105105760405162461bcd60e51b815260206004820152602960248201527f526f6f744552433732315072656469636174653a204f4e4c595f4348494c445f60448201526850524544494341544560b81b60648201526084016103b2565b7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286961053f602060008486611497565b610548916114c1565b036105675761056261055d8260208186611497565b610c5c565b610605565b7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed2610596602060008486611497565b61059f916114c1565b036105ae576105628282610d5a565b60405162461bcd60e51b815260206004820152602660248201527f526f6f744552433732315072656469636174653a20494e56414c49445f5349476044820152654e415455524560d01b60648201526084016103b2565b50505050565b6106168383836109e9565b505050565b60006001600160a01b03821661067e5760405162461bcd60e51b815260206004820152602260248201527f526f6f744552433732315072656469636174653a20494e56414c49445f544f4b60448201526122a760f11b60648201526084016103b2565b6001600160a01b0382811660009081526004602052604090205416156106f25760405162461bcd60e51b815260206004820152602360248201527f526f6f744552433732315072656469636174653a20414c52454144595f4d415060448201526214115160ea1b60648201526084016103b2565b6002546003546040516bffffffffffffffffffffffff19606086901b166020820152620100009092046001600160a01b03908116926000926107a6921690603401604051602081830303815290604052805190602001208460405160388101919091526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b6001600160a01b03858116600081815260046020819052604080832080546001600160a01b031916878716179055825481516306fdde0360e01b815291519697509094169463417d5acb9488947f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad948c9491936306fdde039380840193908290030181865afa15801561083d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108659190810190611504565b896001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156108a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108cb9190810190611504565b6040516020016108de94939291906115a6565b60408051601f19818403018152908290526001546001600160e01b031960e086901b16835261091093926004016115ed565b600060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a39392505050565b8281146109dc5760405162461bcd60e51b815260206004820152602360248201527f526f6f744552433732315072656469636174653a20494e56414c49445f4c454e60448201526208ea8960eb1b60648201526084016103b2565b6104308585858585610e9b565b60006109f48461105d565b604051632142170760e11b81529091506001600160a01b038516906342842e0e90610a2790339030908790600401611621565b600060405180830381600087803b158015610a4157600080fd5b505af1158015610a55573d6000803e3d6000fd5b5050600054600254604080517f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82160208201526001600160a01b038a811682840152336060830152898116608083015260a08083018a90528351808403909101815260c083019384905260015463417d5acb60e01b909452948116965063417d5acb9550610aef94620100009094041692919060c4016115ed565b600060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b505060408051338152602081018690526001600160a01b03808816945085811693508816917f40e242710be14b7d61d3b93e9d56b40df89cc4dbad8bb88da38c8e0c23809ba7910160405180910390a4610605565b610b7c84826110a4565b6001600160a01b03841615801590610b9c57506001600160a01b03831615155b8015610bb057506001600160a01b03821615155b610c0c5760405162461bcd60e51b815260206004820152602760248201527f526f6f744552433732315072656469636174653a204241445f494e495449414c60448201526624ad20aa24a7a760c91b60648201526084016103b2565b50600080546001600160a01b039485166001600160a01b03199182161790915560028054938516620100000262010000600160b01b03199094169390931790925560038054919093169116179055565b6000808080610c6d858701876112b0565b6001600160a01b0380851660009081526004602052604090205494985092965090945092501680610ca057610ca0611645565b604051632142170760e11b81526001600160a01b038616906342842e0e90610cd090309087908790600401611621565b600060405180830381600087803b158015610cea57600080fd5b505af1158015610cfe573d6000803e3d6000fd5b5050604080516001600160a01b03888116825260208201879052808816945085811693508916917f8194f168e6e9e449d05a46936e071a710c0f22634eaadeb5b85a86540123931991015b60405180910390a450505050505050565b6000808080610d6b858701876116e4565b6001600160a01b03808516600090815260046020526040902054949950929750909550935016905080610da057610da0611645565b60005b8251811015610e4b57856001600160a01b03166342842e0e30868481518110610dce57610dce6117d6565b6020026020010151868581518110610de857610de86117d6565b60200260200101516040518463ffffffff1660e01b8152600401610e0e93929190611621565b600060405180830381600087803b158015610e2857600080fd5b505af1158015610e3c573d6000803e3d6000fd5b50505050806001019050610da3565b50836001600160a01b0316816001600160a01b0316866001600160a01b03167f1b7b9713fdef5dfadf92f6d6e998eb1fc4763cee62a194a095d76349f7dce20c8686604051610d499291906117ec565b6000610ea68661105d565b905060005b82811015610f3857866001600160a01b03166342842e0e3330878786818110610ed657610ed66117d6565b905060200201356040518463ffffffff1660e01b8152600401610efb93929190611621565b600060405180830381600087803b158015610f1557600080fd5b505af1158015610f29573d6000803e3d6000fd5b50505050806001019050610eab565b506000546002546040516001600160a01b039283169263417d5acb926201000090041690610f96907faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d18908b9033908c908c908c908c906020016118eb565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610fc893926004016115ed565b600060405180830381600087803b158015610fe257600080fd5b505af1158015610ff6573d6000803e3d6000fd5b50505050336001600160a01b0316816001600160a01b0316876001600160a01b03167f02c575a943105cda454293b7ac636c87c94ff1bfcfac968aa5423e6b9b312ee98888888860405161104d949392919061193f565b60405180910390a4505050505050565b6001600160a01b038082166000908152600460205260409020541680611089576110868261061b565b90505b6001600160a01b03811661109f5761109f611645565b919050565b6001600160a01b038216158015906110bb57508015155b6111075760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e00000060448201526064016103b2565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6001600160a01b038116811461114257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561118357611183611145565b604052919050565b60006001600160401b038211156111a4576111a4611145565b50601f01601f191660200190565b600080600080608085870312156111c857600080fd5b84356111d38161112d565b935060208501356111e38161112d565b92506040850135915060608501356001600160401b0381111561120557600080fd5b8501601f8101871361121657600080fd5b80356112296112248261118b565b61115b565b81815288602083850101111561123e57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60006020828403121561127257600080fd5b813561127d8161112d565b9392505050565b6000806040838503121561129757600080fd5b82356112a28161112d565b946020939093013593505050565b600080600080608085870312156112c657600080fd5b84356112d18161112d565b935060208501356112e18161112d565b925060408501356112f18161112d565b9396929550929360600135925050565b6000806000806060858703121561131757600080fd5b8435935060208501356113298161112d565b925060408501356001600160401b038082111561134557600080fd5b818701915087601f83011261135957600080fd5b81358181111561136857600080fd5b88602082850101111561137a57600080fd5b95989497505060200194505050565b60008060006060848603121561139e57600080fd5b83356113a98161112d565b925060208401356113b98161112d565b929592945050506040919091013590565b60008083601f8401126113dc57600080fd5b5081356001600160401b038111156113f357600080fd5b6020830191508360208260051b850101111561140e57600080fd5b9250929050565b60008060008060006060868803121561142d57600080fd5b85356114388161112d565b945060208601356001600160401b038082111561145457600080fd5b61146089838a016113ca565b9096509450604088013591508082111561147957600080fd5b50611486888289016113ca565b969995985093965092949392505050565b600080858511156114a757600080fd5b838611156114b457600080fd5b5050820193919092039150565b803560208310156114da57600019602084900360031b1b165b92915050565b60005b838110156114fb5781810151838201526020016114e3565b50506000910152565b60006020828403121561151657600080fd5b81516001600160401b0381111561152c57600080fd5b8201601f8101841361153d57600080fd5b805161154b6112248261118b565b81815285602083850101111561156057600080fd5b6115718260208301602086016114e0565b95945050505050565b600081518084526115928160208601602086016114e0565b601f01601f19169290920160200192915050565b8481526001600160a01b03841660208201526080604082018190526000906115d09083018561157a565b82810360608401526115e2818561157a565b979650505050505050565b6001600160a01b03841681526060602082018190526000906116119083018561157a565b9050826040830152949350505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052600160045260246000fd5b60006001600160401b0382111561167457611674611145565b5060051b60200190565b600082601f83011261168f57600080fd5b8135602061169f6112248361165b565b82815260059290921b840181019181810190868411156116be57600080fd5b8286015b848110156116d957803583529183019183016116c2565b509695505050505050565b600080600080600060a086880312156116fc57600080fd5b8535945060208087013561170f8161112d565b9450604087013561171f8161112d565b935060608701356001600160401b038082111561173b57600080fd5b818901915089601f83011261174f57600080fd5b813561175d6112248261165b565b81815260059190911b8301840190848101908c83111561177c57600080fd5b938501935b828510156117a35784356117948161112d565b82529385019390850190611781565b9650505060808901359250808311156117bb57600080fd5b50506117c98882890161167e565b9150509295509295909350565b634e487b7160e01b600052603260045260246000fd5b604080825283519082018190526000906020906060840190828701845b8281101561182e5781516001600160a01b031684529284019290840190600101611809565b5050508381038285015284518082528583019183019060005b8181101561186357835183529284019291840191600101611847565b5090979650505050505050565b8183526000602080850194508260005b858110156118ae5781356118938161112d565b6001600160a01b031687529582019590820190600101611880565b509495945050505050565b81835260006001600160fb1b038311156118d257600080fd5b8260051b80836020870137939093016020019392505050565b8781526001600160a01b0387811660208301528616604082015260a06060820181905260009061191e9083018688611870565b82810360808401526119318185876118b9565b9a9950505050505050505050565b604081526000611953604083018688611870565b82810360208401526115e28185876118b956fea264697066735822122037326d1e36ae71ea49072e4e66f4163b65bb8c6e8779520b13c02a9c7ac1714364736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100fb5760003560e01c8063c5ac2b1c116100a2578063eeb4994511610071578063eeb4994514610297578063f213159c146102aa578063f4a120f7146102bd578063f6451255146102d0578063ff6f870c146102f757600080fd5b8063c5ac2b1c1461020f578063cf756fdf14610236578063d41f177114610249578063d7c9e3ec1461027057600080fd5b8063116191b614610100578063150b7a021461013057806340acd98d1461016757806347e7ef24146101905780634fdca69d146101a55780639079dfb3146101be578063b0750611146101d1578063b1768065146101e8575b600080fd5b600054610113906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61014e61013e3660046111b2565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610127565b610113610175366004611260565b6004602052600090815260409020546001600160a01b031681565b6101a361019e366004611284565b61030a565b005b600254610113906201000090046001600160a01b031681565b600354610113906001600160a01b031681565b6101da60015481565b604051908152602001610127565b6101da7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6101da7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b6101a36102443660046112b0565b610319565b6101da7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6101da7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6101a36102a5366004611301565b610437565b6101a36102b8366004611389565b61060b565b6101136102cb366004611260565b61061b565b6101da7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6101a3610305366004611415565b610981565b6103158233836109e9565b5050565b600254610100900460ff16158080156103395750600254600160ff909116105b806103535750303b158015610353575060025460ff166001145b6103bb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff1916600117905580156103de576002805461ff0019166101001790555b6103ea85858585610b72565b8015610430576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b0316331461049b5760405162461bcd60e51b815260206004820152602160248201527f526f6f744552433732315072656469636174653a204f4e4c595f4741544557416044820152605960f81b60648201526084016103b2565b6002546001600160a01b038481166201000090920416146105105760405162461bcd60e51b815260206004820152602960248201527f526f6f744552433732315072656469636174653a204f4e4c595f4348494c445f60448201526850524544494341544560b81b60648201526084016103b2565b7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286961053f602060008486611497565b610548916114c1565b036105675761056261055d8260208186611497565b610c5c565b610605565b7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed2610596602060008486611497565b61059f916114c1565b036105ae576105628282610d5a565b60405162461bcd60e51b815260206004820152602660248201527f526f6f744552433732315072656469636174653a20494e56414c49445f5349476044820152654e415455524560d01b60648201526084016103b2565b50505050565b6106168383836109e9565b505050565b60006001600160a01b03821661067e5760405162461bcd60e51b815260206004820152602260248201527f526f6f744552433732315072656469636174653a20494e56414c49445f544f4b60448201526122a760f11b60648201526084016103b2565b6001600160a01b0382811660009081526004602052604090205416156106f25760405162461bcd60e51b815260206004820152602360248201527f526f6f744552433732315072656469636174653a20414c52454144595f4d415060448201526214115160ea1b60648201526084016103b2565b6002546003546040516bffffffffffffffffffffffff19606086901b166020820152620100009092046001600160a01b03908116926000926107a6921690603401604051602081830303815290604052805190602001208460405160388101919091526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b6001600160a01b03858116600081815260046020819052604080832080546001600160a01b031916878716179055825481516306fdde0360e01b815291519697509094169463417d5acb9488947f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad948c9491936306fdde039380840193908290030181865afa15801561083d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108659190810190611504565b896001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156108a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108cb9190810190611504565b6040516020016108de94939291906115a6565b60408051601f19818403018152908290526001546001600160e01b031960e086901b16835261091093926004016115ed565b600060405180830381600087803b15801561092a57600080fd5b505af115801561093e573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a39392505050565b8281146109dc5760405162461bcd60e51b815260206004820152602360248201527f526f6f744552433732315072656469636174653a20494e56414c49445f4c454e60448201526208ea8960eb1b60648201526084016103b2565b6104308585858585610e9b565b60006109f48461105d565b604051632142170760e11b81529091506001600160a01b038516906342842e0e90610a2790339030908790600401611621565b600060405180830381600087803b158015610a4157600080fd5b505af1158015610a55573d6000803e3d6000fd5b5050600054600254604080517f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82160208201526001600160a01b038a811682840152336060830152898116608083015260a08083018a90528351808403909101815260c083019384905260015463417d5acb60e01b909452948116965063417d5acb9550610aef94620100009094041692919060c4016115ed565b600060405180830381600087803b158015610b0957600080fd5b505af1158015610b1d573d6000803e3d6000fd5b505060408051338152602081018690526001600160a01b03808816945085811693508816917f40e242710be14b7d61d3b93e9d56b40df89cc4dbad8bb88da38c8e0c23809ba7910160405180910390a4610605565b610b7c84826110a4565b6001600160a01b03841615801590610b9c57506001600160a01b03831615155b8015610bb057506001600160a01b03821615155b610c0c5760405162461bcd60e51b815260206004820152602760248201527f526f6f744552433732315072656469636174653a204241445f494e495449414c60448201526624ad20aa24a7a760c91b60648201526084016103b2565b50600080546001600160a01b039485166001600160a01b03199182161790915560028054938516620100000262010000600160b01b03199094169390931790925560038054919093169116179055565b6000808080610c6d858701876112b0565b6001600160a01b0380851660009081526004602052604090205494985092965090945092501680610ca057610ca0611645565b604051632142170760e11b81526001600160a01b038616906342842e0e90610cd090309087908790600401611621565b600060405180830381600087803b158015610cea57600080fd5b505af1158015610cfe573d6000803e3d6000fd5b5050604080516001600160a01b03888116825260208201879052808816945085811693508916917f8194f168e6e9e449d05a46936e071a710c0f22634eaadeb5b85a86540123931991015b60405180910390a450505050505050565b6000808080610d6b858701876116e4565b6001600160a01b03808516600090815260046020526040902054949950929750909550935016905080610da057610da0611645565b60005b8251811015610e4b57856001600160a01b03166342842e0e30868481518110610dce57610dce6117d6565b6020026020010151868581518110610de857610de86117d6565b60200260200101516040518463ffffffff1660e01b8152600401610e0e93929190611621565b600060405180830381600087803b158015610e2857600080fd5b505af1158015610e3c573d6000803e3d6000fd5b50505050806001019050610da3565b50836001600160a01b0316816001600160a01b0316866001600160a01b03167f1b7b9713fdef5dfadf92f6d6e998eb1fc4763cee62a194a095d76349f7dce20c8686604051610d499291906117ec565b6000610ea68661105d565b905060005b82811015610f3857866001600160a01b03166342842e0e3330878786818110610ed657610ed66117d6565b905060200201356040518463ffffffff1660e01b8152600401610efb93929190611621565b600060405180830381600087803b158015610f1557600080fd5b505af1158015610f29573d6000803e3d6000fd5b50505050806001019050610eab565b506000546002546040516001600160a01b039283169263417d5acb926201000090041690610f96907faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d18908b9033908c908c908c908c906020016118eb565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610fc893926004016115ed565b600060405180830381600087803b158015610fe257600080fd5b505af1158015610ff6573d6000803e3d6000fd5b50505050336001600160a01b0316816001600160a01b0316876001600160a01b03167f02c575a943105cda454293b7ac636c87c94ff1bfcfac968aa5423e6b9b312ee98888888860405161104d949392919061193f565b60405180910390a4505050505050565b6001600160a01b038082166000908152600460205260409020541680611089576110868261061b565b90505b6001600160a01b03811661109f5761109f611645565b919050565b6001600160a01b038216158015906110bb57508015155b6111075760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e00000060448201526064016103b2565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6001600160a01b038116811461114257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561118357611183611145565b604052919050565b60006001600160401b038211156111a4576111a4611145565b50601f01601f191660200190565b600080600080608085870312156111c857600080fd5b84356111d38161112d565b935060208501356111e38161112d565b92506040850135915060608501356001600160401b0381111561120557600080fd5b8501601f8101871361121657600080fd5b80356112296112248261118b565b61115b565b81815288602083850101111561123e57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60006020828403121561127257600080fd5b813561127d8161112d565b9392505050565b6000806040838503121561129757600080fd5b82356112a28161112d565b946020939093013593505050565b600080600080608085870312156112c657600080fd5b84356112d18161112d565b935060208501356112e18161112d565b925060408501356112f18161112d565b9396929550929360600135925050565b6000806000806060858703121561131757600080fd5b8435935060208501356113298161112d565b925060408501356001600160401b038082111561134557600080fd5b818701915087601f83011261135957600080fd5b81358181111561136857600080fd5b88602082850101111561137a57600080fd5b95989497505060200194505050565b60008060006060848603121561139e57600080fd5b83356113a98161112d565b925060208401356113b98161112d565b929592945050506040919091013590565b60008083601f8401126113dc57600080fd5b5081356001600160401b038111156113f357600080fd5b6020830191508360208260051b850101111561140e57600080fd5b9250929050565b60008060008060006060868803121561142d57600080fd5b85356114388161112d565b945060208601356001600160401b038082111561145457600080fd5b61146089838a016113ca565b9096509450604088013591508082111561147957600080fd5b50611486888289016113ca565b969995985093965092949392505050565b600080858511156114a757600080fd5b838611156114b457600080fd5b5050820193919092039150565b803560208310156114da57600019602084900360031b1b165b92915050565b60005b838110156114fb5781810151838201526020016114e3565b50506000910152565b60006020828403121561151657600080fd5b81516001600160401b0381111561152c57600080fd5b8201601f8101841361153d57600080fd5b805161154b6112248261118b565b81815285602083850101111561156057600080fd5b6115718260208301602086016114e0565b95945050505050565b600081518084526115928160208601602086016114e0565b601f01601f19169290920160200192915050565b8481526001600160a01b03841660208201526080604082018190526000906115d09083018561157a565b82810360608401526115e2818561157a565b979650505050505050565b6001600160a01b03841681526060602082018190526000906116119083018561157a565b9050826040830152949350505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052600160045260246000fd5b60006001600160401b0382111561167457611674611145565b5060051b60200190565b600082601f83011261168f57600080fd5b8135602061169f6112248361165b565b82815260059290921b840181019181810190868411156116be57600080fd5b8286015b848110156116d957803583529183019183016116c2565b509695505050505050565b600080600080600060a086880312156116fc57600080fd5b8535945060208087013561170f8161112d565b9450604087013561171f8161112d565b935060608701356001600160401b038082111561173b57600080fd5b818901915089601f83011261174f57600080fd5b813561175d6112248261165b565b81815260059190911b8301840190848101908c83111561177c57600080fd5b938501935b828510156117a35784356117948161112d565b82529385019390850190611781565b9650505060808901359250808311156117bb57600080fd5b50506117c98882890161167e565b9150509295509295909350565b634e487b7160e01b600052603260045260246000fd5b604080825283519082018190526000906020906060840190828701845b8281101561182e5781516001600160a01b031684529284019290840190600101611809565b5050508381038285015284518082528583019183019060005b8181101561186357835183529284019291840191600101611847565b5090979650505050505050565b8183526000602080850194508260005b858110156118ae5781356118938161112d565b6001600160a01b031687529582019590820190600101611880565b509495945050505050565b81835260006001600160fb1b038311156118d257600080fd5b8260051b80836020870137939093016020019392505050565b8781526001600160a01b0387811660208301528616604082015260a06060820181905260009061191e9083018688611870565b82810360808401526119318185876118b9565b9a9950505050505050505050565b604081526000611953604083018688611870565b82810360208401526115e28185876118b956fea264697066735822122037326d1e36ae71ea49072e4e66f4163b65bb8c6e8779520b13c02a9c7ac1714364736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` var RootMintableERC721PredicateACLArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"RootMintableERC721PredicateAccessList","sourceName":"contracts/blade/RootMintableERC721PredicateAccessList.sol","abi":[{"inputs":[{"internalType":"string","name":"only","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"AllowListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"BlockListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"depositor","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"depositor","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"ERC721DepositBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"ERC721WithdrawBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"childERC721Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC721Metadata","name":"rootToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC721Metadata","name":"rootToken","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"depositBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC721Metadata","name":"rootToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"depositTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newChildERC721Predicate","type":"address"},{"internalType":"address","name":"newTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"},{"internalType":"bool","name":"newUseAllowList","type":"bool"},{"internalType":"bool","name":"newUseBlockList","type":"bool"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newChildERC721Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC721Metadata","name":"rootToken","type":"address"}],"name":"mapToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseAllowList","type":"bool"}],"name":"setAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseBlockList","type":"bool"}],"name":"setBlockList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sourceTokenToDestinationToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b506121a8806100206000396000f3fe608060405234801561001057600080fd5b50600436106101b05760003560e01c8063947287cf116100ef578063d7c9e3ec11610092578063d7c9e3ec146103c8578063e30c3978146103ef578063eeb4994514610400578063f213159c14610413578063f2fde38b14610426578063f4a120f714610439578063f64512551461044c578063ff6f870c1461047357600080fd5b8063947287cf14610308578063b075061114610311578063b17680651461031a578063c1225a2014610341578063c5ac2b1c14610354578063c5e4683a1461037b578063cf756fdf1461038e578063d41f1771146103a157600080fd5b806351351d531161015757806351351d531461028e57806355b01e4d1461029c57806359a85e08146102aa5780635ea5df79146102bd578063715018a6146102d457806379ba5097146102dc5780638da5cb5b146102e45780639079dfb3146102f557600080fd5b806307b3e252146101b5578063116191b6146101e0578063150b7a02146101f3578063284017f51461022a5780633b878c221461023357806340acd98d1461023c57806347e7ef24146102665780634fdca69d1461027b575b600080fd5b6101c36004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546101c3906001600160a01b031681565b610211610201366004611887565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101d7565b6101c361202081565b6101c361101081565b6101c361024a366004611935565b610100602052600090815260409020546001600160a01b031681565b610279610274366004611959565b610486565b005b60fe546101c3906001600160a01b031681565b6101c36002600160a01b0381565b6101c36004600160991b0181565b6102796102b8366004611995565b610495565b6102c661138881565b6040519081526020016101d7565b6102796105d8565b6102796105ec565b6035546001600160a01b03166101c3565b60ff546101c3906001600160a01b031681565b6102c661520881565b6102c660015481565b6102c67f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61027961034f366004611a1e565b610666565b6102c67faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b610279610389366004611a1e565b6106b5565b61027961039c366004611a39565b6106fc565b6102c67f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6102c67f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101c3565b61027961040e366004611a8a565b6107ce565b610279610421366004611b12565b61099c565b610279610434366004611935565b6109ac565b6101c3610447366004611935565b610a1d565b6102c67f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b610279610481366004611b9e565b610d7f565b610491823383610de7565b5050565b336002600160a01b03146104de5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064015b60405180910390fd5b600254610100900460ff16158080156104fe5750600254600160ff909116105b806105185750303b158015610518575060025460ff166001145b6105345760405162461bcd60e51b81526004016104d590611c20565b6002805460ff191660011790558015610557576002805461ff0019166101001790555b61056388888888610f72565b60cb805461ffff191685151561ff00191617610100851515021790556105888261104c565b80156105ce576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6105e0611065565b6105ea600061104c565b565b60675433906001600160a01b0316811461065a5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104d5565b6106638161104c565b50565b61066e611065565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b6106bd611065565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b600254610100900460ff161580801561071c5750600254600160ff909116105b806107365750303b158015610736575060025460ff166001145b6107525760405162461bcd60e51b81526004016104d590611c20565b6002805460ff191660011790558015610775576002805461ff0019166101001790555b61078185858585610f72565b80156107c7576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b031633146108325760405162461bcd60e51b815260206004820152602160248201527f526f6f744552433732315072656469636174653a204f4e4c595f4741544557416044820152605960f81b60648201526084016104d5565b60fe546001600160a01b038481169116146108a15760405162461bcd60e51b815260206004820152602960248201527f526f6f744552433732315072656469636174653a204f4e4c595f4348494c445f60448201526850524544494341544560b81b60648201526084016104d5565b7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696108d0602060008486611c6e565b6108d991611c98565b036108f8576108f36108ee8260208186611c6e565b6110bf565b610996565b7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed2610927602060008486611c6e565b61093091611c98565b0361093f576108f382826111be565b60405162461bcd60e51b815260206004820152602660248201527f526f6f744552433732315072656469636174653a20494e56414c49445f5349476044820152654e415455524560d01b60648201526084016104d5565b50505050565b6109a7838383610de7565b505050565b6109b4611065565b606780546001600160a01b0383166001600160a01b031990911681179091556109e56035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60006001600160a01b038216610a805760405162461bcd60e51b815260206004820152602260248201527f526f6f744552433732315072656469636174653a20494e56414c49445f544f4b60448201526122a760f11b60648201526084016104d5565b6001600160a01b03828116600090815261010060205260409020541615610af55760405162461bcd60e51b815260206004820152602360248201527f526f6f744552433732315072656469636174653a20414c52454144595f4d415060448201526214115160ea1b60648201526084016104d5565b60fe5460ff546040516bffffffffffffffffffffffff19606086901b1660208201526001600160a01b0392831692600092610ba392911690603401604051602081830303815290604052805190602001208460405160388101919091526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b6001600160a01b038581166000818152610100602052604080822080546001600160a01b031916868616179055815481516306fdde0360e01b815291519596509093169363417d5acb9387937f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad938b9391926306fdde0392600480830193928290030181865afa158015610c3b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c639190810190611cdb565b896001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ca1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cc99190810190611cdb565b604051602001610cdc9493929190611d7d565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610d0e9392600401611dc4565b600060405180830381600087803b158015610d2857600080fd5b505af1158015610d3c573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a39392505050565b828114610dda5760405162461bcd60e51b815260206004820152602360248201527f526f6f744552433732315072656469636174653a20494e56414c49445f4c454e60448201526208ea8960eb1b60648201526084016104d5565b6107c78585858585611300565b610def6114c4565b6000610dfa846114cc565b604051632142170760e11b81529091506001600160a01b038516906342842e0e90610e2d90339030908790600401611df8565b600060405180830381600087803b158015610e4757600080fd5b505af1158015610e5b573d6000803e3d6000fd5b505060005460fe54604080517f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82160208201526001600160a01b038a811682840152336060830152898116608083015260a08083018a90528351808403909101815260c083019384905260015463417d5acb60e01b909452948116965063417d5acb9550610eef94931692919060c401611dc4565b600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b505060408051338152602081018690526001600160a01b03808816945085811693508816917f40e242710be14b7d61d3b93e9d56b40df89cc4dbad8bb88da38c8e0c23809ba7910160405180910390a4610996565b610f7c8482611514565b6001600160a01b03841615801590610f9c57506001600160a01b03831615155b8015610fb057506001600160a01b03821615155b61100c5760405162461bcd60e51b815260206004820152602760248201527f526f6f744552433732315072656469636174653a204241445f494e495449414c60448201526624ad20aa24a7a760c91b60648201526084016104d5565b50600080546001600160a01b039485166001600160a01b03199182161790915560fe80549385169382169390931790925560ff8054919093169116179055565b606780546001600160a01b03191690556106638161159d565b6035546001600160a01b031633146105ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104d5565b60008080806110d085870187611a39565b6001600160a01b03808516600090815261010060205260409020549498509296509094509250168061110457611104611e1c565b604051632142170760e11b81526001600160a01b038616906342842e0e9061113490309087908790600401611df8565b600060405180830381600087803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b5050604080516001600160a01b03888116825260208201879052808816945085811693508916917f8194f168e6e9e449d05a46936e071a710c0f22634eaadeb5b85a86540123931991015b60405180910390a450505050505050565b60008080806111cf85870187611ebb565b6001600160a01b038085166000908152610100602052604090205494995092975090955093501690508061120557611205611e1c565b60005b82518110156112b057856001600160a01b03166342842e0e3086848151811061123357611233611fad565b602002602001015186858151811061124d5761124d611fad565b60200260200101516040518463ffffffff1660e01b815260040161127393929190611df8565b600060405180830381600087803b15801561128d57600080fd5b505af11580156112a1573d6000803e3d6000fd5b50505050806001019050611208565b50836001600160a01b0316816001600160a01b0316866001600160a01b03167f1b7b9713fdef5dfadf92f6d6e998eb1fc4763cee62a194a095d76349f7dce20c86866040516111ad929190611fc3565b6113086114c4565b6000611313866114cc565b905060005b828110156113a557866001600160a01b03166342842e0e333087878681811061134357611343611fad565b905060200201356040518463ffffffff1660e01b815260040161136893929190611df8565b600060405180830381600087803b15801561138257600080fd5b505af1158015611396573d6000803e3d6000fd5b50505050806001019050611318565b5060005460fe546040516001600160a01b039283169263417d5acb9216906113fd907faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d18908b9033908c908c908c908c906020016120c2565b60408051601f19818403018152908290526001546001600160e01b031960e086901b16835261142f9392600401611dc4565b600060405180830381600087803b15801561144957600080fd5b505af115801561145d573d6000803e3d6000fd5b50505050336001600160a01b0316816001600160a01b0316876001600160a01b03167f02c575a943105cda454293b7ac636c87c94ff1bfcfac968aa5423e6b9b312ee9888888886040516114b49493929190612116565b60405180910390a4505050505050565b6105ea6115ef565b6001600160a01b038082166000908152610100602052604090205416806114f9576114f682610a1d565b90505b6001600160a01b03811661150f5761150f611e1c565b919050565b6001600160a01b0382161580159061152b57508015155b6115775760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e00000060448201526064016104d5565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff16156116fa57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b019161138891611651919061213d565b6000604051808303818686fa925050503d806000811461168d576040519150601f19603f3d011682016040523d82523d6000602084013e611692565b606091505b50915091508180156116b757506000818060200190518101906116b59190612159565b115b6116f75760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b60448201526064016104d5565b50505b60cb54610100900460ff16156105ea57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b019161138891611761919061213d565b6000604051808303818686fa925050503d806000811461179d576040519150601f19603f3d011682016040523d82523d6000602084013e6117a2565b606091505b50915091508180156117c85750808060200190518101906117c39190612159565b600114155b6104915760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b60448201526064016104d5565b6001600160a01b038116811461066357600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156118585761185861181a565b604052919050565b60006001600160401b038211156118795761187961181a565b50601f01601f191660200190565b6000806000806080858703121561189d57600080fd5b84356118a881611805565b935060208501356118b881611805565b92506040850135915060608501356001600160401b038111156118da57600080fd5b8501601f810187136118eb57600080fd5b80356118fe6118f982611860565b611830565b81815288602083850101111561191357600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60006020828403121561194757600080fd5b813561195281611805565b9392505050565b6000806040838503121561196c57600080fd5b823561197781611805565b946020939093013593505050565b8035801515811461150f57600080fd5b600080600080600080600060e0888a0312156119b057600080fd5b87356119bb81611805565b965060208801356119cb81611805565b955060408801356119db81611805565b9450606088013593506119f060808901611985565b92506119fe60a08901611985565b915060c0880135611a0e81611805565b8091505092959891949750929550565b600060208284031215611a3057600080fd5b61195282611985565b60008060008060808587031215611a4f57600080fd5b8435611a5a81611805565b93506020850135611a6a81611805565b92506040850135611a7a81611805565b9396929550929360600135925050565b60008060008060608587031215611aa057600080fd5b843593506020850135611ab281611805565b925060408501356001600160401b0380821115611ace57600080fd5b818701915087601f830112611ae257600080fd5b813581811115611af157600080fd5b886020828501011115611b0357600080fd5b95989497505060200194505050565b600080600060608486031215611b2757600080fd5b8335611b3281611805565b92506020840135611b4281611805565b929592945050506040919091013590565b60008083601f840112611b6557600080fd5b5081356001600160401b03811115611b7c57600080fd5b6020830191508360208260051b8501011115611b9757600080fd5b9250929050565b600080600080600060608688031215611bb657600080fd5b8535611bc181611805565b945060208601356001600160401b0380821115611bdd57600080fd5b611be989838a01611b53565b90965094506040880135915080821115611c0257600080fd5b50611c0f88828901611b53565b969995985093965092949392505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008085851115611c7e57600080fd5b83861115611c8b57600080fd5b5050820193919092039150565b80356020831015611cb157600019602084900360031b1b165b92915050565b60005b83811015611cd2578181015183820152602001611cba565b50506000910152565b600060208284031215611ced57600080fd5b81516001600160401b03811115611d0357600080fd5b8201601f81018413611d1457600080fd5b8051611d226118f982611860565b818152856020838501011115611d3757600080fd5b611d48826020830160208601611cb7565b95945050505050565b60008151808452611d69816020860160208601611cb7565b601f01601f19169290920160200192915050565b8481526001600160a01b0384166020820152608060408201819052600090611da790830185611d51565b8281036060840152611db98185611d51565b979650505050505050565b6001600160a01b0384168152606060208201819052600090611de890830185611d51565b9050826040830152949350505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052600160045260246000fd5b60006001600160401b03821115611e4b57611e4b61181a565b5060051b60200190565b600082601f830112611e6657600080fd5b81356020611e766118f983611e32565b82815260059290921b84018101918181019086841115611e9557600080fd5b8286015b84811015611eb05780358352918301918301611e99565b509695505050505050565b600080600080600060a08688031215611ed357600080fd5b85359450602080870135611ee681611805565b94506040870135611ef681611805565b935060608701356001600160401b0380821115611f1257600080fd5b818901915089601f830112611f2657600080fd5b8135611f346118f982611e32565b81815260059190911b8301840190848101908c831115611f5357600080fd5b938501935b82851015611f7a578435611f6b81611805565b82529385019390850190611f58565b965050506080890135925080831115611f9257600080fd5b5050611fa088828901611e55565b9150509295509295909350565b634e487b7160e01b600052603260045260246000fd5b604080825283519082018190526000906020906060840190828701845b828110156120055781516001600160a01b031684529284019290840190600101611fe0565b5050508381038285015284518082528583019183019060005b8181101561203a5783518352928401929184019160010161201e565b5090979650505050505050565b8183526000602080850194508260005b8581101561208557813561206a81611805565b6001600160a01b031687529582019590820190600101612057565b509495945050505050565b81835260006001600160fb1b038311156120a957600080fd5b8260051b80836020870137939093016020019392505050565b8781526001600160a01b0387811660208301528616604082015260a0606082018190526000906120f59083018688612047565b8281036080840152612108818587612090565b9a9950505050505050505050565b60408152600061212a604083018688612047565b8281036020840152611db9818587612090565b6000825161214f818460208701611cb7565b9190910192915050565b60006020828403121561216b57600080fd5b505191905056fea26469706673582212207ff03ceeace70f720b43a68b372ab2407c65cba5cd8b3b5af52e02c5f558d45064736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106101b05760003560e01c8063947287cf116100ef578063d7c9e3ec11610092578063d7c9e3ec146103c8578063e30c3978146103ef578063eeb4994514610400578063f213159c14610413578063f2fde38b14610426578063f4a120f714610439578063f64512551461044c578063ff6f870c1461047357600080fd5b8063947287cf14610308578063b075061114610311578063b17680651461031a578063c1225a2014610341578063c5ac2b1c14610354578063c5e4683a1461037b578063cf756fdf1461038e578063d41f1771146103a157600080fd5b806351351d531161015757806351351d531461028e57806355b01e4d1461029c57806359a85e08146102aa5780635ea5df79146102bd578063715018a6146102d457806379ba5097146102dc5780638da5cb5b146102e45780639079dfb3146102f557600080fd5b806307b3e252146101b5578063116191b6146101e0578063150b7a02146101f3578063284017f51461022a5780633b878c221461023357806340acd98d1461023c57806347e7ef24146102665780634fdca69d1461027b575b600080fd5b6101c36004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546101c3906001600160a01b031681565b610211610201366004611887565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016101d7565b6101c361202081565b6101c361101081565b6101c361024a366004611935565b610100602052600090815260409020546001600160a01b031681565b610279610274366004611959565b610486565b005b60fe546101c3906001600160a01b031681565b6101c36002600160a01b0381565b6101c36004600160991b0181565b6102796102b8366004611995565b610495565b6102c661138881565b6040519081526020016101d7565b6102796105d8565b6102796105ec565b6035546001600160a01b03166101c3565b60ff546101c3906001600160a01b031681565b6102c661520881565b6102c660015481565b6102c67f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61027961034f366004611a1e565b610666565b6102c67faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b610279610389366004611a1e565b6106b5565b61027961039c366004611a39565b6106fc565b6102c67f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6102c67f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101c3565b61027961040e366004611a8a565b6107ce565b610279610421366004611b12565b61099c565b610279610434366004611935565b6109ac565b6101c3610447366004611935565b610a1d565b6102c67f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b610279610481366004611b9e565b610d7f565b610491823383610de7565b5050565b336002600160a01b03146104de5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064015b60405180910390fd5b600254610100900460ff16158080156104fe5750600254600160ff909116105b806105185750303b158015610518575060025460ff166001145b6105345760405162461bcd60e51b81526004016104d590611c20565b6002805460ff191660011790558015610557576002805461ff0019166101001790555b61056388888888610f72565b60cb805461ffff191685151561ff00191617610100851515021790556105888261104c565b80156105ce576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6105e0611065565b6105ea600061104c565b565b60675433906001600160a01b0316811461065a5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016104d5565b6106638161104c565b50565b61066e611065565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b6106bd611065565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b600254610100900460ff161580801561071c5750600254600160ff909116105b806107365750303b158015610736575060025460ff166001145b6107525760405162461bcd60e51b81526004016104d590611c20565b6002805460ff191660011790558015610775576002805461ff0019166101001790555b61078185858585610f72565b80156107c7576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b031633146108325760405162461bcd60e51b815260206004820152602160248201527f526f6f744552433732315072656469636174653a204f4e4c595f4741544557416044820152605960f81b60648201526084016104d5565b60fe546001600160a01b038481169116146108a15760405162461bcd60e51b815260206004820152602960248201527f526f6f744552433732315072656469636174653a204f4e4c595f4348494c445f60448201526850524544494341544560b81b60648201526084016104d5565b7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e9828696108d0602060008486611c6e565b6108d991611c98565b036108f8576108f36108ee8260208186611c6e565b6110bf565b610996565b7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed2610927602060008486611c6e565b61093091611c98565b0361093f576108f382826111be565b60405162461bcd60e51b815260206004820152602660248201527f526f6f744552433732315072656469636174653a20494e56414c49445f5349476044820152654e415455524560d01b60648201526084016104d5565b50505050565b6109a7838383610de7565b505050565b6109b4611065565b606780546001600160a01b0383166001600160a01b031990911681179091556109e56035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60006001600160a01b038216610a805760405162461bcd60e51b815260206004820152602260248201527f526f6f744552433732315072656469636174653a20494e56414c49445f544f4b60448201526122a760f11b60648201526084016104d5565b6001600160a01b03828116600090815261010060205260409020541615610af55760405162461bcd60e51b815260206004820152602360248201527f526f6f744552433732315072656469636174653a20414c52454144595f4d415060448201526214115160ea1b60648201526084016104d5565b60fe5460ff546040516bffffffffffffffffffffffff19606086901b1660208201526001600160a01b0392831692600092610ba392911690603401604051602081830303815290604052805190602001208460405160388101919091526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b6001600160a01b038581166000818152610100602052604080822080546001600160a01b031916868616179055815481516306fdde0360e01b815291519596509093169363417d5acb9387937f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad938b9391926306fdde0392600480830193928290030181865afa158015610c3b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c639190810190611cdb565b896001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610ca1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610cc99190810190611cdb565b604051602001610cdc9493929190611d7d565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610d0e9392600401611dc4565b600060405180830381600087803b158015610d2857600080fd5b505af1158015610d3c573d6000803e3d6000fd5b50506040516001600160a01b038085169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a39392505050565b828114610dda5760405162461bcd60e51b815260206004820152602360248201527f526f6f744552433732315072656469636174653a20494e56414c49445f4c454e60448201526208ea8960eb1b60648201526084016104d5565b6107c78585858585611300565b610def6114c4565b6000610dfa846114cc565b604051632142170760e11b81529091506001600160a01b038516906342842e0e90610e2d90339030908790600401611df8565b600060405180830381600087803b158015610e4757600080fd5b505af1158015610e5b573d6000803e3d6000fd5b505060005460fe54604080517f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82160208201526001600160a01b038a811682840152336060830152898116608083015260a08083018a90528351808403909101815260c083019384905260015463417d5acb60e01b909452948116965063417d5acb9550610eef94931692919060c401611dc4565b600060405180830381600087803b158015610f0957600080fd5b505af1158015610f1d573d6000803e3d6000fd5b505060408051338152602081018690526001600160a01b03808816945085811693508816917f40e242710be14b7d61d3b93e9d56b40df89cc4dbad8bb88da38c8e0c23809ba7910160405180910390a4610996565b610f7c8482611514565b6001600160a01b03841615801590610f9c57506001600160a01b03831615155b8015610fb057506001600160a01b03821615155b61100c5760405162461bcd60e51b815260206004820152602760248201527f526f6f744552433732315072656469636174653a204241445f494e495449414c60448201526624ad20aa24a7a760c91b60648201526084016104d5565b50600080546001600160a01b039485166001600160a01b03199182161790915560fe80549385169382169390931790925560ff8054919093169116179055565b606780546001600160a01b03191690556106638161159d565b6035546001600160a01b031633146105ea5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104d5565b60008080806110d085870187611a39565b6001600160a01b03808516600090815261010060205260409020549498509296509094509250168061110457611104611e1c565b604051632142170760e11b81526001600160a01b038616906342842e0e9061113490309087908790600401611df8565b600060405180830381600087803b15801561114e57600080fd5b505af1158015611162573d6000803e3d6000fd5b5050604080516001600160a01b03888116825260208201879052808816945085811693508916917f8194f168e6e9e449d05a46936e071a710c0f22634eaadeb5b85a86540123931991015b60405180910390a450505050505050565b60008080806111cf85870187611ebb565b6001600160a01b038085166000908152610100602052604090205494995092975090955093501690508061120557611205611e1c565b60005b82518110156112b057856001600160a01b03166342842e0e3086848151811061123357611233611fad565b602002602001015186858151811061124d5761124d611fad565b60200260200101516040518463ffffffff1660e01b815260040161127393929190611df8565b600060405180830381600087803b15801561128d57600080fd5b505af11580156112a1573d6000803e3d6000fd5b50505050806001019050611208565b50836001600160a01b0316816001600160a01b0316866001600160a01b03167f1b7b9713fdef5dfadf92f6d6e998eb1fc4763cee62a194a095d76349f7dce20c86866040516111ad929190611fc3565b6113086114c4565b6000611313866114cc565b905060005b828110156113a557866001600160a01b03166342842e0e333087878681811061134357611343611fad565b905060200201356040518463ffffffff1660e01b815260040161136893929190611df8565b600060405180830381600087803b15801561138257600080fd5b505af1158015611396573d6000803e3d6000fd5b50505050806001019050611318565b5060005460fe546040516001600160a01b039283169263417d5acb9216906113fd907faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d18908b9033908c908c908c908c906020016120c2565b60408051601f19818403018152908290526001546001600160e01b031960e086901b16835261142f9392600401611dc4565b600060405180830381600087803b15801561144957600080fd5b505af115801561145d573d6000803e3d6000fd5b50505050336001600160a01b0316816001600160a01b0316876001600160a01b03167f02c575a943105cda454293b7ac636c87c94ff1bfcfac968aa5423e6b9b312ee9888888886040516114b49493929190612116565b60405180910390a4505050505050565b6105ea6115ef565b6001600160a01b038082166000908152610100602052604090205416806114f9576114f682610a1d565b90505b6001600160a01b03811661150f5761150f611e1c565b919050565b6001600160a01b0382161580159061152b57508015155b6115775760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e00000060448201526064016104d5565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff16156116fa57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b019161138891611651919061213d565b6000604051808303818686fa925050503d806000811461168d576040519150601f19603f3d011682016040523d82523d6000602084013e611692565b606091505b50915091508180156116b757506000818060200190518101906116b59190612159565b115b6116f75760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b60448201526064016104d5565b50505b60cb54610100900460ff16156105ea57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b019161138891611761919061213d565b6000604051808303818686fa925050503d806000811461179d576040519150601f19603f3d011682016040523d82523d6000602084013e6117a2565b606091505b50915091508180156117c85750808060200190518101906117c39190612159565b600114155b6104915760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b60448201526064016104d5565b6001600160a01b038116811461066357600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156118585761185861181a565b604052919050565b60006001600160401b038211156118795761187961181a565b50601f01601f191660200190565b6000806000806080858703121561189d57600080fd5b84356118a881611805565b935060208501356118b881611805565b92506040850135915060608501356001600160401b038111156118da57600080fd5b8501601f810187136118eb57600080fd5b80356118fe6118f982611860565b611830565b81815288602083850101111561191357600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60006020828403121561194757600080fd5b813561195281611805565b9392505050565b6000806040838503121561196c57600080fd5b823561197781611805565b946020939093013593505050565b8035801515811461150f57600080fd5b600080600080600080600060e0888a0312156119b057600080fd5b87356119bb81611805565b965060208801356119cb81611805565b955060408801356119db81611805565b9450606088013593506119f060808901611985565b92506119fe60a08901611985565b915060c0880135611a0e81611805565b8091505092959891949750929550565b600060208284031215611a3057600080fd5b61195282611985565b60008060008060808587031215611a4f57600080fd5b8435611a5a81611805565b93506020850135611a6a81611805565b92506040850135611a7a81611805565b9396929550929360600135925050565b60008060008060608587031215611aa057600080fd5b843593506020850135611ab281611805565b925060408501356001600160401b0380821115611ace57600080fd5b818701915087601f830112611ae257600080fd5b813581811115611af157600080fd5b886020828501011115611b0357600080fd5b95989497505060200194505050565b600080600060608486031215611b2757600080fd5b8335611b3281611805565b92506020840135611b4281611805565b929592945050506040919091013590565b60008083601f840112611b6557600080fd5b5081356001600160401b03811115611b7c57600080fd5b6020830191508360208260051b8501011115611b9757600080fd5b9250929050565b600080600080600060608688031215611bb657600080fd5b8535611bc181611805565b945060208601356001600160401b0380821115611bdd57600080fd5b611be989838a01611b53565b90965094506040880135915080821115611c0257600080fd5b50611c0f88828901611b53565b969995985093965092949392505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008085851115611c7e57600080fd5b83861115611c8b57600080fd5b5050820193919092039150565b80356020831015611cb157600019602084900360031b1b165b92915050565b60005b83811015611cd2578181015183820152602001611cba565b50506000910152565b600060208284031215611ced57600080fd5b81516001600160401b03811115611d0357600080fd5b8201601f81018413611d1457600080fd5b8051611d226118f982611860565b818152856020838501011115611d3757600080fd5b611d48826020830160208601611cb7565b95945050505050565b60008151808452611d69816020860160208601611cb7565b601f01601f19169290920160200192915050565b8481526001600160a01b0384166020820152608060408201819052600090611da790830185611d51565b8281036060840152611db98185611d51565b979650505050505050565b6001600160a01b0384168152606060208201819052600090611de890830185611d51565b9050826040830152949350505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052600160045260246000fd5b60006001600160401b03821115611e4b57611e4b61181a565b5060051b60200190565b600082601f830112611e6657600080fd5b81356020611e766118f983611e32565b82815260059290921b84018101918181019086841115611e9557600080fd5b8286015b84811015611eb05780358352918301918301611e99565b509695505050505050565b600080600080600060a08688031215611ed357600080fd5b85359450602080870135611ee681611805565b94506040870135611ef681611805565b935060608701356001600160401b0380821115611f1257600080fd5b818901915089601f830112611f2657600080fd5b8135611f346118f982611e32565b81815260059190911b8301840190848101908c831115611f5357600080fd5b938501935b82851015611f7a578435611f6b81611805565b82529385019390850190611f58565b965050506080890135925080831115611f9257600080fd5b5050611fa088828901611e55565b9150509295509295909350565b634e487b7160e01b600052603260045260246000fd5b604080825283519082018190526000906020906060840190828701845b828110156120055781516001600160a01b031684529284019290840190600101611fe0565b5050508381038285015284518082528583019183019060005b8181101561203a5783518352928401929184019160010161201e565b5090979650505050505050565b8183526000602080850194508260005b8581101561208557813561206a81611805565b6001600160a01b031687529582019590820190600101612057565b509495945050505050565b81835260006001600160fb1b038311156120a957600080fd5b8260051b80836020870137939093016020019392505050565b8781526001600160a01b0387811660208301528616604082015260a0606082018190526000906120f59083018688612047565b8281036080840152612108818587612090565b9a9950505050505050505050565b60408152600061212a604083018688612047565b8281036020840152611db9818587612090565b6000825161214f818460208701611cb7565b9190910192915050565b60006020828403121561216b57600080fd5b505191905056fea26469706673582212207ff03ceeace70f720b43a68b372ab2407c65cba5cd8b3b5af52e02c5f558d45064736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` var ChildERC1155Artifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC1155","sourceName":"contracts/blade/ChildERC1155.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"burnBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"rootToken_","type":"address"},{"internalType":"string","name":"uri_","type":"string"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"}],"name":"invalidateNext","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"mintBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rootToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50612b8b806100206000396000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c806357128683116100a2578063e619870511610071578063e619870514610279578063e985e9c51461028b578063f242432a146102c7578063f399e22e146102da578063f5298aca146102ed57600080fd5b8063571286831461022d5780636b20c454146102405780639b77ef1114610253578063a22cb4651461026657600080fd5b8063156e29f6116100e9578063156e29f6146101965780631f2d0065146101a95780632d0335ab146101cf5780632eb2c2d6146101f85780634e1273f41461020d57600080fd5b8062fdd58e1461011a57806301ffc9a7146101405780630c53c51c146101635780630e89341c14610183575b600080fd5b61012d610128366004611cd5565b610300565b6040519081526020015b60405180910390f35b61015361014e366004611d15565b61039b565b6040519015158152602001610137565b610176610171366004611d7a565b6103eb565b6040516101379190611e49565b610176610191366004611e5c565b6106c9565b6101536101a4366004611e75565b61075d565b610103546001600160a01b03165b6040516001600160a01b039091168152602001610137565b61012d6101dd366004611ea8565b6001600160a01b031660009081526038602052604090205490565b61020b61020636600461200c565b6107b0565b005b61022061021b3660046120b5565b61080e565b60405161013791906121ba565b61015361023b366004612211565b610937565b61015361024e3660046122aa565b610a53565b61020b610261366004611e5c565b610afb565b61020b61027436600461232a565b610b22565b610102546001600160a01b03166101b7565b610153610299366004612366565b6001600160a01b03918216600090815260d16020908152604080832093909416825291909152205460ff1690565b61020b6102d5366004612399565b610b38565b61020b6102e83660046123fd565b610b8f565b6101536102fb366004611e75565b610da5565b60006001600160a01b0383166103705760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b50600081815260d0602090815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806103cc57506001600160e01b031982166303a24d0760e21b145b8061039557506301ffc9a760e01b6001600160e01b0319831614610395565b6060600061042e87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610dde92505050565b90506001600160e01b03196000358116908216036104b45760405162461bcd60e51b815260206004820152603d60248201527f66756e6374696f6e5369676e61747572652063616e206e6f74206265206f662060448201527f657865637574654d6574615472616e73616374696f6e206d6574686f640000006064820152608401610367565b604080516060810182526001600160a01b038a16600081815260386020908152848220548452808401929092528351601f8b0183900483028101830185528a815290938301918b908b9081908401838280828437600092019190915250505091525090506105258982888888610df9565b61057b5760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b6064820152608401610367565b603860008a6001600160a01b03166001600160a01b031681526020019081526020016000206000815460010191905081905550600080306001600160a01b03168a8a8d6040516020016105d09392919061244f565b60408051601f19818403018152908290526105ea91612475565b6000604051808303816000865af19150503d8060008114610627576040519150601f19603f3d011682016040523d82523d6000602084013e61062c565b606091505b50915091508161067e5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610367565b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8b338c8c6040516106b39493929190612491565b60405180910390a19a9950505050505050505050565b606060d280546106d8906124dd565b80601f0160208091040260200160405190810160405280929190818152602001828054610704906124dd565b80156107515780601f1061072657610100808354040283529160200191610751565b820191906000526020600020905b81548152906001019060200180831161073457829003601f168201915b50505050509050919050565b610102546000906001600160a01b0316331461078b5760405162461bcd60e51b815260040161036790612517565b6107a684848460405180602001604052806000815250610ed5565b5060019392505050565b6107b8610fe4565b6001600160a01b0316856001600160a01b031614806107de57506107de85610299610fe4565b6107fa5760405162461bcd60e51b81526004016103679061255c565b6108078585858585610ff3565b5050505050565b606081518351146108735760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610367565b600083516001600160401b0381111561088e5761088e611ec3565b6040519080825280602002602001820160405280156108b7578160200160208202803683370190505b50905060005b845181101561092f576109028582815181106108db576108db6125aa565b60200260200101518583815181106108f5576108f56125aa565b6020026020010151610300565b828281518110610914576109146125aa565b6020908102919091010152610928816125d6565b90506108bd565b509392505050565b610102546000906001600160a01b031633146109655760405162461bcd60e51b815260040161036790612517565b85848114801561097457508083145b6109c05760405162461bcd60e51b815260206004820181905260248201527f4368696c64455243313135353a206172726179206c656e206d69736d617463686044820152606401610367565b60005b81811015610a4457610a3c8989838181106109e0576109e06125aa565b90506020020160208101906109f59190611ea8565b888884818110610a0757610a076125aa565b90506020020135878785818110610a2057610a206125aa565b9050602002013560405180602001604052806000815250610ed5565b6001016109c3565b50600198975050505050505050565b610102546000906001600160a01b03163314610a815760405162461bcd60e51b815260040161036790612517565b610aef8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525061119d92505050565b50600195945050505050565b3360009081526038602052604081208054839290610b1a9084906125ef565b909155505050565b610b34610b2d610fe4565b8383611334565b5050565b610b40610fe4565b6001600160a01b0316856001600160a01b03161480610b665750610b6685610299610fe4565b610b825760405162461bcd60e51b81526004016103679061255c565b6108078585858585611414565b606b54610100900460ff1615808015610baf5750606b54600160ff909116105b80610bc95750303b158015610bc95750606b5460ff166001145b610c2c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610367565b606b805460ff191660011790558015610c4f57606b805461ff0019166101001790555b6001600160a01b038416610ca55760405162461bcd60e51b815260206004820181905260248201527f4368696c64455243313135353a204241445f494e495449414c495a4154494f4e6044820152606401610367565b61010380546001600160a01b0386166001600160a01b031991821617909155610102805490911633179055604080516020601f8501819004810282018101909252838152610d0d91859085908190840183828082843760009201919091525061153b92505050565b610d59610d22856001600160a01b031661156e565b604051602001610d329190612602565b60408051601f1981840301815282820190915260018252603160f81b602083015290611584565b8015610d9f57606b805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610102546000906001600160a01b03163314610dd35760405162461bcd60e51b815260040161036790612517565b6107a68484846115f0565b60008151600003610df157506000919050565b506020015190565b6000806001610e0f610e0a886116f0565b61176d565b6040805160008152602081018083529290925260ff861690820152606081018790526080810186905260a0016020604051602081039080840390855afa158015610e5d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610eb45760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606401610367565b866001600160a01b0316816001600160a01b03161491505095945050505050565b6001600160a01b038416610f355760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610367565b6000610f3f610fe4565b90506000610f4c8561179a565b90506000610f598561179a565b9050600086815260d0602090815260408083206001600160a01b038b16845290915281208054879290610f8d9084906125ef565b909155505060408051878152602081018790526001600160a01b03808a169260009291871691600080516020612af3833981519152910160405180910390a4610fdb836000898989896117e5565b50505050505050565b6000610fee611940565b905090565b81518351146110145760405162461bcd60e51b815260040161036790612637565b6001600160a01b03841661103a5760405162461bcd60e51b81526004016103679061267f565b6000611044610fe4565b905060005b845181101561112f576000858281518110611066576110666125aa565b602002602001015190506000858381518110611084576110846125aa565b602090810291909101810151600084815260d0835260408082206001600160a01b038e1683529093529190912054909150818110156110d55760405162461bcd60e51b8152600401610367906126c4565b600083815260d0602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906111149084906125ef565b9250508190555050505080611128906125d6565b9050611049565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161117f92919061270e565b60405180910390a461119581878787878761199c565b505050505050565b6001600160a01b0383166111c35760405162461bcd60e51b81526004016103679061273c565b80518251146111e45760405162461bcd60e51b815260040161036790612637565b60006111ee610fe4565b604080516020810190915260009052905060005b83518110156112c757600084828151811061121f5761121f6125aa565b60200260200101519050600084838151811061123d5761123d6125aa565b602090810291909101810151600084815260d0835260408082206001600160a01b038c16835290935291909120549091508181101561128e5760405162461bcd60e51b81526004016103679061277f565b600092835260d0602090815260408085206001600160a01b038b16865290915290922091039055806112bf816125d6565b915050611202565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161131892919061270e565b60405180910390a4604080516020810190915260009052610d9f565b816001600160a01b0316836001600160a01b0316036113a75760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610367565b6001600160a01b03838116600081815260d16020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b03841661143a5760405162461bcd60e51b81526004016103679061267f565b6000611444610fe4565b905060006114518561179a565b9050600061145e8561179a565b9050600086815260d0602090815260408083206001600160a01b038c168452909152902054858110156114a35760405162461bcd60e51b8152600401610367906126c4565b600087815260d0602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906114e29084906125ef565b909155505060408051888152602081018890526001600160a01b03808b16928c82169291881691600080516020612af3833981519152910160405180910390a4611530848a8a8a8a8a6117e5565b505050505050505050565b606b54610100900460ff166115625760405162461bcd60e51b8152600401610367906127c3565b61156b81611a57565b50565b60606103956001600160a01b0383166014611a87565b815160208084019190912082519183019190912060038290556004819055466001557f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6115d2818484611c29565b600055600280546001600160a01b0319163017905560055550505050565b6001600160a01b0383166116165760405162461bcd60e51b81526004016103679061273c565b6000611620610fe4565b9050600061162d8461179a565b9050600061163a8461179a565b604080516020808201835260009182905288825260d081528282206001600160a01b038b16835290522054909150848110156116885760405162461bcd60e51b81526004016103679061277f565b600086815260d0602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a9052909290881691600080516020612af3833981519152910160405180910390a4604080516020810190915260009052610fdb565b6000604051806080016040528060438152602001612b136043913980516020918201208351848301516040808701518051908601209051611750950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b600061039561177a611c72565b8360405161190160f01b8152600281019290925260228201526042902090565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106117d4576117d46125aa565b602090810291909101015292915050565b6001600160a01b0384163b156111955760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611829908990899088908890889060040161280e565b6020604051808303816000875af1925050508015611864575060408051601f3d908101601f1916820190925261186191810190612853565b60015b61191057611870612870565b806308c379a0036118a9575061188461288b565b8061188f57506118ab565b8060405162461bcd60e51b81526004016103679190611e49565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610367565b6001600160e01b0319811663f23a6e6160e01b14610fdb5760405162461bcd60e51b815260040161036790612914565b600030330361199657600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506119999050565b50335b90565b6001600160a01b0384163b156111955760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906119e0908990899088908890889060040161295c565b6020604051808303816000875af1925050508015611a1b575060408051601f3d908101601f19168201909252611a1891810190612853565b60015b611a2757611870612870565b6001600160e01b0319811663bc197c8160e01b14610fdb5760405162461bcd60e51b815260040161036790612914565b606b54610100900460ff16611a7e5760405162461bcd60e51b8152600401610367906127c3565b61156b81611cad565b60606000611a968360026129ba565b611aa19060026125ef565b6001600160401b03811115611ab857611ab8611ec3565b6040519080825280601f01601f191660200182016040528015611ae2576020820181803683370190505b509050600360fc1b81600081518110611afd57611afd6125aa565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611b2c57611b2c6125aa565b60200101906001600160f81b031916908160001a9053506000611b508460026129ba565b611b5b9060016125ef565b90505b6001811115611bd3576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611b8f57611b8f6125aa565b1a60f81b828281518110611ba557611ba56125aa565b60200101906001600160f81b031916908160001a90535060049490941c93611bcc816129d1565b9050611b5e565b508315611c225760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610367565b9392505050565b6040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6002546000906001600160a01b031630148015611c90575060015446145b15611c9c575060005490565b610fee600554600354600454611c29565b60d2610b348282612a33565b80356001600160a01b0381168114611cd057600080fd5b919050565b60008060408385031215611ce857600080fd5b611cf183611cb9565b946020939093013593505050565b6001600160e01b03198116811461156b57600080fd5b600060208284031215611d2757600080fd5b8135611c2281611cff565b60008083601f840112611d4457600080fd5b5081356001600160401b03811115611d5b57600080fd5b602083019150836020828501011115611d7357600080fd5b9250929050565b60008060008060008060a08789031215611d9357600080fd5b611d9c87611cb9565b955060208701356001600160401b03811115611db757600080fd5b611dc389828a01611d32565b9096509450506040870135925060608701359150608087013560ff81168114611deb57600080fd5b809150509295509295509295565b60005b83811015611e14578181015183820152602001611dfc565b50506000910152565b60008151808452611e35816020860160208601611df9565b601f01601f19169290920160200192915050565b602081526000611c226020830184611e1d565b600060208284031215611e6e57600080fd5b5035919050565b600080600060608486031215611e8a57600080fd5b611e9384611cb9565b95602085013595506040909401359392505050565b600060208284031215611eba57600080fd5b611c2282611cb9565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715611efe57611efe611ec3565b6040525050565b60006001600160401b03821115611f1e57611f1e611ec3565b5060051b60200190565b600082601f830112611f3957600080fd5b81356020611f4682611f05565b604051611f538282611ed9565b83815260059390931b8501820192828101915086841115611f7357600080fd5b8286015b84811015611f8e5780358352918301918301611f77565b509695505050505050565b600082601f830112611faa57600080fd5b81356001600160401b03811115611fc357611fc3611ec3565b604051611fda601f8301601f191660200182611ed9565b818152846020838601011115611fef57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561202457600080fd5b61202d86611cb9565b945061203b60208701611cb9565b935060408601356001600160401b038082111561205757600080fd5b61206389838a01611f28565b9450606088013591508082111561207957600080fd5b61208589838a01611f28565b9350608088013591508082111561209b57600080fd5b506120a888828901611f99565b9150509295509295909350565b600080604083850312156120c857600080fd5b82356001600160401b03808211156120df57600080fd5b818501915085601f8301126120f357600080fd5b8135602061210082611f05565b60405161210d8282611ed9565b83815260059390931b850182019282810191508984111561212d57600080fd5b948201945b838610156121525761214386611cb9565b82529482019490820190612132565b9650508601359250508082111561216857600080fd5b5061217585828601611f28565b9150509250929050565b600081518084526020808501945080840160005b838110156121af57815187529582019590820190600101612193565b509495945050505050565b602081526000611c22602083018461217f565b60008083601f8401126121df57600080fd5b5081356001600160401b038111156121f657600080fd5b6020830191508360208260051b8501011115611d7357600080fd5b6000806000806000806060878903121561222a57600080fd5b86356001600160401b038082111561224157600080fd5b61224d8a838b016121cd565b9098509650602089013591508082111561226657600080fd5b6122728a838b016121cd565b9096509450604089013591508082111561228b57600080fd5b5061229889828a016121cd565b979a9699509497509295939492505050565b6000806000806000606086880312156122c257600080fd5b6122cb86611cb9565b945060208601356001600160401b03808211156122e757600080fd5b6122f389838a016121cd565b9096509450604088013591508082111561230c57600080fd5b50612319888289016121cd565b969995985093965092949392505050565b6000806040838503121561233d57600080fd5b61234683611cb9565b91506020830135801515811461235b57600080fd5b809150509250929050565b6000806040838503121561237957600080fd5b61238283611cb9565b915061239060208401611cb9565b90509250929050565b600080600080600060a086880312156123b157600080fd5b6123ba86611cb9565b94506123c860208701611cb9565b9350604086013592506060860135915060808601356001600160401b038111156123f157600080fd5b6120a888828901611f99565b60008060006040848603121561241257600080fd5b61241b84611cb9565b925060208401356001600160401b0381111561243657600080fd5b61244286828701611d32565b9497909650939450505050565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60008251612487818460208701611df9565b9190910192915050565b6001600160a01b0385811682528416602082015260606040820181905281018290526000828460808401376000608084840101526080601f19601f850116830101905095945050505050565b600181811c908216806124f157607f821691505b60208210810361251157634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526025908201527f4368696c64455243313135353a204f6e6c79207072656469636174652063616e6040820152640818d85b1b60da1b606082015260800190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016125e8576125e86125c0565b5060010190565b80820180821115610395576103956125c0565b6c4368696c64455243313135352d60981b81526000825161262a81600d850160208701611df9565b91909101600d0192915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000612721604083018561217f565b8281036020840152612733818561217f565b95945050505050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061284890830184611e1d565b979650505050505050565b60006020828403121561286557600080fd5b8151611c2281611cff565b600060033d11156119995760046000803e5060005160e01c90565b600060443d10156128995790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156128c857505050505090565b82850191508151818111156128e05750505050505090565b843d87010160208285010111156128fa5750505050505090565b61290960208286010187611ed9565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b0386811682528516602082015260a0604082018190526000906129889083018661217f565b828103606084015261299a818661217f565b905082810360808401526129ae8185611e1d565b98975050505050505050565b8082028115828204841417610395576103956125c0565b6000816129e0576129e06125c0565b506000190190565b601f821115612a2e57600081815260208120601f850160051c81016020861015612a0f5750805b601f850160051c820191505b8181101561119557828155600101612a1b565b505050565b81516001600160401b03811115612a4c57612a4c611ec3565b612a6081612a5a84546124dd565b846129e8565b602080601f831160018114612a955760008415612a7d5750858301515b600019600386901b1c1916600185901b178555611195565b600085815260208120601f198616915b82811015612ac457888601518255948401946001909101908401612aa5565b5085821015612ae25787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fec3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f624d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a26469706673582212202046d92ec7be30a191562bffbef1457bea854798a6fb2c92ea4ce3b6343c32a064736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c806357128683116100a2578063e619870511610071578063e619870514610279578063e985e9c51461028b578063f242432a146102c7578063f399e22e146102da578063f5298aca146102ed57600080fd5b8063571286831461022d5780636b20c454146102405780639b77ef1114610253578063a22cb4651461026657600080fd5b8063156e29f6116100e9578063156e29f6146101965780631f2d0065146101a95780632d0335ab146101cf5780632eb2c2d6146101f85780634e1273f41461020d57600080fd5b8062fdd58e1461011a57806301ffc9a7146101405780630c53c51c146101635780630e89341c14610183575b600080fd5b61012d610128366004611cd5565b610300565b6040519081526020015b60405180910390f35b61015361014e366004611d15565b61039b565b6040519015158152602001610137565b610176610171366004611d7a565b6103eb565b6040516101379190611e49565b610176610191366004611e5c565b6106c9565b6101536101a4366004611e75565b61075d565b610103546001600160a01b03165b6040516001600160a01b039091168152602001610137565b61012d6101dd366004611ea8565b6001600160a01b031660009081526038602052604090205490565b61020b61020636600461200c565b6107b0565b005b61022061021b3660046120b5565b61080e565b60405161013791906121ba565b61015361023b366004612211565b610937565b61015361024e3660046122aa565b610a53565b61020b610261366004611e5c565b610afb565b61020b61027436600461232a565b610b22565b610102546001600160a01b03166101b7565b610153610299366004612366565b6001600160a01b03918216600090815260d16020908152604080832093909416825291909152205460ff1690565b61020b6102d5366004612399565b610b38565b61020b6102e83660046123fd565b610b8f565b6101536102fb366004611e75565b610da5565b60006001600160a01b0383166103705760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b50600081815260d0602090815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806103cc57506001600160e01b031982166303a24d0760e21b145b8061039557506301ffc9a760e01b6001600160e01b0319831614610395565b6060600061042e87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610dde92505050565b90506001600160e01b03196000358116908216036104b45760405162461bcd60e51b815260206004820152603d60248201527f66756e6374696f6e5369676e61747572652063616e206e6f74206265206f662060448201527f657865637574654d6574615472616e73616374696f6e206d6574686f640000006064820152608401610367565b604080516060810182526001600160a01b038a16600081815260386020908152848220548452808401929092528351601f8b0183900483028101830185528a815290938301918b908b9081908401838280828437600092019190915250505091525090506105258982888888610df9565b61057b5760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b6064820152608401610367565b603860008a6001600160a01b03166001600160a01b031681526020019081526020016000206000815460010191905081905550600080306001600160a01b03168a8a8d6040516020016105d09392919061244f565b60408051601f19818403018152908290526105ea91612475565b6000604051808303816000865af19150503d8060008114610627576040519150601f19603f3d011682016040523d82523d6000602084013e61062c565b606091505b50915091508161067e5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610367565b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8b338c8c6040516106b39493929190612491565b60405180910390a19a9950505050505050505050565b606060d280546106d8906124dd565b80601f0160208091040260200160405190810160405280929190818152602001828054610704906124dd565b80156107515780601f1061072657610100808354040283529160200191610751565b820191906000526020600020905b81548152906001019060200180831161073457829003601f168201915b50505050509050919050565b610102546000906001600160a01b0316331461078b5760405162461bcd60e51b815260040161036790612517565b6107a684848460405180602001604052806000815250610ed5565b5060019392505050565b6107b8610fe4565b6001600160a01b0316856001600160a01b031614806107de57506107de85610299610fe4565b6107fa5760405162461bcd60e51b81526004016103679061255c565b6108078585858585610ff3565b5050505050565b606081518351146108735760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610367565b600083516001600160401b0381111561088e5761088e611ec3565b6040519080825280602002602001820160405280156108b7578160200160208202803683370190505b50905060005b845181101561092f576109028582815181106108db576108db6125aa565b60200260200101518583815181106108f5576108f56125aa565b6020026020010151610300565b828281518110610914576109146125aa565b6020908102919091010152610928816125d6565b90506108bd565b509392505050565b610102546000906001600160a01b031633146109655760405162461bcd60e51b815260040161036790612517565b85848114801561097457508083145b6109c05760405162461bcd60e51b815260206004820181905260248201527f4368696c64455243313135353a206172726179206c656e206d69736d617463686044820152606401610367565b60005b81811015610a4457610a3c8989838181106109e0576109e06125aa565b90506020020160208101906109f59190611ea8565b888884818110610a0757610a076125aa565b90506020020135878785818110610a2057610a206125aa565b9050602002013560405180602001604052806000815250610ed5565b6001016109c3565b50600198975050505050505050565b610102546000906001600160a01b03163314610a815760405162461bcd60e51b815260040161036790612517565b610aef8686868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525061119d92505050565b50600195945050505050565b3360009081526038602052604081208054839290610b1a9084906125ef565b909155505050565b610b34610b2d610fe4565b8383611334565b5050565b610b40610fe4565b6001600160a01b0316856001600160a01b03161480610b665750610b6685610299610fe4565b610b825760405162461bcd60e51b81526004016103679061255c565b6108078585858585611414565b606b54610100900460ff1615808015610baf5750606b54600160ff909116105b80610bc95750303b158015610bc95750606b5460ff166001145b610c2c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610367565b606b805460ff191660011790558015610c4f57606b805461ff0019166101001790555b6001600160a01b038416610ca55760405162461bcd60e51b815260206004820181905260248201527f4368696c64455243313135353a204241445f494e495449414c495a4154494f4e6044820152606401610367565b61010380546001600160a01b0386166001600160a01b031991821617909155610102805490911633179055604080516020601f8501819004810282018101909252838152610d0d91859085908190840183828082843760009201919091525061153b92505050565b610d59610d22856001600160a01b031661156e565b604051602001610d329190612602565b60408051601f1981840301815282820190915260018252603160f81b602083015290611584565b8015610d9f57606b805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610102546000906001600160a01b03163314610dd35760405162461bcd60e51b815260040161036790612517565b6107a68484846115f0565b60008151600003610df157506000919050565b506020015190565b6000806001610e0f610e0a886116f0565b61176d565b6040805160008152602081018083529290925260ff861690820152606081018790526080810186905260a0016020604051602081039080840390855afa158015610e5d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610eb45760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b6044820152606401610367565b866001600160a01b0316816001600160a01b03161491505095945050505050565b6001600160a01b038416610f355760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610367565b6000610f3f610fe4565b90506000610f4c8561179a565b90506000610f598561179a565b9050600086815260d0602090815260408083206001600160a01b038b16845290915281208054879290610f8d9084906125ef565b909155505060408051878152602081018790526001600160a01b03808a169260009291871691600080516020612af3833981519152910160405180910390a4610fdb836000898989896117e5565b50505050505050565b6000610fee611940565b905090565b81518351146110145760405162461bcd60e51b815260040161036790612637565b6001600160a01b03841661103a5760405162461bcd60e51b81526004016103679061267f565b6000611044610fe4565b905060005b845181101561112f576000858281518110611066576110666125aa565b602002602001015190506000858381518110611084576110846125aa565b602090810291909101810151600084815260d0835260408082206001600160a01b038e1683529093529190912054909150818110156110d55760405162461bcd60e51b8152600401610367906126c4565b600083815260d0602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906111149084906125ef565b9250508190555050505080611128906125d6565b9050611049565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161117f92919061270e565b60405180910390a461119581878787878761199c565b505050505050565b6001600160a01b0383166111c35760405162461bcd60e51b81526004016103679061273c565b80518251146111e45760405162461bcd60e51b815260040161036790612637565b60006111ee610fe4565b604080516020810190915260009052905060005b83518110156112c757600084828151811061121f5761121f6125aa565b60200260200101519050600084838151811061123d5761123d6125aa565b602090810291909101810151600084815260d0835260408082206001600160a01b038c16835290935291909120549091508181101561128e5760405162461bcd60e51b81526004016103679061277f565b600092835260d0602090815260408085206001600160a01b038b16865290915290922091039055806112bf816125d6565b915050611202565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161131892919061270e565b60405180910390a4604080516020810190915260009052610d9f565b816001600160a01b0316836001600160a01b0316036113a75760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610367565b6001600160a01b03838116600081815260d16020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b03841661143a5760405162461bcd60e51b81526004016103679061267f565b6000611444610fe4565b905060006114518561179a565b9050600061145e8561179a565b9050600086815260d0602090815260408083206001600160a01b038c168452909152902054858110156114a35760405162461bcd60e51b8152600401610367906126c4565b600087815260d0602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906114e29084906125ef565b909155505060408051888152602081018890526001600160a01b03808b16928c82169291881691600080516020612af3833981519152910160405180910390a4611530848a8a8a8a8a6117e5565b505050505050505050565b606b54610100900460ff166115625760405162461bcd60e51b8152600401610367906127c3565b61156b81611a57565b50565b60606103956001600160a01b0383166014611a87565b815160208084019190912082519183019190912060038290556004819055466001557f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6115d2818484611c29565b600055600280546001600160a01b0319163017905560055550505050565b6001600160a01b0383166116165760405162461bcd60e51b81526004016103679061273c565b6000611620610fe4565b9050600061162d8461179a565b9050600061163a8461179a565b604080516020808201835260009182905288825260d081528282206001600160a01b038b16835290522054909150848110156116885760405162461bcd60e51b81526004016103679061277f565b600086815260d0602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a9052909290881691600080516020612af3833981519152910160405180910390a4604080516020810190915260009052610fdb565b6000604051806080016040528060438152602001612b136043913980516020918201208351848301516040808701518051908601209051611750950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b600061039561177a611c72565b8360405161190160f01b8152600281019290925260228201526042902090565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106117d4576117d46125aa565b602090810291909101015292915050565b6001600160a01b0384163b156111955760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611829908990899088908890889060040161280e565b6020604051808303816000875af1925050508015611864575060408051601f3d908101601f1916820190925261186191810190612853565b60015b61191057611870612870565b806308c379a0036118a9575061188461288b565b8061188f57506118ab565b8060405162461bcd60e51b81526004016103679190611e49565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610367565b6001600160e01b0319811663f23a6e6160e01b14610fdb5760405162461bcd60e51b815260040161036790612914565b600030330361199657600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506119999050565b50335b90565b6001600160a01b0384163b156111955760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906119e0908990899088908890889060040161295c565b6020604051808303816000875af1925050508015611a1b575060408051601f3d908101601f19168201909252611a1891810190612853565b60015b611a2757611870612870565b6001600160e01b0319811663bc197c8160e01b14610fdb5760405162461bcd60e51b815260040161036790612914565b606b54610100900460ff16611a7e5760405162461bcd60e51b8152600401610367906127c3565b61156b81611cad565b60606000611a968360026129ba565b611aa19060026125ef565b6001600160401b03811115611ab857611ab8611ec3565b6040519080825280601f01601f191660200182016040528015611ae2576020820181803683370190505b509050600360fc1b81600081518110611afd57611afd6125aa565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611b2c57611b2c6125aa565b60200101906001600160f81b031916908160001a9053506000611b508460026129ba565b611b5b9060016125ef565b90505b6001811115611bd3576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611b8f57611b8f6125aa565b1a60f81b828281518110611ba557611ba56125aa565b60200101906001600160f81b031916908160001a90535060049490941c93611bcc816129d1565b9050611b5e565b508315611c225760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610367565b9392505050565b6040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6002546000906001600160a01b031630148015611c90575060015446145b15611c9c575060005490565b610fee600554600354600454611c29565b60d2610b348282612a33565b80356001600160a01b0381168114611cd057600080fd5b919050565b60008060408385031215611ce857600080fd5b611cf183611cb9565b946020939093013593505050565b6001600160e01b03198116811461156b57600080fd5b600060208284031215611d2757600080fd5b8135611c2281611cff565b60008083601f840112611d4457600080fd5b5081356001600160401b03811115611d5b57600080fd5b602083019150836020828501011115611d7357600080fd5b9250929050565b60008060008060008060a08789031215611d9357600080fd5b611d9c87611cb9565b955060208701356001600160401b03811115611db757600080fd5b611dc389828a01611d32565b9096509450506040870135925060608701359150608087013560ff81168114611deb57600080fd5b809150509295509295509295565b60005b83811015611e14578181015183820152602001611dfc565b50506000910152565b60008151808452611e35816020860160208601611df9565b601f01601f19169290920160200192915050565b602081526000611c226020830184611e1d565b600060208284031215611e6e57600080fd5b5035919050565b600080600060608486031215611e8a57600080fd5b611e9384611cb9565b95602085013595506040909401359392505050565b600060208284031215611eba57600080fd5b611c2282611cb9565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715611efe57611efe611ec3565b6040525050565b60006001600160401b03821115611f1e57611f1e611ec3565b5060051b60200190565b600082601f830112611f3957600080fd5b81356020611f4682611f05565b604051611f538282611ed9565b83815260059390931b8501820192828101915086841115611f7357600080fd5b8286015b84811015611f8e5780358352918301918301611f77565b509695505050505050565b600082601f830112611faa57600080fd5b81356001600160401b03811115611fc357611fc3611ec3565b604051611fda601f8301601f191660200182611ed9565b818152846020838601011115611fef57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561202457600080fd5b61202d86611cb9565b945061203b60208701611cb9565b935060408601356001600160401b038082111561205757600080fd5b61206389838a01611f28565b9450606088013591508082111561207957600080fd5b61208589838a01611f28565b9350608088013591508082111561209b57600080fd5b506120a888828901611f99565b9150509295509295909350565b600080604083850312156120c857600080fd5b82356001600160401b03808211156120df57600080fd5b818501915085601f8301126120f357600080fd5b8135602061210082611f05565b60405161210d8282611ed9565b83815260059390931b850182019282810191508984111561212d57600080fd5b948201945b838610156121525761214386611cb9565b82529482019490820190612132565b9650508601359250508082111561216857600080fd5b5061217585828601611f28565b9150509250929050565b600081518084526020808501945080840160005b838110156121af57815187529582019590820190600101612193565b509495945050505050565b602081526000611c22602083018461217f565b60008083601f8401126121df57600080fd5b5081356001600160401b038111156121f657600080fd5b6020830191508360208260051b8501011115611d7357600080fd5b6000806000806000806060878903121561222a57600080fd5b86356001600160401b038082111561224157600080fd5b61224d8a838b016121cd565b9098509650602089013591508082111561226657600080fd5b6122728a838b016121cd565b9096509450604089013591508082111561228b57600080fd5b5061229889828a016121cd565b979a9699509497509295939492505050565b6000806000806000606086880312156122c257600080fd5b6122cb86611cb9565b945060208601356001600160401b03808211156122e757600080fd5b6122f389838a016121cd565b9096509450604088013591508082111561230c57600080fd5b50612319888289016121cd565b969995985093965092949392505050565b6000806040838503121561233d57600080fd5b61234683611cb9565b91506020830135801515811461235b57600080fd5b809150509250929050565b6000806040838503121561237957600080fd5b61238283611cb9565b915061239060208401611cb9565b90509250929050565b600080600080600060a086880312156123b157600080fd5b6123ba86611cb9565b94506123c860208701611cb9565b9350604086013592506060860135915060808601356001600160401b038111156123f157600080fd5b6120a888828901611f99565b60008060006040848603121561241257600080fd5b61241b84611cb9565b925060208401356001600160401b0381111561243657600080fd5b61244286828701611d32565b9497909650939450505050565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b60008251612487818460208701611df9565b9190910192915050565b6001600160a01b0385811682528416602082015260606040820181905281018290526000828460808401376000608084840101526080601f19601f850116830101905095945050505050565b600181811c908216806124f157607f821691505b60208210810361251157634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526025908201527f4368696c64455243313135353a204f6e6c79207072656469636174652063616e6040820152640818d85b1b60da1b606082015260800190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016125e8576125e86125c0565b5060010190565b80820180821115610395576103956125c0565b6c4368696c64455243313135352d60981b81526000825161262a81600d850160208701611df9565b91909101600d0192915050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000612721604083018561217f565b8281036020840152612733818561217f565b95945050505050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061284890830184611e1d565b979650505050505050565b60006020828403121561286557600080fd5b8151611c2281611cff565b600060033d11156119995760046000803e5060005160e01c90565b600060443d10156128995790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156128c857505050505090565b82850191508151818111156128e05750505050505090565b843d87010160208285010111156128fa5750505050505090565b61290960208286010187611ed9565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b0386811682528516602082015260a0604082018190526000906129889083018661217f565b828103606084015261299a818661217f565b905082810360808401526129ae8185611e1d565b98975050505050505050565b8082028115828204841417610395576103956125c0565b6000816129e0576129e06125c0565b506000190190565b601f821115612a2e57600081815260208120601f850160051c81016020861015612a0f5750805b601f850160051c820191505b8181101561119557828155600101612a1b565b505050565b81516001600160401b03811115612a4c57612a4c611ec3565b612a6081612a5a84546124dd565b846129e8565b602080601f831160018114612a955760008415612a7d5750858301515b600019600386901b1c1916600185901b178555611195565b600085815260208120601f198616915b82811015612ac457888601518255948401946001909101908401612aa5565b5085821015612ae25787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fec3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f624d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a26469706673582212202046d92ec7be30a191562bffbef1457bea854798a6fb2c92ea4ce3b6343c32a064736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` -var ChildERC1155PredicateArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC1155Predicate","sourceName":"contracts/blade/ChildERC1155Predicate.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC1155Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"ERC1155DepositBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC1155Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"ERC1155WithdrawBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC1155Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootERC1155Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rootTokenToChildToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IChildERC1155","name":"childToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC1155","name":"childToken","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"withdrawBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC1155","name":"childToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50611faf806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d55760003560e01c8063b5c5f67211610087578063b5c5f672146101b2578063b8cd3ec0146101c5578063c5ac2b1c146101d8578063cf756fdf146101ff578063d41f177114610212578063d7c9e3ec14610239578063eeb4994514610260578063f64512551461027357600080fd5b8063051eb2e2146100da578063116191b6146101105780637efab4f51461012357806386937eb41461014c5780639079dfb314610161578063b075061114610174578063b17680651461018b575b600080fd5b6002546100f3906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546100f3906001600160a01b031681565b6100f361013136600461158e565b6004602052600090815260409020546001600160a01b031681565b61015f61015a3660046115fd565b61029a565b005b6003546100f3906001600160a01b031681565b61017d60015481565b604051908152602001610107565b61017d7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61015f6101c03660046116a9565b6102b2565b61015f6101d33660046116de565b6102c3565b61017d7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61015f61020d366004611724565b6102d5565b61017d7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b61017d7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b61015f61026e366004611775565b6103f3565b61017d7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6102a98787878787878761060d565b50505050505050565b6102be83338484610998565b505050565b6102cf84848484610998565b50505050565b600254610100900460ff16158080156102f55750600254600160ff909116105b8061030f5750303b15801561030f575060025460ff166001145b6103775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff19166001179055801561039a576002805461ff0019166101001790555b6103a685858585610cbb565b80156103ec576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b031633146104595760405162461bcd60e51b815260206004820152602360248201527f4368696c64455243313135355072656469636174653a204f4e4c595f4741544560448201526257415960e81b606482015260840161036e565b6002546001600160a01b038481166201000090920416146104cf5760405162461bcd60e51b815260206004820152602a60248201527f4368696c64455243313135355072656469636174653a204f4e4c595f524f4f546044820152695f50524544494341544560b01b606482015260840161036e565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216104fe6020600084866117fd565b61050791611827565b036105265761052161051c82602081866117fd565b610d7f565b6102cf565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d186105556020600084866117fd565b61055e91611827565b0361056d576105218282610fea565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad61059c6020600084866117fd565b6105a591611827565b036105b4576105218282611257565b60405162461bcd60e51b815260206004820152602860248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f5360448201526749474e415455524560c01b606482015260840161036e565b86610617816113c1565b6106335760405162461bcd60e51b815260040161036e90611845565b6000886001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610673573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106979190611888565b6001600160a01b038181166000908152600460205260409020549192508a81169116146106d65760405162461bcd60e51b815260040161036e906118a5565b6001600160a01b0381166106ec576106ec6118ea565b306001600160a01b0316896001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610734573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107589190611888565b6001600160a01b03161461076e5761076e6118ea565b868514801561077c57508483145b6107d65760405162461bcd60e51b815260206004820152602560248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f4c60448201526408a9c8ea8960db1b606482015260840161036e565b604051631ac8311560e21b81526001600160a01b038a1690636b20c4549061080a9033908a908a908a908a90600401611932565b6020604051808303816000875af1158015610829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084d9190611976565b6108695760405162461bcd60e51b815260040161036e90611998565b6000546002546040516001600160a01b039283169263417d5acb9262010000900416906108ca907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908f908f908f908f908f908f90602001611a23565b60408051601f19818403018152908290526001546001600160e01b031960e086901b1683526108fc9392600401611ad4565b600060405180830381600087803b15801561091657600080fd5b505af115801561092a573d6000803e3d6000fd5b50505050336001600160a01b0316896001600160a01b0316826001600160a01b03167fce612e98b81c726375e7c2395409e74ee0a29b22f7641ea5a8ce8508616448c08b8b8b8b8b8b60405161098596959493929190611b08565b60405180910390a4505050505050505050565b836109a2816113c1565b6109be5760405162461bcd60e51b815260040161036e90611845565b6000856001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a229190611888565b6001600160a01b03818116600090815260046020526040902054919250878116911614610a615760405162461bcd60e51b815260040161036e906118a5565b6001600160a01b038116610a7757610a776118ea565b306001600160a01b0316866001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae39190611888565b6001600160a01b031614610af957610af96118ea565b604051637a94c56560e11b81526001600160a01b0387169063f5298aca90610b2990339088908890600401611b51565b6020604051808303816000875af1158015610b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c9190611976565b610b885760405162461bcd60e51b815260040161036e90611998565b600054600254604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152898116608083015260a0820189905260c08083018990528351808403909101815260e083019384905260015463417d5acb60e01b9094529481169463417d5acb94610c2894620100009091049092169290919060e401611ad4565b600060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b0316826001600160a01b03167fc42752949ca07109e6f25adcde4a9407be23e084b1d32ca2bce8aa55bf3dd625338888604051610cab93929190611b51565b60405180910390a4505050505050565b610cc58482611456565b6001600160a01b03831615801590610ce557506001600160a01b03821615155b610d435760405162461bcd60e51b815260206004820152602960248201527f4368696c64455243313135355072656469636174653a204241445f494e49544960448201526820a624ad20aa24a7a760b91b606482015260840161036e565b506002805462010000600160b01b031916620100006001600160a01b0394851602179055600380546001600160a01b0319169190921617905550565b600080808080610d9186880188611b72565b6001600160a01b03808616600090815260046020526040902054959a50939850919650945092501680610dd65760405162461bcd60e51b815260040161036e906118a5565b610ddf816113c1565b610deb57610deb6118ea565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4f9190611888565b9050866001600160a01b0316816001600160a01b031614610e7257610e726118ea565b6001600160a01b038116610e8857610e886118ea565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef49190611888565b6001600160a01b031614610f0a57610f0a6118ea565b604051630ab714fb60e11b81526001600160a01b0383169063156e29f690610f3a90889088908890600401611b51565b6020604051808303816000875af1158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d9190611976565b610f995760405162461bcd60e51b815260040161036e90611bcd565b846001600160a01b0316826001600160a01b0316886001600160a01b03167fbcbdf0c69f975f2a4085544938b054f02e77e87cbd055146d388c0be7120e04f89888860405161098593929190611b51565b600080808080610ffc86880188611ce3565b6001600160a01b03808616600090815260046020526040902054959b5093995091975095509350169050806110435760405162461bcd60e51b815260040161036e906118a5565b61104c816113c1565b611058576110586118ea565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bc9190611888565b9050866001600160a01b0316816001600160a01b0316146110df576110df6118ea565b6001600160a01b0381166110f5576110f56118ea565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561113d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111619190611888565b6001600160a01b031614611177576111776118ea565b604051635712868360e01b81526001600160a01b038316906357128683906111a790889088908890600401611e28565b6020604051808303816000875af11580156111c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ea9190611976565b6112065760405162461bcd60e51b815260040161036e90611bcd565b856001600160a01b0316826001600160a01b0316886001600160a01b03167f7e8ab6f25cb177d65db49b7a2197bb2a7df5757434857d411e2523b332a913e688888860405161098593929190611e28565b60008061126683850185611e9d565b9093509150506001600160a01b038216611282576112826118ea565b6001600160a01b0382811660009081526004602052604090205416156112aa576112aa6118ea565b6003546040516bffffffffffffffffffffffff19606085901b1660208201526000916112fa916001600160a01b0390911690603401604051602081830303815290604052805190602001206114df565b6001600160a01b0384811660009081526004602081905260409182902080546001600160a01b031916938516938417905590516379ccf11760e11b8152929350909163f399e22e91611350918791879101611f4d565b600060405180830381600087803b15801561136a57600080fd5b505af115801561137e573d6000803e3d6000fd5b50506040516001600160a01b038085169350861691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a35050505050565b6000816001600160a01b03163b6000036113dd57506000919050565b6040516301ffc9a760e01b8152636cdb3d1360e11b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611444575060408051601f3d908101601f1916820190925261144191810190611976565b60015b61145057506000919050565b92915050565b6001600160a01b0382161580159061146d57508015155b6114b95760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e000000604482015260640161036e565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166114505760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b604482015260640161036e565b6001600160a01b038116811461158b57600080fd5b50565b6000602082840312156115a057600080fd5b81356115ab81611576565b9392505050565b60008083601f8401126115c457600080fd5b5081356001600160401b038111156115db57600080fd5b6020830191508360208260051b85010111156115f657600080fd5b9250929050565b60008060008060008060006080888a03121561161857600080fd5b873561162381611576565b965060208801356001600160401b038082111561163f57600080fd5b61164b8b838c016115b2565b909850965060408a013591508082111561166457600080fd5b6116708b838c016115b2565b909650945060608a013591508082111561168957600080fd5b506116968a828b016115b2565b989b979a50959850939692959293505050565b6000806000606084860312156116be57600080fd5b83356116c981611576565b95602085013595506040909401359392505050565b600080600080608085870312156116f457600080fd5b84356116ff81611576565b9350602085013561170f81611576565b93969395505050506040820135916060013590565b6000806000806080858703121561173a57600080fd5b843561174581611576565b9350602085013561175581611576565b9250604085013561176581611576565b9396929550929360600135925050565b6000806000806060858703121561178b57600080fd5b84359350602085013561179d81611576565b925060408501356001600160401b03808211156117b957600080fd5b818701915087601f8301126117cd57600080fd5b8135818111156117dc57600080fd5b8860208285010111156117ee57600080fd5b95989497505060200194505050565b6000808585111561180d57600080fd5b8386111561181a57600080fd5b5050820193919092039150565b8035602083101561145057600019602084900360031b1b1692915050565b60208082526023908201527f4368696c64455243313135355072656469636174653a204e4f545f434f4e54526040820152621050d560ea1b606082015260800190565b60006020828403121561189a57600080fd5b81516115ab81611576565b60208082526025908201527f4368696c64455243313135355072656469636174653a20554e4d41505045445f6040820152642a27a5a2a760d91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b0383111561191957600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03861681526060602082018190526000906119579083018688611900565b828103604084015261196a818587611900565b98975050505050505050565b60006020828403121561198857600080fd5b815180151581146115ab57600080fd5b60208082526022908201527f4368696c64455243313135355072656469636174653a204255524e5f4641494c604082015261115160f21b606082015260800190565b8183526000602080850194508260005b85811015611a185781356119fd81611576565b6001600160a01b0316875295820195908201906001016119ea565b509495945050505050565b8981526001600160a01b0389811660208301528816604082015260c060608201819052600090611a56908301888a6119da565b8281036080840152611a69818789611900565b905082810360a0840152611a7e818587611900565b9c9b505050505050505050505050565b6000815180845260005b81811015611ab457602081850181015186830182015201611a98565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090611af890830185611a8e565b9050826040830152949350505050565b606081526000611b1c60608301888a6119da565b8281036020840152611b2f818789611900565b90508281036040840152611b44818587611900565b9998505050505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b600080600080600060a08688031215611b8a57600080fd5b8535611b9581611576565b94506020860135611ba581611576565b93506040860135611bb581611576565b94979396509394606081013594506080013592915050565b60208082526022908201527f4368696c64455243313135355072656469636174653a204d494e545f4641494c604082015261115160f21b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c4d57611c4d611c0f565b604052919050565b60006001600160401b03821115611c6e57611c6e611c0f565b5060051b60200190565b600082601f830112611c8957600080fd5b81356020611c9e611c9983611c55565b611c25565b82815260059290921b84018101918181019086841115611cbd57600080fd5b8286015b84811015611cd85780358352918301918301611cc1565b509695505050505050565b60008060008060008060c08789031215611cfc57600080fd5b86359550602080880135611d0f81611576565b95506040880135611d1f81611576565b945060608801356001600160401b0380821115611d3b57600080fd5b818a0191508a601f830112611d4f57600080fd5b8135611d5d611c9982611c55565b81815260059190911b8301840190848101908d831115611d7c57600080fd5b938501935b82851015611da3578435611d9481611576565b82529385019390850190611d81565b9750505060808a0135925080831115611dbb57600080fd5b611dc78b848c01611c78565b945060a08a0135925080831115611ddd57600080fd5b5050611deb89828a01611c78565b9150509295509295509295565b600081518084526020808501945080840160005b83811015611a1857815187529582019590820190600101611e0c565b606080825284519082018190526000906020906080840190828801845b82811015611e6a5781516001600160a01b031684529284019290840190600101611e45565b50505083810382850152611e7e8187611df8565b9150508281036040840152611e938185611df8565b9695505050505050565b600080600060608486031215611eb257600080fd5b83359250602080850135611ec581611576565b925060408501356001600160401b0380821115611ee157600080fd5b818701915087601f830112611ef557600080fd5b813581811115611f0757611f07611c0f565b611f19601f8201601f19168501611c25565b91508082528884828501011115611f2f57600080fd5b80848401858401376000848284010152508093505050509250925092565b6001600160a01b0383168152604060208201819052600090611f7190830184611a8e565b94935050505056fea26469706673582212209f28d391916589dfa24ba7203ea8a4aaae73decd048c9bff378afafdd8e2189b64736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100d55760003560e01c8063b5c5f67211610087578063b5c5f672146101b2578063b8cd3ec0146101c5578063c5ac2b1c146101d8578063cf756fdf146101ff578063d41f177114610212578063d7c9e3ec14610239578063eeb4994514610260578063f64512551461027357600080fd5b8063051eb2e2146100da578063116191b6146101105780637efab4f51461012357806386937eb41461014c5780639079dfb314610161578063b075061114610174578063b17680651461018b575b600080fd5b6002546100f3906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546100f3906001600160a01b031681565b6100f361013136600461158e565b6004602052600090815260409020546001600160a01b031681565b61015f61015a3660046115fd565b61029a565b005b6003546100f3906001600160a01b031681565b61017d60015481565b604051908152602001610107565b61017d7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61015f6101c03660046116a9565b6102b2565b61015f6101d33660046116de565b6102c3565b61017d7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61015f61020d366004611724565b6102d5565b61017d7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b61017d7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b61015f61026e366004611775565b6103f3565b61017d7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6102a98787878787878761060d565b50505050505050565b6102be83338484610998565b505050565b6102cf84848484610998565b50505050565b600254610100900460ff16158080156102f55750600254600160ff909116105b8061030f5750303b15801561030f575060025460ff166001145b6103775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff19166001179055801561039a576002805461ff0019166101001790555b6103a685858585610cbb565b80156103ec576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b031633146104595760405162461bcd60e51b815260206004820152602360248201527f4368696c64455243313135355072656469636174653a204f4e4c595f4741544560448201526257415960e81b606482015260840161036e565b6002546001600160a01b038481166201000090920416146104cf5760405162461bcd60e51b815260206004820152602a60248201527f4368696c64455243313135355072656469636174653a204f4e4c595f524f4f546044820152695f50524544494341544560b01b606482015260840161036e565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216104fe6020600084866117fd565b61050791611827565b036105265761052161051c82602081866117fd565b610d7f565b6102cf565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d186105556020600084866117fd565b61055e91611827565b0361056d576105218282610fea565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad61059c6020600084866117fd565b6105a591611827565b036105b4576105218282611257565b60405162461bcd60e51b815260206004820152602860248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f5360448201526749474e415455524560c01b606482015260840161036e565b86610617816113c1565b6106335760405162461bcd60e51b815260040161036e90611845565b6000886001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610673573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106979190611888565b6001600160a01b038181166000908152600460205260409020549192508a81169116146106d65760405162461bcd60e51b815260040161036e906118a5565b6001600160a01b0381166106ec576106ec6118ea565b306001600160a01b0316896001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610734573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107589190611888565b6001600160a01b03161461076e5761076e6118ea565b868514801561077c57508483145b6107d65760405162461bcd60e51b815260206004820152602560248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f4c60448201526408a9c8ea8960db1b606482015260840161036e565b604051631ac8311560e21b81526001600160a01b038a1690636b20c4549061080a9033908a908a908a908a90600401611932565b6020604051808303816000875af1158015610829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084d9190611976565b6108695760405162461bcd60e51b815260040161036e90611998565b6000546002546040516001600160a01b039283169263417d5acb9262010000900416906108ca907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908f908f908f908f908f908f90602001611a23565b60408051601f19818403018152908290526001546001600160e01b031960e086901b1683526108fc9392600401611ad4565b600060405180830381600087803b15801561091657600080fd5b505af115801561092a573d6000803e3d6000fd5b50505050336001600160a01b0316896001600160a01b0316826001600160a01b03167fce612e98b81c726375e7c2395409e74ee0a29b22f7641ea5a8ce8508616448c08b8b8b8b8b8b60405161098596959493929190611b08565b60405180910390a4505050505050505050565b836109a2816113c1565b6109be5760405162461bcd60e51b815260040161036e90611845565b6000856001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a229190611888565b6001600160a01b03818116600090815260046020526040902054919250878116911614610a615760405162461bcd60e51b815260040161036e906118a5565b6001600160a01b038116610a7757610a776118ea565b306001600160a01b0316866001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae39190611888565b6001600160a01b031614610af957610af96118ea565b604051637a94c56560e11b81526001600160a01b0387169063f5298aca90610b2990339088908890600401611b51565b6020604051808303816000875af1158015610b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c9190611976565b610b885760405162461bcd60e51b815260040161036e90611998565b600054600254604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152898116608083015260a0820189905260c08083018990528351808403909101815260e083019384905260015463417d5acb60e01b9094529481169463417d5acb94610c2894620100009091049092169290919060e401611ad4565b600060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b0316826001600160a01b03167fc42752949ca07109e6f25adcde4a9407be23e084b1d32ca2bce8aa55bf3dd625338888604051610cab93929190611b51565b60405180910390a4505050505050565b610cc58482611456565b6001600160a01b03831615801590610ce557506001600160a01b03821615155b610d435760405162461bcd60e51b815260206004820152602960248201527f4368696c64455243313135355072656469636174653a204241445f494e49544960448201526820a624ad20aa24a7a760b91b606482015260840161036e565b506002805462010000600160b01b031916620100006001600160a01b0394851602179055600380546001600160a01b0319169190921617905550565b600080808080610d9186880188611b72565b6001600160a01b03808616600090815260046020526040902054959a50939850919650945092501680610dd65760405162461bcd60e51b815260040161036e906118a5565b610ddf816113c1565b610deb57610deb6118ea565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4f9190611888565b9050866001600160a01b0316816001600160a01b031614610e7257610e726118ea565b6001600160a01b038116610e8857610e886118ea565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef49190611888565b6001600160a01b031614610f0a57610f0a6118ea565b604051630ab714fb60e11b81526001600160a01b0383169063156e29f690610f3a90889088908890600401611b51565b6020604051808303816000875af1158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d9190611976565b610f995760405162461bcd60e51b815260040161036e90611bcd565b846001600160a01b0316826001600160a01b0316886001600160a01b03167fbcbdf0c69f975f2a4085544938b054f02e77e87cbd055146d388c0be7120e04f89888860405161098593929190611b51565b600080808080610ffc86880188611ce3565b6001600160a01b03808616600090815260046020526040902054959b5093995091975095509350169050806110435760405162461bcd60e51b815260040161036e906118a5565b61104c816113c1565b611058576110586118ea565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bc9190611888565b9050866001600160a01b0316816001600160a01b0316146110df576110df6118ea565b6001600160a01b0381166110f5576110f56118ea565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561113d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111619190611888565b6001600160a01b031614611177576111776118ea565b604051635712868360e01b81526001600160a01b038316906357128683906111a790889088908890600401611e28565b6020604051808303816000875af11580156111c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ea9190611976565b6112065760405162461bcd60e51b815260040161036e90611bcd565b856001600160a01b0316826001600160a01b0316886001600160a01b03167f7e8ab6f25cb177d65db49b7a2197bb2a7df5757434857d411e2523b332a913e688888860405161098593929190611e28565b60008061126683850185611e9d565b9093509150506001600160a01b038216611282576112826118ea565b6001600160a01b0382811660009081526004602052604090205416156112aa576112aa6118ea565b6003546040516bffffffffffffffffffffffff19606085901b1660208201526000916112fa916001600160a01b0390911690603401604051602081830303815290604052805190602001206114df565b6001600160a01b0384811660009081526004602081905260409182902080546001600160a01b031916938516938417905590516379ccf11760e11b8152929350909163f399e22e91611350918791879101611f4d565b600060405180830381600087803b15801561136a57600080fd5b505af115801561137e573d6000803e3d6000fd5b50506040516001600160a01b038085169350861691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a35050505050565b6000816001600160a01b03163b6000036113dd57506000919050565b6040516301ffc9a760e01b8152636cdb3d1360e11b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611444575060408051601f3d908101601f1916820190925261144191810190611976565b60015b61145057506000919050565b92915050565b6001600160a01b0382161580159061146d57508015155b6114b95760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e000000604482015260640161036e565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166114505760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b604482015260640161036e565b6001600160a01b038116811461158b57600080fd5b50565b6000602082840312156115a057600080fd5b81356115ab81611576565b9392505050565b60008083601f8401126115c457600080fd5b5081356001600160401b038111156115db57600080fd5b6020830191508360208260051b85010111156115f657600080fd5b9250929050565b60008060008060008060006080888a03121561161857600080fd5b873561162381611576565b965060208801356001600160401b038082111561163f57600080fd5b61164b8b838c016115b2565b909850965060408a013591508082111561166457600080fd5b6116708b838c016115b2565b909650945060608a013591508082111561168957600080fd5b506116968a828b016115b2565b989b979a50959850939692959293505050565b6000806000606084860312156116be57600080fd5b83356116c981611576565b95602085013595506040909401359392505050565b600080600080608085870312156116f457600080fd5b84356116ff81611576565b9350602085013561170f81611576565b93969395505050506040820135916060013590565b6000806000806080858703121561173a57600080fd5b843561174581611576565b9350602085013561175581611576565b9250604085013561176581611576565b9396929550929360600135925050565b6000806000806060858703121561178b57600080fd5b84359350602085013561179d81611576565b925060408501356001600160401b03808211156117b957600080fd5b818701915087601f8301126117cd57600080fd5b8135818111156117dc57600080fd5b8860208285010111156117ee57600080fd5b95989497505060200194505050565b6000808585111561180d57600080fd5b8386111561181a57600080fd5b5050820193919092039150565b8035602083101561145057600019602084900360031b1b1692915050565b60208082526023908201527f4368696c64455243313135355072656469636174653a204e4f545f434f4e54526040820152621050d560ea1b606082015260800190565b60006020828403121561189a57600080fd5b81516115ab81611576565b60208082526025908201527f4368696c64455243313135355072656469636174653a20554e4d41505045445f6040820152642a27a5a2a760d91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b0383111561191957600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03861681526060602082018190526000906119579083018688611900565b828103604084015261196a818587611900565b98975050505050505050565b60006020828403121561198857600080fd5b815180151581146115ab57600080fd5b60208082526022908201527f4368696c64455243313135355072656469636174653a204255524e5f4641494c604082015261115160f21b606082015260800190565b8183526000602080850194508260005b85811015611a185781356119fd81611576565b6001600160a01b0316875295820195908201906001016119ea565b509495945050505050565b8981526001600160a01b0389811660208301528816604082015260c060608201819052600090611a56908301888a6119da565b8281036080840152611a69818789611900565b905082810360a0840152611a7e818587611900565b9c9b505050505050505050505050565b6000815180845260005b81811015611ab457602081850181015186830182015201611a98565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090611af890830185611a8e565b9050826040830152949350505050565b606081526000611b1c60608301888a6119da565b8281036020840152611b2f818789611900565b90508281036040840152611b44818587611900565b9998505050505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b600080600080600060a08688031215611b8a57600080fd5b8535611b9581611576565b94506020860135611ba581611576565b93506040860135611bb581611576565b94979396509394606081013594506080013592915050565b60208082526022908201527f4368696c64455243313135355072656469636174653a204d494e545f4641494c604082015261115160f21b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c4d57611c4d611c0f565b604052919050565b60006001600160401b03821115611c6e57611c6e611c0f565b5060051b60200190565b600082601f830112611c8957600080fd5b81356020611c9e611c9983611c55565b611c25565b82815260059290921b84018101918181019086841115611cbd57600080fd5b8286015b84811015611cd85780358352918301918301611cc1565b509695505050505050565b60008060008060008060c08789031215611cfc57600080fd5b86359550602080880135611d0f81611576565b95506040880135611d1f81611576565b945060608801356001600160401b0380821115611d3b57600080fd5b818a0191508a601f830112611d4f57600080fd5b8135611d5d611c9982611c55565b81815260059190911b8301840190848101908d831115611d7c57600080fd5b938501935b82851015611da3578435611d9481611576565b82529385019390850190611d81565b9750505060808a0135925080831115611dbb57600080fd5b611dc78b848c01611c78565b945060a08a0135925080831115611ddd57600080fd5b5050611deb89828a01611c78565b9150509295509295509295565b600081518084526020808501945080840160005b83811015611a1857815187529582019590820190600101611e0c565b606080825284519082018190526000906020906080840190828801845b82811015611e6a5781516001600160a01b031684529284019290840190600101611e45565b50505083810382850152611e7e8187611df8565b9150508281036040840152611e938185611df8565b9695505050505050565b600080600060608486031215611eb257600080fd5b83359250602080850135611ec581611576565b925060408501356001600160401b0380821115611ee157600080fd5b818701915087601f830112611ef557600080fd5b813581811115611f0757611f07611c0f565b611f19601f8201601f19168501611c25565b91508082528884828501011115611f2f57600080fd5b80848401858401376000848284010152508093505050509250925092565b6001600160a01b0383168152604060208201819052600090611f7190830184611a8e565b94935050505056fea26469706673582212209f28d391916589dfa24ba7203ea8a4aaae73decd048c9bff378afafdd8e2189b64736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` -var ChildERC1155PredicateACLArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC1155PredicateAccessList","sourceName":"contracts/blade/ChildERC1155PredicateAccessList.sol","abi":[{"inputs":[{"internalType":"string","name":"only","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"AllowListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"BlockListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC1155Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"ERC1155DepositBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC1155Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"ERC1155WithdrawBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC1155Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"},{"internalType":"bool","name":"newUseAllowList","type":"bool"},{"internalType":"bool","name":"newUseBlockList","type":"bool"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC1155Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootERC1155Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rootTokenToChildToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseAllowList","type":"bool"}],"name":"setAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseBlockList","type":"bool"}],"name":"setBlockList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC1155","name":"childToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC1155","name":"childToken","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"withdrawBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC1155","name":"childToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b506127e7806100206000396000f3fe608060405234801561001057600080fd5b506004361061019a5760003560e01c8063947287cf116100e4578063c5e4683a11610092578063c5e4683a14610354578063cf756fdf14610367578063d41f17711461037a578063d7c9e3ec146103a1578063e30c3978146103c8578063eeb49945146103d9578063f2fde38b146103ec578063f6451255146103ff57600080fd5b8063947287cf146102bb578063b0750611146102c4578063b1768065146102cd578063b5c5f672146102f4578063b8cd3ec014610307578063c1225a201461031a578063c5ac2b1c1461032d57600080fd5b806359a85e081161014c57806359a85e081461021e5780635ea5df7914610233578063715018a61461024a57806379ba5097146102525780637efab4f51461025a57806386937eb4146102845780638da5cb5b146102975780639079dfb3146102a857600080fd5b8063051eb2e21461019f57806307b3e252146101cf578063116191b6146101dd578063284017f5146101f05780633b878c22146101f957806351351d531461020257806355b01e4d14610210575b600080fd5b60fe546101b2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101b26004600360981b0181565b6000546101b2906001600160a01b031681565b6101b261202081565b6101b261101081565b6101b26002600160a01b0381565b6101b26004600160991b0181565b61023161022c366004611c94565b610426565b005b61023c61138881565b6040519081526020016101c6565b610231610569565b61023161057d565b6101b2610268366004611d21565b610100602052600090815260409020546001600160a01b031681565b610231610292366004611d90565b6105f7565b6035546001600160a01b03166101b2565b60ff546101b2906001600160a01b031681565b61023c61520881565b61023c60015481565b61023c7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b610231610302366004611e3c565b610617565b610231610315366004611e71565b610630565b610231610328366004611eb7565b61064a565b61023c7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b610231610362366004611eb7565b610699565b610231610375366004611ed4565b6106e0565b61023c7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b61023c7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101b2565b6102316103e7366004611f25565b6107b2565b6102316103fa366004611d21565b6109c6565b61023c7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b336002600160a01b031461046f5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064015b60405180910390fd5b600254610100900460ff161580801561048f5750600254600160ff909116105b806104a95750303b1580156104a9575060025460ff166001145b6104c55760405162461bcd60e51b815260040161046690611fad565b6002805460ff1916600117905580156104e8576002805461ff0019166101001790555b6104f488888888610a37565b60cb805461ffff191685151561ff001916176101008515150217905561051982610aef565b801561055f576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b610571610b08565b61057b6000610aef565b565b60675433906001600160a01b031681146105eb5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610466565b6105f481610aef565b50565b6105ff610b62565b61060e87878787878787610b6a565b50505050505050565b61061f610b62565b61062b83338484610ef0565b505050565b610638610b62565b61064484848484610ef0565b50505050565b610652610b08565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b6106a1610b08565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b600254610100900460ff16158080156107005750600254600160ff909116105b8061071a5750303b15801561071a575060025460ff166001145b6107365760405162461bcd60e51b815260040161046690611fad565b6002805460ff191660011790558015610759576002805461ff0019166101001790555b61076585858585610a37565b80156107ab576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b031633146108185760405162461bcd60e51b815260206004820152602360248201527f4368696c64455243313135355072656469636174653a204f4e4c595f4741544560448201526257415960e81b6064820152608401610466565b60fe546001600160a01b038481169116146108885760405162461bcd60e51b815260206004820152602a60248201527f4368696c64455243313135355072656469636174653a204f4e4c595f524f4f546044820152695f50524544494341544560b01b6064820152608401610466565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216108b7602060008486611ffb565b6108c091612025565b036108df576108da6108d58260208186611ffb565b61120c565b610644565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1861090e602060008486611ffb565b61091791612025565b03610926576108da8282611478565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad610955602060008486611ffb565b61095e91612025565b0361096d576108da82826116e6565b60405162461bcd60e51b815260206004820152602860248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f5360448201526749474e415455524560c01b6064820152608401610466565b6109ce610b08565b606780546001600160a01b0383166001600160a01b031990911681179091556109ff6035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610a418482611850565b6001600160a01b03831615801590610a6157506001600160a01b03821615155b610abf5760405162461bcd60e51b815260206004820152602960248201527f4368696c64455243313135355072656469636174653a204241445f494e49544960448201526820a624ad20aa24a7a760b91b6064820152608401610466565b5060fe80546001600160a01b039384166001600160a01b03199182161790915560ff805492909316911617905550565b606780546001600160a01b03191690556105f4816118d9565b6035546001600160a01b0316331461057b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610466565b61057b61192b565b86610b7481611b45565b610b905760405162461bcd60e51b815260040161046690612043565b6000886001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf49190612086565b6001600160a01b03818116600090815261010060205260409020549192508a8116911614610c345760405162461bcd60e51b8152600401610466906120a3565b6001600160a01b038116610c4a57610c4a6120e8565b306001600160a01b0316896001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190612086565b6001600160a01b031614610ccc57610ccc6120e8565b8685148015610cda57508483145b610d345760405162461bcd60e51b815260206004820152602560248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f4c60448201526408a9c8ea8960db1b6064820152608401610466565b604051631ac8311560e21b81526001600160a01b038a1690636b20c45490610d689033908a908a908a908a90600401612130565b6020604051808303816000875af1158015610d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dab9190612174565b610dc75760405162461bcd60e51b815260040161046690612191565b60005460fe546040516001600160a01b039283169263417d5acb921690610e22907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908f908f908f908f908f908f9060200161221c565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610e5493926004016122d7565b600060405180830381600087803b158015610e6e57600080fd5b505af1158015610e82573d6000803e3d6000fd5b50505050336001600160a01b0316896001600160a01b0316826001600160a01b03167fce612e98b81c726375e7c2395409e74ee0a29b22f7641ea5a8ce8508616448c08b8b8b8b8b8b604051610edd9695949392919061230b565b60405180910390a4505050505050505050565b83610efa81611b45565b610f165760405162461bcd60e51b815260040161046690612043565b6000856001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7a9190612086565b6001600160a01b0381811660009081526101006020526040902054919250878116911614610fba5760405162461bcd60e51b8152600401610466906120a3565b6001600160a01b038116610fd057610fd06120e8565b306001600160a01b0316866001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015611018573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103c9190612086565b6001600160a01b031614611052576110526120e8565b604051637a94c56560e11b81526001600160a01b0387169063f5298aca9061108290339088908890600401612354565b6020604051808303816000875af11580156110a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c59190612174565b6110e15760405162461bcd60e51b815260040161046690612191565b60005460fe54604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152898116608083015260a0820189905260c08083018990528351808403909101815260e083019384905260015463417d5acb60e01b9094529481169463417d5acb946111799492169290919060e4016122d7565b600060405180830381600087803b15801561119357600080fd5b505af11580156111a7573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b0316826001600160a01b03167fc42752949ca07109e6f25adcde4a9407be23e084b1d32ca2bce8aa55bf3dd6253388886040516111fc93929190612354565b60405180910390a4505050505050565b60008080808061121e86880188612375565b6001600160a01b0380861660009081526101006020526040902054959a509398509196509450925016806112645760405162461bcd60e51b8152600401610466906120a3565b61126d81611b45565b611279576112796120e8565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dd9190612086565b9050866001600160a01b0316816001600160a01b031614611300576113006120e8565b6001600160a01b038116611316576113166120e8565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561135e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113829190612086565b6001600160a01b031614611398576113986120e8565b604051630ab714fb60e11b81526001600160a01b0383169063156e29f6906113c890889088908890600401612354565b6020604051808303816000875af11580156113e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140b9190612174565b6114275760405162461bcd60e51b8152600401610466906123d0565b846001600160a01b0316826001600160a01b0316886001600160a01b03167fbcbdf0c69f975f2a4085544938b054f02e77e87cbd055146d388c0be7120e04f898888604051610edd93929190612354565b60008080808061148a868801886124e6565b6001600160a01b0380861660009081526101006020526040902054959b5093995091975095509350169050806114d25760405162461bcd60e51b8152600401610466906120a3565b6114db81611b45565b6114e7576114e76120e8565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b9190612086565b9050866001600160a01b0316816001600160a01b03161461156e5761156e6120e8565b6001600160a01b038116611584576115846120e8565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f09190612086565b6001600160a01b031614611606576116066120e8565b604051635712868360e01b81526001600160a01b038316906357128683906116369088908890889060040161262b565b6020604051808303816000875af1158015611655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116799190612174565b6116955760405162461bcd60e51b8152600401610466906123d0565b856001600160a01b0316826001600160a01b0316886001600160a01b03167f7e8ab6f25cb177d65db49b7a2197bb2a7df5757434857d411e2523b332a913e6888888604051610edd9392919061262b565b6000806116f5838501856126a0565b9093509150506001600160a01b038216611711576117116120e8565b6001600160a01b0382811660009081526101006020526040902054161561173a5761173a6120e8565b60ff546040516bffffffffffffffffffffffff19606085901b16602082015260009161178a916001600160a01b039091169060340160405160208183030381529060405280519060200120611bda565b6001600160a01b03848116600090815261010060205260409081902080546001600160a01b0319169284169283179055516379ccf11760e11b81529192509063f399e22e906117df9086908690600401612750565b600060405180830381600087803b1580156117f957600080fd5b505af115801561180d573d6000803e3d6000fd5b50506040516001600160a01b038085169350861691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a35050505050565b6001600160a01b0382161580159061186757508015155b6118b35760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610466565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff1615611a3657604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b01916113889161198d919061277c565b6000604051808303818686fa925050503d80600081146119c9576040519150601f19603f3d011682016040523d82523d6000602084013e6119ce565b606091505b50915091508180156119f357506000818060200190518101906119f19190612798565b115b611a335760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b6044820152606401610466565b50505b60cb54610100900460ff161561057b57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b019161138891611a9d919061277c565b6000604051808303818686fa925050503d8060008114611ad9576040519150601f19603f3d011682016040523d82523d6000602084013e611ade565b606091505b5091509150818015611b04575080806020019051810190611aff9190612798565b600114155b611b415760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b6044820152606401610466565b5050565b6000816001600160a01b03163b600003611b6157506000919050565b6040516301ffc9a760e01b8152636cdb3d1360e11b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611bc8575060408051601f3d908101601f19168201909252611bc591810190612174565b60015b611bd457506000919050565b92915050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116611bd45760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610466565b6001600160a01b03811681146105f457600080fd5b80151581146105f457600080fd5b600080600080600080600060e0888a031215611caf57600080fd5b8735611cba81611c71565b96506020880135611cca81611c71565b95506040880135611cda81611c71565b9450606088013593506080880135611cf181611c86565b925060a0880135611d0181611c86565b915060c0880135611d1181611c71565b8091505092959891949750929550565b600060208284031215611d3357600080fd5b8135611d3e81611c71565b9392505050565b60008083601f840112611d5757600080fd5b5081356001600160401b03811115611d6e57600080fd5b6020830191508360208260051b8501011115611d8957600080fd5b9250929050565b60008060008060008060006080888a031215611dab57600080fd5b8735611db681611c71565b965060208801356001600160401b0380821115611dd257600080fd5b611dde8b838c01611d45565b909850965060408a0135915080821115611df757600080fd5b611e038b838c01611d45565b909650945060608a0135915080821115611e1c57600080fd5b50611e298a828b01611d45565b989b979a50959850939692959293505050565b600080600060608486031215611e5157600080fd5b8335611e5c81611c71565b95602085013595506040909401359392505050565b60008060008060808587031215611e8757600080fd5b8435611e9281611c71565b93506020850135611ea281611c71565b93969395505050506040820135916060013590565b600060208284031215611ec957600080fd5b8135611d3e81611c86565b60008060008060808587031215611eea57600080fd5b8435611ef581611c71565b93506020850135611f0581611c71565b92506040850135611f1581611c71565b9396929550929360600135925050565b60008060008060608587031215611f3b57600080fd5b843593506020850135611f4d81611c71565b925060408501356001600160401b0380821115611f6957600080fd5b818701915087601f830112611f7d57600080fd5b813581811115611f8c57600080fd5b886020828501011115611f9e57600080fd5b95989497505060200194505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000808585111561200b57600080fd5b8386111561201857600080fd5b5050820193919092039150565b80356020831015611bd457600019602084900360031b1b1692915050565b60208082526023908201527f4368696c64455243313135355072656469636174653a204e4f545f434f4e54526040820152621050d560ea1b606082015260800190565b60006020828403121561209857600080fd5b8151611d3e81611c71565b60208082526025908201527f4368696c64455243313135355072656469636174653a20554e4d41505045445f6040820152642a27a5a2a760d91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b0383111561211757600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b038616815260606020820181905260009061215590830186886120fe565b82810360408401526121688185876120fe565b98975050505050505050565b60006020828403121561218657600080fd5b8151611d3e81611c86565b60208082526022908201527f4368696c64455243313135355072656469636174653a204255524e5f4641494c604082015261115160f21b606082015260800190565b8183526000602080850194508260005b858110156122115781356121f681611c71565b6001600160a01b0316875295820195908201906001016121e3565b509495945050505050565b8981526001600160a01b0389811660208301528816604082015260c06060820181905260009061224f908301888a6121d3565b82810360808401526122628187896120fe565b905082810360a08401526122778185876120fe565b9c9b505050505050505050505050565b60005b838110156122a257818101518382015260200161228a565b50506000910152565b600081518084526122c3816020860160208601612287565b601f01601f19169290920160200192915050565b6001600160a01b03841681526060602082018190526000906122fb908301856122ab565b9050826040830152949350505050565b60608152600061231f60608301888a6121d3565b82810360208401526123328187896120fe565b905082810360408401526123478185876120fe565b9998505050505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b600080600080600060a0868803121561238d57600080fd5b853561239881611c71565b945060208601356123a881611c71565b935060408601356123b881611c71565b94979396509394606081013594506080013592915050565b60208082526022908201527f4368696c64455243313135355072656469636174653a204d494e545f4641494c604082015261115160f21b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561245057612450612412565b604052919050565b60006001600160401b0382111561247157612471612412565b5060051b60200190565b600082601f83011261248c57600080fd5b813560206124a161249c83612458565b612428565b82815260059290921b840181019181810190868411156124c057600080fd5b8286015b848110156124db57803583529183019183016124c4565b509695505050505050565b60008060008060008060c087890312156124ff57600080fd5b8635955060208088013561251281611c71565b9550604088013561252281611c71565b945060608801356001600160401b038082111561253e57600080fd5b818a0191508a601f83011261255257600080fd5b813561256061249c82612458565b81815260059190911b8301840190848101908d83111561257f57600080fd5b938501935b828510156125a657843561259781611c71565b82529385019390850190612584565b9750505060808a01359250808311156125be57600080fd5b6125ca8b848c0161247b565b945060a08a01359250808311156125e057600080fd5b50506125ee89828a0161247b565b9150509295509295509295565b600081518084526020808501945080840160005b838110156122115781518752958201959082019060010161260f565b606080825284519082018190526000906020906080840190828801845b8281101561266d5781516001600160a01b031684529284019290840190600101612648565b5050508381038285015261268181876125fb565b915050828103604084015261269681856125fb565b9695505050505050565b6000806000606084860312156126b557600080fd5b833592506020808501356126c881611c71565b925060408501356001600160401b03808211156126e457600080fd5b818701915087601f8301126126f857600080fd5b81358181111561270a5761270a612412565b61271c601f8201601f19168501612428565b9150808252888482850101111561273257600080fd5b80848401858401376000848284010152508093505050509250925092565b6001600160a01b0383168152604060208201819052600090612774908301846122ab565b949350505050565b6000825161278e818460208701612287565b9190910192915050565b6000602082840312156127aa57600080fd5b505191905056fea2646970667358221220640373bd0e2cc058b52c6eacdc6cffd757a1bcbe474d04745c989b24fbed6e0c64736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b506004361061019a5760003560e01c8063947287cf116100e4578063c5e4683a11610092578063c5e4683a14610354578063cf756fdf14610367578063d41f17711461037a578063d7c9e3ec146103a1578063e30c3978146103c8578063eeb49945146103d9578063f2fde38b146103ec578063f6451255146103ff57600080fd5b8063947287cf146102bb578063b0750611146102c4578063b1768065146102cd578063b5c5f672146102f4578063b8cd3ec014610307578063c1225a201461031a578063c5ac2b1c1461032d57600080fd5b806359a85e081161014c57806359a85e081461021e5780635ea5df7914610233578063715018a61461024a57806379ba5097146102525780637efab4f51461025a57806386937eb4146102845780638da5cb5b146102975780639079dfb3146102a857600080fd5b8063051eb2e21461019f57806307b3e252146101cf578063116191b6146101dd578063284017f5146101f05780633b878c22146101f957806351351d531461020257806355b01e4d14610210575b600080fd5b60fe546101b2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101b26004600360981b0181565b6000546101b2906001600160a01b031681565b6101b261202081565b6101b261101081565b6101b26002600160a01b0381565b6101b26004600160991b0181565b61023161022c366004611c94565b610426565b005b61023c61138881565b6040519081526020016101c6565b610231610569565b61023161057d565b6101b2610268366004611d21565b610100602052600090815260409020546001600160a01b031681565b610231610292366004611d90565b6105f7565b6035546001600160a01b03166101b2565b60ff546101b2906001600160a01b031681565b61023c61520881565b61023c60015481565b61023c7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b610231610302366004611e3c565b610617565b610231610315366004611e71565b610630565b610231610328366004611eb7565b61064a565b61023c7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b610231610362366004611eb7565b610699565b610231610375366004611ed4565b6106e0565b61023c7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b61023c7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101b2565b6102316103e7366004611f25565b6107b2565b6102316103fa366004611d21565b6109c6565b61023c7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b336002600160a01b031461046f5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064015b60405180910390fd5b600254610100900460ff161580801561048f5750600254600160ff909116105b806104a95750303b1580156104a9575060025460ff166001145b6104c55760405162461bcd60e51b815260040161046690611fad565b6002805460ff1916600117905580156104e8576002805461ff0019166101001790555b6104f488888888610a37565b60cb805461ffff191685151561ff001916176101008515150217905561051982610aef565b801561055f576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b610571610b08565b61057b6000610aef565b565b60675433906001600160a01b031681146105eb5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610466565b6105f481610aef565b50565b6105ff610b62565b61060e87878787878787610b6a565b50505050505050565b61061f610b62565b61062b83338484610ef0565b505050565b610638610b62565b61064484848484610ef0565b50505050565b610652610b08565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b6106a1610b08565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b600254610100900460ff16158080156107005750600254600160ff909116105b8061071a5750303b15801561071a575060025460ff166001145b6107365760405162461bcd60e51b815260040161046690611fad565b6002805460ff191660011790558015610759576002805461ff0019166101001790555b61076585858585610a37565b80156107ab576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b031633146108185760405162461bcd60e51b815260206004820152602360248201527f4368696c64455243313135355072656469636174653a204f4e4c595f4741544560448201526257415960e81b6064820152608401610466565b60fe546001600160a01b038481169116146108885760405162461bcd60e51b815260206004820152602a60248201527f4368696c64455243313135355072656469636174653a204f4e4c595f524f4f546044820152695f50524544494341544560b01b6064820152608401610466565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216108b7602060008486611ffb565b6108c091612025565b036108df576108da6108d58260208186611ffb565b61120c565b610644565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1861090e602060008486611ffb565b61091791612025565b03610926576108da8282611478565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad610955602060008486611ffb565b61095e91612025565b0361096d576108da82826116e6565b60405162461bcd60e51b815260206004820152602860248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f5360448201526749474e415455524560c01b6064820152608401610466565b6109ce610b08565b606780546001600160a01b0383166001600160a01b031990911681179091556109ff6035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610a418482611850565b6001600160a01b03831615801590610a6157506001600160a01b03821615155b610abf5760405162461bcd60e51b815260206004820152602960248201527f4368696c64455243313135355072656469636174653a204241445f494e49544960448201526820a624ad20aa24a7a760b91b6064820152608401610466565b5060fe80546001600160a01b039384166001600160a01b03199182161790915560ff805492909316911617905550565b606780546001600160a01b03191690556105f4816118d9565b6035546001600160a01b0316331461057b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610466565b61057b61192b565b86610b7481611b45565b610b905760405162461bcd60e51b815260040161046690612043565b6000886001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf49190612086565b6001600160a01b03818116600090815261010060205260409020549192508a8116911614610c345760405162461bcd60e51b8152600401610466906120a3565b6001600160a01b038116610c4a57610c4a6120e8565b306001600160a01b0316896001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190612086565b6001600160a01b031614610ccc57610ccc6120e8565b8685148015610cda57508483145b610d345760405162461bcd60e51b815260206004820152602560248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f4c60448201526408a9c8ea8960db1b6064820152608401610466565b604051631ac8311560e21b81526001600160a01b038a1690636b20c45490610d689033908a908a908a908a90600401612130565b6020604051808303816000875af1158015610d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dab9190612174565b610dc75760405162461bcd60e51b815260040161046690612191565b60005460fe546040516001600160a01b039283169263417d5acb921690610e22907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908f908f908f908f908f908f9060200161221c565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610e5493926004016122d7565b600060405180830381600087803b158015610e6e57600080fd5b505af1158015610e82573d6000803e3d6000fd5b50505050336001600160a01b0316896001600160a01b0316826001600160a01b03167fce612e98b81c726375e7c2395409e74ee0a29b22f7641ea5a8ce8508616448c08b8b8b8b8b8b604051610edd9695949392919061230b565b60405180910390a4505050505050505050565b83610efa81611b45565b610f165760405162461bcd60e51b815260040161046690612043565b6000856001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7a9190612086565b6001600160a01b0381811660009081526101006020526040902054919250878116911614610fba5760405162461bcd60e51b8152600401610466906120a3565b6001600160a01b038116610fd057610fd06120e8565b306001600160a01b0316866001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015611018573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103c9190612086565b6001600160a01b031614611052576110526120e8565b604051637a94c56560e11b81526001600160a01b0387169063f5298aca9061108290339088908890600401612354565b6020604051808303816000875af11580156110a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c59190612174565b6110e15760405162461bcd60e51b815260040161046690612191565b60005460fe54604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152898116608083015260a0820189905260c08083018990528351808403909101815260e083019384905260015463417d5acb60e01b9094529481169463417d5acb946111799492169290919060e4016122d7565b600060405180830381600087803b15801561119357600080fd5b505af11580156111a7573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b0316826001600160a01b03167fc42752949ca07109e6f25adcde4a9407be23e084b1d32ca2bce8aa55bf3dd6253388886040516111fc93929190612354565b60405180910390a4505050505050565b60008080808061121e86880188612375565b6001600160a01b0380861660009081526101006020526040902054959a509398509196509450925016806112645760405162461bcd60e51b8152600401610466906120a3565b61126d81611b45565b611279576112796120e8565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dd9190612086565b9050866001600160a01b0316816001600160a01b031614611300576113006120e8565b6001600160a01b038116611316576113166120e8565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561135e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113829190612086565b6001600160a01b031614611398576113986120e8565b604051630ab714fb60e11b81526001600160a01b0383169063156e29f6906113c890889088908890600401612354565b6020604051808303816000875af11580156113e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140b9190612174565b6114275760405162461bcd60e51b8152600401610466906123d0565b846001600160a01b0316826001600160a01b0316886001600160a01b03167fbcbdf0c69f975f2a4085544938b054f02e77e87cbd055146d388c0be7120e04f898888604051610edd93929190612354565b60008080808061148a868801886124e6565b6001600160a01b0380861660009081526101006020526040902054959b5093995091975095509350169050806114d25760405162461bcd60e51b8152600401610466906120a3565b6114db81611b45565b6114e7576114e76120e8565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b9190612086565b9050866001600160a01b0316816001600160a01b03161461156e5761156e6120e8565b6001600160a01b038116611584576115846120e8565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f09190612086565b6001600160a01b031614611606576116066120e8565b604051635712868360e01b81526001600160a01b038316906357128683906116369088908890889060040161262b565b6020604051808303816000875af1158015611655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116799190612174565b6116955760405162461bcd60e51b8152600401610466906123d0565b856001600160a01b0316826001600160a01b0316886001600160a01b03167f7e8ab6f25cb177d65db49b7a2197bb2a7df5757434857d411e2523b332a913e6888888604051610edd9392919061262b565b6000806116f5838501856126a0565b9093509150506001600160a01b038216611711576117116120e8565b6001600160a01b0382811660009081526101006020526040902054161561173a5761173a6120e8565b60ff546040516bffffffffffffffffffffffff19606085901b16602082015260009161178a916001600160a01b039091169060340160405160208183030381529060405280519060200120611bda565b6001600160a01b03848116600090815261010060205260409081902080546001600160a01b0319169284169283179055516379ccf11760e11b81529192509063f399e22e906117df9086908690600401612750565b600060405180830381600087803b1580156117f957600080fd5b505af115801561180d573d6000803e3d6000fd5b50506040516001600160a01b038085169350861691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a35050505050565b6001600160a01b0382161580159061186757508015155b6118b35760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610466565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff1615611a3657604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b01916113889161198d919061277c565b6000604051808303818686fa925050503d80600081146119c9576040519150601f19603f3d011682016040523d82523d6000602084013e6119ce565b606091505b50915091508180156119f357506000818060200190518101906119f19190612798565b115b611a335760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b6044820152606401610466565b50505b60cb54610100900460ff161561057b57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b019161138891611a9d919061277c565b6000604051808303818686fa925050503d8060008114611ad9576040519150601f19603f3d011682016040523d82523d6000602084013e611ade565b606091505b5091509150818015611b04575080806020019051810190611aff9190612798565b600114155b611b415760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b6044820152606401610466565b5050565b6000816001600160a01b03163b600003611b6157506000919050565b6040516301ffc9a760e01b8152636cdb3d1360e11b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611bc8575060408051601f3d908101601f19168201909252611bc591810190612174565b60015b611bd457506000919050565b92915050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116611bd45760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610466565b6001600160a01b03811681146105f457600080fd5b80151581146105f457600080fd5b600080600080600080600060e0888a031215611caf57600080fd5b8735611cba81611c71565b96506020880135611cca81611c71565b95506040880135611cda81611c71565b9450606088013593506080880135611cf181611c86565b925060a0880135611d0181611c86565b915060c0880135611d1181611c71565b8091505092959891949750929550565b600060208284031215611d3357600080fd5b8135611d3e81611c71565b9392505050565b60008083601f840112611d5757600080fd5b5081356001600160401b03811115611d6e57600080fd5b6020830191508360208260051b8501011115611d8957600080fd5b9250929050565b60008060008060008060006080888a031215611dab57600080fd5b8735611db681611c71565b965060208801356001600160401b0380821115611dd257600080fd5b611dde8b838c01611d45565b909850965060408a0135915080821115611df757600080fd5b611e038b838c01611d45565b909650945060608a0135915080821115611e1c57600080fd5b50611e298a828b01611d45565b989b979a50959850939692959293505050565b600080600060608486031215611e5157600080fd5b8335611e5c81611c71565b95602085013595506040909401359392505050565b60008060008060808587031215611e8757600080fd5b8435611e9281611c71565b93506020850135611ea281611c71565b93969395505050506040820135916060013590565b600060208284031215611ec957600080fd5b8135611d3e81611c86565b60008060008060808587031215611eea57600080fd5b8435611ef581611c71565b93506020850135611f0581611c71565b92506040850135611f1581611c71565b9396929550929360600135925050565b60008060008060608587031215611f3b57600080fd5b843593506020850135611f4d81611c71565b925060408501356001600160401b0380821115611f6957600080fd5b818701915087601f830112611f7d57600080fd5b813581811115611f8c57600080fd5b886020828501011115611f9e57600080fd5b95989497505060200194505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000808585111561200b57600080fd5b8386111561201857600080fd5b5050820193919092039150565b80356020831015611bd457600019602084900360031b1b1692915050565b60208082526023908201527f4368696c64455243313135355072656469636174653a204e4f545f434f4e54526040820152621050d560ea1b606082015260800190565b60006020828403121561209857600080fd5b8151611d3e81611c71565b60208082526025908201527f4368696c64455243313135355072656469636174653a20554e4d41505045445f6040820152642a27a5a2a760d91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b0383111561211757600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b038616815260606020820181905260009061215590830186886120fe565b82810360408401526121688185876120fe565b98975050505050505050565b60006020828403121561218657600080fd5b8151611d3e81611c86565b60208082526022908201527f4368696c64455243313135355072656469636174653a204255524e5f4641494c604082015261115160f21b606082015260800190565b8183526000602080850194508260005b858110156122115781356121f681611c71565b6001600160a01b0316875295820195908201906001016121e3565b509495945050505050565b8981526001600160a01b0389811660208301528816604082015260c06060820181905260009061224f908301888a6121d3565b82810360808401526122628187896120fe565b905082810360a08401526122778185876120fe565b9c9b505050505050505050505050565b60005b838110156122a257818101518382015260200161228a565b50506000910152565b600081518084526122c3816020860160208601612287565b601f01601f19169290920160200192915050565b6001600160a01b03841681526060602082018190526000906122fb908301856122ab565b9050826040830152949350505050565b60608152600061231f60608301888a6121d3565b82810360208401526123328187896120fe565b905082810360408401526123478185876120fe565b9998505050505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b600080600080600060a0868803121561238d57600080fd5b853561239881611c71565b945060208601356123a881611c71565b935060408601356123b881611c71565b94979396509394606081013594506080013592915050565b60208082526022908201527f4368696c64455243313135355072656469636174653a204d494e545f4641494c604082015261115160f21b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561245057612450612412565b604052919050565b60006001600160401b0382111561247157612471612412565b5060051b60200190565b600082601f83011261248c57600080fd5b813560206124a161249c83612458565b612428565b82815260059290921b840181019181810190868411156124c057600080fd5b8286015b848110156124db57803583529183019183016124c4565b509695505050505050565b60008060008060008060c087890312156124ff57600080fd5b8635955060208088013561251281611c71565b9550604088013561252281611c71565b945060608801356001600160401b038082111561253e57600080fd5b818a0191508a601f83011261255257600080fd5b813561256061249c82612458565b81815260059190911b8301840190848101908d83111561257f57600080fd5b938501935b828510156125a657843561259781611c71565b82529385019390850190612584565b9750505060808a01359250808311156125be57600080fd5b6125ca8b848c0161247b565b945060a08a01359250808311156125e057600080fd5b50506125ee89828a0161247b565b9150509295509295509295565b600081518084526020808501945080840160005b838110156122115781518752958201959082019060010161260f565b606080825284519082018190526000906020906080840190828801845b8281101561266d5781516001600160a01b031684529284019290840190600101612648565b5050508381038285015261268181876125fb565b915050828103604084015261269681856125fb565b9695505050505050565b6000806000606084860312156126b557600080fd5b833592506020808501356126c881611c71565b925060408501356001600160401b03808211156126e457600080fd5b818701915087601f8301126126f857600080fd5b81358181111561270a5761270a612412565b61271c601f8201601f19168501612428565b9150808252888482850101111561273257600080fd5b80848401858401376000848284010152508093505050509250925092565b6001600160a01b0383168152604060208201819052600090612774908301846122ab565b949350505050565b6000825161278e818460208701612287565b9190910192915050565b6000602082840312156127aa57600080fd5b505191905056fea2646970667358221220640373bd0e2cc058b52c6eacdc6cffd757a1bcbe474d04745c989b24fbed6e0c64736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` +var ChildERC1155PredicateArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC1155Predicate","sourceName":"contracts/blade/ChildERC1155Predicate.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC1155Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"ERC1155DepositBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC1155Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"ERC1155WithdrawBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC1155Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootERC1155Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sourceTokenToDestinationToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IChildERC1155","name":"childToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC1155","name":"childToken","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"withdrawBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC1155","name":"childToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50611faf806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d55760003560e01c8063b5c5f67211610087578063b5c5f672146101b2578063b8cd3ec0146101c5578063c5ac2b1c146101d8578063cf756fdf146101ff578063d41f177114610212578063d7c9e3ec14610239578063eeb4994514610260578063f64512551461027357600080fd5b8063051eb2e2146100da578063116191b61461011057806340acd98d1461012357806386937eb41461014c5780639079dfb314610161578063b075061114610174578063b17680651461018b575b600080fd5b6002546100f3906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546100f3906001600160a01b031681565b6100f361013136600461158e565b6004602052600090815260409020546001600160a01b031681565b61015f61015a3660046115fd565b61029a565b005b6003546100f3906001600160a01b031681565b61017d60015481565b604051908152602001610107565b61017d7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61015f6101c03660046116a9565b6102b2565b61015f6101d33660046116de565b6102c3565b61017d7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61015f61020d366004611724565b6102d5565b61017d7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b61017d7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b61015f61026e366004611775565b6103f3565b61017d7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6102a98787878787878761060d565b50505050505050565b6102be83338484610998565b505050565b6102cf84848484610998565b50505050565b600254610100900460ff16158080156102f55750600254600160ff909116105b8061030f5750303b15801561030f575060025460ff166001145b6103775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff19166001179055801561039a576002805461ff0019166101001790555b6103a685858585610cbb565b80156103ec576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b031633146104595760405162461bcd60e51b815260206004820152602360248201527f4368696c64455243313135355072656469636174653a204f4e4c595f4741544560448201526257415960e81b606482015260840161036e565b6002546001600160a01b038481166201000090920416146104cf5760405162461bcd60e51b815260206004820152602a60248201527f4368696c64455243313135355072656469636174653a204f4e4c595f524f4f546044820152695f50524544494341544560b01b606482015260840161036e565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216104fe6020600084866117fd565b61050791611827565b036105265761052161051c82602081866117fd565b610d7f565b6102cf565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d186105556020600084866117fd565b61055e91611827565b0361056d576105218282610fea565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad61059c6020600084866117fd565b6105a591611827565b036105b4576105218282611257565b60405162461bcd60e51b815260206004820152602860248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f5360448201526749474e415455524560c01b606482015260840161036e565b86610617816113c1565b6106335760405162461bcd60e51b815260040161036e90611845565b6000886001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610673573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106979190611888565b6001600160a01b038181166000908152600460205260409020549192508a81169116146106d65760405162461bcd60e51b815260040161036e906118a5565b6001600160a01b0381166106ec576106ec6118ea565b306001600160a01b0316896001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610734573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107589190611888565b6001600160a01b03161461076e5761076e6118ea565b868514801561077c57508483145b6107d65760405162461bcd60e51b815260206004820152602560248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f4c60448201526408a9c8ea8960db1b606482015260840161036e565b604051631ac8311560e21b81526001600160a01b038a1690636b20c4549061080a9033908a908a908a908a90600401611932565b6020604051808303816000875af1158015610829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084d9190611976565b6108695760405162461bcd60e51b815260040161036e90611998565b6000546002546040516001600160a01b039283169263417d5acb9262010000900416906108ca907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908f908f908f908f908f908f90602001611a23565b60408051601f19818403018152908290526001546001600160e01b031960e086901b1683526108fc9392600401611ad4565b600060405180830381600087803b15801561091657600080fd5b505af115801561092a573d6000803e3d6000fd5b50505050336001600160a01b0316896001600160a01b0316826001600160a01b03167fce612e98b81c726375e7c2395409e74ee0a29b22f7641ea5a8ce8508616448c08b8b8b8b8b8b60405161098596959493929190611b08565b60405180910390a4505050505050505050565b836109a2816113c1565b6109be5760405162461bcd60e51b815260040161036e90611845565b6000856001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a229190611888565b6001600160a01b03818116600090815260046020526040902054919250878116911614610a615760405162461bcd60e51b815260040161036e906118a5565b6001600160a01b038116610a7757610a776118ea565b306001600160a01b0316866001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae39190611888565b6001600160a01b031614610af957610af96118ea565b604051637a94c56560e11b81526001600160a01b0387169063f5298aca90610b2990339088908890600401611b51565b6020604051808303816000875af1158015610b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c9190611976565b610b885760405162461bcd60e51b815260040161036e90611998565b600054600254604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152898116608083015260a0820189905260c08083018990528351808403909101815260e083019384905260015463417d5acb60e01b9094529481169463417d5acb94610c2894620100009091049092169290919060e401611ad4565b600060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b0316826001600160a01b03167fc42752949ca07109e6f25adcde4a9407be23e084b1d32ca2bce8aa55bf3dd625338888604051610cab93929190611b51565b60405180910390a4505050505050565b610cc58482611456565b6001600160a01b03831615801590610ce557506001600160a01b03821615155b610d435760405162461bcd60e51b815260206004820152602960248201527f4368696c64455243313135355072656469636174653a204241445f494e49544960448201526820a624ad20aa24a7a760b91b606482015260840161036e565b506002805462010000600160b01b031916620100006001600160a01b0394851602179055600380546001600160a01b0319169190921617905550565b600080808080610d9186880188611b72565b6001600160a01b03808616600090815260046020526040902054959a50939850919650945092501680610dd65760405162461bcd60e51b815260040161036e906118a5565b610ddf816113c1565b610deb57610deb6118ea565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4f9190611888565b9050866001600160a01b0316816001600160a01b031614610e7257610e726118ea565b6001600160a01b038116610e8857610e886118ea565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef49190611888565b6001600160a01b031614610f0a57610f0a6118ea565b604051630ab714fb60e11b81526001600160a01b0383169063156e29f690610f3a90889088908890600401611b51565b6020604051808303816000875af1158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d9190611976565b610f995760405162461bcd60e51b815260040161036e90611bcd565b846001600160a01b0316826001600160a01b0316886001600160a01b03167fbcbdf0c69f975f2a4085544938b054f02e77e87cbd055146d388c0be7120e04f89888860405161098593929190611b51565b600080808080610ffc86880188611ce3565b6001600160a01b03808616600090815260046020526040902054959b5093995091975095509350169050806110435760405162461bcd60e51b815260040161036e906118a5565b61104c816113c1565b611058576110586118ea565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bc9190611888565b9050866001600160a01b0316816001600160a01b0316146110df576110df6118ea565b6001600160a01b0381166110f5576110f56118ea565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561113d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111619190611888565b6001600160a01b031614611177576111776118ea565b604051635712868360e01b81526001600160a01b038316906357128683906111a790889088908890600401611e28565b6020604051808303816000875af11580156111c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ea9190611976565b6112065760405162461bcd60e51b815260040161036e90611bcd565b856001600160a01b0316826001600160a01b0316886001600160a01b03167f7e8ab6f25cb177d65db49b7a2197bb2a7df5757434857d411e2523b332a913e688888860405161098593929190611e28565b60008061126683850185611e9d565b9093509150506001600160a01b038216611282576112826118ea565b6001600160a01b0382811660009081526004602052604090205416156112aa576112aa6118ea565b6003546040516bffffffffffffffffffffffff19606085901b1660208201526000916112fa916001600160a01b0390911690603401604051602081830303815290604052805190602001206114df565b6001600160a01b0384811660009081526004602081905260409182902080546001600160a01b031916938516938417905590516379ccf11760e11b8152929350909163f399e22e91611350918791879101611f4d565b600060405180830381600087803b15801561136a57600080fd5b505af115801561137e573d6000803e3d6000fd5b50506040516001600160a01b038085169350861691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a35050505050565b6000816001600160a01b03163b6000036113dd57506000919050565b6040516301ffc9a760e01b8152636cdb3d1360e11b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611444575060408051601f3d908101601f1916820190925261144191810190611976565b60015b61145057506000919050565b92915050565b6001600160a01b0382161580159061146d57508015155b6114b95760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e000000604482015260640161036e565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166114505760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b604482015260640161036e565b6001600160a01b038116811461158b57600080fd5b50565b6000602082840312156115a057600080fd5b81356115ab81611576565b9392505050565b60008083601f8401126115c457600080fd5b5081356001600160401b038111156115db57600080fd5b6020830191508360208260051b85010111156115f657600080fd5b9250929050565b60008060008060008060006080888a03121561161857600080fd5b873561162381611576565b965060208801356001600160401b038082111561163f57600080fd5b61164b8b838c016115b2565b909850965060408a013591508082111561166457600080fd5b6116708b838c016115b2565b909650945060608a013591508082111561168957600080fd5b506116968a828b016115b2565b989b979a50959850939692959293505050565b6000806000606084860312156116be57600080fd5b83356116c981611576565b95602085013595506040909401359392505050565b600080600080608085870312156116f457600080fd5b84356116ff81611576565b9350602085013561170f81611576565b93969395505050506040820135916060013590565b6000806000806080858703121561173a57600080fd5b843561174581611576565b9350602085013561175581611576565b9250604085013561176581611576565b9396929550929360600135925050565b6000806000806060858703121561178b57600080fd5b84359350602085013561179d81611576565b925060408501356001600160401b03808211156117b957600080fd5b818701915087601f8301126117cd57600080fd5b8135818111156117dc57600080fd5b8860208285010111156117ee57600080fd5b95989497505060200194505050565b6000808585111561180d57600080fd5b8386111561181a57600080fd5b5050820193919092039150565b8035602083101561145057600019602084900360031b1b1692915050565b60208082526023908201527f4368696c64455243313135355072656469636174653a204e4f545f434f4e54526040820152621050d560ea1b606082015260800190565b60006020828403121561189a57600080fd5b81516115ab81611576565b60208082526025908201527f4368696c64455243313135355072656469636174653a20554e4d41505045445f6040820152642a27a5a2a760d91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b0383111561191957600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03861681526060602082018190526000906119579083018688611900565b828103604084015261196a818587611900565b98975050505050505050565b60006020828403121561198857600080fd5b815180151581146115ab57600080fd5b60208082526022908201527f4368696c64455243313135355072656469636174653a204255524e5f4641494c604082015261115160f21b606082015260800190565b8183526000602080850194508260005b85811015611a185781356119fd81611576565b6001600160a01b0316875295820195908201906001016119ea565b509495945050505050565b8981526001600160a01b0389811660208301528816604082015260c060608201819052600090611a56908301888a6119da565b8281036080840152611a69818789611900565b905082810360a0840152611a7e818587611900565b9c9b505050505050505050505050565b6000815180845260005b81811015611ab457602081850181015186830182015201611a98565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090611af890830185611a8e565b9050826040830152949350505050565b606081526000611b1c60608301888a6119da565b8281036020840152611b2f818789611900565b90508281036040840152611b44818587611900565b9998505050505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b600080600080600060a08688031215611b8a57600080fd5b8535611b9581611576565b94506020860135611ba581611576565b93506040860135611bb581611576565b94979396509394606081013594506080013592915050565b60208082526022908201527f4368696c64455243313135355072656469636174653a204d494e545f4641494c604082015261115160f21b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c4d57611c4d611c0f565b604052919050565b60006001600160401b03821115611c6e57611c6e611c0f565b5060051b60200190565b600082601f830112611c8957600080fd5b81356020611c9e611c9983611c55565b611c25565b82815260059290921b84018101918181019086841115611cbd57600080fd5b8286015b84811015611cd85780358352918301918301611cc1565b509695505050505050565b60008060008060008060c08789031215611cfc57600080fd5b86359550602080880135611d0f81611576565b95506040880135611d1f81611576565b945060608801356001600160401b0380821115611d3b57600080fd5b818a0191508a601f830112611d4f57600080fd5b8135611d5d611c9982611c55565b81815260059190911b8301840190848101908d831115611d7c57600080fd5b938501935b82851015611da3578435611d9481611576565b82529385019390850190611d81565b9750505060808a0135925080831115611dbb57600080fd5b611dc78b848c01611c78565b945060a08a0135925080831115611ddd57600080fd5b5050611deb89828a01611c78565b9150509295509295509295565b600081518084526020808501945080840160005b83811015611a1857815187529582019590820190600101611e0c565b606080825284519082018190526000906020906080840190828801845b82811015611e6a5781516001600160a01b031684529284019290840190600101611e45565b50505083810382850152611e7e8187611df8565b9150508281036040840152611e938185611df8565b9695505050505050565b600080600060608486031215611eb257600080fd5b83359250602080850135611ec581611576565b925060408501356001600160401b0380821115611ee157600080fd5b818701915087601f830112611ef557600080fd5b813581811115611f0757611f07611c0f565b611f19601f8201601f19168501611c25565b91508082528884828501011115611f2f57600080fd5b80848401858401376000848284010152508093505050509250925092565b6001600160a01b0383168152604060208201819052600090611f7190830184611a8e565b94935050505056fea2646970667358221220394e3265c80547a1a47a5f93a76061ccc6e8badba0074b034143b6e144d24e7c64736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106100d55760003560e01c8063b5c5f67211610087578063b5c5f672146101b2578063b8cd3ec0146101c5578063c5ac2b1c146101d8578063cf756fdf146101ff578063d41f177114610212578063d7c9e3ec14610239578063eeb4994514610260578063f64512551461027357600080fd5b8063051eb2e2146100da578063116191b61461011057806340acd98d1461012357806386937eb41461014c5780639079dfb314610161578063b075061114610174578063b17680651461018b575b600080fd5b6002546100f3906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6000546100f3906001600160a01b031681565b6100f361013136600461158e565b6004602052600090815260409020546001600160a01b031681565b61015f61015a3660046115fd565b61029a565b005b6003546100f3906001600160a01b031681565b61017d60015481565b604051908152602001610107565b61017d7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61015f6101c03660046116a9565b6102b2565b61015f6101d33660046116de565b6102c3565b61017d7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61015f61020d366004611724565b6102d5565b61017d7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b61017d7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b61015f61026e366004611775565b6103f3565b61017d7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b6102a98787878787878761060d565b50505050505050565b6102be83338484610998565b505050565b6102cf84848484610998565b50505050565b600254610100900460ff16158080156102f55750600254600160ff909116105b8061030f5750303b15801561030f575060025460ff166001145b6103775760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff19166001179055801561039a576002805461ff0019166101001790555b6103a685858585610cbb565b80156103ec576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b031633146104595760405162461bcd60e51b815260206004820152602360248201527f4368696c64455243313135355072656469636174653a204f4e4c595f4741544560448201526257415960e81b606482015260840161036e565b6002546001600160a01b038481166201000090920416146104cf5760405162461bcd60e51b815260206004820152602a60248201527f4368696c64455243313135355072656469636174653a204f4e4c595f524f4f546044820152695f50524544494341544560b01b606482015260840161036e565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216104fe6020600084866117fd565b61050791611827565b036105265761052161051c82602081866117fd565b610d7f565b6102cf565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d186105556020600084866117fd565b61055e91611827565b0361056d576105218282610fea565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad61059c6020600084866117fd565b6105a591611827565b036105b4576105218282611257565b60405162461bcd60e51b815260206004820152602860248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f5360448201526749474e415455524560c01b606482015260840161036e565b86610617816113c1565b6106335760405162461bcd60e51b815260040161036e90611845565b6000886001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610673573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106979190611888565b6001600160a01b038181166000908152600460205260409020549192508a81169116146106d65760405162461bcd60e51b815260040161036e906118a5565b6001600160a01b0381166106ec576106ec6118ea565b306001600160a01b0316896001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610734573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107589190611888565b6001600160a01b03161461076e5761076e6118ea565b868514801561077c57508483145b6107d65760405162461bcd60e51b815260206004820152602560248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f4c60448201526408a9c8ea8960db1b606482015260840161036e565b604051631ac8311560e21b81526001600160a01b038a1690636b20c4549061080a9033908a908a908a908a90600401611932565b6020604051808303816000875af1158015610829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084d9190611976565b6108695760405162461bcd60e51b815260040161036e90611998565b6000546002546040516001600160a01b039283169263417d5acb9262010000900416906108ca907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908f908f908f908f908f908f90602001611a23565b60408051601f19818403018152908290526001546001600160e01b031960e086901b1683526108fc9392600401611ad4565b600060405180830381600087803b15801561091657600080fd5b505af115801561092a573d6000803e3d6000fd5b50505050336001600160a01b0316896001600160a01b0316826001600160a01b03167fce612e98b81c726375e7c2395409e74ee0a29b22f7641ea5a8ce8508616448c08b8b8b8b8b8b60405161098596959493929190611b08565b60405180910390a4505050505050505050565b836109a2816113c1565b6109be5760405162461bcd60e51b815260040161036e90611845565b6000856001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a229190611888565b6001600160a01b03818116600090815260046020526040902054919250878116911614610a615760405162461bcd60e51b815260040161036e906118a5565b6001600160a01b038116610a7757610a776118ea565b306001600160a01b0316866001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae39190611888565b6001600160a01b031614610af957610af96118ea565b604051637a94c56560e11b81526001600160a01b0387169063f5298aca90610b2990339088908890600401611b51565b6020604051808303816000875af1158015610b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c9190611976565b610b885760405162461bcd60e51b815260040161036e90611998565b600054600254604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152898116608083015260a0820189905260c08083018990528351808403909101815260e083019384905260015463417d5acb60e01b9094529481169463417d5acb94610c2894620100009091049092169290919060e401611ad4565b600060405180830381600087803b158015610c4257600080fd5b505af1158015610c56573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b0316826001600160a01b03167fc42752949ca07109e6f25adcde4a9407be23e084b1d32ca2bce8aa55bf3dd625338888604051610cab93929190611b51565b60405180910390a4505050505050565b610cc58482611456565b6001600160a01b03831615801590610ce557506001600160a01b03821615155b610d435760405162461bcd60e51b815260206004820152602960248201527f4368696c64455243313135355072656469636174653a204241445f494e49544960448201526820a624ad20aa24a7a760b91b606482015260840161036e565b506002805462010000600160b01b031916620100006001600160a01b0394851602179055600380546001600160a01b0319169190921617905550565b600080808080610d9186880188611b72565b6001600160a01b03808616600090815260046020526040902054959a50939850919650945092501680610dd65760405162461bcd60e51b815260040161036e906118a5565b610ddf816113c1565b610deb57610deb6118ea565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4f9190611888565b9050866001600160a01b0316816001600160a01b031614610e7257610e726118ea565b6001600160a01b038116610e8857610e886118ea565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef49190611888565b6001600160a01b031614610f0a57610f0a6118ea565b604051630ab714fb60e11b81526001600160a01b0383169063156e29f690610f3a90889088908890600401611b51565b6020604051808303816000875af1158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d9190611976565b610f995760405162461bcd60e51b815260040161036e90611bcd565b846001600160a01b0316826001600160a01b0316886001600160a01b03167fbcbdf0c69f975f2a4085544938b054f02e77e87cbd055146d388c0be7120e04f89888860405161098593929190611b51565b600080808080610ffc86880188611ce3565b6001600160a01b03808616600090815260046020526040902054959b5093995091975095509350169050806110435760405162461bcd60e51b815260040161036e906118a5565b61104c816113c1565b611058576110586118ea565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611098573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bc9190611888565b9050866001600160a01b0316816001600160a01b0316146110df576110df6118ea565b6001600160a01b0381166110f5576110f56118ea565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561113d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111619190611888565b6001600160a01b031614611177576111776118ea565b604051635712868360e01b81526001600160a01b038316906357128683906111a790889088908890600401611e28565b6020604051808303816000875af11580156111c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ea9190611976565b6112065760405162461bcd60e51b815260040161036e90611bcd565b856001600160a01b0316826001600160a01b0316886001600160a01b03167f7e8ab6f25cb177d65db49b7a2197bb2a7df5757434857d411e2523b332a913e688888860405161098593929190611e28565b60008061126683850185611e9d565b9093509150506001600160a01b038216611282576112826118ea565b6001600160a01b0382811660009081526004602052604090205416156112aa576112aa6118ea565b6003546040516bffffffffffffffffffffffff19606085901b1660208201526000916112fa916001600160a01b0390911690603401604051602081830303815290604052805190602001206114df565b6001600160a01b0384811660009081526004602081905260409182902080546001600160a01b031916938516938417905590516379ccf11760e11b8152929350909163f399e22e91611350918791879101611f4d565b600060405180830381600087803b15801561136a57600080fd5b505af115801561137e573d6000803e3d6000fd5b50506040516001600160a01b038085169350861691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a35050505050565b6000816001600160a01b03163b6000036113dd57506000919050565b6040516301ffc9a760e01b8152636cdb3d1360e11b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611444575060408051601f3d908101601f1916820190925261144191810190611976565b60015b61145057506000919050565b92915050565b6001600160a01b0382161580159061146d57508015155b6114b95760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e000000604482015260640161036e565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166114505760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b604482015260640161036e565b6001600160a01b038116811461158b57600080fd5b50565b6000602082840312156115a057600080fd5b81356115ab81611576565b9392505050565b60008083601f8401126115c457600080fd5b5081356001600160401b038111156115db57600080fd5b6020830191508360208260051b85010111156115f657600080fd5b9250929050565b60008060008060008060006080888a03121561161857600080fd5b873561162381611576565b965060208801356001600160401b038082111561163f57600080fd5b61164b8b838c016115b2565b909850965060408a013591508082111561166457600080fd5b6116708b838c016115b2565b909650945060608a013591508082111561168957600080fd5b506116968a828b016115b2565b989b979a50959850939692959293505050565b6000806000606084860312156116be57600080fd5b83356116c981611576565b95602085013595506040909401359392505050565b600080600080608085870312156116f457600080fd5b84356116ff81611576565b9350602085013561170f81611576565b93969395505050506040820135916060013590565b6000806000806080858703121561173a57600080fd5b843561174581611576565b9350602085013561175581611576565b9250604085013561176581611576565b9396929550929360600135925050565b6000806000806060858703121561178b57600080fd5b84359350602085013561179d81611576565b925060408501356001600160401b03808211156117b957600080fd5b818701915087601f8301126117cd57600080fd5b8135818111156117dc57600080fd5b8860208285010111156117ee57600080fd5b95989497505060200194505050565b6000808585111561180d57600080fd5b8386111561181a57600080fd5b5050820193919092039150565b8035602083101561145057600019602084900360031b1b1692915050565b60208082526023908201527f4368696c64455243313135355072656469636174653a204e4f545f434f4e54526040820152621050d560ea1b606082015260800190565b60006020828403121561189a57600080fd5b81516115ab81611576565b60208082526025908201527f4368696c64455243313135355072656469636174653a20554e4d41505045445f6040820152642a27a5a2a760d91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b0383111561191957600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03861681526060602082018190526000906119579083018688611900565b828103604084015261196a818587611900565b98975050505050505050565b60006020828403121561198857600080fd5b815180151581146115ab57600080fd5b60208082526022908201527f4368696c64455243313135355072656469636174653a204255524e5f4641494c604082015261115160f21b606082015260800190565b8183526000602080850194508260005b85811015611a185781356119fd81611576565b6001600160a01b0316875295820195908201906001016119ea565b509495945050505050565b8981526001600160a01b0389811660208301528816604082015260c060608201819052600090611a56908301888a6119da565b8281036080840152611a69818789611900565b905082810360a0840152611a7e818587611900565b9c9b505050505050505050505050565b6000815180845260005b81811015611ab457602081850181015186830182015201611a98565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090611af890830185611a8e565b9050826040830152949350505050565b606081526000611b1c60608301888a6119da565b8281036020840152611b2f818789611900565b90508281036040840152611b44818587611900565b9998505050505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b600080600080600060a08688031215611b8a57600080fd5b8535611b9581611576565b94506020860135611ba581611576565b93506040860135611bb581611576565b94979396509394606081013594506080013592915050565b60208082526022908201527f4368696c64455243313135355072656469636174653a204d494e545f4641494c604082015261115160f21b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c4d57611c4d611c0f565b604052919050565b60006001600160401b03821115611c6e57611c6e611c0f565b5060051b60200190565b600082601f830112611c8957600080fd5b81356020611c9e611c9983611c55565b611c25565b82815260059290921b84018101918181019086841115611cbd57600080fd5b8286015b84811015611cd85780358352918301918301611cc1565b509695505050505050565b60008060008060008060c08789031215611cfc57600080fd5b86359550602080880135611d0f81611576565b95506040880135611d1f81611576565b945060608801356001600160401b0380821115611d3b57600080fd5b818a0191508a601f830112611d4f57600080fd5b8135611d5d611c9982611c55565b81815260059190911b8301840190848101908d831115611d7c57600080fd5b938501935b82851015611da3578435611d9481611576565b82529385019390850190611d81565b9750505060808a0135925080831115611dbb57600080fd5b611dc78b848c01611c78565b945060a08a0135925080831115611ddd57600080fd5b5050611deb89828a01611c78565b9150509295509295509295565b600081518084526020808501945080840160005b83811015611a1857815187529582019590820190600101611e0c565b606080825284519082018190526000906020906080840190828801845b82811015611e6a5781516001600160a01b031684529284019290840190600101611e45565b50505083810382850152611e7e8187611df8565b9150508281036040840152611e938185611df8565b9695505050505050565b600080600060608486031215611eb257600080fd5b83359250602080850135611ec581611576565b925060408501356001600160401b0380821115611ee157600080fd5b818701915087601f830112611ef557600080fd5b813581811115611f0757611f07611c0f565b611f19601f8201601f19168501611c25565b91508082528884828501011115611f2f57600080fd5b80848401858401376000848284010152508093505050509250925092565b6001600160a01b0383168152604060208201819052600090611f7190830184611a8e565b94935050505056fea2646970667358221220394e3265c80547a1a47a5f93a76061ccc6e8badba0074b034143b6e144d24e7c64736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` +var ChildERC1155PredicateACLArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"ChildERC1155PredicateAccessList","sourceName":"contracts/blade/ChildERC1155PredicateAccessList.sol","abi":[{"inputs":[{"internalType":"string","name":"only","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"AllowListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"BlockListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC1155Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"ERC1155DepositBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC1155Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"ERC1155WithdrawBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC1155Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"},{"internalType":"bool","name":"newUseAllowList","type":"bool"},{"internalType":"bool","name":"newUseBlockList","type":"bool"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newRootERC1155Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootERC1155Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseAllowList","type":"bool"}],"name":"setAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseBlockList","type":"bool"}],"name":"setBlockList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sourceTokenToDestinationToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC1155","name":"childToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC1155","name":"childToken","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"withdrawBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IChildERC1155","name":"childToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawTo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b506127e7806100206000396000f3fe608060405234801561001057600080fd5b506004361061019a5760003560e01c8063947287cf116100e4578063c5e4683a11610092578063c5e4683a14610354578063cf756fdf14610367578063d41f17711461037a578063d7c9e3ec146103a1578063e30c3978146103c8578063eeb49945146103d9578063f2fde38b146103ec578063f6451255146103ff57600080fd5b8063947287cf146102bb578063b0750611146102c4578063b1768065146102cd578063b5c5f672146102f4578063b8cd3ec014610307578063c1225a201461031a578063c5ac2b1c1461032d57600080fd5b806355b01e4d1161014c57806355b01e4d1461023a57806359a85e08146102485780635ea5df791461025d578063715018a61461027457806379ba50971461027c57806386937eb4146102845780638da5cb5b146102975780639079dfb3146102a857600080fd5b8063051eb2e21461019f57806307b3e252146101cf578063116191b6146101dd578063284017f5146101f05780633b878c22146101f957806340acd98d1461020257806351351d531461022c575b600080fd5b60fe546101b2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101b26004600360981b0181565b6000546101b2906001600160a01b031681565b6101b261202081565b6101b261101081565b6101b2610210366004611c86565b610100602052600090815260409020546001600160a01b031681565b6101b26002600160a01b0381565b6101b26004600160991b0181565b61025b610256366004611cb8565b610426565b005b61026661138881565b6040519081526020016101c6565b61025b610569565b61025b61057d565b61025b610292366004611d90565b6105f7565b6035546001600160a01b03166101b2565b60ff546101b2906001600160a01b031681565b61026661520881565b61026660015481565b6102667f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61025b610302366004611e3c565b610617565b61025b610315366004611e71565b610630565b61025b610328366004611eb7565b61064a565b6102667faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61025b610362366004611eb7565b610699565b61025b610375366004611ed4565b6106e0565b6102667f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6102667f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101b2565b61025b6103e7366004611f25565b6107b2565b61025b6103fa366004611c86565b6109c6565b6102667f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b336002600160a01b031461046f5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064015b60405180910390fd5b600254610100900460ff161580801561048f5750600254600160ff909116105b806104a95750303b1580156104a9575060025460ff166001145b6104c55760405162461bcd60e51b815260040161046690611fad565b6002805460ff1916600117905580156104e8576002805461ff0019166101001790555b6104f488888888610a37565b60cb805461ffff191685151561ff001916176101008515150217905561051982610aef565b801561055f576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b610571610b08565b61057b6000610aef565b565b60675433906001600160a01b031681146105eb5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610466565b6105f481610aef565b50565b6105ff610b62565b61060e87878787878787610b6a565b50505050505050565b61061f610b62565b61062b83338484610ef0565b505050565b610638610b62565b61064484848484610ef0565b50505050565b610652610b08565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b6106a1610b08565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b600254610100900460ff16158080156107005750600254600160ff909116105b8061071a5750303b15801561071a575060025460ff166001145b6107365760405162461bcd60e51b815260040161046690611fad565b6002805460ff191660011790558015610759576002805461ff0019166101001790555b61076585858585610a37565b80156107ab576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b031633146108185760405162461bcd60e51b815260206004820152602360248201527f4368696c64455243313135355072656469636174653a204f4e4c595f4741544560448201526257415960e81b6064820152608401610466565b60fe546001600160a01b038481169116146108885760405162461bcd60e51b815260206004820152602a60248201527f4368696c64455243313135355072656469636174653a204f4e4c595f524f4f546044820152695f50524544494341544560b01b6064820152608401610466565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216108b7602060008486611ffb565b6108c091612025565b036108df576108da6108d58260208186611ffb565b61120c565b610644565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1861090e602060008486611ffb565b61091791612025565b03610926576108da8282611478565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad610955602060008486611ffb565b61095e91612025565b0361096d576108da82826116e6565b60405162461bcd60e51b815260206004820152602860248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f5360448201526749474e415455524560c01b6064820152608401610466565b6109ce610b08565b606780546001600160a01b0383166001600160a01b031990911681179091556109ff6035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610a418482611850565b6001600160a01b03831615801590610a6157506001600160a01b03821615155b610abf5760405162461bcd60e51b815260206004820152602960248201527f4368696c64455243313135355072656469636174653a204241445f494e49544960448201526820a624ad20aa24a7a760b91b6064820152608401610466565b5060fe80546001600160a01b039384166001600160a01b03199182161790915560ff805492909316911617905550565b606780546001600160a01b03191690556105f4816118d9565b6035546001600160a01b0316331461057b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610466565b61057b61192b565b86610b7481611b45565b610b905760405162461bcd60e51b815260040161046690612043565b6000886001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf49190612086565b6001600160a01b03818116600090815261010060205260409020549192508a8116911614610c345760405162461bcd60e51b8152600401610466906120a3565b6001600160a01b038116610c4a57610c4a6120e8565b306001600160a01b0316896001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190612086565b6001600160a01b031614610ccc57610ccc6120e8565b8685148015610cda57508483145b610d345760405162461bcd60e51b815260206004820152602560248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f4c60448201526408a9c8ea8960db1b6064820152608401610466565b604051631ac8311560e21b81526001600160a01b038a1690636b20c45490610d689033908a908a908a908a90600401612130565b6020604051808303816000875af1158015610d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dab9190612174565b610dc75760405162461bcd60e51b815260040161046690612191565b60005460fe546040516001600160a01b039283169263417d5acb921690610e22907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908f908f908f908f908f908f9060200161221c565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610e5493926004016122d7565b600060405180830381600087803b158015610e6e57600080fd5b505af1158015610e82573d6000803e3d6000fd5b50505050336001600160a01b0316896001600160a01b0316826001600160a01b03167fce612e98b81c726375e7c2395409e74ee0a29b22f7641ea5a8ce8508616448c08b8b8b8b8b8b604051610edd9695949392919061230b565b60405180910390a4505050505050505050565b83610efa81611b45565b610f165760405162461bcd60e51b815260040161046690612043565b6000856001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7a9190612086565b6001600160a01b0381811660009081526101006020526040902054919250878116911614610fba5760405162461bcd60e51b8152600401610466906120a3565b6001600160a01b038116610fd057610fd06120e8565b306001600160a01b0316866001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015611018573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103c9190612086565b6001600160a01b031614611052576110526120e8565b604051637a94c56560e11b81526001600160a01b0387169063f5298aca9061108290339088908890600401612354565b6020604051808303816000875af11580156110a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c59190612174565b6110e15760405162461bcd60e51b815260040161046690612191565b60005460fe54604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152898116608083015260a0820189905260c08083018990528351808403909101815260e083019384905260015463417d5acb60e01b9094529481169463417d5acb946111799492169290919060e4016122d7565b600060405180830381600087803b15801561119357600080fd5b505af11580156111a7573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b0316826001600160a01b03167fc42752949ca07109e6f25adcde4a9407be23e084b1d32ca2bce8aa55bf3dd6253388886040516111fc93929190612354565b60405180910390a4505050505050565b60008080808061121e86880188612375565b6001600160a01b0380861660009081526101006020526040902054959a509398509196509450925016806112645760405162461bcd60e51b8152600401610466906120a3565b61126d81611b45565b611279576112796120e8565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dd9190612086565b9050866001600160a01b0316816001600160a01b031614611300576113006120e8565b6001600160a01b038116611316576113166120e8565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561135e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113829190612086565b6001600160a01b031614611398576113986120e8565b604051630ab714fb60e11b81526001600160a01b0383169063156e29f6906113c890889088908890600401612354565b6020604051808303816000875af11580156113e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140b9190612174565b6114275760405162461bcd60e51b8152600401610466906123d0565b846001600160a01b0316826001600160a01b0316886001600160a01b03167fbcbdf0c69f975f2a4085544938b054f02e77e87cbd055146d388c0be7120e04f898888604051610edd93929190612354565b60008080808061148a868801886124e6565b6001600160a01b0380861660009081526101006020526040902054959b5093995091975095509350169050806114d25760405162461bcd60e51b8152600401610466906120a3565b6114db81611b45565b6114e7576114e76120e8565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b9190612086565b9050866001600160a01b0316816001600160a01b03161461156e5761156e6120e8565b6001600160a01b038116611584576115846120e8565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f09190612086565b6001600160a01b031614611606576116066120e8565b604051635712868360e01b81526001600160a01b038316906357128683906116369088908890889060040161262b565b6020604051808303816000875af1158015611655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116799190612174565b6116955760405162461bcd60e51b8152600401610466906123d0565b856001600160a01b0316826001600160a01b0316886001600160a01b03167f7e8ab6f25cb177d65db49b7a2197bb2a7df5757434857d411e2523b332a913e6888888604051610edd9392919061262b565b6000806116f5838501856126a0565b9093509150506001600160a01b038216611711576117116120e8565b6001600160a01b0382811660009081526101006020526040902054161561173a5761173a6120e8565b60ff546040516bffffffffffffffffffffffff19606085901b16602082015260009161178a916001600160a01b039091169060340160405160208183030381529060405280519060200120611bda565b6001600160a01b03848116600090815261010060205260409081902080546001600160a01b0319169284169283179055516379ccf11760e11b81529192509063f399e22e906117df9086908690600401612750565b600060405180830381600087803b1580156117f957600080fd5b505af115801561180d573d6000803e3d6000fd5b50506040516001600160a01b038085169350861691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a35050505050565b6001600160a01b0382161580159061186757508015155b6118b35760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610466565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff1615611a3657604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b01916113889161198d919061277c565b6000604051808303818686fa925050503d80600081146119c9576040519150601f19603f3d011682016040523d82523d6000602084013e6119ce565b606091505b50915091508180156119f357506000818060200190518101906119f19190612798565b115b611a335760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b6044820152606401610466565b50505b60cb54610100900460ff161561057b57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b019161138891611a9d919061277c565b6000604051808303818686fa925050503d8060008114611ad9576040519150601f19603f3d011682016040523d82523d6000602084013e611ade565b606091505b5091509150818015611b04575080806020019051810190611aff9190612798565b600114155b611b415760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b6044820152606401610466565b5050565b6000816001600160a01b03163b600003611b6157506000919050565b6040516301ffc9a760e01b8152636cdb3d1360e11b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611bc8575060408051601f3d908101601f19168201909252611bc591810190612174565b60015b611bd457506000919050565b92915050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116611bd45760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610466565b6001600160a01b03811681146105f457600080fd5b600060208284031215611c9857600080fd5b8135611ca381611c71565b9392505050565b80151581146105f457600080fd5b600080600080600080600060e0888a031215611cd357600080fd5b8735611cde81611c71565b96506020880135611cee81611c71565b95506040880135611cfe81611c71565b9450606088013593506080880135611d1581611caa565b925060a0880135611d2581611caa565b915060c0880135611d3581611c71565b8091505092959891949750929550565b60008083601f840112611d5757600080fd5b5081356001600160401b03811115611d6e57600080fd5b6020830191508360208260051b8501011115611d8957600080fd5b9250929050565b60008060008060008060006080888a031215611dab57600080fd5b8735611db681611c71565b965060208801356001600160401b0380821115611dd257600080fd5b611dde8b838c01611d45565b909850965060408a0135915080821115611df757600080fd5b611e038b838c01611d45565b909650945060608a0135915080821115611e1c57600080fd5b50611e298a828b01611d45565b989b979a50959850939692959293505050565b600080600060608486031215611e5157600080fd5b8335611e5c81611c71565b95602085013595506040909401359392505050565b60008060008060808587031215611e8757600080fd5b8435611e9281611c71565b93506020850135611ea281611c71565b93969395505050506040820135916060013590565b600060208284031215611ec957600080fd5b8135611ca381611caa565b60008060008060808587031215611eea57600080fd5b8435611ef581611c71565b93506020850135611f0581611c71565b92506040850135611f1581611c71565b9396929550929360600135925050565b60008060008060608587031215611f3b57600080fd5b843593506020850135611f4d81611c71565b925060408501356001600160401b0380821115611f6957600080fd5b818701915087601f830112611f7d57600080fd5b813581811115611f8c57600080fd5b886020828501011115611f9e57600080fd5b95989497505060200194505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000808585111561200b57600080fd5b8386111561201857600080fd5b5050820193919092039150565b80356020831015611bd457600019602084900360031b1b1692915050565b60208082526023908201527f4368696c64455243313135355072656469636174653a204e4f545f434f4e54526040820152621050d560ea1b606082015260800190565b60006020828403121561209857600080fd5b8151611ca381611c71565b60208082526025908201527f4368696c64455243313135355072656469636174653a20554e4d41505045445f6040820152642a27a5a2a760d91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b0383111561211757600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b038616815260606020820181905260009061215590830186886120fe565b82810360408401526121688185876120fe565b98975050505050505050565b60006020828403121561218657600080fd5b8151611ca381611caa565b60208082526022908201527f4368696c64455243313135355072656469636174653a204255524e5f4641494c604082015261115160f21b606082015260800190565b8183526000602080850194508260005b858110156122115781356121f681611c71565b6001600160a01b0316875295820195908201906001016121e3565b509495945050505050565b8981526001600160a01b0389811660208301528816604082015260c06060820181905260009061224f908301888a6121d3565b82810360808401526122628187896120fe565b905082810360a08401526122778185876120fe565b9c9b505050505050505050505050565b60005b838110156122a257818101518382015260200161228a565b50506000910152565b600081518084526122c3816020860160208601612287565b601f01601f19169290920160200192915050565b6001600160a01b03841681526060602082018190526000906122fb908301856122ab565b9050826040830152949350505050565b60608152600061231f60608301888a6121d3565b82810360208401526123328187896120fe565b905082810360408401526123478185876120fe565b9998505050505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b600080600080600060a0868803121561238d57600080fd5b853561239881611c71565b945060208601356123a881611c71565b935060408601356123b881611c71565b94979396509394606081013594506080013592915050565b60208082526022908201527f4368696c64455243313135355072656469636174653a204d494e545f4641494c604082015261115160f21b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561245057612450612412565b604052919050565b60006001600160401b0382111561247157612471612412565b5060051b60200190565b600082601f83011261248c57600080fd5b813560206124a161249c83612458565b612428565b82815260059290921b840181019181810190868411156124c057600080fd5b8286015b848110156124db57803583529183019183016124c4565b509695505050505050565b60008060008060008060c087890312156124ff57600080fd5b8635955060208088013561251281611c71565b9550604088013561252281611c71565b945060608801356001600160401b038082111561253e57600080fd5b818a0191508a601f83011261255257600080fd5b813561256061249c82612458565b81815260059190911b8301840190848101908d83111561257f57600080fd5b938501935b828510156125a657843561259781611c71565b82529385019390850190612584565b9750505060808a01359250808311156125be57600080fd5b6125ca8b848c0161247b565b945060a08a01359250808311156125e057600080fd5b50506125ee89828a0161247b565b9150509295509295509295565b600081518084526020808501945080840160005b838110156122115781518752958201959082019060010161260f565b606080825284519082018190526000906020906080840190828801845b8281101561266d5781516001600160a01b031684529284019290840190600101612648565b5050508381038285015261268181876125fb565b915050828103604084015261269681856125fb565b9695505050505050565b6000806000606084860312156126b557600080fd5b833592506020808501356126c881611c71565b925060408501356001600160401b03808211156126e457600080fd5b818701915087601f8301126126f857600080fd5b81358181111561270a5761270a612412565b61271c601f8201601f19168501612428565b9150808252888482850101111561273257600080fd5b80848401858401376000848284010152508093505050509250925092565b6001600160a01b0383168152604060208201819052600090612774908301846122ab565b949350505050565b6000825161278e818460208701612287565b9190910192915050565b6000602082840312156127aa57600080fd5b505191905056fea264697066735822122065c2113c687dfb939bfd2bb6db3fe55b214b17cbc3757cd367760cf638e09e7b64736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b506004361061019a5760003560e01c8063947287cf116100e4578063c5e4683a11610092578063c5e4683a14610354578063cf756fdf14610367578063d41f17711461037a578063d7c9e3ec146103a1578063e30c3978146103c8578063eeb49945146103d9578063f2fde38b146103ec578063f6451255146103ff57600080fd5b8063947287cf146102bb578063b0750611146102c4578063b1768065146102cd578063b5c5f672146102f4578063b8cd3ec014610307578063c1225a201461031a578063c5ac2b1c1461032d57600080fd5b806355b01e4d1161014c57806355b01e4d1461023a57806359a85e08146102485780635ea5df791461025d578063715018a61461027457806379ba50971461027c57806386937eb4146102845780638da5cb5b146102975780639079dfb3146102a857600080fd5b8063051eb2e21461019f57806307b3e252146101cf578063116191b6146101dd578063284017f5146101f05780633b878c22146101f957806340acd98d1461020257806351351d531461022c575b600080fd5b60fe546101b2906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101b26004600360981b0181565b6000546101b2906001600160a01b031681565b6101b261202081565b6101b261101081565b6101b2610210366004611c86565b610100602052600090815260409020546001600160a01b031681565b6101b26002600160a01b0381565b6101b26004600160991b0181565b61025b610256366004611cb8565b610426565b005b61026661138881565b6040519081526020016101c6565b61025b610569565b61025b61057d565b61025b610292366004611d90565b6105f7565b6035546001600160a01b03166101b2565b60ff546101b2906001600160a01b031681565b61026661520881565b61026660015481565b6102667f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b61025b610302366004611e3c565b610617565b61025b610315366004611e71565b610630565b61025b610328366004611eb7565b61064a565b6102667faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61025b610362366004611eb7565b610699565b61025b610375366004611ed4565b6106e0565b6102667f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6102667f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b03166101b2565b61025b6103e7366004611f25565b6107b2565b61025b6103fa366004611c86565b6109c6565b6102667f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b336002600160a01b031461046f5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064015b60405180910390fd5b600254610100900460ff161580801561048f5750600254600160ff909116105b806104a95750303b1580156104a9575060025460ff166001145b6104c55760405162461bcd60e51b815260040161046690611fad565b6002805460ff1916600117905580156104e8576002805461ff0019166101001790555b6104f488888888610a37565b60cb805461ffff191685151561ff001916176101008515150217905561051982610aef565b801561055f576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b610571610b08565b61057b6000610aef565b565b60675433906001600160a01b031681146105eb5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610466565b6105f481610aef565b50565b6105ff610b62565b61060e87878787878787610b6a565b50505050505050565b61061f610b62565b61062b83338484610ef0565b505050565b610638610b62565b61064484848484610ef0565b50505050565b610652610b08565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b6106a1610b08565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b600254610100900460ff16158080156107005750600254600160ff909116105b8061071a5750303b15801561071a575060025460ff166001145b6107365760405162461bcd60e51b815260040161046690611fad565b6002805460ff191660011790558015610759576002805461ff0019166101001790555b61076585858585610a37565b80156107ab576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b031633146108185760405162461bcd60e51b815260206004820152602360248201527f4368696c64455243313135355072656469636174653a204f4e4c595f4741544560448201526257415960e81b6064820152608401610466565b60fe546001600160a01b038481169116146108885760405162461bcd60e51b815260206004820152602a60248201527f4368696c64455243313135355072656469636174653a204f4e4c595f524f4f546044820152695f50524544494341544560b01b6064820152608401610466565b7f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f8216108b7602060008486611ffb565b6108c091612025565b036108df576108da6108d58260208186611ffb565b61120c565b610644565b7faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1861090e602060008486611ffb565b61091791612025565b03610926576108da8282611478565b7f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad610955602060008486611ffb565b61095e91612025565b0361096d576108da82826116e6565b60405162461bcd60e51b815260206004820152602860248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f5360448201526749474e415455524560c01b6064820152608401610466565b6109ce610b08565b606780546001600160a01b0383166001600160a01b031990911681179091556109ff6035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b610a418482611850565b6001600160a01b03831615801590610a6157506001600160a01b03821615155b610abf5760405162461bcd60e51b815260206004820152602960248201527f4368696c64455243313135355072656469636174653a204241445f494e49544960448201526820a624ad20aa24a7a760b91b6064820152608401610466565b5060fe80546001600160a01b039384166001600160a01b03199182161790915560ff805492909316911617905550565b606780546001600160a01b03191690556105f4816118d9565b6035546001600160a01b0316331461057b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610466565b61057b61192b565b86610b7481611b45565b610b905760405162461bcd60e51b815260040161046690612043565b6000886001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf49190612086565b6001600160a01b03818116600090815261010060205260409020549192508a8116911614610c345760405162461bcd60e51b8152600401610466906120a3565b6001600160a01b038116610c4a57610c4a6120e8565b306001600160a01b0316896001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190612086565b6001600160a01b031614610ccc57610ccc6120e8565b8685148015610cda57508483145b610d345760405162461bcd60e51b815260206004820152602560248201527f4368696c64455243313135355072656469636174653a20494e56414c49445f4c60448201526408a9c8ea8960db1b6064820152608401610466565b604051631ac8311560e21b81526001600160a01b038a1690636b20c45490610d689033908a908a908a908a90600401612130565b6020604051808303816000875af1158015610d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dab9190612174565b610dc75760405162461bcd60e51b815260040161046690612191565b60005460fe546040516001600160a01b039283169263417d5acb921690610e22907f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed290869033908f908f908f908f908f908f9060200161221c565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610e5493926004016122d7565b600060405180830381600087803b158015610e6e57600080fd5b505af1158015610e82573d6000803e3d6000fd5b50505050336001600160a01b0316896001600160a01b0316826001600160a01b03167fce612e98b81c726375e7c2395409e74ee0a29b22f7641ea5a8ce8508616448c08b8b8b8b8b8b604051610edd9695949392919061230b565b60405180910390a4505050505050505050565b83610efa81611b45565b610f165760405162461bcd60e51b815260040161046690612043565b6000856001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7a9190612086565b6001600160a01b0381811660009081526101006020526040902054919250878116911614610fba5760405162461bcd60e51b8152600401610466906120a3565b6001600160a01b038116610fd057610fd06120e8565b306001600160a01b0316866001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa158015611018573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103c9190612086565b6001600160a01b031614611052576110526120e8565b604051637a94c56560e11b81526001600160a01b0387169063f5298aca9061108290339088908890600401612354565b6020604051808303816000875af11580156110a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c59190612174565b6110e15760405162461bcd60e51b815260040161046690612191565b60005460fe54604080517f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286960208201526001600160a01b0385811682840152336060830152898116608083015260a0820189905260c08083018990528351808403909101815260e083019384905260015463417d5acb60e01b9094529481169463417d5acb946111799492169290919060e4016122d7565b600060405180830381600087803b15801561119357600080fd5b505af11580156111a7573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b0316826001600160a01b03167fc42752949ca07109e6f25adcde4a9407be23e084b1d32ca2bce8aa55bf3dd6253388886040516111fc93929190612354565b60405180910390a4505050505050565b60008080808061121e86880188612375565b6001600160a01b0380861660009081526101006020526040902054959a509398509196509450925016806112645760405162461bcd60e51b8152600401610466906120a3565b61126d81611b45565b611279576112796120e8565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112dd9190612086565b9050866001600160a01b0316816001600160a01b031614611300576113006120e8565b6001600160a01b038116611316576113166120e8565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa15801561135e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113829190612086565b6001600160a01b031614611398576113986120e8565b604051630ab714fb60e11b81526001600160a01b0383169063156e29f6906113c890889088908890600401612354565b6020604051808303816000875af11580156113e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140b9190612174565b6114275760405162461bcd60e51b8152600401610466906123d0565b846001600160a01b0316826001600160a01b0316886001600160a01b03167fbcbdf0c69f975f2a4085544938b054f02e77e87cbd055146d388c0be7120e04f898888604051610edd93929190612354565b60008080808061148a868801886124e6565b6001600160a01b0380861660009081526101006020526040902054959b5093995091975095509350169050806114d25760405162461bcd60e51b8152600401610466906120a3565b6114db81611b45565b6114e7576114e76120e8565b6000816001600160a01b0316631f2d00656040518163ffffffff1660e01b8152600401602060405180830381865afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b9190612086565b9050866001600160a01b0316816001600160a01b03161461156e5761156e6120e8565b6001600160a01b038116611584576115846120e8565b306001600160a01b0316826001600160a01b031663e61987056040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f09190612086565b6001600160a01b031614611606576116066120e8565b604051635712868360e01b81526001600160a01b038316906357128683906116369088908890889060040161262b565b6020604051808303816000875af1158015611655573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116799190612174565b6116955760405162461bcd60e51b8152600401610466906123d0565b856001600160a01b0316826001600160a01b0316886001600160a01b03167f7e8ab6f25cb177d65db49b7a2197bb2a7df5757434857d411e2523b332a913e6888888604051610edd9392919061262b565b6000806116f5838501856126a0565b9093509150506001600160a01b038216611711576117116120e8565b6001600160a01b0382811660009081526101006020526040902054161561173a5761173a6120e8565b60ff546040516bffffffffffffffffffffffff19606085901b16602082015260009161178a916001600160a01b039091169060340160405160208183030381529060405280519060200120611bda565b6001600160a01b03848116600090815261010060205260409081902080546001600160a01b0319169284169283179055516379ccf11760e11b81529192509063f399e22e906117df9086908690600401612750565b600060405180830381600087803b1580156117f957600080fd5b505af115801561180d573d6000803e3d6000fd5b50506040516001600160a01b038085169350861691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a35050505050565b6001600160a01b0382161580159061186757508015155b6118b35760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e0000006044820152606401610466565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff1615611a3657604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b01916113889161198d919061277c565b6000604051808303818686fa925050503d80600081146119c9576040519150601f19603f3d011682016040523d82523d6000602084013e6119ce565b606091505b50915091508180156119f357506000818060200190518101906119f19190612798565b115b611a335760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b6044820152606401610466565b50505b60cb54610100900460ff161561057b57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b019161138891611a9d919061277c565b6000604051808303818686fa925050503d8060008114611ad9576040519150601f19603f3d011682016040523d82523d6000602084013e611ade565b606091505b5091509150818015611b04575080806020019051810190611aff9190612798565b600114155b611b415760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b6044820152606401610466565b5050565b6000816001600160a01b03163b600003611b6157506000919050565b6040516301ffc9a760e01b8152636cdb3d1360e11b60048201526001600160a01b038316906301ffc9a790602401602060405180830381865afa925050508015611bc8575060408051601f3d908101601f19168201909252611bc591810190612174565b60015b611bd457506000919050565b92915050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116611bd45760405162461bcd60e51b8152602060048201526017602482015276115490cc4c4d8dce8818dc99585d194c8819985a5b1959604a1b6044820152606401610466565b6001600160a01b03811681146105f457600080fd5b600060208284031215611c9857600080fd5b8135611ca381611c71565b9392505050565b80151581146105f457600080fd5b600080600080600080600060e0888a031215611cd357600080fd5b8735611cde81611c71565b96506020880135611cee81611c71565b95506040880135611cfe81611c71565b9450606088013593506080880135611d1581611caa565b925060a0880135611d2581611caa565b915060c0880135611d3581611c71565b8091505092959891949750929550565b60008083601f840112611d5757600080fd5b5081356001600160401b03811115611d6e57600080fd5b6020830191508360208260051b8501011115611d8957600080fd5b9250929050565b60008060008060008060006080888a031215611dab57600080fd5b8735611db681611c71565b965060208801356001600160401b0380821115611dd257600080fd5b611dde8b838c01611d45565b909850965060408a0135915080821115611df757600080fd5b611e038b838c01611d45565b909650945060608a0135915080821115611e1c57600080fd5b50611e298a828b01611d45565b989b979a50959850939692959293505050565b600080600060608486031215611e5157600080fd5b8335611e5c81611c71565b95602085013595506040909401359392505050565b60008060008060808587031215611e8757600080fd5b8435611e9281611c71565b93506020850135611ea281611c71565b93969395505050506040820135916060013590565b600060208284031215611ec957600080fd5b8135611ca381611caa565b60008060008060808587031215611eea57600080fd5b8435611ef581611c71565b93506020850135611f0581611c71565b92506040850135611f1581611c71565b9396929550929360600135925050565b60008060008060608587031215611f3b57600080fd5b843593506020850135611f4d81611c71565b925060408501356001600160401b0380821115611f6957600080fd5b818701915087601f830112611f7d57600080fd5b813581811115611f8c57600080fd5b886020828501011115611f9e57600080fd5b95989497505060200194505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000808585111561200b57600080fd5b8386111561201857600080fd5b5050820193919092039150565b80356020831015611bd457600019602084900360031b1b1692915050565b60208082526023908201527f4368696c64455243313135355072656469636174653a204e4f545f434f4e54526040820152621050d560ea1b606082015260800190565b60006020828403121561209857600080fd5b8151611ca381611c71565b60208082526025908201527f4368696c64455243313135355072656469636174653a20554e4d41505045445f6040820152642a27a5a2a760d91b606082015260800190565b634e487b7160e01b600052600160045260246000fd5b81835260006001600160fb1b0383111561211757600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b038616815260606020820181905260009061215590830186886120fe565b82810360408401526121688185876120fe565b98975050505050505050565b60006020828403121561218657600080fd5b8151611ca381611caa565b60208082526022908201527f4368696c64455243313135355072656469636174653a204255524e5f4641494c604082015261115160f21b606082015260800190565b8183526000602080850194508260005b858110156122115781356121f681611c71565b6001600160a01b0316875295820195908201906001016121e3565b509495945050505050565b8981526001600160a01b0389811660208301528816604082015260c06060820181905260009061224f908301888a6121d3565b82810360808401526122628187896120fe565b905082810360a08401526122778185876120fe565b9c9b505050505050505050505050565b60005b838110156122a257818101518382015260200161228a565b50506000910152565b600081518084526122c3816020860160208601612287565b601f01601f19169290920160200192915050565b6001600160a01b03841681526060602082018190526000906122fb908301856122ab565b9050826040830152949350505050565b60608152600061231f60608301888a6121d3565b82810360208401526123328187896120fe565b905082810360408401526123478185876120fe565b9998505050505050505050565b6001600160a01b039390931683526020830191909152604082015260600190565b600080600080600060a0868803121561238d57600080fd5b853561239881611c71565b945060208601356123a881611c71565b935060408601356123b881611c71565b94979396509394606081013594506080013592915050565b60208082526022908201527f4368696c64455243313135355072656469636174653a204d494e545f4641494c604082015261115160f21b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561245057612450612412565b604052919050565b60006001600160401b0382111561247157612471612412565b5060051b60200190565b600082601f83011261248c57600080fd5b813560206124a161249c83612458565b612428565b82815260059290921b840181019181810190868411156124c057600080fd5b8286015b848110156124db57803583529183019183016124c4565b509695505050505050565b60008060008060008060c087890312156124ff57600080fd5b8635955060208088013561251281611c71565b9550604088013561252281611c71565b945060608801356001600160401b038082111561253e57600080fd5b818a0191508a601f83011261255257600080fd5b813561256061249c82612458565b81815260059190911b8301840190848101908d83111561257f57600080fd5b938501935b828510156125a657843561259781611c71565b82529385019390850190612584565b9750505060808a01359250808311156125be57600080fd5b6125ca8b848c0161247b565b945060a08a01359250808311156125e057600080fd5b50506125ee89828a0161247b565b9150509295509295509295565b600081518084526020808501945080840160005b838110156122115781518752958201959082019060010161260f565b606080825284519082018190526000906020906080840190828801845b8281101561266d5781516001600160a01b031684529284019290840190600101612648565b5050508381038285015261268181876125fb565b915050828103604084015261269681856125fb565b9695505050505050565b6000806000606084860312156126b557600080fd5b833592506020808501356126c881611c71565b925060408501356001600160401b03808211156126e457600080fd5b818701915087601f8301126126f857600080fd5b81358181111561270a5761270a612412565b61271c601f8201601f19168501612428565b9150808252888482850101111561273257600080fd5b80848401858401376000848284010152508093505050509250925092565b6001600160a01b0383168152604060208201819052600090612774908301846122ab565b949350505050565b6000825161278e818460208701612287565b9190910192915050565b6000602082840312156127aa57600080fd5b505191905056fea264697066735822122065c2113c687dfb939bfd2bb6db3fe55b214b17cbc3757cd367760cf638e09e7b64736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` var RootMintableERC1155PredicateACLArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"RootMintableERC1155PredicateAccessList","sourceName":"contracts/blade/RootMintableERC1155PredicateAccessList.sol","abi":[{"inputs":[{"internalType":"string","name":"only","type":"string"}],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"AllowListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"block","type":"uint256"},{"indexed":true,"internalType":"bool","name":"status","type":"bool"}],"name":"BlockListUsageSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"depositor","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC1155Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"depositor","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"ERC1155DepositBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":false,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ERC1155Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"},{"indexed":true,"internalType":"address","name":"withdrawer","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"ERC1155WithdrawBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAP_TOKEN_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_BATCH_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WITHDRAW_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"childERC1155Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC1155MetadataURI","name":"rootToken","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC1155MetadataURI","name":"rootToken","type":"address"},{"internalType":"address[]","name":"receivers","type":"address[]"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"depositBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC1155MetadataURI","name":"rootToken","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"depositTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"destinationChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"destinationTokenTemplate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newChildERC1155Predicate","type":"address"},{"internalType":"address","name":"newTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"},{"internalType":"bool","name":"newUseAllowList","type":"bool"},{"internalType":"bool","name":"newUseBlockList","type":"bool"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newGateway","type":"address"},{"internalType":"address","name":"newChildERC1155Predicate","type":"address"},{"internalType":"address","name":"newDestinationTokenTemplate","type":"address"},{"internalType":"uint256","name":"newDestinationChainId","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC1155MetadataURI","name":"rootToken","type":"address"}],"name":"mapToken","outputs":[{"internalType":"address","name":"childToken","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onStateReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseAllowList","type":"bool"}],"name":"setAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newUseBlockList","type":"bool"}],"name":"setBlockList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sourceTokenToDestinationToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50612451806100206000396000f3fe608060405234801561001057600080fd5b50600436106101e65760003560e01c8063947287cf1161010a578063cf756fdf116100ad578063eeb499451161007c578063eeb4994514610480578063f23a6e6114610493578063f2fde38b146104b2578063f4a120f7146104c5578063f6451255146104d857600080fd5b8063cf756fdf1461040e578063d41f177114610421578063d7c9e3ec14610448578063e30c39781461046f57600080fd5b8063947287cf1461033d578063a78e111c14610346578063b075061114610359578063b176806514610362578063bc197c8114610389578063c1225a20146103c1578063c5ac2b1c146103d4578063c5e4683a146103fb57600080fd5b806351351d531161018d578063654715e61161015c578063654715e6146102f6578063715018a61461030957806379ba5097146103115780638da5cb5b146103195780639079dfb31461032a57600080fd5b806351351d53146102b057806355b01e4d146102be57806359a85e08146102cc5780635ea5df79146102df57600080fd5b806301ffc9a7146101eb57806307b3e252146102135780630efe6a8b14610239578063116191b61461024e578063284017f5146102615780633b878c221461026a57806340acd98d146102735780634c4c45de1461029d575b600080fd5b6101fe6101f93660046118c1565b6104ff565b60405190151581526020015b60405180910390f35b6102216004600360981b0181565b6040516001600160a01b03909116815260200161020a565b61024c610247366004611907565b610536565b005b600054610221906001600160a01b031681565b61022161202081565b61022161101081565b61022161028136600461193c565b610100602052600090815260409020546001600160a01b031681565b61024c6102ab3660046119a4565b610547565b6102216002600160a01b0381565b6102216004600160991b0181565b61024c6102da366004611a60565b6105ca565b6102e861138881565b60405190815260200161020a565b60fe54610221906001600160a01b031681565b61024c610708565b61024c61071c565b6035546001600160a01b0316610221565b60ff54610221906001600160a01b031681565b6102e861520881565b61024c610354366004611ae9565b610796565b6102e860015481565b6102e87f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6103a8610397366004611c7b565b63bc197c8160e01b95945050505050565b6040516001600160e01b0319909116815260200161020a565b61024c6103cf366004611d28565b6107a8565b6102e87faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61024c610409366004611d28565b6107f7565b61024c61041c366004611d43565b61083e565b6102e87f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6102e87f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b0316610221565b61024c61048e366004611d94565b610910565b6103a86104a1366004611e1c565b63f23a6e6160e01b95945050505050565b61024c6104c036600461193c565b610adb565b6102216104d336600461193c565b610b4c565b6102e87f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b60006001600160e01b03198216630271189760e51b148061053057506301ffc9a760e01b6001600160e01b03198316145b92915050565b61054283338484610e63565b505050565b848314801561055557508481145b6105b25760405162461bcd60e51b8152602060048201526024808201527f526f6f74455243313135355072656469636174653a20494e56414c49445f4c4560448201526309c8ea8960e31b60648201526084015b60405180910390fd5b6105c187878787878787610fff565b50505050505050565b336002600160a01b031461060e5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064016105a9565b600254610100900460ff161580801561062e5750600254600160ff909116105b806106485750303b158015610648575060025460ff166001145b6106645760405162461bcd60e51b81526004016105a990611e84565b6002805460ff191660011790558015610687576002805461ff0019166101001790555b610693888888886111e2565b60cb805461ffff191685151561ff00191617610100851515021790556106b882611299565b80156106fe576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6107106112b2565b61071a6000611299565b565b60675433906001600160a01b0316811461078a5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105a9565b61079381611299565b50565b6107a284848484610e63565b50505050565b6107b06112b2565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b6107ff6112b2565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b600254610100900460ff161580801561085e5750600254600160ff909116105b806108785750303b158015610878575060025460ff166001145b6108945760405162461bcd60e51b81526004016105a990611e84565b6002805460ff1916600117905580156108b7576002805461ff0019166101001790555b6108c3858585856111e2565b8015610909576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b031633146109755760405162461bcd60e51b815260206004820152602260248201527f526f6f74455243313135355072656469636174653a204f4e4c595f4741544557604482015261415960f01b60648201526084016105a9565b60fe546001600160a01b038481169116146109e55760405162461bcd60e51b815260206004820152602a60248201527f526f6f74455243313135355072656469636174653a204f4e4c595f4348494c446044820152695f50524544494341544560b01b60648201526084016105a9565b7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e982869610a14602060008486611ed2565b610a1d91611efc565b03610a3c57610a37610a328260208186611ed2565b61130c565b6107a2565b7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed2610a6b602060008486611ed2565b610a7491611efc565b03610a8357610a37828261141a565b60405162461bcd60e51b815260206004820152602760248201527f526f6f74455243313135355072656469636174653a20494e56414c49445f5349604482015266474e415455524560c81b60648201526084016105a9565b610ae36112b2565b606780546001600160a01b0383166001600160a01b03199091168117909155610b146035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60006001600160a01b038216610bb05760405162461bcd60e51b815260206004820152602360248201527f526f6f74455243313135355072656469636174653a20494e56414c49445f544f60448201526225a2a760e91b60648201526084016105a9565b6001600160a01b03828116600090815261010060205260409020541615610c255760405162461bcd60e51b8152602060048201526024808201527f526f6f74455243313135355072656469636174653a20414c52454144595f4d416044820152631414115160e21b60648201526084016105a9565b60fe5460ff546040516bffffffffffffffffffffffff19606086901b1660208201526001600160a01b0392831692610ccf921690603401604051602081830303815290604052805190602001208360405160388101919091526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b6001600160a01b0384811660008181526101006020908152604080832080546001600160a01b031916958716959095179094558351908101845281815292516303a24d0760e21b815260048101919091529294509091630e89341c90602401600060405180830381865afa925050508015610d6c57506040513d6000823e601f3d908101601f19168201604052610d699190810190611f3e565b60015b15610d745790505b6000546040516001600160a01b039091169063417d5acb908490610dc0907f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad9089908790602001611fe0565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610df2939260040161200a565b600060405180830381600087803b158015610e0c57600080fd5b505af1158015610e20573d6000803e3d6000fd5b50506040516001600160a01b038087169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a35050919050565b610e6b61157c565b6000610e7685611584565b604051637921219560e11b81529091506001600160a01b0386169063f242432a90610eab90339030908890889060040161203e565b600060405180830381600087803b158015610ec557600080fd5b505af1158015610ed9573d6000803e3d6000fd5b505060005460fe54604080517f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82160208201526001600160a01b038b8116828401523360608301528a8116608083015260a082018a905260c08083018a90528351808403909101815260e083019384905260015463417d5acb60e01b909452948116965063417d5acb9550610f7494931692919060e40161200a565b600060405180830381600087803b158015610f8e57600080fd5b505af1158015610fa2573d6000803e3d6000fd5b505060408051338152602081018790529081018590526001600160a01b03808816935084811692508816907fbcbdf0c69f975f2a4085544938b054f02e77e87cbd055146d388c0be7120e04f9060600160405180910390a4610909565b61100761157c565b600061101288611584565b905060005b848110156110be57886001600160a01b031663f242432a333089898681811061104257611042612076565b9050602002013588888781811061105b5761105b612076565b905060200201356040518563ffffffff1660e01b8152600401611081949392919061203e565b600060405180830381600087803b15801561109b57600080fd5b505af11580156110af573d6000803e3d6000fd5b50505050806001019050611017565b5060005460fe546040516001600160a01b039283169263417d5acb92169061111a907faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d18908d9033908e908e908e908e908e908e90602001612107565b60408051601f19818403018152908290526001546001600160e01b031960e086901b16835261114c939260040161200a565b600060405180830381600087803b15801561116657600080fd5b505af115801561117a573d6000803e3d6000fd5b50505050336001600160a01b0316816001600160a01b0316896001600160a01b03167f7e8ab6f25cb177d65db49b7a2197bb2a7df5757434857d411e2523b332a913e68a8a8a8a8a8a6040516111d596959493929190612172565b60405180910390a46106fe565b6111ec84826115cc565b6001600160a01b0383161580159061120c57506001600160a01b03821615155b6112695760405162461bcd60e51b815260206004820152602860248201527f526f6f74455243313135355072656469636174653a204241445f494e495449416044820152672624ad20aa24a7a760c11b60648201526084016105a9565b5060fe80546001600160a01b039384166001600160a01b03199182161790915560ff805492909316911617905550565b606780546001600160a01b031916905561079381611655565b6035546001600160a01b0316331461071a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a9565b60008080808061131e868801886121bb565b6001600160a01b0380861660009081526101006020526040902054959a5093985091965094509250168061135457611354612216565b604051637921219560e11b81526001600160a01b0387169063f242432a9061138690309088908890889060040161203e565b600060405180830381600087803b1580156113a057600080fd5b505af11580156113b4573d6000803e3d6000fd5b5050604080516001600160a01b0389811682526020820188905291810186905281881693508482169250908916907fc42752949ca07109e6f25adcde4a9407be23e084b1d32ca2bce8aa55bf3dd625906060015b60405180910390a45050505050505050565b60008080808061142c8688018861222c565b6001600160a01b0380861660009081526101006020526040902054959b50939950919750955093501690508061146457611464612216565b60005b835181101561152a57866001600160a01b031663f242432a3087848151811061149257611492612076565b60200260200101518785815181106114ac576114ac612076565b60200260200101518786815181106114c6576114c6612076565b60200260200101516040518563ffffffff1660e01b81526004016114ed949392919061203e565b600060405180830381600087803b15801561150757600080fd5b505af115801561151b573d6000803e3d6000fd5b50505050806001019050611467565b50846001600160a01b0316816001600160a01b0316876001600160a01b03167fce612e98b81c726375e7c2395409e74ee0a29b22f7641ea5a8ce8508616448c087878760405161140893929190612371565b61071a6116a7565b6001600160a01b038082166000908152610100602052604090205416806115b1576115ae82610b4c565b90505b6001600160a01b0381166115c7576115c7612216565b919050565b6001600160a01b038216158015906115e357508015155b61162f5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e00000060448201526064016105a9565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff16156117b257604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b01916113889161170991906123e6565b6000604051808303818686fa925050503d8060008114611745576040519150601f19603f3d011682016040523d82523d6000602084013e61174a565b606091505b509150915081801561176f575060008180602001905181019061176d9190612402565b115b6117af5760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b60448201526064016105a9565b50505b60cb54610100900460ff161561071a57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b01916113889161181991906123e6565b6000604051808303818686fa925050503d8060008114611855576040519150601f19603f3d011682016040523d82523d6000602084013e61185a565b606091505b509150915081801561188057508080602001905181019061187b9190612402565b600114155b6118bd5760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b60448201526064016105a9565b5050565b6000602082840312156118d357600080fd5b81356001600160e01b0319811681146118eb57600080fd5b9392505050565b6001600160a01b038116811461079357600080fd5b60008060006060848603121561191c57600080fd5b8335611927816118f2565b95602085013595506040909401359392505050565b60006020828403121561194e57600080fd5b81356118eb816118f2565b60008083601f84011261196b57600080fd5b5081356001600160401b0381111561198257600080fd5b6020830191508360208260051b850101111561199d57600080fd5b9250929050565b60008060008060008060006080888a0312156119bf57600080fd5b87356119ca816118f2565b965060208801356001600160401b03808211156119e657600080fd5b6119f28b838c01611959565b909850965060408a0135915080821115611a0b57600080fd5b611a178b838c01611959565b909650945060608a0135915080821115611a3057600080fd5b50611a3d8a828b01611959565b989b979a50959850939692959293505050565b803580151581146115c757600080fd5b600080600080600080600060e0888a031215611a7b57600080fd5b8735611a86816118f2565b96506020880135611a96816118f2565b95506040880135611aa6816118f2565b945060608801359350611abb60808901611a50565b9250611ac960a08901611a50565b915060c0880135611ad9816118f2565b8091505092959891949750929550565b60008060008060808587031215611aff57600080fd5b8435611b0a816118f2565b93506020850135611b1a816118f2565b93969395505050506040820135916060013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b6d57611b6d611b2f565b604052919050565b60006001600160401b03821115611b8e57611b8e611b2f565b5060051b60200190565b600082601f830112611ba957600080fd5b81356020611bbe611bb983611b75565b611b45565b82815260059290921b84018101918181019086841115611bdd57600080fd5b8286015b84811015611bf85780358352918301918301611be1565b509695505050505050565b60006001600160401b03821115611c1c57611c1c611b2f565b50601f01601f191660200190565b600082601f830112611c3b57600080fd5b8135611c49611bb982611c03565b818152846020838601011115611c5e57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215611c9357600080fd5b8535611c9e816118f2565b94506020860135611cae816118f2565b935060408601356001600160401b0380821115611cca57600080fd5b611cd689838a01611b98565b94506060880135915080821115611cec57600080fd5b611cf889838a01611b98565b93506080880135915080821115611d0e57600080fd5b50611d1b88828901611c2a565b9150509295509295909350565b600060208284031215611d3a57600080fd5b6118eb82611a50565b60008060008060808587031215611d5957600080fd5b8435611d64816118f2565b93506020850135611d74816118f2565b92506040850135611d84816118f2565b9396929550929360600135925050565b60008060008060608587031215611daa57600080fd5b843593506020850135611dbc816118f2565b925060408501356001600160401b0380821115611dd857600080fd5b818701915087601f830112611dec57600080fd5b813581811115611dfb57600080fd5b886020828501011115611e0d57600080fd5b95989497505060200194505050565b600080600080600060a08688031215611e3457600080fd5b8535611e3f816118f2565b94506020860135611e4f816118f2565b9350604086013592506060860135915060808601356001600160401b03811115611e7857600080fd5b611d1b88828901611c2a565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008085851115611ee257600080fd5b83861115611eef57600080fd5b5050820193919092039150565b8035602083101561053057600019602084900360031b1b1692915050565b60005b83811015611f35578181015183820152602001611f1d565b50506000910152565b600060208284031215611f5057600080fd5b81516001600160401b03811115611f6657600080fd5b8201601f81018413611f7757600080fd5b8051611f85611bb982611c03565b818152856020838501011115611f9a57600080fd5b611fab826020830160208601611f1a565b95945050505050565b60008151808452611fcc816020860160208601611f1a565b601f01601f19169290920160200192915050565b8381526001600160a01b0383166020820152606060408201819052600090611fab90830184611fb4565b6001600160a01b038416815260606020820181905260009061202e90830185611fb4565b9050826040830152949350505050565b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b634e487b7160e01b600052603260045260246000fd5b8183526000602080850194508260005b858110156120ca5781356120af816118f2565b6001600160a01b03168752958201959082019060010161209c565b509495945050505050565b81835260006001600160fb1b038311156120ee57600080fd5b8260051b80836020870137939093016020019392505050565b8981526001600160a01b0389811660208301528816604082015260c06060820181905260009061213a908301888a61208c565b828103608084015261214d8187896120d5565b905082810360a08401526121628185876120d5565b9c9b505050505050505050505050565b60608152600061218660608301888a61208c565b82810360208401526121998187896120d5565b905082810360408401526121ae8185876120d5565b9998505050505050505050565b600080600080600060a086880312156121d357600080fd5b85356121de816118f2565b945060208601356121ee816118f2565b935060408601356121fe816118f2565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052600160045260246000fd5b60008060008060008060c0878903121561224557600080fd5b86359550602080880135612258816118f2565b95506040880135612268816118f2565b945060608801356001600160401b038082111561228457600080fd5b818a0191508a601f83011261229857600080fd5b81356122a6611bb982611b75565b81815260059190911b8301840190848101908d8311156122c557600080fd5b938501935b828510156122ec5784356122dd816118f2565b825293850193908501906122ca565b9750505060808a013592508083111561230457600080fd5b6123108b848c01611b98565b945060a08a013592508083111561232657600080fd5b505061233489828a01611b98565b9150509295509295509295565b600081518084526020808501945080840160005b838110156120ca57815187529582019590820190600101612355565b606080825284519082018190526000906020906080840190828801845b828110156123b35781516001600160a01b03168452928401929084019060010161238e565b505050838103828501526123c78187612341565b91505082810360408401526123dc8185612341565b9695505050505050565b600082516123f8818460208701611f1a565b9190910192915050565b60006020828403121561241457600080fd5b505191905056fea26469706673582212201342f15a6dc1bfcacf8d3ba9fc707c1c3f93b481902c447a4149ff48c559f0b964736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b50600436106101e65760003560e01c8063947287cf1161010a578063cf756fdf116100ad578063eeb499451161007c578063eeb4994514610480578063f23a6e6114610493578063f2fde38b146104b2578063f4a120f7146104c5578063f6451255146104d857600080fd5b8063cf756fdf1461040e578063d41f177114610421578063d7c9e3ec14610448578063e30c39781461046f57600080fd5b8063947287cf1461033d578063a78e111c14610346578063b075061114610359578063b176806514610362578063bc197c8114610389578063c1225a20146103c1578063c5ac2b1c146103d4578063c5e4683a146103fb57600080fd5b806351351d531161018d578063654715e61161015c578063654715e6146102f6578063715018a61461030957806379ba5097146103115780638da5cb5b146103195780639079dfb31461032a57600080fd5b806351351d53146102b057806355b01e4d146102be57806359a85e08146102cc5780635ea5df79146102df57600080fd5b806301ffc9a7146101eb57806307b3e252146102135780630efe6a8b14610239578063116191b61461024e578063284017f5146102615780633b878c221461026a57806340acd98d146102735780634c4c45de1461029d575b600080fd5b6101fe6101f93660046118c1565b6104ff565b60405190151581526020015b60405180910390f35b6102216004600360981b0181565b6040516001600160a01b03909116815260200161020a565b61024c610247366004611907565b610536565b005b600054610221906001600160a01b031681565b61022161202081565b61022161101081565b61022161028136600461193c565b610100602052600090815260409020546001600160a01b031681565b61024c6102ab3660046119a4565b610547565b6102216002600160a01b0381565b6102216004600160991b0181565b61024c6102da366004611a60565b6105ca565b6102e861138881565b60405190815260200161020a565b60fe54610221906001600160a01b031681565b61024c610708565b61024c61071c565b6035546001600160a01b0316610221565b60ff54610221906001600160a01b031681565b6102e861520881565b61024c610354366004611ae9565b610796565b6102e860015481565b6102e87f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286981565b6103a8610397366004611c7b565b63bc197c8160e01b95945050505050565b6040516001600160e01b0319909116815260200161020a565b61024c6103cf366004611d28565b6107a8565b6102e87faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d1881565b61024c610409366004611d28565b6107f7565b61024c61041c366004611d43565b61083e565b6102e87f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82181565b6102e87f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed281565b6067546001600160a01b0316610221565b61024c61048e366004611d94565b610910565b6103a86104a1366004611e1c565b63f23a6e6160e01b95945050505050565b61024c6104c036600461193c565b610adb565b6102216104d336600461193c565b610b4c565b6102e87f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad81565b60006001600160e01b03198216630271189760e51b148061053057506301ffc9a760e01b6001600160e01b03198316145b92915050565b61054283338484610e63565b505050565b848314801561055557508481145b6105b25760405162461bcd60e51b8152602060048201526024808201527f526f6f74455243313135355072656469636174653a20494e56414c49445f4c4560448201526309c8ea8960e31b60648201526084015b60405180910390fd5b6105c187878787878787610fff565b50505050505050565b336002600160a01b031461060e5760405163973d02cb60e01b815260206004820152600a60248201526914d654d5115350d0531360b21b60448201526064016105a9565b600254610100900460ff161580801561062e5750600254600160ff909116105b806106485750303b158015610648575060025460ff166001145b6106645760405162461bcd60e51b81526004016105a990611e84565b6002805460ff191660011790558015610687576002805461ff0019166101001790555b610693888888886111e2565b60cb805461ffff191685151561ff00191617610100851515021790556106b882611299565b80156106fe576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b6107106112b2565b61071a6000611299565b565b60675433906001600160a01b0316811461078a5760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b60648201526084016105a9565b61079381611299565b50565b6107a284848484610e63565b50505050565b6107b06112b2565b60cb805461ff0019166101008315159081029190911790915560405143907f61d574757cde41a357d030b39b2705796ccd699578037ab9a1cfd8117d82bf8690600090a350565b6107ff6112b2565b60cb805460ff191682151590811790915560405143907fe0a0f0fa52db091cb71c202d80420311430ce1ae2e7794149877b6720ce8bf0b90600090a350565b600254610100900460ff161580801561085e5750600254600160ff909116105b806108785750303b158015610878575060025460ff166001145b6108945760405162461bcd60e51b81526004016105a990611e84565b6002805460ff1916600117905580156108b7576002805461ff0019166101001790555b6108c3858585856111e2565b8015610909576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b6000546001600160a01b031633146109755760405162461bcd60e51b815260206004820152602260248201527f526f6f74455243313135355072656469636174653a204f4e4c595f4741544557604482015261415960f01b60648201526084016105a9565b60fe546001600160a01b038481169116146109e55760405162461bcd60e51b815260206004820152602a60248201527f526f6f74455243313135355072656469636174653a204f4e4c595f4348494c446044820152695f50524544494341544560b01b60648201526084016105a9565b7f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e982869610a14602060008486611ed2565b610a1d91611efc565b03610a3c57610a37610a328260208186611ed2565b61130c565b6107a2565b7f5fb452c5a8f2b7c7ef2984e2f1063c7ee9b80b110cdc98ccb98f6654e10b5ed2610a6b602060008486611ed2565b610a7491611efc565b03610a8357610a37828261141a565b60405162461bcd60e51b815260206004820152602760248201527f526f6f74455243313135355072656469636174653a20494e56414c49445f5349604482015266474e415455524560c81b60648201526084016105a9565b610ae36112b2565b606780546001600160a01b0383166001600160a01b03199091168117909155610b146035546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60006001600160a01b038216610bb05760405162461bcd60e51b815260206004820152602360248201527f526f6f74455243313135355072656469636174653a20494e56414c49445f544f60448201526225a2a760e91b60648201526084016105a9565b6001600160a01b03828116600090815261010060205260409020541615610c255760405162461bcd60e51b8152602060048201526024808201527f526f6f74455243313135355072656469636174653a20414c52454144595f4d416044820152631414115160e21b60648201526084016105a9565b60fe5460ff546040516bffffffffffffffffffffffff19606086901b1660208201526001600160a01b0392831692610ccf921690603401604051602081830303815290604052805190602001208360405160388101919091526f5af43d82803e903d91602b57fd5bf3ff60248201526014810192909252733d602d80600a3d3981f3363d3d373d3d3d363d73825260588201526037600c8201206078820152605560439091012090565b6001600160a01b0384811660008181526101006020908152604080832080546001600160a01b031916958716959095179094558351908101845281815292516303a24d0760e21b815260048101919091529294509091630e89341c90602401600060405180830381865afa925050508015610d6c57506040513d6000823e601f3d908101601f19168201604052610d699190810190611f3e565b60015b15610d745790505b6000546040516001600160a01b039091169063417d5acb908490610dc0907f2cef46a936bdc5b7e6e8c71aa04560c41cf7d88bb26901a7e7f4936ff02accad9089908790602001611fe0565b60408051601f19818403018152908290526001546001600160e01b031960e086901b168352610df2939260040161200a565b600060405180830381600087803b158015610e0c57600080fd5b505af1158015610e20573d6000803e3d6000fd5b50506040516001600160a01b038087169350871691507f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e61790600090a35050919050565b610e6b61157c565b6000610e7685611584565b604051637921219560e11b81529091506001600160a01b0386169063f242432a90610eab90339030908890889060040161203e565b600060405180830381600087803b158015610ec557600080fd5b505af1158015610ed9573d6000803e3d6000fd5b505060005460fe54604080517f87a7811f4bfedea3d341ad165680ae306b01aaeacc205d227629cf157dd9f82160208201526001600160a01b038b8116828401523360608301528a8116608083015260a082018a905260c08083018a90528351808403909101815260e083019384905260015463417d5acb60e01b909452948116965063417d5acb9550610f7494931692919060e40161200a565b600060405180830381600087803b158015610f8e57600080fd5b505af1158015610fa2573d6000803e3d6000fd5b505060408051338152602081018790529081018590526001600160a01b03808816935084811692508816907fbcbdf0c69f975f2a4085544938b054f02e77e87cbd055146d388c0be7120e04f9060600160405180910390a4610909565b61100761157c565b600061101288611584565b905060005b848110156110be57886001600160a01b031663f242432a333089898681811061104257611042612076565b9050602002013588888781811061105b5761105b612076565b905060200201356040518563ffffffff1660e01b8152600401611081949392919061203e565b600060405180830381600087803b15801561109b57600080fd5b505af11580156110af573d6000803e3d6000fd5b50505050806001019050611017565b5060005460fe546040516001600160a01b039283169263417d5acb92169061111a907faf50c8eab81226bc79eee3a10e3fe25db1a2be7241130e392b0675df839b6d18908d9033908e908e908e908e908e908e90602001612107565b60408051601f19818403018152908290526001546001600160e01b031960e086901b16835261114c939260040161200a565b600060405180830381600087803b15801561116657600080fd5b505af115801561117a573d6000803e3d6000fd5b50505050336001600160a01b0316816001600160a01b0316896001600160a01b03167f7e8ab6f25cb177d65db49b7a2197bb2a7df5757434857d411e2523b332a913e68a8a8a8a8a8a6040516111d596959493929190612172565b60405180910390a46106fe565b6111ec84826115cc565b6001600160a01b0383161580159061120c57506001600160a01b03821615155b6112695760405162461bcd60e51b815260206004820152602860248201527f526f6f74455243313135355072656469636174653a204241445f494e495449416044820152672624ad20aa24a7a760c11b60648201526084016105a9565b5060fe80546001600160a01b039384166001600160a01b03199182161790915560ff805492909316911617905550565b606780546001600160a01b031916905561079381611655565b6035546001600160a01b0316331461071a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105a9565b60008080808061131e868801886121bb565b6001600160a01b0380861660009081526101006020526040902054959a5093985091965094509250168061135457611354612216565b604051637921219560e11b81526001600160a01b0387169063f242432a9061138690309088908890889060040161203e565b600060405180830381600087803b1580156113a057600080fd5b505af11580156113b4573d6000803e3d6000fd5b5050604080516001600160a01b0389811682526020820188905291810186905281881693508482169250908916907fc42752949ca07109e6f25adcde4a9407be23e084b1d32ca2bce8aa55bf3dd625906060015b60405180910390a45050505050505050565b60008080808061142c8688018861222c565b6001600160a01b0380861660009081526101006020526040902054959b50939950919750955093501690508061146457611464612216565b60005b835181101561152a57866001600160a01b031663f242432a3087848151811061149257611492612076565b60200260200101518785815181106114ac576114ac612076565b60200260200101518786815181106114c6576114c6612076565b60200260200101516040518563ffffffff1660e01b81526004016114ed949392919061203e565b600060405180830381600087803b15801561150757600080fd5b505af115801561151b573d6000803e3d6000fd5b50505050806001019050611467565b50846001600160a01b0316816001600160a01b0316876001600160a01b03167fce612e98b81c726375e7c2395409e74ee0a29b22f7641ea5a8ce8508616448c087878760405161140893929190612371565b61071a6116a7565b6001600160a01b038082166000908152610100602052604090205416806115b1576115ae82610b4c565b90505b6001600160a01b0381166115c7576115c7612216565b919050565b6001600160a01b038216158015906115e357508015155b61162f5760405162461bcd60e51b815260206004820152601d60248201527f5072656469636174653a204241445f494e495449414c495a4154494f4e00000060448201526064016105a9565b600080546001600160a01b0319166001600160a01b039390931692909217909155600155565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb5460ff16156117b257604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600160991b01916113889161170991906123e6565b6000604051808303818686fa925050503d8060008114611745576040519150601f19603f3d011682016040523d82523d6000602084013e61174a565b606091505b509150915081801561176f575060008180602001905181019061176d9190612402565b115b6117af5760405162461bcd60e51b81526020600482015260116024820152702224a9a0a62627aba2a22fa9a2a72222a960791b60448201526064016105a9565b50505b60cb54610100900460ff161561071a57604080513360248083019190915282518083039091018152604490910182526020810180516001600160e01b031663d78bca6960e01b179052905160009182916004600360981b01916113889161181991906123e6565b6000604051808303818686fa925050503d8060008114611855576040519150601f19603f3d011682016040523d82523d6000602084013e61185a565b606091505b509150915081801561188057508080602001905181019061187b9190612402565b600114155b6118bd5760405162461bcd60e51b815260206004820152600e60248201526d212627a1a5a2a22fa9a2a72222a960911b60448201526064016105a9565b5050565b6000602082840312156118d357600080fd5b81356001600160e01b0319811681146118eb57600080fd5b9392505050565b6001600160a01b038116811461079357600080fd5b60008060006060848603121561191c57600080fd5b8335611927816118f2565b95602085013595506040909401359392505050565b60006020828403121561194e57600080fd5b81356118eb816118f2565b60008083601f84011261196b57600080fd5b5081356001600160401b0381111561198257600080fd5b6020830191508360208260051b850101111561199d57600080fd5b9250929050565b60008060008060008060006080888a0312156119bf57600080fd5b87356119ca816118f2565b965060208801356001600160401b03808211156119e657600080fd5b6119f28b838c01611959565b909850965060408a0135915080821115611a0b57600080fd5b611a178b838c01611959565b909650945060608a0135915080821115611a3057600080fd5b50611a3d8a828b01611959565b989b979a50959850939692959293505050565b803580151581146115c757600080fd5b600080600080600080600060e0888a031215611a7b57600080fd5b8735611a86816118f2565b96506020880135611a96816118f2565b95506040880135611aa6816118f2565b945060608801359350611abb60808901611a50565b9250611ac960a08901611a50565b915060c0880135611ad9816118f2565b8091505092959891949750929550565b60008060008060808587031215611aff57600080fd5b8435611b0a816118f2565b93506020850135611b1a816118f2565b93969395505050506040820135916060013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b6d57611b6d611b2f565b604052919050565b60006001600160401b03821115611b8e57611b8e611b2f565b5060051b60200190565b600082601f830112611ba957600080fd5b81356020611bbe611bb983611b75565b611b45565b82815260059290921b84018101918181019086841115611bdd57600080fd5b8286015b84811015611bf85780358352918301918301611be1565b509695505050505050565b60006001600160401b03821115611c1c57611c1c611b2f565b50601f01601f191660200190565b600082601f830112611c3b57600080fd5b8135611c49611bb982611c03565b818152846020838601011115611c5e57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215611c9357600080fd5b8535611c9e816118f2565b94506020860135611cae816118f2565b935060408601356001600160401b0380821115611cca57600080fd5b611cd689838a01611b98565b94506060880135915080821115611cec57600080fd5b611cf889838a01611b98565b93506080880135915080821115611d0e57600080fd5b50611d1b88828901611c2a565b9150509295509295909350565b600060208284031215611d3a57600080fd5b6118eb82611a50565b60008060008060808587031215611d5957600080fd5b8435611d64816118f2565b93506020850135611d74816118f2565b92506040850135611d84816118f2565b9396929550929360600135925050565b60008060008060608587031215611daa57600080fd5b843593506020850135611dbc816118f2565b925060408501356001600160401b0380821115611dd857600080fd5b818701915087601f830112611dec57600080fd5b813581811115611dfb57600080fd5b886020828501011115611e0d57600080fd5b95989497505060200194505050565b600080600080600060a08688031215611e3457600080fd5b8535611e3f816118f2565b94506020860135611e4f816118f2565b9350604086013592506060860135915060808601356001600160401b03811115611e7857600080fd5b611d1b88828901611c2a565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008085851115611ee257600080fd5b83861115611eef57600080fd5b5050820193919092039150565b8035602083101561053057600019602084900360031b1b1692915050565b60005b83811015611f35578181015183820152602001611f1d565b50506000910152565b600060208284031215611f5057600080fd5b81516001600160401b03811115611f6657600080fd5b8201601f81018413611f7757600080fd5b8051611f85611bb982611c03565b818152856020838501011115611f9a57600080fd5b611fab826020830160208601611f1a565b95945050505050565b60008151808452611fcc816020860160208601611f1a565b601f01601f19169290920160200192915050565b8381526001600160a01b0383166020820152606060408201819052600090611fab90830184611fb4565b6001600160a01b038416815260606020820181905260009061202e90830185611fb4565b9050826040830152949350505050565b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b634e487b7160e01b600052603260045260246000fd5b8183526000602080850194508260005b858110156120ca5781356120af816118f2565b6001600160a01b03168752958201959082019060010161209c565b509495945050505050565b81835260006001600160fb1b038311156120ee57600080fd5b8260051b80836020870137939093016020019392505050565b8981526001600160a01b0389811660208301528816604082015260c06060820181905260009061213a908301888a61208c565b828103608084015261214d8187896120d5565b905082810360a08401526121628185876120d5565b9c9b505050505050505050505050565b60608152600061218660608301888a61208c565b82810360208401526121998187896120d5565b905082810360408401526121ae8185876120d5565b9998505050505050505050565b600080600080600060a086880312156121d357600080fd5b85356121de816118f2565b945060208601356121ee816118f2565b935060408601356121fe816118f2565b94979396509394606081013594506080013592915050565b634e487b7160e01b600052600160045260246000fd5b60008060008060008060c0878903121561224557600080fd5b86359550602080880135612258816118f2565b95506040880135612268816118f2565b945060608801356001600160401b038082111561228457600080fd5b818a0191508a601f83011261229857600080fd5b81356122a6611bb982611b75565b81815260059190911b8301840190848101908d8311156122c557600080fd5b938501935b828510156122ec5784356122dd816118f2565b825293850193908501906122ca565b9750505060808a013592508083111561230457600080fd5b6123108b848c01611b98565b945060a08a013592508083111561232657600080fd5b505061233489828a01611b98565b9150509295509295509295565b600081518084526020808501945080840160005b838110156120ca57815187529582019590820190600101612355565b606080825284519082018190526000906020906080840190828801845b828110156123b35781516001600160a01b03168452928401929084019060010161238e565b505050838103828501526123c78187612341565b91505082810360408401526123dc8185612341565b9695505050505050565b600082516123f8818460208701611f1a565b9190910192915050565b60006020828403121561241457600080fd5b505191905056fea26469706673582212201342f15a6dc1bfcacf8d3ba9fc707c1c3f93b481902c447a4149ff48c559f0b964736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` var SystemArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"System","sourceName":"contracts/blade/System.sol","abi":[{"inputs":[],"name":"ALLOWLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BLOCKLIST_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TOKEN_CONTRACT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_TRANSFER_PRECOMPILE_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"READ_ADDRESSLIST_GAS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYSTEM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50610110806100206000396000f3fe6080604052348015600f57600080fd5b506004361060645760003560e01c806307b3e252146069578063284017f51460935780633b878c2214609b57806351351d531460a357806355b01e4d1460b05780635ea5df791460bd578063947287cf1460d2575b600080fd5b60766004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b607661202081565b607661101081565b60766002600160a01b0381565b60766004600160991b0181565b60c561138881565b604051908152602001608a565b60c56152088156fea2646970667358221220948e4bcff5f19f1af341f2b015e9b26168c9df73137963942641a8be4b245cd264736f6c63430008130033","deployedBytecode":"0x6080604052348015600f57600080fd5b506004361060645760003560e01c806307b3e252146069578063284017f51460935780633b878c2214609b57806351351d531460a357806355b01e4d1460b05780635ea5df791460bd578063947287cf1460d2575b600080fd5b60766004600360981b0181565b6040516001600160a01b0390911681526020015b60405180910390f35b607661202081565b607661101081565b60766002600160a01b0381565b60766004600160991b0181565b60c561138881565b604051908152602001608a565b60c56152088156fea2646970667358221220948e4bcff5f19f1af341f2b015e9b26168c9df73137963942641a8be4b245cd264736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}` var BLSArtifact string = `{"_format":"hh-sol-artifact-1","contractName":"BLS","sourceName":"contracts/common/BLS.sol","abi":[{"inputs":[{"internalType":"bytes32","name":"domain","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}],"name":"expandMsgTo96","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domain","type":"bytes32"},{"internalType":"bytes","name":"messages","type":"bytes"}],"name":"hashToField","outputs":[{"internalType":"uint256[2]","name":"","type":"uint256[2]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"domain","type":"bytes32"},{"internalType":"bytes","name":"message","type":"bytes"}],"name":"hashToPoint","outputs":[{"internalType":"uint256[2]","name":"","type":"uint256[2]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[2]","name":"point","type":"uint256[2]"}],"name":"isOnCurveG1","outputs":[{"internalType":"bool","name":"_isOnCurve","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[4]","name":"point","type":"uint256[4]"}],"name":"isOnCurveG2","outputs":[{"internalType":"bool","name":"_isOnCurve","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[2]","name":"signature","type":"uint256[2]"}],"name":"isValidSignature","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_x","type":"uint256"}],"name":"mapToPoint","outputs":[{"internalType":"uint256[2]","name":"p","type":"uint256[2]"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[2]","name":"signature","type":"uint256[2]"},{"internalType":"uint256[4][]","name":"pubkeys","type":"uint256[4][]"},{"internalType":"uint256[2][]","name":"messages","type":"uint256[2][]"}],"name":"verifyMultiple","outputs":[{"internalType":"bool","name":"checkResult","type":"bool"},{"internalType":"bool","name":"callSuccess","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[2]","name":"signature","type":"uint256[2]"},{"internalType":"uint256[4][]","name":"pubkeys","type":"uint256[4][]"},{"internalType":"uint256[2]","name":"message","type":"uint256[2]"}],"name":"verifyMultipleSameMsg","outputs":[{"internalType":"bool","name":"checkResult","type":"bool"},{"internalType":"bool","name":"callSuccess","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[2]","name":"signature","type":"uint256[2]"},{"internalType":"uint256[4]","name":"pubkey","type":"uint256[4]"},{"internalType":"uint256[2]","name":"message","type":"uint256[2]"}],"name":"verifySingle","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50612df8806100206000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806391ec2d2b1161006657806391ec2d2b1461013b578063a850a9091461015b578063d58e77331461016e578063e242cce914610181578063ebbdac911461019457600080fd5b8063115000fe146100a3578063247dd9fb146100cb5780633e5476ce146100de5780638669026f146101085780639141376314610128575b600080fd5b6100b66100b1366004612708565b6101a7565b60405190151581526020015b60405180910390f35b6100b66100d9366004612785565b61030e565b6100f16100ec366004612841565b6103b8565b6040805192151583529015156020830152016100c2565b61011b6101163660046128ce565b61079f565b6040516100c29190612957565b6100f1610136366004612988565b6108bb565b61014e6101493660046128ce565b610d5c565b6040516100c29190612a86565b61011b6101693660046128ce565b610ff8565b61011b61017c366004612aa0565b6111d4565b6100b661018f366004612785565b6115aa565b6100f16101a2366004612ab9565b611609565b600081516020830151600080516020612d63833981519152828309600080516020612d638339815191528283098182830101600080516020612d638339815191528283840108600080516020612d638339815191528682600080516020612d6383398151915203860109935050600080516020612d638339815191528483600080516020612d63833981519152038301099150600080516020612d638339815191527f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e584089450600080516020612d638339815191527e9713b03af0fed4cd2cafadeed8fdf4a74fa084e52d1852e4a2bd0685c315d2830893506040870151925060608701519150600080516020612d638339815191528083600080516020612d63833981519152038508600080516020612d63833981519152848608099050600080516020612d63833981519152828460011b0994149290931491909116949350505050565b8051600090600080516020612d6383398151915211158061034157506020820151600080516020612d6383398151915211155b1561034e57506000919050565b60405163e242cce960e01b8152309063e242cce990610371908590600401612957565b602060405180830381865afa15801561038e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b29190612b1c565b92915050565b60008083806103e25760405162461bcd60e51b81526004016103d990612b3e565b60405180910390fd5b60006103ef826001612b95565b6103fa906006612ba8565b90506000816001600160401b038111156104165761041661269a565b60405190808252806020026020018201604052801561043f578160200160208202803683370190505b50905088600060200201358160008151811061045d5761045d612b06565b602090810291909101015288600160200201358160018151811061048357610483612b06565b602002602001018181525050600080516020612d43833981519152816002815181106104b1576104b1612b06565b602002602001018181525050600080516020612d23833981519152816003815181106104df576104df612b06565b602002602001018181525050600080516020612d838339815191528160048151811061050d5761050d612b06565b602002602001018181525050600080516020612da38339815191528160058151811061053b5761053b612b06565b60200260200101818152505060005b8381101561075a57863582610560836006612ba8565b61056b906006612b95565b8151811061057b5761057b612b06565b602090810291909101015286600160200201358261059a836006612ba8565b6105a5906007612b95565b815181106105b5576105b5612b06565b6020026020010181815250508888828181106105d3576105d3612b06565b9050608002016001600481106105eb576105eb612b06565b6020020135826105fc836006612ba8565b610607906008612b95565b8151811061061757610617612b06565b60200260200101818152505088888281811061063557610635612b06565b90506080020160006004811061064d5761064d612b06565b60200201358261065e836006612ba8565b610669906009612b95565b8151811061067957610679612b06565b60200260200101818152505088888281811061069757610697612b06565b9050608002016003600481106106af576106af612b06565b6020020135826106c0836006612ba8565b6106cb90600a612b95565b815181106106db576106db612b06565b6020026020010181815250508888828181106106f9576106f9612b06565b90506080020160026004811061071157610711612b06565b602002013582610722836006612ba8565b61072d90600b612b95565b8151811061073d5761073d612b06565b60209081029190910101528061075281612bbf565b91505061054a565b50610763612640565b602081602085026020850160085afa945084610789576000809550955050505050610796565b5115159450600193505050505b94509492505050565b6107a761265e565b6040516391ec2d2b60e01b815260009030906391ec2d2b906107cf9087908790600401612bd8565b600060405180830381865afa1580156107ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108149190810190612bf9565b9050600080600080601885016001600160c01b0381511693506030860190506001600160c01b038151169450600080516020612d6383398151915285600080516020612d63833981519152600160c01b870908604887015160608801516001600160c01b0390811697501694509250600080516020612d6383398151915290508481600160c01b860908604080518082019091529283526020830152509695505050505050565b60008084806108dc5760405162461bcd60e51b81526004016103d990612b3e565b8084146109495760405162461bcd60e51b815260206004820152603560248201527f424c533a206e756d626572206f66207075626c6963206b65797320616e64206d604482015274195cdcd859d95cc81b5d5cdd08189948195c5d585b605a1b60648201526084016103d9565b6000610956826001612b95565b610961906006612ba8565b90506000816001600160401b0381111561097d5761097d61269a565b6040519080825280602002602001820160405280156109a6578160200160208202803683370190505b5090508960006020020135816000815181106109c4576109c4612b06565b60209081029190910101528960016020020135816001815181106109ea576109ea612b06565b602002602001018181525050600080516020612d4383398151915281600281518110610a1857610a18612b06565b602002602001018181525050600080516020612d2383398151915281600381518110610a4657610a46612b06565b602002602001018181525050600080516020612d8383398151915281600481518110610a7457610a74612b06565b602002602001018181525050600080516020612da383398151915281600581518110610aa257610aa2612b06565b60200260200101818152505060005b83811015610d1657878782818110610acb57610acb612b06565b905060400201600060028110610ae357610ae3612b06565b602002013582610af4836006612ba8565b610aff906006612b95565b81518110610b0f57610b0f612b06565b602002602001018181525050878782818110610b2d57610b2d612b06565b905060400201600160028110610b4557610b45612b06565b602002013582610b56836006612ba8565b610b61906007612b95565b81518110610b7157610b71612b06565b602002602001018181525050898982818110610b8f57610b8f612b06565b905060800201600160048110610ba757610ba7612b06565b602002013582610bb8836006612ba8565b610bc3906008612b95565b81518110610bd357610bd3612b06565b602002602001018181525050898982818110610bf157610bf1612b06565b905060800201600060048110610c0957610c09612b06565b602002013582610c1a836006612ba8565b610c25906009612b95565b81518110610c3557610c35612b06565b602002602001018181525050898982818110610c5357610c53612b06565b905060800201600360048110610c6b57610c6b612b06565b602002013582610c7c836006612ba8565b610c8790600a612b95565b81518110610c9757610c97612b06565b602002602001018181525050898982818110610cb557610cb5612b06565b905060800201600260048110610ccd57610ccd612b06565b602002013582610cde836006612ba8565b610ce990600b612b95565b81518110610cf957610cf9612b06565b602090810291909101015280610d0e81612bbf565b915050610ab1565b50610d1f612640565b602081602085026020850160085afa945084610d45576000809550955050505050610d52565b5115159450600193505050505b9550959350505050565b80516060906000610d6e826020612b95565b610d79906040612b95565b610d84906004612b95565b6001600160401b03811115610d9b57610d9b61269a565b6040519080825280601f01601f191660200182016040528015610dc5576020820181803683370190505b5060408051606080825260808201909252919250600091906020820181803683370190505090506060820160005b84811015610e0d5760208188018101518383015201610df3565b5083016000815360010160608153600101600081536001810187905260210160208153506000600283604051610e439190612c6f565b602060405180830381855afa158015610e60573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610e839190612c8b565b9050600060429450848452816020850152600160408501536041840188905260206061850153600284604051610eb99190612c6f565b602060405180830381855afa158015610ed6573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610ef99190612c8b565b905080602084015280821880602086015250600260408501536041840188905260206061850153600284604051610f309190612c6f565b602060405180830381855afa158015610f4d573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610f709190612c8b565b905080604084015280821880602086015250600360408501536041840188905260206061850153600284604051610fa79190612c6f565b602060405180830381855afa158015610fc4573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610fe79190612c8b565b606084015250909695505050505050565b61100061265e565b604051638669026f60e01b81526000903090638669026f906110289087908790600401612bd8565b6040805180830381865afa158015611044573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110689190612ca4565b805160405163d58e773360e01b81526004810191909152909150600090309063d58e7733906024016040805180830381865afa1580156110ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d09190612ca4565b602083015160405163d58e773360e01b81526004810191909152909150600090309063d58e7733906024016040805180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190612ca4565b905061114561267c565b825181526020808401518282015282516040808401919091529083015160608301526000908460808460066107d05a03fa9050808061118057fe5b50806111c85760405162461bcd60e51b8152602060048201526017602482015276109314ce88189b881859190818d85b1b0819985a5b1959604a1b60448201526064016103d9565b50919695505050505050565b6111dc61265e565b600080516020612d6383398151915282106112455760405162461bcd60e51b815260206004820152602360248201527f6d6170546f506f696e7446543a20696e76616c6964206669656c6420656c656d604482015262195b9d60ea1b60648201526084016103d9565b81600061125182611790565b9150506000600080516020612d638339815191528061127257611272612cf9565b8384099050600080516020612d638339815191526004820890506000600080516020612d6383398151915277b3c4d79d41a91759a9e4c7e359b6b89eaec68e62effffffd850990506000600080516020612d6383398151915283830990506112d9816117b9565b9050600080516020612d638339815191528283099150600080516020612d638339815191528183099150600080516020612d638339815191528286099150600080516020612d6383398151915261133e83600080516020612d63833981519152612d0f565b7759e26bcea0d48bacd4f263f1acdb5c4f5763473177fffffe089450600080516020612d638339815191528586099150600080516020612d638339815191528583099150600080516020612d6383398151915260038308915060006113a283611790565b909350905080156113ea57846113cd576113ca83600080516020612d63833981519152612d0f565b92505b505060408051808201909152938452602084015250909392505050565b600080516020612d638339815191526001870861141590600080516020612d63833981519152612d0f565b9550600080516020612d638339815191528687099250600080516020612d638339815191528684099250600080516020612d6383398151915260038408925061145d83611790565b9093509050801561148557846113cd576113ca83600080516020612d63833981519152612d0f565b600080516020612d638339815191528485099550600080516020612d638339815191528687099550600080516020612d638339815191528287099550600080516020612d638339815191528287099550600080516020612d63833981519152600187089550600080516020612d638339815191528687099250600080516020612d638339815191528684099250600080516020612d6383398151915260038408925061153083611790565b90935090508061158d5760405162461bcd60e51b815260206004820152602260248201527f424c533a20626164206674206d617070696e6720696d706c656d656e7461746960448201526137b760f11b60648201526084016103d9565b846113cd576113ca83600080516020612d63833981519152612d0f565b600081516020830151600080516020612d63833981519152828309600080516020612d638339815191528382099050600080516020612d63833981519152600382089050600080516020612d6383398151915282830914949350505050565b60008060006040518061018001604052808760006002811061162d5761162d612b06565b602002013581526020018760016002811061164a5761164a612b06565b60200201358152602001600080516020612d438339815191528152602001600080516020612d238339815191528152602001600080516020612d838339815191528152602001600080516020612da38339815191528152602001856000600281106116b7576116b7612b06565b60200201358152602001856001600281106116d4576116d4612b06565b60200201358152602001866001600481106116f1576116f1612b06565b602002013581526020018660006004811061170e5761170e612b06565b602002013581526020018660036004811061172b5761172b612b06565b602002013581526020018660026004811061174857611748612b06565b602002013590529050611759612640565b60006020826101808560085afa90508061177c5760008094509450505050611788565b50511515925060019150505b935093915050565b60008061179c836117c4565b915082600080516020612d63833981519152838409149050915091565b60006103b282611ef9565b6000600080516020612d638339815191528083840991508083830981838209828283098385830984848309858484098684850997508684840987858409945087898a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087838a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985050868889099750868889099750868889099750868889099750868889099750868889099750868489099750868889099750868889099750868889099750868889099750868889099750868989099750868889099750868889099750868889099750868889099750868889099750868889099750868989099750868889099750868889099750868889099750868889099750868889099750868689099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868189099750508587880996508587880996508587880996508585880996508587880996508587880996508587880996508585880996508587880996508587880996508587880996508587880996508587880996508587880996508587880996508587880996508583880996508587880996508587880996508587880996508587880996508581880996508587880996508587880996508587880996508587880996508583880996508587880996508587880996508587880996508584880996508587880996508587880996508587880996508587880996508587880996508581880996505050505050808283099392505050565b6000600080516020612d638339815191528083840991508083830981838209828283098385830984848309858484098684850997508684840987858409945087898a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087838a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985050868889099750868889099750868889099750868889099750868889099750868889099750868489099750868889099750868889099750868889099750868889099750868889099750868989099750868889099750868889099750868889099750868889099750868889099750868889099750868989099750868889099750868889099750868889099750868889099750868889099750868689099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868189099750508587880996508587880996508587880996508585880996508587880996508587880996508587880996508585880996508587880996508587880996508587880996508587880996508587880996508587880996508587880996508587880996508583880996508587880996508587880996508587880996508587880996508581880996505050838586099450838586099450838586099450838586099450838186099450508284850993508284850993508284850993508281850993508284850993508284850993508285850993508284850993508284850993508284850993508284850993508284850993508284850993508281850995945050505050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156126d2576126d261269a565b60405290565b604051601f8201601f191681016001600160401b03811182821017156127005761270061269a565b604052919050565b60006080828403121561271a57600080fd5b82601f83011261272957600080fd5b604051608081018181106001600160401b038211171561274b5761274b61269a565b60405280608084018581111561276057600080fd5b845b8181101561277a578035835260209283019201612762565b509195945050505050565b60006040828403121561279757600080fd5b82601f8301126127a657600080fd5b6127ae6126b0565b8060408401858111156127c057600080fd5b845b818110156127da5780358452602093840193016127c2565b509095945050505050565b80604081018310156103b257600080fd5b60008083601f84011261280857600080fd5b5081356001600160401b0381111561281f57600080fd5b6020830191508360208260071b850101111561283a57600080fd5b9250929050565b60008060008060a0858703121561285757600080fd5b61286186866127e5565b935060408501356001600160401b0381111561287c57600080fd5b612888878288016127f6565b909450925061289c905086606087016127e5565b905092959194509250565b60006001600160401b038211156128c0576128c061269a565b50601f01601f191660200190565b600080604083850312156128e157600080fd5b8235915060208301356001600160401b038111156128fe57600080fd5b8301601f8101851361290f57600080fd5b803561292261291d826128a7565b6126d8565b81815286602083850101111561293757600080fd5b816020840160208301376000602083830101528093505050509250929050565b60408101818360005b600281101561297f578151835260209283019290910190600101612960565b50505092915050565b6000806000806000608086880312156129a057600080fd5b6129aa87876127e5565b945060408601356001600160401b03808211156129c657600080fd5b6129d289838a016127f6565b909650945060608801359150808211156129eb57600080fd5b818801915088601f8301126129ff57600080fd5b813581811115612a0e57600080fd5b8960208260061b8501011115612a2357600080fd5b9699959850939650602001949392505050565b60005b83811015612a51578181015183820152602001612a39565b50506000910152565b60008151808452612a72816020860160208601612a36565b601f01601f19169290920160200192915050565b602081526000612a996020830184612a5a565b9392505050565b600060208284031215612ab257600080fd5b5035919050565b60008060006101008486031215612acf57600080fd5b612ad985856127e5565b925060c0840185811115612aec57600080fd5b604085019250612afc86826127e5565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612b2e57600080fd5b81518015158114612a9957600080fd5b60208082526021908201527f424c533a206e756d626572206f66207075626c6963206b6579206973207a65726040820152606f60f81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156103b2576103b2612b7f565b80820281158282048414176103b2576103b2612b7f565b600060018201612bd157612bd1612b7f565b5060010190565b828152604060208201526000612bf16040830184612a5a565b949350505050565b600060208284031215612c0b57600080fd5b81516001600160401b03811115612c2157600080fd5b8201601f81018413612c3257600080fd5b8051612c4061291d826128a7565b818152856020838501011115612c5557600080fd5b612c66826020830160208601612a36565b95945050505050565b60008251612c81818460208701612a36565b9190910192915050565b600060208284031215612c9d57600080fd5b5051919050565b600060408284031215612cb657600080fd5b82601f830112612cc557600080fd5b612ccd6126b0565b806040840185811115612cdf57600080fd5b845b818110156127da578051845260209384019301612ce1565b634e487b7160e01b600052601260045260246000fd5b818103818111156103b2576103b2612b7f56fe1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c230644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9da26469706673582212204742dc9bfec89e0e4850b0f02ca1922cc3c73b8db4ec85457e11b7fd8d117c1264736f6c63430008130033","deployedBytecode":"0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806391ec2d2b1161006657806391ec2d2b1461013b578063a850a9091461015b578063d58e77331461016e578063e242cce914610181578063ebbdac911461019457600080fd5b8063115000fe146100a3578063247dd9fb146100cb5780633e5476ce146100de5780638669026f146101085780639141376314610128575b600080fd5b6100b66100b1366004612708565b6101a7565b60405190151581526020015b60405180910390f35b6100b66100d9366004612785565b61030e565b6100f16100ec366004612841565b6103b8565b6040805192151583529015156020830152016100c2565b61011b6101163660046128ce565b61079f565b6040516100c29190612957565b6100f1610136366004612988565b6108bb565b61014e6101493660046128ce565b610d5c565b6040516100c29190612a86565b61011b6101693660046128ce565b610ff8565b61011b61017c366004612aa0565b6111d4565b6100b661018f366004612785565b6115aa565b6100f16101a2366004612ab9565b611609565b600081516020830151600080516020612d63833981519152828309600080516020612d638339815191528283098182830101600080516020612d638339815191528283840108600080516020612d638339815191528682600080516020612d6383398151915203860109935050600080516020612d638339815191528483600080516020612d63833981519152038301099150600080516020612d638339815191527f2b149d40ceb8aaae81be18991be06ac3b5b4c5e559dbefa33267e6dc24a138e584089450600080516020612d638339815191527e9713b03af0fed4cd2cafadeed8fdf4a74fa084e52d1852e4a2bd0685c315d2830893506040870151925060608701519150600080516020612d638339815191528083600080516020612d63833981519152038508600080516020612d63833981519152848608099050600080516020612d63833981519152828460011b0994149290931491909116949350505050565b8051600090600080516020612d6383398151915211158061034157506020820151600080516020612d6383398151915211155b1561034e57506000919050565b60405163e242cce960e01b8152309063e242cce990610371908590600401612957565b602060405180830381865afa15801561038e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b29190612b1c565b92915050565b60008083806103e25760405162461bcd60e51b81526004016103d990612b3e565b60405180910390fd5b60006103ef826001612b95565b6103fa906006612ba8565b90506000816001600160401b038111156104165761041661269a565b60405190808252806020026020018201604052801561043f578160200160208202803683370190505b50905088600060200201358160008151811061045d5761045d612b06565b602090810291909101015288600160200201358160018151811061048357610483612b06565b602002602001018181525050600080516020612d43833981519152816002815181106104b1576104b1612b06565b602002602001018181525050600080516020612d23833981519152816003815181106104df576104df612b06565b602002602001018181525050600080516020612d838339815191528160048151811061050d5761050d612b06565b602002602001018181525050600080516020612da38339815191528160058151811061053b5761053b612b06565b60200260200101818152505060005b8381101561075a57863582610560836006612ba8565b61056b906006612b95565b8151811061057b5761057b612b06565b602090810291909101015286600160200201358261059a836006612ba8565b6105a5906007612b95565b815181106105b5576105b5612b06565b6020026020010181815250508888828181106105d3576105d3612b06565b9050608002016001600481106105eb576105eb612b06565b6020020135826105fc836006612ba8565b610607906008612b95565b8151811061061757610617612b06565b60200260200101818152505088888281811061063557610635612b06565b90506080020160006004811061064d5761064d612b06565b60200201358261065e836006612ba8565b610669906009612b95565b8151811061067957610679612b06565b60200260200101818152505088888281811061069757610697612b06565b9050608002016003600481106106af576106af612b06565b6020020135826106c0836006612ba8565b6106cb90600a612b95565b815181106106db576106db612b06565b6020026020010181815250508888828181106106f9576106f9612b06565b90506080020160026004811061071157610711612b06565b602002013582610722836006612ba8565b61072d90600b612b95565b8151811061073d5761073d612b06565b60209081029190910101528061075281612bbf565b91505061054a565b50610763612640565b602081602085026020850160085afa945084610789576000809550955050505050610796565b5115159450600193505050505b94509492505050565b6107a761265e565b6040516391ec2d2b60e01b815260009030906391ec2d2b906107cf9087908790600401612bd8565b600060405180830381865afa1580156107ec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108149190810190612bf9565b9050600080600080601885016001600160c01b0381511693506030860190506001600160c01b038151169450600080516020612d6383398151915285600080516020612d63833981519152600160c01b870908604887015160608801516001600160c01b0390811697501694509250600080516020612d6383398151915290508481600160c01b860908604080518082019091529283526020830152509695505050505050565b60008084806108dc5760405162461bcd60e51b81526004016103d990612b3e565b8084146109495760405162461bcd60e51b815260206004820152603560248201527f424c533a206e756d626572206f66207075626c6963206b65797320616e64206d604482015274195cdcd859d95cc81b5d5cdd08189948195c5d585b605a1b60648201526084016103d9565b6000610956826001612b95565b610961906006612ba8565b90506000816001600160401b0381111561097d5761097d61269a565b6040519080825280602002602001820160405280156109a6578160200160208202803683370190505b5090508960006020020135816000815181106109c4576109c4612b06565b60209081029190910101528960016020020135816001815181106109ea576109ea612b06565b602002602001018181525050600080516020612d4383398151915281600281518110610a1857610a18612b06565b602002602001018181525050600080516020612d2383398151915281600381518110610a4657610a46612b06565b602002602001018181525050600080516020612d8383398151915281600481518110610a7457610a74612b06565b602002602001018181525050600080516020612da383398151915281600581518110610aa257610aa2612b06565b60200260200101818152505060005b83811015610d1657878782818110610acb57610acb612b06565b905060400201600060028110610ae357610ae3612b06565b602002013582610af4836006612ba8565b610aff906006612b95565b81518110610b0f57610b0f612b06565b602002602001018181525050878782818110610b2d57610b2d612b06565b905060400201600160028110610b4557610b45612b06565b602002013582610b56836006612ba8565b610b61906007612b95565b81518110610b7157610b71612b06565b602002602001018181525050898982818110610b8f57610b8f612b06565b905060800201600160048110610ba757610ba7612b06565b602002013582610bb8836006612ba8565b610bc3906008612b95565b81518110610bd357610bd3612b06565b602002602001018181525050898982818110610bf157610bf1612b06565b905060800201600060048110610c0957610c09612b06565b602002013582610c1a836006612ba8565b610c25906009612b95565b81518110610c3557610c35612b06565b602002602001018181525050898982818110610c5357610c53612b06565b905060800201600360048110610c6b57610c6b612b06565b602002013582610c7c836006612ba8565b610c8790600a612b95565b81518110610c9757610c97612b06565b602002602001018181525050898982818110610cb557610cb5612b06565b905060800201600260048110610ccd57610ccd612b06565b602002013582610cde836006612ba8565b610ce990600b612b95565b81518110610cf957610cf9612b06565b602090810291909101015280610d0e81612bbf565b915050610ab1565b50610d1f612640565b602081602085026020850160085afa945084610d45576000809550955050505050610d52565b5115159450600193505050505b9550959350505050565b80516060906000610d6e826020612b95565b610d79906040612b95565b610d84906004612b95565b6001600160401b03811115610d9b57610d9b61269a565b6040519080825280601f01601f191660200182016040528015610dc5576020820181803683370190505b5060408051606080825260808201909252919250600091906020820181803683370190505090506060820160005b84811015610e0d5760208188018101518383015201610df3565b5083016000815360010160608153600101600081536001810187905260210160208153506000600283604051610e439190612c6f565b602060405180830381855afa158015610e60573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610e839190612c8b565b9050600060429450848452816020850152600160408501536041840188905260206061850153600284604051610eb99190612c6f565b602060405180830381855afa158015610ed6573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610ef99190612c8b565b905080602084015280821880602086015250600260408501536041840188905260206061850153600284604051610f309190612c6f565b602060405180830381855afa158015610f4d573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610f709190612c8b565b905080604084015280821880602086015250600360408501536041840188905260206061850153600284604051610fa79190612c6f565b602060405180830381855afa158015610fc4573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610fe79190612c8b565b606084015250909695505050505050565b61100061265e565b604051638669026f60e01b81526000903090638669026f906110289087908790600401612bd8565b6040805180830381865afa158015611044573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110689190612ca4565b805160405163d58e773360e01b81526004810191909152909150600090309063d58e7733906024016040805180830381865afa1580156110ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d09190612ca4565b602083015160405163d58e773360e01b81526004810191909152909150600090309063d58e7733906024016040805180830381865afa158015611117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113b9190612ca4565b905061114561267c565b825181526020808401518282015282516040808401919091529083015160608301526000908460808460066107d05a03fa9050808061118057fe5b50806111c85760405162461bcd60e51b8152602060048201526017602482015276109314ce88189b881859190818d85b1b0819985a5b1959604a1b60448201526064016103d9565b50919695505050505050565b6111dc61265e565b600080516020612d6383398151915282106112455760405162461bcd60e51b815260206004820152602360248201527f6d6170546f506f696e7446543a20696e76616c6964206669656c6420656c656d604482015262195b9d60ea1b60648201526084016103d9565b81600061125182611790565b9150506000600080516020612d638339815191528061127257611272612cf9565b8384099050600080516020612d638339815191526004820890506000600080516020612d6383398151915277b3c4d79d41a91759a9e4c7e359b6b89eaec68e62effffffd850990506000600080516020612d6383398151915283830990506112d9816117b9565b9050600080516020612d638339815191528283099150600080516020612d638339815191528183099150600080516020612d638339815191528286099150600080516020612d6383398151915261133e83600080516020612d63833981519152612d0f565b7759e26bcea0d48bacd4f263f1acdb5c4f5763473177fffffe089450600080516020612d638339815191528586099150600080516020612d638339815191528583099150600080516020612d6383398151915260038308915060006113a283611790565b909350905080156113ea57846113cd576113ca83600080516020612d63833981519152612d0f565b92505b505060408051808201909152938452602084015250909392505050565b600080516020612d638339815191526001870861141590600080516020612d63833981519152612d0f565b9550600080516020612d638339815191528687099250600080516020612d638339815191528684099250600080516020612d6383398151915260038408925061145d83611790565b9093509050801561148557846113cd576113ca83600080516020612d63833981519152612d0f565b600080516020612d638339815191528485099550600080516020612d638339815191528687099550600080516020612d638339815191528287099550600080516020612d638339815191528287099550600080516020612d63833981519152600187089550600080516020612d638339815191528687099250600080516020612d638339815191528684099250600080516020612d6383398151915260038408925061153083611790565b90935090508061158d5760405162461bcd60e51b815260206004820152602260248201527f424c533a20626164206674206d617070696e6720696d706c656d656e7461746960448201526137b760f11b60648201526084016103d9565b846113cd576113ca83600080516020612d63833981519152612d0f565b600081516020830151600080516020612d63833981519152828309600080516020612d638339815191528382099050600080516020612d63833981519152600382089050600080516020612d6383398151915282830914949350505050565b60008060006040518061018001604052808760006002811061162d5761162d612b06565b602002013581526020018760016002811061164a5761164a612b06565b60200201358152602001600080516020612d438339815191528152602001600080516020612d238339815191528152602001600080516020612d838339815191528152602001600080516020612da38339815191528152602001856000600281106116b7576116b7612b06565b60200201358152602001856001600281106116d4576116d4612b06565b60200201358152602001866001600481106116f1576116f1612b06565b602002013581526020018660006004811061170e5761170e612b06565b602002013581526020018660036004811061172b5761172b612b06565b602002013581526020018660026004811061174857611748612b06565b602002013590529050611759612640565b60006020826101808560085afa90508061177c5760008094509450505050611788565b50511515925060019150505b935093915050565b60008061179c836117c4565b915082600080516020612d63833981519152838409149050915091565b60006103b282611ef9565b6000600080516020612d638339815191528083840991508083830981838209828283098385830984848309858484098684850997508684840987858409945087898a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087838a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985050868889099750868889099750868889099750868889099750868889099750868889099750868489099750868889099750868889099750868889099750868889099750868889099750868989099750868889099750868889099750868889099750868889099750868889099750868889099750868989099750868889099750868889099750868889099750868889099750868889099750868689099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868189099750508587880996508587880996508587880996508585880996508587880996508587880996508587880996508585880996508587880996508587880996508587880996508587880996508587880996508587880996508587880996508587880996508583880996508587880996508587880996508587880996508587880996508581880996508587880996508587880996508587880996508587880996508583880996508587880996508587880996508587880996508584880996508587880996508587880996508587880996508587880996508587880996508581880996505050505050808283099392505050565b6000600080516020612d638339815191528083840991508083830981838209828283098385830984848309858484098684850997508684840987858409945087898a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087878a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a09985087898a09985087898a09985087898a09985087838a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087828a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087848a09985087898a09985087898a09985087898a09985087898a09985087898a09985087868a09985087898a09985087898a099850878a8a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087898a09985087818a09985050868889099750868889099750868889099750868889099750868889099750868889099750868489099750868889099750868889099750868889099750868889099750868889099750868989099750868889099750868889099750868889099750868889099750868889099750868889099750868989099750868889099750868889099750868889099750868889099750868889099750868689099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868889099750868189099750508587880996508587880996508587880996508585880996508587880996508587880996508587880996508585880996508587880996508587880996508587880996508587880996508587880996508587880996508587880996508587880996508583880996508587880996508587880996508587880996508587880996508581880996505050838586099450838586099450838586099450838586099450838186099450508284850993508284850993508284850993508281850993508284850993508284850993508285850993508284850993508284850993508284850993508284850993508284850993508284850993508281850995945050505050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156126d2576126d261269a565b60405290565b604051601f8201601f191681016001600160401b03811182821017156127005761270061269a565b604052919050565b60006080828403121561271a57600080fd5b82601f83011261272957600080fd5b604051608081018181106001600160401b038211171561274b5761274b61269a565b60405280608084018581111561276057600080fd5b845b8181101561277a578035835260209283019201612762565b509195945050505050565b60006040828403121561279757600080fd5b82601f8301126127a657600080fd5b6127ae6126b0565b8060408401858111156127c057600080fd5b845b818110156127da5780358452602093840193016127c2565b509095945050505050565b80604081018310156103b257600080fd5b60008083601f84011261280857600080fd5b5081356001600160401b0381111561281f57600080fd5b6020830191508360208260071b850101111561283a57600080fd5b9250929050565b60008060008060a0858703121561285757600080fd5b61286186866127e5565b935060408501356001600160401b0381111561287c57600080fd5b612888878288016127f6565b909450925061289c905086606087016127e5565b905092959194509250565b60006001600160401b038211156128c0576128c061269a565b50601f01601f191660200190565b600080604083850312156128e157600080fd5b8235915060208301356001600160401b038111156128fe57600080fd5b8301601f8101851361290f57600080fd5b803561292261291d826128a7565b6126d8565b81815286602083850101111561293757600080fd5b816020840160208301376000602083830101528093505050509250929050565b60408101818360005b600281101561297f578151835260209283019290910190600101612960565b50505092915050565b6000806000806000608086880312156129a057600080fd5b6129aa87876127e5565b945060408601356001600160401b03808211156129c657600080fd5b6129d289838a016127f6565b909650945060608801359150808211156129eb57600080fd5b818801915088601f8301126129ff57600080fd5b813581811115612a0e57600080fd5b8960208260061b8501011115612a2357600080fd5b9699959850939650602001949392505050565b60005b83811015612a51578181015183820152602001612a39565b50506000910152565b60008151808452612a72816020860160208601612a36565b601f01601f19169290920160200192915050565b602081526000612a996020830184612a5a565b9392505050565b600060208284031215612ab257600080fd5b5035919050565b60008060006101008486031215612acf57600080fd5b612ad985856127e5565b925060c0840185811115612aec57600080fd5b604085019250612afc86826127e5565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612b2e57600080fd5b81518015158114612a9957600080fd5b60208082526021908201527f424c533a206e756d626572206f66207075626c6963206b6579206973207a65726040820152606f60f81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156103b2576103b2612b7f565b80820281158282048414176103b2576103b2612b7f565b600060018201612bd157612bd1612b7f565b5060010190565b828152604060208201526000612bf16040830184612a5a565b949350505050565b600060208284031215612c0b57600080fd5b81516001600160401b03811115612c2157600080fd5b8201601f81018413612c3257600080fd5b8051612c4061291d826128a7565b818152856020838501011115612c5557600080fd5b612c66826020830160208601612a36565b95945050505050565b60008251612c81818460208701612a36565b9190910192915050565b600060208284031215612c9d57600080fd5b5051919050565b600060408284031215612cb657600080fd5b82601f830112612cc557600080fd5b612ccd6126b0565b806040840185811115612cdf57600080fd5b845b818110156127da578051845260209384019301612ce1565b634e487b7160e01b600052601260045260246000fd5b818103818111156103b2576103b2612b7f56fe1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c230644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9da26469706673582212204742dc9bfec89e0e4850b0f02ca1922cc3c73b8db4ec85457e11b7fd8d117c1264736f6c63430008130033","linkReferences":{},"deployedLinkReferences":{}}`