Socket
Socket
Sign inDemoInstall

@eth-optimism/contracts

Package Overview
Dependencies
Maintainers
6
Versions
190
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@eth-optimism/contracts - npm Package Compare versions

Comparing version 0.0.2-alpha.2 to 0.0.2-alpha.3

2

build/artifacts/Helper_ModifiableStorage.json

@@ -64,3 +64,3 @@ {

{
"astId": 22635,
"astId": 22642,
"contract": "contracts/test-helpers/Helper_ModifiableStorage.sol:Helper_ModifiableStorage",

@@ -67,0 +67,0 @@ "label": "target",

@@ -71,3 +71,3 @@ {

{
"astId": 22751,
"astId": 22758,
"contract": "contracts/test-helpers/Helper_PrecompileCaller.sol:Helper_PrecompileCaller",

@@ -80,3 +80,3 @@ "label": "owner",

{
"astId": 22753,
"astId": 22760,
"contract": "contracts/test-helpers/Helper_PrecompileCaller.sol:Helper_PrecompileCaller",

@@ -83,0 +83,0 @@ "label": "target",

@@ -34,3 +34,3 @@ {

{
"astId": 22751,
"astId": 22758,
"contract": "contracts/test-helpers/Helper_SimpleProxy.sol:Helper_SimpleProxy",

@@ -43,3 +43,3 @@ "label": "owner",

{
"astId": 22753,
"astId": 22760,
"contract": "contracts/test-helpers/Helper_SimpleProxy.sol:Helper_SimpleProxy",

@@ -46,0 +46,0 @@ "label": "target",

@@ -113,3 +113,3 @@ {

],
"bytecode": "0x60806040523480156200001157600080fd5b5060405162001e5d38038062001e5d833981016040819052620000349162000c55565b8051156200004d5762000047816200005d565b62000055565b815160208301f35b505062000ed3565b60005b815181101562000098576200008f8282815181106200007b57fe5b60200260200101516200009c60201b60201c565b60010162000060565b5050565b8051604051600091620000b29160200162000da2565b6040516020818303038152906040528051906020012090507fd520c32600de53b7dabdeb8833d4032fad0423f6c5aa0b9894a37847f14aeab78114156200010157602080830151805190918201f35b7fd4acac49d3184c9a5b5f58547241b7636cd672b4b3b7f2e5c529da12642a46058114156200013857602080830151805190918201fd5b7fdbc7aada9d0fca4e11b6085e53b2397a57db73c97c73323d769a387d151901398114156200016357fe5b60006060336001600160a01b0316846020015160405162000185919062000da2565b6000604051808303816000865af19150503d8060008114620001c4576040519150601f19603f3d011682016040523d82523d6000602084013e620001c9565b606091505b50915091508360400151151582151514620004ba5760018215151415620002d3576200021960405180608001604052806046815260200162001e17604691396200097060201b620007b31760201c565b6200025860405180604001604052806012815260200160008051602062001df78339815191528152508560000151620009be60201b620007f91760201c565b620002926040518060400160405280600c81526020016b2932ba3ab937102230ba309d60a11b8152506200097060201b620007b31760201c565b620002a88162000a0b60201b6200083e1760201c565b620002cd604051806020016040528060008152506200097060201b620007b31760201c565b62000497565b600080806060620002e48562000a56565b93509350935093506200031b60405180608001604052806046815260200162001db1604691396200097060201b620007b31760201c565b6200035a60405180604001604052806012815260200160008051602062001df78339815191528152508960000151620009be60201b620007f91760201c565b6200039160405180604001604052806008815260200167466c61673a20257360c01b8152508562000aad60201b620008811760201c565b620003dd6040518060400160405280601581526020017f4e756973616e636520476173204c6566743a20257300000000000000000000008152508462000aad60201b620008811760201c565b6200041e604051806040016040528060128152602001714f564d2047617320526566756e643a20257360701b8152508362000aad60201b620008811760201c565b620004576040518060400160405280600b81526020016a22bc3a3930902230ba309d60a91b8152506200097060201b620007b31760201c565b6200046d8162000a0b60201b6200083e1760201c565b62000492604051806020016040528060008152506200097060201b620007b31760201c565b505050505b60405162461bcd60e51b8152600401620004b19062000e32565b60405180910390fd5b836060015180519060200120818051906020012014620009325760018215151415620005d4576200050f6040518060600160405280603d815260200162001d74603d91396200097060201b620007b31760201c565b6200054e60405180604001604052806012815260200160008051602062001df78339815191528152508560000151620009be60201b620007f91760201c565b620005856040518060400160405280600981526020016822bc3832b1ba32b21d60b91b8152506200097060201b620007b31760201c565b6200059f846060015162000a0b60201b6200083e1760201c565b620002926040518060400160405280600781526020016620b1ba3ab0b61d60c91b8152506200097060201b620007b31760201c565b60008060006060620005f0886060015162000a5660201b60201c565b935093509350935060008060006060620006108962000a5660201b60201c565b93509350935093506200064760405180608001604052806047815260200162001d2d604791396200097060201b620007b31760201c565b6200068660405180604001604052806012815260200160008051602062001df78339815191528152508d60000151620009be60201b620007f91760201c565b620006c660405180604001604052806011815260200170457870656374656420466c61673a20257360781b8152508962000aad60201b620008811760201c565b620007046040518060400160405280600f81526020016e41637475616c20466c61673a20257360881b8152508562000aad60201b620008811760201c565b620007506040518060400160405280601e81526020017f4578706563746564204e756973616e636520476173204c6566743a20257300008152508862000aad60201b620008811760201c565b6200079c6040518060400160405280601c81526020017f41637475616c204e756973616e636520476173204c6566743a202573000000008152508462000aad60201b620008811760201c565b620007e86040518060400160405280601b81526020017f4578706563746564204f564d2047617320526566756e643a20257300000000008152508762000aad60201b620008811760201c565b620008346040518060400160405280601981526020017f41637475616c204f564d2047617320526566756e643a202573000000000000008152508362000aad60201b620008811760201c565b6200087f6040518060400160405280601481526020017f457870656374656420457874726120446174613a0000000000000000000000008152506200097060201b620007b31760201c565b620008958562000a0b60201b6200083e1760201c565b620008d56040518060400160405280601281526020017120b1ba3ab0b61022bc3a3930902230ba309d60711b8152506200097060201b620007b31760201c565b620008eb8162000a0b60201b6200083e1760201c565b62000910604051806020016040528060008152506200097060201b620007b31760201c565b505050505050505060405162461bcd60e51b8152600401620004b19062000e32565b8115806200094f575060018215151480156200094f575080516001145b156200096a57303b620009625760016000f35b805160208201fd5b50505050565b620009bb8160405160240162000987919062000dc0565b60408051601f198184030181529190526020810180516001600160e01b0390811663104c13eb60e21b1790915262000afa16565b50565b620000988282604051602401620009d792919062000ddc565b60408051601f198184030181529190526020810180516001600160e01b03908116634b5c427760e01b1790915262000afa16565b620009bb8160405160240162000a22919062000dc0565b60408051601f198184030181529190526020810180516001600160e01b039081166305f3bfab60e11b1790915262000afa16565b6000806000606084516000141562000a87575050604080516020810190915260008082529250829150819062000aa6565b8480602001905181019062000a9d919062000d17565b93509350935093505b9193509193565b62000098828260405160240162000ac692919062000e0e565b60408051601f198184030181529190526020810180516001600160e01b039081166309710a9d60e41b1790915262000afa16565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b8051801515811462000b2c57600080fd5b92915050565b600082601f83011262000b43578081fd5b81516001600160401b0381111562000b59578182fd5b62000b6e601f8201601f191660200162000e5d565b915080825283602082850101111562000b8657600080fd5b62000b9981602084016020860162000ea4565b5092915050565b60006080828403121562000bb2578081fd5b62000bbe608062000e5d565b82519091506001600160401b038082111562000bd957600080fd5b62000be78583860162000b32565b8352602084015191508082111562000bfe57600080fd5b62000c0c8583860162000b32565b602084015262000c20856040860162000b1b565b6040840152606084015191508082111562000c3a57600080fd5b5062000c498482850162000b32565b60608301525092915050565b6000806040838503121562000c68578182fd5b82516001600160401b038082111562000c7f578384fd5b62000c8d8683870162000b32565b935060209150818501518181111562000ca4578384fd5b85019050601f8101861362000cb7578283fd5b805162000cce62000cc88262000e84565b62000e5d565b81815283810190838501865b8481101562000d075762000cf48b88845189010162000ba0565b8452928601929086019060010162000cda565b5096999098509650505050505050565b6000806000806080858703121562000d2d578182fd5b845160208601516040870151606088015192965090945092506001600160401b0381111562000d5a578182fd5b62000d688782880162000b32565b91505092959194509250565b6000815180845262000d8e81602086016020860162000ea4565b601f01601f19169290920160200192915050565b6000825162000db681846020870162000ea4565b9190910192915050565b60006020825262000dd5602083018462000d74565b9392505050565b60006040825262000df1604083018562000d74565b828103602084015262000e05818562000d74565b95945050505050565b60006040825262000e23604083018562000d74565b90508260208301529392505050565b6020808252601190820152702a32b9ba1039ba32b8103330b4b632b21760791b604082015260600190565b6040518181016001600160401b038111828210171562000e7c57600080fd5b604052919050565b60006001600160401b0382111562000e9a578081fd5b5060209081020190565b60005b8381101562000ec157818101518382015260200162000ea7565b838111156200096a5750506000910152565b610e4a8062000ee36000396000f3fe608060405234801561001057600080fd5b50600436106100355760003560e01c8062a54d6f1461003a578063d80ccd341461004f575b600080fd5b61004d610048366004610a4a565b610062565b005b61004d61005d366004610ae5565b610096565b60005b81518110156100925761008a82828151811061007d57fe5b6020026020010151610096565b600101610065565b5050565b80516040516000916100aa91602001610bdc565b6040516020818303038152906040528051906020012090507fd520c32600de53b7dabdeb8833d4032fad0423f6c5aa0b9894a37847f14aeab78114156100f857602080830151805190918201f35b7fd4acac49d3184c9a5b5f58547241b7636cd672b4b3b7f2e5c529da12642a460581141561012e57602080830151805190918201fd5b7fdbc7aada9d0fca4e11b6085e53b2397a57db73c97c73323d769a387d1519013981141561015857fe5b60006060336001600160a01b031684602001516040516101789190610bdc565b6000604051808303816000865af19150503d80600081146101b5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ba565b606091505b509150915083604001511515821515146103fe5760018215151415610285576101fa604051806080016040528060468152602001610dcf604691396107b3565b610232604051806040016040528060128152602001714f6666656e64696e6720537465703a20257360701b81525085600001516107f9565b61025f6040518060400160405280600c81526020016b2932ba3ab937102230ba309d60a11b8152506107b3565b6102688161083e565b610280604051806020016040528060008152506107b3565b6103dd565b60008060006060610295856108c6565b93509350935093506102be604051806080016040528060468152602001610d89604691396107b3565b6102f6604051806040016040528060128152602001714f6666656e64696e6720537465703a20257360701b81525089600001516107f9565b61032060405180604001604052806008815260200167466c61673a20257360c01b81525085610881565b610357604051806040016040528060158152602001744e756973616e636520476173204c6566743a20257360581b81525084610881565b61038b604051806040016040528060128152602001714f564d2047617320526566756e643a20257360701b81525083610881565b6103b76040518060400160405280600b81526020016a22bc3a3930902230ba309d60a91b8152506107b3565b6103c08161083e565b6103d8604051806020016040528060008152506107b3565b505050505b60405162461bcd60e51b81526004016103f590610c62565b60405180910390fd5b83606001518051906020012081805190602001201461077957600182151514156104da576104436040518060600160405280603d8152602001610d4c603d91396107b3565b61047b604051806040016040528060128152602001714f6666656e64696e6720537465703a20257360701b81525085600001516107f9565b6104a56040518060400160405280600981526020016822bc3832b1ba32b21d60b91b8152506107b3565b6104b2846060015161083e565b61025f6040518060400160405280600781526020016620b1ba3ab0b61d60c91b8152506107b3565b600080600060606104ee88606001516108c6565b935093509350935060008060006060610506896108c6565b935093509350935061052f604051806080016040528060478152602001610d05604791396107b3565b610567604051806040016040528060128152602001714f6666656e64696e6720537465703a20257360701b8152508d600001516107f9565b61059a60405180604001604052806011815260200170457870656374656420466c61673a20257360781b81525089610881565b6105cb6040518060400160405280600f81526020016e41637475616c20466c61673a20257360881b81525085610881565b61060a6040518060400160405280601e81526020017f4578706563746564204e756973616e636520476173204c6566743a202573000081525088610881565b6106496040518060400160405280601c81526020017f41637475616c204e756973616e636520476173204c6566743a2025730000000081525084610881565b6106886040518060400160405280601b81526020017f4578706563746564204f564d2047617320526566756e643a202573000000000081525087610881565b6106c76040518060400160405280601981526020017f41637475616c204f564d2047617320526566756e643a2025730000000000000081525083610881565b6106fc6040518060400160405280601481526020017322bc3832b1ba32b21022bc3a3930902230ba309d60611b8152506107b3565b6107058561083e565b6107386040518060400160405280601281526020017120b1ba3ab0b61022bc3a3930902230ba309d60711b8152506107b3565b6107418161083e565b610759604051806020016040528060008152506107b3565b505050505050505060405162461bcd60e51b81526004016103f590610c62565b81158061079457506001821515148015610794575080516001145b156107ad57303b6107a55760016000f35b805160208201fd5b50505050565b6107f6816040516024016107c79190610bf8565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610919565b50565b610092828260405160240161080f929190610c12565b60408051601f198184030181529190526020810180516001600160e01b0316634b5c427760e01b179052610919565b6107f6816040516024016108529190610bf8565b60408051601f198184030181529190526020810180516001600160e01b03166305f3bfab60e11b179052610919565b6100928282604051602401610897929190610c40565b60408051601f198184030181529190526020810180516001600160e01b03166309710a9d60e41b179052610919565b600080600060608451600014156108f55750506040805160208101909152600080825292508291508190610912565b848060200190518101906109099190610b20565b93509350935093505b9193509193565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b8035801515811461094a57600080fd5b92915050565b600082601f830112610960578081fd5b813561097361096e82610cb4565b610c8d565b915080825283602082850101111561098a57600080fd5b8060208401602084013760009082016020015292915050565b6000608082840312156109b4578081fd5b6109be6080610c8d565b9050813567ffffffffffffffff808211156109d857600080fd5b6109e485838601610950565b835260208401359150808211156109fa57600080fd5b610a0685838601610950565b6020840152610a18856040860161093a565b60408401526060840135915080821115610a3157600080fd5b50610a3e84828501610950565b60608301525092915050565b60006020808385031215610a5c578182fd5b823567ffffffffffffffff80821115610a73578384fd5b818501915085601f830112610a86578384fd5b813581811115610a94578485fd5b610aa18485830201610c8d565b8181528481019250838501865b83811015610ad757610ac58a8884358901016109a3565b85529386019390860190600101610aae565b509098975050505050505050565b600060208284031215610af6578081fd5b813567ffffffffffffffff811115610b0c578182fd5b610b18848285016109a3565b949350505050565b60008060008060808587031215610b35578283fd5b845193506020850151925060408501519150606085015167ffffffffffffffff811115610b60578182fd5b8501601f81018713610b70578182fd5b8051610b7e61096e82610cb4565b818152886020838501011115610b92578384fd5b610ba3826020830160208601610cd8565b9598949750929550505050565b60008151808452610bc8816020860160208601610cd8565b601f01601f19169290920160200192915050565b60008251610bee818460208701610cd8565b9190910192915050565b600060208252610c0b6020830184610bb0565b9392505050565b600060408252610c256040830185610bb0565b8281036020840152610c378185610bb0565b95945050505050565b600060408252610c536040830185610bb0565b90508260208301529392505050565b6020808252601190820152702a32b9ba1039ba32b8103330b4b632b21760791b604082015260600190565b60405181810167ffffffffffffffff81118282101715610cac57600080fd5b604052919050565b600067ffffffffffffffff821115610cca578081fd5b50601f01601f191660200190565b60005b83811015610cf3578181015183820152602001610cdb565b838111156107ad575050600091015256fe4552524f523a2041637475616c2072657665727420666c6167206461746120646f6573206e6f74206d617463682065787065637465642072657665727420666c616720646174614552524f523a2041637475616c2072657475726e206461746120646f6573206e6f74206d617463682065787065637465642072657475726e20646174614552524f523a2045787065637465642066756e6374696f6e20746f2072657475726e207375636365737366756c6c792c206275742066756e6374696f6e2072657665727465644552524f523a2045787065637465642066756e6374696f6e20746f207265766572742c206275742066756e6374696f6e2072657475726e6564207375636365737366756c6c79a264697066735822122056a781594b1ffbe94250033ab9f7e3114c59eb0ab4c05b878486ff6ca620f5c764736f6c634300070000334552524f523a2041637475616c2072657665727420666c6167206461746120646f6573206e6f74206d617463682065787065637465642072657665727420666c616720646174614552524f523a2041637475616c2072657475726e206461746120646f6573206e6f74206d617463682065787065637465642072657475726e20646174614552524f523a2045787065637465642066756e6374696f6e20746f2072657475726e207375636365737366756c6c792c206275742066756e6374696f6e2072657665727465644f6666656e64696e6720537465703a20257300000000000000000000000000004552524f523a2045787065637465642066756e6374696f6e20746f207265766572742c206275742066756e6374696f6e2072657475726e6564207375636365737366756c6c79",
"bytecode": "0x60806040523480156200001157600080fd5b5060405162001e2938038062001e29833981016040819052620000349162000ba0565b8051156200004d5762000047816200005d565b62000055565b815160208301f35b505062000e9f565b60005b815181101562000098576200008f8282815181106200007b57fe5b60200260200101516200009c60201b60201c565b60010162000060565b5050565b8051604051600091620000b29160200162000d8e565b6040516020818303038152906040528051906020012090507fd520c32600de53b7dabdeb8833d4032fad0423f6c5aa0b9894a37847f14aeab78114156200010157602080830151805190918201f35b7fd4acac49d3184c9a5b5f58547241b7636cd672b4b3b7f2e5c529da12642a46058114156200013857602080830151805190918201fd5b7fdbc7aada9d0fca4e11b6085e53b2397a57db73c97c73323d769a387d151901398114156200016357fe5b60006060336001600160a01b0316846020015160405162000185919062000d8e565b6000604051808303816000865af19150503d8060008114620001c4576040519150601f19603f3d011682016040523d82523d6000602084013e620001c9565b606091505b50915091508360400151151582151514620004ba5760018215151415620002d3576200021960405180608001604052806046815260200162001de3604691396200097060201b620007b31760201c565b6200025860405180604001604052806012815260200160008051602062001dc38339815191528152508560000151620009be60201b620007f91760201c565b620002926040518060400160405280600c81526020016b2932ba3ab937102230ba309d60a11b8152506200097060201b620007b31760201c565b620002a88162000a0b60201b6200083e1760201c565b620002cd604051806020016040528060008152506200097060201b620007b31760201c565b62000497565b600080806060620002e48562000a56565b93509350935093506200031b60405180608001604052806046815260200162001d7d604691396200097060201b620007b31760201c565b6200035a60405180604001604052806012815260200160008051602062001dc38339815191528152508960000151620009be60201b620007f91760201c565b6200039160405180604001604052806008815260200167466c61673a20257360c01b8152508562000aad60201b620008811760201c565b620003dd6040518060400160405280601581526020017f4e756973616e636520476173204c6566743a20257300000000000000000000008152508462000aad60201b620008811760201c565b6200041e604051806040016040528060128152602001714f564d2047617320526566756e643a20257360701b8152508362000aad60201b620008811760201c565b620004576040518060400160405280600b81526020016a22bc3a3930902230ba309d60a91b8152506200097060201b620007b31760201c565b6200046d8162000a0b60201b6200083e1760201c565b62000492604051806020016040528060008152506200097060201b620007b31760201c565b505050505b60405162461bcd60e51b8152600401620004b19062000e1e565b60405180910390fd5b836060015180519060200120818051906020012014620009325760018215151415620005d4576200050f6040518060600160405280603d815260200162001d40603d91396200097060201b620007b31760201c565b6200054e60405180604001604052806012815260200160008051602062001dc38339815191528152508560000151620009be60201b620007f91760201c565b620005856040518060400160405280600981526020016822bc3832b1ba32b21d60b91b8152506200097060201b620007b31760201c565b6200059f846060015162000a0b60201b6200083e1760201c565b620002926040518060400160405280600781526020016620b1ba3ab0b61d60c91b8152506200097060201b620007b31760201c565b60008060006060620005f0886060015162000a5660201b60201c565b935093509350935060008060006060620006108962000a5660201b60201c565b93509350935093506200064760405180608001604052806047815260200162001cf9604791396200097060201b620007b31760201c565b6200068660405180604001604052806012815260200160008051602062001dc38339815191528152508d60000151620009be60201b620007f91760201c565b620006c660405180604001604052806011815260200170457870656374656420466c61673a20257360781b8152508962000aad60201b620008811760201c565b620007046040518060400160405280600f81526020016e41637475616c20466c61673a20257360881b8152508562000aad60201b620008811760201c565b620007506040518060400160405280601e81526020017f4578706563746564204e756973616e636520476173204c6566743a20257300008152508862000aad60201b620008811760201c565b6200079c6040518060400160405280601c81526020017f41637475616c204e756973616e636520476173204c6566743a202573000000008152508462000aad60201b620008811760201c565b620007e86040518060400160405280601b81526020017f4578706563746564204f564d2047617320526566756e643a20257300000000008152508762000aad60201b620008811760201c565b620008346040518060400160405280601981526020017f41637475616c204f564d2047617320526566756e643a202573000000000000008152508362000aad60201b620008811760201c565b6200087f6040518060400160405280601481526020017f457870656374656420457874726120446174613a0000000000000000000000008152506200097060201b620007b31760201c565b620008958562000a0b60201b6200083e1760201c565b620008d56040518060400160405280601281526020017120b1ba3ab0b61022bc3a3930902230ba309d60711b8152506200097060201b620007b31760201c565b620008eb8162000a0b60201b6200083e1760201c565b62000910604051806020016040528060008152506200097060201b620007b31760201c565b505050505050505060405162461bcd60e51b8152600401620004b19062000e1e565b8115806200094f575060018215151480156200094f575080516001145b156200096a57303b620009625760016000f35b805160208201fd5b50505050565b620009bb8160405160240162000987919062000dac565b60408051601f198184030181529190526020810180516001600160e01b0390811663104c13eb60e21b1790915262000afa16565b50565b620000988282604051602401620009d792919062000dc8565b60408051601f198184030181529190526020810180516001600160e01b03908116634b5c427760e01b1790915262000afa16565b620009bb8160405160240162000a22919062000dac565b60408051601f198184030181529190526020810180516001600160e01b039081166305f3bfab60e11b1790915262000afa16565b6000806000606084516000141562000a87575050604080516020810190915260008082529250829150819062000aa6565b8480602001905181019062000a9d919062000d03565b93509350935093505b9193509193565b62000098828260405160240162000ac692919062000dfa565b60408051601f198184030181529190526020810180516001600160e01b039081166309710a9d60e41b1790915262000afa16565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b8051801515811462000b2c57600080fd5b92915050565b600082601f83011262000b43578081fd5b81516001600160401b0381111562000b59578182fd5b62000b6e601f8201601f191660200162000e49565b915080825283602082850101111562000b8657600080fd5b62000b9981602084016020860162000e70565b5092915050565b6000806040838503121562000bb3578182fd5b82516001600160401b038082111562000bca578384fd5b62000bd88683870162000b32565b935060209150818501518181111562000bef578384fd5b8501601f8101871362000c00578384fd5b80518281111562000c0f578485fd5b62000c1e848583020162000e49565b81815284810190838601875b8481101562000cf257815186016080818e03601f1901121562000c4b57898afd5b62000c57608062000e49565b898201518981111562000c68578b8cfd5b62000c788f8c8386010162000b32565b82525060408201518981111562000c8d578b8cfd5b62000c9d8f8c8386010162000b32565b8b8301525062000cb18e6060840162000b1b565b604082015260808201518981111562000cc8578b8cfd5b62000cd88f8c8386010162000b32565b606083015250855250928701929087019060010162000c2a565b50979a909950975050505050505050565b6000806000806080858703121562000d19578182fd5b845160208601516040870151606088015192965090945092506001600160401b0381111562000d46578182fd5b62000d548782880162000b32565b91505092959194509250565b6000815180845262000d7a81602086016020860162000e70565b601f01601f19169290920160200192915050565b6000825162000da281846020870162000e70565b9190910192915050565b60006020825262000dc1602083018462000d60565b9392505050565b60006040825262000ddd604083018562000d60565b828103602084015262000df1818562000d60565b95945050505050565b60006040825262000e0f604083018562000d60565b90508260208301529392505050565b6020808252601190820152702a32b9ba1039ba32b8103330b4b632b21760791b604082015260600190565b6040518181016001600160401b038111828210171562000e6857600080fd5b604052919050565b60005b8381101562000e8d57818101518382015260200162000e73565b838111156200096a5750506000910152565b610e4a8062000eaf6000396000f3fe608060405234801561001057600080fd5b50600436106100355760003560e01c8062a54d6f1461003a578063d80ccd341461004f575b600080fd5b61004d610048366004610a4a565b610062565b005b61004d61005d366004610ae5565b610096565b60005b81518110156100925761008a82828151811061007d57fe5b6020026020010151610096565b600101610065565b5050565b80516040516000916100aa91602001610bdc565b6040516020818303038152906040528051906020012090507fd520c32600de53b7dabdeb8833d4032fad0423f6c5aa0b9894a37847f14aeab78114156100f857602080830151805190918201f35b7fd4acac49d3184c9a5b5f58547241b7636cd672b4b3b7f2e5c529da12642a460581141561012e57602080830151805190918201fd5b7fdbc7aada9d0fca4e11b6085e53b2397a57db73c97c73323d769a387d1519013981141561015857fe5b60006060336001600160a01b031684602001516040516101789190610bdc565b6000604051808303816000865af19150503d80600081146101b5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ba565b606091505b509150915083604001511515821515146103fe5760018215151415610285576101fa604051806080016040528060468152602001610dcf604691396107b3565b610232604051806040016040528060128152602001714f6666656e64696e6720537465703a20257360701b81525085600001516107f9565b61025f6040518060400160405280600c81526020016b2932ba3ab937102230ba309d60a11b8152506107b3565b6102688161083e565b610280604051806020016040528060008152506107b3565b6103dd565b60008060006060610295856108c6565b93509350935093506102be604051806080016040528060468152602001610d89604691396107b3565b6102f6604051806040016040528060128152602001714f6666656e64696e6720537465703a20257360701b81525089600001516107f9565b61032060405180604001604052806008815260200167466c61673a20257360c01b81525085610881565b610357604051806040016040528060158152602001744e756973616e636520476173204c6566743a20257360581b81525084610881565b61038b604051806040016040528060128152602001714f564d2047617320526566756e643a20257360701b81525083610881565b6103b76040518060400160405280600b81526020016a22bc3a3930902230ba309d60a91b8152506107b3565b6103c08161083e565b6103d8604051806020016040528060008152506107b3565b505050505b60405162461bcd60e51b81526004016103f590610c62565b60405180910390fd5b83606001518051906020012081805190602001201461077957600182151514156104da576104436040518060600160405280603d8152602001610d4c603d91396107b3565b61047b604051806040016040528060128152602001714f6666656e64696e6720537465703a20257360701b81525085600001516107f9565b6104a56040518060400160405280600981526020016822bc3832b1ba32b21d60b91b8152506107b3565b6104b2846060015161083e565b61025f6040518060400160405280600781526020016620b1ba3ab0b61d60c91b8152506107b3565b600080600060606104ee88606001516108c6565b935093509350935060008060006060610506896108c6565b935093509350935061052f604051806080016040528060478152602001610d05604791396107b3565b610567604051806040016040528060128152602001714f6666656e64696e6720537465703a20257360701b8152508d600001516107f9565b61059a60405180604001604052806011815260200170457870656374656420466c61673a20257360781b81525089610881565b6105cb6040518060400160405280600f81526020016e41637475616c20466c61673a20257360881b81525085610881565b61060a6040518060400160405280601e81526020017f4578706563746564204e756973616e636520476173204c6566743a202573000081525088610881565b6106496040518060400160405280601c81526020017f41637475616c204e756973616e636520476173204c6566743a2025730000000081525084610881565b6106886040518060400160405280601b81526020017f4578706563746564204f564d2047617320526566756e643a202573000000000081525087610881565b6106c76040518060400160405280601981526020017f41637475616c204f564d2047617320526566756e643a2025730000000000000081525083610881565b6106fc6040518060400160405280601481526020017322bc3832b1ba32b21022bc3a3930902230ba309d60611b8152506107b3565b6107058561083e565b6107386040518060400160405280601281526020017120b1ba3ab0b61022bc3a3930902230ba309d60711b8152506107b3565b6107418161083e565b610759604051806020016040528060008152506107b3565b505050505050505060405162461bcd60e51b81526004016103f590610c62565b81158061079457506001821515148015610794575080516001145b156107ad57303b6107a55760016000f35b805160208201fd5b50505050565b6107f6816040516024016107c79190610bf8565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610919565b50565b610092828260405160240161080f929190610c12565b60408051601f198184030181529190526020810180516001600160e01b0316634b5c427760e01b179052610919565b6107f6816040516024016108529190610bf8565b60408051601f198184030181529190526020810180516001600160e01b03166305f3bfab60e11b179052610919565b6100928282604051602401610897929190610c40565b60408051601f198184030181529190526020810180516001600160e01b03166309710a9d60e41b179052610919565b600080600060608451600014156108f55750506040805160208101909152600080825292508291508190610912565b848060200190518101906109099190610b20565b93509350935093505b9193509193565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b8035801515811461094a57600080fd5b92915050565b600082601f830112610960578081fd5b813561097361096e82610cb4565b610c8d565b915080825283602082850101111561098a57600080fd5b8060208401602084013760009082016020015292915050565b6000608082840312156109b4578081fd5b6109be6080610c8d565b9050813567ffffffffffffffff808211156109d857600080fd5b6109e485838601610950565b835260208401359150808211156109fa57600080fd5b610a0685838601610950565b6020840152610a18856040860161093a565b60408401526060840135915080821115610a3157600080fd5b50610a3e84828501610950565b60608301525092915050565b60006020808385031215610a5c578182fd5b823567ffffffffffffffff80821115610a73578384fd5b818501915085601f830112610a86578384fd5b813581811115610a94578485fd5b610aa18485830201610c8d565b8181528481019250838501865b83811015610ad757610ac58a8884358901016109a3565b85529386019390860190600101610aae565b509098975050505050505050565b600060208284031215610af6578081fd5b813567ffffffffffffffff811115610b0c578182fd5b610b18848285016109a3565b949350505050565b60008060008060808587031215610b35578283fd5b845193506020850151925060408501519150606085015167ffffffffffffffff811115610b60578182fd5b8501601f81018713610b70578182fd5b8051610b7e61096e82610cb4565b818152886020838501011115610b92578384fd5b610ba3826020830160208601610cd8565b9598949750929550505050565b60008151808452610bc8816020860160208601610cd8565b601f01601f19169290920160200192915050565b60008251610bee818460208701610cd8565b9190910192915050565b600060208252610c0b6020830184610bb0565b9392505050565b600060408252610c256040830185610bb0565b8281036020840152610c378185610bb0565b95945050505050565b600060408252610c536040830185610bb0565b90508260208301529392505050565b6020808252601190820152702a32b9ba1039ba32b8103330b4b632b21760791b604082015260600190565b60405181810167ffffffffffffffff81118282101715610cac57600080fd5b604052919050565b600067ffffffffffffffff821115610cca578081fd5b50601f01601f191660200190565b60005b83811015610cf3578181015183820152602001610cdb565b838111156107ad575050600091015256fe4552524f523a2041637475616c2072657665727420666c6167206461746120646f6573206e6f74206d617463682065787065637465642072657665727420666c616720646174614552524f523a2041637475616c2072657475726e206461746120646f6573206e6f74206d617463682065787065637465642072657475726e20646174614552524f523a2045787065637465642066756e6374696f6e20746f2072657475726e207375636365737366756c6c792c206275742066756e6374696f6e2072657665727465644552524f523a2045787065637465642066756e6374696f6e20746f207265766572742c206275742066756e6374696f6e2072657475726e6564207375636365737366756c6c79a264697066735822122056a781594b1ffbe94250033ab9f7e3114c59eb0ab4c05b878486ff6ca620f5c764736f6c634300070000334552524f523a2041637475616c2072657665727420666c6167206461746120646f6573206e6f74206d617463682065787065637465642072657665727420666c616720646174614552524f523a2041637475616c2072657475726e206461746120646f6573206e6f74206d617463682065787065637465642072657475726e20646174614552524f523a2045787065637465642066756e6374696f6e20746f2072657475726e207375636365737366756c6c792c206275742066756e6374696f6e2072657665727465644f6666656e64696e6720537465703a20257300000000000000000000000000004552524f523a2045787065637465642066756e6374696f6e20746f207265766572742c206275742066756e6374696f6e2072657475726e6564207375636365737366756c6c79",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100355760003560e01c8062a54d6f1461003a578063d80ccd341461004f575b600080fd5b61004d610048366004610a4a565b610062565b005b61004d61005d366004610ae5565b610096565b60005b81518110156100925761008a82828151811061007d57fe5b6020026020010151610096565b600101610065565b5050565b80516040516000916100aa91602001610bdc565b6040516020818303038152906040528051906020012090507fd520c32600de53b7dabdeb8833d4032fad0423f6c5aa0b9894a37847f14aeab78114156100f857602080830151805190918201f35b7fd4acac49d3184c9a5b5f58547241b7636cd672b4b3b7f2e5c529da12642a460581141561012e57602080830151805190918201fd5b7fdbc7aada9d0fca4e11b6085e53b2397a57db73c97c73323d769a387d1519013981141561015857fe5b60006060336001600160a01b031684602001516040516101789190610bdc565b6000604051808303816000865af19150503d80600081146101b5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ba565b606091505b509150915083604001511515821515146103fe5760018215151415610285576101fa604051806080016040528060468152602001610dcf604691396107b3565b610232604051806040016040528060128152602001714f6666656e64696e6720537465703a20257360701b81525085600001516107f9565b61025f6040518060400160405280600c81526020016b2932ba3ab937102230ba309d60a11b8152506107b3565b6102688161083e565b610280604051806020016040528060008152506107b3565b6103dd565b60008060006060610295856108c6565b93509350935093506102be604051806080016040528060468152602001610d89604691396107b3565b6102f6604051806040016040528060128152602001714f6666656e64696e6720537465703a20257360701b81525089600001516107f9565b61032060405180604001604052806008815260200167466c61673a20257360c01b81525085610881565b610357604051806040016040528060158152602001744e756973616e636520476173204c6566743a20257360581b81525084610881565b61038b604051806040016040528060128152602001714f564d2047617320526566756e643a20257360701b81525083610881565b6103b76040518060400160405280600b81526020016a22bc3a3930902230ba309d60a91b8152506107b3565b6103c08161083e565b6103d8604051806020016040528060008152506107b3565b505050505b60405162461bcd60e51b81526004016103f590610c62565b60405180910390fd5b83606001518051906020012081805190602001201461077957600182151514156104da576104436040518060600160405280603d8152602001610d4c603d91396107b3565b61047b604051806040016040528060128152602001714f6666656e64696e6720537465703a20257360701b81525085600001516107f9565b6104a56040518060400160405280600981526020016822bc3832b1ba32b21d60b91b8152506107b3565b6104b2846060015161083e565b61025f6040518060400160405280600781526020016620b1ba3ab0b61d60c91b8152506107b3565b600080600060606104ee88606001516108c6565b935093509350935060008060006060610506896108c6565b935093509350935061052f604051806080016040528060478152602001610d05604791396107b3565b610567604051806040016040528060128152602001714f6666656e64696e6720537465703a20257360701b8152508d600001516107f9565b61059a60405180604001604052806011815260200170457870656374656420466c61673a20257360781b81525089610881565b6105cb6040518060400160405280600f81526020016e41637475616c20466c61673a20257360881b81525085610881565b61060a6040518060400160405280601e81526020017f4578706563746564204e756973616e636520476173204c6566743a202573000081525088610881565b6106496040518060400160405280601c81526020017f41637475616c204e756973616e636520476173204c6566743a2025730000000081525084610881565b6106886040518060400160405280601b81526020017f4578706563746564204f564d2047617320526566756e643a202573000000000081525087610881565b6106c76040518060400160405280601981526020017f41637475616c204f564d2047617320526566756e643a2025730000000000000081525083610881565b6106fc6040518060400160405280601481526020017322bc3832b1ba32b21022bc3a3930902230ba309d60611b8152506107b3565b6107058561083e565b6107386040518060400160405280601281526020017120b1ba3ab0b61022bc3a3930902230ba309d60711b8152506107b3565b6107418161083e565b610759604051806020016040528060008152506107b3565b505050505050505060405162461bcd60e51b81526004016103f590610c62565b81158061079457506001821515148015610794575080516001145b156107ad57303b6107a55760016000f35b805160208201fd5b50505050565b6107f6816040516024016107c79190610bf8565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610919565b50565b610092828260405160240161080f929190610c12565b60408051601f198184030181529190526020810180516001600160e01b0316634b5c427760e01b179052610919565b6107f6816040516024016108529190610bf8565b60408051601f198184030181529190526020810180516001600160e01b03166305f3bfab60e11b179052610919565b6100928282604051602401610897929190610c40565b60408051601f198184030181529190526020810180516001600160e01b03166309710a9d60e41b179052610919565b600080600060608451600014156108f55750506040805160208101909152600080825292508291508190610912565b848060200190518101906109099190610b20565b93509350935093505b9193509193565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b8035801515811461094a57600080fd5b92915050565b600082601f830112610960578081fd5b813561097361096e82610cb4565b610c8d565b915080825283602082850101111561098a57600080fd5b8060208401602084013760009082016020015292915050565b6000608082840312156109b4578081fd5b6109be6080610c8d565b9050813567ffffffffffffffff808211156109d857600080fd5b6109e485838601610950565b835260208401359150808211156109fa57600080fd5b610a0685838601610950565b6020840152610a18856040860161093a565b60408401526060840135915080821115610a3157600080fd5b50610a3e84828501610950565b60608301525092915050565b60006020808385031215610a5c578182fd5b823567ffffffffffffffff80821115610a73578384fd5b818501915085601f830112610a86578384fd5b813581811115610a94578485fd5b610aa18485830201610c8d565b8181528481019250838501865b83811015610ad757610ac58a8884358901016109a3565b85529386019390860190600101610aae565b509098975050505050505050565b600060208284031215610af6578081fd5b813567ffffffffffffffff811115610b0c578182fd5b610b18848285016109a3565b949350505050565b60008060008060808587031215610b35578283fd5b845193506020850151925060408501519150606085015167ffffffffffffffff811115610b60578182fd5b8501601f81018713610b70578182fd5b8051610b7e61096e82610cb4565b818152886020838501011115610b92578384fd5b610ba3826020830160208601610cd8565b9598949750929550505050565b60008151808452610bc8816020860160208601610cd8565b601f01601f19169290920160200192915050565b60008251610bee818460208701610cd8565b9190910192915050565b600060208252610c0b6020830184610bb0565b9392505050565b600060408252610c256040830185610bb0565b8281036020840152610c378185610bb0565b95945050505050565b600060408252610c536040830185610bb0565b90508260208301529392505050565b6020808252601190820152702a32b9ba1039ba32b8103330b4b632b21760791b604082015260600190565b60405181810167ffffffffffffffff81118282101715610cac57600080fd5b604052919050565b600067ffffffffffffffff821115610cca578081fd5b50601f01601f191660200190565b60005b83811015610cf3578181015183820152602001610cdb565b838111156107ad575050600091015256fe4552524f523a2041637475616c2072657665727420666c6167206461746120646f6573206e6f74206d617463682065787065637465642072657665727420666c616720646174614552524f523a2041637475616c2072657475726e206461746120646f6573206e6f74206d617463682065787065637465642072657475726e20646174614552524f523a2045787065637465642066756e6374696f6e20746f2072657475726e207375636365737366756c6c792c206275742066756e6374696f6e2072657665727465644552524f523a2045787065637465642066756e6374696f6e20746f207265766572742c206275742066756e6374696f6e2072657475726e6564207375636365737366756c6c79a264697066735822122056a781594b1ffbe94250033ab9f7e3114c59eb0ab4c05b878486ff6ca620f5c764736f6c63430007000033",

@@ -116,0 +116,0 @@ "linkReferences": {},

@@ -141,2 +141,15 @@ {

{
"inputs": [],
"name": "getNextQueueIndex",
"outputs": [
{
"internalType": "uint40",
"name": "",
"type": "uint40"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [

@@ -143,0 +156,0 @@ {

@@ -101,3 +101,3 @@ {

{
"astId": 17120,
"astId": 17127,
"contract": "contracts/optimistic-ethereum/libraries/resolver/Lib_AddressManager.sol:Lib_AddressManager",

@@ -110,3 +110,3 @@ "label": "owner",

{
"astId": 17033,
"astId": 17040,
"contract": "contracts/optimistic-ethereum/libraries/resolver/Lib_AddressManager.sol:Lib_AddressManager",

@@ -113,0 +113,0 @@ "label": "addresses",

@@ -42,3 +42,3 @@ {

{
"astId": 17088,
"astId": 17095,
"contract": "contracts/optimistic-ethereum/libraries/resolver/Lib_AddressResolver.sol:Lib_AddressResolver",

@@ -48,7 +48,7 @@ "label": "libAddressManager",

"slot": "0",
"type": "t_contract(Lib_AddressManager)17081"
"type": "t_contract(Lib_AddressManager)17088"
}
],
"types": {
"t_contract(Lib_AddressManager)17081": {
"t_contract(Lib_AddressManager)17088": {
"encoding": "inplace",

@@ -55,0 +55,0 @@ "label": "contract Lib_AddressManager",

@@ -90,3 +90,3 @@ {

{
"astId": 23303,
"astId": 23310,
"contract": "contracts/test-helpers/Mock_FraudVerifier.sol:Mock_FraudVerifier",

@@ -96,6 +96,6 @@ "label": "bondManager",

"slot": "0",
"type": "t_contract(OVM_BondManager)14577"
"type": "t_contract(OVM_BondManager)14578"
},
{
"astId": 23307,
"astId": 23314,
"contract": "contracts/test-helpers/Mock_FraudVerifier.sol:Mock_FraudVerifier",

@@ -119,3 +119,3 @@ "label": "transitioners",

},
"t_contract(OVM_BondManager)14577": {
"t_contract(OVM_BondManager)14578": {
"encoding": "inplace",

@@ -122,0 +122,0 @@ "label": "contract OVM_BondManager",

@@ -223,4 +223,4 @@ {

],
"bytecode": "0x608060405234801561001057600080fd5b50604051610b8e380380610b8e83398101604081905261002f91610037565b60085561004f565b600060208284031215610048578081fd5b5051919050565b610b308061005e6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80636e296e45116100715780636e296e451461011a57806382e3702d1461012f578063a72d7ddd14610142578063b1b1b20914610155578063cc51ef8e14610168578063ecc7042814610170576100a9565b806321d800ec146100ae5780633dbb202b146100d75780633eae0ae0146100ec5780635eb20446146100ff578063683ebbae14610112575b600080fd5b6100c16100bc366004610878565b610185565b6040516100ce91906109da565b60405180910390f35b6100ea6100e536600461080e565b61019a565b005b6100ea6100fa3660046107b8565b610240565b6100ea61010d366004610890565b61028f565b6100c1610399565b6101226103a3565b6040516100ce9190610989565b6100c161013d366004610878565b6103b2565b6100ea610150366004610796565b6103c7565b6100c1610163366004610878565b6103e9565b6100ea6103fe565b6101786105c1565b6040516100ce9190610a82565b60006020819052908152604090205460ff1681565b6006546040805160c0810182524281526001600160a01b038681166020830152338284015260608201869052600354608083015263ffffffff851660a08301529151632f59022360e11b815291909216918291635eb20446916101ff91600401610a1a565b600060405180830381600087803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b5050600380546001019055505050505050565b60606102508433856003546105c7565b905061025c8183610614565b6003805460019081019091558151602092830120600090815260029092526040909120805460ff19169091179055505050565b60058054600181018255600091909152815160069091027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081019182556020808401517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db1830180546001600160a01b039283166001600160a01b03199182161790915560408601517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db2850180549190931691161790556060840151805185949361037f937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db3909101920190610635565b506080820151816004015560a08201518160050155505050565b6007546005541090565b6004546001600160a01b031681565b60026020526000908152604090205460ff1681565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b60016020526000908152604090205460ff1681565b610406610399565b61040f576105bf565b6104176106b3565b60056007548154811061042657fe5b60009182526020918290206040805160c081018252600693909302909101805483526001808201546001600160a01b03908116858701526002808401549091168585015260038301805485516101009482161594909402600019011691909104601f810187900487028301870190945283825293949193606086019391929091908301828280156104f85780601f106104cd576101008083540402835291602001916104f8565b820191906000526020600020905b8154815290600101906020018083116104db57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905042600854826000015101111561052d57506105bf565b604081810151600480546001600160a01b0319166001600160a01b03928316179055602083015160a084015160608501519351919092169261056e9161096d565b60006040518083038160008787f1925050503d80600081146105ac576040519150601f19603f3d011682016040523d82523d6000602084013e6105b1565b606091505b505060078054600101905550505b565b60035481565b6060848484846040516024016105e0949392919061099d565b60408051601f198184030181529190526020810180516001600160e01b031663cbd4ece960e01b1790529050949350505050565b60405162461bcd60e51b815260040161062c906109e5565b60405180910390fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061067657805160ff19168380011785556106a3565b828001600101855582156106a3579182015b828111156106a3578251825591602001919060010190610688565b506106af9291506106fb565b5090565b6040518060c001604052806000815260200160006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081525090565b5b808211156106af57600081556001016106fc565b80356001600160a01b038116811461072757600080fd5b92915050565b600082601f83011261073d578081fd5b813567ffffffffffffffff811115610753578182fd5b610766601f8201601f1916602001610a8b565b915080825283602082850101111561077d57600080fd5b8060208401602084013760009082016020015292915050565b6000602082840312156107a7578081fd5b6107b18383610710565b9392505050565b6000806000606084860312156107cc578182fd5b6107d68585610710565b9250602084013567ffffffffffffffff8111156107f1578283fd5b6107fd8682870161072d565b925050604084013590509250925092565b600080600060608486031215610822578283fd5b833561082d81610ae2565b9250602084013567ffffffffffffffff811115610848578283fd5b6108548682870161072d565b925050604084013563ffffffff8116811461086d578182fd5b809150509250925092565b600060208284031215610889578081fd5b5035919050565b6000602082840312156108a1578081fd5b813567ffffffffffffffff808211156108b8578283fd5b9083019060c082860312156108cb578283fd5b6108d560c0610a8b565b8235815260208301356108e781610ae2565b60208201526108f98660408501610710565b604082015260608301358281111561090f578485fd5b61091b8782860161072d565b6060830152506080830135608082015260a083013560a082015280935050505092915050565b60008151808452610959816020860160208601610ab2565b601f01601f19169290920160200192915050565b6000825161097f818460208701610ab2565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038581168252841660208201526080604082018190526000906109c990830185610941565b905082606083015295945050505050565b901515815260200190565b6020808252818101527f496d706c656d656e74206d6520696e206368696c6420636f6e74726163747321604082015260600190565b60006020825282516020830152602083015160018060a01b0380821660408501528060408601511660608501525050606083015160c06080840152610a6260e0840182610941565b9050608084015160a084015260a084015160c08401528091505092915050565b90815260200190565b60405181810167ffffffffffffffff81118282101715610aaa57600080fd5b604052919050565b60005b83811015610acd578181015183820152602001610ab5565b83811115610adc576000848401525b50505050565b6001600160a01b0381168114610af757600080fd5b5056fea264697066735822122054e8b3e2c64143a4db0aafacf56127ea8c9b1c015da2c6c7d40be9c67cd1813c64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80636e296e45116100715780636e296e451461011a57806382e3702d1461012f578063a72d7ddd14610142578063b1b1b20914610155578063cc51ef8e14610168578063ecc7042814610170576100a9565b806321d800ec146100ae5780633dbb202b146100d75780633eae0ae0146100ec5780635eb20446146100ff578063683ebbae14610112575b600080fd5b6100c16100bc366004610878565b610185565b6040516100ce91906109da565b60405180910390f35b6100ea6100e536600461080e565b61019a565b005b6100ea6100fa3660046107b8565b610240565b6100ea61010d366004610890565b61028f565b6100c1610399565b6101226103a3565b6040516100ce9190610989565b6100c161013d366004610878565b6103b2565b6100ea610150366004610796565b6103c7565b6100c1610163366004610878565b6103e9565b6100ea6103fe565b6101786105c1565b6040516100ce9190610a82565b60006020819052908152604090205460ff1681565b6006546040805160c0810182524281526001600160a01b038681166020830152338284015260608201869052600354608083015263ffffffff851660a08301529151632f59022360e11b815291909216918291635eb20446916101ff91600401610a1a565b600060405180830381600087803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b5050600380546001019055505050505050565b60606102508433856003546105c7565b905061025c8183610614565b6003805460019081019091558151602092830120600090815260029092526040909120805460ff19169091179055505050565b60058054600181018255600091909152815160069091027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081019182556020808401517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db1830180546001600160a01b039283166001600160a01b03199182161790915560408601517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db2850180549190931691161790556060840151805185949361037f937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db3909101920190610635565b506080820151816004015560a08201518160050155505050565b6007546005541090565b6004546001600160a01b031681565b60026020526000908152604090205460ff1681565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b60016020526000908152604090205460ff1681565b610406610399565b61040f576105bf565b6104176106b3565b60056007548154811061042657fe5b60009182526020918290206040805160c081018252600693909302909101805483526001808201546001600160a01b03908116858701526002808401549091168585015260038301805485516101009482161594909402600019011691909104601f810187900487028301870190945283825293949193606086019391929091908301828280156104f85780601f106104cd576101008083540402835291602001916104f8565b820191906000526020600020905b8154815290600101906020018083116104db57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905042600854826000015101111561052d57506105bf565b604081810151600480546001600160a01b0319166001600160a01b03928316179055602083015160a084015160608501519351919092169261056e9161096d565b60006040518083038160008787f1925050503d80600081146105ac576040519150601f19603f3d011682016040523d82523d6000602084013e6105b1565b606091505b505060078054600101905550505b565b60035481565b6060848484846040516024016105e0949392919061099d565b60408051601f198184030181529190526020810180516001600160e01b031663cbd4ece960e01b1790529050949350505050565b60405162461bcd60e51b815260040161062c906109e5565b60405180910390fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061067657805160ff19168380011785556106a3565b828001600101855582156106a3579182015b828111156106a3578251825591602001919060010190610688565b506106af9291506106fb565b5090565b6040518060c001604052806000815260200160006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081525090565b5b808211156106af57600081556001016106fc565b80356001600160a01b038116811461072757600080fd5b92915050565b600082601f83011261073d578081fd5b813567ffffffffffffffff811115610753578182fd5b610766601f8201601f1916602001610a8b565b915080825283602082850101111561077d57600080fd5b8060208401602084013760009082016020015292915050565b6000602082840312156107a7578081fd5b6107b18383610710565b9392505050565b6000806000606084860312156107cc578182fd5b6107d68585610710565b9250602084013567ffffffffffffffff8111156107f1578283fd5b6107fd8682870161072d565b925050604084013590509250925092565b600080600060608486031215610822578283fd5b833561082d81610ae2565b9250602084013567ffffffffffffffff811115610848578283fd5b6108548682870161072d565b925050604084013563ffffffff8116811461086d578182fd5b809150509250925092565b600060208284031215610889578081fd5b5035919050565b6000602082840312156108a1578081fd5b813567ffffffffffffffff808211156108b8578283fd5b9083019060c082860312156108cb578283fd5b6108d560c0610a8b565b8235815260208301356108e781610ae2565b60208201526108f98660408501610710565b604082015260608301358281111561090f578485fd5b61091b8782860161072d565b6060830152506080830135608082015260a083013560a082015280935050505092915050565b60008151808452610959816020860160208601610ab2565b601f01601f19169290920160200192915050565b6000825161097f818460208701610ab2565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038581168252841660208201526080604082018190526000906109c990830185610941565b905082606083015295945050505050565b901515815260200190565b6020808252818101527f496d706c656d656e74206d6520696e206368696c6420636f6e74726163747321604082015260600190565b60006020825282516020830152602083015160018060a01b0380821660408501528060408601511660608501525050606083015160c06080840152610a6260e0840182610941565b9050608084015160a084015260a084015160c08401528091505092915050565b90815260200190565b60405181810167ffffffffffffffff81118282101715610aaa57600080fd5b604052919050565b60005b83811015610acd578181015183820152602001610ab5565b83811115610adc576000848401525b50505050565b6001600160a01b0381168114610af757600080fd5b5056fea264697066735822122054e8b3e2c64143a4db0aafacf56127ea8c9b1c015da2c6c7d40be9c67cd1813c64736f6c63430007000033",
"bytecode": "0x608060405234801561001057600080fd5b50604051610b80380380610b8083398101604081905261002f91610037565b60085561004f565b600060208284031215610048578081fd5b5051919050565b610b228061005e6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80636e296e45116100715780636e296e451461011a57806382e3702d1461012f578063a72d7ddd14610142578063b1b1b20914610155578063cc51ef8e14610168578063ecc7042814610170576100a9565b806321d800ec146100ae5780633dbb202b146100d75780633eae0ae0146100ec5780635eb20446146100ff578063683ebbae14610112575b600080fd5b6100c16100bc366004610883565b610185565b6040516100ce91906109e4565b60405180910390f35b6100ea6100e536600461080e565b61019a565b005b6100ea6100fa3660046107b8565b610240565b6100ea61010d36600461089b565b61028f565b6100c1610399565b6101226103a3565b6040516100ce9190610993565b6100c161013d366004610883565b6103b2565b6100ea610150366004610796565b6103c7565b6100c1610163366004610883565b6103e9565b6100ea6103fe565b6101786105c1565b6040516100ce9190610a8c565b60006020819052908152604090205460ff1681565b6006546040805160c0810182524281526001600160a01b038681166020830152338284015260608201869052600354608083015263ffffffff851660a08301529151632f59022360e11b815291909216918291635eb20446916101ff91600401610a24565b600060405180830381600087803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b5050600380546001019055505050505050565b60606102508433856003546105c7565b905061025c8183610614565b6003805460019081019091558151602092830120600090815260029092526040909120805460ff19169091179055505050565b60058054600181018255600091909152815160069091027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081019182556020808401517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db1830180546001600160a01b039283166001600160a01b03199182161790915560408601517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db2850180549190931691161790556060840151805185949361037f937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db3909101920190610635565b506080820151816004015560a08201518160050155505050565b6007546005541090565b6004546001600160a01b031681565b60026020526000908152604090205460ff1681565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b60016020526000908152604090205460ff1681565b610406610399565b61040f576105bf565b6104176106b3565b60056007548154811061042657fe5b60009182526020918290206040805160c081018252600693909302909101805483526001808201546001600160a01b03908116858701526002808401549091168585015260038301805485516101009482161594909402600019011691909104601f810187900487028301870190945283825293949193606086019391929091908301828280156104f85780601f106104cd576101008083540402835291602001916104f8565b820191906000526020600020905b8154815290600101906020018083116104db57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905042600854826000015101111561052d57506105bf565b604081810151600480546001600160a01b0319166001600160a01b03928316179055602083015160a084015160608501519351919092169261056e91610977565b60006040518083038160008787f1925050503d80600081146105ac576040519150601f19603f3d011682016040523d82523d6000602084013e6105b1565b606091505b505060078054600101905550505b565b60035481565b6060848484846040516024016105e094939291906109a7565b60408051601f198184030181529190526020810180516001600160e01b031663cbd4ece960e01b1790529050949350505050565b60405162461bcd60e51b815260040161062c906109ef565b60405180910390fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061067657805160ff19168380011785556106a3565b828001600101855582156106a3579182015b828111156106a3578251825591602001919060010190610688565b506106af9291506106fb565b5090565b6040518060c001604052806000815260200160006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081525090565b5b808211156106af57600081556001016106fc565b80356001600160a01b038116811461072757600080fd5b92915050565b600082601f83011261073d578081fd5b813567ffffffffffffffff811115610753578182fd5b610766601f8201601f1916602001610a95565b915080825283602082850101111561077d57600080fd5b8060208401602084013760009082016020015292915050565b6000602082840312156107a7578081fd5b6107b18383610710565b9392505050565b6000806000606084860312156107cc578182fd5b6107d68585610710565b9250602084013567ffffffffffffffff8111156107f1578283fd5b6107fd8682870161072d565b925050604084013590509250925092565b600080600060608486031215610822578283fd5b83356001600160a01b0381168114610838578384fd5b9250602084013567ffffffffffffffff811115610853578283fd5b61085f8682870161072d565b925050604084013563ffffffff81168114610878578182fd5b809150509250925092565b600060208284031215610894578081fd5b5035919050565b6000602082840312156108ac578081fd5b813567ffffffffffffffff808211156108c3578283fd5b9083019060c082860312156108d6578283fd5b6108e060c0610a95565b823581526108f18660208501610710565b60208201526109038660408501610710565b6040820152606083013582811115610919578485fd5b6109258782860161072d565b6060830152506080830135608082015260a083013560a082015280935050505092915050565b60008151808452610963816020860160208601610abc565b601f01601f19169290920160200192915050565b60008251610989818460208701610abc565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038581168252841660208201526080604082018190526000906109d39083018561094b565b905082606083015295945050505050565b901515815260200190565b6020808252818101527f496d706c656d656e74206d6520696e206368696c6420636f6e74726163747321604082015260600190565b60006020825282516020830152602083015160018060a01b0380821660408501528060408601511660608501525050606083015160c06080840152610a6c60e084018261094b565b9050608084015160a084015260a084015160c08401528091505092915050565b90815260200190565b60405181810167ffffffffffffffff81118282101715610ab457600080fd5b604052919050565b60005b83811015610ad7578181015183820152602001610abf565b83811115610ae6576000848401525b5050505056fea264697066735822122054e8b3e2c64143a4db0aafacf56127ea8c9b1c015da2c6c7d40be9c67cd1813c64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80636e296e45116100715780636e296e451461011a57806382e3702d1461012f578063a72d7ddd14610142578063b1b1b20914610155578063cc51ef8e14610168578063ecc7042814610170576100a9565b806321d800ec146100ae5780633dbb202b146100d75780633eae0ae0146100ec5780635eb20446146100ff578063683ebbae14610112575b600080fd5b6100c16100bc366004610883565b610185565b6040516100ce91906109e4565b60405180910390f35b6100ea6100e536600461080e565b61019a565b005b6100ea6100fa3660046107b8565b610240565b6100ea61010d36600461089b565b61028f565b6100c1610399565b6101226103a3565b6040516100ce9190610993565b6100c161013d366004610883565b6103b2565b6100ea610150366004610796565b6103c7565b6100c1610163366004610883565b6103e9565b6100ea6103fe565b6101786105c1565b6040516100ce9190610a8c565b60006020819052908152604090205460ff1681565b6006546040805160c0810182524281526001600160a01b038681166020830152338284015260608201869052600354608083015263ffffffff851660a08301529151632f59022360e11b815291909216918291635eb20446916101ff91600401610a24565b600060405180830381600087803b15801561021957600080fd5b505af115801561022d573d6000803e3d6000fd5b5050600380546001019055505050505050565b60606102508433856003546105c7565b905061025c8183610614565b6003805460019081019091558151602092830120600090815260029092526040909120805460ff19169091179055505050565b60058054600181018255600091909152815160069091027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081019182556020808401517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db1830180546001600160a01b039283166001600160a01b03199182161790915560408601517f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db2850180549190931691161790556060840151805185949361037f937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db3909101920190610635565b506080820151816004015560a08201518160050155505050565b6007546005541090565b6004546001600160a01b031681565b60026020526000908152604090205460ff1681565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b60016020526000908152604090205460ff1681565b610406610399565b61040f576105bf565b6104176106b3565b60056007548154811061042657fe5b60009182526020918290206040805160c081018252600693909302909101805483526001808201546001600160a01b03908116858701526002808401549091168585015260038301805485516101009482161594909402600019011691909104601f810187900487028301870190945283825293949193606086019391929091908301828280156104f85780601f106104cd576101008083540402835291602001916104f8565b820191906000526020600020905b8154815290600101906020018083116104db57829003601f168201915b5050505050815260200160048201548152602001600582015481525050905042600854826000015101111561052d57506105bf565b604081810151600480546001600160a01b0319166001600160a01b03928316179055602083015160a084015160608501519351919092169261056e91610977565b60006040518083038160008787f1925050503d80600081146105ac576040519150601f19603f3d011682016040523d82523d6000602084013e6105b1565b606091505b505060078054600101905550505b565b60035481565b6060848484846040516024016105e094939291906109a7565b60408051601f198184030181529190526020810180516001600160e01b031663cbd4ece960e01b1790529050949350505050565b60405162461bcd60e51b815260040161062c906109ef565b60405180910390fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061067657805160ff19168380011785556106a3565b828001600101855582156106a3579182015b828111156106a3578251825591602001919060010190610688565b506106af9291506106fb565b5090565b6040518060c001604052806000815260200160006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160008152602001600081525090565b5b808211156106af57600081556001016106fc565b80356001600160a01b038116811461072757600080fd5b92915050565b600082601f83011261073d578081fd5b813567ffffffffffffffff811115610753578182fd5b610766601f8201601f1916602001610a95565b915080825283602082850101111561077d57600080fd5b8060208401602084013760009082016020015292915050565b6000602082840312156107a7578081fd5b6107b18383610710565b9392505050565b6000806000606084860312156107cc578182fd5b6107d68585610710565b9250602084013567ffffffffffffffff8111156107f1578283fd5b6107fd8682870161072d565b925050604084013590509250925092565b600080600060608486031215610822578283fd5b83356001600160a01b0381168114610838578384fd5b9250602084013567ffffffffffffffff811115610853578283fd5b61085f8682870161072d565b925050604084013563ffffffff81168114610878578182fd5b809150509250925092565b600060208284031215610894578081fd5b5035919050565b6000602082840312156108ac578081fd5b813567ffffffffffffffff808211156108c3578283fd5b9083019060c082860312156108d6578283fd5b6108e060c0610a95565b823581526108f18660208501610710565b60208201526109038660408501610710565b6040820152606083013582811115610919578485fd5b6109258782860161072d565b6060830152506080830135608082015260a083013560a082015280935050505092915050565b60008151808452610963816020860160208601610abc565b601f01601f19169290920160200192915050565b60008251610989818460208701610abc565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038581168252841660208201526080604082018190526000906109d39083018561094b565b905082606083015295945050505050565b901515815260200190565b6020808252818101527f496d706c656d656e74206d6520696e206368696c6420636f6e74726163747321604082015260600190565b60006020825282516020830152602083015160018060a01b0380821660408501528060408601511660608501525050606083015160c06080840152610a6c60e084018261094b565b9050608084015160a084015260a084015160c08401528091505092915050565b90815260200190565b60405181810167ffffffffffffffff81118282101715610ab457600080fd5b604052919050565b60005b83811015610ad7578181015183820152602001610abf565b83811115610ae6576000848401525b5050505056fea264697066735822122054e8b3e2c64143a4db0aafacf56127ea8c9b1c015da2c6c7d40be9c67cd1813c64736f6c63430007000033",
"linkReferences": {},

@@ -271,3 +271,3 @@ "deployedLinkReferences": {},

{
"astId": 22490,
"astId": 22497,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -277,6 +277,6 @@ "label": "fullReceivedMessages",

"slot": "5",
"type": "t_array(t_struct(ReceivedMessage)22487_storage)dyn_storage"
"type": "t_array(t_struct(ReceivedMessage)22494_storage)dyn_storage"
},
{
"astId": 22492,
"astId": 22499,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -289,3 +289,3 @@ "label": "targetMessengerAddress",

{
"astId": 22494,
"astId": 22501,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -298,3 +298,3 @@ "label": "lastRelayedMessage",

{
"astId": 22496,
"astId": 22503,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -313,4 +313,4 @@ "label": "delay",

},
"t_array(t_struct(ReceivedMessage)22487_storage)dyn_storage": {
"base": "t_struct(ReceivedMessage)22487_storage",
"t_array(t_struct(ReceivedMessage)22494_storage)dyn_storage": {
"base": "t_struct(ReceivedMessage)22494_storage",
"encoding": "dynamic_array",

@@ -342,3 +342,3 @@ "label": "struct mockOVM_CrossDomainMessenger.ReceivedMessage[]",

},
"t_struct(ReceivedMessage)22487_storage": {
"t_struct(ReceivedMessage)22494_storage": {
"encoding": "inplace",

@@ -348,3 +348,3 @@ "label": "struct mockOVM_CrossDomainMessenger.ReceivedMessage",

{
"astId": 22476,
"astId": 22483,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -357,3 +357,3 @@ "label": "timestamp",

{
"astId": 22478,
"astId": 22485,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -366,3 +366,3 @@ "label": "target",

{
"astId": 22480,
"astId": 22487,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -375,3 +375,3 @@ "label": "sender",

{
"astId": 22482,
"astId": 22489,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -384,3 +384,3 @@ "label": "message",

{
"astId": 22484,
"astId": 22491,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -393,3 +393,3 @@ "label": "messageNonce",

{
"astId": 22486,
"astId": 22493,
"contract": "contracts/optimistic-ethereum/mockOVM/bridge/mockOVM_CrossDomainMessenger.sol:mockOVM_CrossDomainMessenger",

@@ -396,0 +396,0 @@ "label": "gasLimit",

@@ -320,3 +320,3 @@ {

{
"astId": 17088,
"astId": 17095,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -326,6 +326,6 @@ "label": "libAddressManager",

"slot": "0",
"type": "t_contract(Lib_AddressManager)17081"
"type": "t_contract(Lib_AddressManager)17088"
},
{
"astId": 14123,
"astId": 14124,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -338,3 +338,3 @@ "label": "requiredCollateral",

{
"astId": 14136,
"astId": 14137,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -347,3 +347,3 @@ "label": "ovmFraudVerifier",

{
"astId": 14141,
"astId": 14142,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -353,6 +353,6 @@ "label": "bonds",

"slot": "3",
"type": "t_mapping(t_address,t_struct(Bond)16427_storage)"
"type": "t_mapping(t_address,t_struct(Bond)16434_storage)"
},
{
"astId": 14146,
"astId": 14147,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -362,3 +362,3 @@ "label": "witnessProviders",

"slot": "4",
"type": "t_mapping(t_bytes32,t_struct(Rewards)16436_storage)"
"type": "t_mapping(t_bytes32,t_struct(Rewards)16443_storage)"
}

@@ -382,3 +382,3 @@ ],

},
"t_contract(Lib_AddressManager)17081": {
"t_contract(Lib_AddressManager)17088": {
"encoding": "inplace",

@@ -388,3 +388,3 @@ "label": "contract Lib_AddressManager",

},
"t_enum(State)16422": {
"t_enum(State)16429": {
"encoding": "inplace",

@@ -394,3 +394,3 @@ "label": "enum iOVM_BondManager.State",

},
"t_mapping(t_address,t_struct(Bond)16427_storage)": {
"t_mapping(t_address,t_struct(Bond)16434_storage)": {
"encoding": "mapping",

@@ -400,3 +400,3 @@ "key": "t_address",

"numberOfBytes": "32",
"value": "t_struct(Bond)16427_storage"
"value": "t_struct(Bond)16434_storage"
},

@@ -410,3 +410,3 @@ "t_mapping(t_address,t_uint256)": {

},
"t_mapping(t_bytes32,t_struct(Rewards)16436_storage)": {
"t_mapping(t_bytes32,t_struct(Rewards)16443_storage)": {
"encoding": "mapping",

@@ -416,5 +416,5 @@ "key": "t_bytes32",

"numberOfBytes": "32",
"value": "t_struct(Rewards)16436_storage"
"value": "t_struct(Rewards)16443_storage"
},
"t_struct(Bond)16427_storage": {
"t_struct(Bond)16434_storage": {
"encoding": "inplace",

@@ -424,3 +424,3 @@ "label": "struct iOVM_BondManager.Bond",

{
"astId": 16424,
"astId": 16431,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -430,6 +430,6 @@ "label": "state",

"slot": "0",
"type": "t_enum(State)16422"
"type": "t_enum(State)16429"
},
{
"astId": 16426,
"astId": 16433,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -444,3 +444,3 @@ "label": "withdrawalTimestamp",

},
"t_struct(Rewards)16436_storage": {
"t_struct(Rewards)16443_storage": {
"encoding": "inplace",

@@ -450,3 +450,3 @@ "label": "struct iOVM_BondManager.Rewards",

{
"astId": 16429,
"astId": 16436,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -459,3 +459,3 @@ "label": "canClaim",

{
"astId": 16431,
"astId": 16438,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -468,3 +468,3 @@ "label": "total",

{
"astId": 16435,
"astId": 16442,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_BondManager.sol:OVM_BondManager",

@@ -471,0 +471,0 @@ "label": "gasSpent",

@@ -196,2 +196,15 @@ {

{
"inputs": [],
"name": "getNextQueueIndex",
"outputs": [
{
"internalType": "uint40",
"name": "",
"type": "uint40"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [

@@ -415,4 +428,4 @@ {

],
"bytecode": "0x60806040523480156200001157600080fd5b5060405162002979380380620029798339810160408190526200003491620002ed565b600080546001600160a01b0319166001600160a01b03841617905560408051808201909152600d81526c27ab26afa9b2b8bab2b731b2b960991b60208201526200007e90620001fb565b600360006101000a8154816001600160a01b0302191690836001600160a01b03160217905550620000c86040518060600160405280602281526020016200295760229139620001fb565b600480546001600160a01b0319166001600160a01b0392909216919091179055600181905560408051808201909152601881527f4f564d5f5374617465436f6d6d69746d656e74436861696e000000000000000060208201526200016e906010907f9413776a3b6f36bbb044c745c87ab6e7ffed37fc3ab60731591a70782169714d906200015690620001fb565b60056200028860201b6200084017909392919060201c565b620001f360107f30a907da349b6916f6bc60eb25a37176d5705fba414069bdb6f625ebf8bb6c55620001db6040518060400160405280601881526020017f4f564d5f5374617465436f6d6d69746d656e74436861696e0000000000000000815250620001fb60201b60201c565b600d6200028860201b6200084017909392919060201c565b50506200037d565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906200022e90859060040162000327565b60206040518083038186803b1580156200024757600080fd5b505afa1580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002829190620002bd565b92915050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b600060208284031215620002cf578081fd5b81516001600160a01b0381168114620002e6578182fd5b9392505050565b6000806040838503121562000300578081fd5b82516001600160a01b038116811462000317578182fd5b6020939093015192949293505050565b6000602080835283518082850152825b81811015620003555785810183015185820160400152820162000337565b81811115620003675783604083870101525b50601f01601f1916929092016040019392505050565b6125ca806200038d6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80637aa63a86116100715780637aa63a8614610141578063876ed5cb14610149578063c2cf696f14610151578063d0f8934414610159578063e561dddc14610161578063facdc5da14610169576100a9565b80632a7f18be146100ae578063461a4478146100d75780634de569ce146100f75780636fee07e01461011757806378f4b2f21461012c575b600080fd5b6100c16100bc366004611c45565b61017c565b6040516100ce91906124c3565b60405180910390f35b6100ea6100e5366004611aea565b6101e7565b6040516100ce9190611cd7565b61010a610105366004611b1c565b61026e565b6040516100ce9190611d77565b61012a610125366004611a78565b6102a8565b005b6101346103e6565b6040516100ce9190611cc0565b6101346103ec565b610134610405565b61013461040b565b61012a610410565b610134610715565b61012a610177366004611c45565b61072d565b6101846117af565b60028202600061019c600d64ffffffffff8416610875565b905060006101b5600d64ffffffffff6001860116610875565b6040805160608101825293845264ffffffffff808316602086015260289290921c90911690830152509150505b919050565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190610218908590600401611df4565b60206040518083038186803b15801561023057600080fd5b505afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190611a5c565b92915050565b825160009015156001141561029057610289858585856109d3565b90506102a0565b6102898585602001518585610b7b565b949350505050565b612710815111156102d45760405162461bcd60e51b81526004016102cb906121d8565b60405180910390fd5b614e208210156102f65760405162461bcd60e51b81526004016102cb9061203b565b600a820460005a905081811161031e5760405162461bcd60e51b81526004016102cb906122ac565b60005b825a8303101561033357600101610321565b60003387878760405160200161034c9493929190611ceb565b60408051601f19818403018152919052805160209091012090504360281b4217610378600d8383610c5a565b60006002610386600d610c8e565b64ffffffffff168161039457fe5b0490507f4b388aecf9fa6cc92253704e5975a6129a4f735bdbd99567df4ed0094ee4ceb5338a8a8a60018603426040516103d396959493929190611d28565b60405180910390a1505050505050505050565b614e2081565b6000806103f7610ca9565b5064ffffffffff1691505090565b61271081565b600a81565b60043560d81c60093560e890811c90600c35901c61042c6103ec565b8364ffffffffff16146104515760405162461bcd60e51b81526004016102cb906120f7565b6003546001600160a01b0316331461047b5760405162461bcd60e51b81526004016102cb90612154565b60008162ffffff16116104a05760405162461bcd60e51b81526004016102cb90611ed0565b60008262ffffff16116104c55760405162461bcd60e51b81526004016102cb906123d7565b600f601062ffffff831602013664ffffffffff82168110156104f95760405162461bcd60e51b81526004016102cb90612481565b60608462ffffff166001600160401b038111801561051657600080fd5b50604051908082528060200260200182016040528015610540578160200160208202803683370190505b5090506000806000610550610cd0565b905060005b8762ffffff168163ffffffff161015610646576105706117cf565b61057f8263ffffffff16610ce2565b905061058b8184610d32565b60005b815163ffffffff821610156105e957883560e81c6105b48364ffffffffff8c1683610df8565b888863ffffffff16815181106105c657fe5b60209081029190910101529890980160030197600195860195948501940161058e565b5060005b81602001518163ffffffff16101561063c5761060f8464ffffffffff16610e82565b878763ffffffff168151811061062157fe5b602090810291909101015260019586019593840193016105ed565b5050600101610555565b508564ffffffffff16851461066d5760405162461bcd60e51b81526004016102cb90611f18565b8762ffffff168363ffffffff16146106975760405162461bcd60e51b81526004016102cb90611f66565b63ffffffff62ffffff8916839003166106c56106b286610f26565b8a62ffffff168364ffffffffff1661113b565b7f602f1aeac0ca2e7a13e281a9ef0ad7838542712ce16780fa2ecffd351f05f899818303826106f26103ec565b60405161070193929190612507565b60405180910390a150505050505050505050565b60006107216005610c8e565b64ffffffffff16905090565b6000811161074d5760405162461bcd60e51b81526004016102cb90612235565b6000610757610cd0565b90506060826001600160401b038111801561077157600080fd5b5060405190808252806020026020018201604052801561079b578160200160208202803683370190505b50905060005b838110156107dc576107b98364ffffffffff16610e82565b8282815181106107c557fe5b6020908102919091010152600192830192016107a1565b506107f06107e982610f26565b848561113b565b7f64d7f508348c70dea42d5302a393987e4abc20e45954ab3f9d320207751956f0838364ffffffffff1603846108246103ec565b604051610833939291906124f1565b60405180910390a1505050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b600061087f6117f7565b610888846111da565b805190915064ffffffffff1683106108b25760405162461bcd60e51b81526004016102cb9061200d565b60006108d482604001516001600160401b03168661123c90919063ffffffff16565b905060006108fb83604001516001016001600160401b03168761123c90919063ffffffff16565b9050826080015164ffffffffff16851061095c576080830151825464ffffffffff90911686039081106109405760405162461bcd60e51b81526004016102cb9061200d565b6000908152600190920160205250604090205491506102689050565b6080830151606084015164ffffffffff91821687810392909116106109935760405162461bcd60e51b81526004016102cb9061200d565b81548111156109b45760405162461bcd60e51b81526004016102cb9061200d565b8154036000908152600190910160205260409020549250610268915050565b600080610a0b6040518060400160405280601481526020017327ab26afa2bc32b1baba34b7b726b0b730b3b2b960611b8152506101e7565b90506000816001600160a01b0316631c4712a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4857600080fd5b505afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190611c5d565b90506000610a8d87611258565b9050610a9a8187876112f1565b610ab65760405162461bcd60e51b81526004016102cb90611e4b565b86606001518860200151148015610ad1575060408701518851145b8015610aef575060045460808901516001600160a01b039081169116145b8015610afe5750818860a00151145b8015610b15575060608801516001600160a01b0316155b8015610b305750600088604001516001811115610b2e57fe5b145b8015610b5157508660800151805190602001208860c0015180519060200120145b610b6d5760405162461bcd60e51b81526004016102cb90611e99565b506001979650505050505050565b600080610b8b8360000151610e82565b9050610b988185856112f1565b610bb45760405162461bcd60e51b81526004016102cb906122f7565b6000866060015187608001518860a001518960c00151604051602001610bdd9493929190611ceb565b604051602081830303815290604052805190602001209050610bfd6117af565b610c068761017c565b805190915082148015610c2457508751602082015164ffffffffff16145b8015610c3e57508760200151816040015164ffffffffff16145b610b6d5760405162461bcd60e51b81526004016102cb906121a1565b610c626117f7565b610c6b846111da565b9050610c888383836020015187611375909392919063ffffffff16565b50505050565b6000610c986117f7565b610ca1836111da565b519392505050565b6000806000610cb8600561138b565b64ffffffffff602882901c16935060501c9150509091565b600080610cdb610ca9565b9250505090565b610cea6117cf565b5060408051608081018252601092909202600f81013560e890811c84526012820135901c6020840152601581013560d890811c92840192909252601a0135901c606082015290565b610d3c600d610c8e565b64ffffffffff16610d4c57610df4565b610d546117af565b610d648264ffffffffff1661017c565b9050600154816020015164ffffffffff16014210610d945760405162461bcd60e51b81526004016102cb90612418565b806020015164ffffffffff1683604001511115610dc35760405162461bcd60e51b81526004016102cb90612341565b806040015164ffffffffff1683606001511115610df25760405162461bcd60e51b81526004016102cb9061238b565b505b5050565b60006060826041016001600160401b0381118015610e1557600080fd5b506040519080825280601f01601f191660200182016040528015610e40576020820181803683370190505b50604086015160608701519192509060006020840160018153836001820152826021820152866003890160418301376041870190209450505050509392505050565b6000610e8c6117af565b610e958361017c565b6003549091506001600160a01b0316331480610ec0575042600154826020015164ffffffffff160111155b610edc5760405162461bcd60e51b81526004016102cb90612084565b610f1f6040518060a001604052806000151581526020018581526020016000815260200160008152602001604051806020016040528060008152508152506113a9565b9392505050565b600080825111610f485760405162461bcd60e51b81526004016102cb90611e07565b815160011415610f6e5781600081518110610f5f57fe5b602002602001015190506101e2565b6060610f7a83516113f1565b8351909150839060029006600114156110155783516001016001600160401b0381118015610fa757600080fd5b50604051908082528060200260200182016040528015610fd1578160200160208202803683370190505b50905060005b845181101561101357848181518110610fec57fe5b602002602001015182828151811061100057fe5b6020908102919091010152600101610fd7565b505b835160009060028106600114156110555783828151811061103257fe5b602002602001015183828151811061104657fe5b60209081029190910101526001015b600181111561111b5760018201915060005b600282048110156110ca576110ab84826002028151811061108457fe5b602002602001015185836002026001018151811061109e57fe5b60200260200101516114e6565b8482815181106110b757fe5b6020908102919091010152600101611067565b506002900460018082161480156110e2575080600114155b15611116578382815181106110f357fe5b602002602001015183828151811061110757fe5b60209081029190910101526001015b611055565b8260008151811061112857fe5b6020026020010151945050505050919050565b600080611146610ca9565b91509150611152611825565b6040518060a001604052806111676005610c8e565b64ffffffffff1681526020018781526020018681526020018464ffffffffff16815260200160405180602001604052806000815250815250905060006111ac82611519565b905060006111c283604001518601878601611542565b90506111d060058383611550565b5050505050505050565b6111e26117f7565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b600060028206156112505782600601610f1f565b505060040190565b60808101518051600091906060604182016001600160401b038111801561127e57600080fd5b506040519080825280601f01601f1916602001820160405280156112a9576020820181803683370190505b5060408601516060870151919250906000602084016001815383600182015282602182015285604182018760208a0160045afa50604190950190942095505050505050919050565b6000611311836000015163ffffffff16600561087590919063ffffffff16565b61131a84611519565b146113375760405162461bcd60e51b81526004016102cb9061227d565b61134f836020015185846000015185602001516116de565b61136b5760405162461bcd60e51b81526004016102cb90611fd6565b5060019392505050565b611380848483611550565b610c88848383611550565b60006113956117f7565b61139e836111da565b602001519392505050565b80516020808301516040808501516060860151608087015192516000966113d4969095949101611d82565b604051602081830303815290604052805190602001209050919050565b606080826001600160401b038111801561140a57600080fd5b50604051908082528060200260200182016040528015611434578160200160208202803683370190505b50905060006040516020016114499190611cc0565b604051602081830303815290604052805190602001208160008151811061146c57fe5b602090810291909101015260015b81518110156114df5781600182038151811061149257fe5b60200260200101516040516020016114aa9190611cc0565b604051602081830303815290604052805190602001208282815181106114cc57fe5b602090810291909101015260010161147a565b5092915050565b600082826040516020016114fb929190611cc9565b60405160208183030381529060405280519060200120905092915050565b600081602001518260400151836060015184608001516040516020016113d49493929190611dba565b602890811b91909117901b90565b6115586117f7565b611561846111da565b9050600061158582604001516001600160401b03168661123c90919063ffffffff16565b805490915061159357601081555b8054608083015183510364ffffffffff161061168b5760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff926115e192600401611ddf565b602060405180830381600087803b1580156115fb57600080fd5b505af192505050801561162b575060408051601f3d908101601f1916820190925261162891810190611ace565b60015b6116375750600061163a565b90505b8015611681576040830180516001016001600160401b03169081905260808401805164ffffffffff9081166060870152855116905261167a90879061123c565b9150611689565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff198516918401919091526116d58684611749565b50505050505050565b600083815b835181101561173d5760008482815181106116fa57fe5b60209081029190910101519050600186831c81161480156117265761171f84836114e6565b9350611733565b61173082856114e6565b93505b50506001016116e3565b50909414949350505050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b17959094909390929091871461178f5760028a018790555b858a60030154146117a25760038a018690555b5050505050505092915050565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b80356102688161256e565b600082601f830112611872578081fd5b81356001600160401b03811115611887578182fd5b61189a601f8201601f1916602001612529565b91508082528360208285010111156118b157600080fd5b8060208401602084013760009082016020015292915050565b80356002811061026857600080fd5b600060a082840312156118ea578081fd5b6118f460a0612529565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561193157600080fd5b61193d84828501611862565b60808301525092915050565b60006040828403121561195a578081fd5b6119646040612529565b9050813581526020808301356001600160401b0381111561198457600080fd5b8301601f8101851361199557600080fd5b80356119a86119a38261254f565b612529565b81815283810190838501858402850186018910156119c557600080fd5b600094505b838510156119e85780358352600194909401939185019185016119ca565b508085870152505050505092915050565b600060a08284031215611a0a578081fd5b611a1460a0612529565b90508135611a2181612586565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561193157600080fd5b600060208284031215611a6d578081fd5b8151610f1f8161256e565b600080600060608486031215611a8c578182fd5b8335611a978161256e565b92506020840135915060408401356001600160401b03811115611ab8578182fd5b611ac486828701611862565b9150509250925092565b600060208284031215611adf578081fd5b8151610f1f81612586565b600060208284031215611afb578081fd5b81356001600160401b03811115611b10578182fd5b6102a084828501611862565b60008060008060808587031215611b31578081fd5b84356001600160401b0380821115611b47578283fd5b9086019060e08289031215611b5a578283fd5b611b6460e0612529565b8235815260208301356020820152611b7f89604085016118ca565b6040820152611b918960608501611857565b6060820152611ba38960808501611857565b608082015260a083013560a082015260c083013582811115611bc3578485fd5b611bcf8a828601611862565b60c08301525095506020870135915080821115611bea578283fd5b611bf6888389016119f9565b94506040870135915080821115611c0b578283fd5b611c17888389016118d9565b93506060870135915080821115611c2c578283fd5b50611c3987828801611949565b91505092959194509250565b600060208284031215611c56578081fd5b5035919050565b600060208284031215611c6e578081fd5b5051919050565b60008151808452815b81811015611c9a57602081850181015186830182015201611c7e565b81811115611cab5782602083870101525b50601f01601f19169290920160200192915050565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611d1e90830184611c75565b9695505050505050565b6001600160a01b038781168252861660208201526040810185905260c060608201819052600090611d5b90830186611c75565b64ffffffffff9490941660808301525060a00152949350505050565b901515815260200190565b6000861515825285602083015284604083015283606083015260a06080830152611daf60a0830184611c75565b979650505050505050565b600085825284602083015283604083015260806060830152611d1e6080830184611c75565b91825264ffffffffff16602082015260400190565b600060208252610f1f6020830184611c75565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b6020808252602e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e20696e60408201526d31b63ab9b4b7b710383937b7b31760911b606082015260800190565b6020808252601e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e2e0000604082015260600190565b60208082526028908201527f4d7573742070726f76696465206174206c65617374206f6e652062617463682060408201526731b7b73a32bc3a1760c11b606082015260800190565b6020808252602e908201527f4e6f7420616c6c2073657175656e636572207472616e73616374696f6e73207760408201526d32b93290383937b1b2b9b9b2b21760911b606082015260800190565b6020808252604a908201527f41637475616c207472616e73616374696f6e20696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420746f74616c20656c656d656e7473206060820152693a379030b83832b7321760b11b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526029908201527f5472616e73616374696f6e20676173206c696d697420746f6f206c6f7720746f6040820152681032b738bab2bab29760b91b606082015260800190565b6020808252604d908201527f5175657565207472616e73616374696f6e732063616e6e6f742062652073756260408201527f6d697474656420647572696e67207468652073657175656e63657220696e636c60608201526c3ab9b4b7b7103832b934b7b21760991b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b6020808252602d908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460408201526c34329029b2b8bab2b731b2b91760991b606082015260800190565b6020808252601a908201527f496e76616c6964205175657565207472616e73616374696f6e2e000000000000604082015260600190565b60208082526039908201527f5472616e73616374696f6e2065786365656473206d6178696d756d20726f6c6c60408201527f7570207472616e73616374696f6e20646174612073697a652e00000000000000606082015260800190565b60208082526028908201527f4d75737420617070656e64206d6f7265207468616e207a65726f207472616e7360408201526730b1ba34b7b7399760c11b606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b6020808252602b908201527f496e73756666696369656e742067617320666f72204c322072617465206c696d60408201526a34ba34b73390313ab9371760a91b606082015260800190565b6020808252602a908201527f496e76616c6964205175657565207472616e73616374696f6e20696e636c757360408201526934b7b710383937b7b31760b11b606082015260800190565b6020808252602a908201527f53657175656e636572207472616e73616374696f6e732074696d657374616d70604082015269103a37b7903434b3b41760b11b606082015260800190565b6020808252602c908201527f53657175656e636572207472616e73616374696f6e7320626c6f636b4e756d6260408201526b32b9103a37b7903434b3b41760a11b606082015260800190565b60208082526021908201527f4d75737420617070656e64206174206c65617374206f6e6520656c656d656e746040820152601760f91b606082015260800190565b60208082526043908201527f4f6c6465722071756575652062617463686573206d7573742062652070726f6360408201527f6573736564206265666f72652061206e65772073657175656e6365722062617460608201526231b41760e91b608082015260a00190565b60208082526022908201527f4e6f7420656e6f756768204261746368436f6e74657874732070726f76696465604082015261321760f11b606082015260800190565b8151815260208083015164ffffffffff90811691830191909152604092830151169181019190915260600190565b9283526020830191909152604082015260600190565b64ffffffffff9384168152919092166020820152604081019190915260600190565b6040518181016001600160401b038111828210171561254757600080fd5b604052919050565b60006001600160401b03821115612564578081fd5b5060209081020190565b6001600160a01b038116811461258357600080fd5b50565b801515811461258357600080fdfea26469706673582212209d911533b6463e8cfb00917cf233f4fb628586aa18f27311cdfab1708e5ad74464736f6c634300070000334f564d5f4465636f6d7072657373696f6e507265636f6d70696c6541646472657373",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80637aa63a86116100715780637aa63a8614610141578063876ed5cb14610149578063c2cf696f14610151578063d0f8934414610159578063e561dddc14610161578063facdc5da14610169576100a9565b80632a7f18be146100ae578063461a4478146100d75780634de569ce146100f75780636fee07e01461011757806378f4b2f21461012c575b600080fd5b6100c16100bc366004611c45565b61017c565b6040516100ce91906124c3565b60405180910390f35b6100ea6100e5366004611aea565b6101e7565b6040516100ce9190611cd7565b61010a610105366004611b1c565b61026e565b6040516100ce9190611d77565b61012a610125366004611a78565b6102a8565b005b6101346103e6565b6040516100ce9190611cc0565b6101346103ec565b610134610405565b61013461040b565b61012a610410565b610134610715565b61012a610177366004611c45565b61072d565b6101846117af565b60028202600061019c600d64ffffffffff8416610875565b905060006101b5600d64ffffffffff6001860116610875565b6040805160608101825293845264ffffffffff808316602086015260289290921c90911690830152509150505b919050565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190610218908590600401611df4565b60206040518083038186803b15801561023057600080fd5b505afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190611a5c565b92915050565b825160009015156001141561029057610289858585856109d3565b90506102a0565b6102898585602001518585610b7b565b949350505050565b612710815111156102d45760405162461bcd60e51b81526004016102cb906121d8565b60405180910390fd5b614e208210156102f65760405162461bcd60e51b81526004016102cb9061203b565b600a820460005a905081811161031e5760405162461bcd60e51b81526004016102cb906122ac565b60005b825a8303101561033357600101610321565b60003387878760405160200161034c9493929190611ceb565b60408051601f19818403018152919052805160209091012090504360281b4217610378600d8383610c5a565b60006002610386600d610c8e565b64ffffffffff168161039457fe5b0490507f4b388aecf9fa6cc92253704e5975a6129a4f735bdbd99567df4ed0094ee4ceb5338a8a8a60018603426040516103d396959493929190611d28565b60405180910390a1505050505050505050565b614e2081565b6000806103f7610ca9565b5064ffffffffff1691505090565b61271081565b600a81565b60043560d81c60093560e890811c90600c35901c61042c6103ec565b8364ffffffffff16146104515760405162461bcd60e51b81526004016102cb906120f7565b6003546001600160a01b0316331461047b5760405162461bcd60e51b81526004016102cb90612154565b60008162ffffff16116104a05760405162461bcd60e51b81526004016102cb90611ed0565b60008262ffffff16116104c55760405162461bcd60e51b81526004016102cb906123d7565b600f601062ffffff831602013664ffffffffff82168110156104f95760405162461bcd60e51b81526004016102cb90612481565b60608462ffffff166001600160401b038111801561051657600080fd5b50604051908082528060200260200182016040528015610540578160200160208202803683370190505b5090506000806000610550610cd0565b905060005b8762ffffff168163ffffffff161015610646576105706117cf565b61057f8263ffffffff16610ce2565b905061058b8184610d32565b60005b815163ffffffff821610156105e957883560e81c6105b48364ffffffffff8c1683610df8565b888863ffffffff16815181106105c657fe5b60209081029190910101529890980160030197600195860195948501940161058e565b5060005b81602001518163ffffffff16101561063c5761060f8464ffffffffff16610e82565b878763ffffffff168151811061062157fe5b602090810291909101015260019586019593840193016105ed565b5050600101610555565b508564ffffffffff16851461066d5760405162461bcd60e51b81526004016102cb90611f18565b8762ffffff168363ffffffff16146106975760405162461bcd60e51b81526004016102cb90611f66565b63ffffffff62ffffff8916839003166106c56106b286610f26565b8a62ffffff168364ffffffffff1661113b565b7f602f1aeac0ca2e7a13e281a9ef0ad7838542712ce16780fa2ecffd351f05f899818303826106f26103ec565b60405161070193929190612507565b60405180910390a150505050505050505050565b60006107216005610c8e565b64ffffffffff16905090565b6000811161074d5760405162461bcd60e51b81526004016102cb90612235565b6000610757610cd0565b90506060826001600160401b038111801561077157600080fd5b5060405190808252806020026020018201604052801561079b578160200160208202803683370190505b50905060005b838110156107dc576107b98364ffffffffff16610e82565b8282815181106107c557fe5b6020908102919091010152600192830192016107a1565b506107f06107e982610f26565b848561113b565b7f64d7f508348c70dea42d5302a393987e4abc20e45954ab3f9d320207751956f0838364ffffffffff1603846108246103ec565b604051610833939291906124f1565b60405180910390a1505050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b600061087f6117f7565b610888846111da565b805190915064ffffffffff1683106108b25760405162461bcd60e51b81526004016102cb9061200d565b60006108d482604001516001600160401b03168661123c90919063ffffffff16565b905060006108fb83604001516001016001600160401b03168761123c90919063ffffffff16565b9050826080015164ffffffffff16851061095c576080830151825464ffffffffff90911686039081106109405760405162461bcd60e51b81526004016102cb9061200d565b6000908152600190920160205250604090205491506102689050565b6080830151606084015164ffffffffff91821687810392909116106109935760405162461bcd60e51b81526004016102cb9061200d565b81548111156109b45760405162461bcd60e51b81526004016102cb9061200d565b8154036000908152600190910160205260409020549250610268915050565b600080610a0b6040518060400160405280601481526020017327ab26afa2bc32b1baba34b7b726b0b730b3b2b960611b8152506101e7565b90506000816001600160a01b0316631c4712a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610a4857600080fd5b505afa158015610a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a809190611c5d565b90506000610a8d87611258565b9050610a9a8187876112f1565b610ab65760405162461bcd60e51b81526004016102cb90611e4b565b86606001518860200151148015610ad1575060408701518851145b8015610aef575060045460808901516001600160a01b039081169116145b8015610afe5750818860a00151145b8015610b15575060608801516001600160a01b0316155b8015610b305750600088604001516001811115610b2e57fe5b145b8015610b5157508660800151805190602001208860c0015180519060200120145b610b6d5760405162461bcd60e51b81526004016102cb90611e99565b506001979650505050505050565b600080610b8b8360000151610e82565b9050610b988185856112f1565b610bb45760405162461bcd60e51b81526004016102cb906122f7565b6000866060015187608001518860a001518960c00151604051602001610bdd9493929190611ceb565b604051602081830303815290604052805190602001209050610bfd6117af565b610c068761017c565b805190915082148015610c2457508751602082015164ffffffffff16145b8015610c3e57508760200151816040015164ffffffffff16145b610b6d5760405162461bcd60e51b81526004016102cb906121a1565b610c626117f7565b610c6b846111da565b9050610c888383836020015187611375909392919063ffffffff16565b50505050565b6000610c986117f7565b610ca1836111da565b519392505050565b6000806000610cb8600561138b565b64ffffffffff602882901c16935060501c9150509091565b600080610cdb610ca9565b9250505090565b610cea6117cf565b5060408051608081018252601092909202600f81013560e890811c84526012820135901c6020840152601581013560d890811c92840192909252601a0135901c606082015290565b610d3c600d610c8e565b64ffffffffff16610d4c57610df4565b610d546117af565b610d648264ffffffffff1661017c565b9050600154816020015164ffffffffff16014210610d945760405162461bcd60e51b81526004016102cb90612418565b806020015164ffffffffff1683604001511115610dc35760405162461bcd60e51b81526004016102cb90612341565b806040015164ffffffffff1683606001511115610df25760405162461bcd60e51b81526004016102cb9061238b565b505b5050565b60006060826041016001600160401b0381118015610e1557600080fd5b506040519080825280601f01601f191660200182016040528015610e40576020820181803683370190505b50604086015160608701519192509060006020840160018153836001820152826021820152866003890160418301376041870190209450505050509392505050565b6000610e8c6117af565b610e958361017c565b6003549091506001600160a01b0316331480610ec0575042600154826020015164ffffffffff160111155b610edc5760405162461bcd60e51b81526004016102cb90612084565b610f1f6040518060a001604052806000151581526020018581526020016000815260200160008152602001604051806020016040528060008152508152506113a9565b9392505050565b600080825111610f485760405162461bcd60e51b81526004016102cb90611e07565b815160011415610f6e5781600081518110610f5f57fe5b602002602001015190506101e2565b6060610f7a83516113f1565b8351909150839060029006600114156110155783516001016001600160401b0381118015610fa757600080fd5b50604051908082528060200260200182016040528015610fd1578160200160208202803683370190505b50905060005b845181101561101357848181518110610fec57fe5b602002602001015182828151811061100057fe5b6020908102919091010152600101610fd7565b505b835160009060028106600114156110555783828151811061103257fe5b602002602001015183828151811061104657fe5b60209081029190910101526001015b600181111561111b5760018201915060005b600282048110156110ca576110ab84826002028151811061108457fe5b602002602001015185836002026001018151811061109e57fe5b60200260200101516114e6565b8482815181106110b757fe5b6020908102919091010152600101611067565b506002900460018082161480156110e2575080600114155b15611116578382815181106110f357fe5b602002602001015183828151811061110757fe5b60209081029190910101526001015b611055565b8260008151811061112857fe5b6020026020010151945050505050919050565b600080611146610ca9565b91509150611152611825565b6040518060a001604052806111676005610c8e565b64ffffffffff1681526020018781526020018681526020018464ffffffffff16815260200160405180602001604052806000815250815250905060006111ac82611519565b905060006111c283604001518601878601611542565b90506111d060058383611550565b5050505050505050565b6111e26117f7565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b600060028206156112505782600601610f1f565b505060040190565b60808101518051600091906060604182016001600160401b038111801561127e57600080fd5b506040519080825280601f01601f1916602001820160405280156112a9576020820181803683370190505b5060408601516060870151919250906000602084016001815383600182015282602182015285604182018760208a0160045afa50604190950190942095505050505050919050565b6000611311836000015163ffffffff16600561087590919063ffffffff16565b61131a84611519565b146113375760405162461bcd60e51b81526004016102cb9061227d565b61134f836020015185846000015185602001516116de565b61136b5760405162461bcd60e51b81526004016102cb90611fd6565b5060019392505050565b611380848483611550565b610c88848383611550565b60006113956117f7565b61139e836111da565b602001519392505050565b80516020808301516040808501516060860151608087015192516000966113d4969095949101611d82565b604051602081830303815290604052805190602001209050919050565b606080826001600160401b038111801561140a57600080fd5b50604051908082528060200260200182016040528015611434578160200160208202803683370190505b50905060006040516020016114499190611cc0565b604051602081830303815290604052805190602001208160008151811061146c57fe5b602090810291909101015260015b81518110156114df5781600182038151811061149257fe5b60200260200101516040516020016114aa9190611cc0565b604051602081830303815290604052805190602001208282815181106114cc57fe5b602090810291909101015260010161147a565b5092915050565b600082826040516020016114fb929190611cc9565b60405160208183030381529060405280519060200120905092915050565b600081602001518260400151836060015184608001516040516020016113d49493929190611dba565b602890811b91909117901b90565b6115586117f7565b611561846111da565b9050600061158582604001516001600160401b03168661123c90919063ffffffff16565b805490915061159357601081555b8054608083015183510364ffffffffff161061168b5760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff926115e192600401611ddf565b602060405180830381600087803b1580156115fb57600080fd5b505af192505050801561162b575060408051601f3d908101601f1916820190925261162891810190611ace565b60015b6116375750600061163a565b90505b8015611681576040830180516001016001600160401b03169081905260808401805164ffffffffff9081166060870152855116905261167a90879061123c565b9150611689565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff198516918401919091526116d58684611749565b50505050505050565b600083815b835181101561173d5760008482815181106116fa57fe5b60209081029190910101519050600186831c81161480156117265761171f84836114e6565b9350611733565b61173082856114e6565b93505b50506001016116e3565b50909414949350505050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b17959094909390929091871461178f5760028a018790555b858a60030154146117a25760038a018690555b5050505050505092915050565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b80356102688161256e565b600082601f830112611872578081fd5b81356001600160401b03811115611887578182fd5b61189a601f8201601f1916602001612529565b91508082528360208285010111156118b157600080fd5b8060208401602084013760009082016020015292915050565b80356002811061026857600080fd5b600060a082840312156118ea578081fd5b6118f460a0612529565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561193157600080fd5b61193d84828501611862565b60808301525092915050565b60006040828403121561195a578081fd5b6119646040612529565b9050813581526020808301356001600160401b0381111561198457600080fd5b8301601f8101851361199557600080fd5b80356119a86119a38261254f565b612529565b81815283810190838501858402850186018910156119c557600080fd5b600094505b838510156119e85780358352600194909401939185019185016119ca565b508085870152505050505092915050565b600060a08284031215611a0a578081fd5b611a1460a0612529565b90508135611a2181612586565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561193157600080fd5b600060208284031215611a6d578081fd5b8151610f1f8161256e565b600080600060608486031215611a8c578182fd5b8335611a978161256e565b92506020840135915060408401356001600160401b03811115611ab8578182fd5b611ac486828701611862565b9150509250925092565b600060208284031215611adf578081fd5b8151610f1f81612586565b600060208284031215611afb578081fd5b81356001600160401b03811115611b10578182fd5b6102a084828501611862565b60008060008060808587031215611b31578081fd5b84356001600160401b0380821115611b47578283fd5b9086019060e08289031215611b5a578283fd5b611b6460e0612529565b8235815260208301356020820152611b7f89604085016118ca565b6040820152611b918960608501611857565b6060820152611ba38960808501611857565b608082015260a083013560a082015260c083013582811115611bc3578485fd5b611bcf8a828601611862565b60c08301525095506020870135915080821115611bea578283fd5b611bf6888389016119f9565b94506040870135915080821115611c0b578283fd5b611c17888389016118d9565b93506060870135915080821115611c2c578283fd5b50611c3987828801611949565b91505092959194509250565b600060208284031215611c56578081fd5b5035919050565b600060208284031215611c6e578081fd5b5051919050565b60008151808452815b81811015611c9a57602081850181015186830182015201611c7e565b81811115611cab5782602083870101525b50601f01601f19169290920160200192915050565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611d1e90830184611c75565b9695505050505050565b6001600160a01b038781168252861660208201526040810185905260c060608201819052600090611d5b90830186611c75565b64ffffffffff9490941660808301525060a00152949350505050565b901515815260200190565b6000861515825285602083015284604083015283606083015260a06080830152611daf60a0830184611c75565b979650505050505050565b600085825284602083015283604083015260806060830152611d1e6080830184611c75565b91825264ffffffffff16602082015260400190565b600060208252610f1f6020830184611c75565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b6020808252602e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e20696e60408201526d31b63ab9b4b7b710383937b7b31760911b606082015260800190565b6020808252601e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e2e0000604082015260600190565b60208082526028908201527f4d7573742070726f76696465206174206c65617374206f6e652062617463682060408201526731b7b73a32bc3a1760c11b606082015260800190565b6020808252602e908201527f4e6f7420616c6c2073657175656e636572207472616e73616374696f6e73207760408201526d32b93290383937b1b2b9b9b2b21760911b606082015260800190565b6020808252604a908201527f41637475616c207472616e73616374696f6e20696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420746f74616c20656c656d656e7473206060820152693a379030b83832b7321760b11b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526029908201527f5472616e73616374696f6e20676173206c696d697420746f6f206c6f7720746f6040820152681032b738bab2bab29760b91b606082015260800190565b6020808252604d908201527f5175657565207472616e73616374696f6e732063616e6e6f742062652073756260408201527f6d697474656420647572696e67207468652073657175656e63657220696e636c60608201526c3ab9b4b7b7103832b934b7b21760991b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b6020808252602d908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460408201526c34329029b2b8bab2b731b2b91760991b606082015260800190565b6020808252601a908201527f496e76616c6964205175657565207472616e73616374696f6e2e000000000000604082015260600190565b60208082526039908201527f5472616e73616374696f6e2065786365656473206d6178696d756d20726f6c6c60408201527f7570207472616e73616374696f6e20646174612073697a652e00000000000000606082015260800190565b60208082526028908201527f4d75737420617070656e64206d6f7265207468616e207a65726f207472616e7360408201526730b1ba34b7b7399760c11b606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b6020808252602b908201527f496e73756666696369656e742067617320666f72204c322072617465206c696d60408201526a34ba34b73390313ab9371760a91b606082015260800190565b6020808252602a908201527f496e76616c6964205175657565207472616e73616374696f6e20696e636c757360408201526934b7b710383937b7b31760b11b606082015260800190565b6020808252602a908201527f53657175656e636572207472616e73616374696f6e732074696d657374616d70604082015269103a37b7903434b3b41760b11b606082015260800190565b6020808252602c908201527f53657175656e636572207472616e73616374696f6e7320626c6f636b4e756d6260408201526b32b9103a37b7903434b3b41760a11b606082015260800190565b60208082526021908201527f4d75737420617070656e64206174206c65617374206f6e6520656c656d656e746040820152601760f91b606082015260800190565b60208082526043908201527f4f6c6465722071756575652062617463686573206d7573742062652070726f6360408201527f6573736564206265666f72652061206e65772073657175656e6365722062617460608201526231b41760e91b608082015260a00190565b60208082526022908201527f4e6f7420656e6f756768204261746368436f6e74657874732070726f76696465604082015261321760f11b606082015260800190565b8151815260208083015164ffffffffff90811691830191909152604092830151169181019190915260600190565b9283526020830191909152604082015260600190565b64ffffffffff9384168152919092166020820152604081019190915260600190565b6040518181016001600160401b038111828210171561254757600080fd5b604052919050565b60006001600160401b03821115612564578081fd5b5060209081020190565b6001600160a01b038116811461258357600080fd5b50565b801515811461258357600080fdfea26469706673582212209d911533b6463e8cfb00917cf233f4fb628586aa18f27311cdfab1708e5ad74464736f6c63430007000033",
"bytecode": "0x60806040523480156200001157600080fd5b50604051620029ab380380620029ab8339810160408190526200003491620002ed565b600080546001600160a01b0319166001600160a01b03841617905560408051808201909152600d81526c27ab26afa9b2b8bab2b731b2b960991b60208201526200007e90620001fb565b600360006101000a8154816001600160a01b0302191690836001600160a01b03160217905550620000c86040518060600160405280602281526020016200298960229139620001fb565b600480546001600160a01b0319166001600160a01b0392909216919091179055600181905560408051808201909152601881527f4f564d5f5374617465436f6d6d69746d656e74436861696e000000000000000060208201526200016e906010907f9413776a3b6f36bbb044c745c87ab6e7ffed37fc3ab60731591a70782169714d906200015690620001fb565b60056200028860201b6200087217909392919060201c565b620001f360107f30a907da349b6916f6bc60eb25a37176d5705fba414069bdb6f625ebf8bb6c55620001db6040518060400160405280601881526020017f4f564d5f5374617465436f6d6d69746d656e74436861696e0000000000000000815250620001fb60201b60201c565b600d6200028860201b6200087217909392919060201c565b50506200037d565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906200022e90859060040162000327565b60206040518083038186803b1580156200024757600080fd5b505afa1580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002829190620002bd565b92915050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b600060208284031215620002cf578081fd5b81516001600160a01b0381168114620002e6578182fd5b9392505050565b6000806040838503121562000300578081fd5b82516001600160a01b038116811462000317578182fd5b6020939093015192949293505050565b6000602080835283518082850152825b81811015620003555785810183015185820160400152820162000337565b81811115620003675783604083870101525b50601f01601f1916929092016040019392505050565b6125fc806200038d6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637aa63a86116100715780637aa63a8614610161578063876ed5cb14610169578063c2cf696f14610171578063d0f8934414610179578063e561dddc14610181578063facdc5da14610189576100b4565b80632a7f18be146100b9578063461a4478146100e25780634de569ce146101025780636fee07e01461012257806378f4b2f2146101375780637a167a8a1461014c575b600080fd5b6100cc6100c7366004611c65565b61019c565b6040516100d991906124e3565b60405180910390f35b6100f56100f0366004611b0a565b610207565b6040516100d99190611cf7565b610115610110366004611b3c565b61028e565b6040516100d99190611d97565b610135610130366004611a98565b6102c8565b005b61013f610406565b6040516100d99190611ce0565b61015461040c565b6040516100d99190612527565b61013f61041e565b61013f610437565b61013f61043d565b610135610442565b61013f610747565b610135610197366004611c65565b61075f565b6101a46117cf565b6002820260006101bc600d64ffffffffff84166108a7565b905060006101d5600d64ffffffffff60018601166108a7565b6040805160608101825293845264ffffffffff808316602086015260289290921c90911690830152509150505b919050565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190610238908590600401611e14565b60206040518083038186803b15801561025057600080fd5b505afa158015610264573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102889190611a7c565b92915050565b82516000901515600114156102b0576102a985858585610a05565b90506102c0565b6102a98585602001518585610bad565b949350505050565b612710815111156102f45760405162461bcd60e51b81526004016102eb906121f8565b60405180910390fd5b614e208210156103165760405162461bcd60e51b81526004016102eb9061205b565b600a820460005a905081811161033e5760405162461bcd60e51b81526004016102eb906122cc565b60005b825a8303101561035357600101610341565b60003387878760405160200161036c9493929190611d0b565b60408051601f19818403018152919052805160209091012090504360281b4217610398600d8383610c8c565b600060026103a6600d610cc0565b64ffffffffff16816103b457fe5b0490507f4b388aecf9fa6cc92253704e5975a6129a4f735bdbd99567df4ed0094ee4ceb5338a8a8a60018603426040516103f396959493929190611d48565b60405180910390a1505050505050505050565b614e2081565b600080610417610cdb565b9250505090565b600080610429610cdb565b5064ffffffffff1691505090565b61271081565b600a81565b60043560d81c60093560e890811c90600c35901c61045e61041e565b8364ffffffffff16146104835760405162461bcd60e51b81526004016102eb90612117565b6003546001600160a01b031633146104ad5760405162461bcd60e51b81526004016102eb90612174565b60008162ffffff16116104d25760405162461bcd60e51b81526004016102eb90611ef0565b60008262ffffff16116104f75760405162461bcd60e51b81526004016102eb906123f7565b600f601062ffffff831602013664ffffffffff821681101561052b5760405162461bcd60e51b81526004016102eb906124a1565b60608462ffffff166001600160401b038111801561054857600080fd5b50604051908082528060200260200182016040528015610572578160200160208202803683370190505b509050600080600061058261040c565b905060005b8762ffffff168163ffffffff161015610678576105a26117ef565b6105b18263ffffffff16610d02565b90506105bd8184610d52565b60005b815163ffffffff8216101561061b57883560e81c6105e68364ffffffffff8c1683610e18565b888863ffffffff16815181106105f857fe5b6020908102919091010152989098016003019760019586019594850194016105c0565b5060005b81602001518163ffffffff16101561066e576106418464ffffffffff16610ea2565b878763ffffffff168151811061065357fe5b6020908102919091010152600195860195938401930161061f565b5050600101610587565b508564ffffffffff16851461069f5760405162461bcd60e51b81526004016102eb90611f38565b8762ffffff168363ffffffff16146106c95760405162461bcd60e51b81526004016102eb90611f86565b63ffffffff62ffffff8916839003166106f76106e486610f46565b8a62ffffff168364ffffffffff1661115b565b7f602f1aeac0ca2e7a13e281a9ef0ad7838542712ce16780fa2ecffd351f05f8998183038261072461041e565b60405161073393929190612539565b60405180910390a150505050505050505050565b60006107536005610cc0565b64ffffffffff16905090565b6000811161077f5760405162461bcd60e51b81526004016102eb90612255565b600061078961040c565b90506060826001600160401b03811180156107a357600080fd5b506040519080825280602002602001820160405280156107cd578160200160208202803683370190505b50905060005b8381101561080e576107eb8364ffffffffff16610ea2565b8282815181106107f757fe5b6020908102919091010152600192830192016107d3565b5061082261081b82610f46565b848561115b565b7f64d7f508348c70dea42d5302a393987e4abc20e45954ab3f9d320207751956f0838364ffffffffff16038461085661041e565b60405161086593929190612511565b60405180910390a1505050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b60006108b1611817565b6108ba846111fa565b805190915064ffffffffff1683106108e45760405162461bcd60e51b81526004016102eb9061202d565b600061090682604001516001600160401b03168661125c90919063ffffffff16565b9050600061092d83604001516001016001600160401b03168761125c90919063ffffffff16565b9050826080015164ffffffffff16851061098e576080830151825464ffffffffff90911686039081106109725760405162461bcd60e51b81526004016102eb9061202d565b6000908152600190920160205250604090205491506102889050565b6080830151606084015164ffffffffff91821687810392909116106109c55760405162461bcd60e51b81526004016102eb9061202d565b81548111156109e65760405162461bcd60e51b81526004016102eb9061202d565b8154036000908152600190910160205260409020549250610288915050565b600080610a3d6040518060400160405280601481526020017327ab26afa2bc32b1baba34b7b726b0b730b3b2b960611b815250610207565b90506000816001600160a01b0316631c4712a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7a57600080fd5b505afa158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab29190611c7d565b90506000610abf87611278565b9050610acc818787611311565b610ae85760405162461bcd60e51b81526004016102eb90611e6b565b86606001518860200151148015610b03575060408701518851145b8015610b21575060045460808901516001600160a01b039081169116145b8015610b305750818860a00151145b8015610b47575060608801516001600160a01b0316155b8015610b625750600088604001516001811115610b6057fe5b145b8015610b8357508660800151805190602001208860c0015180519060200120145b610b9f5760405162461bcd60e51b81526004016102eb90611eb9565b506001979650505050505050565b600080610bbd8360000151610ea2565b9050610bca818585611311565b610be65760405162461bcd60e51b81526004016102eb90612317565b6000866060015187608001518860a001518960c00151604051602001610c0f9493929190611d0b565b604051602081830303815290604052805190602001209050610c2f6117cf565b610c388761019c565b805190915082148015610c5657508751602082015164ffffffffff16145b8015610c7057508760200151816040015164ffffffffff16145b610b9f5760405162461bcd60e51b81526004016102eb906121c1565b610c94611817565b610c9d846111fa565b9050610cba8383836020015187611395909392919063ffffffff16565b50505050565b6000610cca611817565b610cd3836111fa565b519392505050565b6000806000610cea60056113ab565b64ffffffffff602882901c16935060501c9150509091565b610d0a6117ef565b5060408051608081018252601092909202600f81013560e890811c84526012820135901c6020840152601581013560d890811c92840192909252601a0135901c606082015290565b610d5c600d610cc0565b64ffffffffff16610d6c57610e14565b610d746117cf565b610d848264ffffffffff1661019c565b9050600154816020015164ffffffffff16014210610db45760405162461bcd60e51b81526004016102eb90612438565b806020015164ffffffffff1683604001511115610de35760405162461bcd60e51b81526004016102eb90612361565b806040015164ffffffffff1683606001511115610e125760405162461bcd60e51b81526004016102eb906123ab565b505b5050565b60006060826041016001600160401b0381118015610e3557600080fd5b506040519080825280601f01601f191660200182016040528015610e60576020820181803683370190505b50604086015160608701519192509060006020840160018153836001820152826021820152866003890160418301376041870190209450505050509392505050565b6000610eac6117cf565b610eb58361019c565b6003549091506001600160a01b0316331480610ee0575042600154826020015164ffffffffff160111155b610efc5760405162461bcd60e51b81526004016102eb906120a4565b610f3f6040518060a001604052806000151581526020018581526020016000815260200160008152602001604051806020016040528060008152508152506113c9565b9392505050565b600080825111610f685760405162461bcd60e51b81526004016102eb90611e27565b815160011415610f8e5781600081518110610f7f57fe5b60200260200101519050610202565b6060610f9a8351611411565b8351909150839060029006600114156110355783516001016001600160401b0381118015610fc757600080fd5b50604051908082528060200260200182016040528015610ff1578160200160208202803683370190505b50905060005b84518110156110335784818151811061100c57fe5b602002602001015182828151811061102057fe5b6020908102919091010152600101610ff7565b505b835160009060028106600114156110755783828151811061105257fe5b602002602001015183828151811061106657fe5b60209081029190910101526001015b600181111561113b5760018201915060005b600282048110156110ea576110cb8482600202815181106110a457fe5b60200260200101518583600202600101815181106110be57fe5b6020026020010151611506565b8482815181106110d757fe5b6020908102919091010152600101611087565b50600290046001808216148015611102575080600114155b156111365783828151811061111357fe5b602002602001015183828151811061112757fe5b60209081029190910101526001015b611075565b8260008151811061114857fe5b6020026020010151945050505050919050565b600080611166610cdb565b91509150611172611845565b6040518060a001604052806111876005610cc0565b64ffffffffff1681526020018781526020018681526020018464ffffffffff16815260200160405180602001604052806000815250815250905060006111cc82611539565b905060006111e283604001518601878601611562565b90506111f060058383611570565b5050505050505050565b611202611817565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b600060028206156112705782600601610f3f565b505060040190565b60808101518051600091906060604182016001600160401b038111801561129e57600080fd5b506040519080825280601f01601f1916602001820160405280156112c9576020820181803683370190505b5060408601516060870151919250906000602084016001815383600182015282602182015285604182018760208a0160045afa50604190950190942095505050505050919050565b6000611331836000015163ffffffff1660056108a790919063ffffffff16565b61133a84611539565b146113575760405162461bcd60e51b81526004016102eb9061229d565b61136f836020015185846000015185602001516116fe565b61138b5760405162461bcd60e51b81526004016102eb90611ff6565b5060019392505050565b6113a0848483611570565b610cba848383611570565b60006113b5611817565b6113be836111fa565b602001519392505050565b80516020808301516040808501516060860151608087015192516000966113f4969095949101611da2565b604051602081830303815290604052805190602001209050919050565b606080826001600160401b038111801561142a57600080fd5b50604051908082528060200260200182016040528015611454578160200160208202803683370190505b50905060006040516020016114699190611ce0565b604051602081830303815290604052805190602001208160008151811061148c57fe5b602090810291909101015260015b81518110156114ff578160018203815181106114b257fe5b60200260200101516040516020016114ca9190611ce0565b604051602081830303815290604052805190602001208282815181106114ec57fe5b602090810291909101015260010161149a565b5092915050565b6000828260405160200161151b929190611ce9565b60405160208183030381529060405280519060200120905092915050565b600081602001518260400151836060015184608001516040516020016113f49493929190611dda565b602890811b91909117901b90565b611578611817565b611581846111fa565b905060006115a582604001516001600160401b03168661125c90919063ffffffff16565b80549091506115b357601081555b8054608083015183510364ffffffffff16106116ab5760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff9261160192600401611dff565b602060405180830381600087803b15801561161b57600080fd5b505af192505050801561164b575060408051601f3d908101601f1916820190925261164891810190611aee565b60015b6116575750600061165a565b90505b80156116a1576040830180516001016001600160401b03169081905260808401805164ffffffffff9081166060870152855116905261169a90879061125c565b91506116a9565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff198516918401919091526116f58684611769565b50505050505050565b600083815b835181101561175d57600084828151811061171a57fe5b60209081029190910101519050600186831c81161480156117465761173f8483611506565b9350611753565b6117508285611506565b93505b5050600101611703565b50909414949350505050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b1795909490939092909187146117af5760028a018790555b858a60030154146117c25760038a018690555b5050505050505092915050565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b8035610288816125a0565b600082601f830112611892578081fd5b81356001600160401b038111156118a7578182fd5b6118ba601f8201601f191660200161255b565b91508082528360208285010111156118d157600080fd5b8060208401602084013760009082016020015292915050565b80356002811061028857600080fd5b600060a0828403121561190a578081fd5b61191460a061255b565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561195157600080fd5b61195d84828501611882565b60808301525092915050565b60006040828403121561197a578081fd5b611984604061255b565b9050813581526020808301356001600160401b038111156119a457600080fd5b8301601f810185136119b557600080fd5b80356119c86119c382612581565b61255b565b81815283810190838501858402850186018910156119e557600080fd5b600094505b83851015611a085780358352600194909401939185019185016119ea565b508085870152505050505092915050565b600060a08284031215611a2a578081fd5b611a3460a061255b565b90508135611a41816125b8565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561195157600080fd5b600060208284031215611a8d578081fd5b8151610f3f816125a0565b600080600060608486031215611aac578182fd5b8335611ab7816125a0565b92506020840135915060408401356001600160401b03811115611ad8578182fd5b611ae486828701611882565b9150509250925092565b600060208284031215611aff578081fd5b8151610f3f816125b8565b600060208284031215611b1b578081fd5b81356001600160401b03811115611b30578182fd5b6102c084828501611882565b60008060008060808587031215611b51578081fd5b84356001600160401b0380821115611b67578283fd5b9086019060e08289031215611b7a578283fd5b611b8460e061255b565b8235815260208301356020820152611b9f89604085016118ea565b6040820152611bb18960608501611877565b6060820152611bc38960808501611877565b608082015260a083013560a082015260c083013582811115611be3578485fd5b611bef8a828601611882565b60c08301525095506020870135915080821115611c0a578283fd5b611c1688838901611a19565b94506040870135915080821115611c2b578283fd5b611c37888389016118f9565b93506060870135915080821115611c4c578283fd5b50611c5987828801611969565b91505092959194509250565b600060208284031215611c76578081fd5b5035919050565b600060208284031215611c8e578081fd5b5051919050565b60008151808452815b81811015611cba57602081850181015186830182015201611c9e565b81811115611ccb5782602083870101525b50601f01601f19169290920160200192915050565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611d3e90830184611c95565b9695505050505050565b6001600160a01b038781168252861660208201526040810185905260c060608201819052600090611d7b90830186611c95565b64ffffffffff9490941660808301525060a00152949350505050565b901515815260200190565b6000861515825285602083015284604083015283606083015260a06080830152611dcf60a0830184611c95565b979650505050505050565b600085825284602083015283604083015260806060830152611d3e6080830184611c95565b91825264ffffffffff16602082015260400190565b600060208252610f3f6020830184611c95565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b6020808252602e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e20696e60408201526d31b63ab9b4b7b710383937b7b31760911b606082015260800190565b6020808252601e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e2e0000604082015260600190565b60208082526028908201527f4d7573742070726f76696465206174206c65617374206f6e652062617463682060408201526731b7b73a32bc3a1760c11b606082015260800190565b6020808252602e908201527f4e6f7420616c6c2073657175656e636572207472616e73616374696f6e73207760408201526d32b93290383937b1b2b9b9b2b21760911b606082015260800190565b6020808252604a908201527f41637475616c207472616e73616374696f6e20696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420746f74616c20656c656d656e7473206060820152693a379030b83832b7321760b11b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526029908201527f5472616e73616374696f6e20676173206c696d697420746f6f206c6f7720746f6040820152681032b738bab2bab29760b91b606082015260800190565b6020808252604d908201527f5175657565207472616e73616374696f6e732063616e6e6f742062652073756260408201527f6d697474656420647572696e67207468652073657175656e63657220696e636c60608201526c3ab9b4b7b7103832b934b7b21760991b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b6020808252602d908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460408201526c34329029b2b8bab2b731b2b91760991b606082015260800190565b6020808252601a908201527f496e76616c6964205175657565207472616e73616374696f6e2e000000000000604082015260600190565b60208082526039908201527f5472616e73616374696f6e2065786365656473206d6178696d756d20726f6c6c60408201527f7570207472616e73616374696f6e20646174612073697a652e00000000000000606082015260800190565b60208082526028908201527f4d75737420617070656e64206d6f7265207468616e207a65726f207472616e7360408201526730b1ba34b7b7399760c11b606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b6020808252602b908201527f496e73756666696369656e742067617320666f72204c322072617465206c696d60408201526a34ba34b73390313ab9371760a91b606082015260800190565b6020808252602a908201527f496e76616c6964205175657565207472616e73616374696f6e20696e636c757360408201526934b7b710383937b7b31760b11b606082015260800190565b6020808252602a908201527f53657175656e636572207472616e73616374696f6e732074696d657374616d70604082015269103a37b7903434b3b41760b11b606082015260800190565b6020808252602c908201527f53657175656e636572207472616e73616374696f6e7320626c6f636b4e756d6260408201526b32b9103a37b7903434b3b41760a11b606082015260800190565b60208082526021908201527f4d75737420617070656e64206174206c65617374206f6e6520656c656d656e746040820152601760f91b606082015260800190565b60208082526043908201527f4f6c6465722071756575652062617463686573206d7573742062652070726f6360408201527f6573736564206265666f72652061206e65772073657175656e6365722062617460608201526231b41760e91b608082015260a00190565b60208082526022908201527f4e6f7420656e6f756768204261746368436f6e74657874732070726f76696465604082015261321760f11b606082015260800190565b8151815260208083015164ffffffffff90811691830191909152604092830151169181019190915260600190565b9283526020830191909152604082015260600190565b64ffffffffff91909116815260200190565b64ffffffffff9384168152919092166020820152604081019190915260600190565b6040518181016001600160401b038111828210171561257957600080fd5b604052919050565b60006001600160401b03821115612596578081fd5b5060209081020190565b6001600160a01b03811681146125b557600080fd5b50565b80151581146125b557600080fdfea26469706673582212207689502b4310e02dc6acab4aa9e3fc03b8a1833dc8be9da554f1ff2f9fa9e1aa64736f6c634300070000334f564d5f4465636f6d7072657373696f6e507265636f6d70696c6541646472657373",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80637aa63a86116100715780637aa63a8614610161578063876ed5cb14610169578063c2cf696f14610171578063d0f8934414610179578063e561dddc14610181578063facdc5da14610189576100b4565b80632a7f18be146100b9578063461a4478146100e25780634de569ce146101025780636fee07e01461012257806378f4b2f2146101375780637a167a8a1461014c575b600080fd5b6100cc6100c7366004611c65565b61019c565b6040516100d991906124e3565b60405180910390f35b6100f56100f0366004611b0a565b610207565b6040516100d99190611cf7565b610115610110366004611b3c565b61028e565b6040516100d99190611d97565b610135610130366004611a98565b6102c8565b005b61013f610406565b6040516100d99190611ce0565b61015461040c565b6040516100d99190612527565b61013f61041e565b61013f610437565b61013f61043d565b610135610442565b61013f610747565b610135610197366004611c65565b61075f565b6101a46117cf565b6002820260006101bc600d64ffffffffff84166108a7565b905060006101d5600d64ffffffffff60018601166108a7565b6040805160608101825293845264ffffffffff808316602086015260289290921c90911690830152509150505b919050565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190610238908590600401611e14565b60206040518083038186803b15801561025057600080fd5b505afa158015610264573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102889190611a7c565b92915050565b82516000901515600114156102b0576102a985858585610a05565b90506102c0565b6102a98585602001518585610bad565b949350505050565b612710815111156102f45760405162461bcd60e51b81526004016102eb906121f8565b60405180910390fd5b614e208210156103165760405162461bcd60e51b81526004016102eb9061205b565b600a820460005a905081811161033e5760405162461bcd60e51b81526004016102eb906122cc565b60005b825a8303101561035357600101610341565b60003387878760405160200161036c9493929190611d0b565b60408051601f19818403018152919052805160209091012090504360281b4217610398600d8383610c8c565b600060026103a6600d610cc0565b64ffffffffff16816103b457fe5b0490507f4b388aecf9fa6cc92253704e5975a6129a4f735bdbd99567df4ed0094ee4ceb5338a8a8a60018603426040516103f396959493929190611d48565b60405180910390a1505050505050505050565b614e2081565b600080610417610cdb565b9250505090565b600080610429610cdb565b5064ffffffffff1691505090565b61271081565b600a81565b60043560d81c60093560e890811c90600c35901c61045e61041e565b8364ffffffffff16146104835760405162461bcd60e51b81526004016102eb90612117565b6003546001600160a01b031633146104ad5760405162461bcd60e51b81526004016102eb90612174565b60008162ffffff16116104d25760405162461bcd60e51b81526004016102eb90611ef0565b60008262ffffff16116104f75760405162461bcd60e51b81526004016102eb906123f7565b600f601062ffffff831602013664ffffffffff821681101561052b5760405162461bcd60e51b81526004016102eb906124a1565b60608462ffffff166001600160401b038111801561054857600080fd5b50604051908082528060200260200182016040528015610572578160200160208202803683370190505b509050600080600061058261040c565b905060005b8762ffffff168163ffffffff161015610678576105a26117ef565b6105b18263ffffffff16610d02565b90506105bd8184610d52565b60005b815163ffffffff8216101561061b57883560e81c6105e68364ffffffffff8c1683610e18565b888863ffffffff16815181106105f857fe5b6020908102919091010152989098016003019760019586019594850194016105c0565b5060005b81602001518163ffffffff16101561066e576106418464ffffffffff16610ea2565b878763ffffffff168151811061065357fe5b6020908102919091010152600195860195938401930161061f565b5050600101610587565b508564ffffffffff16851461069f5760405162461bcd60e51b81526004016102eb90611f38565b8762ffffff168363ffffffff16146106c95760405162461bcd60e51b81526004016102eb90611f86565b63ffffffff62ffffff8916839003166106f76106e486610f46565b8a62ffffff168364ffffffffff1661115b565b7f602f1aeac0ca2e7a13e281a9ef0ad7838542712ce16780fa2ecffd351f05f8998183038261072461041e565b60405161073393929190612539565b60405180910390a150505050505050505050565b60006107536005610cc0565b64ffffffffff16905090565b6000811161077f5760405162461bcd60e51b81526004016102eb90612255565b600061078961040c565b90506060826001600160401b03811180156107a357600080fd5b506040519080825280602002602001820160405280156107cd578160200160208202803683370190505b50905060005b8381101561080e576107eb8364ffffffffff16610ea2565b8282815181106107f757fe5b6020908102919091010152600192830192016107d3565b5061082261081b82610f46565b848561115b565b7f64d7f508348c70dea42d5302a393987e4abc20e45954ab3f9d320207751956f0838364ffffffffff16038461085661041e565b60405161086593929190612511565b60405180910390a1505050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b60006108b1611817565b6108ba846111fa565b805190915064ffffffffff1683106108e45760405162461bcd60e51b81526004016102eb9061202d565b600061090682604001516001600160401b03168661125c90919063ffffffff16565b9050600061092d83604001516001016001600160401b03168761125c90919063ffffffff16565b9050826080015164ffffffffff16851061098e576080830151825464ffffffffff90911686039081106109725760405162461bcd60e51b81526004016102eb9061202d565b6000908152600190920160205250604090205491506102889050565b6080830151606084015164ffffffffff91821687810392909116106109c55760405162461bcd60e51b81526004016102eb9061202d565b81548111156109e65760405162461bcd60e51b81526004016102eb9061202d565b8154036000908152600190910160205260409020549250610288915050565b600080610a3d6040518060400160405280601481526020017327ab26afa2bc32b1baba34b7b726b0b730b3b2b960611b815250610207565b90506000816001600160a01b0316631c4712a76040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7a57600080fd5b505afa158015610a8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab29190611c7d565b90506000610abf87611278565b9050610acc818787611311565b610ae85760405162461bcd60e51b81526004016102eb90611e6b565b86606001518860200151148015610b03575060408701518851145b8015610b21575060045460808901516001600160a01b039081169116145b8015610b305750818860a00151145b8015610b47575060608801516001600160a01b0316155b8015610b625750600088604001516001811115610b6057fe5b145b8015610b8357508660800151805190602001208860c0015180519060200120145b610b9f5760405162461bcd60e51b81526004016102eb90611eb9565b506001979650505050505050565b600080610bbd8360000151610ea2565b9050610bca818585611311565b610be65760405162461bcd60e51b81526004016102eb90612317565b6000866060015187608001518860a001518960c00151604051602001610c0f9493929190611d0b565b604051602081830303815290604052805190602001209050610c2f6117cf565b610c388761019c565b805190915082148015610c5657508751602082015164ffffffffff16145b8015610c7057508760200151816040015164ffffffffff16145b610b9f5760405162461bcd60e51b81526004016102eb906121c1565b610c94611817565b610c9d846111fa565b9050610cba8383836020015187611395909392919063ffffffff16565b50505050565b6000610cca611817565b610cd3836111fa565b519392505050565b6000806000610cea60056113ab565b64ffffffffff602882901c16935060501c9150509091565b610d0a6117ef565b5060408051608081018252601092909202600f81013560e890811c84526012820135901c6020840152601581013560d890811c92840192909252601a0135901c606082015290565b610d5c600d610cc0565b64ffffffffff16610d6c57610e14565b610d746117cf565b610d848264ffffffffff1661019c565b9050600154816020015164ffffffffff16014210610db45760405162461bcd60e51b81526004016102eb90612438565b806020015164ffffffffff1683604001511115610de35760405162461bcd60e51b81526004016102eb90612361565b806040015164ffffffffff1683606001511115610e125760405162461bcd60e51b81526004016102eb906123ab565b505b5050565b60006060826041016001600160401b0381118015610e3557600080fd5b506040519080825280601f01601f191660200182016040528015610e60576020820181803683370190505b50604086015160608701519192509060006020840160018153836001820152826021820152866003890160418301376041870190209450505050509392505050565b6000610eac6117cf565b610eb58361019c565b6003549091506001600160a01b0316331480610ee0575042600154826020015164ffffffffff160111155b610efc5760405162461bcd60e51b81526004016102eb906120a4565b610f3f6040518060a001604052806000151581526020018581526020016000815260200160008152602001604051806020016040528060008152508152506113c9565b9392505050565b600080825111610f685760405162461bcd60e51b81526004016102eb90611e27565b815160011415610f8e5781600081518110610f7f57fe5b60200260200101519050610202565b6060610f9a8351611411565b8351909150839060029006600114156110355783516001016001600160401b0381118015610fc757600080fd5b50604051908082528060200260200182016040528015610ff1578160200160208202803683370190505b50905060005b84518110156110335784818151811061100c57fe5b602002602001015182828151811061102057fe5b6020908102919091010152600101610ff7565b505b835160009060028106600114156110755783828151811061105257fe5b602002602001015183828151811061106657fe5b60209081029190910101526001015b600181111561113b5760018201915060005b600282048110156110ea576110cb8482600202815181106110a457fe5b60200260200101518583600202600101815181106110be57fe5b6020026020010151611506565b8482815181106110d757fe5b6020908102919091010152600101611087565b50600290046001808216148015611102575080600114155b156111365783828151811061111357fe5b602002602001015183828151811061112757fe5b60209081029190910101526001015b611075565b8260008151811061114857fe5b6020026020010151945050505050919050565b600080611166610cdb565b91509150611172611845565b6040518060a001604052806111876005610cc0565b64ffffffffff1681526020018781526020018681526020018464ffffffffff16815260200160405180602001604052806000815250815250905060006111cc82611539565b905060006111e283604001518601878601611562565b90506111f060058383611570565b5050505050505050565b611202611817565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b600060028206156112705782600601610f3f565b505060040190565b60808101518051600091906060604182016001600160401b038111801561129e57600080fd5b506040519080825280601f01601f1916602001820160405280156112c9576020820181803683370190505b5060408601516060870151919250906000602084016001815383600182015282602182015285604182018760208a0160045afa50604190950190942095505050505050919050565b6000611331836000015163ffffffff1660056108a790919063ffffffff16565b61133a84611539565b146113575760405162461bcd60e51b81526004016102eb9061229d565b61136f836020015185846000015185602001516116fe565b61138b5760405162461bcd60e51b81526004016102eb90611ff6565b5060019392505050565b6113a0848483611570565b610cba848383611570565b60006113b5611817565b6113be836111fa565b602001519392505050565b80516020808301516040808501516060860151608087015192516000966113f4969095949101611da2565b604051602081830303815290604052805190602001209050919050565b606080826001600160401b038111801561142a57600080fd5b50604051908082528060200260200182016040528015611454578160200160208202803683370190505b50905060006040516020016114699190611ce0565b604051602081830303815290604052805190602001208160008151811061148c57fe5b602090810291909101015260015b81518110156114ff578160018203815181106114b257fe5b60200260200101516040516020016114ca9190611ce0565b604051602081830303815290604052805190602001208282815181106114ec57fe5b602090810291909101015260010161149a565b5092915050565b6000828260405160200161151b929190611ce9565b60405160208183030381529060405280519060200120905092915050565b600081602001518260400151836060015184608001516040516020016113f49493929190611dda565b602890811b91909117901b90565b611578611817565b611581846111fa565b905060006115a582604001516001600160401b03168661125c90919063ffffffff16565b80549091506115b357601081555b8054608083015183510364ffffffffff16106116ab5760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff9261160192600401611dff565b602060405180830381600087803b15801561161b57600080fd5b505af192505050801561164b575060408051601f3d908101601f1916820190925261164891810190611aee565b60015b6116575750600061165a565b90505b80156116a1576040830180516001016001600160401b03169081905260808401805164ffffffffff9081166060870152855116905261169a90879061125c565b91506116a9565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff198516918401919091526116f58684611769565b50505050505050565b600083815b835181101561175d57600084828151811061171a57fe5b60209081029190910101519050600186831c81161480156117465761173f8483611506565b9350611753565b6117508285611506565b93505b5050600101611703565b50909414949350505050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b1795909490939092909187146117af5760028a018790555b858a60030154146117c25760038a018690555b5050505050505092915050565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b8035610288816125a0565b600082601f830112611892578081fd5b81356001600160401b038111156118a7578182fd5b6118ba601f8201601f191660200161255b565b91508082528360208285010111156118d157600080fd5b8060208401602084013760009082016020015292915050565b80356002811061028857600080fd5b600060a0828403121561190a578081fd5b61191460a061255b565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561195157600080fd5b61195d84828501611882565b60808301525092915050565b60006040828403121561197a578081fd5b611984604061255b565b9050813581526020808301356001600160401b038111156119a457600080fd5b8301601f810185136119b557600080fd5b80356119c86119c382612581565b61255b565b81815283810190838501858402850186018910156119e557600080fd5b600094505b83851015611a085780358352600194909401939185019185016119ea565b508085870152505050505092915050565b600060a08284031215611a2a578081fd5b611a3460a061255b565b90508135611a41816125b8565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561195157600080fd5b600060208284031215611a8d578081fd5b8151610f3f816125a0565b600080600060608486031215611aac578182fd5b8335611ab7816125a0565b92506020840135915060408401356001600160401b03811115611ad8578182fd5b611ae486828701611882565b9150509250925092565b600060208284031215611aff578081fd5b8151610f3f816125b8565b600060208284031215611b1b578081fd5b81356001600160401b03811115611b30578182fd5b6102c084828501611882565b60008060008060808587031215611b51578081fd5b84356001600160401b0380821115611b67578283fd5b9086019060e08289031215611b7a578283fd5b611b8460e061255b565b8235815260208301356020820152611b9f89604085016118ea565b6040820152611bb18960608501611877565b6060820152611bc38960808501611877565b608082015260a083013560a082015260c083013582811115611be3578485fd5b611bef8a828601611882565b60c08301525095506020870135915080821115611c0a578283fd5b611c1688838901611a19565b94506040870135915080821115611c2b578283fd5b611c37888389016118f9565b93506060870135915080821115611c4c578283fd5b50611c5987828801611969565b91505092959194509250565b600060208284031215611c76578081fd5b5035919050565b600060208284031215611c8e578081fd5b5051919050565b60008151808452815b81811015611cba57602081850181015186830182015201611c9e565b81811115611ccb5782602083870101525b50601f01601f19169290920160200192915050565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611d3e90830184611c95565b9695505050505050565b6001600160a01b038781168252861660208201526040810185905260c060608201819052600090611d7b90830186611c95565b64ffffffffff9490941660808301525060a00152949350505050565b901515815260200190565b6000861515825285602083015284604083015283606083015260a06080830152611dcf60a0830184611c95565b979650505050505050565b600085825284602083015283604083015260806060830152611d3e6080830184611c95565b91825264ffffffffff16602082015260400190565b600060208252610f3f6020830184611c95565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b6020808252602e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e20696e60408201526d31b63ab9b4b7b710383937b7b31760911b606082015260800190565b6020808252601e908201527f496e76616c69642053657175656e636572207472616e73616374696f6e2e0000604082015260600190565b60208082526028908201527f4d7573742070726f76696465206174206c65617374206f6e652062617463682060408201526731b7b73a32bc3a1760c11b606082015260800190565b6020808252602e908201527f4e6f7420616c6c2073657175656e636572207472616e73616374696f6e73207760408201526d32b93290383937b1b2b9b9b2b21760911b606082015260800190565b6020808252604a908201527f41637475616c207472616e73616374696f6e20696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420746f74616c20656c656d656e7473206060820152693a379030b83832b7321760b11b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526029908201527f5472616e73616374696f6e20676173206c696d697420746f6f206c6f7720746f6040820152681032b738bab2bab29760b91b606082015260800190565b6020808252604d908201527f5175657565207472616e73616374696f6e732063616e6e6f742062652073756260408201527f6d697474656420647572696e67207468652073657175656e63657220696e636c60608201526c3ab9b4b7b7103832b934b7b21760991b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b6020808252602d908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460408201526c34329029b2b8bab2b731b2b91760991b606082015260800190565b6020808252601a908201527f496e76616c6964205175657565207472616e73616374696f6e2e000000000000604082015260600190565b60208082526039908201527f5472616e73616374696f6e2065786365656473206d6178696d756d20726f6c6c60408201527f7570207472616e73616374696f6e20646174612073697a652e00000000000000606082015260800190565b60208082526028908201527f4d75737420617070656e64206d6f7265207468616e207a65726f207472616e7360408201526730b1ba34b7b7399760c11b606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b6020808252602b908201527f496e73756666696369656e742067617320666f72204c322072617465206c696d60408201526a34ba34b73390313ab9371760a91b606082015260800190565b6020808252602a908201527f496e76616c6964205175657565207472616e73616374696f6e20696e636c757360408201526934b7b710383937b7b31760b11b606082015260800190565b6020808252602a908201527f53657175656e636572207472616e73616374696f6e732074696d657374616d70604082015269103a37b7903434b3b41760b11b606082015260800190565b6020808252602c908201527f53657175656e636572207472616e73616374696f6e7320626c6f636b4e756d6260408201526b32b9103a37b7903434b3b41760a11b606082015260800190565b60208082526021908201527f4d75737420617070656e64206174206c65617374206f6e6520656c656d656e746040820152601760f91b606082015260800190565b60208082526043908201527f4f6c6465722071756575652062617463686573206d7573742062652070726f6360408201527f6573736564206265666f72652061206e65772073657175656e6365722062617460608201526231b41760e91b608082015260a00190565b60208082526022908201527f4e6f7420656e6f756768204261746368436f6e74657874732070726f76696465604082015261321760f11b606082015260800190565b8151815260208083015164ffffffffff90811691830191909152604092830151169181019190915260600190565b9283526020830191909152604082015260600190565b64ffffffffff91909116815260200190565b64ffffffffff9384168152919092166020820152604081019190915260600190565b6040518181016001600160401b038111828210171561257957600080fd5b604052919050565b60006001600160401b03821115612596578081fd5b5060209081020190565b6001600160a01b03811681146125b557600080fd5b50565b80151581146125b557600080fdfea26469706673582212207689502b4310e02dc6acab4aa9e3fc03b8a1833dc8be9da554f1ff2f9fa9e1aa64736f6c63430007000033",
"linkReferences": {},

@@ -423,3 +436,3 @@ "deployedLinkReferences": {},

{
"astId": 17088,
"astId": 17095,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -429,3 +442,3 @@ "label": "libAddressManager",

"slot": "0",
"type": "t_contract(Lib_AddressManager)17081"
"type": "t_contract(Lib_AddressManager)17088"
},

@@ -470,3 +483,3 @@ {

"slot": "5",
"type": "t_struct(RingBuffer)21513_storage"
"type": "t_struct(RingBuffer)21520_storage"
},

@@ -479,3 +492,3 @@ {

"slot": "13",
"type": "t_struct(RingBuffer)21513_storage"
"type": "t_struct(RingBuffer)21520_storage"
}

@@ -494,3 +507,3 @@ ],

},
"t_contract(Lib_AddressManager)17081": {
"t_contract(Lib_AddressManager)17088": {
"encoding": "inplace",

@@ -500,3 +513,3 @@ "label": "contract Lib_AddressManager",

},
"t_contract(iRingBufferOverwriter)21490": {
"t_contract(iRingBufferOverwriter)21497": {
"encoding": "inplace",

@@ -513,3 +526,3 @@ "label": "contract iRingBufferOverwriter",

},
"t_struct(Buffer)21500_storage": {
"t_struct(Buffer)21507_storage": {
"encoding": "inplace",

@@ -519,3 +532,3 @@ "label": "struct Lib_RingBuffer.Buffer",

{
"astId": 21495,
"astId": 21502,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -528,3 +541,3 @@ "label": "length",

{
"astId": 21499,
"astId": 21506,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -539,3 +552,3 @@ "label": "buf",

},
"t_struct(RingBuffer)21513_storage": {
"t_struct(RingBuffer)21520_storage": {
"encoding": "inplace",

@@ -545,3 +558,3 @@ "label": "struct Lib_RingBuffer.RingBuffer",

{
"astId": 21502,
"astId": 21509,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -554,3 +567,3 @@ "label": "id",

{
"astId": 21504,
"astId": 21511,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -560,6 +573,6 @@ "label": "overwriter",

"slot": "1",
"type": "t_contract(iRingBufferOverwriter)21490"
"type": "t_contract(iRingBufferOverwriter)21497"
},
{
"astId": 21506,
"astId": 21513,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -572,3 +585,3 @@ "label": "contextA",

{
"astId": 21508,
"astId": 21515,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -581,3 +594,3 @@ "label": "contextB",

{
"astId": 21510,
"astId": 21517,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -587,6 +600,6 @@ "label": "bufferA",

"slot": "4",
"type": "t_struct(Buffer)21500_storage"
"type": "t_struct(Buffer)21507_storage"
},
{
"astId": 21512,
"astId": 21519,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_CanonicalTransactionChain.sol:OVM_CanonicalTransactionChain",

@@ -596,3 +609,3 @@ "label": "bufferB",

"slot": "6",
"type": "t_struct(Buffer)21500_storage"
"type": "t_struct(Buffer)21507_storage"
}

@@ -599,0 +612,0 @@ ],

@@ -11,3 +11,3 @@ {

{
"astId": 14584,
"astId": 14585,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_FraudContributor.sol:OVM_FraudContributor",

@@ -17,7 +17,7 @@ "label": "ovmBondManager",

"slot": "0",
"type": "t_contract(iOVM_BondManager)16494"
"type": "t_contract(iOVM_BondManager)16501"
}
],
"types": {
"t_contract(iOVM_BondManager)16494": {
"t_contract(iOVM_BondManager)16501": {
"encoding": "inplace",

@@ -24,0 +24,0 @@ "label": "contract iOVM_BondManager",

@@ -355,4 +355,4 @@ {

],
"bytecode": "0x60806040523480156200001157600080fd5b506040516200162c3803806200162c8339810160408190526200003491620001f2565b600180546001600160a01b0319166001600160a01b03831617905560408051808201909152601881527f4f564d5f5374617465436f6d6d69746d656e74436861696e000000000000000060208201526200008e9062000165565b600280546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152601d81527f4f564d5f43616e6f6e6963616c5472616e73616374696f6e436861696e0000006020820152620000ed9062000165565b600380546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600f81526e27ab26afa137b73226b0b730b3b2b960891b60208201526200013e9062000165565b600080546001600160a01b0319166001600160a01b03929092169190911790555062000278565b60015460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906200019890859060040162000222565b60206040518083038186803b158015620001b157600080fd5b505afa158015620001c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ec9190620001f2565b92915050565b60006020828403121562000204578081fd5b81516001600160a01b03811681146200021b578182fd5b9392505050565b6000602080835283518082850152825b81811015620002505785810183015185820160400152820162000232565b81811115620002625783604083870101525b50601f01601f1916929092016040019392505050565b6113a480620002886000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630a70476014610051578063461a44781461006657806398d8867d1461008f578063ffc0e2f4146100a2575b600080fd5b61006461005f366004610bd5565b6100b5565b005b610079610074366004610d88565b6104c5565b6040516100869190610f7a565b60405180910390f35b61006461009d366004610c8f565b61054c565b6100796100b0366004610ba5565b61081e565b8560005a60008981526004602081815260409283902054835163597d0e4f60e11b815293519495506001600160a01b031693849363b2fa1c9e93818101939291829003018186803b15801561010957600080fd5b505afa15801561011d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101419190610b89565b151560011461016b5760405162461bcd60e51b81526004016101629061103f565b60405180910390fd5b865184516001909101146101915760405162461bcd60e51b8152600401610162906111c9565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee57906101c5908c908c908c90600401610fd3565b60206040518083038186803b1580156101dd57600080fd5b505afa1580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190610b89565b6102315760405162461bcd60e51b815260040161016290611182565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee579061026590899089908990600401610fd3565b60206040518083038186803b15801561027d57600080fd5b505afa158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b59190610b89565b6102d15760405162461bcd60e51b8152600401610162906110ea565b806001600160a01b031663c1c618b86040518163ffffffff1660e01b815260040160206040518083038186803b15801561030a57600080fd5b505afa15801561031e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103429190610bbd565b8614156103615760405162461bcd60e51b815260040161016290611132565b600254604051632e38626b60e21b81526001600160a01b039091169063b8e189ac90610391908890600401611200565b600060405180830381600087803b1580156103ab57600080fd5b505af11580156103bf573d6000803e3d6000fd5b5050505060008086608001518060200190518101906103de9190610dc3565b6000548951604051630c34548960e11b81529395509193506001600160a01b031691631868a91291610419918f919086908890600401611008565b600060405180830381600087803b15801561043357600080fd5b505af1158015610447573d6000803e3d6000fd5b5050505050505060005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e9061048890869033908690600401610fb4565b600060405180830381600087803b1580156104a257600080fd5b505af11580156104b6573d6000803e3d6000fd5b50505050505050505050505050565b60015460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906104f690859060040161102c565b60206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190610b66565b92915050565b8660005a905061055b89610839565b15610565576107a6565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee5790610599908c908c908c90600401610fd3565b60206040518083038186803b1580156105b157600080fd5b505afa1580156105c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e99190610b89565b6106055760405162461bcd60e51b815260040161016290611182565b6003546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce9061063b908990899089908990600401611213565b60206040518083038186803b15801561065357600080fd5b505afa158015610667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068b9190610b89565b6106a75760405162461bcd60e51b8152600401610162906110a6565b6106e56040518060400160405280601c81526020017f4f564d5f53746174655472616e736974696f6e6572466163746f7279000000008152506104c5565b60015488516001600160a01b03928316926322d147029216908c6107088b610856565b6040518563ffffffff1660e01b81526004016107279493929190610f8e565b602060405180830381600087803b15801561074157600080fd5b505af1158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190610b66565b60008a815260046020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b60005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e906107e090869033908690600401610fb4565b600060405180830381600087803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b5050505050505050505050505050565b6000908152600460205260409020546001600160a01b031690565b6000908152600460205260409020546001600160a01b0316151590565b60006108618261086f565b805190602001209050919050565b6060816000015182602001518360400151846060015185608001518660a001518760c001516040516020016108aa9796959493929190610f0b565b6040516020818303038152906040529050919050565b803561054681611348565b600082601f8301126108db578081fd5b813567ffffffffffffffff8111156108f1578182fd5b610904601f8201601f19166020016112d1565b915080825283602082850101111561091b57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061054657600080fd5b600060a08284031215610954578081fd5b61095e60a06112d1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561099c57600080fd5b6109a8848285016108cb565b60808301525092915050565b6000604082840312156109c5578081fd5b6109cf60406112d1565b90508135815260208083013567ffffffffffffffff8111156109f057600080fd5b8301601f81018513610a0157600080fd5b8035610a14610a0f826112f8565b6112d1565b8181528381019083850185840285018601891015610a3157600080fd5b600094505b83851015610a54578035835260019490940193918501918501610a36565b508085870152505050505092915050565b600060a08284031215610a76578081fd5b610a8060a06112d1565b90508135610a8d81611360565b80825250602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561099c57600080fd5b600060e08284031215610ada578081fd5b610ae460e06112d1565b90508135815260208201356020820152610b018360408401610934565b6040820152610b1383606084016108c0565b6060820152610b2583608084016108c0565b608082015260a082013560a082015260c082013567ffffffffffffffff811115610b4e57600080fd5b610b5a848285016108cb565b60c08301525092915050565b600060208284031215610b77578081fd5b8151610b8281611348565b9392505050565b600060208284031215610b9a578081fd5b8151610b8281611360565b600060208284031215610bb6578081fd5b5035919050565b600060208284031215610bce578081fd5b5051919050565b60008060008060008060c08789031215610bed578182fd5b86359550602087013567ffffffffffffffff80821115610c0b578384fd5b610c178a838b01610943565b96506040890135915080821115610c2c578384fd5b610c388a838b016109b4565b9550606089013594506080890135915080821115610c54578384fd5b610c608a838b01610943565b935060a0890135915080821115610c75578283fd5b50610c8289828a016109b4565b9150509295509295509295565b600080600080600080600060e0888a031215610ca9578485fd5b87359650602088013567ffffffffffffffff80821115610cc7578687fd5b610cd38b838c01610943565b975060408a0135915080821115610ce8578687fd5b610cf48b838c016109b4565b965060608a0135915080821115610d09578283fd5b610d158b838c01610ac9565b955060808a0135915080821115610d2a578283fd5b610d368b838c01610a65565b945060a08a0135915080821115610d4b578283fd5b610d578b838c01610943565b935060c08a0135915080821115610d6c578283fd5b50610d798a828b016109b4565b91505092959891949750929550565b600060208284031215610d99578081fd5b813567ffffffffffffffff811115610daf578182fd5b610dbb848285016108cb565b949350505050565b60008060408385031215610dd5578182fd5b825191506020830151610de781611348565b809150509250929050565b6001600160a01b03169052565b60008151808452610e17816020860160208601611318565b601f01601f19169290920160200192915050565b60028110610e3557fe5b9052565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dbb60a0850182610dff565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015610ec15784518252938301936001929092019190830190610ea1565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dbb60a0850182610dff565b600088825287602083015260028710610f2057fe5b8660f81b60408301526bffffffffffffffffffffffff19808760601b166041840152808660601b166055840152508360698301528251610f67816089850160208701611318565b9190910160890198975050505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b9283526001600160a01b03919091166020830152604082015260600190565b600084825260606020830152610fec6060830185610e39565b8281036040840152610ffe8185610e76565b9695505050505050565b93845260208401929092526001600160a01b03166040830152606082015260800190565b600060208252610b826020830184610dff565b60208082526041908201527f5374617465207472616e736974696f6e2070726f63657373206d75737420626560408201527f20636f6d706c65746564207072696f7220746f2066696e616c697a6174696f6e6060820152601760f91b608082015260a00190565b60208082526024908201527f496e76616c6964207472616e73616374696f6e20696e636c7573696f6e20707260408201526337b7b31760e11b606082015260800190565b60208082526028908201527f496e76616c696420706f73742d737461746520726f6f7420696e636c7573696f6040820152673710383937b7b31760c11b606082015260800190565b60208082526030908201527f5374617465207472616e736974696f6e20686173206e6f74206265656e20707260408201526f37bb32b710333930bab23ab632b73a1760811b606082015260800190565b60208082526027908201527f496e76616c6964207072652d737461746520726f6f7420696e636c7573696f6e60408201526610383937b7b31760c91b606082015260800190565b6020808252601e908201527f496e76616c696420706f73742d737461746520726f6f7420696e6465782e0000604082015260600190565b600060208252610b826020830184610e39565b60006080825285516080830152602086015160a0830152604086015161123c60c0840182610e2b565b50606086015161124f60e0840182610df2565b506080860151611263610100840182610df2565b5060a086015161012083015260c086015160e061014084015261128a610160840182610dff565b9050828103602084015261129e8187610ecc565b905082810360408401526112b28186610e39565b905082810360608401526112c68185610e76565b979650505050505050565b60405181810167ffffffffffffffff811182821017156112f057600080fd5b604052919050565b600067ffffffffffffffff82111561130e578081fd5b5060209081020190565b60005b8381101561133357818101518382015260200161131b565b83811115611342576000848401525b50505050565b6001600160a01b038116811461135d57600080fd5b50565b801515811461135d57600080fdfea2646970667358221220db89749d9ae9e656dc4ac969c1b25203fd9fcaefbcdbfc67ea1a84d8008862aa64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630a70476014610051578063461a44781461006657806398d8867d1461008f578063ffc0e2f4146100a2575b600080fd5b61006461005f366004610bd5565b6100b5565b005b610079610074366004610d88565b6104c5565b6040516100869190610f7a565b60405180910390f35b61006461009d366004610c8f565b61054c565b6100796100b0366004610ba5565b61081e565b8560005a60008981526004602081815260409283902054835163597d0e4f60e11b815293519495506001600160a01b031693849363b2fa1c9e93818101939291829003018186803b15801561010957600080fd5b505afa15801561011d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101419190610b89565b151560011461016b5760405162461bcd60e51b81526004016101629061103f565b60405180910390fd5b865184516001909101146101915760405162461bcd60e51b8152600401610162906111c9565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee57906101c5908c908c908c90600401610fd3565b60206040518083038186803b1580156101dd57600080fd5b505afa1580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190610b89565b6102315760405162461bcd60e51b815260040161016290611182565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee579061026590899089908990600401610fd3565b60206040518083038186803b15801561027d57600080fd5b505afa158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b59190610b89565b6102d15760405162461bcd60e51b8152600401610162906110ea565b806001600160a01b031663c1c618b86040518163ffffffff1660e01b815260040160206040518083038186803b15801561030a57600080fd5b505afa15801561031e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103429190610bbd565b8614156103615760405162461bcd60e51b815260040161016290611132565b600254604051632e38626b60e21b81526001600160a01b039091169063b8e189ac90610391908890600401611200565b600060405180830381600087803b1580156103ab57600080fd5b505af11580156103bf573d6000803e3d6000fd5b5050505060008086608001518060200190518101906103de9190610dc3565b6000548951604051630c34548960e11b81529395509193506001600160a01b031691631868a91291610419918f919086908890600401611008565b600060405180830381600087803b15801561043357600080fd5b505af1158015610447573d6000803e3d6000fd5b5050505050505060005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e9061048890869033908690600401610fb4565b600060405180830381600087803b1580156104a257600080fd5b505af11580156104b6573d6000803e3d6000fd5b50505050505050505050505050565b60015460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906104f690859060040161102c565b60206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190610b66565b92915050565b8660005a905061055b89610839565b15610565576107a6565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee5790610599908c908c908c90600401610fd3565b60206040518083038186803b1580156105b157600080fd5b505afa1580156105c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e99190610b89565b6106055760405162461bcd60e51b815260040161016290611182565b6003546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce9061063b908990899089908990600401611213565b60206040518083038186803b15801561065357600080fd5b505afa158015610667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068b9190610b89565b6106a75760405162461bcd60e51b8152600401610162906110a6565b6106e56040518060400160405280601c81526020017f4f564d5f53746174655472616e736974696f6e6572466163746f7279000000008152506104c5565b60015488516001600160a01b03928316926322d147029216908c6107088b610856565b6040518563ffffffff1660e01b81526004016107279493929190610f8e565b602060405180830381600087803b15801561074157600080fd5b505af1158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190610b66565b60008a815260046020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b60005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e906107e090869033908690600401610fb4565b600060405180830381600087803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b5050505050505050505050505050565b6000908152600460205260409020546001600160a01b031690565b6000908152600460205260409020546001600160a01b0316151590565b60006108618261086f565b805190602001209050919050565b6060816000015182602001518360400151846060015185608001518660a001518760c001516040516020016108aa9796959493929190610f0b565b6040516020818303038152906040529050919050565b803561054681611348565b600082601f8301126108db578081fd5b813567ffffffffffffffff8111156108f1578182fd5b610904601f8201601f19166020016112d1565b915080825283602082850101111561091b57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061054657600080fd5b600060a08284031215610954578081fd5b61095e60a06112d1565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561099c57600080fd5b6109a8848285016108cb565b60808301525092915050565b6000604082840312156109c5578081fd5b6109cf60406112d1565b90508135815260208083013567ffffffffffffffff8111156109f057600080fd5b8301601f81018513610a0157600080fd5b8035610a14610a0f826112f8565b6112d1565b8181528381019083850185840285018601891015610a3157600080fd5b600094505b83851015610a54578035835260019490940193918501918501610a36565b508085870152505050505092915050565b600060a08284031215610a76578081fd5b610a8060a06112d1565b90508135610a8d81611360565b80825250602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561099c57600080fd5b600060e08284031215610ada578081fd5b610ae460e06112d1565b90508135815260208201356020820152610b018360408401610934565b6040820152610b1383606084016108c0565b6060820152610b2583608084016108c0565b608082015260a082013560a082015260c082013567ffffffffffffffff811115610b4e57600080fd5b610b5a848285016108cb565b60c08301525092915050565b600060208284031215610b77578081fd5b8151610b8281611348565b9392505050565b600060208284031215610b9a578081fd5b8151610b8281611360565b600060208284031215610bb6578081fd5b5035919050565b600060208284031215610bce578081fd5b5051919050565b60008060008060008060c08789031215610bed578182fd5b86359550602087013567ffffffffffffffff80821115610c0b578384fd5b610c178a838b01610943565b96506040890135915080821115610c2c578384fd5b610c388a838b016109b4565b9550606089013594506080890135915080821115610c54578384fd5b610c608a838b01610943565b935060a0890135915080821115610c75578283fd5b50610c8289828a016109b4565b9150509295509295509295565b600080600080600080600060e0888a031215610ca9578485fd5b87359650602088013567ffffffffffffffff80821115610cc7578687fd5b610cd38b838c01610943565b975060408a0135915080821115610ce8578687fd5b610cf48b838c016109b4565b965060608a0135915080821115610d09578283fd5b610d158b838c01610ac9565b955060808a0135915080821115610d2a578283fd5b610d368b838c01610a65565b945060a08a0135915080821115610d4b578283fd5b610d578b838c01610943565b935060c08a0135915080821115610d6c578283fd5b50610d798a828b016109b4565b91505092959891949750929550565b600060208284031215610d99578081fd5b813567ffffffffffffffff811115610daf578182fd5b610dbb848285016108cb565b949350505050565b60008060408385031215610dd5578182fd5b825191506020830151610de781611348565b809150509250929050565b6001600160a01b03169052565b60008151808452610e17816020860160208601611318565b601f01601f19169290920160200192915050565b60028110610e3557fe5b9052565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dbb60a0850182610dff565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015610ec15784518252938301936001929092019190830190610ea1565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dbb60a0850182610dff565b600088825287602083015260028710610f2057fe5b8660f81b60408301526bffffffffffffffffffffffff19808760601b166041840152808660601b166055840152508360698301528251610f67816089850160208701611318565b9190910160890198975050505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b9283526001600160a01b03919091166020830152604082015260600190565b600084825260606020830152610fec6060830185610e39565b8281036040840152610ffe8185610e76565b9695505050505050565b93845260208401929092526001600160a01b03166040830152606082015260800190565b600060208252610b826020830184610dff565b60208082526041908201527f5374617465207472616e736974696f6e2070726f63657373206d75737420626560408201527f20636f6d706c65746564207072696f7220746f2066696e616c697a6174696f6e6060820152601760f91b608082015260a00190565b60208082526024908201527f496e76616c6964207472616e73616374696f6e20696e636c7573696f6e20707260408201526337b7b31760e11b606082015260800190565b60208082526028908201527f496e76616c696420706f73742d737461746520726f6f7420696e636c7573696f6040820152673710383937b7b31760c11b606082015260800190565b60208082526030908201527f5374617465207472616e736974696f6e20686173206e6f74206265656e20707260408201526f37bb32b710333930bab23ab632b73a1760811b606082015260800190565b60208082526027908201527f496e76616c6964207072652d737461746520726f6f7420696e636c7573696f6e60408201526610383937b7b31760c91b606082015260800190565b6020808252601e908201527f496e76616c696420706f73742d737461746520726f6f7420696e6465782e0000604082015260600190565b600060208252610b826020830184610e39565b60006080825285516080830152602086015160a0830152604086015161123c60c0840182610e2b565b50606086015161124f60e0840182610df2565b506080860151611263610100840182610df2565b5060a086015161012083015260c086015160e061014084015261128a610160840182610dff565b9050828103602084015261129e8187610ecc565b905082810360408401526112b28186610e39565b905082810360608401526112c68185610e76565b979650505050505050565b60405181810167ffffffffffffffff811182821017156112f057600080fd5b604052919050565b600067ffffffffffffffff82111561130e578081fd5b5060209081020190565b60005b8381101561133357818101518382015260200161131b565b83811115611342576000848401525b50505050565b6001600160a01b038116811461135d57600080fd5b50565b801515811461135d57600080fdfea2646970667358221220db89749d9ae9e656dc4ac969c1b25203fd9fcaefbcdbfc67ea1a84d8008862aa64736f6c63430007000033",
"bytecode": "0x60806040523480156200001157600080fd5b5060405162001628380380620016288339810160408190526200003491620001f2565b600180546001600160a01b0319166001600160a01b03831617905560408051808201909152601881527f4f564d5f5374617465436f6d6d69746d656e74436861696e000000000000000060208201526200008e9062000165565b600280546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152601d81527f4f564d5f43616e6f6e6963616c5472616e73616374696f6e436861696e0000006020820152620000ed9062000165565b600380546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600f81526e27ab26afa137b73226b0b730b3b2b960891b60208201526200013e9062000165565b600080546001600160a01b0319166001600160a01b03929092169190911790555062000278565b60015460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906200019890859060040162000222565b60206040518083038186803b158015620001b157600080fd5b505afa158015620001c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ec9190620001f2565b92915050565b60006020828403121562000204578081fd5b81516001600160a01b03811681146200021b578182fd5b9392505050565b6000602080835283518082850152825b81811015620002505785810183015185820160400152820162000232565b81811115620002625783604083870101525b50601f01601f1916929092016040019392505050565b6113a080620002886000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630a70476014610051578063461a44781461006657806398d8867d1461008f578063ffc0e2f4146100a2575b600080fd5b61006461005f366004610bd5565b6100b5565b005b610079610074366004610d88565b6104c5565b6040516100869190610f6c565b60405180910390f35b61006461009d366004610c8f565b61054c565b6100796100b0366004610ba5565b61081e565b8560005a60008981526004602081815260409283902054835163597d0e4f60e11b815293519495506001600160a01b031693849363b2fa1c9e93818101939291829003018186803b15801561010957600080fd5b505afa15801561011d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101419190610b89565b151560011461016b5760405162461bcd60e51b815260040161016290611031565b60405180910390fd5b865184516001909101146101915760405162461bcd60e51b8152600401610162906111bb565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee57906101c5908c908c908c90600401610fc5565b60206040518083038186803b1580156101dd57600080fd5b505afa1580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190610b89565b6102315760405162461bcd60e51b815260040161016290611174565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee579061026590899089908990600401610fc5565b60206040518083038186803b15801561027d57600080fd5b505afa158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b59190610b89565b6102d15760405162461bcd60e51b8152600401610162906110dc565b806001600160a01b031663c1c618b86040518163ffffffff1660e01b815260040160206040518083038186803b15801561030a57600080fd5b505afa15801561031e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103429190610bbd565b8614156103615760405162461bcd60e51b815260040161016290611124565b600254604051632e38626b60e21b81526001600160a01b039091169063b8e189ac906103919088906004016111f2565b600060405180830381600087803b1580156103ab57600080fd5b505af11580156103bf573d6000803e3d6000fd5b5050505060008086608001518060200190518101906103de9190610dc3565b6000548951604051630c34548960e11b81529395509193506001600160a01b031691631868a91291610419918f919086908890600401610ffa565b600060405180830381600087803b15801561043357600080fd5b505af1158015610447573d6000803e3d6000fd5b5050505050505060005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e9061048890869033908690600401610fa6565b600060405180830381600087803b1580156104a257600080fd5b505af11580156104b6573d6000803e3d6000fd5b50505050505050505050505050565b60015460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906104f690859060040161101e565b60206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190610b66565b92915050565b8660005a905061055b89610839565b15610565576107a6565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee5790610599908c908c908c90600401610fc5565b60206040518083038186803b1580156105b157600080fd5b505afa1580156105c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e99190610b89565b6106055760405162461bcd60e51b815260040161016290611174565b6003546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce9061063b908990899089908990600401611205565b60206040518083038186803b15801561065357600080fd5b505afa158015610667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068b9190610b89565b6106a75760405162461bcd60e51b815260040161016290611098565b6106e56040518060400160405280601c81526020017f4f564d5f53746174655472616e736974696f6e6572466163746f7279000000008152506104c5565b60015488516001600160a01b03928316926322d147029216908c6107088b610856565b6040518563ffffffff1660e01b81526004016107279493929190610f80565b602060405180830381600087803b15801561074157600080fd5b505af1158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190610b66565b60008a815260046020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b60005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e906107e090869033908690600401610fa6565b600060405180830381600087803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b5050505050505050505050505050565b6000908152600460205260409020546001600160a01b031690565b6000908152600460205260409020546001600160a01b0316151590565b60006108618261086f565b805190602001209050919050565b6060816000015182602001518360400151846060015185608001518660a001518760c001516040516020016108aa9796959493929190610efd565b6040516020818303038152906040529050919050565b803561054681611347565b600082601f8301126108db578081fd5b813567ffffffffffffffff8111156108f1578182fd5b610904601f8201601f19166020016112c3565b915080825283602082850101111561091b57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061054657600080fd5b600060a08284031215610954578081fd5b61095e60a06112c3565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561099c57600080fd5b6109a8848285016108cb565b60808301525092915050565b6000604082840312156109c5578081fd5b6109cf60406112c3565b90508135815260208083013567ffffffffffffffff8111156109f057600080fd5b8301601f81018513610a0157600080fd5b8035610a14610a0f826112ea565b6112c3565b8181528381019083850185840285018601891015610a3157600080fd5b600094505b83851015610a54578035835260019490940193918501918501610a36565b508085870152505050505092915050565b600060a08284031215610a76578081fd5b610a8060a06112c3565b90508135610a8d8161135c565b80825250602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561099c57600080fd5b600060e08284031215610ada578081fd5b610ae460e06112c3565b90508135815260208201356020820152610b018360408401610934565b6040820152610b1383606084016108c0565b6060820152610b2583608084016108c0565b608082015260a082013560a082015260c082013567ffffffffffffffff811115610b4e57600080fd5b610b5a848285016108cb565b60c08301525092915050565b600060208284031215610b77578081fd5b8151610b8281611347565b9392505050565b600060208284031215610b9a578081fd5b8151610b828161135c565b600060208284031215610bb6578081fd5b5035919050565b600060208284031215610bce578081fd5b5051919050565b60008060008060008060c08789031215610bed578182fd5b86359550602087013567ffffffffffffffff80821115610c0b578384fd5b610c178a838b01610943565b96506040890135915080821115610c2c578384fd5b610c388a838b016109b4565b9550606089013594506080890135915080821115610c54578384fd5b610c608a838b01610943565b935060a0890135915080821115610c75578283fd5b50610c8289828a016109b4565b9150509295509295509295565b600080600080600080600060e0888a031215610ca9578485fd5b87359650602088013567ffffffffffffffff80821115610cc7578687fd5b610cd38b838c01610943565b975060408a0135915080821115610ce8578687fd5b610cf48b838c016109b4565b965060608a0135915080821115610d09578283fd5b610d158b838c01610ac9565b955060808a0135915080821115610d2a578283fd5b610d368b838c01610a65565b945060a08a0135915080821115610d4b578283fd5b610d578b838c01610943565b935060c08a0135915080821115610d6c578283fd5b50610d798a828b016109b4565b91505092959891949750929550565b600060208284031215610d99578081fd5b813567ffffffffffffffff811115610daf578182fd5b610dbb848285016108cb565b949350505050565b60008060408385031215610dd5578182fd5b825191506020830151610de781611347565b809150509250929050565b6001600160a01b03169052565b60008151808452610e1781602086016020860161130a565b601f01601f19169290920160200192915050565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dbb60a0850182610dff565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015610eb35784518252938301936001929092019190830190610e93565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dbb60a0850182610dff565b600088825287602083015260028710610f1257fe5b8660f81b60408301526bffffffffffffffffffffffff19808760601b166041840152808660601b166055840152508360698301528251610f5981608985016020870161130a565b9190910160890198975050505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b9283526001600160a01b03919091166020830152604082015260600190565b600084825260606020830152610fde6060830185610e2b565b8281036040840152610ff08185610e68565b9695505050505050565b93845260208401929092526001600160a01b03166040830152606082015260800190565b600060208252610b826020830184610dff565b60208082526041908201527f5374617465207472616e736974696f6e2070726f63657373206d75737420626560408201527f20636f6d706c65746564207072696f7220746f2066696e616c697a6174696f6e6060820152601760f91b608082015260a00190565b60208082526024908201527f496e76616c6964207472616e73616374696f6e20696e636c7573696f6e20707260408201526337b7b31760e11b606082015260800190565b60208082526028908201527f496e76616c696420706f73742d737461746520726f6f7420696e636c7573696f6040820152673710383937b7b31760c11b606082015260800190565b60208082526030908201527f5374617465207472616e736974696f6e20686173206e6f74206265656e20707260408201526f37bb32b710333930bab23ab632b73a1760811b606082015260800190565b60208082526027908201527f496e76616c6964207072652d737461746520726f6f7420696e636c7573696f6e60408201526610383937b7b31760c91b606082015260800190565b6020808252601e908201527f496e76616c696420706f73742d737461746520726f6f7420696e6465782e0000604082015260600190565b600060208252610b826020830184610e2b565b60006080825285516080830152602086015160a0830152604086015161122a8161133a565b60c083015260608601516001600160a01b031660e08301526080860151611255610100840182610df2565b5060a086015161012083015260c086015160e061014084015261127c610160840182610dff565b905082810360208401526112908187610ebe565b905082810360408401526112a48186610e2b565b905082810360608401526112b88185610e68565b979650505050505050565b60405181810167ffffffffffffffff811182821017156112e257600080fd5b604052919050565b600067ffffffffffffffff821115611300578081fd5b5060209081020190565b60005b8381101561132557818101518382015260200161130d565b83811115611334576000848401525b50505050565b6002811061134457fe5b50565b6001600160a01b038116811461134457600080fd5b801515811461134457600080fdfea264697066735822122099b4be141879bf2d84edef99560fa69428ab6465669df24f0e9511b42a250b6c64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630a70476014610051578063461a44781461006657806398d8867d1461008f578063ffc0e2f4146100a2575b600080fd5b61006461005f366004610bd5565b6100b5565b005b610079610074366004610d88565b6104c5565b6040516100869190610f6c565b60405180910390f35b61006461009d366004610c8f565b61054c565b6100796100b0366004610ba5565b61081e565b8560005a60008981526004602081815260409283902054835163597d0e4f60e11b815293519495506001600160a01b031693849363b2fa1c9e93818101939291829003018186803b15801561010957600080fd5b505afa15801561011d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101419190610b89565b151560011461016b5760405162461bcd60e51b815260040161016290611031565b60405180910390fd5b865184516001909101146101915760405162461bcd60e51b8152600401610162906111bb565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee57906101c5908c908c908c90600401610fc5565b60206040518083038186803b1580156101dd57600080fd5b505afa1580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190610b89565b6102315760405162461bcd60e51b815260040161016290611174565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee579061026590899089908990600401610fc5565b60206040518083038186803b15801561027d57600080fd5b505afa158015610291573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b59190610b89565b6102d15760405162461bcd60e51b8152600401610162906110dc565b806001600160a01b031663c1c618b86040518163ffffffff1660e01b815260040160206040518083038186803b15801561030a57600080fd5b505afa15801561031e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103429190610bbd565b8614156103615760405162461bcd60e51b815260040161016290611124565b600254604051632e38626b60e21b81526001600160a01b039091169063b8e189ac906103919088906004016111f2565b600060405180830381600087803b1580156103ab57600080fd5b505af11580156103bf573d6000803e3d6000fd5b5050505060008086608001518060200190518101906103de9190610dc3565b6000548951604051630c34548960e11b81529395509193506001600160a01b031691631868a91291610419918f919086908890600401610ffa565b600060405180830381600087803b15801561043357600080fd5b505af1158015610447573d6000803e3d6000fd5b5050505050505060005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e9061048890869033908690600401610fa6565b600060405180830381600087803b1580156104a257600080fd5b505af11580156104b6573d6000803e3d6000fd5b50505050505050505050505050565b60015460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906104f690859060040161101e565b60206040518083038186803b15801561050e57600080fd5b505afa158015610522573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105469190610b66565b92915050565b8660005a905061055b89610839565b15610565576107a6565b600254604051634d69ee5760e01b81526001600160a01b0390911690634d69ee5790610599908c908c908c90600401610fc5565b60206040518083038186803b1580156105b157600080fd5b505afa1580156105c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e99190610b89565b6106055760405162461bcd60e51b815260040161016290611174565b6003546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce9061063b908990899089908990600401611205565b60206040518083038186803b15801561065357600080fd5b505afa158015610667573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068b9190610b89565b6106a75760405162461bcd60e51b815260040161016290611098565b6106e56040518060400160405280601c81526020017f4f564d5f53746174655472616e736974696f6e6572466163746f7279000000008152506104c5565b60015488516001600160a01b03928316926322d147029216908c6107088b610856565b6040518563ffffffff1660e01b81526004016107279493929190610f80565b602060405180830381600087803b15801561074157600080fd5b505af1158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190610b66565b60008a815260046020526040902080546001600160a01b0319166001600160a01b03929092169190911790555b60005a6000546040516357d7048760e11b815291840392506001600160a01b03169063afae090e906107e090869033908690600401610fa6565b600060405180830381600087803b1580156107fa57600080fd5b505af115801561080e573d6000803e3d6000fd5b5050505050505050505050505050565b6000908152600460205260409020546001600160a01b031690565b6000908152600460205260409020546001600160a01b0316151590565b60006108618261086f565b805190602001209050919050565b6060816000015182602001518360400151846060015185608001518660a001518760c001516040516020016108aa9796959493929190610efd565b6040516020818303038152906040529050919050565b803561054681611347565b600082601f8301126108db578081fd5b813567ffffffffffffffff8111156108f1578182fd5b610904601f8201601f19166020016112c3565b915080825283602082850101111561091b57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061054657600080fd5b600060a08284031215610954578081fd5b61095e60a06112c3565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561099c57600080fd5b6109a8848285016108cb565b60808301525092915050565b6000604082840312156109c5578081fd5b6109cf60406112c3565b90508135815260208083013567ffffffffffffffff8111156109f057600080fd5b8301601f81018513610a0157600080fd5b8035610a14610a0f826112ea565b6112c3565b8181528381019083850185840285018601891015610a3157600080fd5b600094505b83851015610a54578035835260019490940193918501918501610a36565b508085870152505050505092915050565b600060a08284031215610a76578081fd5b610a8060a06112c3565b90508135610a8d8161135c565b80825250602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff81111561099c57600080fd5b600060e08284031215610ada578081fd5b610ae460e06112c3565b90508135815260208201356020820152610b018360408401610934565b6040820152610b1383606084016108c0565b6060820152610b2583608084016108c0565b608082015260a082013560a082015260c082013567ffffffffffffffff811115610b4e57600080fd5b610b5a848285016108cb565b60c08301525092915050565b600060208284031215610b77578081fd5b8151610b8281611347565b9392505050565b600060208284031215610b9a578081fd5b8151610b828161135c565b600060208284031215610bb6578081fd5b5035919050565b600060208284031215610bce578081fd5b5051919050565b60008060008060008060c08789031215610bed578182fd5b86359550602087013567ffffffffffffffff80821115610c0b578384fd5b610c178a838b01610943565b96506040890135915080821115610c2c578384fd5b610c388a838b016109b4565b9550606089013594506080890135915080821115610c54578384fd5b610c608a838b01610943565b935060a0890135915080821115610c75578283fd5b50610c8289828a016109b4565b9150509295509295509295565b600080600080600080600060e0888a031215610ca9578485fd5b87359650602088013567ffffffffffffffff80821115610cc7578687fd5b610cd38b838c01610943565b975060408a0135915080821115610ce8578687fd5b610cf48b838c016109b4565b965060608a0135915080821115610d09578283fd5b610d158b838c01610ac9565b955060808a0135915080821115610d2a578283fd5b610d368b838c01610a65565b945060a08a0135915080821115610d4b578283fd5b610d578b838c01610943565b935060c08a0135915080821115610d6c578283fd5b50610d798a828b016109b4565b91505092959891949750929550565b600060208284031215610d99578081fd5b813567ffffffffffffffff811115610daf578182fd5b610dbb848285016108cb565b949350505050565b60008060408385031215610dd5578182fd5b825191506020830151610de781611347565b809150509250929050565b6001600160a01b03169052565b60008151808452610e1781602086016020860161130a565b601f01601f19169290920160200192915050565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dbb60a0850182610dff565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015610eb35784518252938301936001929092019190830190610e93565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a06080850152610dbb60a0850182610dff565b600088825287602083015260028710610f1257fe5b8660f81b60408301526bffffffffffffffffffffffff19808760601b166041840152808660601b166055840152508360698301528251610f5981608985016020870161130a565b9190910160890198975050505050505050565b6001600160a01b0391909116815260200190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b9283526001600160a01b03919091166020830152604082015260600190565b600084825260606020830152610fde6060830185610e2b565b8281036040840152610ff08185610e68565b9695505050505050565b93845260208401929092526001600160a01b03166040830152606082015260800190565b600060208252610b826020830184610dff565b60208082526041908201527f5374617465207472616e736974696f6e2070726f63657373206d75737420626560408201527f20636f6d706c65746564207072696f7220746f2066696e616c697a6174696f6e6060820152601760f91b608082015260a00190565b60208082526024908201527f496e76616c6964207472616e73616374696f6e20696e636c7573696f6e20707260408201526337b7b31760e11b606082015260800190565b60208082526028908201527f496e76616c696420706f73742d737461746520726f6f7420696e636c7573696f6040820152673710383937b7b31760c11b606082015260800190565b60208082526030908201527f5374617465207472616e736974696f6e20686173206e6f74206265656e20707260408201526f37bb32b710333930bab23ab632b73a1760811b606082015260800190565b60208082526027908201527f496e76616c6964207072652d737461746520726f6f7420696e636c7573696f6e60408201526610383937b7b31760c91b606082015260800190565b6020808252601e908201527f496e76616c696420706f73742d737461746520726f6f7420696e6465782e0000604082015260600190565b600060208252610b826020830184610e2b565b60006080825285516080830152602086015160a0830152604086015161122a8161133a565b60c083015260608601516001600160a01b031660e08301526080860151611255610100840182610df2565b5060a086015161012083015260c086015160e061014084015261127c610160840182610dff565b905082810360208401526112908187610ebe565b905082810360408401526112a48186610e2b565b905082810360608401526112b88185610e68565b979650505050505050565b60405181810167ffffffffffffffff811182821017156112e257600080fd5b604052919050565b600067ffffffffffffffff821115611300578081fd5b5060209081020190565b60005b8381101561132557818101518382015260200161130d565b83811115611334576000848401525b50505050565b6002811061134457fe5b50565b6001600160a01b038116811461134457600080fd5b801515811461134457600080fdfea264697066735822122099b4be141879bf2d84edef99560fa69428ab6465669df24f0e9511b42a250b6c64736f6c63430007000033",
"linkReferences": {},

@@ -363,3 +363,3 @@ "deployedLinkReferences": {},

{
"astId": 14584,
"astId": 14585,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_FraudVerifier.sol:OVM_FraudVerifier",

@@ -369,6 +369,6 @@ "label": "ovmBondManager",

"slot": "0",
"type": "t_contract(iOVM_BondManager)16494"
"type": "t_contract(iOVM_BondManager)16501"
},
{
"astId": 17088,
"astId": 17095,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_FraudVerifier.sol:OVM_FraudVerifier",

@@ -378,6 +378,6 @@ "label": "libAddressManager",

"slot": "1",
"type": "t_contract(Lib_AddressManager)17081"
"type": "t_contract(Lib_AddressManager)17088"
},
{
"astId": 14646,
"astId": 14647,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_FraudVerifier.sol:OVM_FraudVerifier",

@@ -387,6 +387,6 @@ "label": "ovmStateCommitmentChain",

"slot": "2",
"type": "t_contract(iOVM_StateCommitmentChain)15831"
"type": "t_contract(iOVM_StateCommitmentChain)15838"
},
{
"astId": 14648,
"astId": 14649,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_FraudVerifier.sol:OVM_FraudVerifier",

@@ -396,6 +396,6 @@ "label": "ovmCanonicalTransactionChain",

"slot": "3",
"type": "t_contract(iOVM_CanonicalTransactionChain)15757"
"type": "t_contract(iOVM_CanonicalTransactionChain)15764"
},
{
"astId": 14652,
"astId": 14653,
"contract": "contracts/optimistic-ethereum/OVM/verification/OVM_FraudVerifier.sol:OVM_FraudVerifier",

@@ -405,3 +405,3 @@ "label": "transitioners",

"slot": "4",
"type": "t_mapping(t_bytes32,t_contract(iOVM_StateTransitioner)16619)"
"type": "t_mapping(t_bytes32,t_contract(iOVM_StateTransitioner)16626)"
}

@@ -415,3 +415,3 @@ ],

},
"t_contract(Lib_AddressManager)17081": {
"t_contract(Lib_AddressManager)17088": {
"encoding": "inplace",

@@ -421,3 +421,3 @@ "label": "contract Lib_AddressManager",

},
"t_contract(iOVM_BondManager)16494": {
"t_contract(iOVM_BondManager)16501": {
"encoding": "inplace",

@@ -427,3 +427,3 @@ "label": "contract iOVM_BondManager",

},
"t_contract(iOVM_CanonicalTransactionChain)15757": {
"t_contract(iOVM_CanonicalTransactionChain)15764": {
"encoding": "inplace",

@@ -433,3 +433,3 @@ "label": "contract iOVM_CanonicalTransactionChain",

},
"t_contract(iOVM_StateCommitmentChain)15831": {
"t_contract(iOVM_StateCommitmentChain)15838": {
"encoding": "inplace",

@@ -439,3 +439,3 @@ "label": "contract iOVM_StateCommitmentChain",

},
"t_contract(iOVM_StateTransitioner)16619": {
"t_contract(iOVM_StateTransitioner)16626": {
"encoding": "inplace",

@@ -445,3 +445,3 @@ "label": "contract iOVM_StateTransitioner",

},
"t_mapping(t_bytes32,t_contract(iOVM_StateTransitioner)16619)": {
"t_mapping(t_bytes32,t_contract(iOVM_StateTransitioner)16626)": {
"encoding": "mapping",

@@ -451,3 +451,3 @@ "key": "t_bytes32",

"numberOfBytes": "32",
"value": "t_contract(iOVM_StateTransitioner)16619"
"value": "t_contract(iOVM_StateTransitioner)16626"
}

@@ -454,0 +454,0 @@ }

@@ -273,4 +273,4 @@ {

],
"bytecode": "0x60806040523480156200001157600080fd5b5060405162002387380380620023878339810160408190526200003491620001a1565b600580546001600160a01b0319166001600160a01b03831617905560408051808201909152601d81527f4f564d5f43616e6f6e6963616c5472616e73616374696f6e436861696e00000060208201526200008e9062000114565b600680546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152601881527f4f564d5f5374617465436f6d6d69746d656e74436861696e00000000000000006020820152620000ed9062000114565b600780546001600160a01b0319166001600160a01b03929092169190911790555062000227565b60055460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19062000147908590600401620001d1565b60206040518083038186803b1580156200016057600080fd5b505afa15801562000175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019b9190620001a1565b92915050565b600060208284031215620001b3578081fd5b81516001600160a01b0381168114620001ca578182fd5b9392505050565b6000602080835283518082850152825b81811015620001ff57858101830151858201604001528201620001e1565b81811115620002115783604083870101525b50601f01601f1916929092016040019392505050565b61215080620002376000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063706ceab611610066578063706ceab6146100fe57806382e3702d14610111578063b1b1b20914610124578063d7fd19dd14610137578063ecc704281461014a57610093565b806321d800ec146100985780633eae0ae0146100c1578063461a4478146100d65780636e296e45146100f6575b600080fd5b6100ab6100a636600461190b565b61015f565b6040516100b89190611af6565b60405180910390f35b6100d46100cf366004611894565b610174565b005b6100e96100e4366004611923565b6101c3565b6040516100b89190611a7e565b6100e961024a565b6100d461010c36600461180d565b610259565b6100ab61011f36600461190b565b6102c9565b6100ab61013236600461190b565b6102de565b6100d46101453660046116da565b6102f3565b610152610463565b6040516100b891906119df565b60006020819052908152604090205460ff1681565b6060610184843385600354610469565b905061019081836104b6565b6003805460019081019091558151602092830120600090815260029092526040909120805460ff19169091179055505050565b60055460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906101f4908590600401611b78565b60206040518083038186803b15801561020c57600080fd5b505afa158015610220573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024491906116be565b92915050565b6004546001600160a01b031681565b606061026786868686610469565b805160208083019190912060009081526002909152604090205490915060ff1615156001146102b15760405162461bcd60e51b81526004016102a890611cab565b60405180910390fd5b6102c1818363ffffffff166104b6565b505050505050565b60026020526000908152604090205460ff1681565b60016020526000908152604090205460ff1681565b606061030186868686610469565b905061030d8183610556565b151560011461032e5760405162461bcd60e51b81526004016102a890611e11565b805160208083019190912060009081526001909152604090205460ff16156103685760405162461bcd60e51b81526004016102a890611c60565b600480546001600160a01b0319166001600160a01b038781169190911790915560405160009188169061039c9087906119f6565b6000604051808303816000865af19150503d80600081146103d9576040519150601f19603f3d011682016040523d82523d6000602084013e6103de565b606091505b509091505060018115151415610414578151602080840191909120600090815260019182905260409020805460ff191690911790555b600082334360405160200161042b93929190611a44565b60408051601f1981840301815291815281516020928301206000908152918290529020805460ff191660011790555050505050505050565b60035481565b6060848484846040516024016104829493929190611a92565b60408051601f198184030181529190526020810180516001600160e01b031663cbd4ece960e01b1790529050949350505050565b60065460408051808201909152601a81527f4f564d5f4c3243726f7373446f6d61696e4d657373656e67657200000000000060208201526001600160a01b0390911690636fee07e090610508906101c3565b83856040518463ffffffff1660e01b815260040161052893929190611acf565b600060405180830381600087803b15801561054257600080fd5b505af11580156102c1573d6000803e3d6000fd5b600061056182610579565b801561057257506105728383610694565b9392505050565b6007546020820151604051639418bddd60e01b81526000926001600160a01b031691639418bddd916105ae9190600401612078565b60206040518083038186803b1580156105c657600080fd5b505afa1580156105da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fe91906118eb565b1580156102445750600754825160208401516040808601519051634d69ee5760e01b81526001600160a01b0390941693634d69ee57936106449390929091600401611b01565b60206040518083038186803b15801561065c57600080fd5b505afa158015610670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024491906118eb565b600080836106d66040518060400160405280601a81526020017f4f564d5f4c3243726f7373446f6d61696e4d657373656e6765720000000000008152506101c3565b6040516020016106e7929190611a12565b6040516020818303038152906040528051906020012060006040516020016107109291906119e8565b60405160208183030381529060405280519060200120905060006060610760602160991b60405160200161074491906119c7565b60408051601f19818403018152919052606087015187516107f8565b90925090506001821515146107875760405162461bcd60e51b81526004016102a890611fcd565b61078f6114d8565b61079882610820565b90506107ed846040516020016107ae91906119df565b60405160208183030381529060405260016040516020016107cf91906119df565b604051602081830303815290604052886080015184604001516108b2565b979650505050505050565b6000606080610806866108d7565b9050610813818686610907565b9250925050935093915050565b6108286114d8565b6060610833836109a5565b9050604051806080016040528061085d8360008151811061085057fe5b60200260200101516109b8565b81526020016108728360018151811061085057fe5b81526020016108948360028151811061088757fe5b60200260200101516109bf565b81526020016108a98360038151811061088757fe5b90529392505050565b600060606108bf866108d7565b90506108cd81868686610a4e565b9695505050505050565b606081805190602001206040516020016108f191906119df565b6040516020818303038152906040529050919050565b600060608061091585610a74565b9050600060606000610928848a89610b4a565b8151929550909350915015808061093c5750815b6109585760405162461bcd60e51b81526004016102a890611bf9565b6060816109745760405180602001604052806000815250610993565b61099386600187038151811061098657fe5b6020026020010151610df9565b919b919a509098505050505050505050565b60606102446109b383610e15565b610e3a565b6000610244825b60006021826000015111156109e65760405162461bcd60e51b81526004016102a890611dda565b60008060006109f485610f5c565b919450925090506000816001811115610a0957fe5b14610a265760405162461bcd60e51b81526004016102a890611dda565b6020808601518401805190918410156108cd5760208490036101000a90049695505050505050565b6000806060610a5e878686610907565b915091508180156107ed57506107ed8682611119565b606080610a80836109a5565b90506060815167ffffffffffffffff81118015610a9c57600080fd5b50604051908082528060200260200182016040528015610ad657816020015b610ac36114ff565b815260200190600190039081610abb5790505b50905060005b8251811015610b42576060610b03848381518110610af657fe5b602002602001015161112f565b90506040518060400160405280828152602001610b1f836109a5565b815250838381518110610b2e57fe5b602090810291909101015250600101610adc565b509392505050565b60006060818082610b5a87611189565b905085600080610b686114ff565b60005b8c51811015610dd1578c8181518110610b8057fe5b6020026020010151915082840193506001870196508360001415610bcb57815180516020909101208514610bc65760405162461bcd60e51b81526004016102a890611fa2565b610c28565b815151602011610bfd57815180516020909101208514610bc65760405162461bcd60e51b81526004016102a890611b8b565b84610c0b8360000151611285565b14610c285760405162461bcd60e51b81526004016102a890611f34565b60208201515160111415610c97578551841415610c4457610dd1565b6000868581518110610c5257fe5b016020015160f81c9050610c64611519565b83602001518260ff1681518110610c7757fe5b60200260200101519050610c8a8161128c565b9650600194505050610dc9565b60028260200151511415610db1576060610cb0836112c2565b9050600081600081518110610cc157fe5b016020015160f81c9050600181166002036060610ce18460ff84166112e0565b90506060610cef8b8a6112e0565b90506000610cfd8383611311565b905060ff851660021480610d14575060ff85166003145b15610d4657808351148015610d295750808251145b15610d3357988901985b50600160ff1b9950610dd1945050505050565b60ff85161580610d59575060ff85166001145b15610da65780610d765750600160ff1b9950610dd1945050505050565b610d978860200151600181518110610d8a57fe5b602002602001015161128c565b9a509750610dc9945050505050565b505050505050610dc9565b60405162461bcd60e51b81526004016102a890611cf6565b600101610b6b565b50600160ff1b841486610de487866112e0565b909e909d50909b509950505050505050505050565b60208101518051606091610244916000198101908110610af657fe5b610e1d611519565b506040805180820190915281518152602082810190820152919050565b6060600080610e4884610f5c565b91935090915060019050816001811115610e5e57fe5b14610e7b5760405162461bcd60e51b81526004016102a890611e58565b6040805160208082526104208201909252606091816020015b610e9c611519565b815260200190600190039081610e945790505090506000835b8651811015610f515760208210610ede5760405162461bcd60e51b81526004016102a890611d64565b600080610f0a6040518060400160405280858c60000151038152602001858c6020015101815250610f5c565b509150915060405180604001604052808383018152602001848b6020015101815250858581518110610f3857fe5b6020908102919091010152600193909301920101610eb5565b508152949350505050565b600080600080846000015111610f845760405162461bcd60e51b81526004016102a890611ec6565b6020840151805160001a607f8111610fa9576000600160009450945094505050611112565b60b78111610fe9578551607f198201908110610fd75760405162461bcd60e51b81526004016102a890611e8f565b60019550935060009250611112915050565b60bf811161106357855160b61982019081106110175760405162461bcd60e51b81526004016102a890611d2d565b6000816020036101000a600185015104905080820188600001511161104e5760405162461bcd60e51b81526004016102a890611efd565b60019091019550935060009250611112915050565b60f781116110a257855160bf1982019081106110915760405162461bcd60e51b81526004016102a890612041565b600195509350849250611112915050565b855160f61982019081106110c85760405162461bcd60e51b81526004016102a890611bc2565b6000816020036101000a60018501510490508082018860000151116110ff5760405162461bcd60e51b81526004016102a890611c30565b6001918201965094509250611112915050565b9193909250565b8051602091820120825192909101919091201490565b6060600080600061113f85610f5c565b91945092509050600081600181111561115457fe5b146111715760405162461bcd60e51b81526004016102a890611f6b565b61118085602001518484611377565b95945050505050565b606080825160020267ffffffffffffffff811180156111a757600080fd5b506040519080825280601f01601f1916602001820160405280156111d2576020820181803683370190505b50905060005b835181101561127e5760048482815181106111ef57fe5b602001015160f81c60f81b6001600160f81b031916901c82826002028151811061121557fe5b60200101906001600160f81b031916908160001a905350601084828151811061123a57fe5b016020015160f81c8161124957fe5b0660f81b82826002026001018151811061125f57fe5b60200101906001600160f81b031916908160001a9053506001016111d8565b5092915050565b6020015190565b600060606020836000015110156112ad576112a683611424565b90506112b9565b6112b68361112f565b90505b61057281611285565b60606102446112db8360200151600081518110610af657fe5b611189565b606081835103600014156113035750604080516020810190915260008152610244565b61057283838486510361142f565b6000805b8084511180156113255750808351115b801561136a575082818151811061133857fe5b602001015160f81c60f81b6001600160f81b03191684828151811061135957fe5b01602001516001600160f81b031916145b1561057257600101611315565b6060808267ffffffffffffffff8111801561139157600080fd5b506040519080825280601f01601f1916602001820160405280156113bc576020820181803683370190505b5090508051600014156113d0579050610572565b8484016020820160005b602086048110156113fb5782518252602092830192909101906001016113da565b5080519151601f959095166020036101000a600019019182169119909416179092525092915050565b6060610244826114c2565b6060818301845110156114545760405162461bcd60e51b81526004016102a890611dae565b60608215801561146f576040519150602082016040526114b9565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156114a8578051835260209283019201611490565b5050858452601f01601f1916604052505b50949350505050565b6060610244826020015160008460000151611377565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528060608152602001606081525090565b604051806040016040528060008152602001600081525090565b600082601f830112611543578081fd5b813567ffffffffffffffff811115611559578182fd5b61156c601f8201601f191660200161208b565b915080825283602082850101111561158357600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156115ad578081fd5b6115b760a061208b565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156115f557600080fd5b61160184828501611533565b60808301525092915050565b60006040828403121561161e578081fd5b611628604061208b565b90508135815260208083013567ffffffffffffffff81111561164957600080fd5b8301601f8101851361165a57600080fd5b803561166d611668826120b2565b61208b565b818152838101908385018584028501860189101561168a57600080fd5b600094505b838510156116ad57803583526001949094019391850191850161168f565b508085870152505050505092915050565b6000602082840312156116cf578081fd5b815161057281612102565b600080600080600060a086880312156116f1578081fd5b85356116fc81612102565b9450602086013561170c81612102565b9350604086013567ffffffffffffffff80821115611728578283fd5b61173489838a01611533565b9450606088013593506080880135915080821115611750578283fd5b9087019060a0828a031215611763578283fd5b61176d60a061208b565b82358152602083013582811115611782578485fd5b61178e8b82860161159c565b6020830152506040830135828111156117a5578485fd5b6117b18b82860161160d565b6040830152506060830135828111156117c8578485fd5b6117d48b828601611533565b6060830152506080830135828111156117eb578485fd5b6117f78b828601611533565b6080830152508093505050509295509295909350565b600080600080600060a08688031215611824578081fd5b853561182f81612102565b9450602086013561183f81612102565b9350604086013567ffffffffffffffff81111561185a578182fd5b61186688828901611533565b93505060608601359150608086013563ffffffff81168114611886578182fd5b809150509295509295909350565b6000806000606084860312156118a8578283fd5b83356118b381612102565b9250602084013567ffffffffffffffff8111156118ce578283fd5b6118da86828701611533565b925050604084013590509250925092565b6000602082840312156118fc578081fd5b81518015158114610572578182fd5b60006020828403121561191c578081fd5b5035919050565b600060208284031215611934578081fd5b813567ffffffffffffffff81111561194a578182fd5b61195684828501611533565b949350505050565b600081518084526119768160208601602086016120d2565b601f01601f19169290920160200192915050565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261195660a085018261195e565b60609190911b6001600160601b031916815260140190565b90815260200190565b918252602082015260400190565b60008251611a088184602087016120d2565b9190910192915050565b60008351611a248184602088016120d2565b60609390931b6001600160601b0319169190920190815260140192915050565b60008451611a568184602089016120d2565b60609490941b6001600160601b03191691909301908152601481019190915260340192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152608060408201819052600090611abe9083018561195e565b905082606083015295945050505050565b600060018060a01b038516825283602083015260606040830152611180606083018461195e565b901515815260200190565b60008482526020606081840152611b1b606084018661198a565b838103604085015260408101855182528286015160408484015281815180845260608501915085830194508693505b80841015611b6a5784518252938501936001939093019290850190611b4a565b509998505050505050505050565b600060208252610572602083018461195e565b6020808252601b908201527f496e76616c6964206c6172676520696e7465726e616c20686173680000000000604082015260600190565b6020808252601d908201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e000000604082015260600190565b6020808252601a908201527f50726f76696465642070726f6f6620697320696e76616c69642e000000000000604082015260600190565b60208082526016908201527524b73b30b634b210292628103637b733903634b9ba1760511b604082015260600190565b6020808252602b908201527f50726f7669646564206d6573736167652068617320616c72656164792062656560408201526a37103932b1b2b4bb32b21760a91b606082015260800190565b6020808252602b908201527f50726f7669646564206d65737361676520686173206e6f7420616c726561647960408201526a103132b2b71039b2b73a1760a91b606082015260800190565b6020808252601d908201527f526563656976656420616e20756e706172736561626c65206e6f64652e000000604082015260600190565b6020808252601f908201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e00604082015260600190565b6020808252602a908201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960408201526939ba103632b733ba341760b11b606082015260800190565b60208082526012908201527152656164206f7574206f6620626f756e647360701b604082015260600190565b6020808252601a908201527f496e76616c696420524c5020627974657333322076616c75652e000000000000604082015260600190565b60208082526027908201527f50726f7669646564206d65737361676520636f756c64206e6f742062652076656040820152663934b334b2b21760c91b606082015260800190565b60208082526017908201527f496e76616c696420524c50206c6973742076616c75652e000000000000000000604082015260600190565b60208082526019908201527f496e76616c696420524c502073686f727420737472696e672e00000000000000604082015260600190565b60208082526018908201527f524c50206974656d2063616e6e6f74206265206e756c6c2e0000000000000000604082015260600190565b60208082526018908201527f496e76616c696420524c50206c6f6e6720737472696e672e0000000000000000604082015260600190565b6020808252601a908201527f496e76616c696420696e7465726e616c206e6f64652068617368000000000000604082015260600190565b60208082526018908201527f496e76616c696420524c502062797465732076616c75652e0000000000000000604082015260600190565b602080825260119082015270092dcecc2d8d2c840e4dedee840d0c2e6d607b1b604082015260600190565b6020808252604e908201527f4d6573736167652070617373696e6720707265636f6d70696c6520686173206e60408201527f6f74206265656e20696e697469616c697a6564206f7220696e76616c6964207060608201526d3937b7b310383937bb34b232b21760911b608082015260a00190565b60208082526017908201527f496e76616c696420524c502073686f7274206c6973742e000000000000000000604082015260600190565b600060208252610572602083018461198a565b60405181810167ffffffffffffffff811182821017156120aa57600080fd5b604052919050565b600067ffffffffffffffff8211156120c8578081fd5b5060209081020190565b60005b838110156120ed5781810151838201526020016120d5565b838111156120fc576000848401525b50505050565b6001600160a01b038116811461211757600080fd5b5056fea264697066735822122094bf55d6fe350bb9ae7bd6f1a15b1916e9e827ef829363be113c9505e2b7d06e64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063706ceab611610066578063706ceab6146100fe57806382e3702d14610111578063b1b1b20914610124578063d7fd19dd14610137578063ecc704281461014a57610093565b806321d800ec146100985780633eae0ae0146100c1578063461a4478146100d65780636e296e45146100f6575b600080fd5b6100ab6100a636600461190b565b61015f565b6040516100b89190611af6565b60405180910390f35b6100d46100cf366004611894565b610174565b005b6100e96100e4366004611923565b6101c3565b6040516100b89190611a7e565b6100e961024a565b6100d461010c36600461180d565b610259565b6100ab61011f36600461190b565b6102c9565b6100ab61013236600461190b565b6102de565b6100d46101453660046116da565b6102f3565b610152610463565b6040516100b891906119df565b60006020819052908152604090205460ff1681565b6060610184843385600354610469565b905061019081836104b6565b6003805460019081019091558151602092830120600090815260029092526040909120805460ff19169091179055505050565b60055460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906101f4908590600401611b78565b60206040518083038186803b15801561020c57600080fd5b505afa158015610220573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024491906116be565b92915050565b6004546001600160a01b031681565b606061026786868686610469565b805160208083019190912060009081526002909152604090205490915060ff1615156001146102b15760405162461bcd60e51b81526004016102a890611cab565b60405180910390fd5b6102c1818363ffffffff166104b6565b505050505050565b60026020526000908152604090205460ff1681565b60016020526000908152604090205460ff1681565b606061030186868686610469565b905061030d8183610556565b151560011461032e5760405162461bcd60e51b81526004016102a890611e11565b805160208083019190912060009081526001909152604090205460ff16156103685760405162461bcd60e51b81526004016102a890611c60565b600480546001600160a01b0319166001600160a01b038781169190911790915560405160009188169061039c9087906119f6565b6000604051808303816000865af19150503d80600081146103d9576040519150601f19603f3d011682016040523d82523d6000602084013e6103de565b606091505b509091505060018115151415610414578151602080840191909120600090815260019182905260409020805460ff191690911790555b600082334360405160200161042b93929190611a44565b60408051601f1981840301815291815281516020928301206000908152918290529020805460ff191660011790555050505050505050565b60035481565b6060848484846040516024016104829493929190611a92565b60408051601f198184030181529190526020810180516001600160e01b031663cbd4ece960e01b1790529050949350505050565b60065460408051808201909152601a81527f4f564d5f4c3243726f7373446f6d61696e4d657373656e67657200000000000060208201526001600160a01b0390911690636fee07e090610508906101c3565b83856040518463ffffffff1660e01b815260040161052893929190611acf565b600060405180830381600087803b15801561054257600080fd5b505af11580156102c1573d6000803e3d6000fd5b600061056182610579565b801561057257506105728383610694565b9392505050565b6007546020820151604051639418bddd60e01b81526000926001600160a01b031691639418bddd916105ae9190600401612078565b60206040518083038186803b1580156105c657600080fd5b505afa1580156105da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fe91906118eb565b1580156102445750600754825160208401516040808601519051634d69ee5760e01b81526001600160a01b0390941693634d69ee57936106449390929091600401611b01565b60206040518083038186803b15801561065c57600080fd5b505afa158015610670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024491906118eb565b600080836106d66040518060400160405280601a81526020017f4f564d5f4c3243726f7373446f6d61696e4d657373656e6765720000000000008152506101c3565b6040516020016106e7929190611a12565b6040516020818303038152906040528051906020012060006040516020016107109291906119e8565b60405160208183030381529060405280519060200120905060006060610760602160991b60405160200161074491906119c7565b60408051601f19818403018152919052606087015187516107f8565b90925090506001821515146107875760405162461bcd60e51b81526004016102a890611fcd565b61078f6114d8565b61079882610820565b90506107ed846040516020016107ae91906119df565b60405160208183030381529060405260016040516020016107cf91906119df565b604051602081830303815290604052886080015184604001516108b2565b979650505050505050565b6000606080610806866108d7565b9050610813818686610907565b9250925050935093915050565b6108286114d8565b6060610833836109a5565b9050604051806080016040528061085d8360008151811061085057fe5b60200260200101516109b8565b81526020016108728360018151811061085057fe5b81526020016108948360028151811061088757fe5b60200260200101516109bf565b81526020016108a98360038151811061088757fe5b90529392505050565b600060606108bf866108d7565b90506108cd81868686610a4e565b9695505050505050565b606081805190602001206040516020016108f191906119df565b6040516020818303038152906040529050919050565b600060608061091585610a74565b9050600060606000610928848a89610b4a565b8151929550909350915015808061093c5750815b6109585760405162461bcd60e51b81526004016102a890611bf9565b6060816109745760405180602001604052806000815250610993565b61099386600187038151811061098657fe5b6020026020010151610df9565b919b919a509098505050505050505050565b60606102446109b383610e15565b610e3a565b6000610244825b60006021826000015111156109e65760405162461bcd60e51b81526004016102a890611dda565b60008060006109f485610f5c565b919450925090506000816001811115610a0957fe5b14610a265760405162461bcd60e51b81526004016102a890611dda565b6020808601518401805190918410156108cd5760208490036101000a90049695505050505050565b6000806060610a5e878686610907565b915091508180156107ed57506107ed8682611119565b606080610a80836109a5565b90506060815167ffffffffffffffff81118015610a9c57600080fd5b50604051908082528060200260200182016040528015610ad657816020015b610ac36114ff565b815260200190600190039081610abb5790505b50905060005b8251811015610b42576060610b03848381518110610af657fe5b602002602001015161112f565b90506040518060400160405280828152602001610b1f836109a5565b815250838381518110610b2e57fe5b602090810291909101015250600101610adc565b509392505050565b60006060818082610b5a87611189565b905085600080610b686114ff565b60005b8c51811015610dd1578c8181518110610b8057fe5b6020026020010151915082840193506001870196508360001415610bcb57815180516020909101208514610bc65760405162461bcd60e51b81526004016102a890611fa2565b610c28565b815151602011610bfd57815180516020909101208514610bc65760405162461bcd60e51b81526004016102a890611b8b565b84610c0b8360000151611285565b14610c285760405162461bcd60e51b81526004016102a890611f34565b60208201515160111415610c97578551841415610c4457610dd1565b6000868581518110610c5257fe5b016020015160f81c9050610c64611519565b83602001518260ff1681518110610c7757fe5b60200260200101519050610c8a8161128c565b9650600194505050610dc9565b60028260200151511415610db1576060610cb0836112c2565b9050600081600081518110610cc157fe5b016020015160f81c9050600181166002036060610ce18460ff84166112e0565b90506060610cef8b8a6112e0565b90506000610cfd8383611311565b905060ff851660021480610d14575060ff85166003145b15610d4657808351148015610d295750808251145b15610d3357988901985b50600160ff1b9950610dd1945050505050565b60ff85161580610d59575060ff85166001145b15610da65780610d765750600160ff1b9950610dd1945050505050565b610d978860200151600181518110610d8a57fe5b602002602001015161128c565b9a509750610dc9945050505050565b505050505050610dc9565b60405162461bcd60e51b81526004016102a890611cf6565b600101610b6b565b50600160ff1b841486610de487866112e0565b909e909d50909b509950505050505050505050565b60208101518051606091610244916000198101908110610af657fe5b610e1d611519565b506040805180820190915281518152602082810190820152919050565b6060600080610e4884610f5c565b91935090915060019050816001811115610e5e57fe5b14610e7b5760405162461bcd60e51b81526004016102a890611e58565b6040805160208082526104208201909252606091816020015b610e9c611519565b815260200190600190039081610e945790505090506000835b8651811015610f515760208210610ede5760405162461bcd60e51b81526004016102a890611d64565b600080610f0a6040518060400160405280858c60000151038152602001858c6020015101815250610f5c565b509150915060405180604001604052808383018152602001848b6020015101815250858581518110610f3857fe5b6020908102919091010152600193909301920101610eb5565b508152949350505050565b600080600080846000015111610f845760405162461bcd60e51b81526004016102a890611ec6565b6020840151805160001a607f8111610fa9576000600160009450945094505050611112565b60b78111610fe9578551607f198201908110610fd75760405162461bcd60e51b81526004016102a890611e8f565b60019550935060009250611112915050565b60bf811161106357855160b61982019081106110175760405162461bcd60e51b81526004016102a890611d2d565b6000816020036101000a600185015104905080820188600001511161104e5760405162461bcd60e51b81526004016102a890611efd565b60019091019550935060009250611112915050565b60f781116110a257855160bf1982019081106110915760405162461bcd60e51b81526004016102a890612041565b600195509350849250611112915050565b855160f61982019081106110c85760405162461bcd60e51b81526004016102a890611bc2565b6000816020036101000a60018501510490508082018860000151116110ff5760405162461bcd60e51b81526004016102a890611c30565b6001918201965094509250611112915050565b9193909250565b8051602091820120825192909101919091201490565b6060600080600061113f85610f5c565b91945092509050600081600181111561115457fe5b146111715760405162461bcd60e51b81526004016102a890611f6b565b61118085602001518484611377565b95945050505050565b606080825160020267ffffffffffffffff811180156111a757600080fd5b506040519080825280601f01601f1916602001820160405280156111d2576020820181803683370190505b50905060005b835181101561127e5760048482815181106111ef57fe5b602001015160f81c60f81b6001600160f81b031916901c82826002028151811061121557fe5b60200101906001600160f81b031916908160001a905350601084828151811061123a57fe5b016020015160f81c8161124957fe5b0660f81b82826002026001018151811061125f57fe5b60200101906001600160f81b031916908160001a9053506001016111d8565b5092915050565b6020015190565b600060606020836000015110156112ad576112a683611424565b90506112b9565b6112b68361112f565b90505b61057281611285565b60606102446112db8360200151600081518110610af657fe5b611189565b606081835103600014156113035750604080516020810190915260008152610244565b61057283838486510361142f565b6000805b8084511180156113255750808351115b801561136a575082818151811061133857fe5b602001015160f81c60f81b6001600160f81b03191684828151811061135957fe5b01602001516001600160f81b031916145b1561057257600101611315565b6060808267ffffffffffffffff8111801561139157600080fd5b506040519080825280601f01601f1916602001820160405280156113bc576020820181803683370190505b5090508051600014156113d0579050610572565b8484016020820160005b602086048110156113fb5782518252602092830192909101906001016113da565b5080519151601f959095166020036101000a600019019182169119909416179092525092915050565b6060610244826114c2565b6060818301845110156114545760405162461bcd60e51b81526004016102a890611dae565b60608215801561146f576040519150602082016040526114b9565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156114a8578051835260209283019201611490565b5050858452601f01601f1916604052505b50949350505050565b6060610244826020015160008460000151611377565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528060608152602001606081525090565b604051806040016040528060008152602001600081525090565b600082601f830112611543578081fd5b813567ffffffffffffffff811115611559578182fd5b61156c601f8201601f191660200161208b565b915080825283602082850101111561158357600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156115ad578081fd5b6115b760a061208b565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156115f557600080fd5b61160184828501611533565b60808301525092915050565b60006040828403121561161e578081fd5b611628604061208b565b90508135815260208083013567ffffffffffffffff81111561164957600080fd5b8301601f8101851361165a57600080fd5b803561166d611668826120b2565b61208b565b818152838101908385018584028501860189101561168a57600080fd5b600094505b838510156116ad57803583526001949094019391850191850161168f565b508085870152505050505092915050565b6000602082840312156116cf578081fd5b815161057281612102565b600080600080600060a086880312156116f1578081fd5b85356116fc81612102565b9450602086013561170c81612102565b9350604086013567ffffffffffffffff80821115611728578283fd5b61173489838a01611533565b9450606088013593506080880135915080821115611750578283fd5b9087019060a0828a031215611763578283fd5b61176d60a061208b565b82358152602083013582811115611782578485fd5b61178e8b82860161159c565b6020830152506040830135828111156117a5578485fd5b6117b18b82860161160d565b6040830152506060830135828111156117c8578485fd5b6117d48b828601611533565b6060830152506080830135828111156117eb578485fd5b6117f78b828601611533565b6080830152508093505050509295509295909350565b600080600080600060a08688031215611824578081fd5b853561182f81612102565b9450602086013561183f81612102565b9350604086013567ffffffffffffffff81111561185a578182fd5b61186688828901611533565b93505060608601359150608086013563ffffffff81168114611886578182fd5b809150509295509295909350565b6000806000606084860312156118a8578283fd5b83356118b381612102565b9250602084013567ffffffffffffffff8111156118ce578283fd5b6118da86828701611533565b925050604084013590509250925092565b6000602082840312156118fc578081fd5b81518015158114610572578182fd5b60006020828403121561191c578081fd5b5035919050565b600060208284031215611934578081fd5b813567ffffffffffffffff81111561194a578182fd5b61195684828501611533565b949350505050565b600081518084526119768160208601602086016120d2565b601f01601f19169290920160200192915050565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261195660a085018261195e565b60609190911b6001600160601b031916815260140190565b90815260200190565b918252602082015260400190565b60008251611a088184602087016120d2565b9190910192915050565b60008351611a248184602088016120d2565b60609390931b6001600160601b0319169190920190815260140192915050565b60008451611a568184602089016120d2565b60609490941b6001600160601b03191691909301908152601481019190915260340192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152608060408201819052600090611abe9083018561195e565b905082606083015295945050505050565b600060018060a01b038516825283602083015260606040830152611180606083018461195e565b901515815260200190565b60008482526020606081840152611b1b606084018661198a565b838103604085015260408101855182528286015160408484015281815180845260608501915085830194508693505b80841015611b6a5784518252938501936001939093019290850190611b4a565b509998505050505050505050565b600060208252610572602083018461195e565b6020808252601b908201527f496e76616c6964206c6172676520696e7465726e616c20686173680000000000604082015260600190565b6020808252601d908201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e000000604082015260600190565b6020808252601a908201527f50726f76696465642070726f6f6620697320696e76616c69642e000000000000604082015260600190565b60208082526016908201527524b73b30b634b210292628103637b733903634b9ba1760511b604082015260600190565b6020808252602b908201527f50726f7669646564206d6573736167652068617320616c72656164792062656560408201526a37103932b1b2b4bb32b21760a91b606082015260800190565b6020808252602b908201527f50726f7669646564206d65737361676520686173206e6f7420616c726561647960408201526a103132b2b71039b2b73a1760a91b606082015260800190565b6020808252601d908201527f526563656976656420616e20756e706172736561626c65206e6f64652e000000604082015260600190565b6020808252601f908201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e00604082015260600190565b6020808252602a908201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960408201526939ba103632b733ba341760b11b606082015260800190565b60208082526012908201527152656164206f7574206f6620626f756e647360701b604082015260600190565b6020808252601a908201527f496e76616c696420524c5020627974657333322076616c75652e000000000000604082015260600190565b60208082526027908201527f50726f7669646564206d65737361676520636f756c64206e6f742062652076656040820152663934b334b2b21760c91b606082015260800190565b60208082526017908201527f496e76616c696420524c50206c6973742076616c75652e000000000000000000604082015260600190565b60208082526019908201527f496e76616c696420524c502073686f727420737472696e672e00000000000000604082015260600190565b60208082526018908201527f524c50206974656d2063616e6e6f74206265206e756c6c2e0000000000000000604082015260600190565b60208082526018908201527f496e76616c696420524c50206c6f6e6720737472696e672e0000000000000000604082015260600190565b6020808252601a908201527f496e76616c696420696e7465726e616c206e6f64652068617368000000000000604082015260600190565b60208082526018908201527f496e76616c696420524c502062797465732076616c75652e0000000000000000604082015260600190565b602080825260119082015270092dcecc2d8d2c840e4dedee840d0c2e6d607b1b604082015260600190565b6020808252604e908201527f4d6573736167652070617373696e6720707265636f6d70696c6520686173206e60408201527f6f74206265656e20696e697469616c697a6564206f7220696e76616c6964207060608201526d3937b7b310383937bb34b232b21760911b608082015260a00190565b60208082526017908201527f496e76616c696420524c502073686f7274206c6973742e000000000000000000604082015260600190565b600060208252610572602083018461198a565b60405181810167ffffffffffffffff811182821017156120aa57600080fd5b604052919050565b600067ffffffffffffffff8211156120c8578081fd5b5060209081020190565b60005b838110156120ed5781810151838201526020016120d5565b838111156120fc576000848401525b50505050565b6001600160a01b038116811461211757600080fd5b5056fea264697066735822122094bf55d6fe350bb9ae7bd6f1a15b1916e9e827ef829363be113c9505e2b7d06e64736f6c63430007000033",
"bytecode": "0x60806040523480156200001157600080fd5b5060405162002387380380620023878339810160408190526200003491620001a1565b600580546001600160a01b0319166001600160a01b03831617905560408051808201909152601d81527f4f564d5f43616e6f6e6963616c5472616e73616374696f6e436861696e00000060208201526200008e9062000114565b600680546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152601881527f4f564d5f5374617465436f6d6d69746d656e74436861696e00000000000000006020820152620000ed9062000114565b600780546001600160a01b0319166001600160a01b03929092169190911790555062000227565b60055460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19062000147908590600401620001d1565b60206040518083038186803b1580156200016057600080fd5b505afa15801562000175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019b9190620001a1565b92915050565b600060208284031215620001b3578081fd5b81516001600160a01b0381168114620001ca578182fd5b9392505050565b6000602080835283518082850152825b81811015620001ff57858101830151858201604001528201620001e1565b81811115620002115783604083870101525b50601f01601f1916929092016040019392505050565b61215080620002376000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063706ceab611610066578063706ceab6146100fe57806382e3702d14610111578063b1b1b20914610124578063d7fd19dd14610137578063ecc704281461014a57610093565b806321d800ec146100985780633eae0ae0146100c1578063461a4478146100d65780636e296e45146100f6575b600080fd5b6100ab6100a636600461190b565b61015f565b6040516100b89190611af6565b60405180910390f35b6100d46100cf366004611894565b610174565b005b6100e96100e4366004611923565b6101c3565b6040516100b89190611a7e565b6100e961024a565b6100d461010c36600461180d565b610259565b6100ab61011f36600461190b565b6102c9565b6100ab61013236600461190b565b6102de565b6100d46101453660046116da565b6102f3565b610152610463565b6040516100b891906119df565b60006020819052908152604090205460ff1681565b6060610184843385600354610469565b905061019081836104b6565b6003805460019081019091558151602092830120600090815260029092526040909120805460ff19169091179055505050565b60055460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906101f4908590600401611b78565b60206040518083038186803b15801561020c57600080fd5b505afa158015610220573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024491906116be565b92915050565b6004546001600160a01b031681565b606061026786868686610469565b805160208083019190912060009081526002909152604090205490915060ff1615156001146102b15760405162461bcd60e51b81526004016102a890611cab565b60405180910390fd5b6102c1818363ffffffff166104b6565b505050505050565b60026020526000908152604090205460ff1681565b60016020526000908152604090205460ff1681565b606061030186868686610469565b905061030d8183610556565b151560011461032e5760405162461bcd60e51b81526004016102a890611e11565b805160208083019190912060009081526001909152604090205460ff16156103685760405162461bcd60e51b81526004016102a890611c60565b600480546001600160a01b0319166001600160a01b038781169190911790915560405160009188169061039c9087906119f6565b6000604051808303816000865af19150503d80600081146103d9576040519150601f19603f3d011682016040523d82523d6000602084013e6103de565b606091505b509091505060018115151415610414578151602080840191909120600090815260019182905260409020805460ff191690911790555b600082334360405160200161042b93929190611a44565b60408051601f1981840301815291815281516020928301206000908152918290529020805460ff191660011790555050505050505050565b60035481565b6060848484846040516024016104829493929190611a92565b60408051601f198184030181529190526020810180516001600160e01b031663cbd4ece960e01b1790529050949350505050565b60065460408051808201909152601a81527f4f564d5f4c3243726f7373446f6d61696e4d657373656e67657200000000000060208201526001600160a01b0390911690636fee07e090610508906101c3565b83856040518463ffffffff1660e01b815260040161052893929190611acf565b600060405180830381600087803b15801561054257600080fd5b505af11580156102c1573d6000803e3d6000fd5b600061056182610579565b801561057257506105728383610694565b9392505050565b6007546020820151604051639418bddd60e01b81526000926001600160a01b031691639418bddd916105ae9190600401612078565b60206040518083038186803b1580156105c657600080fd5b505afa1580156105da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fe91906118eb565b1580156102445750600754825160208401516040808601519051634d69ee5760e01b81526001600160a01b0390941693634d69ee57936106449390929091600401611b01565b60206040518083038186803b15801561065c57600080fd5b505afa158015610670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024491906118eb565b600080836106d66040518060400160405280601a81526020017f4f564d5f4c3243726f7373446f6d61696e4d657373656e6765720000000000008152506101c3565b6040516020016106e7929190611a12565b6040516020818303038152906040528051906020012060006040516020016107109291906119e8565b60405160208183030381529060405280519060200120905060006060610760602160991b60405160200161074491906119c7565b60408051601f19818403018152919052606087015187516107f8565b90925090506001821515146107875760405162461bcd60e51b81526004016102a890611fcd565b61078f6114d8565b61079882610820565b90506107ed846040516020016107ae91906119df565b60405160208183030381529060405260016040516020016107cf91906119df565b604051602081830303815290604052886080015184604001516108b2565b979650505050505050565b6000606080610806866108d7565b9050610813818686610907565b9250925050935093915050565b6108286114d8565b6060610833836109a5565b9050604051806080016040528061085d8360008151811061085057fe5b60200260200101516109b8565b81526020016108728360018151811061085057fe5b81526020016108948360028151811061088757fe5b60200260200101516109bf565b81526020016108a98360038151811061088757fe5b90529392505050565b600060606108bf866108d7565b90506108cd81868686610a4e565b9695505050505050565b606081805190602001206040516020016108f191906119df565b6040516020818303038152906040529050919050565b600060608061091585610a74565b9050600060606000610928848a89610b4a565b8151929550909350915015808061093c5750815b6109585760405162461bcd60e51b81526004016102a890611bf9565b6060816109745760405180602001604052806000815250610993565b61099386600187038151811061098657fe5b6020026020010151610df9565b919b919a509098505050505050505050565b60606102446109b383610e15565b610e3a565b6000610244825b60006021826000015111156109e65760405162461bcd60e51b81526004016102a890611dda565b60008060006109f485610f5c565b919450925090506000816001811115610a0957fe5b14610a265760405162461bcd60e51b81526004016102a890611dda565b6020808601518401805190918410156108cd5760208490036101000a90049695505050505050565b6000806060610a5e878686610907565b915091508180156107ed57506107ed8682611119565b606080610a80836109a5565b90506060815167ffffffffffffffff81118015610a9c57600080fd5b50604051908082528060200260200182016040528015610ad657816020015b610ac36114ff565b815260200190600190039081610abb5790505b50905060005b8251811015610b42576060610b03848381518110610af657fe5b602002602001015161112f565b90506040518060400160405280828152602001610b1f836109a5565b815250838381518110610b2e57fe5b602090810291909101015250600101610adc565b509392505050565b60006060818082610b5a87611189565b905085600080610b686114ff565b60005b8c51811015610dd1578c8181518110610b8057fe5b6020026020010151915082840193506001870196508360001415610bcb57815180516020909101208514610bc65760405162461bcd60e51b81526004016102a890611fa2565b610c28565b815151602011610bfd57815180516020909101208514610bc65760405162461bcd60e51b81526004016102a890611b8b565b84610c0b8360000151611285565b14610c285760405162461bcd60e51b81526004016102a890611f34565b60208201515160111415610c97578551841415610c4457610dd1565b6000868581518110610c5257fe5b016020015160f81c9050610c64611519565b83602001518260ff1681518110610c7757fe5b60200260200101519050610c8a8161128c565b9650600194505050610dc9565b60028260200151511415610db1576060610cb0836112c2565b9050600081600081518110610cc157fe5b016020015160f81c9050600181166002036060610ce18460ff84166112e0565b90506060610cef8b8a6112e0565b90506000610cfd8383611311565b905060ff851660021480610d14575060ff85166003145b15610d4657808351148015610d295750808251145b15610d3357988901985b50600160ff1b9950610dd1945050505050565b60ff85161580610d59575060ff85166001145b15610da65780610d765750600160ff1b9950610dd1945050505050565b610d978860200151600181518110610d8a57fe5b602002602001015161128c565b9a509750610dc9945050505050565b505050505050610dc9565b60405162461bcd60e51b81526004016102a890611cf6565b600101610b6b565b50600160ff1b841486610de487866112e0565b909e909d50909b509950505050505050505050565b60208101518051606091610244916000198101908110610af657fe5b610e1d611519565b506040805180820190915281518152602082810190820152919050565b6060600080610e4884610f5c565b91935090915060019050816001811115610e5e57fe5b14610e7b5760405162461bcd60e51b81526004016102a890611e58565b6040805160208082526104208201909252606091816020015b610e9c611519565b815260200190600190039081610e945790505090506000835b8651811015610f515760208210610ede5760405162461bcd60e51b81526004016102a890611d64565b600080610f0a6040518060400160405280858c60000151038152602001858c6020015101815250610f5c565b509150915060405180604001604052808383018152602001848b6020015101815250858581518110610f3857fe5b6020908102919091010152600193909301920101610eb5565b508152949350505050565b600080600080846000015111610f845760405162461bcd60e51b81526004016102a890611ec6565b6020840151805160001a607f8111610fa9576000600160009450945094505050611112565b60b78111610fe9578551607f198201908110610fd75760405162461bcd60e51b81526004016102a890611e8f565b60019550935060009250611112915050565b60bf811161106357855160b61982019081106110175760405162461bcd60e51b81526004016102a890611d2d565b6000816020036101000a600185015104905080820188600001511161104e5760405162461bcd60e51b81526004016102a890611efd565b60019091019550935060009250611112915050565b60f781116110a257855160bf1982019081106110915760405162461bcd60e51b81526004016102a890612041565b600195509350849250611112915050565b855160f61982019081106110c85760405162461bcd60e51b81526004016102a890611bc2565b6000816020036101000a60018501510490508082018860000151116110ff5760405162461bcd60e51b81526004016102a890611c30565b6001918201965094509250611112915050565b9193909250565b8051602091820120825192909101919091201490565b6060600080600061113f85610f5c565b91945092509050600081600181111561115457fe5b146111715760405162461bcd60e51b81526004016102a890611f6b565b61118085602001518484611377565b95945050505050565b606080825160020267ffffffffffffffff811180156111a757600080fd5b506040519080825280601f01601f1916602001820160405280156111d2576020820181803683370190505b50905060005b835181101561127e5760048482815181106111ef57fe5b602001015160f81c60f81b6001600160f81b031916901c82826002028151811061121557fe5b60200101906001600160f81b031916908160001a905350601084828151811061123a57fe5b016020015160f81c8161124957fe5b0660f81b82826002026001018151811061125f57fe5b60200101906001600160f81b031916908160001a9053506001016111d8565b5092915050565b6020015190565b600060606020836000015110156112ad576112a683611424565b90506112b9565b6112b68361112f565b90505b61057281611285565b60606102446112db8360200151600081518110610af657fe5b611189565b606081835103600014156113035750604080516020810190915260008152610244565b61057283838486510361142f565b6000805b8084511180156113255750808351115b801561136a575082818151811061133857fe5b602001015160f81c60f81b6001600160f81b03191684828151811061135957fe5b01602001516001600160f81b031916145b1561057257600101611315565b6060808267ffffffffffffffff8111801561139157600080fd5b506040519080825280601f01601f1916602001820160405280156113bc576020820181803683370190505b5090508051600014156113d0579050610572565b8484016020820160005b602086048110156113fb5782518252602092830192909101906001016113da565b5080519151601f959095166020036101000a600019019182169119909416179092525092915050565b6060610244826114c2565b6060818301845110156114545760405162461bcd60e51b81526004016102a890611dae565b60608215801561146f576040519150602082016040526114b9565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156114a8578051835260209283019201611490565b5050858452601f01601f1916604052505b50949350505050565b6060610244826020015160008460000151611377565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528060608152602001606081525090565b604051806040016040528060008152602001600081525090565b600082601f830112611543578081fd5b813567ffffffffffffffff811115611559578182fd5b61156c601f8201601f191660200161208b565b915080825283602082850101111561158357600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156115ad578081fd5b6115b760a061208b565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156115f557600080fd5b61160184828501611533565b60808301525092915050565b60006040828403121561161e578081fd5b611628604061208b565b90508135815260208083013567ffffffffffffffff81111561164957600080fd5b8301601f8101851361165a57600080fd5b803561166d611668826120b2565b61208b565b818152838101908385018584028501860189101561168a57600080fd5b600094505b838510156116ad57803583526001949094019391850191850161168f565b508085870152505050505092915050565b6000602082840312156116cf578081fd5b815161057281612102565b600080600080600060a086880312156116f1578081fd5b85356116fc81612102565b9450602086013561170c81612102565b9350604086013567ffffffffffffffff80821115611728578283fd5b61173489838a01611533565b9450606088013593506080880135915080821115611750578283fd5b9087019060a0828a031215611763578283fd5b61176d60a061208b565b82358152602083013582811115611782578485fd5b61178e8b82860161159c565b6020830152506040830135828111156117a5578485fd5b6117b18b82860161160d565b6040830152506060830135828111156117c8578485fd5b6117d48b828601611533565b6060830152506080830135828111156117eb578485fd5b6117f78b828601611533565b6080830152508093505050509295509295909350565b600080600080600060a08688031215611824578081fd5b853561182f81612102565b9450602086013561183f81612102565b9350604086013567ffffffffffffffff81111561185a578182fd5b61186688828901611533565b93505060608601359150608086013563ffffffff81168114611886578182fd5b809150509295509295909350565b6000806000606084860312156118a8578283fd5b83356118b381612102565b9250602084013567ffffffffffffffff8111156118ce578283fd5b6118da86828701611533565b925050604084013590509250925092565b6000602082840312156118fc578081fd5b81518015158114610572578182fd5b60006020828403121561191c578081fd5b5035919050565b600060208284031215611934578081fd5b813567ffffffffffffffff81111561194a578182fd5b61195684828501611533565b949350505050565b600081518084526119768160208601602086016120d2565b601f01601f19169290920160200192915050565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261195660a085018261195e565b60609190911b6001600160601b031916815260140190565b90815260200190565b918252602082015260400190565b60008251611a088184602087016120d2565b9190910192915050565b60008351611a248184602088016120d2565b60609390931b6001600160601b0319169190920190815260140192915050565b60008451611a568184602089016120d2565b60609490941b6001600160601b03191691909301908152601481019190915260340192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152608060408201819052600090611abe9083018561195e565b905082606083015295945050505050565b600060018060a01b038516825283602083015260606040830152611180606083018461195e565b901515815260200190565b60008482526020606081840152611b1b606084018661198a565b838103604085015260408101855182528286015160408484015281815180845260608501915085830194508693505b80841015611b6a5784518252938501936001939093019290850190611b4a565b509998505050505050505050565b600060208252610572602083018461195e565b6020808252601b908201527f496e76616c6964206c6172676520696e7465726e616c20686173680000000000604082015260600190565b6020808252601d908201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e000000604082015260600190565b6020808252601a908201527f50726f76696465642070726f6f6620697320696e76616c69642e000000000000604082015260600190565b60208082526016908201527524b73b30b634b210292628103637b733903634b9ba1760511b604082015260600190565b6020808252602b908201527f50726f7669646564206d6573736167652068617320616c72656164792062656560408201526a37103932b1b2b4bb32b21760a91b606082015260800190565b6020808252602b908201527f50726f7669646564206d65737361676520686173206e6f7420616c726561647960408201526a103132b2b71039b2b73a1760a91b606082015260800190565b6020808252601d908201527f526563656976656420616e20756e706172736561626c65206e6f64652e000000604082015260600190565b6020808252601f908201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e00604082015260600190565b6020808252602a908201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960408201526939ba103632b733ba341760b11b606082015260800190565b60208082526012908201527152656164206f7574206f6620626f756e647360701b604082015260600190565b6020808252601a908201527f496e76616c696420524c5020627974657333322076616c75652e000000000000604082015260600190565b60208082526027908201527f50726f7669646564206d65737361676520636f756c64206e6f742062652076656040820152663934b334b2b21760c91b606082015260800190565b60208082526017908201527f496e76616c696420524c50206c6973742076616c75652e000000000000000000604082015260600190565b60208082526019908201527f496e76616c696420524c502073686f727420737472696e672e00000000000000604082015260600190565b60208082526018908201527f524c50206974656d2063616e6e6f74206265206e756c6c2e0000000000000000604082015260600190565b60208082526018908201527f496e76616c696420524c50206c6f6e6720737472696e672e0000000000000000604082015260600190565b6020808252601a908201527f496e76616c696420696e7465726e616c206e6f64652068617368000000000000604082015260600190565b60208082526018908201527f496e76616c696420524c502062797465732076616c75652e0000000000000000604082015260600190565b602080825260119082015270092dcecc2d8d2c840e4dedee840d0c2e6d607b1b604082015260600190565b6020808252604e908201527f4d6573736167652070617373696e6720707265636f6d70696c6520686173206e60408201527f6f74206265656e20696e697469616c697a6564206f7220696e76616c6964207060608201526d3937b7b310383937bb34b232b21760911b608082015260a00190565b60208082526017908201527f496e76616c696420524c502073686f7274206c6973742e000000000000000000604082015260600190565b600060208252610572602083018461198a565b60405181810167ffffffffffffffff811182821017156120aa57600080fd5b604052919050565b600067ffffffffffffffff8211156120c8578081fd5b5060209081020190565b60005b838110156120ed5781810151838201526020016120d5565b838111156120fc576000848401525b50505050565b6001600160a01b038116811461211757600080fd5b5056fea2646970667358221220463d0d03d21f9b7eb19ce8c73216de60996690215b5e2f18eea0db9d362ddfb164736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063706ceab611610066578063706ceab6146100fe57806382e3702d14610111578063b1b1b20914610124578063d7fd19dd14610137578063ecc704281461014a57610093565b806321d800ec146100985780633eae0ae0146100c1578063461a4478146100d65780636e296e45146100f6575b600080fd5b6100ab6100a636600461190b565b61015f565b6040516100b89190611af6565b60405180910390f35b6100d46100cf366004611894565b610174565b005b6100e96100e4366004611923565b6101c3565b6040516100b89190611a7e565b6100e961024a565b6100d461010c36600461180d565b610259565b6100ab61011f36600461190b565b6102c9565b6100ab61013236600461190b565b6102de565b6100d46101453660046116da565b6102f3565b610152610463565b6040516100b891906119df565b60006020819052908152604090205460ff1681565b6060610184843385600354610469565b905061019081836104b6565b6003805460019081019091558151602092830120600090815260029092526040909120805460ff19169091179055505050565b60055460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906101f4908590600401611b78565b60206040518083038186803b15801561020c57600080fd5b505afa158015610220573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024491906116be565b92915050565b6004546001600160a01b031681565b606061026786868686610469565b805160208083019190912060009081526002909152604090205490915060ff1615156001146102b15760405162461bcd60e51b81526004016102a890611cab565b60405180910390fd5b6102c1818363ffffffff166104b6565b505050505050565b60026020526000908152604090205460ff1681565b60016020526000908152604090205460ff1681565b606061030186868686610469565b905061030d8183610556565b151560011461032e5760405162461bcd60e51b81526004016102a890611e11565b805160208083019190912060009081526001909152604090205460ff16156103685760405162461bcd60e51b81526004016102a890611c60565b600480546001600160a01b0319166001600160a01b038781169190911790915560405160009188169061039c9087906119f6565b6000604051808303816000865af19150503d80600081146103d9576040519150601f19603f3d011682016040523d82523d6000602084013e6103de565b606091505b509091505060018115151415610414578151602080840191909120600090815260019182905260409020805460ff191690911790555b600082334360405160200161042b93929190611a44565b60408051601f1981840301815291815281516020928301206000908152918290529020805460ff191660011790555050505050505050565b60035481565b6060848484846040516024016104829493929190611a92565b60408051601f198184030181529190526020810180516001600160e01b031663cbd4ece960e01b1790529050949350505050565b60065460408051808201909152601a81527f4f564d5f4c3243726f7373446f6d61696e4d657373656e67657200000000000060208201526001600160a01b0390911690636fee07e090610508906101c3565b83856040518463ffffffff1660e01b815260040161052893929190611acf565b600060405180830381600087803b15801561054257600080fd5b505af11580156102c1573d6000803e3d6000fd5b600061056182610579565b801561057257506105728383610694565b9392505050565b6007546020820151604051639418bddd60e01b81526000926001600160a01b031691639418bddd916105ae9190600401612078565b60206040518083038186803b1580156105c657600080fd5b505afa1580156105da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fe91906118eb565b1580156102445750600754825160208401516040808601519051634d69ee5760e01b81526001600160a01b0390941693634d69ee57936106449390929091600401611b01565b60206040518083038186803b15801561065c57600080fd5b505afa158015610670573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024491906118eb565b600080836106d66040518060400160405280601a81526020017f4f564d5f4c3243726f7373446f6d61696e4d657373656e6765720000000000008152506101c3565b6040516020016106e7929190611a12565b6040516020818303038152906040528051906020012060006040516020016107109291906119e8565b60405160208183030381529060405280519060200120905060006060610760602160991b60405160200161074491906119c7565b60408051601f19818403018152919052606087015187516107f8565b90925090506001821515146107875760405162461bcd60e51b81526004016102a890611fcd565b61078f6114d8565b61079882610820565b90506107ed846040516020016107ae91906119df565b60405160208183030381529060405260016040516020016107cf91906119df565b604051602081830303815290604052886080015184604001516108b2565b979650505050505050565b6000606080610806866108d7565b9050610813818686610907565b9250925050935093915050565b6108286114d8565b6060610833836109a5565b9050604051806080016040528061085d8360008151811061085057fe5b60200260200101516109b8565b81526020016108728360018151811061085057fe5b81526020016108948360028151811061088757fe5b60200260200101516109bf565b81526020016108a98360038151811061088757fe5b90529392505050565b600060606108bf866108d7565b90506108cd81868686610a4e565b9695505050505050565b606081805190602001206040516020016108f191906119df565b6040516020818303038152906040529050919050565b600060608061091585610a74565b9050600060606000610928848a89610b4a565b8151929550909350915015808061093c5750815b6109585760405162461bcd60e51b81526004016102a890611bf9565b6060816109745760405180602001604052806000815250610993565b61099386600187038151811061098657fe5b6020026020010151610df9565b919b919a509098505050505050505050565b60606102446109b383610e15565b610e3a565b6000610244825b60006021826000015111156109e65760405162461bcd60e51b81526004016102a890611dda565b60008060006109f485610f5c565b919450925090506000816001811115610a0957fe5b14610a265760405162461bcd60e51b81526004016102a890611dda565b6020808601518401805190918410156108cd5760208490036101000a90049695505050505050565b6000806060610a5e878686610907565b915091508180156107ed57506107ed8682611119565b606080610a80836109a5565b90506060815167ffffffffffffffff81118015610a9c57600080fd5b50604051908082528060200260200182016040528015610ad657816020015b610ac36114ff565b815260200190600190039081610abb5790505b50905060005b8251811015610b42576060610b03848381518110610af657fe5b602002602001015161112f565b90506040518060400160405280828152602001610b1f836109a5565b815250838381518110610b2e57fe5b602090810291909101015250600101610adc565b509392505050565b60006060818082610b5a87611189565b905085600080610b686114ff565b60005b8c51811015610dd1578c8181518110610b8057fe5b6020026020010151915082840193506001870196508360001415610bcb57815180516020909101208514610bc65760405162461bcd60e51b81526004016102a890611fa2565b610c28565b815151602011610bfd57815180516020909101208514610bc65760405162461bcd60e51b81526004016102a890611b8b565b84610c0b8360000151611285565b14610c285760405162461bcd60e51b81526004016102a890611f34565b60208201515160111415610c97578551841415610c4457610dd1565b6000868581518110610c5257fe5b016020015160f81c9050610c64611519565b83602001518260ff1681518110610c7757fe5b60200260200101519050610c8a8161128c565b9650600194505050610dc9565b60028260200151511415610db1576060610cb0836112c2565b9050600081600081518110610cc157fe5b016020015160f81c9050600181166002036060610ce18460ff84166112e0565b90506060610cef8b8a6112e0565b90506000610cfd8383611311565b905060ff851660021480610d14575060ff85166003145b15610d4657808351148015610d295750808251145b15610d3357988901985b50600160ff1b9950610dd1945050505050565b60ff85161580610d59575060ff85166001145b15610da65780610d765750600160ff1b9950610dd1945050505050565b610d978860200151600181518110610d8a57fe5b602002602001015161128c565b9a509750610dc9945050505050565b505050505050610dc9565b60405162461bcd60e51b81526004016102a890611cf6565b600101610b6b565b50600160ff1b841486610de487866112e0565b909e909d50909b509950505050505050505050565b60208101518051606091610244916000198101908110610af657fe5b610e1d611519565b506040805180820190915281518152602082810190820152919050565b6060600080610e4884610f5c565b91935090915060019050816001811115610e5e57fe5b14610e7b5760405162461bcd60e51b81526004016102a890611e58565b6040805160208082526104208201909252606091816020015b610e9c611519565b815260200190600190039081610e945790505090506000835b8651811015610f515760208210610ede5760405162461bcd60e51b81526004016102a890611d64565b600080610f0a6040518060400160405280858c60000151038152602001858c6020015101815250610f5c565b509150915060405180604001604052808383018152602001848b6020015101815250858581518110610f3857fe5b6020908102919091010152600193909301920101610eb5565b508152949350505050565b600080600080846000015111610f845760405162461bcd60e51b81526004016102a890611ec6565b6020840151805160001a607f8111610fa9576000600160009450945094505050611112565b60b78111610fe9578551607f198201908110610fd75760405162461bcd60e51b81526004016102a890611e8f565b60019550935060009250611112915050565b60bf811161106357855160b61982019081106110175760405162461bcd60e51b81526004016102a890611d2d565b6000816020036101000a600185015104905080820188600001511161104e5760405162461bcd60e51b81526004016102a890611efd565b60019091019550935060009250611112915050565b60f781116110a257855160bf1982019081106110915760405162461bcd60e51b81526004016102a890612041565b600195509350849250611112915050565b855160f61982019081106110c85760405162461bcd60e51b81526004016102a890611bc2565b6000816020036101000a60018501510490508082018860000151116110ff5760405162461bcd60e51b81526004016102a890611c30565b6001918201965094509250611112915050565b9193909250565b8051602091820120825192909101919091201490565b6060600080600061113f85610f5c565b91945092509050600081600181111561115457fe5b146111715760405162461bcd60e51b81526004016102a890611f6b565b61118085602001518484611377565b95945050505050565b606080825160020267ffffffffffffffff811180156111a757600080fd5b506040519080825280601f01601f1916602001820160405280156111d2576020820181803683370190505b50905060005b835181101561127e5760048482815181106111ef57fe5b602001015160f81c60f81b6001600160f81b031916901c82826002028151811061121557fe5b60200101906001600160f81b031916908160001a905350601084828151811061123a57fe5b016020015160f81c8161124957fe5b0660f81b82826002026001018151811061125f57fe5b60200101906001600160f81b031916908160001a9053506001016111d8565b5092915050565b6020015190565b600060606020836000015110156112ad576112a683611424565b90506112b9565b6112b68361112f565b90505b61057281611285565b60606102446112db8360200151600081518110610af657fe5b611189565b606081835103600014156113035750604080516020810190915260008152610244565b61057283838486510361142f565b6000805b8084511180156113255750808351115b801561136a575082818151811061133857fe5b602001015160f81c60f81b6001600160f81b03191684828151811061135957fe5b01602001516001600160f81b031916145b1561057257600101611315565b6060808267ffffffffffffffff8111801561139157600080fd5b506040519080825280601f01601f1916602001820160405280156113bc576020820181803683370190505b5090508051600014156113d0579050610572565b8484016020820160005b602086048110156113fb5782518252602092830192909101906001016113da565b5080519151601f959095166020036101000a600019019182169119909416179092525092915050565b6060610244826114c2565b6060818301845110156114545760405162461bcd60e51b81526004016102a890611dae565b60608215801561146f576040519150602082016040526114b9565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156114a8578051835260209283019201611490565b5050858452601f01601f1916604052505b50949350505050565b6060610244826020015160008460000151611377565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604051806040016040528060608152602001606081525090565b604051806040016040528060008152602001600081525090565b600082601f830112611543578081fd5b813567ffffffffffffffff811115611559578182fd5b61156c601f8201601f191660200161208b565b915080825283602082850101111561158357600080fd5b8060208401602084013760009082016020015292915050565b600060a082840312156115ad578081fd5b6115b760a061208b565b905081358152602082013560208201526040820135604082015260608201356060820152608082013567ffffffffffffffff8111156115f557600080fd5b61160184828501611533565b60808301525092915050565b60006040828403121561161e578081fd5b611628604061208b565b90508135815260208083013567ffffffffffffffff81111561164957600080fd5b8301601f8101851361165a57600080fd5b803561166d611668826120b2565b61208b565b818152838101908385018584028501860189101561168a57600080fd5b600094505b838510156116ad57803583526001949094019391850191850161168f565b508085870152505050505092915050565b6000602082840312156116cf578081fd5b815161057281612102565b600080600080600060a086880312156116f1578081fd5b85356116fc81612102565b9450602086013561170c81612102565b9350604086013567ffffffffffffffff80821115611728578283fd5b61173489838a01611533565b9450606088013593506080880135915080821115611750578283fd5b9087019060a0828a031215611763578283fd5b61176d60a061208b565b82358152602083013582811115611782578485fd5b61178e8b82860161159c565b6020830152506040830135828111156117a5578485fd5b6117b18b82860161160d565b6040830152506060830135828111156117c8578485fd5b6117d48b828601611533565b6060830152506080830135828111156117eb578485fd5b6117f78b828601611533565b6080830152508093505050509295509295909350565b600080600080600060a08688031215611824578081fd5b853561182f81612102565b9450602086013561183f81612102565b9350604086013567ffffffffffffffff81111561185a578182fd5b61186688828901611533565b93505060608601359150608086013563ffffffff81168114611886578182fd5b809150509295509295909350565b6000806000606084860312156118a8578283fd5b83356118b381612102565b9250602084013567ffffffffffffffff8111156118ce578283fd5b6118da86828701611533565b925050604084013590509250925092565b6000602082840312156118fc578081fd5b81518015158114610572578182fd5b60006020828403121561191c578081fd5b5035919050565b600060208284031215611934578081fd5b813567ffffffffffffffff81111561194a578182fd5b61195684828501611533565b949350505050565b600081518084526119768160208601602086016120d2565b601f01601f19169290920160200192915050565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261195660a085018261195e565b60609190911b6001600160601b031916815260140190565b90815260200190565b918252602082015260400190565b60008251611a088184602087016120d2565b9190910192915050565b60008351611a248184602088016120d2565b60609390931b6001600160601b0319169190920190815260140192915050565b60008451611a568184602089016120d2565b60609490941b6001600160601b03191691909301908152601481019190915260340192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152608060408201819052600090611abe9083018561195e565b905082606083015295945050505050565b600060018060a01b038516825283602083015260606040830152611180606083018461195e565b901515815260200190565b60008482526020606081840152611b1b606084018661198a565b838103604085015260408101855182528286015160408484015281815180845260608501915085830194508693505b80841015611b6a5784518252938501936001939093019290850190611b4a565b509998505050505050505050565b600060208252610572602083018461195e565b6020808252601b908201527f496e76616c6964206c6172676520696e7465726e616c20686173680000000000604082015260600190565b6020808252601d908201527f496e76616c696420524c50206c6f6e67206c697374206c656e6774682e000000604082015260600190565b6020808252601a908201527f50726f76696465642070726f6f6620697320696e76616c69642e000000000000604082015260600190565b60208082526016908201527524b73b30b634b210292628103637b733903634b9ba1760511b604082015260600190565b6020808252602b908201527f50726f7669646564206d6573736167652068617320616c72656164792062656560408201526a37103932b1b2b4bb32b21760a91b606082015260800190565b6020808252602b908201527f50726f7669646564206d65737361676520686173206e6f7420616c726561647960408201526a103132b2b71039b2b73a1760a91b606082015260800190565b6020808252601d908201527f526563656976656420616e20756e706172736561626c65206e6f64652e000000604082015260600190565b6020808252601f908201527f496e76616c696420524c50206c6f6e6720737472696e67206c656e6774682e00604082015260600190565b6020808252602a908201527f50726f766964656420524c50206c6973742065786365656473206d6178206c6960408201526939ba103632b733ba341760b11b606082015260800190565b60208082526012908201527152656164206f7574206f6620626f756e647360701b604082015260600190565b6020808252601a908201527f496e76616c696420524c5020627974657333322076616c75652e000000000000604082015260600190565b60208082526027908201527f50726f7669646564206d65737361676520636f756c64206e6f742062652076656040820152663934b334b2b21760c91b606082015260800190565b60208082526017908201527f496e76616c696420524c50206c6973742076616c75652e000000000000000000604082015260600190565b60208082526019908201527f496e76616c696420524c502073686f727420737472696e672e00000000000000604082015260600190565b60208082526018908201527f524c50206974656d2063616e6e6f74206265206e756c6c2e0000000000000000604082015260600190565b60208082526018908201527f496e76616c696420524c50206c6f6e6720737472696e672e0000000000000000604082015260600190565b6020808252601a908201527f496e76616c696420696e7465726e616c206e6f64652068617368000000000000604082015260600190565b60208082526018908201527f496e76616c696420524c502062797465732076616c75652e0000000000000000604082015260600190565b602080825260119082015270092dcecc2d8d2c840e4dedee840d0c2e6d607b1b604082015260600190565b6020808252604e908201527f4d6573736167652070617373696e6720707265636f6d70696c6520686173206e60408201527f6f74206265656e20696e697469616c697a6564206f7220696e76616c6964207060608201526d3937b7b310383937bb34b232b21760911b608082015260a00190565b60208082526017908201527f496e76616c696420524c502073686f7274206c6973742e000000000000000000604082015260600190565b600060208252610572602083018461198a565b60405181810167ffffffffffffffff811182821017156120aa57600080fd5b604052919050565b600067ffffffffffffffff8211156120c8578081fd5b5060209081020190565b60005b838110156120ed5781810151838201526020016120d5565b838111156120fc576000848401525b50505050565b6001600160a01b038116811461211757600080fd5b5056fea2646970667358221220463d0d03d21f9b7eb19ce8c73216de60996690215b5e2f18eea0db9d362ddfb164736f6c63430007000033",
"linkReferences": {},

@@ -321,3 +321,3 @@ "deployedLinkReferences": {},

{
"astId": 17088,
"astId": 17095,
"contract": "contracts/optimistic-ethereum/OVM/bridge/OVM_L1CrossDomainMessenger.sol:OVM_L1CrossDomainMessenger",

@@ -327,3 +327,3 @@ "label": "libAddressManager",

"slot": "5",
"type": "t_contract(Lib_AddressManager)17081"
"type": "t_contract(Lib_AddressManager)17088"
},

@@ -336,3 +336,3 @@ {

"slot": "6",
"type": "t_contract(iOVM_CanonicalTransactionChain)15757"
"type": "t_contract(iOVM_CanonicalTransactionChain)15764"
},

@@ -345,3 +345,3 @@ {

"slot": "7",
"type": "t_contract(iOVM_StateCommitmentChain)15831"
"type": "t_contract(iOVM_StateCommitmentChain)15838"
}

@@ -365,3 +365,3 @@ ],

},
"t_contract(Lib_AddressManager)17081": {
"t_contract(Lib_AddressManager)17088": {
"encoding": "inplace",

@@ -371,3 +371,3 @@ "label": "contract Lib_AddressManager",

},
"t_contract(iOVM_CanonicalTransactionChain)15757": {
"t_contract(iOVM_CanonicalTransactionChain)15764": {
"encoding": "inplace",

@@ -377,3 +377,3 @@ "label": "contract iOVM_CanonicalTransactionChain",

},
"t_contract(iOVM_StateCommitmentChain)15831": {
"t_contract(iOVM_StateCommitmentChain)15838": {
"encoding": "inplace",

@@ -380,0 +380,0 @@ "label": "contract iOVM_StateCommitmentChain",

@@ -216,3 +216,3 @@ {

{
"astId": 17088,
"astId": 17095,
"contract": "contracts/optimistic-ethereum/OVM/bridge/OVM_L2CrossDomainMessenger.sol:OVM_L2CrossDomainMessenger",

@@ -222,3 +222,3 @@ "label": "libAddressManager",

"slot": "5",
"type": "t_contract(Lib_AddressManager)17081"
"type": "t_contract(Lib_AddressManager)17088"
},

@@ -231,3 +231,3 @@ {

"slot": "6",
"type": "t_contract(iOVM_L1MessageSender)16336"
"type": "t_contract(iOVM_L1MessageSender)16343"
},

@@ -240,3 +240,3 @@ {

"slot": "7",
"type": "t_contract(iOVM_L2ToL1MessagePasser)16353"
"type": "t_contract(iOVM_L2ToL1MessagePasser)16360"
}

@@ -260,3 +260,3 @@ ],

},
"t_contract(Lib_AddressManager)17081": {
"t_contract(Lib_AddressManager)17088": {
"encoding": "inplace",

@@ -266,3 +266,3 @@ "label": "contract Lib_AddressManager",

},
"t_contract(iOVM_L1MessageSender)16336": {
"t_contract(iOVM_L1MessageSender)16343": {
"encoding": "inplace",

@@ -272,3 +272,3 @@ "label": "contract iOVM_L1MessageSender",

},
"t_contract(iOVM_L2ToL1MessagePasser)16353": {
"t_contract(iOVM_L2ToL1MessagePasser)16360": {
"encoding": "inplace",

@@ -275,0 +275,0 @@ "label": "contract iOVM_L2ToL1MessagePasser",

@@ -69,3 +69,3 @@ {

{
"astId": 14078,
"astId": 14079,
"contract": "contracts/optimistic-ethereum/OVM/precompiles/OVM_L2ToL1MessagePasser.sol:OVM_L2ToL1MessagePasser",

@@ -72,0 +72,0 @@ "label": "sentMessages",

@@ -459,4 +459,4 @@ {

],
"bytecode": "0x60806040523480156200001157600080fd5b506040516200248a3803806200248a833981016040819052620000349162000257565b600080546001600160a01b0319166001600160a01b03831617905560408051808201909152601d81527f4f564d5f43616e6f6e6963616c5472616e73616374696f6e436861696e00000060208201526200008e9062000195565b600b80546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152601181527027ab26afa33930bab22b32b934b334b2b960791b6020820152620000e19062000195565b600c80546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600f81526e27ab26afa137b73226b0b730b3b2b960891b6020820152620001329062000195565b600d80546001600160a01b0319166001600160a01b03929092169190911790556200018e600360107f96df3abc26f419f0cc8d819984a2b87820d08c41bf1b84a59ce36f5d7336d1913062000222602090811b6200076117901c565b50620002dd565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190620001c890859060040162000287565b60206040518083038186803b158015620001e157600080fd5b505afa158015620001f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021c919062000257565b92915050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b60006020828403121562000269578081fd5b81516001600160a01b038116811462000280578182fd5b9392505050565b6000602080835283518082850152825b81811015620002b55785810183015185820160400152820162000297565b81811115620002c75783604083870101525b50601f01601f1916929092016040019392505050565b61219d80620002ed6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806381eb62ef1161007157806381eb62ef146101475780638ca5cbb91461014f5780639418bddd14610162578063b8e189ac14610175578063c17b291b14610188578063e561dddc14610190576100b4565b80632979761b146100b9578063461a4478146100ce5780634d69ee57146100f7578063677f5aff146101175780637aa63a861461012a5780637ad168a01461013f575b600080fd5b6100cc6100c736600461185b565b610198565b005b6100e16100dc3660046117ef565b6102be565b6040516100ee9190611b06565b60405180910390f35b61010a610105366004611765565b610347565b6040516100ee9190611b1a565b61010a6101253660046117ce565b6103ac565b61013261047e565b6040516100ee9190611aef565b610132610497565b6101326104b0565b6100cc61015d366004611707565b6104b6565b61010a610170366004611829565b610677565b6100cc610183366004611829565b6106c2565b610132610742565b610132610749565b6101a185610796565b6101c65760405162461bcd60e51b81526004016101bd90611d5d565b60405180910390fd5b6101cf85610677565b156101ec5760405162461bcd60e51b81526004016101bd90611c94565b60015485511161020e5760405162461bcd60e51b81526004016101bd90611fbe565b600b546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce90610244908790879087908790600401612049565b60206040518083038186803b15801561025c57600080fd5b505afa158015610270573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102949190611749565b6102b05760405162461bcd60e51b81526004016101bd90611f1e565b505091516001555160025550565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906102ef908590600401611b69565b60206040518083038186803b15801561030757600080fd5b505afa15801561031b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033f91906116eb565b90505b919050565b600061035283610796565b61036e5760405162461bcd60e51b81526004016101bd90611d5d565b610386836020015185846000015185602001516107be565b6103a25760405162461bcd60e51b81526004016101bd90611c2f565b5060019392505050565b60007f30a907da349b6916f6bc60eb25a37176d5705fba414069bdb6f625ebf8bb6c558314156104715760028054600b5460405163153f8c5f60e11b815291926001600160a01b0390911691632a7f18be9161040e9190870490600401611aef565b60606040518083038186803b15801561042657600080fd5b505afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e9190611926565b6020015164ffffffffff16109050610478565b5060015481105b92915050565b600080610489610829565b5064ffffffffff1691505090565b6000806104a2610829565b64ffffffffff169250505090565b61070881565b6104be61047e565b81146104dc5760405162461bcd60e51b81526004016101bd90611d00565b600d54604051630156a69560e11b81526001600160a01b03909116906302ad4d2a9061050c903390600401611b06565b60206040518083038186803b15801561052457600080fd5b505afa158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c9190611749565b6105785760405162461bcd60e51b81526004016101bd90611ecf565b60008251116105995760405162461bcd60e51b81526004016101bd90611e8c565b600b60009054906101000a90046001600160a01b03166001600160a01b0316637aa63a866040518163ffffffff1660e01b815260040160206040518083038186803b1580156105e757600080fd5b505afa1580156105fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061f9190611970565b825161062961047e565b0111156106485760405162461bcd60e51b81526004016101bd90611bc0565b61067382423360405160200161065f929190612107565b604051602081830303815290604052610850565b5050565b60008082608001518060200190518101906106929190611988565b509050806106b25760405162461bcd60e51b81526004016101bd90611e47565b4262093a80820111915050919050565b600c546001600160a01b031633146106ec5760405162461bcd60e51b81526004016101bd90611dea565b6106f581610796565b6107115760405162461bcd60e51b81526004016101bd90611d5d565b61071a81610677565b6107365760405162461bcd60e51b81526004016101bd90611d8c565b61073f816109fc565b50565b62093a8081565b60006107556003610a74565b64ffffffffff16905090565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b80516000906107ae9060039064ffffffffff16610a8f565b6107b783610bed565b1492915050565b600083815b835181101561081d5760008482815181106107da57fe5b60209081029190910101519050600186831c8116148015610806576107ff8483610c33565b9350610813565b6108108285610c33565b93505b50506001016107c3565b50909414949350505050565b60008060006108386003610c66565b64ffffffffff602882901c16935060501c9150509091565b60006108806040518060400160405280600d81526020016c27ab26afa9b2b8bab2b731b2b960991b8152506102be565b905060008061088d610829565b9092509050336001600160a01b03841614156108aa5750426108d4565b426107088264ffffffffff1601106108d45760405162461bcd60e51b81526004016101bd90611f55565b606085516001600160401b03811180156108ed57600080fd5b5060405190808252806020026020018201604052801561092157816020015b606081526020019060019003908161090c5790505b50905060005b86518110156109825786818151811061093c57fe5b60200260200101516040516020016109549190611aef565b60405160208183030381529060405282828151811061096f57fe5b6020908102919091010152600101610927565b5061098b6113b4565b6040518060a0016040528061099e610749565b81526020016109ac84610c84565b81528351602082015264ffffffffff8616604082015260600187905290506109f36109d682610bed565b6109ea836040015184606001510186610d23565b60039190610d31565b50505050505050565b610a066003610a74565b64ffffffffff16816000015110610a2f5760405162461bcd60e51b81526004016101bd9061201b565b610a3881610796565b610a545760405162461bcd60e51b81526004016101bd90611d5d565b61073f8160000151610a6b83606001516000610d23565b60039190610eb6565b6000610a7e6113e6565b610a8783610fc6565b519392505050565b6000610a996113e6565b610aa284610fc6565b805190915064ffffffffff168310610acc5760405162461bcd60e51b81526004016101bd90611c66565b6000610aee82604001516001600160401b03168661102890919063ffffffff16565b90506000610b1583604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168510610b76576080830151825464ffffffffff9091168603908110610b5a5760405162461bcd60e51b81526004016101bd90611c66565b6000908152600190920160205250604090205491506104789050565b6080830151606084015164ffffffffff9182168781039290911610610bad5760405162461bcd60e51b81526004016101bd90611c66565b8154811115610bce5760405162461bcd60e51b81526004016101bd90611c66565b8154036000908152600190910160205260409020549250610478915050565b60008160200151826040015183606001518460800151604051602001610c169493929190611b25565b604051602081830303815290604052805190602001209050919050565b60008282604051602001610c48929190611af8565b60405160208183030381529060405280519060200120905092915050565b6000610c706113e6565b610c7983610fc6565b602001519392505050565b6000606082516001600160401b0381118015610c9f57600080fd5b50604051908082528060200260200182016040528015610cc9578160200160208202803683370190505b50905060005b8351811015610d1257838181518110610ce457fe5b602002602001015180519060200120828281518110610cff57fe5b6020908102919091010152600101610ccf565b50610d1c81611044565b9392505050565b602890811b91909117901b90565b610d396113e6565b610d4284610fc6565b90506000610d6682604001516001600160401b03168661102890919063ffffffff16565b8054909150610d7457601081555b8054608083015183510364ffffffffff1610610e6c5760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff92610dc292600401611b54565b602060405180830381600087803b158015610ddc57600080fd5b505af1925050508015610e0c575060408051601f3d908101601f19168201909252610e0991810190611749565b60015b610e1857506000610e1b565b90505b8015610e62576040830180516001016001600160401b03169081905260808401805164ffffffffff90811660608701528551169052610e5b908790611028565b9150610e6a565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff198516918401919091526109f38684611259565b610ebe6113e6565b610ec784610fc6565b9050806000015164ffffffffff168364ffffffffff16108015610efc5750806060015164ffffffffff168364ffffffffff1610155b610f185760405162461bcd60e51b81526004016101bd90611c66565b6000610f3a82604001516001600160401b03168661102890919063ffffffff16565b90506000610f6183604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168564ffffffffff161015610fa457604083018051600019016001600160401b03169052606083015164ffffffffff1660808401525b64ffffffffff8516835264ffffffffff19841660208401526109f38684611259565b610fce6113e6565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b6000600282061561103c5782600601610d1c565b505060040190565b6000808251116110665760405162461bcd60e51b81526004016101bd90611b7c565b81516001141561108c578160008151811061107d57fe5b60200260200101519050610342565b606061109883516112bf565b8351909150839060029006600114156111335783516001016001600160401b03811180156110c557600080fd5b506040519080825280602002602001820160405280156110ef578160200160208202803683370190505b50905060005b84518110156111315784818151811061110a57fe5b602002602001015182828151811061111e57fe5b60209081029190910101526001016110f5565b505b835160009060028106600114156111735783828151811061115057fe5b602002602001015183828151811061116457fe5b60209081029190910101526001015b60018111156112395760018201915060005b600282048110156111e8576111c98482600202815181106111a257fe5b60200260200101518583600202600101815181106111bc57fe5b6020026020010151610c33565b8482815181106111d557fe5b6020908102919091010152600101611185565b50600290046001808216148015611200575080600114155b156112345783828151811061121157fe5b602002602001015183828151811061122557fe5b60209081029190910101526001015b611173565b8260008151811061124657fe5b6020026020010151945050505050919050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b17959094909390929091871461129f5760028a018790555b858a60030154146112b25760038a018690555b5050505050505092915050565b606080826001600160401b03811180156112d857600080fd5b50604051908082528060200260200182016040528015611302578160200160208202803683370190505b50905060006040516020016113179190611aef565b604051602081830303815290604052805190602001208160008151811061133a57fe5b602090810291909101015260015b81518110156113ad5781600182038151811061136057fe5b60200260200101516040516020016113789190611aef565b6040516020818303038152906040528051906020012082828151811061139a57fe5b6020908102919091010152600101611348565b5092915050565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b803561047881612144565b600082601f83011261142f578081fd5b81356001600160401b03811115611444578182fd5b602080820261145482820161211e565b8381529350818401858301828701840188101561147057600080fd5b600092505b84831015611493578035825260019290920191908301908301611475565b505050505092915050565b600082601f8301126114ae578081fd5b81356001600160401b038111156114c3578182fd5b6114d6601f8201601f191660200161211e565b91508082528360208285010111156114ed57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061047857600080fd5b600060a08284031215611526578081fd5b61153060a061211e565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b6115798482850161149e565b60808301525092915050565b600060408284031215611596578081fd5b6115a0604061211e565b90508135815260208201356001600160401b038111156115bf57600080fd5b6115cb8482850161141f565b60208301525092915050565b600060a082840312156115e8578081fd5b6115f260a061211e565b905081356115ff81612159565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b600060e0828403121561164b578081fd5b61165560e061211e565b905081358152602082013560208201526116728360408401611506565b60408201526116848360608401611414565b60608201526116968360808401611414565b608082015260a082013560a082015260c08201356001600160401b038111156116be57600080fd5b6116ca8482850161149e565b60c08301525092915050565b805164ffffffffff8116811461047857600080fd5b6000602082840312156116fc578081fd5b8151610d1c81612144565b60008060408385031215611719578081fd5b82356001600160401b0381111561172e578182fd5b61173a8582860161141f565b95602094909401359450505050565b60006020828403121561175a578081fd5b8151610d1c81612159565b600080600060608486031215611779578081fd5b8335925060208401356001600160401b0380821115611796578283fd5b6117a287838801611515565b935060408601359150808211156117b7578283fd5b506117c486828701611585565b9150509250925092565b600080604083850312156117e0578182fd5b50508035926020909101359150565b600060208284031215611800578081fd5b81356001600160401b03811115611815578182fd5b6118218482850161149e565b949350505050565b60006020828403121561183a578081fd5b81356001600160401b0381111561184f578182fd5b61182184828501611515565b600080600080600060a08688031215611872578283fd5b85356001600160401b0380821115611888578485fd5b61189489838a01611515565b965060208801359150808211156118a9578485fd5b6118b589838a0161163a565b955060408801359150808211156118ca578485fd5b6118d689838a016115d7565b945060608801359150808211156118eb578283fd5b6118f789838a01611515565b9350608088013591508082111561190c578283fd5b5061191988828901611585565b9150509295509295909350565b600060608284031215611937578081fd5b611941606061211e565b8251815261195284602085016116d6565b602082015261196484604085016116d6565b60408201529392505050565b600060208284031215611981578081fd5b5051919050565b6000806040838503121561199a578182fd5b8251915060208301516119ac81612144565b809150509250929050565b6001600160a01b03169052565b60008151808452815b818110156119e9576020818501810151868301820152016119cd565b818111156119fa5782602083870101525b50601f01601f19169290920160200192915050565b60028110611a1957fe5b9052565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261182160a08501826119c4565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015611aa55784518252938301936001929092019190830190611a85565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261182160a08501826119c4565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b901515815260200190565b600085825284602083015283604083015260806060830152611b4a60808301846119c4565b9695505050505050565b91825264ffffffffff16602082015260400190565b600060208252610d1c60208301846119c4565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b60208082526049908201527f4e756d626572206f6620737461746520726f6f74732063616e6e6f742065786360408201527f65656420746865206e756d626572206f662063616e6f6e6963616c207472616e60608201526839b0b1ba34b7b7399760b91b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526046908201527f426174636820686561646572206d757374206265206f757473696465206f662060408201527f66726175642070726f6f662077696e646f7720746f206265206f7665727772696060820152653a30b136329760d11b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b602080825260409082018190527f537461746520626174636865732063616e206f6e6c792062652064656c657465908201527f642077697468696e207468652066726175642070726f6f662077696e646f772e606082015260800190565b6020808252603b908201527f537461746520626174636865732063616e206f6e6c792062652064656c65746560408201527f6420627920746865204f564d5f467261756456657269666965722e0000000000606082015260800190565b60208082526025908201527f4261746368206865616465722074696d657374616d702063616e6e6f74206265604082015264207a65726f60d81b606082015260800190565b60208082526023908201527f43616e6e6f74207375626d697420616e20656d7074792073746174652062617460408201526231b41760e91b606082015260800190565b6020808252602f908201527f50726f706f73657220646f6573206e6f74206861766520656e6f75676820636f60408201526e1b1b185d195c985b081c1bdcdd1959608a1b606082015260800190565b6020808252601a908201527f496e76616c6964207472616e73616374696f6e2070726f6f662e000000000000604082015260600190565b60208082526043908201527f43616e6e6f74207075626c69736820737461746520726f6f747320776974686960408201527f6e207468652073657175656e636572207075626c69636174696f6e2077696e6460608201526237bb9760e91b608082015260a00190565b60208082526039908201527f426174636820696e646578206d7573742062652067726561746572207468616e60408201527f206c617374206f7665727772697461626c6520696e6465782e00000000000000606082015260800190565b60208082526014908201527324b73b30b634b2103130ba31b41034b73232bc1760611b604082015260600190565b60006080825285516080830152602086015160a0830152604086015161207260c0840182611a0f565b50606086015161208560e08401826119b7565b5060808601516120996101008401826119b7565b5060a086015161012083015260c086015160e06101408401526120c06101608401826119c4565b905082810360208401526120d48187611ab0565b905082810360408401526120e88186611a1d565b905082810360608401526120fc8185611a5a565b979650505050505050565b9182526001600160a01b0316602082015260400190565b6040518181016001600160401b038111828210171561213c57600080fd5b604052919050565b6001600160a01b038116811461073f57600080fd5b801515811461073f57600080fdfea2646970667358221220a66edb0e39115544d37c9f25631214c1dbf48014cce4fb4ce1f1f8a205797e1f64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806381eb62ef1161007157806381eb62ef146101475780638ca5cbb91461014f5780639418bddd14610162578063b8e189ac14610175578063c17b291b14610188578063e561dddc14610190576100b4565b80632979761b146100b9578063461a4478146100ce5780634d69ee57146100f7578063677f5aff146101175780637aa63a861461012a5780637ad168a01461013f575b600080fd5b6100cc6100c736600461185b565b610198565b005b6100e16100dc3660046117ef565b6102be565b6040516100ee9190611b06565b60405180910390f35b61010a610105366004611765565b610347565b6040516100ee9190611b1a565b61010a6101253660046117ce565b6103ac565b61013261047e565b6040516100ee9190611aef565b610132610497565b6101326104b0565b6100cc61015d366004611707565b6104b6565b61010a610170366004611829565b610677565b6100cc610183366004611829565b6106c2565b610132610742565b610132610749565b6101a185610796565b6101c65760405162461bcd60e51b81526004016101bd90611d5d565b60405180910390fd5b6101cf85610677565b156101ec5760405162461bcd60e51b81526004016101bd90611c94565b60015485511161020e5760405162461bcd60e51b81526004016101bd90611fbe565b600b546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce90610244908790879087908790600401612049565b60206040518083038186803b15801561025c57600080fd5b505afa158015610270573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102949190611749565b6102b05760405162461bcd60e51b81526004016101bd90611f1e565b505091516001555160025550565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906102ef908590600401611b69565b60206040518083038186803b15801561030757600080fd5b505afa15801561031b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033f91906116eb565b90505b919050565b600061035283610796565b61036e5760405162461bcd60e51b81526004016101bd90611d5d565b610386836020015185846000015185602001516107be565b6103a25760405162461bcd60e51b81526004016101bd90611c2f565b5060019392505050565b60007f30a907da349b6916f6bc60eb25a37176d5705fba414069bdb6f625ebf8bb6c558314156104715760028054600b5460405163153f8c5f60e11b815291926001600160a01b0390911691632a7f18be9161040e9190870490600401611aef565b60606040518083038186803b15801561042657600080fd5b505afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e9190611926565b6020015164ffffffffff16109050610478565b5060015481105b92915050565b600080610489610829565b5064ffffffffff1691505090565b6000806104a2610829565b64ffffffffff169250505090565b61070881565b6104be61047e565b81146104dc5760405162461bcd60e51b81526004016101bd90611d00565b600d54604051630156a69560e11b81526001600160a01b03909116906302ad4d2a9061050c903390600401611b06565b60206040518083038186803b15801561052457600080fd5b505afa158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c9190611749565b6105785760405162461bcd60e51b81526004016101bd90611ecf565b60008251116105995760405162461bcd60e51b81526004016101bd90611e8c565b600b60009054906101000a90046001600160a01b03166001600160a01b0316637aa63a866040518163ffffffff1660e01b815260040160206040518083038186803b1580156105e757600080fd5b505afa1580156105fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061f9190611970565b825161062961047e565b0111156106485760405162461bcd60e51b81526004016101bd90611bc0565b61067382423360405160200161065f929190612107565b604051602081830303815290604052610850565b5050565b60008082608001518060200190518101906106929190611988565b509050806106b25760405162461bcd60e51b81526004016101bd90611e47565b4262093a80820111915050919050565b600c546001600160a01b031633146106ec5760405162461bcd60e51b81526004016101bd90611dea565b6106f581610796565b6107115760405162461bcd60e51b81526004016101bd90611d5d565b61071a81610677565b6107365760405162461bcd60e51b81526004016101bd90611d8c565b61073f816109fc565b50565b62093a8081565b60006107556003610a74565b64ffffffffff16905090565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b80516000906107ae9060039064ffffffffff16610a8f565b6107b783610bed565b1492915050565b600083815b835181101561081d5760008482815181106107da57fe5b60209081029190910101519050600186831c8116148015610806576107ff8483610c33565b9350610813565b6108108285610c33565b93505b50506001016107c3565b50909414949350505050565b60008060006108386003610c66565b64ffffffffff602882901c16935060501c9150509091565b60006108806040518060400160405280600d81526020016c27ab26afa9b2b8bab2b731b2b960991b8152506102be565b905060008061088d610829565b9092509050336001600160a01b03841614156108aa5750426108d4565b426107088264ffffffffff1601106108d45760405162461bcd60e51b81526004016101bd90611f55565b606085516001600160401b03811180156108ed57600080fd5b5060405190808252806020026020018201604052801561092157816020015b606081526020019060019003908161090c5790505b50905060005b86518110156109825786818151811061093c57fe5b60200260200101516040516020016109549190611aef565b60405160208183030381529060405282828151811061096f57fe5b6020908102919091010152600101610927565b5061098b6113b4565b6040518060a0016040528061099e610749565b81526020016109ac84610c84565b81528351602082015264ffffffffff8616604082015260600187905290506109f36109d682610bed565b6109ea836040015184606001510186610d23565b60039190610d31565b50505050505050565b610a066003610a74565b64ffffffffff16816000015110610a2f5760405162461bcd60e51b81526004016101bd9061201b565b610a3881610796565b610a545760405162461bcd60e51b81526004016101bd90611d5d565b61073f8160000151610a6b83606001516000610d23565b60039190610eb6565b6000610a7e6113e6565b610a8783610fc6565b519392505050565b6000610a996113e6565b610aa284610fc6565b805190915064ffffffffff168310610acc5760405162461bcd60e51b81526004016101bd90611c66565b6000610aee82604001516001600160401b03168661102890919063ffffffff16565b90506000610b1583604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168510610b76576080830151825464ffffffffff9091168603908110610b5a5760405162461bcd60e51b81526004016101bd90611c66565b6000908152600190920160205250604090205491506104789050565b6080830151606084015164ffffffffff9182168781039290911610610bad5760405162461bcd60e51b81526004016101bd90611c66565b8154811115610bce5760405162461bcd60e51b81526004016101bd90611c66565b8154036000908152600190910160205260409020549250610478915050565b60008160200151826040015183606001518460800151604051602001610c169493929190611b25565b604051602081830303815290604052805190602001209050919050565b60008282604051602001610c48929190611af8565b60405160208183030381529060405280519060200120905092915050565b6000610c706113e6565b610c7983610fc6565b602001519392505050565b6000606082516001600160401b0381118015610c9f57600080fd5b50604051908082528060200260200182016040528015610cc9578160200160208202803683370190505b50905060005b8351811015610d1257838181518110610ce457fe5b602002602001015180519060200120828281518110610cff57fe5b6020908102919091010152600101610ccf565b50610d1c81611044565b9392505050565b602890811b91909117901b90565b610d396113e6565b610d4284610fc6565b90506000610d6682604001516001600160401b03168661102890919063ffffffff16565b8054909150610d7457601081555b8054608083015183510364ffffffffff1610610e6c5760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff92610dc292600401611b54565b602060405180830381600087803b158015610ddc57600080fd5b505af1925050508015610e0c575060408051601f3d908101601f19168201909252610e0991810190611749565b60015b610e1857506000610e1b565b90505b8015610e62576040830180516001016001600160401b03169081905260808401805164ffffffffff90811660608701528551169052610e5b908790611028565b9150610e6a565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff198516918401919091526109f38684611259565b610ebe6113e6565b610ec784610fc6565b9050806000015164ffffffffff168364ffffffffff16108015610efc5750806060015164ffffffffff168364ffffffffff1610155b610f185760405162461bcd60e51b81526004016101bd90611c66565b6000610f3a82604001516001600160401b03168661102890919063ffffffff16565b90506000610f6183604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168564ffffffffff161015610fa457604083018051600019016001600160401b03169052606083015164ffffffffff1660808401525b64ffffffffff8516835264ffffffffff19841660208401526109f38684611259565b610fce6113e6565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b6000600282061561103c5782600601610d1c565b505060040190565b6000808251116110665760405162461bcd60e51b81526004016101bd90611b7c565b81516001141561108c578160008151811061107d57fe5b60200260200101519050610342565b606061109883516112bf565b8351909150839060029006600114156111335783516001016001600160401b03811180156110c557600080fd5b506040519080825280602002602001820160405280156110ef578160200160208202803683370190505b50905060005b84518110156111315784818151811061110a57fe5b602002602001015182828151811061111e57fe5b60209081029190910101526001016110f5565b505b835160009060028106600114156111735783828151811061115057fe5b602002602001015183828151811061116457fe5b60209081029190910101526001015b60018111156112395760018201915060005b600282048110156111e8576111c98482600202815181106111a257fe5b60200260200101518583600202600101815181106111bc57fe5b6020026020010151610c33565b8482815181106111d557fe5b6020908102919091010152600101611185565b50600290046001808216148015611200575080600114155b156112345783828151811061121157fe5b602002602001015183828151811061122557fe5b60209081029190910101526001015b611173565b8260008151811061124657fe5b6020026020010151945050505050919050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b17959094909390929091871461129f5760028a018790555b858a60030154146112b25760038a018690555b5050505050505092915050565b606080826001600160401b03811180156112d857600080fd5b50604051908082528060200260200182016040528015611302578160200160208202803683370190505b50905060006040516020016113179190611aef565b604051602081830303815290604052805190602001208160008151811061133a57fe5b602090810291909101015260015b81518110156113ad5781600182038151811061136057fe5b60200260200101516040516020016113789190611aef565b6040516020818303038152906040528051906020012082828151811061139a57fe5b6020908102919091010152600101611348565b5092915050565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b803561047881612144565b600082601f83011261142f578081fd5b81356001600160401b03811115611444578182fd5b602080820261145482820161211e565b8381529350818401858301828701840188101561147057600080fd5b600092505b84831015611493578035825260019290920191908301908301611475565b505050505092915050565b600082601f8301126114ae578081fd5b81356001600160401b038111156114c3578182fd5b6114d6601f8201601f191660200161211e565b91508082528360208285010111156114ed57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061047857600080fd5b600060a08284031215611526578081fd5b61153060a061211e565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b6115798482850161149e565b60808301525092915050565b600060408284031215611596578081fd5b6115a0604061211e565b90508135815260208201356001600160401b038111156115bf57600080fd5b6115cb8482850161141f565b60208301525092915050565b600060a082840312156115e8578081fd5b6115f260a061211e565b905081356115ff81612159565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b600060e0828403121561164b578081fd5b61165560e061211e565b905081358152602082013560208201526116728360408401611506565b60408201526116848360608401611414565b60608201526116968360808401611414565b608082015260a082013560a082015260c08201356001600160401b038111156116be57600080fd5b6116ca8482850161149e565b60c08301525092915050565b805164ffffffffff8116811461047857600080fd5b6000602082840312156116fc578081fd5b8151610d1c81612144565b60008060408385031215611719578081fd5b82356001600160401b0381111561172e578182fd5b61173a8582860161141f565b95602094909401359450505050565b60006020828403121561175a578081fd5b8151610d1c81612159565b600080600060608486031215611779578081fd5b8335925060208401356001600160401b0380821115611796578283fd5b6117a287838801611515565b935060408601359150808211156117b7578283fd5b506117c486828701611585565b9150509250925092565b600080604083850312156117e0578182fd5b50508035926020909101359150565b600060208284031215611800578081fd5b81356001600160401b03811115611815578182fd5b6118218482850161149e565b949350505050565b60006020828403121561183a578081fd5b81356001600160401b0381111561184f578182fd5b61182184828501611515565b600080600080600060a08688031215611872578283fd5b85356001600160401b0380821115611888578485fd5b61189489838a01611515565b965060208801359150808211156118a9578485fd5b6118b589838a0161163a565b955060408801359150808211156118ca578485fd5b6118d689838a016115d7565b945060608801359150808211156118eb578283fd5b6118f789838a01611515565b9350608088013591508082111561190c578283fd5b5061191988828901611585565b9150509295509295909350565b600060608284031215611937578081fd5b611941606061211e565b8251815261195284602085016116d6565b602082015261196484604085016116d6565b60408201529392505050565b600060208284031215611981578081fd5b5051919050565b6000806040838503121561199a578182fd5b8251915060208301516119ac81612144565b809150509250929050565b6001600160a01b03169052565b60008151808452815b818110156119e9576020818501810151868301820152016119cd565b818111156119fa5782602083870101525b50601f01601f19169290920160200192915050565b60028110611a1957fe5b9052565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261182160a08501826119c4565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015611aa55784518252938301936001929092019190830190611a85565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261182160a08501826119c4565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b901515815260200190565b600085825284602083015283604083015260806060830152611b4a60808301846119c4565b9695505050505050565b91825264ffffffffff16602082015260400190565b600060208252610d1c60208301846119c4565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b60208082526049908201527f4e756d626572206f6620737461746520726f6f74732063616e6e6f742065786360408201527f65656420746865206e756d626572206f662063616e6f6e6963616c207472616e60608201526839b0b1ba34b7b7399760b91b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526046908201527f426174636820686561646572206d757374206265206f757473696465206f662060408201527f66726175642070726f6f662077696e646f7720746f206265206f7665727772696060820152653a30b136329760d11b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b602080825260409082018190527f537461746520626174636865732063616e206f6e6c792062652064656c657465908201527f642077697468696e207468652066726175642070726f6f662077696e646f772e606082015260800190565b6020808252603b908201527f537461746520626174636865732063616e206f6e6c792062652064656c65746560408201527f6420627920746865204f564d5f467261756456657269666965722e0000000000606082015260800190565b60208082526025908201527f4261746368206865616465722074696d657374616d702063616e6e6f74206265604082015264207a65726f60d81b606082015260800190565b60208082526023908201527f43616e6e6f74207375626d697420616e20656d7074792073746174652062617460408201526231b41760e91b606082015260800190565b6020808252602f908201527f50726f706f73657220646f6573206e6f74206861766520656e6f75676820636f60408201526e1b1b185d195c985b081c1bdcdd1959608a1b606082015260800190565b6020808252601a908201527f496e76616c6964207472616e73616374696f6e2070726f6f662e000000000000604082015260600190565b60208082526043908201527f43616e6e6f74207075626c69736820737461746520726f6f747320776974686960408201527f6e207468652073657175656e636572207075626c69636174696f6e2077696e6460608201526237bb9760e91b608082015260a00190565b60208082526039908201527f426174636820696e646578206d7573742062652067726561746572207468616e60408201527f206c617374206f7665727772697461626c6520696e6465782e00000000000000606082015260800190565b60208082526014908201527324b73b30b634b2103130ba31b41034b73232bc1760611b604082015260600190565b60006080825285516080830152602086015160a0830152604086015161207260c0840182611a0f565b50606086015161208560e08401826119b7565b5060808601516120996101008401826119b7565b5060a086015161012083015260c086015160e06101408401526120c06101608401826119c4565b905082810360208401526120d48187611ab0565b905082810360408401526120e88186611a1d565b905082810360608401526120fc8185611a5a565b979650505050505050565b9182526001600160a01b0316602082015260400190565b6040518181016001600160401b038111828210171561213c57600080fd5b604052919050565b6001600160a01b038116811461073f57600080fd5b801515811461073f57600080fdfea2646970667358221220a66edb0e39115544d37c9f25631214c1dbf48014cce4fb4ce1f1f8a205797e1f64736f6c63430007000033",
"bytecode": "0x60806040523480156200001157600080fd5b506040516200247738038062002477833981016040819052620000349162000257565b600080546001600160a01b0319166001600160a01b03831617905560408051808201909152601d81527f4f564d5f43616e6f6e6963616c5472616e73616374696f6e436861696e00000060208201526200008e9062000195565b600b80546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152601181527027ab26afa33930bab22b32b934b334b2b960791b6020820152620000e19062000195565b600c80546001600160a01b0319166001600160a01b039290921691909117905560408051808201909152600f81526e27ab26afa137b73226b0b730b3b2b960891b6020820152620001329062000195565b600d80546001600160a01b0319166001600160a01b03929092169190911790556200018e600360107f96df3abc26f419f0cc8d819984a2b87820d08c41bf1b84a59ce36f5d7336d1913062000222602090811b6200076117901c565b50620002dd565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190620001c890859060040162000287565b60206040518083038186803b158015620001e157600080fd5b505afa158015620001f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021c919062000257565b92915050565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b60006020828403121562000269578081fd5b81516001600160a01b038116811462000280578182fd5b9392505050565b6000602080835283518082850152825b81811015620002b55785810183015185820160400152820162000297565b81811115620002c75783604083870101525b50601f01601f1916929092016040019392505050565b61218a80620002ed6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806381eb62ef1161007157806381eb62ef146101475780638ca5cbb91461014f5780639418bddd14610162578063b8e189ac14610175578063c17b291b14610188578063e561dddc14610190576100b4565b80632979761b146100b9578063461a4478146100ce5780634d69ee57146100f7578063677f5aff146101175780637aa63a861461012a5780637ad168a01461013f575b600080fd5b6100cc6100c736600461185b565b610198565b005b6100e16100dc3660046117ef565b6102be565b6040516100ee9190611aeb565b60405180910390f35b61010a610105366004611765565b610347565b6040516100ee9190611aff565b61010a6101253660046117ce565b6103ac565b61013261047e565b6040516100ee9190611ad4565b610132610497565b6101326104b0565b6100cc61015d366004611707565b6104b6565b61010a610170366004611829565b610677565b6100cc610183366004611829565b6106c2565b610132610742565b610132610749565b6101a185610796565b6101c65760405162461bcd60e51b81526004016101bd90611d42565b60405180910390fd5b6101cf85610677565b156101ec5760405162461bcd60e51b81526004016101bd90611c79565b60015485511161020e5760405162461bcd60e51b81526004016101bd90611fa3565b600b546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce9061024490879087908790879060040161202e565b60206040518083038186803b15801561025c57600080fd5b505afa158015610270573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102949190611749565b6102b05760405162461bcd60e51b81526004016101bd90611f03565b505091516001555160025550565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906102ef908590600401611b4e565b60206040518083038186803b15801561030757600080fd5b505afa15801561031b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033f91906116eb565b90505b919050565b600061035283610796565b61036e5760405162461bcd60e51b81526004016101bd90611d42565b610386836020015185846000015185602001516107be565b6103a25760405162461bcd60e51b81526004016101bd90611c14565b5060019392505050565b60007f30a907da349b6916f6bc60eb25a37176d5705fba414069bdb6f625ebf8bb6c558314156104715760028054600b5460405163153f8c5f60e11b815291926001600160a01b0390911691632a7f18be9161040e9190870490600401611ad4565b60606040518083038186803b15801561042657600080fd5b505afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e9190611926565b6020015164ffffffffff16109050610478565b5060015481105b92915050565b600080610489610829565b5064ffffffffff1691505090565b6000806104a2610829565b64ffffffffff169250505090565b61070881565b6104be61047e565b81146104dc5760405162461bcd60e51b81526004016101bd90611ce5565b600d54604051630156a69560e11b81526001600160a01b03909116906302ad4d2a9061050c903390600401611aeb565b60206040518083038186803b15801561052457600080fd5b505afa158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c9190611749565b6105785760405162461bcd60e51b81526004016101bd90611eb4565b60008251116105995760405162461bcd60e51b81526004016101bd90611e71565b600b60009054906101000a90046001600160a01b03166001600160a01b0316637aa63a866040518163ffffffff1660e01b815260040160206040518083038186803b1580156105e757600080fd5b505afa1580156105fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061f9190611970565b825161062961047e565b0111156106485760405162461bcd60e51b81526004016101bd90611ba5565b61067382423360405160200161065f9291906120ea565b604051602081830303815290604052610850565b5050565b60008082608001518060200190518101906106929190611988565b509050806106b25760405162461bcd60e51b81526004016101bd90611e2c565b4262093a80820111915050919050565b600c546001600160a01b031633146106ec5760405162461bcd60e51b81526004016101bd90611dcf565b6106f581610796565b6107115760405162461bcd60e51b81526004016101bd90611d42565b61071a81610677565b6107365760405162461bcd60e51b81526004016101bd90611d71565b61073f816109fc565b50565b62093a8081565b60006107556003610a74565b64ffffffffff16905090565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b80516000906107ae9060039064ffffffffff16610a8f565b6107b783610bed565b1492915050565b600083815b835181101561081d5760008482815181106107da57fe5b60209081029190910101519050600186831c8116148015610806576107ff8483610c33565b9350610813565b6108108285610c33565b93505b50506001016107c3565b50909414949350505050565b60008060006108386003610c66565b64ffffffffff602882901c16935060501c9150509091565b60006108806040518060400160405280600d81526020016c27ab26afa9b2b8bab2b731b2b960991b8152506102be565b905060008061088d610829565b9092509050336001600160a01b03841614156108aa5750426108d4565b426107088264ffffffffff1601106108d45760405162461bcd60e51b81526004016101bd90611f3a565b606085516001600160401b03811180156108ed57600080fd5b5060405190808252806020026020018201604052801561092157816020015b606081526020019060019003908161090c5790505b50905060005b86518110156109825786818151811061093c57fe5b60200260200101516040516020016109549190611ad4565b60405160208183030381529060405282828151811061096f57fe5b6020908102919091010152600101610927565b5061098b6113b4565b6040518060a0016040528061099e610749565b81526020016109ac84610c84565b81528351602082015264ffffffffff8616604082015260600187905290506109f36109d682610bed565b6109ea836040015184606001510186610d23565b60039190610d31565b50505050505050565b610a066003610a74565b64ffffffffff16816000015110610a2f5760405162461bcd60e51b81526004016101bd90612000565b610a3881610796565b610a545760405162461bcd60e51b81526004016101bd90611d42565b61073f8160000151610a6b83606001516000610d23565b60039190610eb6565b6000610a7e6113e6565b610a8783610fc6565b519392505050565b6000610a996113e6565b610aa284610fc6565b805190915064ffffffffff168310610acc5760405162461bcd60e51b81526004016101bd90611c4b565b6000610aee82604001516001600160401b03168661102890919063ffffffff16565b90506000610b1583604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168510610b76576080830151825464ffffffffff9091168603908110610b5a5760405162461bcd60e51b81526004016101bd90611c4b565b6000908152600190920160205250604090205491506104789050565b6080830151606084015164ffffffffff9182168781039290911610610bad5760405162461bcd60e51b81526004016101bd90611c4b565b8154811115610bce5760405162461bcd60e51b81526004016101bd90611c4b565b8154036000908152600190910160205260409020549250610478915050565b60008160200151826040015183606001518460800151604051602001610c169493929190611b0a565b604051602081830303815290604052805190602001209050919050565b60008282604051602001610c48929190611add565b60405160208183030381529060405280519060200120905092915050565b6000610c706113e6565b610c7983610fc6565b602001519392505050565b6000606082516001600160401b0381118015610c9f57600080fd5b50604051908082528060200260200182016040528015610cc9578160200160208202803683370190505b50905060005b8351811015610d1257838181518110610ce457fe5b602002602001015180519060200120828281518110610cff57fe5b6020908102919091010152600101610ccf565b50610d1c81611044565b9392505050565b602890811b91909117901b90565b610d396113e6565b610d4284610fc6565b90506000610d6682604001516001600160401b03168661102890919063ffffffff16565b8054909150610d7457601081555b8054608083015183510364ffffffffff1610610e6c5760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff92610dc292600401611b39565b602060405180830381600087803b158015610ddc57600080fd5b505af1925050508015610e0c575060408051601f3d908101601f19168201909252610e0991810190611749565b60015b610e1857506000610e1b565b90505b8015610e62576040830180516001016001600160401b03169081905260808401805164ffffffffff90811660608701528551169052610e5b908790611028565b9150610e6a565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff198516918401919091526109f38684611259565b610ebe6113e6565b610ec784610fc6565b9050806000015164ffffffffff168364ffffffffff16108015610efc5750806060015164ffffffffff168364ffffffffff1610155b610f185760405162461bcd60e51b81526004016101bd90611c4b565b6000610f3a82604001516001600160401b03168661102890919063ffffffff16565b90506000610f6183604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168564ffffffffff161015610fa457604083018051600019016001600160401b03169052606083015164ffffffffff1660808401525b64ffffffffff8516835264ffffffffff19841660208401526109f38684611259565b610fce6113e6565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b6000600282061561103c5782600601610d1c565b505060040190565b6000808251116110665760405162461bcd60e51b81526004016101bd90611b61565b81516001141561108c578160008151811061107d57fe5b60200260200101519050610342565b606061109883516112bf565b8351909150839060029006600114156111335783516001016001600160401b03811180156110c557600080fd5b506040519080825280602002602001820160405280156110ef578160200160208202803683370190505b50905060005b84518110156111315784818151811061110a57fe5b602002602001015182828151811061111e57fe5b60209081029190910101526001016110f5565b505b835160009060028106600114156111735783828151811061115057fe5b602002602001015183828151811061116457fe5b60209081029190910101526001015b60018111156112395760018201915060005b600282048110156111e8576111c98482600202815181106111a257fe5b60200260200101518583600202600101815181106111bc57fe5b6020026020010151610c33565b8482815181106111d557fe5b6020908102919091010152600101611185565b50600290046001808216148015611200575080600114155b156112345783828151811061121157fe5b602002602001015183828151811061122557fe5b60209081029190910101526001015b611173565b8260008151811061124657fe5b6020026020010151945050505050919050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b17959094909390929091871461129f5760028a018790555b858a60030154146112b25760038a018690555b5050505050505092915050565b606080826001600160401b03811180156112d857600080fd5b50604051908082528060200260200182016040528015611302578160200160208202803683370190505b50905060006040516020016113179190611ad4565b604051602081830303815290604052805190602001208160008151811061133a57fe5b602090810291909101015260015b81518110156113ad5781600182038151811061136057fe5b60200260200101516040516020016113789190611ad4565b6040516020818303038152906040528051906020012082828151811061139a57fe5b6020908102919091010152600101611348565b5092915050565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b803561047881612131565b600082601f83011261142f578081fd5b81356001600160401b03811115611444578182fd5b6020808202611454828201612101565b8381529350818401858301828701840188101561147057600080fd5b600092505b84831015611493578035825260019290920191908301908301611475565b505050505092915050565b600082601f8301126114ae578081fd5b81356001600160401b038111156114c3578182fd5b6114d6601f8201601f1916602001612101565b91508082528360208285010111156114ed57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061047857600080fd5b600060a08284031215611526578081fd5b61153060a0612101565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b6115798482850161149e565b60808301525092915050565b600060408284031215611596578081fd5b6115a06040612101565b90508135815260208201356001600160401b038111156115bf57600080fd5b6115cb8482850161141f565b60208301525092915050565b600060a082840312156115e8578081fd5b6115f260a0612101565b905081356115ff81612146565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b600060e0828403121561164b578081fd5b61165560e0612101565b905081358152602082013560208201526116728360408401611506565b60408201526116848360608401611414565b60608201526116968360808401611414565b608082015260a082013560a082015260c08201356001600160401b038111156116be57600080fd5b6116ca8482850161149e565b60c08301525092915050565b805164ffffffffff8116811461047857600080fd5b6000602082840312156116fc578081fd5b8151610d1c81612131565b60008060408385031215611719578081fd5b82356001600160401b0381111561172e578182fd5b61173a8582860161141f565b95602094909401359450505050565b60006020828403121561175a578081fd5b8151610d1c81612146565b600080600060608486031215611779578081fd5b8335925060208401356001600160401b0380821115611796578283fd5b6117a287838801611515565b935060408601359150808211156117b7578283fd5b506117c486828701611585565b9150509250925092565b600080604083850312156117e0578182fd5b50508035926020909101359150565b600060208284031215611800578081fd5b81356001600160401b03811115611815578182fd5b6118218482850161149e565b949350505050565b60006020828403121561183a578081fd5b81356001600160401b0381111561184f578182fd5b61182184828501611515565b600080600080600060a08688031215611872578283fd5b85356001600160401b0380821115611888578485fd5b61189489838a01611515565b965060208801359150808211156118a9578485fd5b6118b589838a0161163a565b955060408801359150808211156118ca578485fd5b6118d689838a016115d7565b945060608801359150808211156118eb578283fd5b6118f789838a01611515565b9350608088013591508082111561190c578283fd5b5061191988828901611585565b9150509295509295909350565b600060608284031215611937578081fd5b6119416060612101565b8251815261195284602085016116d6565b602082015261196484604085016116d6565b60408201529392505050565b600060208284031215611981578081fd5b5051919050565b6000806040838503121561199a578182fd5b8251915060208301516119ac81612131565b809150509250929050565b60008151808452815b818110156119dc576020818501810151868301820152016119c0565b818111156119ed5782602083870101525b50601f01601f19169290920160200192915050565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261182160a08501826119b7565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015611a8a5784518252938301936001929092019190830190611a6a565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261182160a08501826119b7565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b901515815260200190565b600085825284602083015283604083015260806060830152611b2f60808301846119b7565b9695505050505050565b91825264ffffffffff16602082015260400190565b600060208252610d1c60208301846119b7565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b60208082526049908201527f4e756d626572206f6620737461746520726f6f74732063616e6e6f742065786360408201527f65656420746865206e756d626572206f662063616e6f6e6963616c207472616e60608201526839b0b1ba34b7b7399760b91b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526046908201527f426174636820686561646572206d757374206265206f757473696465206f662060408201527f66726175642070726f6f662077696e646f7720746f206265206f7665727772696060820152653a30b136329760d11b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b602080825260409082018190527f537461746520626174636865732063616e206f6e6c792062652064656c657465908201527f642077697468696e207468652066726175642070726f6f662077696e646f772e606082015260800190565b6020808252603b908201527f537461746520626174636865732063616e206f6e6c792062652064656c65746560408201527f6420627920746865204f564d5f467261756456657269666965722e0000000000606082015260800190565b60208082526025908201527f4261746368206865616465722074696d657374616d702063616e6e6f74206265604082015264207a65726f60d81b606082015260800190565b60208082526023908201527f43616e6e6f74207375626d697420616e20656d7074792073746174652062617460408201526231b41760e91b606082015260800190565b6020808252602f908201527f50726f706f73657220646f6573206e6f74206861766520656e6f75676820636f60408201526e1b1b185d195c985b081c1bdcdd1959608a1b606082015260800190565b6020808252601a908201527f496e76616c6964207472616e73616374696f6e2070726f6f662e000000000000604082015260600190565b60208082526043908201527f43616e6e6f74207075626c69736820737461746520726f6f747320776974686960408201527f6e207468652073657175656e636572207075626c69636174696f6e2077696e6460608201526237bb9760e91b608082015260a00190565b60208082526039908201527f426174636820696e646578206d7573742062652067726561746572207468616e60408201527f206c617374206f7665727772697461626c6520696e6465782e00000000000000606082015260800190565b60208082526014908201527324b73b30b634b2103130ba31b41034b73232bc1760611b604082015260600190565b60006080825285516080830152602086015160a0830152604086015161205381612127565b8060c084015250606086015160018060a01b0380821660e085015280608089015116610100850152505060a086015161012083015260c086015160e06101408401526120a36101608401826119b7565b905082810360208401526120b78187611a95565b905082810360408401526120cb8186611a02565b905082810360608401526120df8185611a3f565b979650505050505050565b9182526001600160a01b0316602082015260400190565b6040518181016001600160401b038111828210171561211f57600080fd5b604052919050565b6002811061073f57fe5b6001600160a01b038116811461073f57600080fd5b801515811461073f57600080fdfea26469706673582212200cb074be623b3d17d845200459ebe861f1e590cbb64feb9f0299aeb43a02bffb64736f6c63430007000033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806381eb62ef1161007157806381eb62ef146101475780638ca5cbb91461014f5780639418bddd14610162578063b8e189ac14610175578063c17b291b14610188578063e561dddc14610190576100b4565b80632979761b146100b9578063461a4478146100ce5780634d69ee57146100f7578063677f5aff146101175780637aa63a861461012a5780637ad168a01461013f575b600080fd5b6100cc6100c736600461185b565b610198565b005b6100e16100dc3660046117ef565b6102be565b6040516100ee9190611aeb565b60405180910390f35b61010a610105366004611765565b610347565b6040516100ee9190611aff565b61010a6101253660046117ce565b6103ac565b61013261047e565b6040516100ee9190611ad4565b610132610497565b6101326104b0565b6100cc61015d366004611707565b6104b6565b61010a610170366004611829565b610677565b6100cc610183366004611829565b6106c2565b610132610742565b610132610749565b6101a185610796565b6101c65760405162461bcd60e51b81526004016101bd90611d42565b60405180910390fd5b6101cf85610677565b156101ec5760405162461bcd60e51b81526004016101bd90611c79565b60015485511161020e5760405162461bcd60e51b81526004016101bd90611fa3565b600b546040516326f2b4e760e11b81526001600160a01b0390911690634de569ce9061024490879087908790879060040161202e565b60206040518083038186803b15801561025c57600080fd5b505afa158015610270573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102949190611749565b6102b05760405162461bcd60e51b81526004016101bd90611f03565b505091516001555160025550565b6000805460405163bf40fac160e01b81526001600160a01b039091169063bf40fac1906102ef908590600401611b4e565b60206040518083038186803b15801561030757600080fd5b505afa15801561031b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033f91906116eb565b90505b919050565b600061035283610796565b61036e5760405162461bcd60e51b81526004016101bd90611d42565b610386836020015185846000015185602001516107be565b6103a25760405162461bcd60e51b81526004016101bd90611c14565b5060019392505050565b60007f30a907da349b6916f6bc60eb25a37176d5705fba414069bdb6f625ebf8bb6c558314156104715760028054600b5460405163153f8c5f60e11b815291926001600160a01b0390911691632a7f18be9161040e9190870490600401611ad4565b60606040518083038186803b15801561042657600080fd5b505afa15801561043a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045e9190611926565b6020015164ffffffffff16109050610478565b5060015481105b92915050565b600080610489610829565b5064ffffffffff1691505090565b6000806104a2610829565b64ffffffffff169250505090565b61070881565b6104be61047e565b81146104dc5760405162461bcd60e51b81526004016101bd90611ce5565b600d54604051630156a69560e11b81526001600160a01b03909116906302ad4d2a9061050c903390600401611aeb565b60206040518083038186803b15801561052457600080fd5b505afa158015610538573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055c9190611749565b6105785760405162461bcd60e51b81526004016101bd90611eb4565b60008251116105995760405162461bcd60e51b81526004016101bd90611e71565b600b60009054906101000a90046001600160a01b03166001600160a01b0316637aa63a866040518163ffffffff1660e01b815260040160206040518083038186803b1580156105e757600080fd5b505afa1580156105fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061f9190611970565b825161062961047e565b0111156106485760405162461bcd60e51b81526004016101bd90611ba5565b61067382423360405160200161065f9291906120ea565b604051602081830303815290604052610850565b5050565b60008082608001518060200190518101906106929190611988565b509050806106b25760405162461bcd60e51b81526004016101bd90611e2c565b4262093a80820111915050919050565b600c546001600160a01b031633146106ec5760405162461bcd60e51b81526004016101bd90611dcf565b6106f581610796565b6107115760405162461bcd60e51b81526004016101bd90611d42565b61071a81610677565b6107365760405162461bcd60e51b81526004016101bd90611d71565b61073f816109fc565b50565b62093a8081565b60006107556003610a74565b64ffffffffff16905090565b6004840183905560068401929092558255600190910180546001600160a01b0319166001600160a01b03909216919091179055565b80516000906107ae9060039064ffffffffff16610a8f565b6107b783610bed565b1492915050565b600083815b835181101561081d5760008482815181106107da57fe5b60209081029190910101519050600186831c8116148015610806576107ff8483610c33565b9350610813565b6108108285610c33565b93505b50506001016107c3565b50909414949350505050565b60008060006108386003610c66565b64ffffffffff602882901c16935060501c9150509091565b60006108806040518060400160405280600d81526020016c27ab26afa9b2b8bab2b731b2b960991b8152506102be565b905060008061088d610829565b9092509050336001600160a01b03841614156108aa5750426108d4565b426107088264ffffffffff1601106108d45760405162461bcd60e51b81526004016101bd90611f3a565b606085516001600160401b03811180156108ed57600080fd5b5060405190808252806020026020018201604052801561092157816020015b606081526020019060019003908161090c5790505b50905060005b86518110156109825786818151811061093c57fe5b60200260200101516040516020016109549190611ad4565b60405160208183030381529060405282828151811061096f57fe5b6020908102919091010152600101610927565b5061098b6113b4565b6040518060a0016040528061099e610749565b81526020016109ac84610c84565b81528351602082015264ffffffffff8616604082015260600187905290506109f36109d682610bed565b6109ea836040015184606001510186610d23565b60039190610d31565b50505050505050565b610a066003610a74565b64ffffffffff16816000015110610a2f5760405162461bcd60e51b81526004016101bd90612000565b610a3881610796565b610a545760405162461bcd60e51b81526004016101bd90611d42565b61073f8160000151610a6b83606001516000610d23565b60039190610eb6565b6000610a7e6113e6565b610a8783610fc6565b519392505050565b6000610a996113e6565b610aa284610fc6565b805190915064ffffffffff168310610acc5760405162461bcd60e51b81526004016101bd90611c4b565b6000610aee82604001516001600160401b03168661102890919063ffffffff16565b90506000610b1583604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168510610b76576080830151825464ffffffffff9091168603908110610b5a5760405162461bcd60e51b81526004016101bd90611c4b565b6000908152600190920160205250604090205491506104789050565b6080830151606084015164ffffffffff9182168781039290911610610bad5760405162461bcd60e51b81526004016101bd90611c4b565b8154811115610bce5760405162461bcd60e51b81526004016101bd90611c4b565b8154036000908152600190910160205260409020549250610478915050565b60008160200151826040015183606001518460800151604051602001610c169493929190611b0a565b604051602081830303815290604052805190602001209050919050565b60008282604051602001610c48929190611add565b60405160208183030381529060405280519060200120905092915050565b6000610c706113e6565b610c7983610fc6565b602001519392505050565b6000606082516001600160401b0381118015610c9f57600080fd5b50604051908082528060200260200182016040528015610cc9578160200160208202803683370190505b50905060005b8351811015610d1257838181518110610ce457fe5b602002602001015180519060200120828281518110610cff57fe5b6020908102919091010152600101610ccf565b50610d1c81611044565b9392505050565b602890811b91909117901b90565b610d396113e6565b610d4284610fc6565b90506000610d6682604001516001600160401b03168661102890919063ffffffff16565b8054909150610d7457601081555b8054608083015183510364ffffffffff1610610e6c5760018501548554608084015160405163677f5aff60e01b81526000936001600160a01b03169263677f5aff92610dc292600401611b39565b602060405180830381600087803b158015610ddc57600080fd5b505af1925050508015610e0c575060408051601f3d908101601f19168201909252610e0991810190611749565b60015b610e1857506000610e1b565b90505b8015610e62576040830180516001016001600160401b03169081905260808401805164ffffffffff90811660608701528551169052610e5b908790611028565b9150610e6a565b815460020282555b505b608082015182510364ffffffffff9081166000818152600184810160209081526040909220889055855101909216845264ffffffffff198516918401919091526109f38684611259565b610ebe6113e6565b610ec784610fc6565b9050806000015164ffffffffff168364ffffffffff16108015610efc5750806060015164ffffffffff168364ffffffffff1610155b610f185760405162461bcd60e51b81526004016101bd90611c4b565b6000610f3a82604001516001600160401b03168661102890919063ffffffff16565b90506000610f6183604001516001016001600160401b03168761102890919063ffffffff16565b9050826080015164ffffffffff168564ffffffffff161015610fa457604083018051600019016001600160401b03169052606083015164ffffffffff1660808401525b64ffffffffff8516835264ffffffffff19841660208401526109f38684611259565b610fce6113e6565b5060028101546003909101546040805160a08101825264ffffffffff808516825264ffffffffff1990941660208201526001600160401b038316818301529082901c8316606082015260689190911c909116608082015290565b6000600282061561103c5782600601610d1c565b505060040190565b6000808251116110665760405162461bcd60e51b81526004016101bd90611b61565b81516001141561108c578160008151811061107d57fe5b60200260200101519050610342565b606061109883516112bf565b8351909150839060029006600114156111335783516001016001600160401b03811180156110c557600080fd5b506040519080825280602002602001820160405280156110ef578160200160208202803683370190505b50905060005b84518110156111315784818151811061110a57fe5b602002602001015182828151811061111e57fe5b60209081029190910101526001016110f5565b505b835160009060028106600114156111735783828151811061115057fe5b602002602001015183828151811061116457fe5b60209081029190910101526001015b60018111156112395760018201915060005b600282048110156111e8576111c98482600202815181106111a257fe5b60200260200101518583600202600101815181106111bc57fe5b6020026020010151610c33565b8482815181106111d557fe5b6020908102919091010152600101611185565b50600290046001808216148015611200575080600114155b156112345783828151811061121157fe5b602002602001015183828151811061122557fe5b60209081029190910101526001015b611173565b8260008151811061124657fe5b6020026020010151945050505050919050565b80516020820151604080840151606085015160808601516002880154600096868117969584901b8517606884901b17959094909390929091871461129f5760028a018790555b858a60030154146112b25760038a018690555b5050505050505092915050565b606080826001600160401b03811180156112d857600080fd5b50604051908082528060200260200182016040528015611302578160200160208202803683370190505b50905060006040516020016113179190611ad4565b604051602081830303815290604052805190602001208160008151811061133a57fe5b602090810291909101015260015b81518110156113ad5781600182038151811061136057fe5b60200260200101516040516020016113789190611ad4565b6040516020818303038152906040528051906020012082828151811061139a57fe5b6020908102919091010152600101611348565b5092915050565b6040518060a0016040528060008152602001600080191681526020016000815260200160008152602001606081525090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b803561047881612131565b600082601f83011261142f578081fd5b81356001600160401b03811115611444578182fd5b6020808202611454828201612101565b8381529350818401858301828701840188101561147057600080fd5b600092505b84831015611493578035825260019290920191908301908301611475565b505050505092915050565b600082601f8301126114ae578081fd5b81356001600160401b038111156114c3578182fd5b6114d6601f8201601f1916602001612101565b91508082528360208285010111156114ed57600080fd5b8060208401602084013760009082016020015292915050565b80356002811061047857600080fd5b600060a08284031215611526578081fd5b61153060a0612101565b90508135815260208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b6115798482850161149e565b60808301525092915050565b600060408284031215611596578081fd5b6115a06040612101565b90508135815260208201356001600160401b038111156115bf57600080fd5b6115cb8482850161141f565b60208301525092915050565b600060a082840312156115e8578081fd5b6115f260a0612101565b905081356115ff81612146565b8082525060208201356020820152604082013560408201526060820135606082015260808201356001600160401b0381111561156d57600080fd5b600060e0828403121561164b578081fd5b61165560e0612101565b905081358152602082013560208201526116728360408401611506565b60408201526116848360608401611414565b60608201526116968360808401611414565b608082015260a082013560a082015260c08201356001600160401b038111156116be57600080fd5b6116ca8482850161149e565b60c08301525092915050565b805164ffffffffff8116811461047857600080fd5b6000602082840312156116fc578081fd5b8151610d1c81612131565b60008060408385031215611719578081fd5b82356001600160401b0381111561172e578182fd5b61173a8582860161141f565b95602094909401359450505050565b60006020828403121561175a578081fd5b8151610d1c81612146565b600080600060608486031215611779578081fd5b8335925060208401356001600160401b0380821115611796578283fd5b6117a287838801611515565b935060408601359150808211156117b7578283fd5b506117c486828701611585565b9150509250925092565b600080604083850312156117e0578182fd5b50508035926020909101359150565b600060208284031215611800578081fd5b81356001600160401b03811115611815578182fd5b6118218482850161149e565b949350505050565b60006020828403121561183a578081fd5b81356001600160401b0381111561184f578182fd5b61182184828501611515565b600080600080600060a08688031215611872578283fd5b85356001600160401b0380821115611888578485fd5b61189489838a01611515565b965060208801359150808211156118a9578485fd5b6118b589838a0161163a565b955060408801359150808211156118ca578485fd5b6118d689838a016115d7565b945060608801359150808211156118eb578283fd5b6118f789838a01611515565b9350608088013591508082111561190c578283fd5b5061191988828901611585565b9150509295509295909350565b600060608284031215611937578081fd5b6119416060612101565b8251815261195284602085016116d6565b602082015261196484604085016116d6565b60408201529392505050565b600060208284031215611981578081fd5b5051919050565b6000806040838503121561199a578182fd5b8251915060208301516119ac81612131565b809150509250929050565b60008151808452815b818110156119dc576020818501810151868301820152016119c0565b818111156119ed5782602083870101525b50601f01601f19169290920160200192915050565b600081518352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261182160a08501826119b7565b6000604083018251845260208084015160408287015282815180855260608801915083830194508592505b80831015611a8a5784518252938301936001929092019190830190611a6a565b509695505050505050565b6000815115158352602082015160208401526040820151604084015260608201516060840152608082015160a0608085015261182160a08501826119b7565b90815260200190565b918252602082015260400190565b6001600160a01b0391909116815260200190565b901515815260200190565b600085825284602083015283604083015260806060830152611b2f60808301846119b7565b9695505050505050565b91825264ffffffffff16602082015260400190565b600060208252610d1c60208301846119b7565b60208082526024908201527f4d7573742070726f76696465206174206c65617374206f6e65206c656166206860408201526330b9b41760e11b606082015260800190565b60208082526049908201527f4e756d626572206f6620737461746520726f6f74732063616e6e6f742065786360408201527f65656420746865206e756d626572206f662063616e6f6e6963616c207472616e60608201526839b0b1ba34b7b7399760b91b608082015260a00190565b60208082526018908201527f496e76616c696420696e636c7573696f6e2070726f6f662e0000000000000000604082015260600190565b60208082526014908201527324b73232bc1037baba1037b3103137bab732399760611b604082015260600190565b60208082526046908201527f426174636820686561646572206d757374206265206f757473696465206f662060408201527f66726175642070726f6f662077696e646f7720746f206265206f7665727772696060820152653a30b136329760d11b608082015260a00190565b6020808252603d908201527f41637475616c20626174636820737461727420696e64657820646f6573206e6f60408201527f74206d6174636820657870656374656420737461727420696e6465782e000000606082015260800190565b60208082526015908201527424b73b30b634b2103130ba31b4103432b0b232b91760591b604082015260600190565b602080825260409082018190527f537461746520626174636865732063616e206f6e6c792062652064656c657465908201527f642077697468696e207468652066726175642070726f6f662077696e646f772e606082015260800190565b6020808252603b908201527f537461746520626174636865732063616e206f6e6c792062652064656c65746560408201527f6420627920746865204f564d5f467261756456657269666965722e0000000000606082015260800190565b60208082526025908201527f4261746368206865616465722074696d657374616d702063616e6e6f74206265604082015264207a65726f60d81b606082015260800190565b60208082526023908201527f43616e6e6f74207375626d697420616e20656d7074792073746174652062617460408201526231b41760e91b606082015260800190565b6020808252602f908201527f50726f706f73657220646f6573206e6f74206861766520656e6f75676820636f60408201526e1b1b185d195c985b081c1bdcdd1959608a1b606082015260800190565b6020808252601a908201527f496e76616c6964207472616e73616374696f6e2070726f6f662e000000000000604082015260600190565b60208082526043908201527f43616e6e6f74207075626c69736820737461746520726f6f747320776974686960408201527f6e207468652073657175656e636572207075626c69636174696f6e2077696e6460608201526237bb9760e91b608082015260a00190565b60208082526039908201527f426174636820696e646578206d7573742062652067726561746572207468616e60408201527f206c617374206f7665727772697461626c6520696e6465782e00000000000000606082015260800190565b60208082526014908201527324b73b30b634b2103130ba31b41034b73232bc1760611b604082015260600190565b60006080825285516080830152602086015160a0830152604086015161205381612127565b8060c084015250606086015160018060a01b0380821660e085015280608089015116610100850152505060a086015161012083015260c086015160e06101408401526120a36101608401826119b7565b905082810360208401526120b78187611a95565b905082810360408401526120cb8186611a02565b905082810360608401526120df8185611a3f565b979650505050505050565b9182526001600160a01b0316602082015260400190565b6040518181016001600160401b038111828210171561211f57600080fd5b604052919050565b6002811061073f57fe5b6001600160a01b038116811461073f57600080fd5b801515811461073f57600080fdfea26469706673582212200cb074be623b3d17d845200459ebe861f1e590cbb64feb9f0299aeb43a02bffb64736f6c63430007000033",
"linkReferences": {},

@@ -467,3 +467,3 @@ "deployedLinkReferences": {},

{
"astId": 17088,
"astId": 17095,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -473,6 +473,6 @@ "label": "libAddressManager",

"slot": "0",
"type": "t_contract(Lib_AddressManager)17081"
"type": "t_contract(Lib_AddressManager)17088"
},
{
"astId": 10071,
"astId": 10072,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -485,3 +485,3 @@ "label": "lastDeletableIndex",

{
"astId": 10073,
"astId": 10074,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -494,3 +494,3 @@ "label": "lastDeletableTimestamp",

{
"astId": 10075,
"astId": 10076,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -500,6 +500,6 @@ "label": "batches",

"slot": "3",
"type": "t_struct(RingBuffer)21513_storage"
"type": "t_struct(RingBuffer)21520_storage"
},
{
"astId": 10077,
"astId": 10078,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -509,6 +509,6 @@ "label": "ovmCanonicalTransactionChain",

"slot": "11",
"type": "t_contract(iOVM_CanonicalTransactionChain)15757"
"type": "t_contract(iOVM_CanonicalTransactionChain)15764"
},
{
"astId": 10079,
"astId": 10080,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -518,6 +518,6 @@ "label": "ovmFraudVerifier",

"slot": "12",
"type": "t_contract(iOVM_FraudVerifier)16542"
"type": "t_contract(iOVM_FraudVerifier)16549"
},
{
"astId": 10081,
"astId": 10082,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -527,3 +527,3 @@ "label": "ovmBondManager",

"slot": "13",
"type": "t_contract(iOVM_BondManager)16494"
"type": "t_contract(iOVM_BondManager)16501"
}

@@ -537,3 +537,3 @@ ],

},
"t_contract(Lib_AddressManager)17081": {
"t_contract(Lib_AddressManager)17088": {
"encoding": "inplace",

@@ -543,3 +543,3 @@ "label": "contract Lib_AddressManager",

},
"t_contract(iOVM_BondManager)16494": {
"t_contract(iOVM_BondManager)16501": {
"encoding": "inplace",

@@ -549,3 +549,3 @@ "label": "contract iOVM_BondManager",

},
"t_contract(iOVM_CanonicalTransactionChain)15757": {
"t_contract(iOVM_CanonicalTransactionChain)15764": {
"encoding": "inplace",

@@ -555,3 +555,3 @@ "label": "contract iOVM_CanonicalTransactionChain",

},
"t_contract(iOVM_FraudVerifier)16542": {
"t_contract(iOVM_FraudVerifier)16549": {
"encoding": "inplace",

@@ -561,3 +561,3 @@ "label": "contract iOVM_FraudVerifier",

},
"t_contract(iRingBufferOverwriter)21490": {
"t_contract(iRingBufferOverwriter)21497": {
"encoding": "inplace",

@@ -574,3 +574,3 @@ "label": "contract iRingBufferOverwriter",

},
"t_struct(Buffer)21500_storage": {
"t_struct(Buffer)21507_storage": {
"encoding": "inplace",

@@ -580,3 +580,3 @@ "label": "struct Lib_RingBuffer.Buffer",

{
"astId": 21495,
"astId": 21502,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -589,3 +589,3 @@ "label": "length",

{
"astId": 21499,
"astId": 21506,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -600,3 +600,3 @@ "label": "buf",

},
"t_struct(RingBuffer)21513_storage": {
"t_struct(RingBuffer)21520_storage": {
"encoding": "inplace",

@@ -606,3 +606,3 @@ "label": "struct Lib_RingBuffer.RingBuffer",

{
"astId": 21502,
"astId": 21509,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -615,3 +615,3 @@ "label": "id",

{
"astId": 21504,
"astId": 21511,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -621,6 +621,6 @@ "label": "overwriter",

"slot": "1",
"type": "t_contract(iRingBufferOverwriter)21490"
"type": "t_contract(iRingBufferOverwriter)21497"
},
{
"astId": 21506,
"astId": 21513,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -633,3 +633,3 @@ "label": "contextA",

{
"astId": 21508,
"astId": 21515,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -642,3 +642,3 @@ "label": "contextB",

{
"astId": 21510,
"astId": 21517,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -648,6 +648,6 @@ "label": "bufferA",

"slot": "4",
"type": "t_struct(Buffer)21500_storage"
"type": "t_struct(Buffer)21507_storage"
},
{
"astId": 21512,
"astId": 21519,
"contract": "contracts/optimistic-ethereum/OVM/chain/OVM_StateCommitmentChain.sol:OVM_StateCommitmentChain",

@@ -657,3 +657,3 @@ "label": "bufferB",

"slot": "6",
"type": "t_struct(Buffer)21500_storage"
"type": "t_struct(Buffer)21507_storage"
}

@@ -660,0 +660,0 @@ ],

@@ -565,3 +565,3 @@ {

{
"astId": 13066,
"astId": 13067,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -574,3 +574,3 @@ "label": "owner",

{
"astId": 13069,
"astId": 13070,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -583,3 +583,3 @@ "label": "ovmExecutionManager",

{
"astId": 13073,
"astId": 13074,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -589,6 +589,6 @@ "label": "accounts",

"slot": "2",
"type": "t_mapping(t_address,t_struct(Account)16705_storage)"
"type": "t_mapping(t_address,t_struct(Account)16712_storage)"
},
{
"astId": 13079,
"astId": 13080,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -601,3 +601,3 @@ "label": "contractStorage",

{
"astId": 13085,
"astId": 13086,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -610,3 +610,3 @@ "label": "verifiedContractStorage",

{
"astId": 13089,
"astId": 13090,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -616,6 +616,6 @@ "label": "itemStates",

"slot": "5",
"type": "t_mapping(t_bytes32,t_enum(ItemState)16094)"
"type": "t_mapping(t_bytes32,t_enum(ItemState)16101)"
},
{
"astId": 13091,
"astId": 13092,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -628,3 +628,3 @@ "label": "totalUncommittedAccounts",

{
"astId": 13093,
"astId": 13094,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -653,3 +653,3 @@ "label": "totalUncommittedContractStorage",

},
"t_enum(ItemState)16094": {
"t_enum(ItemState)16101": {
"encoding": "inplace",

@@ -673,3 +673,3 @@ "label": "enum iOVM_StateManager.ItemState",

},
"t_mapping(t_address,t_struct(Account)16705_storage)": {
"t_mapping(t_address,t_struct(Account)16712_storage)": {
"encoding": "mapping",

@@ -679,3 +679,3 @@ "key": "t_address",

"numberOfBytes": "32",
"value": "t_struct(Account)16705_storage"
"value": "t_struct(Account)16712_storage"
},

@@ -696,3 +696,3 @@ "t_mapping(t_bytes32,t_bool)": {

},
"t_mapping(t_bytes32,t_enum(ItemState)16094)": {
"t_mapping(t_bytes32,t_enum(ItemState)16101)": {
"encoding": "mapping",

@@ -702,5 +702,5 @@ "key": "t_bytes32",

"numberOfBytes": "32",
"value": "t_enum(ItemState)16094"
"value": "t_enum(ItemState)16101"
},
"t_struct(Account)16705_storage": {
"t_struct(Account)16712_storage": {
"encoding": "inplace",

@@ -710,3 +710,3 @@ "label": "struct Lib_OVMCodec.Account",

{
"astId": 16694,
"astId": 16701,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -719,3 +719,3 @@ "label": "nonce",

{
"astId": 16696,
"astId": 16703,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -728,3 +728,3 @@ "label": "balance",

{
"astId": 16698,
"astId": 16705,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -737,3 +737,3 @@ "label": "storageRoot",

{
"astId": 16700,
"astId": 16707,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -746,3 +746,3 @@ "label": "codeHash",

{
"astId": 16702,
"astId": 16709,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -755,3 +755,3 @@ "label": "ethAddress",

{
"astId": 16704,
"astId": 16711,
"contract": "contracts/optimistic-ethereum/OVM/execution/OVM_StateManager.sol:OVM_StateManager",

@@ -758,0 +758,0 @@ "label": "isFresh",

@@ -64,3 +64,3 @@ {

{
"astId": 17120,
"astId": 17127,
"contract": "contracts/optimistic-ethereum/libraries/resolver/Lib_Ownable.sol:Ownable",

@@ -67,0 +67,0 @@ "label": "owner",

@@ -257,3 +257,3 @@ {

{
"astId": 23381,
"astId": 23388,
"contract": "contracts/test-helpers/TestERC20.sol:TestERC20",

@@ -266,3 +266,3 @@ "label": "totalSupply",

{
"astId": 23385,
"astId": 23392,
"contract": "contracts/test-helpers/TestERC20.sol:TestERC20",

@@ -275,3 +275,3 @@ "label": "balanceOf",

{
"astId": 23391,
"astId": 23398,
"contract": "contracts/test-helpers/TestERC20.sol:TestERC20",

@@ -278,0 +278,0 @@ "label": "allowance",

@@ -95,3 +95,3 @@ {

{
"astId": 24556,
"astId": 24563,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -101,3 +101,3 @@ "label": "buf",

"slot": "0",
"type": "t_struct(RingBuffer)21513_storage"
"type": "t_struct(RingBuffer)21520_storage"
}

@@ -111,3 +111,3 @@ ],

},
"t_contract(iRingBufferOverwriter)21490": {
"t_contract(iRingBufferOverwriter)21497": {
"encoding": "inplace",

@@ -124,3 +124,3 @@ "label": "contract iRingBufferOverwriter",

},
"t_struct(Buffer)21500_storage": {
"t_struct(Buffer)21507_storage": {
"encoding": "inplace",

@@ -130,3 +130,3 @@ "label": "struct Lib_RingBuffer.Buffer",

{
"astId": 21495,
"astId": 21502,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -139,3 +139,3 @@ "label": "length",

{
"astId": 21499,
"astId": 21506,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -150,3 +150,3 @@ "label": "buf",

},
"t_struct(RingBuffer)21513_storage": {
"t_struct(RingBuffer)21520_storage": {
"encoding": "inplace",

@@ -156,3 +156,3 @@ "label": "struct Lib_RingBuffer.RingBuffer",

{
"astId": 21502,
"astId": 21509,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -165,3 +165,3 @@ "label": "id",

{
"astId": 21504,
"astId": 21511,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -171,6 +171,6 @@ "label": "overwriter",

"slot": "1",
"type": "t_contract(iRingBufferOverwriter)21490"
"type": "t_contract(iRingBufferOverwriter)21497"
},
{
"astId": 21506,
"astId": 21513,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -183,3 +183,3 @@ "label": "contextA",

{
"astId": 21508,
"astId": 21515,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -192,3 +192,3 @@ "label": "contextB",

{
"astId": 21510,
"astId": 21517,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -198,6 +198,6 @@ "label": "bufferA",

"slot": "4",
"type": "t_struct(Buffer)21500_storage"
"type": "t_struct(Buffer)21507_storage"
},
{
"astId": 21512,
"astId": 21519,
"contract": "contracts/test-libraries/utils/TestLib_RingBuffer.sol:TestLib_RingBuffer",

@@ -207,3 +207,3 @@ "label": "bufferB",

"slot": "6",
"type": "t_struct(Buffer)21500_storage"
"type": "t_struct(Buffer)21507_storage"
}

@@ -210,0 +210,0 @@ ],

{
"name": "@eth-optimism/contracts",
"version": "0.0.2-alpha.2",
"version": "0.0.2-alpha.3",
"main": "build/src/index.js",

@@ -5,0 +5,0 @@ "files": [

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc