github.com/ethereum-optimism/optimism@v1.7.2/packages/chain-mon/src/abi/OptimismPortal.json (about)

     1  {
     2    "abi": [
     3      {
     4        "inputs": [],
     5        "stateMutability": "nonpayable",
     6        "type": "constructor"
     7      },
     8      {
     9        "anonymous": false,
    10        "inputs": [
    11          {
    12            "indexed": false,
    13            "internalType": "uint8",
    14            "name": "version",
    15            "type": "uint8"
    16          }
    17        ],
    18        "name": "Initialized",
    19        "type": "event"
    20      },
    21      {
    22        "anonymous": false,
    23        "inputs": [
    24          {
    25            "indexed": false,
    26            "internalType": "address",
    27            "name": "account",
    28            "type": "address"
    29          }
    30        ],
    31        "name": "Paused",
    32        "type": "event"
    33      },
    34      {
    35        "anonymous": false,
    36        "inputs": [
    37          {
    38            "indexed": true,
    39            "internalType": "address",
    40            "name": "from",
    41            "type": "address"
    42          },
    43          {
    44            "indexed": true,
    45            "internalType": "address",
    46            "name": "to",
    47            "type": "address"
    48          },
    49          {
    50            "indexed": true,
    51            "internalType": "uint256",
    52            "name": "version",
    53            "type": "uint256"
    54          },
    55          {
    56            "indexed": false,
    57            "internalType": "bytes",
    58            "name": "opaqueData",
    59            "type": "bytes"
    60          }
    61        ],
    62        "name": "TransactionDeposited",
    63        "type": "event"
    64      },
    65      {
    66        "anonymous": false,
    67        "inputs": [
    68          {
    69            "indexed": false,
    70            "internalType": "address",
    71            "name": "account",
    72            "type": "address"
    73          }
    74        ],
    75        "name": "Unpaused",
    76        "type": "event"
    77      },
    78      {
    79        "anonymous": false,
    80        "inputs": [
    81          {
    82            "indexed": true,
    83            "internalType": "bytes32",
    84            "name": "withdrawalHash",
    85            "type": "bytes32"
    86          },
    87          {
    88            "indexed": false,
    89            "internalType": "bool",
    90            "name": "success",
    91            "type": "bool"
    92          }
    93        ],
    94        "name": "WithdrawalFinalized",
    95        "type": "event"
    96      },
    97      {
    98        "anonymous": false,
    99        "inputs": [
   100          {
   101            "indexed": true,
   102            "internalType": "bytes32",
   103            "name": "withdrawalHash",
   104            "type": "bytes32"
   105          },
   106          {
   107            "indexed": true,
   108            "internalType": "address",
   109            "name": "from",
   110            "type": "address"
   111          },
   112          {
   113            "indexed": true,
   114            "internalType": "address",
   115            "name": "to",
   116            "type": "address"
   117          }
   118        ],
   119        "name": "WithdrawalProven",
   120        "type": "event"
   121      },
   122      {
   123        "inputs": [],
   124        "name": "GUARDIAN",
   125        "outputs": [
   126          {
   127            "internalType": "address",
   128            "name": "",
   129            "type": "address"
   130          }
   131        ],
   132        "stateMutability": "view",
   133        "type": "function"
   134      },
   135      {
   136        "inputs": [],
   137        "name": "L2_ORACLE",
   138        "outputs": [
   139          {
   140            "internalType": "contract L2OutputOracle",
   141            "name": "",
   142            "type": "address"
   143          }
   144        ],
   145        "stateMutability": "view",
   146        "type": "function"
   147      },
   148      {
   149        "inputs": [],
   150        "name": "SYSTEM_CONFIG",
   151        "outputs": [
   152          {
   153            "internalType": "contract SystemConfig",
   154            "name": "",
   155            "type": "address"
   156          }
   157        ],
   158        "stateMutability": "view",
   159        "type": "function"
   160      },
   161      {
   162        "inputs": [
   163          {
   164            "internalType": "address",
   165            "name": "_to",
   166            "type": "address"
   167          },
   168          {
   169            "internalType": "uint256",
   170            "name": "_value",
   171            "type": "uint256"
   172          },
   173          {
   174            "internalType": "uint64",
   175            "name": "_gasLimit",
   176            "type": "uint64"
   177          },
   178          {
   179            "internalType": "bool",
   180            "name": "_isCreation",
   181            "type": "bool"
   182          },
   183          {
   184            "internalType": "bytes",
   185            "name": "_data",
   186            "type": "bytes"
   187          }
   188        ],
   189        "name": "depositTransaction",
   190        "outputs": [],
   191        "stateMutability": "payable",
   192        "type": "function"
   193      },
   194      {
   195        "inputs": [],
   196        "name": "donateETH",
   197        "outputs": [],
   198        "stateMutability": "payable",
   199        "type": "function"
   200      },
   201      {
   202        "inputs": [
   203          {
   204            "components": [
   205              {
   206                "internalType": "uint256",
   207                "name": "nonce",
   208                "type": "uint256"
   209              },
   210              {
   211                "internalType": "address",
   212                "name": "sender",
   213                "type": "address"
   214              },
   215              {
   216                "internalType": "address",
   217                "name": "target",
   218                "type": "address"
   219              },
   220              {
   221                "internalType": "uint256",
   222                "name": "value",
   223                "type": "uint256"
   224              },
   225              {
   226                "internalType": "uint256",
   227                "name": "gasLimit",
   228                "type": "uint256"
   229              },
   230              {
   231                "internalType": "bytes",
   232                "name": "data",
   233                "type": "bytes"
   234              }
   235            ],
   236            "internalType": "struct Types.WithdrawalTransaction",
   237            "name": "_tx",
   238            "type": "tuple"
   239          }
   240        ],
   241        "name": "finalizeWithdrawalTransaction",
   242        "outputs": [],
   243        "stateMutability": "nonpayable",
   244        "type": "function"
   245      },
   246      {
   247        "inputs": [
   248          {
   249            "internalType": "bytes32",
   250            "name": "",
   251            "type": "bytes32"
   252          }
   253        ],
   254        "name": "finalizedWithdrawals",
   255        "outputs": [
   256          {
   257            "internalType": "bool",
   258            "name": "",
   259            "type": "bool"
   260          }
   261        ],
   262        "stateMutability": "view",
   263        "type": "function"
   264      },
   265      {
   266        "inputs": [],
   267        "name": "guardian",
   268        "outputs": [
   269          {
   270            "internalType": "address",
   271            "name": "",
   272            "type": "address"
   273          }
   274        ],
   275        "stateMutability": "view",
   276        "type": "function"
   277      },
   278      {
   279        "inputs": [
   280          {
   281            "internalType": "contract L2OutputOracle",
   282            "name": "_l2Oracle",
   283            "type": "address"
   284          },
   285          {
   286            "internalType": "address",
   287            "name": "_guardian",
   288            "type": "address"
   289          },
   290          {
   291            "internalType": "contract SystemConfig",
   292            "name": "_systemConfig",
   293            "type": "address"
   294          },
   295          {
   296            "internalType": "bool",
   297            "name": "_paused",
   298            "type": "bool"
   299          }
   300        ],
   301        "name": "initialize",
   302        "outputs": [],
   303        "stateMutability": "nonpayable",
   304        "type": "function"
   305      },
   306      {
   307        "inputs": [
   308          {
   309            "internalType": "uint256",
   310            "name": "_l2OutputIndex",
   311            "type": "uint256"
   312          }
   313        ],
   314        "name": "isOutputFinalized",
   315        "outputs": [
   316          {
   317            "internalType": "bool",
   318            "name": "",
   319            "type": "bool"
   320          }
   321        ],
   322        "stateMutability": "view",
   323        "type": "function"
   324      },
   325      {
   326        "inputs": [],
   327        "name": "l2Oracle",
   328        "outputs": [
   329          {
   330            "internalType": "contract L2OutputOracle",
   331            "name": "",
   332            "type": "address"
   333          }
   334        ],
   335        "stateMutability": "view",
   336        "type": "function"
   337      },
   338      {
   339        "inputs": [],
   340        "name": "l2Sender",
   341        "outputs": [
   342          {
   343            "internalType": "address",
   344            "name": "",
   345            "type": "address"
   346          }
   347        ],
   348        "stateMutability": "view",
   349        "type": "function"
   350      },
   351      {
   352        "inputs": [
   353          {
   354            "internalType": "uint64",
   355            "name": "_byteCount",
   356            "type": "uint64"
   357          }
   358        ],
   359        "name": "minimumGasLimit",
   360        "outputs": [
   361          {
   362            "internalType": "uint64",
   363            "name": "",
   364            "type": "uint64"
   365          }
   366        ],
   367        "stateMutability": "pure",
   368        "type": "function"
   369      },
   370      {
   371        "inputs": [],
   372        "name": "params",
   373        "outputs": [
   374          {
   375            "internalType": "uint128",
   376            "name": "prevBaseFee",
   377            "type": "uint128"
   378          },
   379          {
   380            "internalType": "uint64",
   381            "name": "prevBoughtGas",
   382            "type": "uint64"
   383          },
   384          {
   385            "internalType": "uint64",
   386            "name": "prevBlockNum",
   387            "type": "uint64"
   388          }
   389        ],
   390        "stateMutability": "view",
   391        "type": "function"
   392      },
   393      {
   394        "inputs": [],
   395        "name": "pause",
   396        "outputs": [],
   397        "stateMutability": "nonpayable",
   398        "type": "function"
   399      },
   400      {
   401        "inputs": [],
   402        "name": "paused",
   403        "outputs": [
   404          {
   405            "internalType": "bool",
   406            "name": "",
   407            "type": "bool"
   408          }
   409        ],
   410        "stateMutability": "view",
   411        "type": "function"
   412      },
   413      {
   414        "inputs": [
   415          {
   416            "components": [
   417              {
   418                "internalType": "uint256",
   419                "name": "nonce",
   420                "type": "uint256"
   421              },
   422              {
   423                "internalType": "address",
   424                "name": "sender",
   425                "type": "address"
   426              },
   427              {
   428                "internalType": "address",
   429                "name": "target",
   430                "type": "address"
   431              },
   432              {
   433                "internalType": "uint256",
   434                "name": "value",
   435                "type": "uint256"
   436              },
   437              {
   438                "internalType": "uint256",
   439                "name": "gasLimit",
   440                "type": "uint256"
   441              },
   442              {
   443                "internalType": "bytes",
   444                "name": "data",
   445                "type": "bytes"
   446              }
   447            ],
   448            "internalType": "struct Types.WithdrawalTransaction",
   449            "name": "_tx",
   450            "type": "tuple"
   451          },
   452          {
   453            "internalType": "uint256",
   454            "name": "_l2OutputIndex",
   455            "type": "uint256"
   456          },
   457          {
   458            "components": [
   459              {
   460                "internalType": "bytes32",
   461                "name": "version",
   462                "type": "bytes32"
   463              },
   464              {
   465                "internalType": "bytes32",
   466                "name": "stateRoot",
   467                "type": "bytes32"
   468              },
   469              {
   470                "internalType": "bytes32",
   471                "name": "messagePasserStorageRoot",
   472                "type": "bytes32"
   473              },
   474              {
   475                "internalType": "bytes32",
   476                "name": "latestBlockhash",
   477                "type": "bytes32"
   478              }
   479            ],
   480            "internalType": "struct Types.OutputRootProof",
   481            "name": "_outputRootProof",
   482            "type": "tuple"
   483          },
   484          {
   485            "internalType": "bytes[]",
   486            "name": "_withdrawalProof",
   487            "type": "bytes[]"
   488          }
   489        ],
   490        "name": "proveWithdrawalTransaction",
   491        "outputs": [],
   492        "stateMutability": "nonpayable",
   493        "type": "function"
   494      },
   495      {
   496        "inputs": [
   497          {
   498            "internalType": "bytes32",
   499            "name": "",
   500            "type": "bytes32"
   501          }
   502        ],
   503        "name": "provenWithdrawals",
   504        "outputs": [
   505          {
   506            "internalType": "bytes32",
   507            "name": "outputRoot",
   508            "type": "bytes32"
   509          },
   510          {
   511            "internalType": "uint128",
   512            "name": "timestamp",
   513            "type": "uint128"
   514          },
   515          {
   516            "internalType": "uint128",
   517            "name": "l2OutputIndex",
   518            "type": "uint128"
   519          }
   520        ],
   521        "stateMutability": "view",
   522        "type": "function"
   523      },
   524      {
   525        "inputs": [],
   526        "name": "systemConfig",
   527        "outputs": [
   528          {
   529            "internalType": "contract SystemConfig",
   530            "name": "",
   531            "type": "address"
   532          }
   533        ],
   534        "stateMutability": "view",
   535        "type": "function"
   536      },
   537      {
   538        "inputs": [],
   539        "name": "unpause",
   540        "outputs": [],
   541        "stateMutability": "nonpayable",
   542        "type": "function"
   543      },
   544      {
   545        "inputs": [],
   546        "name": "version",
   547        "outputs": [
   548          {
   549            "internalType": "string",
   550            "name": "",
   551            "type": "string"
   552          }
   553        ],
   554        "stateMutability": "view",
   555        "type": "function"
   556      },
   557      {
   558        "stateMutability": "payable",
   559        "type": "receive"
   560      }
   561    ],
   562    "bytecode": {
   563      "object": "0x60806040523480156200001157600080fd5b506200002260008080600162000028565b62000224565b600054600390610100900460ff161580156200004b575060005460ff8083169116105b620000b45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805461ffff191660ff831617610100908117909155603280546001600160a01b031990811661dead1790915560358054603680546001600160a01b0389811691861691909117909155603780548a831695169490941790935585151592891690930260ff19166001600160a81b0319909316929092171790556200013962000181565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b600054610100900460ff16620001ee5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620000ab565b60408051606081018252633b9aca0080825260006020830152436001600160401b031691909201819052600160c01b0217600155565b61545c80620002346000396000f3fe60806040526004361061016d5760003560e01c80638b4c40b0116100cb578063a35d99df1161007f578063e9e05c4211610059578063e9e05c4214610573578063f049875014610586578063fecf9734146105b157600080fd5b8063a35d99df1461040d578063cff0ab9614610446578063e965084c146104e757600080fd5b80639b5f694a116100b05780639b5f694a1461037e5780639bf62d82146103b0578063a14238e7146103dd57600080fd5b80638b4c40b0146101925780638c3152e91461035e57600080fd5b806354fd4d50116101225780636dbffb78116101075780636dbffb78146102fe578063724c184c1461031e5780638456cb591461034957600080fd5b806354fd4d501461027e5780635c975abb146102d457600080fd5b80633f4ba83a116101535780633f4ba83a1461021c578063452a9320146102315780634870496f1461025e57600080fd5b80621c2ff61461019957806333d7e2bd146101ef57600080fd5b36610194576101923334620186a06000604051806020016040528060008152506105d1565b005b600080fd5b3480156101a557600080fd5b50603554610100900473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101fb57600080fd5b506036546101c59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561022857600080fd5b5061019261086c565b34801561023d57600080fd5b506037546101c59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561026a57600080fd5b50610192610279366004614a4a565b610971565b34801561028a57600080fd5b506102c76040518060400160405280600681526020017f312e31302e30000000000000000000000000000000000000000000000000000081525081565b6040516101e69190614ba0565b3480156102e057600080fd5b506035546102ee9060ff1681565b60405190151581526020016101e6565b34801561030a57600080fd5b506102ee610319366004614bb3565b610fa6565b34801561032a57600080fd5b5060375473ffffffffffffffffffffffffffffffffffffffff166101c5565b34801561035557600080fd5b50610192611065565b34801561036a57600080fd5b50610192610379366004614bcc565b611167565b34801561038a57600080fd5b506035546101c590610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156103bc57600080fd5b506032546101c59073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103e957600080fd5b506102ee6103f8366004614bb3565b60336020526000908152604090205460ff1681565b34801561041957600080fd5b5061042d610428366004614c26565b611a2b565b60405167ffffffffffffffff90911681526020016101e6565b34801561045257600080fd5b506001546104ae906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff92831660208501529116908201526060016101e6565b3480156104f357600080fd5b50610545610502366004614bb3565b603460205260009081526040902080546001909101546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041683565b604080519384526fffffffffffffffffffffffffffffffff92831660208501529116908201526060016101e6565b610192610581366004614c51565b6105d1565b34801561059257600080fd5b5060365473ffffffffffffffffffffffffffffffffffffffff166101c5565b3480156105bd57600080fd5b506101926105cc366004614ccc565b611a44565b8260005a905083156106885773ffffffffffffffffffffffffffffffffffffffff87161561068857604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f4f7074696d69736d506f7274616c3a206d7573742073656e6420746f2061646460448201527f72657373283029207768656e206372656174696e67206120636f6e747261637460648201526084015b60405180910390fd5b6106928351611a2b565b67ffffffffffffffff168567ffffffffffffffff161015610735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f7074696d69736d506f7274616c3a20676173206c696d697420746f6f20736d60448201527f616c6c0000000000000000000000000000000000000000000000000000000000606482015260840161067f565b6201d4c0835111156107a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4f7074696d69736d506f7274616c3a206461746120746f6f206c617267650000604482015260640161067f565b333281146107c4575033731111000000000000000000000000000000001111015b600034888888886040516020016107df959493929190614d26565b604051602081830303815290604052905060008973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c328460405161084f9190614ba0565b60405180910390a450506108638282611c52565b50505050505050565b60375473ffffffffffffffffffffffffffffffffffffffff163314610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a206f6e6c7920677561726469616e20636160448201527f6e20756e70617573650000000000000000000000000000000000000000000000606482015260840161067f565b603580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b60355460ff16156109de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f7074696d69736d506f7274616c3a2070617573656400000000000000000000604482015260640161067f565b3073ffffffffffffffffffffffffffffffffffffffff16856040015173ffffffffffffffffffffffffffffffffffffffff1603610a9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e642060448201527f6d6573736167657320746f2074686520706f7274616c20636f6e747261637400606482015260840161067f565b6035546040517fa25ae55700000000000000000000000000000000000000000000000000000000815260048101869052600091610100900473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015610b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b369190614dab565b519050610b50610b4b36869003860186614e10565b611f7f565b8114610bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a20696e76616c6964206f7574707574207260448201527f6f6f742070726f6f660000000000000000000000000000000000000000000000606482015260840161067f565b6000610be987611fdb565b6000818152603460209081526040918290208251606081018452815481526001909101546fffffffffffffffffffffffffffffffff8082169383018490527001000000000000000000000000000000009091041692810192909252919250901580610d035750805160355460408084015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff909116600482015261010090910473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015610cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cff9190614dab565b5114155b610d8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173682060448201527f68617320616c7265616479206265656e2070726f76656e000000000000000000606482015260840161067f565b60408051602081018490526000918101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201209083018190529250610e589101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828201909152600182527f0100000000000000000000000000000000000000000000000000000000000000602083015290610e4e888a614e76565b8a6040013561200b565b610ee4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a20696e76616c696420776974686472617760448201527f616c20696e636c7573696f6e2070726f6f660000000000000000000000000000606482015260840161067f565b604080516060810182528581526fffffffffffffffffffffffffffffffff42811660208084019182528c831684860190815260008981526034835286812095518655925190518416700100000000000000000000000000000000029316929092176001909301929092558b830151908c0151925173ffffffffffffffffffffffffffffffffffffffff918216939091169186917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f629190a4505050505050505050565b6035546040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810183905260009161105f9161010090910473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015611020573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110449190614dab565b602001516fffffffffffffffffffffffffffffffff1661202f565b92915050565b60375473ffffffffffffffffffffffffffffffffffffffff16331461110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4f7074696d69736d506f7274616c3a206f6e6c7920677561726469616e20636160448201527f6e20706175736500000000000000000000000000000000000000000000000000606482015260840161067f565b603580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610967565b60355460ff16156111d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f7074696d69736d506f7274616c3a2070617573656400000000000000000000604482015260640161067f565b60325473ffffffffffffffffffffffffffffffffffffffff1661dead1461127d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a2063616e206f6e6c79207472696767657260448201527f206f6e65207769746864726177616c20706572207472616e73616374696f6e00606482015260840161067f565b600061128882611fdb565b60008181526034602090815260408083208151606081018352815481526001909101546fffffffffffffffffffffffffffffffff80821694830185905270010000000000000000000000000000000090910416918101919091529293509003611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e60448201527f6f74206265656e2070726f76656e207965740000000000000000000000000000606482015260840161067f565b603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663887862726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114049190614efa565b81602001516fffffffffffffffffffffffffffffffff1610156114cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657360448201527f74616d70206c657373207468616e204c32204f7261636c65207374617274696e60648201527f672074696d657374616d70000000000000000000000000000000000000000000608482015260a40161067f565b6114ee81602001516fffffffffffffffffffffffffffffffff1661202f565b6115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4f7074696d69736d506f7274616c3a2070726f76656e2077697468647261776160448201527f6c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c60648201527f6170736564000000000000000000000000000000000000000000000000000000608482015260a40161067f565b60355460408281015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff9091166004820152600091610100900473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa15801561162c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116509190614dab565b825181519192501461170a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f4f7074696d69736d506f7274616c3a206f757470757420726f6f742070726f7660448201527f656e206973206e6f74207468652073616d652061732063757272656e74206f7560648201527f7470757420726f6f740000000000000000000000000000000000000000000000608482015260a40161067f565b61172981602001516fffffffffffffffffffffffffffffffff1661202f565b6117db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2060448201527f66696e616c697a6174696f6e20706572696f6420686173206e6f7420656c617060648201527f7365640000000000000000000000000000000000000000000000000000000000608482015260a40161067f565b60008381526033602052604090205460ff161561187a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206160448201527f6c7265616479206265656e2066696e616c697a65640000000000000000000000606482015260840161067f565b600083815260336020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055908601516032805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911790558501516080860151606087015160a088015161191c939291906120d4565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915084907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b9061198190841515815260200190565b60405180910390a2801580156119975750326001145b15611a24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f7074696d69736d506f7274616c3a207769746864726177616c206661696c6560448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161067f565b5050505050565b6000611a38826010614f42565b61105f90615208614f72565b600054600390610100900460ff16158015611a66575060005460ff8083169116105b611af2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161067f565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100908117909155603280547fffffffffffffffffffffffff000000000000000000000000000000000000000090811661dead17909155603580546036805473ffffffffffffffffffffffffffffffffffffffff89811691861691909117909155603780548a83169516949094179093558515159289169093027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217179055611bed612132565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b600154600090611c88907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1643614f9e565b90506000611c94612215565b90506000816020015160ff16826000015163ffffffff16611cb59190614fe4565b90508215611dec57600154600090611cec908390700100000000000000000000000000000000900467ffffffffffffffff1661504c565b90506000836040015160ff1683611d0391906150c0565b600154611d239084906fffffffffffffffffffffffffffffffff166150c0565b611d2d9190614fe4565b600154909150600090611d7e90611d579084906fffffffffffffffffffffffffffffffff1661517c565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff166122db565b90506001861115611dad57611daa611d5782876040015160ff1660018a611da59190614f9e565b6122fa565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b60018054869190601090611e1f908490700100000000000000000000000000000000900467ffffffffffffffff16614f72565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315611f02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5265736f757263654d65746572696e673a2063616e6e6f7420627579206d6f7260448201527f6520676173207468616e20617661696c61626c6520676173206c696d69740000606482015260840161067f565b600154600090611f2e906fffffffffffffffffffffffffffffffff1667ffffffffffffffff88166151f0565b90506000611f4048633b9aca0061234f565b611f4a908361522d565b905060005a611f599088614f9e565b905080821115611f7557611f75611f708284614f9e565b612366565b5050505050505050565b60008160000151826020015183604001518460600151604051602001611fbe949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b80516020808301516040808501516060860151608087015160a08801519351600097611fbe979096959101615241565b60008061201786612394565b9050612025818686866123c6565b9695505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f4daa2916040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c29190614efa565b6120cc9083615298565b421192915050565b60008060006120e48660006123f6565b90508061211a576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b600054610100900460ff166121c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161067f565b60408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6040805160c08082018352600080835260208301819052828401819052606083018190526080830181905260a083015260365483517fcc731b020000000000000000000000000000000000000000000000000000000081529351929373ffffffffffffffffffffffffffffffffffffffff9091169263cc731b02926004808401939192918290030181865afa1580156122b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d691906152d5565b905090565b60006122f06122ea8585612414565b83612424565b90505b9392505050565b6000670de0b6b3a764000061233b6123128583614fe4565b61232490670de0b6b3a764000061504c565b61233685670de0b6b3a76400006150c0565b612433565b61234590866150c0565b6122f09190614fe4565b60008183101561235f57816122f3565b5090919050565b6000805a90505b825a6123799083614f9e565b101561238f5761238882615374565b915061236d565b505050565b606081805190602001206040516020016123b091815260200190565b6040516020818303038152906040529050919050565b60006123ed846123d7878686612464565b8051602091820120825192909101919091201490565b95945050505050565b600080603f83619c4001026040850201603f5a021015949350505050565b60008183121561235f57816122f3565b600081831261235f57816122f3565b60006122f3670de0b6b3a76400008361244b86612ee2565b61245591906150c0565b61245f9190614fe4565b613126565b606060008451116124d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b65790000000000000000000000604482015260640161067f565b60006124dc84613365565b905060006124e986613451565b905060008460405160200161250091815260200190565b60405160208183030381529060405290506000805b8451811015612e59576000858281518110612532576125326153ac565b6020026020010151905084518311156125cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e677468000000000000000000000000000000000000606482015260840161067f565b82600003612686578051805160209182012060405161261b926125f592910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b612681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f742068617368000000604482015260640161067f565b6127dd565b80515160201161273c57805180516020918201206040516126b0926125f592910190815260200190565b612681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c206861736800000000000000000000000000000000000000000000000000606482015260840161067f565b8051845160208087019190912082519190920120146127dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f6520686173680000000000000000000000000000000000000000000000000000606482015260840161067f565b6127e960106001615298565b816020015151036129c5578451830361295d576128238160200151601081518110612816576128166153ac565b60200260200101516134b4565b965060008751116128b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e6368290000000000606482015260840161067f565b600186516128c49190614f9e565b8214612952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e636829000000000000606482015260840161067f565b5050505050506122f3565b6000858481518110612971576129716153ac565b602001015160f81c60f81b60f81c9050600082602001518260ff168151811061299c5761299c6153ac565b602002602001015190506129af81613614565b95506129bc600186615298565b94505050612e46565b600281602001515103612dbe5760006129dd82613639565b90506000816000815181106129f4576129f46153ac565b016020015160f81c90506000612a0b6002836153db565b612a169060026153fd565b90506000612a27848360ff1661365d565b90506000612a358a8961365d565b90506000612a438383613693565b905080835114612ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b6579000000000000606482015260840161067f565b60ff851660021480612aea575060ff85166003145b15612cd95780825114612b7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e646572000000606482015260840161067f565b612b998760200151600181518110612816576128166153ac565b9c5060008d5111612c2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c6561662900000000000000606482015260840161067f565b60018c51612c3a9190614f9e565b8814612cc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c656166290000000000000000606482015260840161067f565b5050505050505050505050506122f3565b60ff85161580612cec575060ff85166001145b15612d2b57612d188760200151600181518110612d0b57612d0b6153ac565b6020026020010151613614565b9950612d24818a615298565b9850612db3565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e207072656669780000000000000000000000000000606482015260840161067f565b505050505050612e46565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f6465000000000000000000000000000000000000000000000000606482015260840161067f565b5080612e5181615374565b915050612515565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e7473000000000000000000000000000000000000000000000000000000606482015260840161067f565b6000808213612f4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e45440000000000000000000000000000000000000000000000604482015260640161067f565b60006060612f5a84613747565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361315757506000919050565b680755bf798b4a1bf1e582126131c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f570000000000000000000000000000000000000000604482015260640161067f565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b80516060908067ffffffffffffffff8111156133835761338361486a565b6040519080825280602002602001820160405280156133c857816020015b60408051808201909152606080825260208201528152602001906001900390816133a15790505b50915060005b8181101561344a5760405180604001604052808583815181106133f3576133f36153ac565b60200260200101518152602001613422868481518110613415576134156153ac565b602002602001015161381d565b815250838281518110613437576134376153ac565b60209081029190910101526001016133ce565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b838110156134a9578060011b82018184015160001a8060041c8253600f81166001830153505060010161347b565b509295945050505050565b606060008060006134c485613830565b9194509250905060008160018111156134df576134df615420565b1461356c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206279746573206973206e6f7420612064617461206974656d00000000000000606482015260840161067f565b6135768284615298565b855114613605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f524c505265616465723a2062797465732076616c756520636f6e7461696e732060448201527f616e20696e76616c69642072656d61696e646572000000000000000000000000606482015260840161067f565b6123ed8560200151848461429d565b606060208260000151106136305761362b826134b4565b61105f565b61105f82614331565b606061105f6136588360200151600081518110612816576128166153ac565b613451565b60608251821061367c575060408051602081019091526000815261105f565b6122f3838384865161368e9190614f9e565b614347565b60008082518451106136a65782516136a9565b83515b90505b808210801561373057508282815181106136c8576136c86153ac565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848381518110613707576137076153ac565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b15613740578160010191506136ac565b5092915050565b60008082116137b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e45440000000000000000000000000000000000000000000000604482015260640161067f565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b606061105f61382b8361451f565b614608565b6000806000808460000151116138ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a40161067f565b6020840151805160001a607f8111613913576000600160009450945094505050614296565b60b78111613b21576000613928608083614f9e565b9050808760000151116139e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604e60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20737472696e67206c656e6774682060648201527f2873686f727420737472696e6729000000000000000000000000000000000000608482015260a40161067f565b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082141580613a5c57507f80000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610155b613b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a20696e76616c6964207072656669782c2073696e676c60448201527f652062797465203c203078383020617265206e6f74207072656669786564202860648201527f73686f727420737472696e672900000000000000000000000000000000000000608482015260a40161067f565b5060019550935060009250614296915050565b60bf8111613e6f576000613b3660b783614f9e565b905080876000015111613bf1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605160248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f6620737472696e67206c656e60648201527f67746820286c6f6e6720737472696e6729000000000000000000000000000000608482015260a40161067f565b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003613ccf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e6720737472696e672900000000000000000000000000000000000000000000608482015260a40161067f565b600184015160088302610100031c60378111613d93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f20737472696e6729000000000000000000000000000000000000000000000000608482015260a40161067f565b613d9d8184615298565b895111613e52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e6720737472696e67290000000000000000000000000000000000000000608482015260a40161067f565b613e5d836001615298565b97509550600094506142969350505050565b60f78111613f50576000613e8460c083614f9e565b905080876000015111613f3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e206c697374206c656e67746820287360648201527f686f7274206c6973742900000000000000000000000000000000000000000000608482015260a40161067f565b600195509350849250614296915050565b6000613f5d60f783614f9e565b905080876000015111614018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f66206c697374206c656e677460648201527f6820286c6f6e67206c6973742900000000000000000000000000000000000000608482015260a40161067f565b60018301517fff000000000000000000000000000000000000000000000000000000000000001660008190036140f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e67206c69737429000000000000000000000000000000000000000000000000608482015260a40161067f565b600184015160088302610100031c603781116141ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f206c697374290000000000000000000000000000000000000000000000000000608482015260a40161067f565b6141c48184615298565b895111614279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e67206c6973742900000000000000000000000000000000000000000000608482015260a40161067f565b614284836001615298565b97509550600194506142969350505050565b9193909250565b60608167ffffffffffffffff8111156142b8576142b861486a565b6040519080825280601f01601f1916602001820160405280156142e2576020820181803683370190505b50905081156122f35760006142f78486615298565b90506020820160005b84811015614318578281015182820152602001614300565b84811115614327576000858301525b5050509392505050565b606061105f82602001516000846000015161429d565b60608182601f0110156143b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161067f565b828284011015614422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161067f565b8183018451101561448f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015260640161067f565b6060821580156144ae5760405191506000825260208201604052614516565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156144e75780518352602092830192016144cf565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b604080518082019091526000808252602082015260008251116145ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a40161067f565b50604080518082019091528151815260209182019181019190915290565b6060600080600061461885613830565b91945092509050600181600181111561463357614633615420565b146146c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206c697374206973206e6f742061206c697374206974656d0000000000000000606482015260840161067f565b84516146cc8385615298565b14614759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f524c505265616465723a206c697374206974656d2068617320616e20696e766160448201527f6c696420646174612072656d61696e6465720000000000000000000000000000606482015260840161067f565b604080516020808252610420820190925290816020015b60408051808201909152600080825260208201528152602001906001900390816147705790505093506000835b865181101561485e576000806147e36040518060400160405280858c600001516147c79190614f9e565b8152602001858c602001516147dc9190615298565b9052613830565b5091509150604051806040016040528083836147ff9190615298565b8152602001848b602001516148149190615298565b815250888581518110614829576148296153ac565b602090810291909101015261483f600185615298565b935061484b8183615298565b6148559084615298565b9250505061479d565b50845250919392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156148e0576148e061486a565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461490a57600080fd5b50565b600082601f83011261491e57600080fd5b813567ffffffffffffffff8111156149385761493861486a565b61496960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614899565b81815284602083860101111561497e57600080fd5b816020850160208301376000918101602001919091529392505050565b600060c082840312156149ad57600080fd5b60405160c0810167ffffffffffffffff82821081831117156149d1576149d161486a565b8160405282935084358352602085013591506149ec826148e8565b81602084015260408501359150614a02826148e8565b816040840152606085013560608401526080850135608084015260a0850135915080821115614a3057600080fd5b50614a3d8582860161490d565b60a0830152505092915050565b600080600080600085870360e0811215614a6357600080fd5b863567ffffffffffffffff80821115614a7b57600080fd5b614a878a838b0161499b565b97506020890135965060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc084011215614ac057600080fd5b60408901955060c0890135925080831115614ada57600080fd5b828901925089601f840112614aee57600080fd5b8235915080821115614aff57600080fd5b508860208260051b8401011115614b1557600080fd5b959894975092955050506020019190565b60005b83811015614b41578181015183820152602001614b29565b83811115614b50576000848401525b50505050565b60008151808452614b6e816020860160208601614b26565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122f36020830184614b56565b600060208284031215614bc557600080fd5b5035919050565b600060208284031215614bde57600080fd5b813567ffffffffffffffff811115614bf557600080fd5b614c018482850161499b565b949350505050565b803567ffffffffffffffff81168114614c2157600080fd5b919050565b600060208284031215614c3857600080fd5b6122f382614c09565b80358015158114614c2157600080fd5b600080600080600060a08688031215614c6957600080fd5b8535614c74816148e8565b945060208601359350614c8960408701614c09565b9250614c9760608701614c41565b9150608086013567ffffffffffffffff811115614cb357600080fd5b614cbf8882890161490d565b9150509295509295909350565b60008060008060808587031215614ce257600080fd5b8435614ced816148e8565b93506020850135614cfd816148e8565b92506040850135614d0d816148e8565b9150614d1b60608601614c41565b905092959194509250565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b604882015260008251614d7a816049850160208701614b26565b919091016049019695505050505050565b80516fffffffffffffffffffffffffffffffff81168114614c2157600080fd5b600060608284031215614dbd57600080fd5b6040516060810181811067ffffffffffffffff82111715614de057614de061486a565b60405282518152614df360208401614d8b565b6020820152614e0460408401614d8b565b60408201529392505050565b600060808284031215614e2257600080fd5b6040516080810181811067ffffffffffffffff82111715614e4557614e4561486a565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600067ffffffffffffffff80841115614e9157614e9161486a565b8360051b6020614ea2818301614899565b868152918501918181019036841115614eba57600080fd5b865b84811015614eee57803586811115614ed45760008081fd5b614ee036828b0161490d565b845250918301918301614ebc565b50979650505050505050565b600060208284031215614f0c57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615614f6957614f69614f13565b02949350505050565b600067ffffffffffffffff808316818516808303821115614f9557614f95614f13565b01949350505050565b600082821015614fb057614fb0614f13565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614ff357614ff3614fb5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561504757615047614f13565b500590565b6000808312837f80000000000000000000000000000000000000000000000000000000000000000183128115161561508657615086614f13565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0183138116156150ba576150ba614f13565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561510157615101614f13565b7f8000000000000000000000000000000000000000000000000000000000000000600087128682058812818416161561513c5761513c614f13565b6000871292508782058712848416161561515857615158614f13565b8785058712818416161561516e5761516e614f13565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156151b6576151b6614f13565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156151ea576151ea614f13565b50500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561522857615228614f13565b500290565b60008261523c5761523c614fb5565b500490565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261528c60c0830184614b56565b98975050505050505050565b600082198211156152ab576152ab614f13565b500190565b805163ffffffff81168114614c2157600080fd5b805160ff81168114614c2157600080fd5b600060c082840312156152e757600080fd5b60405160c0810181811067ffffffffffffffff8211171561530a5761530a61486a565b604052615316836152b0565b8152615324602084016152c4565b6020820152615335604084016152c4565b6040820152615346606084016152b0565b6060820152615357608084016152b0565b608082015261536860a08401614d8b565b60a08201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036153a5576153a5614f13565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff8316806153ee576153ee614fb5565b8060ff84160691505092915050565b600060ff821660ff84168082101561541757615417614f13565b90039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a",
   564      "sourceMap": "1135:20265:110:-:0;;;4982:219;;;;;;;;;-1:-1:-1;5006:188:110;5065:1;;;5179:4;5006:10;:188::i;:::-;1135:20265;;5491:423;4396:13:36;;2762:1:158;;4396:13:36;;;;;4395:14;:40;;;;-1:-1:-1;4413:12:36;;:22;;;;:12;;:22;4395:40;4387:99;;;;-1:-1:-1;;;4387:99:36;;216:2:285;4387:99:36;;;198:21:285;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:285;;;338:44;399:19;;4387:99:36;;;;;;;;;4496:12;:22;;-1:-1:-1;;4528:20:36;4496:22;;;4528:20;4496:22;4528:20;;;;;;5710:8:110::1;:38:::0;;-1:-1:-1;;;;;;5710:38:110;;::::1;1337:42:158;5710:38:110;::::0;;;5758:8:::1;:20:::0;;5788:12:::1;:28:::0;;-1:-1:-1;;;;;5788:28:110;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;5826:8:::1;:20:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;5856:16;::::1;;5758:20:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;5856:16:110;-1:-1:-1;;;;;;5856:16:110;;;;;;;::::1;::::0;;5882:25:::1;:23;:25::i;:::-;4585:5:36::0;4569:21;;-1:-1:-1;;4569:21:36;;;4605:20;;601:4:285;589:17;;571:36;;4605:20:36;;559:2:285;544:18;4605:20:36;;;;;;;5491:423:110;;;;;:::o;8362:180:112:-;4888:13:36;;;;;;;4880:69;;;;-1:-1:-1;;;4880:69:36;;820:2:285;4880:69:36;;;802:21:285;859:2;839:18;;;832:30;898:34;878:18;;;871:62;-1:-1:-1;;;949:18:285;;;942:41;1000:19;;4880:69:36;618:407:285;4880:69:36;8442:93:112::1;::::0;;::::1;::::0;::::1;::::0;;8472:6:::1;8442:93:::0;;;-1:-1:-1;8442:93:112::1;::::0;::::1;::::0;8519:12:::1;-1:-1:-1::0;;;;;8442:93:112::1;::::0;;;;;;;-1:-1:-1;;;8433:102:112::1;;:6;:102:::0;8362:180::o;618:407:285:-;1135:20265:110;;;;;;",
   565      "linkReferences": {}
   566    },
   567    "deployedBytecode": {
   568      "object": "0x60806040526004361061016d5760003560e01c80638b4c40b0116100cb578063a35d99df1161007f578063e9e05c4211610059578063e9e05c4214610573578063f049875014610586578063fecf9734146105b157600080fd5b8063a35d99df1461040d578063cff0ab9614610446578063e965084c146104e757600080fd5b80639b5f694a116100b05780639b5f694a1461037e5780639bf62d82146103b0578063a14238e7146103dd57600080fd5b80638b4c40b0146101925780638c3152e91461035e57600080fd5b806354fd4d50116101225780636dbffb78116101075780636dbffb78146102fe578063724c184c1461031e5780638456cb591461034957600080fd5b806354fd4d501461027e5780635c975abb146102d457600080fd5b80633f4ba83a116101535780633f4ba83a1461021c578063452a9320146102315780634870496f1461025e57600080fd5b80621c2ff61461019957806333d7e2bd146101ef57600080fd5b36610194576101923334620186a06000604051806020016040528060008152506105d1565b005b600080fd5b3480156101a557600080fd5b50603554610100900473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101fb57600080fd5b506036546101c59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561022857600080fd5b5061019261086c565b34801561023d57600080fd5b506037546101c59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561026a57600080fd5b50610192610279366004614a4a565b610971565b34801561028a57600080fd5b506102c76040518060400160405280600681526020017f312e31302e30000000000000000000000000000000000000000000000000000081525081565b6040516101e69190614ba0565b3480156102e057600080fd5b506035546102ee9060ff1681565b60405190151581526020016101e6565b34801561030a57600080fd5b506102ee610319366004614bb3565b610fa6565b34801561032a57600080fd5b5060375473ffffffffffffffffffffffffffffffffffffffff166101c5565b34801561035557600080fd5b50610192611065565b34801561036a57600080fd5b50610192610379366004614bcc565b611167565b34801561038a57600080fd5b506035546101c590610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156103bc57600080fd5b506032546101c59073ffffffffffffffffffffffffffffffffffffffff1681565b3480156103e957600080fd5b506102ee6103f8366004614bb3565b60336020526000908152604090205460ff1681565b34801561041957600080fd5b5061042d610428366004614c26565b611a2b565b60405167ffffffffffffffff90911681526020016101e6565b34801561045257600080fd5b506001546104ae906fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff92831660208501529116908201526060016101e6565b3480156104f357600080fd5b50610545610502366004614bb3565b603460205260009081526040902080546001909101546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041683565b604080519384526fffffffffffffffffffffffffffffffff92831660208501529116908201526060016101e6565b610192610581366004614c51565b6105d1565b34801561059257600080fd5b5060365473ffffffffffffffffffffffffffffffffffffffff166101c5565b3480156105bd57600080fd5b506101926105cc366004614ccc565b611a44565b8260005a905083156106885773ffffffffffffffffffffffffffffffffffffffff87161561068857604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f4f7074696d69736d506f7274616c3a206d7573742073656e6420746f2061646460448201527f72657373283029207768656e206372656174696e67206120636f6e747261637460648201526084015b60405180910390fd5b6106928351611a2b565b67ffffffffffffffff168567ffffffffffffffff161015610735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f7074696d69736d506f7274616c3a20676173206c696d697420746f6f20736d60448201527f616c6c0000000000000000000000000000000000000000000000000000000000606482015260840161067f565b6201d4c0835111156107a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4f7074696d69736d506f7274616c3a206461746120746f6f206c617267650000604482015260640161067f565b333281146107c4575033731111000000000000000000000000000000001111015b600034888888886040516020016107df959493929190614d26565b604051602081830303815290604052905060008973ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c328460405161084f9190614ba0565b60405180910390a450506108638282611c52565b50505050505050565b60375473ffffffffffffffffffffffffffffffffffffffff163314610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a206f6e6c7920677561726469616e20636160448201527f6e20756e70617573650000000000000000000000000000000000000000000000606482015260840161067f565b603580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a1565b60355460ff16156109de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f7074696d69736d506f7274616c3a2070617573656400000000000000000000604482015260640161067f565b3073ffffffffffffffffffffffffffffffffffffffff16856040015173ffffffffffffffffffffffffffffffffffffffff1603610a9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e642060448201527f6d6573736167657320746f2074686520706f7274616c20636f6e747261637400606482015260840161067f565b6035546040517fa25ae55700000000000000000000000000000000000000000000000000000000815260048101869052600091610100900473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015610b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b369190614dab565b519050610b50610b4b36869003860186614e10565b611f7f565b8114610bde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4f7074696d69736d506f7274616c3a20696e76616c6964206f7574707574207260448201527f6f6f742070726f6f660000000000000000000000000000000000000000000000606482015260840161067f565b6000610be987611fdb565b6000818152603460209081526040918290208251606081018452815481526001909101546fffffffffffffffffffffffffffffffff8082169383018490527001000000000000000000000000000000009091041692810192909252919250901580610d035750805160355460408084015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff909116600482015261010090910473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015610cdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cff9190614dab565b5114155b610d8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173682060448201527f68617320616c7265616479206265656e2070726f76656e000000000000000000606482015260840161067f565b60408051602081018490526000918101829052606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201209083018190529250610e589101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828201909152600182527f0100000000000000000000000000000000000000000000000000000000000000602083015290610e4e888a614e76565b8a6040013561200b565b610ee4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a20696e76616c696420776974686472617760448201527f616c20696e636c7573696f6e2070726f6f660000000000000000000000000000606482015260840161067f565b604080516060810182528581526fffffffffffffffffffffffffffffffff42811660208084019182528c831684860190815260008981526034835286812095518655925190518416700100000000000000000000000000000000029316929092176001909301929092558b830151908c0151925173ffffffffffffffffffffffffffffffffffffffff918216939091169186917f67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f629190a4505050505050505050565b6035546040517fa25ae5570000000000000000000000000000000000000000000000000000000081526004810183905260009161105f9161010090910473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa158015611020573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110449190614dab565b602001516fffffffffffffffffffffffffffffffff1661202f565b92915050565b60375473ffffffffffffffffffffffffffffffffffffffff16331461110c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4f7074696d69736d506f7274616c3a206f6e6c7920677561726469616e20636160448201527f6e20706175736500000000000000000000000000000000000000000000000000606482015260840161067f565b603580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610967565b60355460ff16156111d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f7074696d69736d506f7274616c3a2070617573656400000000000000000000604482015260640161067f565b60325473ffffffffffffffffffffffffffffffffffffffff1661dead1461127d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4f7074696d69736d506f7274616c3a2063616e206f6e6c79207472696767657260448201527f206f6e65207769746864726177616c20706572207472616e73616374696f6e00606482015260840161067f565b600061128882611fdb565b60008181526034602090815260408083208151606081018352815481526001909101546fffffffffffffffffffffffffffffffff80821694830185905270010000000000000000000000000000000090910416918101919091529293509003611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e60448201527f6f74206265656e2070726f76656e207965740000000000000000000000000000606482015260840161067f565b603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663887862726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114049190614efa565b81602001516fffffffffffffffffffffffffffffffff1610156114cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604b60248201527f4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657360448201527f74616d70206c657373207468616e204c32204f7261636c65207374617274696e60648201527f672074696d657374616d70000000000000000000000000000000000000000000608482015260a40161067f565b6114ee81602001516fffffffffffffffffffffffffffffffff1661202f565b6115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604560248201527f4f7074696d69736d506f7274616c3a2070726f76656e2077697468647261776160448201527f6c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c60648201527f6170736564000000000000000000000000000000000000000000000000000000608482015260a40161067f565b60355460408281015190517fa25ae5570000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff9091166004820152600091610100900473ffffffffffffffffffffffffffffffffffffffff169063a25ae55790602401606060405180830381865afa15801561162c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116509190614dab565b825181519192501461170a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f4f7074696d69736d506f7274616c3a206f757470757420726f6f742070726f7660448201527f656e206973206e6f74207468652073616d652061732063757272656e74206f7560648201527f7470757420726f6f740000000000000000000000000000000000000000000000608482015260a40161067f565b61172981602001516fffffffffffffffffffffffffffffffff1661202f565b6117db576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2060448201527f66696e616c697a6174696f6e20706572696f6420686173206e6f7420656c617060648201527f7365640000000000000000000000000000000000000000000000000000000000608482015260a40161067f565b60008381526033602052604090205460ff161561187a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f4f7074696d69736d506f7274616c3a207769746864726177616c20686173206160448201527f6c7265616479206265656e2066696e616c697a65640000000000000000000000606482015260840161067f565b600083815260336020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055908601516032805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911790558501516080860151606087015160a088015161191c939291906120d4565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905560405190915084907fdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b9061198190841515815260200190565b60405180910390a2801580156119975750326001145b15611a24576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4f7074696d69736d506f7274616c3a207769746864726177616c206661696c6560448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161067f565b5050505050565b6000611a38826010614f42565b61105f90615208614f72565b600054600390610100900460ff16158015611a66575060005460ff8083169116105b611af2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161067f565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100908117909155603280547fffffffffffffffffffffffff000000000000000000000000000000000000000090811661dead17909155603580546036805473ffffffffffffffffffffffffffffffffffffffff89811691861691909117909155603780548a83169516949094179093558515159289169093027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217179055611bed612132565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b600154600090611c88907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1643614f9e565b90506000611c94612215565b90506000816020015160ff16826000015163ffffffff16611cb59190614fe4565b90508215611dec57600154600090611cec908390700100000000000000000000000000000000900467ffffffffffffffff1661504c565b90506000836040015160ff1683611d0391906150c0565b600154611d239084906fffffffffffffffffffffffffffffffff166150c0565b611d2d9190614fe4565b600154909150600090611d7e90611d579084906fffffffffffffffffffffffffffffffff1661517c565b866060015163ffffffff168760a001516fffffffffffffffffffffffffffffffff166122db565b90506001861115611dad57611daa611d5782876040015160ff1660018a611da59190614f9e565b6122fa565b90505b6fffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff4316021760015550505b60018054869190601090611e1f908490700100000000000000000000000000000000900467ffffffffffffffff16614f72565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550816000015163ffffffff16600160000160109054906101000a900467ffffffffffffffff1667ffffffffffffffff161315611f02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5265736f757263654d65746572696e673a2063616e6e6f7420627579206d6f7260448201527f6520676173207468616e20617661696c61626c6520676173206c696d69740000606482015260840161067f565b600154600090611f2e906fffffffffffffffffffffffffffffffff1667ffffffffffffffff88166151f0565b90506000611f4048633b9aca0061234f565b611f4a908361522d565b905060005a611f599088614f9e565b905080821115611f7557611f75611f708284614f9e565b612366565b5050505050505050565b60008160000151826020015183604001518460600151604051602001611fbe949392919093845260208401929092526040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b80516020808301516040808501516060860151608087015160a08801519351600097611fbe979096959101615241565b60008061201786612394565b9050612025818686866123c6565b9695505050505050565b6000603560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f4daa2916040518163ffffffff1660e01b8152600401602060405180830381865afa15801561209e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c29190614efa565b6120cc9083615298565b421192915050565b60008060006120e48660006123f6565b90508061211a576308c379a06000526020805278185361666543616c6c3a204e6f7420656e6f756768206761736058526064601cfd5b600080855160208701888b5af1979650505050505050565b600054610100900460ff166121c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161067f565b60408051606081018252633b9aca00808252600060208301524367ffffffffffffffff169190920181905278010000000000000000000000000000000000000000000000000217600155565b6040805160c08082018352600080835260208301819052828401819052606083018190526080830181905260a083015260365483517fcc731b020000000000000000000000000000000000000000000000000000000081529351929373ffffffffffffffffffffffffffffffffffffffff9091169263cc731b02926004808401939192918290030181865afa1580156122b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d691906152d5565b905090565b60006122f06122ea8585612414565b83612424565b90505b9392505050565b6000670de0b6b3a764000061233b6123128583614fe4565b61232490670de0b6b3a764000061504c565b61233685670de0b6b3a76400006150c0565b612433565b61234590866150c0565b6122f09190614fe4565b60008183101561235f57816122f3565b5090919050565b6000805a90505b825a6123799083614f9e565b101561238f5761238882615374565b915061236d565b505050565b606081805190602001206040516020016123b091815260200190565b6040516020818303038152906040529050919050565b60006123ed846123d7878686612464565b8051602091820120825192909101919091201490565b95945050505050565b600080603f83619c4001026040850201603f5a021015949350505050565b60008183121561235f57816122f3565b600081831261235f57816122f3565b60006122f3670de0b6b3a76400008361244b86612ee2565b61245591906150c0565b61245f9190614fe4565b613126565b606060008451116124d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d65726b6c65547269653a20656d707479206b65790000000000000000000000604482015260640161067f565b60006124dc84613365565b905060006124e986613451565b905060008460405160200161250091815260200190565b60405160208183030381529060405290506000805b8451811015612e59576000858281518110612532576125326153ac565b6020026020010151905084518311156125cd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4d65726b6c65547269653a206b657920696e646578206578636565647320746f60448201527f74616c206b6579206c656e677468000000000000000000000000000000000000606482015260840161067f565b82600003612686578051805160209182012060405161261b926125f592910190815260200190565b604051602081830303815290604052858051602091820120825192909101919091201490565b612681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4d65726b6c65547269653a20696e76616c696420726f6f742068617368000000604482015260640161067f565b6127dd565b80515160201161273c57805180516020918201206040516126b0926125f592910190815260200190565b612681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4d65726b6c65547269653a20696e76616c6964206c6172676520696e7465726e60448201527f616c206861736800000000000000000000000000000000000000000000000000606482015260840161067f565b8051845160208087019190912082519190920120146127dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4d65726b6c65547269653a20696e76616c696420696e7465726e616c206e6f6460448201527f6520686173680000000000000000000000000000000000000000000000000000606482015260840161067f565b6127e960106001615298565b816020015151036129c5578451830361295d576128238160200151601081518110612816576128166153ac565b60200260200101516134b4565b965060008751116128b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286272616e6368290000000000606482015260840161067f565b600186516128c49190614f9e565b8214612952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286272616e636829000000000000606482015260840161067f565b5050505050506122f3565b6000858481518110612971576129716153ac565b602001015160f81c60f81b60f81c9050600082602001518260ff168151811061299c5761299c6153ac565b602002602001015190506129af81613614565b95506129bc600186615298565b94505050612e46565b600281602001515103612dbe5760006129dd82613639565b90506000816000815181106129f4576129f46153ac565b016020015160f81c90506000612a0b6002836153db565b612a169060026153fd565b90506000612a27848360ff1661365d565b90506000612a358a8961365d565b90506000612a438383613693565b905080835114612ad5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4d65726b6c65547269653a20706174682072656d61696e646572206d7573742060448201527f736861726520616c6c206e6962626c65732077697468206b6579000000000000606482015260840161067f565b60ff851660021480612aea575060ff85166003145b15612cd95780825114612b7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4d65726b6c65547269653a206b65792072656d61696e646572206d757374206260448201527f65206964656e746963616c20746f20706174682072656d61696e646572000000606482015260840161067f565b612b998760200151600181518110612816576128166153ac565b9c5060008d5111612c2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f4d65726b6c65547269653a2076616c7565206c656e677468206d75737420626560448201527f2067726561746572207468616e207a65726f20286c6561662900000000000000606482015260840161067f565b60018c51612c3a9190614f9e565b8814612cc8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4d65726b6c65547269653a2076616c7565206e6f6465206d757374206265206c60448201527f617374206e6f646520696e2070726f6f6620286c656166290000000000000000606482015260840161067f565b5050505050505050505050506122f3565b60ff85161580612cec575060ff85166001145b15612d2b57612d188760200151600181518110612d0b57612d0b6153ac565b6020026020010151613614565b9950612d24818a615298565b9850612db3565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4d65726b6c65547269653a2072656365697665642061206e6f6465207769746860448201527f20616e20756e6b6e6f776e207072656669780000000000000000000000000000606482015260840161067f565b505050505050612e46565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4d65726b6c65547269653a20726563656976656420616e20756e70617273656160448201527f626c65206e6f6465000000000000000000000000000000000000000000000000606482015260840161067f565b5080612e5181615374565b915050612515565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4d65726b6c65547269653a2072616e206f7574206f662070726f6f6620656c6560448201527f6d656e7473000000000000000000000000000000000000000000000000000000606482015260840161067f565b6000808213612f4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e45440000000000000000000000000000000000000000000000604482015260640161067f565b60006060612f5a84613747565b03609f8181039490941b90931c6c465772b2bbbb5f824b15207a3081018102606090811d6d0388eaa27412d5aca026815d636e018202811d6d0df99ac502031bf953eff472fdcc018202811d6d13cdffb29d51d99322bdff5f2211018202811d6d0a0f742023def783a307a986912e018202811d6d01920d8043ca89b5239253284e42018202811d6c0b7a86d7375468fac667a0a527016c29508e458543d8aa4df2abee7883018302821d6d0139601a2efabe717e604cbb4894018302821d6d02247f7a7b6594320649aa03aba1018302821d7fffffffffffffffffffffffffffffffffffffff73c0c716a594e00d54e3c4cbc9018302821d7ffffffffffffffffffffffffffffffffffffffdc7b88c420e53a9890533129f6f01830290911d7fffffffffffffffffffffffffffffffffffffff465fda27eb4d63ded474e5f832019091027ffffffffffffffff5f6af8f7b3396644f18e157960000000000000000000000000105711340daa0d5f769dba1915cef59f0815a5506027d0267a36c0c95b3975ab3ee5b203a7614a3f75373f047d803ae7b6687f2b393909302929092017d57115e47018c7177eebf7cd370a3356a1b7863008a5ae8028c72b88642840160ae1d92915050565b60007ffffffffffffffffffffffffffffffffffffffffffffffffdb731c958f34d94c1821361315757506000919050565b680755bf798b4a1bf1e582126131c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4558505f4f564552464c4f570000000000000000000000000000000000000000604482015260640161067f565b6503782dace9d9604e83901b059150600060606bb17217f7d1cf79abc9e3b39884821b056b80000000000000000000000001901d6bb17217f7d1cf79abc9e3b39881029093037fffffffffffffffffffffffffffffffffffffffdbf3ccf1604d263450f02a550481018102606090811d6d0277594991cfc85f6e2461837cd9018202811d7fffffffffffffffffffffffffffffffffffffe5adedaa1cb095af9e4da10e363c018202811d6db1bbb201f443cf962f1a1d3db4a5018202811d7ffffffffffffffffffffffffffffffffffffd38dc772608b0ae56cce01296c0eb018202811d6e05180bb14799ab47a8a8cb2a527d57016d02d16720577bd19bf614176fe9ea6c10fe68e7fd37d0007b713f765084018402831d9081019084017ffffffffffffffffffffffffffffffffffffffe2c69812cf03b0763fd454a8f7e010290911d6e0587f503bb6ea29d25fcb7401964500190910279d835ebba824c98fb31b83b2ca45c000000000000000000000000010574029d9dc38563c32e5c2f6dc192ee70ef65f9978af30260c3939093039290921c92915050565b80516060908067ffffffffffffffff8111156133835761338361486a565b6040519080825280602002602001820160405280156133c857816020015b60408051808201909152606080825260208201528152602001906001900390816133a15790505b50915060005b8181101561344a5760405180604001604052808583815181106133f3576133f36153ac565b60200260200101518152602001613422868481518110613415576134156153ac565b602002602001015161381d565b815250838281518110613437576134376153ac565b60209081029190910101526001016133ce565b5050919050565b606080604051905082518060011b603f8101601f1916830160405280835250602084016020830160005b838110156134a9578060011b82018184015160001a8060041c8253600f81166001830153505060010161347b565b509295945050505050565b606060008060006134c485613830565b9194509250905060008160018111156134df576134df615420565b1461356c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206279746573206973206e6f7420612064617461206974656d00000000000000606482015260840161067f565b6135768284615298565b855114613605576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f524c505265616465723a2062797465732076616c756520636f6e7461696e732060448201527f616e20696e76616c69642072656d61696e646572000000000000000000000000606482015260840161067f565b6123ed8560200151848461429d565b606060208260000151106136305761362b826134b4565b61105f565b61105f82614331565b606061105f6136588360200151600081518110612816576128166153ac565b613451565b60608251821061367c575060408051602081019091526000815261105f565b6122f3838384865161368e9190614f9e565b614347565b60008082518451106136a65782516136a9565b83515b90505b808210801561373057508282815181106136c8576136c86153ac565b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848381518110613707576137076153ac565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016145b15613740578160010191506136ac565b5092915050565b60008082116137b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f554e444546494e45440000000000000000000000000000000000000000000000604482015260640161067f565b5060016fffffffffffffffffffffffffffffffff821160071b82811c67ffffffffffffffff1060061b1782811c63ffffffff1060051b1782811c61ffff1060041b1782811c60ff10600390811b90911783811c600f1060021b1783811c909110821b1791821c111790565b606061105f61382b8361451f565b614608565b6000806000808460000151116138ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a40161067f565b6020840151805160001a607f8111613913576000600160009450945094505050614296565b60b78111613b21576000613928608083614f9e565b9050808760000151116139e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604e60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20737472696e67206c656e6774682060648201527f2873686f727420737472696e6729000000000000000000000000000000000000608482015260a40161067f565b6001838101517fff00000000000000000000000000000000000000000000000000000000000000169082141580613a5c57507f80000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610155b613b0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a20696e76616c6964207072656669782c2073696e676c60448201527f652062797465203c203078383020617265206e6f74207072656669786564202860648201527f73686f727420737472696e672900000000000000000000000000000000000000608482015260a40161067f565b5060019550935060009250614296915050565b60bf8111613e6f576000613b3660b783614f9e565b905080876000015111613bf1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152605160248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f6620737472696e67206c656e60648201527f67746820286c6f6e6720737472696e6729000000000000000000000000000000608482015260a40161067f565b60018301517fff00000000000000000000000000000000000000000000000000000000000000166000819003613ccf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e6720737472696e672900000000000000000000000000000000000000000000608482015260a40161067f565b600184015160088302610100031c60378111613d93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f20737472696e6729000000000000000000000000000000000000000000000000608482015260a40161067f565b613d9d8184615298565b895111613e52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e6720737472696e67290000000000000000000000000000000000000000608482015260a40161067f565b613e5d836001615298565b97509550600094506142969350505050565b60f78111613f50576000613e8460c083614f9e565b905080876000015111613f3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e206c697374206c656e67746820287360648201527f686f7274206c6973742900000000000000000000000000000000000000000000608482015260a40161067f565b600195509350849250614296915050565b6000613f5d60f783614f9e565b905080876000015111614018576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604d60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206265203e207468616e206c656e677468206f66206c697374206c656e677460648201527f6820286c6f6e67206c6973742900000000000000000000000000000000000000608482015260a40161067f565b60018301517fff000000000000000000000000000000000000000000000000000000000000001660008190036140f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604860248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f74206e6f74206861766520616e79206c656164696e67207a65726f7320286c6f60648201527f6e67206c69737429000000000000000000000000000000000000000000000000608482015260a40161067f565b600184015160088302610100031c603781116141ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604660248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20353520627974657320286c6f6e6760648201527f206c697374290000000000000000000000000000000000000000000000000000608482015260a40161067f565b6141c48184615298565b895111614279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620636f6e74656e74206d757360448201527f742062652067726561746572207468616e20746f74616c206c656e677468202860648201527f6c6f6e67206c6973742900000000000000000000000000000000000000000000608482015260a40161067f565b614284836001615298565b97509550600194506142969350505050565b9193909250565b60608167ffffffffffffffff8111156142b8576142b861486a565b6040519080825280601f01601f1916602001820160405280156142e2576020820181803683370190505b50905081156122f35760006142f78486615298565b90506020820160005b84811015614318578281015182820152602001614300565b84811115614327576000858301525b5050509392505050565b606061105f82602001516000846000015161429d565b60608182601f0110156143b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161067f565b828284011015614422576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015260640161067f565b8183018451101561448f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015260640161067f565b6060821580156144ae5760405191506000825260208201604052614516565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156144e75780518352602092830192016144cf565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b604080518082019091526000808252602082015260008251116145ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604a60248201527f524c505265616465723a206c656e677468206f6620616e20524c50206974656d60448201527f206d7573742062652067726561746572207468616e207a65726f20746f20626560648201527f206465636f6461626c6500000000000000000000000000000000000000000000608482015260a40161067f565b50604080518082019091528151815260209182019181019190915290565b6060600080600061461885613830565b91945092509050600181600181111561463357614633615420565b146146c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f524c505265616465723a206465636f646564206974656d207479706520666f7260448201527f206c697374206973206e6f742061206c697374206974656d0000000000000000606482015260840161067f565b84516146cc8385615298565b14614759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f524c505265616465723a206c697374206974656d2068617320616e20696e766160448201527f6c696420646174612072656d61696e6465720000000000000000000000000000606482015260840161067f565b604080516020808252610420820190925290816020015b60408051808201909152600080825260208201528152602001906001900390816147705790505093506000835b865181101561485e576000806147e36040518060400160405280858c600001516147c79190614f9e565b8152602001858c602001516147dc9190615298565b9052613830565b5091509150604051806040016040528083836147ff9190615298565b8152602001848b602001516148149190615298565b815250888581518110614829576148296153ac565b602090810291909101015261483f600185615298565b935061484b8183615298565b6148559084615298565b9250505061479d565b50845250919392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156148e0576148e061486a565b604052919050565b73ffffffffffffffffffffffffffffffffffffffff8116811461490a57600080fd5b50565b600082601f83011261491e57600080fd5b813567ffffffffffffffff8111156149385761493861486a565b61496960207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614899565b81815284602083860101111561497e57600080fd5b816020850160208301376000918101602001919091529392505050565b600060c082840312156149ad57600080fd5b60405160c0810167ffffffffffffffff82821081831117156149d1576149d161486a565b8160405282935084358352602085013591506149ec826148e8565b81602084015260408501359150614a02826148e8565b816040840152606085013560608401526080850135608084015260a0850135915080821115614a3057600080fd5b50614a3d8582860161490d565b60a0830152505092915050565b600080600080600085870360e0811215614a6357600080fd5b863567ffffffffffffffff80821115614a7b57600080fd5b614a878a838b0161499b565b97506020890135965060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc084011215614ac057600080fd5b60408901955060c0890135925080831115614ada57600080fd5b828901925089601f840112614aee57600080fd5b8235915080821115614aff57600080fd5b508860208260051b8401011115614b1557600080fd5b959894975092955050506020019190565b60005b83811015614b41578181015183820152602001614b29565b83811115614b50576000848401525b50505050565b60008151808452614b6e816020860160208601614b26565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122f36020830184614b56565b600060208284031215614bc557600080fd5b5035919050565b600060208284031215614bde57600080fd5b813567ffffffffffffffff811115614bf557600080fd5b614c018482850161499b565b949350505050565b803567ffffffffffffffff81168114614c2157600080fd5b919050565b600060208284031215614c3857600080fd5b6122f382614c09565b80358015158114614c2157600080fd5b600080600080600060a08688031215614c6957600080fd5b8535614c74816148e8565b945060208601359350614c8960408701614c09565b9250614c9760608701614c41565b9150608086013567ffffffffffffffff811115614cb357600080fd5b614cbf8882890161490d565b9150509295509295909350565b60008060008060808587031215614ce257600080fd5b8435614ced816148e8565b93506020850135614cfd816148e8565b92506040850135614d0d816148e8565b9150614d1b60608601614c41565b905092959194509250565b8581528460208201527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b16604082015282151560f81b604882015260008251614d7a816049850160208701614b26565b919091016049019695505050505050565b80516fffffffffffffffffffffffffffffffff81168114614c2157600080fd5b600060608284031215614dbd57600080fd5b6040516060810181811067ffffffffffffffff82111715614de057614de061486a565b60405282518152614df360208401614d8b565b6020820152614e0460408401614d8b565b60408201529392505050565b600060808284031215614e2257600080fd5b6040516080810181811067ffffffffffffffff82111715614e4557614e4561486a565b8060405250823581526020830135602082015260408301356040820152606083013560608201528091505092915050565b600067ffffffffffffffff80841115614e9157614e9161486a565b8360051b6020614ea2818301614899565b868152918501918181019036841115614eba57600080fd5b865b84811015614eee57803586811115614ed45760008081fd5b614ee036828b0161490d565b845250918301918301614ebc565b50979650505050505050565b600060208284031215614f0c57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681851681830481118215151615614f6957614f69614f13565b02949350505050565b600067ffffffffffffffff808316818516808303821115614f9557614f95614f13565b01949350505050565b600082821015614fb057614fb0614f13565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614ff357614ff3614fb5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83147f80000000000000000000000000000000000000000000000000000000000000008314161561504757615047614f13565b500590565b6000808312837f80000000000000000000000000000000000000000000000000000000000000000183128115161561508657615086614f13565b837f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0183138116156150ba576150ba614f13565b50500390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60008413600084138583048511828216161561510157615101614f13565b7f8000000000000000000000000000000000000000000000000000000000000000600087128682058812818416161561513c5761513c614f13565b6000871292508782058712848416161561515857615158614f13565b8785058712818416161561516e5761516e614f13565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038413811516156151b6576151b6614f13565b827f80000000000000000000000000000000000000000000000000000000000000000384128116156151ea576151ea614f13565b50500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561522857615228614f13565b500290565b60008261523c5761523c614fb5565b500490565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a083015261528c60c0830184614b56565b98975050505050505050565b600082198211156152ab576152ab614f13565b500190565b805163ffffffff81168114614c2157600080fd5b805160ff81168114614c2157600080fd5b600060c082840312156152e757600080fd5b60405160c0810181811067ffffffffffffffff8211171561530a5761530a61486a565b604052615316836152b0565b8152615324602084016152c4565b6020820152615335604084016152c4565b6040820152615346606084016152b0565b6060820152615357608084016152b0565b608082015261536860a08401614d8b565b60a08201529392505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036153a5576153a5614f13565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060ff8316806153ee576153ee614fb5565b8060ff84160691505092915050565b600060ff821660ff84168082101561541757615417614f13565b90039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea164736f6c634300080f000a",
   569      "sourceMap": "1135:20265:110:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7915:86;7934:10;7946:9;1866:7;7984:5;7991:9;;;;;;;;;;;;7915:18;:86::i;:::-;1135:20265;;;;;5989:92;;;;;;;;;;-1:-1:-1;6066:8:110;;;;;;;5989:92;;;214:42:285;202:55;;;184:74;;172:2;157:18;5989:92:110;;;;;;;;2856:32;;;;;;;;;;-1:-1:-1;2856:32:110;;;;;;;;6664:180;;;;;;;;;;;;;:::i;3007:23::-;;;;;;;;;;-1:-1:-1;3007:23:110;;;;;;;;9088:3746;;;;;;;;;;-1:-1:-1;9088:3746:110;;;;;:::i;:::-;;:::i;4878:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2618:18::-;;;;;;;;;;-1:-1:-1;2618:18:110;;;;;;;;;;;5224:14:285;;5217:22;5199:41;;5187:2;5172:18;2618::110;5059:187:285;20785:180:110;;;;;;;;;;-1:-1:-1;20785:180:110;;;;;:::i;:::-;;:::i;6321:84::-;;;;;;;;;;-1:-1:-1;6390:8:110;;;;6321:84;;6447:173;;;;;;;;;;;;;:::i;12947:4839::-;;;;;;;;;;-1:-1:-1;12947:4839:110;;;;;:::i;:::-;;:::i;2732:30::-;;;;;;;;;;-1:-1:-1;2732:30:110;;;;;;;;;;;2129:23;;;;;;;;;;-1:-1:-1;2129:23:110;;;;;;;;2243:52;;;;;;;;;;-1:-1:-1;2243:52:110;;;;;:::i;:::-;;;;;;;;;;;;;;;;7337:120;;;;;;;;;;-1:-1:-1;7337:120:110;;;;;:::i;:::-;;:::i;:::-;;;6539:18:285;6527:31;;;6509:50;;6497:2;6482:18;7337:120:110;6365:200:285;2999:28:112;;;;;;;;;;-1:-1:-1;2999:28:112;;;;;;;;;;;;;;;;;;;;;;;;;6798:34:285;6786:47;;;6768:66;;6853:18;6907:15;;;6902:2;6887:18;;6880:43;6959:15;;6939:18;;;6932:43;6756:2;6741:18;2999:28:112;6570:411:285;2377:61:110;;;;;;;;;;-1:-1:-1;2377:61:110;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7188:25:285;;;7232:34;7302:15;;;7297:2;7282:18;;7275:43;7354:15;;7334:18;;;7327:43;7176:2;7161:18;2377:61:110;6986:390:285;18516:1971:110;;;;;;:::i;:::-;;:::i;6154:98::-;;;;;;;;;;-1:-1:-1;6233:12:110;;;;6154:98;;5491:423;;;;;;;;;;-1:-1:-1;5491:423:110;;;;;:::i;:::-;;:::i;18516:1971::-;18722:9;3417:18:112;3438:9;3417:30;;18876:11:110::1;18872:136;;;18911:17;::::0;::::1;::::0;18903:94:::1;;;::::0;;::::1;::::0;;9067:2:285;18903:94:110::1;::::0;::::1;9049:21:285::0;9086:18;;;9079:30;;;;9145:34;9125:18;;;9118:62;9216:34;9196:18;;;9189:62;9268:19;;18903:94:110::1;;;;;;;;;19176:37;19199:5;:12;19176:15;:37::i;:::-;19163:50;;:9;:50;;;;19155:98;;;::::0;::::1;::::0;;9500:2:285;19155:98:110::1;::::0;::::1;9482:21:285::0;9539:2;9519:18;;;9512:30;9578:34;9558:18;;;9551:62;9649:5;9629:18;;;9622:33;9672:19;;19155:98:110::1;9298:399:285::0;19155:98:110::1;19648:7;19632:5;:12;:23;;19624:66;;;::::0;::::1;::::0;;9904:2:285;19624:66:110::1;::::0;::::1;9886:21:285::0;9943:2;9923:18;;;9916:30;9982:32;9962:18;;;9955:60;10032:18;;19624:66:110::1;9702:354:285::0;19624:66:110::1;19796:10;19834:9;19820:23:::0;::::1;19816:108;;-1:-1:-1::0;19902:10:110::1;741:42:204::0;1213:27;19816:108:110::1;20181:23;20224:9;20235:6;20243:9;20254:11;20267:5;20207:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;20181:92;;1716:1;20447:3;20420:60;;20441:4;20420:60;;;20469:10;20420:60;;;;;;:::i;:::-;;;;;;;;18737:1750;;3548:29:112::0;3557:7;3566:10;3548:8;:29::i;:::-;3339:245;18516:1971:110;;;;;;:::o;6664:180::-;6724:8;;;;6710:10;:22;6702:76;;;;;;;11133:2:285;6702:76:110;;;11115:21:285;11172:2;11152:18;;;11145:30;11211:34;11191:18;;;11184:62;11282:11;11262:18;;;11255:39;11311:19;;6702:76:110;10931:405:285;6702:76:110;6788:6;:14;;;;;;6817:20;;6826:10;184:74:285;;6817:20:110;;172:2:285;157:18;6817:20:110;;;;;;;;6664:180::o;9088:3746::-;4748:6;;;;:15;4740:50;;;;;;;11543:2:285;4740:50:110;;;11525:21:285;11582:2;11562:18;;;11555:30;11621:24;11601:18;;;11594:52;11663:18;;4740:50:110;11341:346:285;4740:50:110;9620:4:::1;9598:27;;:3;:10;;;:27;;::::0;9590:103:::1;;;::::0;::::1;::::0;;11894:2:285;9590:103:110::1;::::0;::::1;11876:21:285::0;11933:2;11913:18;;;11906:30;11972:34;11952:18;;;11945:62;12043:33;12023:18;;;12016:61;12094:19;;9590:103:110::1;11692:427:285::0;9590:103:110::1;9891:8;::::0;:36:::1;::::0;;;;::::1;::::0;::::1;12270:25:285::0;;;9870:18:110::1;::::0;9891:8:::1;::::0;::::1;;;::::0;:20:::1;::::0;12243:18:285;;9891:36:110::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:47:::0;;-1:-1:-1;10072:45:110::1;;;::::0;;::::1;::::0;::::1;10100:16:::0;10072:45:::1;:::i;:::-;:27;:45::i;:::-;10058:10;:59;10037:135;;;::::0;::::1;::::0;;13978:2:285;10037:135:110::1;::::0;::::1;13960:21:285::0;14017:2;13997:18;;;13990:30;14056:34;14036:18;;;14029:62;14127:11;14107:18;;;14100:39;14156:19;;10037:135:110::1;13776:405:285::0;10037:135:110::1;10283:22;10308:27;10331:3;10308:22;:27::i;:::-;10345:40;10388:33:::0;;;:17:::1;:33;::::0;;;;;;;;10345:76;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;::::1;;::::0;;;;;;;10283:52;;-1:-1:-1;10345:76:110;10975:31;;:145:::1;;-1:-1:-1::0;11093:27:110;;11026:8:::1;::::0;11047:30:::1;::::0;;::::1;::::0;11026:52;;;;;14362:34:285;14350:47;;;11026:52:110::1;::::0;::::1;14332:66:285::0;11026:8:110::1;::::0;;::::1;;;::::0;:20:::1;::::0;14305:18:285;;11026:52:110::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:63:::0;:94:::1;;10975:145;10954:247;;;::::0;::::1;::::0;;14611:2:285;10954:247:110::1;::::0;::::1;14593:21:285::0;14650:2;14630:18;;;14623:30;14689:34;14669:18;;;14662:62;14760:25;14740:18;;;14733:53;14803:19;;10954:247:110::1;14409:419:285::0;10954:247:110::1;11481:147;::::0;;::::1;::::0;::::1;15007:25:285::0;;;11437:18:110::1;15048::285::0;;;15041:34;;;14980:18;;11481:147:110::1;::::0;;;;;::::1;::::0;;;;;;11458:180;;11481:147:::1;11458:180:::0;;::::1;::::0;12046:22;;::::1;12270:25:285::0;;;11458:180:110;-1:-1:-1;11991:161:110::1;::::0;12243:18:285;12046:22:110::1;::::0;;;;;::::1;::::0;;;11991:161;;::::1;::::0;;;::::1;::::0;;::::1;12046:22;11991:161:::0;::::1;::::0;12046:22;11991:161:::1;12079:16:::0;;11991:161:::1;:::i;:::-;12097:16;:41;;;11991:37;:161::i;:::-;11970:258;;;::::0;::::1;::::0;;16409:2:285;11970:258:110::1;::::0;::::1;16391:21:285::0;16448:2;16428:18;;;16421:30;16487:34;16467:18;;;16460:62;16558:20;16538:18;;;16531:48;16596:19;;11970:258:110::1;16207:414:285::0;11970:258:110::1;12546:165;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;12632:15;12546:165:::0;::::1;;::::0;;::::1;::::0;;;;;::::1;::::0;;;;;;-1:-1:-1;12510:33:110;;;:17:::1;:33:::0;;;;;:201;;;;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;;::::0;;::::1;::::0;;;;12816:10;;::::1;::::0;12804;;::::1;::::0;12771:56;;::::1;::::0;;::::1;::::0;;;::::1;::::0;12528:14;;12771:56:::1;::::0;-1:-1:-1;12771:56:110::1;9353:3481;;;;9088:3746:::0;;;;;:::o;20785:180::-;20911:8;;:36;;;;;;;;12270:25:285;;;20859:4:110;;20882:76;;20911:8;;;;;;;:20;;12243:18:285;;20911:36:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:46;;;20882:76;;:28;:76::i;:::-;20875:83;20785:180;-1:-1:-1;;20785:180:110:o;6447:173::-;6505:8;;;;6491:10;:22;6483:74;;;;;;;16828:2:285;6483:74:110;;;16810:21:285;16867:2;16847:18;;;16840:30;16906:34;16886:18;;;16879:62;16977:9;16957:18;;;16950:37;17004:19;;6483:74:110;16626:403:285;6483:74:110;6567:6;:13;;;;6576:4;6567:13;;;6595:18;;6602:10;184:74:285;;6595:18:110;;172:2:285;157:18;6595::110;14:250:285;12947:4839:110;4748:6;;;;:15;4740:50;;;;;;;11543:2:285;4740:50:110;;;11525:21:285;11582:2;11562:18;;;11555:30;11621:24;11601:18;;;11594:52;11663:18;;4740:50:110;11341:346:285;4740:50:110;13315:8:::1;::::0;:39:::1;:8;1337:42:158;13315:39:110;13294:137;;;::::0;::::1;::::0;;17236:2:285;13294:137:110::1;::::0;::::1;17218:21:285::0;17275:2;17255:18;;;17248:30;17314:34;17294:18;;;17287:62;17385:33;17365:18;;;17358:61;17436:19;;13294:137:110::1;17034:427:285::0;13294:137:110::1;13514:22;13539:27;13562:3;13539:22;:27::i;:::-;13576:40;13619:33:::0;;;:17:::1;:33;::::0;;;;;;;13576:76;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;::::1;;::::0;;;;;;;13514:52;;-1:-1:-1;13902:31:110;;13894:94:::1;;;::::0;::::1;::::0;;17668:2:285;13894:94:110::1;::::0;::::1;17650:21:285::0;17707:2;17687:18;;;17680:30;17746:34;17726:18;;;17719:62;17817:20;17797:18;;;17790:48;17855:19;;13894:94:110::1;17466:414:285::0;13894:94:110::1;14305:8;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14275:16;:26;;;:58;;;;14254:180;;;::::0;::::1;::::0;;18276:2:285;14254:180:110::1;::::0;::::1;18258:21:285::0;18315:2;18295:18;;;18288:30;18354:34;18334:18;;;18327:62;18425:34;18405:18;;;18398:62;18497:13;18476:19;;;18469:42;18528:19;;14254:180:110::1;18074:479:285::0;14254:180:110::1;14824:56;14853:16;:26;;;14824:56;;:28;:56::i;:::-;14803:172;;;::::0;::::1;::::0;;18760:2:285;14803:172:110::1;::::0;::::1;18742:21:285::0;18799:2;18779:18;;;18772:30;18838:34;18818:18;;;18811:62;18909:34;18889:18;;;18882:62;18981:7;18960:19;;;18953:36;19006:19;;14803:172:110::1;18558:473:285::0;14803:172:110::1;15185:8;::::0;15206:30:::1;::::0;;::::1;::::0;15185:52;;;;;14362:34:285;14350:47;;;15185:52:110::1;::::0;::::1;14332:66:285::0;15146:36:110::1;::::0;15185:8:::1;::::0;::::1;;;::::0;:20:::1;::::0;14305:18:285;;15185:52:110::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15548:27:::0;;15525:19;;15146:91;;-1:-1:-1;15525:50:110::1;15504:170;;;::::0;::::1;::::0;;19238:2:285;15504:170:110::1;::::0;::::1;19220:21:285::0;19277:2;19257:18;;;19250:30;19316:34;19296:18;;;19289:62;19387:34;19367:18;;;19360:62;19459:11;19438:19;;;19431:40;19488:19;;15504:170:110::1;19036:477:285::0;15504:170:110::1;15773:48;15802:8;:18;;;15773:48;;:28;:48::i;:::-;15752:162;;;::::0;::::1;::::0;;19720:2:285;15752:162:110::1;::::0;::::1;19702:21:285::0;19759:2;19739:18;;;19732:30;19798:34;19778:18;;;19771:62;19869:34;19849:18;;;19842:62;19941:5;19920:19;;;19913:34;19964:19;;15752:162:110::1;19518:471:285::0;15752:162:110::1;16030:36;::::0;;;:20:::1;:36;::::0;;;;;::::1;;:45;16022:111;;;::::0;::::1;::::0;;20196:2:285;16022:111:110::1;::::0;::::1;20178:21:285::0;20235:2;20215:18;;;20208:30;20274:34;20254:18;;;20247:62;20345:23;20325:18;;;20318:51;20386:19;;16022:111:110::1;19994:417:285::0;16022:111:110::1;16213:36;::::0;;;:20:::1;:36;::::0;;;;;;;:43;;;::::1;16252:4;16213:43;::::0;;16361:10;;::::1;::::0;16350:8:::1;:21:::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;17030:10;::::1;::::0;17042:12:::1;::::0;::::1;::::0;17056:9:::1;::::0;::::1;::::0;17067:8:::1;::::0;::::1;::::0;17006:70:::1;::::0;17030:10;17042:12;17056:9;17006:23:::1;:70::i;:::-;17144:8;:38:::0;;;::::1;1337:42:158;17144:38:110;::::0;;17341:44:::1;::::0;16991:85;;-1:-1:-1;17361:14:110;;17341:44:::1;::::0;::::1;::::0;16991:85;5224:14:285;5217:22;5199:41;;5187:2;5172:18;;5059:187;17341:44:110::1;;;;;;;;17649:16:::0;::::1;::::0;::::1;:61;;-1:-1:-1::0;17669:9:110::1;1015:1:158;17669:41:110;17649:61;17645:135;;;17726:43;::::0;::::1;::::0;;20618:2:285;17726:43:110::1;::::0;::::1;20600:21:285::0;20657:2;20637:18;;;20630:30;20696:34;20676:18;;;20669:62;20767:3;20747:18;;;20740:31;20788:19;;17726:43:110::1;20416:397:285::0;17645:135:110::1;13049:4737;;;;12947:4839:::0;:::o;7337:120::-;7402:6;7427:15;:10;7440:2;7427:15;:::i;:::-;:23;;7445:5;7427:23;:::i;5491:423::-;4396:13:36;;2762:1:158;;4396:13:36;;;;;4395:14;:40;;;;-1:-1:-1;4413:12:36;;:22;;;;:12;;:22;4395:40;4387:99;;;;;;;21725:2:285;4387:99:36;;;21707:21:285;21764:2;21744:18;;;21737:30;21803:34;21783:18;;;21776:62;21874:16;21854:18;;;21847:44;21908:19;;4387:99:36;21523:410:285;4387:99:36;4496:12;:22;;4528:20;;4496:22;;;4528:20;4496:22;4528:20;;;;;;5710:8:110::1;:38:::0;;;;;::::1;1337:42:158;5710:38:110;::::0;;;5758:8:::1;:20:::0;;5788:12:::1;:28:::0;;5710:38:::1;5788:28:::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;5826:8:::1;:20:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;5856:16;::::1;;5758:20:::0;;::::1;::::0;;::::1;4496:22:36::0;5856:16:110;;;;;;;;;::::1;::::0;;5882:25:::1;:23;:25::i;:::-;4585:5:36::0;4569:21;;;;;;4605:20;;22110:4:285;22098:17;;22080:36;;4605:20:36;;22068:2:285;22053:18;4605:20:36;;;;;;;5491:423:110;;;;;:::o;3817:4037:112:-;3984:6;:19;3949:17;;3969:34;;3984:19;;;;;3969:12;:34;:::i;:::-;3949:54;;4014:28;4045:17;:15;:17::i;:::-;4014:48;;4072:26;4171:6;:27;;;4163:36;;4128:6;:23;;;4120:32;;4113:87;;;;:::i;:::-;4072:128;-1:-1:-1;4215:13:112;;4211:2229;;4572:6;:20;4535:19;;4557:59;;4597:19;;4572:20;;;;;4557:59;:::i;:::-;4535:81;;4630:19;4761:6;:34;;;4753:43;;4724:19;:73;;;;:::i;:::-;4668:6;:18;4653:50;;4691:12;;4668:18;;4653:50;:::i;:::-;4652:146;;;;:::i;:::-;5017:6;:18;4630:168;;-1:-1:-1;4939:17:112;;4959:232;;5002:50;;4630:168;;5017:18;;5002:50;:::i;:::-;5091:6;:21;;;5083:30;;5153:6;:21;;;5145:30;;4959:16;:232::i;:::-;4939:252;;5468:1;5456:9;:13;5452:741;;;5741:437;5788:239;5845:10;5910:6;:34;;;5902:43;;6002:1;5990:9;:13;;;;:::i;:::-;5788:16;:239::i;5741:437::-;5728:450;;5452:741;6286:49;;6387:42;6349:24;6416:12;6387:42;;;6286:6;6387:42;-1:-1:-1;;4211:2229:112;6534:6;:31;;6558:7;;6534:6;:20;;:31;;6558:7;;6534:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6652:6;:23;;;6644:32;;6611:6;:20;;;;;;;;;;;;6603:29;;6596:81;;6575:190;;;;;;;24367:2:285;6575:190:112;;;24349:21:285;24406:2;24386:18;;;24379:30;24445:34;24425:18;;;24418:62;24516:32;24496:18;;;24489:60;24566:19;;6575:190:112;24165:426:285;6575:190:112;6877:6;:18;6827:20;;6850:46;;6877:18;;6850:16;;;:46;:::i;:::-;6827:69;;7378:15;7411:31;7420:13;7435:6;7411:8;:31::i;:::-;7396:46;;:12;:46;:::i;:::-;7378:64;;7722:15;7754:9;7740:23;;:11;:23;:::i;:::-;7722:41;;7787:7;7777;:17;7773:75;;;7810:27;7819:17;7829:7;7819;:17;:::i;:::-;7810:8;:27::i;:::-;3881:3973;;;;;;3817:4037;;:::o;4937:384:162:-;5036:7;5113:16;:24;;;5155:16;:26;;;5199:16;:41;;;5258:16;:32;;;5085:219;;;;;;;;;;25185:25:285;;;25241:2;25226:18;;25219:34;;;;25284:2;25269:18;;25262:34;25327:2;25312:18;;25305:34;25172:3;25157:19;;24954:391;5085:219:162;;;;;;;;;;;;;5062:252;;;;;;5055:259;;4937:384;;;:::o;4432:211::-;4566:9;;4577:10;;;;;4589;;;;;4601:9;;;;4612:12;;;;4626:8;;;;4555:80;;4519:7;;4555:80;;4566:9;;4577:10;4626:8;4555:80;;:::i;1041:343:171:-;1234:11;1261:16;1280:19;1294:4;1280:13;:19::i;:::-;1261:38;;1318:59;1350:3;1355:6;1363;1371:5;1318:31;:59::i;:::-;1309:68;1041:343;-1:-1:-1;;;;;;1041:343:171:o;21218:180:110:-;21299:4;21353:8;;;;;;;;;;;:36;;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21340:51;;:10;:51;:::i;:::-;21322:15;:69;;21218:180;-1:-1:-1;;21218:180:110:o;4419:2320:165:-;4589:4;4609:13;4632:15;4650:21;4660:7;4669:1;4650:9;:21::i;:::-;4632:39;;4782:10;4772:1146;;4894:10;4891:1;4884:21;5009:2;5005;4998:14;5747:56;5743:2;5736:68;5900:3;5896:2;5889:15;4772:1146;6666:4;6630;6589:9;6583:16;6549:2;6538:9;6534:18;6491:6;6449:7;6415:5;6389:309;6361:337;4419:2320;-1:-1:-1;;;;;;;4419:2320:165:o;8362:180:112:-;4888:13:36;;;;;;;4880:69;;;;;;;26346:2:285;4880:69:36;;;26328:21:285;26385:2;26365:18;;;26358:30;26424:34;26404:18;;;26397:62;26495:13;26475:18;;;26468:41;26526:19;;4880:69:36;26144:407:285;4880:69:36;8442:93:112::1;::::0;;::::1;::::0;::::1;::::0;;8472:6:::1;8442:93:::0;;;-1:-1:-1;8442:93:112::1;::::0;::::1;::::0;8519:12:::1;8442:93;;::::0;;;;;;;8433:102;::::1;;:6;:102:::0;8362:180::o;8548:152:110:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8664:12:110;;:29;;;;;;;-1:-1:-1;;8664:12:110;;;;;:27;;:29;;;;;-1:-1:-1;;8664:29:110;;;;;;:12;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8657:36;;8548:152;:::o;537:161:154:-;616:6;641:50;656:28;671:6;679:4;656:14;:28::i;:::-;686:4;641:14;:50::i;:::-;634:57;;537:161;;;;;;:::o;1040:228::-;1138:6;1257:4;1180:72;1213:19;1220:12;1257:4;1213:19;:::i;:::-;1205:28;;:4;:28;:::i;:::-;1235:16;:9;1247:4;1235:16;:::i;:::-;1180:24;:72::i;:::-;1164:89;;:12;:89;:::i;:::-;1163:98;;;;:::i;413:105:62:-;471:7;502:1;497;:6;;:14;;510:1;497:14;;;-1:-1:-1;506:1:62;;490:21;-1:-1:-1;413:105:62:o;407:192:155:-;461:9;484:18;505:9;484:30;;524:69;556:7;544:9;531:22;;:10;:22;:::i;:::-;:32;524:69;;;579:3;;;:::i;:::-;;;524:69;;;451:148;;407:192;:::o;2052:142:171:-;2116:18;2181:4;2171:15;;;;;;2154:33;;;;;;28115:19:285;;28159:2;28150:12;;27986:182;2154:33:171;;;;;;;;;;;;;2146:41;;2052:142;;;:::o;2253:281:170:-;2446:11;2482:45;2494:6;2502:24;2506:4;2512:6;2520:5;2502:3;:24::i;:::-;6693:17:156;;;;;;;6672;;;;;;;;;;:38;;6569:148;2482:45:170;2473:54;2253:281;-1:-1:-1;;;;;2253:281:170:o;3615:365:165:-;3696:4;3712:15;3931:2;3916:12;3909:5;3905:24;3901:33;3896:2;3887:7;3883:16;3879:56;3874:2;3867:5;3863:14;3860:76;3853:84;;3615:365;-1:-1:-1;;;;3615:365:165:o;311:102:64:-;367:6;397:1;392;:6;;:14;;405:1;392:14;;491:101;547:6;576:1;572;:5;:13;;584:1;572:13;;1208:273:88;1267:6;1391:36;491:4;1410:1;1399:8;1405:1;1399:5;:8::i;:::-;:12;;;;:::i;:::-;1398:28;;;;:::i;:::-;1391:6;:36::i;2830:6314:170:-;2923:19;2976:1;2962:4;:11;:15;2954:49;;;;;;;28375:2:285;2954:49:170;;;28357:21:285;28414:2;28394:18;;;28387:30;28453:23;28433:18;;;28426:51;28494:18;;2954:49:170;28173:345:285;2954:49:170;3014:23;3040:19;3052:6;3040:11;:19::i;:::-;3014:45;;3069:16;3088:21;3104:4;3088:15;:21::i;:::-;3069:40;;3119:26;3165:5;3148:23;;;;;;28115:19:285;;28159:2;28150:12;;27986:182;3148:23:170;;;;;;;;;;;;;3119:52;;3181:23;3295:9;3290:5790;3314:5;:12;3310:1;:16;3290:5790;;;3347:27;3377:5;3383:1;3377:8;;;;;;;;:::i;:::-;;;;;;;3347:38;;3516:3;:10;3497:15;:29;;3489:88;;;;;;;28914:2:285;3489:88:170;;;28896:21:285;28953:2;28933:18;;;28926:30;28992:34;28972:18;;;28965:62;29063:16;29043:18;;;29036:44;29097:19;;3489:88:170;28712:410:285;3489:88:170;3596:15;3615:1;3596:20;3592:837;;3768:19;;3758:30;;;;;;;3741:48;;3729:76;;3741:48;;3758:30;3741:48;28115:19:285;;;28159:2;28150:12;;27986:182;3741:48:170;;;;;;;;;;;;;3791:13;6693:17:156;;;;;;;6672;;;;;;;;;;:38;;6569:148;3729:76:170;3700:176;;;;;;;29329:2:285;3700:176:170;;;29311:21:285;29368:2;29348:18;;;29341:30;29407:31;29387:18;;;29380:59;29456:18;;3700:176:170;29127:353:285;3700:176:170;3592:837;;;3901:19;;:26;3931:2;-1:-1:-1;3897:532:170;;4097:19;;4087:30;;;;;;;4070:48;;4058:76;;4070:48;;4087:30;4070:48;28115:19:285;;;28159:2;28150:12;;27986:182;4058:76:170;4029:186;;;;;;;29687:2:285;4029:186:170;;;29669:21:285;29726:2;29706:18;;;29699:30;29765:34;29745:18;;;29738:62;29836:9;29816:18;;;29809:37;29863:19;;4029:186:170;29485:403:285;3897:532:170;4336:19;;6693:17:156;;;;;;;;;;6672;;;;;;;:38;4316:98:170;;;;;;;30095:2:285;4316:98:170;;;30077:21:285;30134:2;30114:18;;;30107:30;30173:34;30153:18;;;30146:62;30244:8;30224:18;;;30217:36;30270:19;;4316:98:170;29893:402:285;4316:98:170;936:14;803:2;949:1;936:14;:::i;:::-;4447:11;:19;;;:26;:48;4443:4627;;4538:3;:10;4519:15;:29;4515:1346;;5047:52;5067:11;:19;;;803:2;5067:31;;;;;;;;:::i;:::-;;;;;;;5047:19;:52::i;:::-;5038:61;;5145:1;5129:6;:13;:17;5121:89;;;;;;;30502:2:285;5121:89:170;;;30484:21:285;30541:2;30521:18;;;30514:30;30580:34;30560:18;;;30553:62;30651:29;30631:18;;;30624:57;30698:19;;5121:89:170;30300:423:285;5121:89:170;5322:1;5307:5;:12;:16;;;;:::i;:::-;5302:1;:21;5294:92;;;;;;;30930:2:285;5294:92:170;;;30912:21:285;30969:2;30949:18;;;30942:30;31008:34;30988:18;;;30981:62;31079:28;31059:18;;;31052:56;31125:19;;5294:92:170;30728:422:285;5294:92:170;5409:13;;;;;;;;4515:1346;5609:15;5633:3;5637:15;5633:20;;;;;;;;:::i;:::-;;;;;;;;;5627:27;;5609:45;;5676:33;5712:11;:19;;;5732:9;5712:30;;;;;;;;;;:::i;:::-;;;;;;;5676:66;;5780:20;5791:8;5780:10;:20::i;:::-;5764:36;-1:-1:-1;5822:20:170;5841:1;5822:20;;:::i;:::-;;;5447:414;;4443:4627;;;1105:1;5885:11;:19;;;:26;:59;5881:3189;;5964:17;5984:25;5997:11;5984:12;:25::i;:::-;5964:45;;6027:12;6048:4;6053:1;6048:7;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;6074:12:170;6094:10;6103:1;6048:7;6094:10;:::i;:::-;6089:16;;:1;:16;:::i;:::-;6074:31;;6123:26;6152:25;6164:4;6170:6;6152:25;;:11;:25::i;:::-;6123:54;;6195:25;6223:33;6235:3;6240:15;6223:11;:33::i;:::-;6195:61;;6274:26;6303:51;6326:13;6341:12;6303:22;:51::i;:::-;6274:80;;6661:18;6637:13;:20;:42;6608:171;;;;;;;31719:2:285;6608:171:170;;;31701:21:285;31758:2;31738:18;;;31731:30;31797:34;31777:18;;;31770:62;31868:28;31848:18;;;31841:56;31914:19;;6608:171:170;31517:422:285;6608:171:170;6802:26;;;1447:1;6802:26;;:55;;-1:-1:-1;6832:25:170;;;1553:1;6832:25;6802:55;6798:2169;;;7498:18;7475:12;:19;:41;7442:185;;;;;;;32146:2:285;7442:185:170;;;32128:21:285;32185:2;32165:18;;;32158:30;32224:34;32204:18;;;32197:62;32295:31;32275:18;;;32268:59;32344:19;;7442:185:170;31944:425:285;7442:185:170;7985:43;8005:11;:19;;;8025:1;8005:22;;;;;;;;:::i;7985:43::-;7976:52;;8074:1;8058:6;:13;:17;8050:87;;;;;;;32576:2:285;8050:87:170;;;32558:21:285;32615:2;32595:18;;;32588:30;32654:34;32634:18;;;32627:62;32725:27;32705:18;;;32698:55;32770:19;;8050:87:170;32374:421:285;8050:87:170;8249:1;8234:5;:12;:16;;;;:::i;:::-;8229:1;:21;8221:90;;;;;;;33002:2:285;8221:90:170;;;32984:21:285;33041:2;33021:18;;;33014:30;33080:34;33060:18;;;33053:62;33151:26;33131:18;;;33124:54;33195:19;;8221:90:170;32800:420:285;8221:90:170;8334:13;;;;;;;;;;;;;;6798:2169;8376:31;;;;;:65;;-1:-1:-1;8411:30:170;;;1339:1;8411:30;8376:65;8372:595;;;8748:34;8759:11;:19;;;8779:1;8759:22;;;;;;;;:::i;:::-;;;;;;;8748:10;:34::i;:::-;8732:50;-1:-1:-1;8804:37:170;8823:18;8804:37;;:::i;:::-;;;8372:595;;;8888:60;;;;;33427:2:285;8888:60:170;;;33409:21:285;33466:2;33446:18;;;33439:30;33505:34;33485:18;;;33478:62;33576:20;33556:18;;;33549:48;33614:19;;8888:60:170;33225:414:285;8372:595:170;5946:3035;;;;;;5881:3189;;;9005:50;;;;;33846:2:285;9005:50:170;;;33828:21:285;33885:2;33865:18;;;33858:30;33924:34;33904:18;;;33897:62;33995:10;33975:18;;;33968:38;34023:19;;9005:50:170;33644:404:285;5881:3189:170;-1:-1:-1;3328:3:170;;;;:::i;:::-;;;;3290:5790;;;-1:-1:-1;9090:47:170;;;;;34255:2:285;9090:47:170;;;34237:21:285;34294:2;34274:18;;;34267:30;34333:34;34313:18;;;34306:62;34404:7;34384:18;;;34377:35;34429:19;;9090:47:170;34053:401:285;4596:2947:88;4644:8;4700:1;4696;:5;4688:27;;;;;;;34661:2:285;4688:27:88;;;34643:21:285;34700:1;34680:18;;;34673:29;34738:11;34718:18;;;34711:39;34767:18;;4688:27:88;34459:332:285;4688:27:88;5107:8;5145:2;5125:16;5138:1;5125:4;:16::i;:::-;5118:29;5175:3;:7;;;5161:22;;;;5208:17;;;6001:31;5997:35;;6052:5;;5459:2;6051:13;;;6068:32;6050:50;6120:5;;6119:13;;6136:33;6118:51;6189:5;;6188:13;;6205:33;6187:51;6258:5;;6257:13;;6274:33;6256:51;6327:5;;6326:13;;6343:32;6325:50;6395:5;;6394:13;;6411:30;6393:48;5398:31;5394:35;;5449:5;;5448:13;;5465:32;5447:50;5517:5;;5516:13;;5533:32;5515:50;5585:5;;5584:13;;5583:50;;5653:5;;5652:13;;5651:50;;5721:5;;5720:13;;;5719:50;;5787:5;;;:46;;6735:10;7125:43;7120:48;7232:71;:75;;;;7227:80;;;;7380:72;7375:77;7523:3;7517:9;;;-1:-1:-1;;4596:2947:88:o;1487:3103::-;1536:8;1718:21;1713:1;:26;1709:40;;-1:-1:-1;1748:1:88;;1487:3103;-1:-1:-1;1487:3103:88:o;1709:40::-;1948:21;1943:1;:26;1939:54;;1971:22;;;;;34998:2:285;1971:22:88;;;34980:21:285;35037:2;35017:18;;;35010:30;35076:14;35056:18;;;35049:42;35108:18;;1971:22:88;34796:336:285;1939:54:88;2266:5;2260:2;2255:7;;;2254:17;;-1:-1:-1;2535:8:88;2601:2;2559:29;2548:7;;;2547:41;2591:5;2547:49;2546:57;;2629:29;2625:33;;2621:37;;;3300:35;;;3355:5;;2935:2;3354:13;;;3371:32;3353:50;3423:5;;3422:13;;3421:51;;3492:5;;3491:13;;3508:34;3490:52;3562:5;;3561:13;;3560:53;;3633:5;;3632:13;;3649:35;3631:53;2941:32;2874:31;2870:35;;2925:5;;2924:13;;2923:50;;;2998:5;;;:40;;3058:5;3057:13;;;3074:35;3056:53;3127:5;;;3136:40;3127:50;4002:10;4502:49;4489:62;4564:3;:7;;;;4488:84;;;;;;-1:-1:-1;;1487:3103:88:o;9434:390:170:-;9553:13;;9500:24;;9553:13;9585:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;9585:22:170;;;;;;;;;;;;;;;;9576:31;;9622:9;9617:201;9641:6;9637:1;:10;9617:201;;;9676:72;;;;;;;;9696:6;9703:1;9696:9;;;;;;;;:::i;:::-;;;;;;;9676:72;;;;9716:29;9735:6;9742:1;9735:9;;;;;;;;:::i;:::-;;;;;;;9716:18;:29::i;:::-;9676:72;;;9664:6;9671:1;9664:9;;;;;;;;:::i;:::-;;;;;;;;;;:84;9790:3;;9617:201;;;;9526:298;9434:390;;;:::o;4332:1978:156:-;4395:12;4419:21;4550:4;4544:11;4532:23;;4663:6;4657:13;4836:11;4830:4;4826:22;5195:4;5180:13;5176:24;5169:4;5165:9;5161:40;5151:8;5147:55;5141:4;5134:69;5293:13;5283:8;5276:31;;5434:4;5426:6;5422:17;5571:4;5561:8;5557:19;5662:4;5647:622;5675:11;5672:1;5669:18;5647:622;;;5854:1;5848:4;5844:12;5830;5826:31;5996:1;5984:10;5980:18;5974:25;5968:4;5963:37;6119:1;6113:4;6109:12;6101:6;6093:29;6249:4;6246:1;6242:12;6235:4;6227:6;6223:17;6215:40;-1:-1:-1;;5702:4:156;5695:12;5647:622;;;-1:-1:-1;6295:8:156;;4332:1978;-1:-1:-1;;;;;4332:1978:156:o;3993:464:168:-;4055:17;4085:18;4105;4125:20;4149:18;4163:3;4149:13;:18::i;:::-;4084:83;;-1:-1:-1;4084:83:168;-1:-1:-1;4084:83:168;-1:-1:-1;4198:21:168;4186:8;:33;;;;;;;;:::i;:::-;;4178:103;;;;;;;35528:2:285;4178:103:168;;;35510:21:285;35567:2;35547:18;;;35540:30;35606:34;35586:18;;;35579:62;35677:27;35657:18;;;35650:55;35722:19;;4178:103:168;35326:421:285;4178:103:168;4314:23;4327:10;4314;:23;:::i;:::-;4300:10;;:37;4292:102;;;;;;;35954:2:285;4292:102:168;;;35936:21:285;35993:2;35973:18;;;35966:30;36032:34;36012:18;;;36005:62;36103:22;36083:18;;;36076:50;36143:19;;4292:102:168;35752:416:285;4292:102:168;4412:38;4418:3;:7;;;4427:10;4439;4412:5;:38::i;10121:193:170:-;10195:16;10244:2;10229:5;:12;;;:17;:78;;10281:26;10301:5;10281:19;:26::i;:::-;10229:78;;;10249:29;10272:5;10249:22;:29::i;10495:172::-;10562:21;10606:54;10622:37;10642:5;:13;;;10656:1;10642:16;;;;;;;;:::i;10622:37::-;10606:15;:54::i;3805:237:156:-;3880:12;3918:6;:13;3908:6;:23;3904:70;;-1:-1:-1;3954:9:156;;;;;;;;;-1:-1:-1;3954:9:156;;3947:16;;3904:70;3990:45;3996:6;4004;4028;4012;:13;:22;;;;:::i;:::-;3990:5;:45::i;10892:321:170:-;10980:15;11007:11;11034:2;:9;11022:2;:9;:21;11021:47;;11059:2;:9;11021:47;;;11047:2;:9;11021:47;11007:61;;11078:129;11095:3;11085:7;:13;:43;;;;;11117:2;11120:7;11117:11;;;;;;;;:::i;:::-;;;;;;;;;11102:26;;;:2;11105:7;11102:11;;;;;;;;:::i;:::-;;;;;;;:26;11085:43;11078:129;;;11173:9;;;;;11078:129;;;10997:216;10892:321;;;;:::o;15328:575:88:-;15376:9;15409:1;15405;:5;15397:27;;;;;;;34661:2:285;15397:27:88;;;34643:21:285;34700:1;34680:18;;;34673:29;34738:11;34718:18;;;34711:39;34767:18;;15397:27:88;34459:332:285;15397:27:88;-1:-1:-1;15821:1:88;15473:34;-1:-1:-1;;15467:1:88;15463:49;15566:9;;;15546:18;15543:33;15540:1;15536:41;15530:48;15624:9;;;15612:10;15609:25;15606:1;15602:33;15596:40;15678:9;;;15670:6;15667:21;15664:1;15660:29;15654:36;15730:9;;;15724:4;15721:19;15718:1;15714:27;;;15708:34;;;15781:9;;;15776:3;15773:18;15770:1;15766:26;15760:33;15832:9;;;15824:18;;;15817:26;;15811:33;15876:9;;;-1:-1:-1;15862:25:88;;15328:575::o;3732:130:168:-;3791:21;3831:24;3840:14;3850:3;3840:9;:14::i;:::-;3831:8;:24::i;5246:4079::-;5335:15;5352;5369:17;5705:1;5692:3;:10;;;:14;5684:101;;;;;;;36375:2:285;5684:101:168;;;36357:21:285;36414:2;36394:18;;;36387:30;36453:34;36433:18;;;36426:62;36524:34;36504:18;;;36497:62;36596:12;36575:19;;;36568:41;36626:19;;5684:101:168;36173:478:285;5684:101:168;5816:7;;;;5898:10;;5796:17;5890:19;5943:4;5933:14;;5929:3390;;5999:1;6002;6005:21;5991:36;;;;;;;;;;5929:3390;6058:4;6048:6;:14;6044:3275;;6164:14;6181:13;6190:4;6181:6;:13;:::i;:::-;6164:30;;6247:6;6234:3;:10;;;:19;6209:140;;;;;;;36858:2:285;6209:140:168;;;36840:21:285;36897:2;36877:18;;;36870:30;36936:34;36916:18;;;36909:62;37007:34;36987:18;;;36980:62;37079:16;37058:19;;;37051:45;37113:19;;6209:140:168;36656:482:285;6209:140:168;6471:1;6462:11;;;6456:18;6476:14;6452:39;;6544:11;;;;:41;;-1:-1:-1;6559:26:168;;;;;;6544:41;6519:177;;;;;;;37345:2:285;6519:177:168;;;37327:21:285;37384:2;37364:18;;;37357:30;37423:34;37403:18;;;37396:62;37494:34;37474:18;;;37467:62;37566:15;37545:19;;;37538:44;37599:19;;6519:177:168;37143:481:285;6519:177:168;-1:-1:-1;6719:1:168;;-1:-1:-1;6722:6:168;-1:-1:-1;6730:21:168;;-1:-1:-1;6711:41:168;;-1:-1:-1;;6711:41:168;6044:3275;6783:4;6773:6;:14;6769:2550;;6831:19;6853:13;6862:4;6853:6;:13;:::i;:::-;6831:35;;6919:11;6906:3;:10;;;:24;6881:164;;;;;;;37831:2:285;6881:164:168;;;37813:21:285;37870:2;37850:18;;;37843:30;37909:34;37889:18;;;37882:62;37980:34;37960:18;;;37953:62;38052:19;38031;;;38024:48;38089:19;;6881:164:168;37629:485:285;6881:164:168;7167:1;7158:11;;7152:18;7172:14;7148:39;7060:25;7240:26;;;7215:143;;;;;;;38321:2:285;7215:143:168;;;38303:21:285;38360:2;38340:18;;;38333:30;38399:34;38379:18;;;38372:62;38470:34;38450:18;;;38443:62;38542:12;38521:19;;;38514:41;38572:19;;7215:143:168;38119:478:285;7215:143:168;7488:1;7479:11;;7473:18;7455:1;7451:19;;7446:3;7442:29;7438:54;7537:2;7528:11;;7520:96;;;;;;;38804:2:285;7520:96:168;;;38786:21:285;38843:2;38823:18;;;38816:30;38882:34;38862:18;;;38855:62;38953:34;38933:18;;;38926:62;39025:10;39004:19;;;38997:39;39053:19;;7520:96:168;38602:476:285;7520:96:168;7669:20;7683:6;7669:11;:20;:::i;:::-;7656:10;;:33;7631:168;;;;;;;39285:2:285;7631:168:168;;;39267:21:285;39324:2;39304:18;;;39297:30;39363:34;39343:18;;;39336:62;39434:34;39414:18;;;39407:62;39506:14;39485:19;;;39478:43;39538:19;;7631:168:168;39083:480:285;7631:168:168;7822:15;7826:11;7822:1;:15;:::i;:::-;7814:55;-1:-1:-1;7839:6:168;-1:-1:-1;7847:21:168;;-1:-1:-1;7814:55:168;;-1:-1:-1;;;;7814:55:168;6769:2550;7900:4;7890:6;:14;7886:1433;;8003:15;8021:13;8030:4;8021:6;:13;:::i;:::-;8003:31;;8070:7;8057:3;:10;;;:20;8049:107;;;;;;;39770:2:285;8049:107:168;;;39752:21:285;39809:2;39789:18;;;39782:30;39848:34;39828:18;;;39821:62;39919:34;39899:18;;;39892:62;39991:12;39970:19;;;39963:41;40021:19;;8049:107:168;39568:478:285;8049:107:168;8179:1;;-1:-1:-1;8182:7:168;-1:-1:-1;8179:1:168;;-1:-1:-1;8171:42:168;;-1:-1:-1;;8171:42:168;7886:1433;8270:20;8293:13;8302:4;8293:6;:13;:::i;:::-;8270:36;;8359:12;8346:3;:10;;;:25;8321:161;;;;;;;40253:2:285;8321:161:168;;;40235:21:285;40292:2;40272:18;;;40265:30;40331:34;40311:18;;;40304:62;40402:34;40382:18;;;40375:62;40474:15;40453:19;;;40446:44;40507:19;;8321:161:168;40051:481:285;8321:161:168;8604:1;8595:11;;8589:18;8609:14;8585:39;8497:25;8677:26;;;8652:141;;;;;;;40739:2:285;8652:141:168;;;40721:21:285;40778:2;40758:18;;;40751:30;40817:34;40797:18;;;40790:62;40888:34;40868:18;;;40861:62;40960:10;40939:19;;;40932:39;40988:19;;8652:141:168;40537:476:285;8652:141:168;8926:1;8917:11;;8911:18;8892:1;8888:20;;8883:3;8879:30;8875:55;8976:2;8966:12;;8958:95;;;;;;;41220:2:285;8958:95:168;;;41202:21:285;41259:2;41239:18;;;41232:30;41298:34;41278:18;;;41271:62;41369:34;41349:18;;;41342:62;41441:8;41420:19;;;41413:37;41467:19;;8958:95:168;41018:474:285;8958:95:168;9106:22;9121:7;9106:12;:22;:::i;:::-;9093:10;;:35;9068:168;;;;;;;41699:2:285;9068:168:168;;;41681:21:285;41738:2;41718:18;;;41711:30;41777:34;41757:18;;;41750:62;41848:34;41828:18;;;41821:62;41920:12;41899:19;;;41892:41;41950:19;;9068:168:168;41497:478:285;9068:168:168;9259:16;9263:12;9259:1;:16;:::i;:::-;9251:57;-1:-1:-1;9277:7:168;-1:-1:-1;9286:21:168;;-1:-1:-1;9251:57:168;;-1:-1:-1;;;;9251:57:168;5246:4079;;;;;;:::o;9585:780::-;9676:17;9722:7;9712:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9712:18:168;-1:-1:-1;9705:25:168;-1:-1:-1;9740:54:168;;9772:11;9740:54;10053:11;10067:36;10096:7;10088:4;10067:36;:::i;:::-;10053:50;;10158:2;10152:4;10148:13;10183:1;10197:87;10211:7;10208:1;10205:14;10197:87;;;10269:11;;;10263:18;10249:12;;;10242:40;10234:2;10227:10;10197:87;;;10307:7;10304:1;10301:14;10298:51;;;10345:1;10335:7;10329:4;10325:18;10318:29;10298:51;;;10122:237;9585:780;;;;;:::o;4847:137::-;4912:17;4948:29;4954:3;:7;;;4963:1;4966:3;:10;;;4948:5;:29::i;660:2816:156:-;752:12;824:7;808;818:2;808:12;:23;;800:50;;;;;;;42182:2:285;800:50:156;;;42164:21:285;42221:2;42201:18;;;42194:30;42260:16;42240:18;;;42233:44;42294:18;;800:50:156;41980:338:285;800:50:156;892:6;881:7;872:6;:16;:26;;864:53;;;;;;;42182:2:285;864:53:156;;;42164:21:285;42221:2;42201:18;;;42194:30;42260:16;42240:18;;;42233:44;42294:18;;864:53:156;41980:338:285;864:53:156;965:7;956:6;:16;939:6;:13;:33;;931:63;;;;;;;42525:2:285;931:63:156;;;42507:21:285;42564:2;42544:18;;;42537:30;42603:19;42583:18;;;42576:47;42640:18;;931:63:156;42323:341:285;931:63:156;1015:22;1078:15;;1106:1931;;;;3178:4;3172:11;3159:24;;3365:1;3354:9;3347:20;3413:4;3402:9;3398:20;3392:4;3385:34;1071:2362;;1106:1931;1288:4;1282:11;1269:24;;1947:2;1938:7;1934:16;2329:9;2322:17;2316:4;2312:28;2300:9;2289;2285:25;2281:60;2377:7;2373:2;2369:16;2629:6;2615:9;2608:17;2602:4;2598:28;2586:9;2578:6;2574:22;2570:57;2566:70;2403:389;2662:3;2658:2;2655:11;2403:389;;;2780:9;;2769:21;;2703:4;2695:13;;;;2735;2403:389;;;-1:-1:-1;;2810:26:156;;;3018:2;3001:11;3014:7;2997:25;2991:4;2984:39;-1:-1:-1;1071:2362:156;-1:-1:-1;3460:9:156;660:2816;-1:-1:-1;;;;660:2816:156:o;1298:390:168:-;-1:-1:-1;;;;;;;;;;;;;;;;;1453:1:168;1440:3;:10;:14;1432:101;;;;;;;36375:2:285;1432:101:168;;;36357:21:285;36414:2;36394:18;;;36387:30;36453:34;36433:18;;;36426:62;36524:34;36504:18;;;36497:62;36596:12;36575:19;;;36568:41;36626:19;;1432:101:168;36173:478:285;1432:101:168;-1:-1:-1;1640:41:168;;;;;;;;;1658:10;;1640:41;;1610:2;1601:12;;;1640:41;;;;;;;;1298:390::o;1840:1740::-;1901:21;1935:18;1955;1975:20;1999:18;2013:3;1999:13;:18::i;:::-;1934:83;;-1:-1:-1;1934:83:168;-1:-1:-1;1934:83:168;-1:-1:-1;2048:21:168;2036:8;:33;;;;;;;;:::i;:::-;;2028:102;;;;;;;42871:2:285;2028:102:168;;;42853:21:285;42910:2;42890:18;;;42883:30;42949:34;42929:18;;;42922:62;43020:26;43000:18;;;42993:54;43064:19;;2028:102:168;42669:420:285;2028:102:168;2176:10;;2149:23;2162:10;2149;:23;:::i;:::-;:37;2141:100;;;;;;;43296:2:285;2141:100:168;;;43278:21:285;43335:2;43315:18;;;43308:30;43374:34;43354:18;;;43347:62;43445:20;43425:18;;;43418:48;43483:19;;2141:100:168;43094:414:285;2141:100:168;2651:30;;;1123:2;2651:30;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;2651:30:168;;;;;;;;;;;;;;-1:-1:-1;2644:37:168;-1:-1:-1;2692:17:168;2740:10;2760:681;2776:10;;2767:19;;2760:681;;;2803:18;2823;2846:150;2877:105;;;;;;;;2908:6;2895:3;:10;;;:19;;;;:::i;:::-;2877:105;;;;2972:6;2961:3;:7;;;2940:38;;;;:::i;:::-;2877:105;;2846:13;:150::i;:::-;2802:194;;;;;3201:153;;;;;;;;3248:10;3235;:23;;;;:::i;:::-;3201:153;;;;3332:6;3321:3;:7;;;3300:38;;;;:::i;:::-;3201:153;;;3183:4;3188:9;3183:15;;;;;;;;:::i;:::-;;;;;;;;;;:171;3369:14;3382:1;3369:14;;:::i;:::-;;-1:-1:-1;3407:23:168;3420:10;3407;:23;:::i;:::-;3397:33;;;;:::i;:::-;;;2788:653;;2760:681;;;-1:-1:-1;3541:23:168;;-1:-1:-1;3548:4:168;;1840:1740;-1:-1:-1;;;1840:1740:168:o;753:184:285:-;805:77;802:1;795:88;902:4;899:1;892:15;926:4;923:1;916:15;942:334;1013:2;1007:9;1069:2;1059:13;;1074:66;1055:86;1043:99;;1172:18;1157:34;;1193:22;;;1154:62;1151:88;;;1219:18;;:::i;:::-;1255:2;1248:22;942:334;;-1:-1:-1;942:334:285:o;1281:154::-;1367:42;1360:5;1356:54;1349:5;1346:65;1336:93;;1425:1;1422;1415:12;1336:93;1281:154;:::o;1440:589::-;1482:5;1535:3;1528:4;1520:6;1516:17;1512:27;1502:55;;1553:1;1550;1543:12;1502:55;1589:6;1576:20;1615:18;1611:2;1608:26;1605:52;;;1637:18;;:::i;:::-;1681:114;1789:4;1720:66;1713:4;1709:2;1705:13;1701:86;1697:97;1681:114;:::i;:::-;1820:2;1811:7;1804:19;1866:3;1859:4;1854:2;1846:6;1842:15;1838:26;1835:35;1832:55;;;1883:1;1880;1873:12;1832:55;1948:2;1941:4;1933:6;1929:17;1922:4;1913:7;1909:18;1896:55;1996:1;1971:16;;;1989:4;1967:27;1960:38;;;;1975:7;1440:589;-1:-1:-1;;;1440:589:285:o;2034:1032::-;2102:5;2150:4;2138:9;2133:3;2129:19;2125:30;2122:50;;;2168:1;2165;2158:12;2122:50;2201:2;2195:9;2243:4;2235:6;2231:17;2267:18;2335:6;2323:10;2320:22;2315:2;2303:10;2300:18;2297:46;2294:72;;;2346:18;;:::i;:::-;2386:10;2382:2;2375:22;2415:6;2406:15;;2458:9;2445:23;2437:6;2430:39;2521:2;2510:9;2506:18;2493:32;2478:47;;2534:33;2559:7;2534:33;:::i;:::-;2600:7;2595:2;2587:6;2583:15;2576:32;2660:2;2649:9;2645:18;2632:32;2617:47;;2673:33;2698:7;2673:33;:::i;:::-;2739:7;2734:2;2726:6;2722:15;2715:32;2808:2;2797:9;2793:18;2780:32;2775:2;2767:6;2763:15;2756:57;2875:3;2864:9;2860:19;2847:33;2841:3;2833:6;2829:16;2822:59;2932:3;2921:9;2917:19;2904:33;2890:47;;2960:2;2952:6;2949:14;2946:34;;;2976:1;2973;2966:12;2946:34;;3014:45;3055:3;3046:6;3035:9;3031:22;3014:45;:::i;:::-;3008:3;3000:6;2996:16;2989:71;;;2034:1032;;;;:::o;3071:1173::-;3271:6;3279;3287;3295;3303;3347:9;3338:7;3334:23;3377:3;3373:2;3369:12;3366:32;;;3394:1;3391;3384:12;3366:32;3434:9;3421:23;3463:18;3504:2;3496:6;3493:14;3490:34;;;3520:1;3517;3510:12;3490:34;3543:72;3607:7;3598:6;3587:9;3583:22;3543:72;:::i;:::-;3533:82;;3662:2;3651:9;3647:18;3634:32;3624:42;;3759:3;3690:66;3686:2;3682:75;3678:85;3675:105;;;3776:1;3773;3766:12;3675:105;3814:2;3803:9;3799:18;3789:28;;3870:3;3859:9;3855:19;3842:33;3826:49;;3900:2;3890:8;3887:16;3884:36;;;3916:1;3913;3906:12;3884:36;3954:8;3943:9;3939:24;3929:34;;4001:7;3994:4;3990:2;3986:13;3982:27;3972:55;;4023:1;4020;4013:12;3972:55;4063:2;4050:16;4036:30;;4089:2;4081:6;4078:14;4075:34;;;4105:1;4102;4095:12;4075:34;;4158:7;4153:2;4143:6;4140:1;4136:14;4132:2;4128:23;4124:32;4121:45;4118:65;;;4179:1;4176;4169:12;4118:65;3071:1173;;;;-1:-1:-1;3071:1173:285;;-1:-1:-1;;;4210:2:285;4202:11;;4232:6;3071:1173::o;4249:258::-;4321:1;4331:113;4345:6;4342:1;4339:13;4331:113;;;4421:11;;;4415:18;4402:11;;;4395:39;4367:2;4360:10;4331:113;;;4462:6;4459:1;4456:13;4453:48;;;4497:1;4488:6;4483:3;4479:16;4472:27;4453:48;;4249:258;;;:::o;4512:317::-;4554:3;4592:5;4586:12;4619:6;4614:3;4607:19;4635:63;4691:6;4684:4;4679:3;4675:14;4668:4;4661:5;4657:16;4635:63;:::i;:::-;4743:2;4731:15;4748:66;4727:88;4718:98;;;;4818:4;4714:109;;4512:317;-1:-1:-1;;4512:317:285:o;4834:220::-;4983:2;4972:9;4965:21;4946:4;5003:45;5044:2;5033:9;5029:18;5021:6;5003:45;:::i;5251:180::-;5310:6;5363:2;5351:9;5342:7;5338:23;5334:32;5331:52;;;5379:1;5376;5369:12;5331:52;-1:-1:-1;5402:23:285;;5251:180;-1:-1:-1;5251:180:285:o;5436:374::-;5535:6;5588:2;5576:9;5567:7;5563:23;5559:32;5556:52;;;5604:1;5601;5594:12;5556:52;5644:9;5631:23;5677:18;5669:6;5666:30;5663:50;;;5709:1;5706;5699:12;5663:50;5732:72;5796:7;5787:6;5776:9;5772:22;5732:72;:::i;:::-;5722:82;5436:374;-1:-1:-1;;;;5436:374:285:o;6000:171::-;6067:20;;6127:18;6116:30;;6106:41;;6096:69;;6161:1;6158;6151:12;6096:69;6000:171;;;:::o;6176:184::-;6234:6;6287:2;6275:9;6266:7;6262:23;6258:32;6255:52;;;6303:1;6300;6293:12;6255:52;6326:28;6344:9;6326:28;:::i;7381:160::-;7446:20;;7502:13;;7495:21;7485:32;;7475:60;;7531:1;7528;7521:12;7546:665;7646:6;7654;7662;7670;7678;7731:3;7719:9;7710:7;7706:23;7702:33;7699:53;;;7748:1;7745;7738:12;7699:53;7787:9;7774:23;7806:31;7831:5;7806:31;:::i;:::-;7856:5;-1:-1:-1;7908:2:285;7893:18;;7880:32;;-1:-1:-1;7931:37:285;7964:2;7949:18;;7931:37;:::i;:::-;7921:47;;7987:35;8018:2;8007:9;8003:18;7987:35;:::i;:::-;7977:45;;8073:3;8062:9;8058:19;8045:33;8101:18;8093:6;8090:30;8087:50;;;8133:1;8130;8123:12;8087:50;8156:49;8197:7;8188:6;8177:9;8173:22;8156:49;:::i;:::-;8146:59;;;7546:665;;;;;;;;:::o;8216:644::-;8345:6;8353;8361;8369;8422:3;8410:9;8401:7;8397:23;8393:33;8390:53;;;8439:1;8436;8429:12;8390:53;8478:9;8465:23;8497:31;8522:5;8497:31;:::i;:::-;8547:5;-1:-1:-1;8604:2:285;8589:18;;8576:32;8617:33;8576:32;8617:33;:::i;:::-;8669:7;-1:-1:-1;8728:2:285;8713:18;;8700:32;8741:33;8700:32;8741:33;:::i;:::-;8793:7;-1:-1:-1;8819:35:285;8850:2;8835:18;;8819:35;:::i;:::-;8809:45;;8216:644;;;;;;;:::o;10061:642::-;10324:6;10319:3;10312:19;10361:6;10356:2;10351:3;10347:12;10340:28;10420:66;10411:6;10406:3;10402:16;10398:89;10393:2;10388:3;10384:12;10377:111;10541:6;10534:14;10527:22;10522:3;10518:32;10513:2;10508:3;10504:12;10497:54;10294:3;10580:6;10574:13;10596:60;10649:6;10644:2;10639:3;10635:12;10630:2;10622:6;10618:15;10596:60;:::i;:::-;10676:16;;;;10694:2;10672:25;;10061:642;-1:-1:-1;;;;;;10061:642:285:o;12306:192::-;12385:13;;12438:34;12427:46;;12417:57;;12407:85;;12488:1;12485;12478:12;12503:616;12606:6;12659:2;12647:9;12638:7;12634:23;12630:32;12627:52;;;12675:1;12672;12665:12;12627:52;12708:2;12702:9;12750:2;12742:6;12738:15;12819:6;12807:10;12804:22;12783:18;12771:10;12768:34;12765:62;12762:88;;;12830:18;;:::i;:::-;12866:2;12859:22;12905:16;;12890:32;;12955:49;13000:2;12985:18;;12955:49;:::i;:::-;12950:2;12942:6;12938:15;12931:74;13038:49;13083:2;13072:9;13068:18;13038:49;:::i;:::-;13033:2;13021:15;;13014:74;13025:6;12503:616;-1:-1:-1;;;12503:616:285:o;13124:647::-;13217:6;13270:3;13258:9;13249:7;13245:23;13241:33;13238:53;;;13287:1;13284;13277:12;13238:53;13320:2;13314:9;13362:3;13354:6;13350:16;13432:6;13420:10;13417:22;13396:18;13384:10;13381:34;13378:62;13375:88;;;13443:18;;:::i;:::-;13483:10;13479:2;13472:22;;13531:9;13518:23;13510:6;13503:39;13603:2;13592:9;13588:18;13575:32;13570:2;13562:6;13558:15;13551:57;13669:2;13658:9;13654:18;13641:32;13636:2;13628:6;13624:15;13617:57;13735:2;13724:9;13720:18;13707:32;13702:2;13694:6;13690:15;13683:57;13759:6;13749:16;;;13124:647;;;;:::o;15268:934::-;15404:9;15438:18;15479:2;15471:6;15468:14;15465:40;;;15485:18;;:::i;:::-;15531:6;15528:1;15524:14;15557:4;15581:28;15605:2;15601;15597:11;15581:28;:::i;:::-;15643:19;;;15713:14;;;;15678:12;;;;15750:14;15739:26;;15736:46;;;15778:1;15775;15768:12;15736:46;15802:5;15816:353;15832:6;15827:3;15824:15;15816:353;;;15918:3;15905:17;15954:2;15941:11;15938:19;15935:109;;;15998:1;16027:2;16023;16016:14;15935:109;16069:57;16111:14;16097:11;16090:5;16086:23;16069:57;:::i;:::-;16057:70;;-1:-1:-1;16147:12:285;;;;15849;;15816:353;;;-1:-1:-1;16191:5:285;15268:934;-1:-1:-1;;;;;;;15268:934:285:o;17885:184::-;17955:6;18008:2;17996:9;17987:7;17983:23;17979:32;17976:52;;;18024:1;18021;18014:12;17976:52;-1:-1:-1;18047:16:285;;17885:184;-1:-1:-1;17885:184:285:o;20818:::-;20870:77;20867:1;20860:88;20967:4;20964:1;20957:15;20991:4;20988:1;20981:15;21007:270;21046:7;21078:18;21123:2;21120:1;21116:10;21153:2;21150:1;21146:10;21209:3;21205:2;21201:12;21196:3;21193:21;21186:3;21179:11;21172:19;21168:47;21165:73;;;21218:18;;:::i;:::-;21258:13;;21007:270;-1:-1:-1;;;;21007:270:285:o;21282:236::-;21321:3;21349:18;21394:2;21391:1;21387:10;21424:2;21421:1;21417:10;21455:3;21451:2;21447:12;21442:3;21439:21;21436:47;;;21463:18;;:::i;:::-;21499:13;;21282:236;-1:-1:-1;;;;21282:236:285:o;22127:125::-;22167:4;22195:1;22192;22189:8;22186:34;;;22200:18;;:::i;:::-;-1:-1:-1;22237:9:285;;22127:125::o;22257:184::-;22309:77;22306:1;22299:88;22406:4;22403:1;22396:15;22430:4;22427:1;22420:15;22446:308;22485:1;22511;22501:35;;22516:18;;:::i;:::-;22633:66;22630:1;22627:73;22558:66;22555:1;22552:73;22548:153;22545:179;;;22704:18;;:::i;:::-;-1:-1:-1;22738:10:285;;22446:308::o;22759:369::-;22798:4;22834:1;22831;22827:9;22943:1;22875:66;22871:74;22868:1;22864:82;22859:2;22852:10;22848:99;22845:125;;;22950:18;;:::i;:::-;23069:1;23001:66;22997:74;22994:1;22990:82;22986:2;22982:91;22979:117;;;23076:18;;:::i;:::-;-1:-1:-1;;23113:9:285;;22759:369::o;23133:655::-;23172:7;23204:66;23296:1;23293;23289:9;23324:1;23321;23317:9;23369:1;23365:2;23361:10;23358:1;23355:17;23350:2;23346;23342:11;23338:35;23335:61;;;23376:18;;:::i;:::-;23415:66;23507:1;23504;23500:9;23554:1;23550:2;23545:11;23542:1;23538:19;23533:2;23529;23525:11;23521:37;23518:63;;;23561:18;;:::i;:::-;23607:1;23604;23600:9;23590:19;;23654:1;23650:2;23645:11;23642:1;23638:19;23633:2;23629;23625:11;23621:37;23618:63;;;23661:18;;:::i;:::-;23726:1;23722:2;23717:11;23714:1;23710:19;23705:2;23701;23697:11;23693:37;23690:63;;;23733:18;;:::i;:::-;-1:-1:-1;;;23773:9:285;;;;;23133:655;-1:-1:-1;;;23133:655:285:o;23793:367::-;23832:3;23867:1;23864;23860:9;23976:1;23908:66;23904:74;23901:1;23897:82;23892:2;23885:10;23881:99;23878:125;;;23983:18;;:::i;:::-;24102:1;24034:66;24030:74;24027:1;24023:82;24019:2;24015:91;24012:117;;;24109:18;;:::i;:::-;-1:-1:-1;;24145:9:285;;23793:367::o;24596:228::-;24636:7;24762:1;24694:66;24690:74;24687:1;24684:81;24679:1;24672:9;24665:17;24661:105;24658:131;;;24769:18;;:::i;:::-;-1:-1:-1;24809:9:285;;24596:228::o;24829:120::-;24869:1;24895;24885:35;;24900:18;;:::i;:::-;-1:-1:-1;24934:9:285;;24829:120::o;25350:656::-;25637:6;25626:9;25619:25;25600:4;25663:42;25753:2;25745:6;25741:15;25736:2;25725:9;25721:18;25714:43;25805:2;25797:6;25793:15;25788:2;25777:9;25773:18;25766:43;;25845:6;25840:2;25829:9;25825:18;25818:34;25889:6;25883:3;25872:9;25868:19;25861:35;25933:3;25927;25916:9;25912:19;25905:32;25954:46;25995:3;25984:9;25980:19;25972:6;25954:46;:::i;:::-;25946:54;25350:656;-1:-1:-1;;;;;;;;25350:656:285:o;26011:128::-;26051:3;26082:1;26078:6;26075:1;26072:13;26069:39;;;26088:18;;:::i;:::-;-1:-1:-1;26124:9:285;;26011:128::o;26556:167::-;26634:13;;26687:10;26676:22;;26666:33;;26656:61;;26713:1;26710;26703:12;26728:160;26805:13;;26858:4;26847:16;;26837:27;;26827:55;;26878:1;26875;26868:12;26893:888;26996:6;27049:3;27037:9;27028:7;27024:23;27020:33;27017:53;;;27066:1;27063;27056:12;27017:53;27099:2;27093:9;27141:3;27133:6;27129:16;27211:6;27199:10;27196:22;27175:18;27163:10;27160:34;27157:62;27154:88;;;27222:18;;:::i;:::-;27258:2;27251:22;27297:39;27326:9;27297:39;:::i;:::-;27289:6;27282:55;27370:47;27413:2;27402:9;27398:18;27370:47;:::i;:::-;27365:2;27357:6;27353:15;27346:72;27451:47;27494:2;27483:9;27479:18;27451:47;:::i;:::-;27446:2;27438:6;27434:15;27427:72;27532:48;27576:2;27565:9;27561:18;27532:48;:::i;:::-;27527:2;27519:6;27515:15;27508:73;27615:49;27659:3;27648:9;27644:19;27615:49;:::i;:::-;27609:3;27601:6;27597:16;27590:75;27699:50;27744:3;27733:9;27729:19;27699:50;:::i;:::-;27693:3;27681:16;;27674:76;27685:6;26893:888;-1:-1:-1;;;26893:888:285:o;27786:195::-;27825:3;27856:66;27849:5;27846:77;27843:103;;27926:18;;:::i;:::-;-1:-1:-1;27973:1:285;27962:13;;27786:195::o;28523:184::-;28575:77;28572:1;28565:88;28672:4;28669:1;28662:15;28696:4;28693:1;28686:15;31155:157;31185:1;31219:4;31216:1;31212:12;31243:3;31233:37;;31250:18;;:::i;:::-;31302:3;31295:4;31292:1;31288:12;31284:22;31279:27;;;31155:157;;;;:::o;31317:195::-;31355:4;31392;31389:1;31385:12;31424:4;31421:1;31417:12;31449:3;31444;31441:12;31438:38;;;31456:18;;:::i;:::-;31493:13;;;31317:195;-1:-1:-1;;;31317:195:285:o;35137:184::-;35189:77;35186:1;35179:88;35286:4;35283:1;35276:15;35310:4;35307:1;35300:15",
   570      "linkReferences": {}
   571    },
   572    "methodIdentifiers": {
   573      "GUARDIAN()": "724c184c",
   574      "L2_ORACLE()": "001c2ff6",
   575      "SYSTEM_CONFIG()": "f0498750",
   576      "depositTransaction(address,uint256,uint64,bool,bytes)": "e9e05c42",
   577      "donateETH()": "8b4c40b0",
   578      "finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))": "8c3152e9",
   579      "finalizedWithdrawals(bytes32)": "a14238e7",
   580      "guardian()": "452a9320",
   581      "initialize(address,address,address,bool)": "fecf9734",
   582      "isOutputFinalized(uint256)": "6dbffb78",
   583      "l2Oracle()": "9b5f694a",
   584      "l2Sender()": "9bf62d82",
   585      "minimumGasLimit(uint64)": "a35d99df",
   586      "params()": "cff0ab96",
   587      "pause()": "8456cb59",
   588      "paused()": "5c975abb",
   589      "proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])": "4870496f",
   590      "provenWithdrawals(bytes32)": "e965084c",
   591      "systemConfig()": "33d7e2bd",
   592      "unpause()": "3f4ba83a",
   593      "version()": "54fd4d50"
   594    },
   595    "rawMetadata": "{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"opaqueData\",\"type\":\"bytes\"}],\"name\":\"TransactionDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"withdrawalHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"WithdrawalFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"withdrawalHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"WithdrawalProven\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"GUARDIAN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"L2_ORACLE\",\"outputs\":[{\"internalType\":\"contract L2OutputOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SYSTEM_CONFIG\",\"outputs\":[{\"internalType\":\"contract SystemConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"_gasLimit\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_isCreation\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"depositTransaction\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"donateETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"}],\"name\":\"finalizeWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"finalizedWithdrawals\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract L2OutputOracle\",\"name\":\"_l2Oracle\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_guardian\",\"type\":\"address\"},{\"internalType\":\"contract SystemConfig\",\"name\":\"_systemConfig\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_paused\",\"type\":\"bool\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_l2OutputIndex\",\"type\":\"uint256\"}],\"name\":\"isOutputFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Oracle\",\"outputs\":[{\"internalType\":\"contract L2OutputOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l2Sender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_byteCount\",\"type\":\"uint64\"}],\"name\":\"minimumGasLimit\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"params\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"prevBaseFee\",\"type\":\"uint128\"},{\"internalType\":\"uint64\",\"name\":\"prevBoughtGas\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"prevBlockNum\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.WithdrawalTransaction\",\"name\":\"_tx\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"_l2OutputIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"stateRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"messagePasserStorageRoot\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"latestBlockhash\",\"type\":\"bytes32\"}],\"internalType\":\"struct Types.OutputRootProof\",\"name\":\"_outputRootProof\",\"type\":\"tuple\"},{\"internalType\":\"bytes[]\",\"name\":\"_withdrawalProof\",\"type\":\"bytes[]\"}],\"name\":\"proveWithdrawalTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"provenWithdrawals\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"outputRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint128\",\"name\":\"timestamp\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"l2OutputIndex\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"systemConfig\",\"outputs\":[{\"internalType\":\"contract SystemConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"custom:proxied\":\"@title OptimismPortal\",\"events\":{\"Paused(address)\":{\"params\":{\"account\":\"Address of the account triggering the pause.\"}},\"TransactionDeposited(address,address,uint256,bytes)\":{\"params\":{\"from\":\"Address that triggered the deposit transaction.\",\"opaqueData\":\"ABI encoded deposit data to be parsed off-chain.\",\"to\":\"Address that the deposit transaction is directed to.\",\"version\":\"Version of this deposit transaction event.\"}},\"Unpaused(address)\":{\"params\":{\"account\":\"Address of the account triggering the unpause.\"}},\"WithdrawalFinalized(bytes32,bool)\":{\"params\":{\"success\":\"Whether the withdrawal transaction was successful.\",\"withdrawalHash\":\"Hash of the withdrawal transaction.\"}},\"WithdrawalProven(bytes32,address,address)\":{\"params\":{\"from\":\"Address that triggered the withdrawal transaction.\",\"to\":\"Address that the withdrawal transaction is directed to.\",\"withdrawalHash\":\"Hash of the withdrawal transaction.\"}}},\"kind\":\"dev\",\"methods\":{\"GUARDIAN()\":{\"custom:legacy\":\"\"},\"L2_ORACLE()\":{\"custom:legacy\":\"\"},\"SYSTEM_CONFIG()\":{\"custom:legacy\":\"\"},\"depositTransaction(address,uint256,uint64,bool,bytes)\":{\"params\":{\"_data\":\"Data to trigger the recipient with.\",\"_gasLimit\":\"Amount of L2 gas to purchase by burning gas on L1.\",\"_isCreation\":\"Whether or not the transaction is a contract creation.\",\"_to\":\"Target address on L2.\",\"_value\":\"ETH value to send to the recipient.\"}},\"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))\":{\"params\":{\"_tx\":\"Withdrawal transaction to finalize.\"}},\"initialize(address,address,address,bool)\":{\"params\":{\"_guardian\":\"Address that can pause withdrawals.\",\"_l2Oracle\":\"Address of the L2OutputOracle contract.\",\"_paused\":\"Sets the contract's pausability state.\",\"_systemConfig\":\"Address of the SystemConfig contract.\"}},\"isOutputFinalized(uint256)\":{\"params\":{\"_l2OutputIndex\":\"Index of the L2 output to check.\"},\"returns\":{\"_0\":\"Whether or not the output is finalized.\"}},\"minimumGasLimit(uint64)\":{\"params\":{\"_byteCount\":\"Number of bytes in the calldata.\"},\"returns\":{\"_0\":\"The minimum gas limit for a deposit.\"}},\"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])\":{\"params\":{\"_l2OutputIndex\":\"L2 output index to prove against.\",\"_outputRootProof\":\"Inclusion proof of the L2ToL1MessagePasser contract's storage root.\",\"_tx\":\"Withdrawal transaction to finalize.\",\"_withdrawalProof\":\"Inclusion proof of the withdrawal in L2ToL1MessagePasser contract.\"}}},\"stateVariables\":{\"guardian\":{\"custom:network-specific\":\"\"},\"l2Oracle\":{\"custom:network-specific\":\"\"},\"systemConfig\":{\"custom:network-specific\":\"\"},\"version\":{\"custom:semver\":\"1.10.0\"}},\"version\":1},\"userdoc\":{\"events\":{\"Paused(address)\":{\"notice\":\"Emitted when the pause is triggered.\"},\"TransactionDeposited(address,address,uint256,bytes)\":{\"notice\":\"Emitted when a transaction is deposited from L1 to L2.         The parameters of this event are read by the rollup node and used to derive deposit         transactions on L2.\"},\"Unpaused(address)\":{\"notice\":\"Emitted when the pause is lifted.\"},\"WithdrawalFinalized(bytes32,bool)\":{\"notice\":\"Emitted when a withdrawal transaction is finalized.\"},\"WithdrawalProven(bytes32,address,address)\":{\"notice\":\"Emitted when a withdrawal transaction is proven.\"}},\"kind\":\"user\",\"methods\":{\"GUARDIAN()\":{\"notice\":\"Getter for the Guardian\"},\"L2_ORACLE()\":{\"notice\":\"Getter for the L2OutputOracle\"},\"SYSTEM_CONFIG()\":{\"notice\":\"Getter for the SystemConfig\"},\"constructor\":{\"notice\":\"Constructs the OptimismPortal contract.\"},\"depositTransaction(address,uint256,uint64,bool,bytes)\":{\"notice\":\"Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in         deriving deposit transactions. Note that if a deposit is made by a contract, its         address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider         using the CrossDomainMessenger contracts for a simpler developer experience.\"},\"donateETH()\":{\"notice\":\"Accepts ETH value without triggering a deposit to L2.         This function mainly exists for the sake of the migration between the legacy         Optimism system and Bedrock.\"},\"finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))\":{\"notice\":\"Finalizes a withdrawal transaction.\"},\"finalizedWithdrawals(bytes32)\":{\"notice\":\"A list of withdrawal hashes which have been successfully finalized.\"},\"guardian()\":{\"notice\":\"Address that has the ability to pause and unpause withdrawals.\"},\"initialize(address,address,address,bool)\":{\"notice\":\"Initializer.\"},\"isOutputFinalized(uint256)\":{\"notice\":\"Determine if a given output is finalized.         Reverts if the call to L2_ORACLE.getL2Output reverts.         Returns a boolean otherwise.\"},\"l2Oracle()\":{\"notice\":\"Address of the L2OutputOracle contract.\"},\"l2Sender()\":{\"notice\":\"Address of the L2 account which initiated a withdrawal in this transaction.         If the of this variable is the default L2 sender address, then we are NOT inside of         a call to finalizeWithdrawalTransaction.\"},\"minimumGasLimit(uint64)\":{\"notice\":\"Computes the minimum gas limit for a deposit.         The minimum gas limit linearly increases based on the size of the calldata.         This is to prevent users from creating L2 resource usage without paying for it.         This function can be used when interacting with the portal to ensure forwards         compatibility.\"},\"params()\":{\"notice\":\"EIP-1559 style gas parameters.\"},\"pause()\":{\"notice\":\"Pauses withdrawals.\"},\"paused()\":{\"notice\":\"Determines if cross domain messaging is paused.         When set to true, withdrawals are paused.         This may be removed in the future.\"},\"proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])\":{\"notice\":\"Proves a withdrawal transaction.\"},\"provenWithdrawals(bytes32)\":{\"notice\":\"A mapping of withdrawal hashes to `ProvenWithdrawal` data.\"},\"systemConfig()\":{\"notice\":\"Address of the SystemConfig contract.\"},\"unpause()\":{\"notice\":\"Unpauses withdrawals.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"The OptimismPortal is a low-level contract responsible for passing messages between L1         and L2. Messages sent directly to the OptimismPortal have no form of replayability.         Users are encouraged to use the L1CrossDomainMessenger for a higher-level interface.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1/OptimismPortal.sol\":\"OptimismPortal\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@cwia/=lib/clones-with-immutable-args/src/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":clones-with-immutable-args/=lib/clones-with-immutable-args/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/L2OutputOracle.sol\":{\"keccak256\":\"0x60042eb3e619518cab9a8f2480b62871c2d813716e2e60d9a5e0c5f271c58705\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08538ef2aa99c508b56a8bb9b3c7b93476cba9dbf0b47783141e5e50a02156cc\",\"dweb:/ipfs/QmdvFZ1fUaTkNdmtB66rNAo73RxY7kccsgR6Uqz7psoXGN\"]},\"src/L1/OptimismPortal.sol\":{\"keccak256\":\"0xdca91a921b402d82b455d7f11027514e8a16dca906cf820b3afffe271beb8a13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://688912b9d6005af8395d5c2eb5c4e3367a8be7b50ea97c34fc6a7ac0e2d8fd6a\",\"dweb:/ipfs/QmNPJDwHpNmJ5VPWAJB8muRpZxYeySZDVoV1TMVN7roijJ\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xa4d524f2a5e91a0b63a62603e712001c51c77e8371b93cbb576bcb7d074b7588\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6d8141b6c6dc72d2e684c1ae388c005fd78c9ca7fc9c15dddebd227ca4fd730\",\"dweb:/ipfs/QmPfJrR4qssu769TDWJnxdTozqKtZUxiY8fs95bhfECTvG\"]},\"src/L1/SystemConfig.sol\":{\"keccak256\":\"0x4bbbc7868e948c44f29285a69383e93251a0c330a67929fb72def01cec060d4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e7ea2f8b3d49bee9c753f107ede6eda93b2cc0e34d0643fa14ebbb26c19e71b\",\"dweb:/ipfs/QmRP81F8FRVXVZs6u2f2poEPDnbFZhNwNYxHgCVEhGpEmB\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x06a5a8b00527843f0cfc1bb3c0661316966a6cc432f88be31f23cde78cd07560\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5209e78e5415c0bf8b350362a825cc56152811abd6fcf2df3d4fa47766d3dee\",\"dweb:/ipfs/Qmf43xyc4Um32NmccayDfhm8kSnS2mhHXpPZnwABJS7cWm\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f\",\"dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb\"]},\"src/libraries/Bytes.sol\":{\"keccak256\":\"0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782\",\"dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0xe12e392f05f80d3837c9392d016471181ae1ee6b84ea91b4e125e6523e5f18a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a3509231c228b7a4352573cd422cf0260dcbb94cfd915e5b664643db5475a5b7\",\"dweb:/ipfs/QmU2QERY4mHxqWFqSE5Exsy6Ftc5MTjTtYHC11fahLJWDC\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0xd5bbcb7da113e69562498d9543765e03912558ad66348682c2049c31e19f9d9b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc6656ea10062c0c9d0817bb8683636caebf9222c9c102f29ea54fff74a2f93\",\"dweb:/ipfs/QmTNWtMgrTRHM6XtdUmA8bMZcuFpXoFCXgXR5vRihZWLuW\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x44e2b2dcfffc39c0fc95ccd3c2118c7e7585fadf3dca327877d5756c7d4b21c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c89e0d9cfcb08a0d3c46c85367a32bbd9703468ba4c0c5bb6e124c1d173b26b\",\"dweb:/ipfs/QmaY3nQHBBhHK1wrurVXiEeNL8hfZ1pRmhpqW44tFDJnDf\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Storage.sol\":{\"keccak256\":\"0x902a0a815272a5b76c647d9e82101aca765e9835a6624d0857088b9da0f58afd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9c39a697aacb0a2eac0bf1fbd7790d835a685c61006f6d3464e19cbc96a24480\",\"dweb:/ipfs/QmV3T8ZTRWPB5CNuZjxwWQNoENd7W4SoBMnFG6Y6g6xYV4\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPReader.sol\":{\"keccak256\":\"0x9ba74a3b0a11693e622380807d213d5d1250d974e18b2cd768da9cbe719a6778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808d721ed9e05707526ee134faa051d707a95ee6b8bd6e0b1972275da8e5723\",\"dweb:/ipfs/QmcTTPu9xgckfWdbFUAcr2RAgk3J6vzyR4FpV798TjFMeN\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/libraries/trie/MerkleTrie.sol\":{\"keccak256\":\"0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74\",\"dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE\"]},\"src/libraries/trie/SecureMerkleTrie.sol\":{\"keccak256\":\"0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681\",\"dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/vendor/AddressAliasHelper.sol\":{\"keccak256\":\"0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88\",\"dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR\"]}},\"version\":1}",
   596    "metadata": {
   597      "compiler": {
   598        "version": "0.8.15+commit.e14f2714"
   599      },
   600      "language": "Solidity",
   601      "output": {
   602        "abi": [
   603          {
   604            "inputs": [],
   605            "stateMutability": "nonpayable",
   606            "type": "constructor"
   607          },
   608          {
   609            "inputs": [
   610              {
   611                "internalType": "uint8",
   612                "name": "version",
   613                "type": "uint8",
   614                "indexed": false
   615              }
   616            ],
   617            "type": "event",
   618            "name": "Initialized",
   619            "anonymous": false
   620          },
   621          {
   622            "inputs": [
   623              {
   624                "internalType": "address",
   625                "name": "account",
   626                "type": "address",
   627                "indexed": false
   628              }
   629            ],
   630            "type": "event",
   631            "name": "Paused",
   632            "anonymous": false
   633          },
   634          {
   635            "inputs": [
   636              {
   637                "internalType": "address",
   638                "name": "from",
   639                "type": "address",
   640                "indexed": true
   641              },
   642              {
   643                "internalType": "address",
   644                "name": "to",
   645                "type": "address",
   646                "indexed": true
   647              },
   648              {
   649                "internalType": "uint256",
   650                "name": "version",
   651                "type": "uint256",
   652                "indexed": true
   653              },
   654              {
   655                "internalType": "bytes",
   656                "name": "opaqueData",
   657                "type": "bytes",
   658                "indexed": false
   659              }
   660            ],
   661            "type": "event",
   662            "name": "TransactionDeposited",
   663            "anonymous": false
   664          },
   665          {
   666            "inputs": [
   667              {
   668                "internalType": "address",
   669                "name": "account",
   670                "type": "address",
   671                "indexed": false
   672              }
   673            ],
   674            "type": "event",
   675            "name": "Unpaused",
   676            "anonymous": false
   677          },
   678          {
   679            "inputs": [
   680              {
   681                "internalType": "bytes32",
   682                "name": "withdrawalHash",
   683                "type": "bytes32",
   684                "indexed": true
   685              },
   686              {
   687                "internalType": "bool",
   688                "name": "success",
   689                "type": "bool",
   690                "indexed": false
   691              }
   692            ],
   693            "type": "event",
   694            "name": "WithdrawalFinalized",
   695            "anonymous": false
   696          },
   697          {
   698            "inputs": [
   699              {
   700                "internalType": "bytes32",
   701                "name": "withdrawalHash",
   702                "type": "bytes32",
   703                "indexed": true
   704              },
   705              {
   706                "internalType": "address",
   707                "name": "from",
   708                "type": "address",
   709                "indexed": true
   710              },
   711              {
   712                "internalType": "address",
   713                "name": "to",
   714                "type": "address",
   715                "indexed": true
   716              }
   717            ],
   718            "type": "event",
   719            "name": "WithdrawalProven",
   720            "anonymous": false
   721          },
   722          {
   723            "inputs": [],
   724            "stateMutability": "view",
   725            "type": "function",
   726            "name": "GUARDIAN",
   727            "outputs": [
   728              {
   729                "internalType": "address",
   730                "name": "",
   731                "type": "address"
   732              }
   733            ]
   734          },
   735          {
   736            "inputs": [],
   737            "stateMutability": "view",
   738            "type": "function",
   739            "name": "L2_ORACLE",
   740            "outputs": [
   741              {
   742                "internalType": "contract L2OutputOracle",
   743                "name": "",
   744                "type": "address"
   745              }
   746            ]
   747          },
   748          {
   749            "inputs": [],
   750            "stateMutability": "view",
   751            "type": "function",
   752            "name": "SYSTEM_CONFIG",
   753            "outputs": [
   754              {
   755                "internalType": "contract SystemConfig",
   756                "name": "",
   757                "type": "address"
   758              }
   759            ]
   760          },
   761          {
   762            "inputs": [
   763              {
   764                "internalType": "address",
   765                "name": "_to",
   766                "type": "address"
   767              },
   768              {
   769                "internalType": "uint256",
   770                "name": "_value",
   771                "type": "uint256"
   772              },
   773              {
   774                "internalType": "uint64",
   775                "name": "_gasLimit",
   776                "type": "uint64"
   777              },
   778              {
   779                "internalType": "bool",
   780                "name": "_isCreation",
   781                "type": "bool"
   782              },
   783              {
   784                "internalType": "bytes",
   785                "name": "_data",
   786                "type": "bytes"
   787              }
   788            ],
   789            "stateMutability": "payable",
   790            "type": "function",
   791            "name": "depositTransaction"
   792          },
   793          {
   794            "inputs": [],
   795            "stateMutability": "payable",
   796            "type": "function",
   797            "name": "donateETH"
   798          },
   799          {
   800            "inputs": [
   801              {
   802                "internalType": "struct Types.WithdrawalTransaction",
   803                "name": "_tx",
   804                "type": "tuple",
   805                "components": [
   806                  {
   807                    "internalType": "uint256",
   808                    "name": "nonce",
   809                    "type": "uint256"
   810                  },
   811                  {
   812                    "internalType": "address",
   813                    "name": "sender",
   814                    "type": "address"
   815                  },
   816                  {
   817                    "internalType": "address",
   818                    "name": "target",
   819                    "type": "address"
   820                  },
   821                  {
   822                    "internalType": "uint256",
   823                    "name": "value",
   824                    "type": "uint256"
   825                  },
   826                  {
   827                    "internalType": "uint256",
   828                    "name": "gasLimit",
   829                    "type": "uint256"
   830                  },
   831                  {
   832                    "internalType": "bytes",
   833                    "name": "data",
   834                    "type": "bytes"
   835                  }
   836                ]
   837              }
   838            ],
   839            "stateMutability": "nonpayable",
   840            "type": "function",
   841            "name": "finalizeWithdrawalTransaction"
   842          },
   843          {
   844            "inputs": [
   845              {
   846                "internalType": "bytes32",
   847                "name": "",
   848                "type": "bytes32"
   849              }
   850            ],
   851            "stateMutability": "view",
   852            "type": "function",
   853            "name": "finalizedWithdrawals",
   854            "outputs": [
   855              {
   856                "internalType": "bool",
   857                "name": "",
   858                "type": "bool"
   859              }
   860            ]
   861          },
   862          {
   863            "inputs": [],
   864            "stateMutability": "view",
   865            "type": "function",
   866            "name": "guardian",
   867            "outputs": [
   868              {
   869                "internalType": "address",
   870                "name": "",
   871                "type": "address"
   872              }
   873            ]
   874          },
   875          {
   876            "inputs": [
   877              {
   878                "internalType": "contract L2OutputOracle",
   879                "name": "_l2Oracle",
   880                "type": "address"
   881              },
   882              {
   883                "internalType": "address",
   884                "name": "_guardian",
   885                "type": "address"
   886              },
   887              {
   888                "internalType": "contract SystemConfig",
   889                "name": "_systemConfig",
   890                "type": "address"
   891              },
   892              {
   893                "internalType": "bool",
   894                "name": "_paused",
   895                "type": "bool"
   896              }
   897            ],
   898            "stateMutability": "nonpayable",
   899            "type": "function",
   900            "name": "initialize"
   901          },
   902          {
   903            "inputs": [
   904              {
   905                "internalType": "uint256",
   906                "name": "_l2OutputIndex",
   907                "type": "uint256"
   908              }
   909            ],
   910            "stateMutability": "view",
   911            "type": "function",
   912            "name": "isOutputFinalized",
   913            "outputs": [
   914              {
   915                "internalType": "bool",
   916                "name": "",
   917                "type": "bool"
   918              }
   919            ]
   920          },
   921          {
   922            "inputs": [],
   923            "stateMutability": "view",
   924            "type": "function",
   925            "name": "l2Oracle",
   926            "outputs": [
   927              {
   928                "internalType": "contract L2OutputOracle",
   929                "name": "",
   930                "type": "address"
   931              }
   932            ]
   933          },
   934          {
   935            "inputs": [],
   936            "stateMutability": "view",
   937            "type": "function",
   938            "name": "l2Sender",
   939            "outputs": [
   940              {
   941                "internalType": "address",
   942                "name": "",
   943                "type": "address"
   944              }
   945            ]
   946          },
   947          {
   948            "inputs": [
   949              {
   950                "internalType": "uint64",
   951                "name": "_byteCount",
   952                "type": "uint64"
   953              }
   954            ],
   955            "stateMutability": "pure",
   956            "type": "function",
   957            "name": "minimumGasLimit",
   958            "outputs": [
   959              {
   960                "internalType": "uint64",
   961                "name": "",
   962                "type": "uint64"
   963              }
   964            ]
   965          },
   966          {
   967            "inputs": [],
   968            "stateMutability": "view",
   969            "type": "function",
   970            "name": "params",
   971            "outputs": [
   972              {
   973                "internalType": "uint128",
   974                "name": "prevBaseFee",
   975                "type": "uint128"
   976              },
   977              {
   978                "internalType": "uint64",
   979                "name": "prevBoughtGas",
   980                "type": "uint64"
   981              },
   982              {
   983                "internalType": "uint64",
   984                "name": "prevBlockNum",
   985                "type": "uint64"
   986              }
   987            ]
   988          },
   989          {
   990            "inputs": [],
   991            "stateMutability": "nonpayable",
   992            "type": "function",
   993            "name": "pause"
   994          },
   995          {
   996            "inputs": [],
   997            "stateMutability": "view",
   998            "type": "function",
   999            "name": "paused",
  1000            "outputs": [
  1001              {
  1002                "internalType": "bool",
  1003                "name": "",
  1004                "type": "bool"
  1005              }
  1006            ]
  1007          },
  1008          {
  1009            "inputs": [
  1010              {
  1011                "internalType": "struct Types.WithdrawalTransaction",
  1012                "name": "_tx",
  1013                "type": "tuple",
  1014                "components": [
  1015                  {
  1016                    "internalType": "uint256",
  1017                    "name": "nonce",
  1018                    "type": "uint256"
  1019                  },
  1020                  {
  1021                    "internalType": "address",
  1022                    "name": "sender",
  1023                    "type": "address"
  1024                  },
  1025                  {
  1026                    "internalType": "address",
  1027                    "name": "target",
  1028                    "type": "address"
  1029                  },
  1030                  {
  1031                    "internalType": "uint256",
  1032                    "name": "value",
  1033                    "type": "uint256"
  1034                  },
  1035                  {
  1036                    "internalType": "uint256",
  1037                    "name": "gasLimit",
  1038                    "type": "uint256"
  1039                  },
  1040                  {
  1041                    "internalType": "bytes",
  1042                    "name": "data",
  1043                    "type": "bytes"
  1044                  }
  1045                ]
  1046              },
  1047              {
  1048                "internalType": "uint256",
  1049                "name": "_l2OutputIndex",
  1050                "type": "uint256"
  1051              },
  1052              {
  1053                "internalType": "struct Types.OutputRootProof",
  1054                "name": "_outputRootProof",
  1055                "type": "tuple",
  1056                "components": [
  1057                  {
  1058                    "internalType": "bytes32",
  1059                    "name": "version",
  1060                    "type": "bytes32"
  1061                  },
  1062                  {
  1063                    "internalType": "bytes32",
  1064                    "name": "stateRoot",
  1065                    "type": "bytes32"
  1066                  },
  1067                  {
  1068                    "internalType": "bytes32",
  1069                    "name": "messagePasserStorageRoot",
  1070                    "type": "bytes32"
  1071                  },
  1072                  {
  1073                    "internalType": "bytes32",
  1074                    "name": "latestBlockhash",
  1075                    "type": "bytes32"
  1076                  }
  1077                ]
  1078              },
  1079              {
  1080                "internalType": "bytes[]",
  1081                "name": "_withdrawalProof",
  1082                "type": "bytes[]"
  1083              }
  1084            ],
  1085            "stateMutability": "nonpayable",
  1086            "type": "function",
  1087            "name": "proveWithdrawalTransaction"
  1088          },
  1089          {
  1090            "inputs": [
  1091              {
  1092                "internalType": "bytes32",
  1093                "name": "",
  1094                "type": "bytes32"
  1095              }
  1096            ],
  1097            "stateMutability": "view",
  1098            "type": "function",
  1099            "name": "provenWithdrawals",
  1100            "outputs": [
  1101              {
  1102                "internalType": "bytes32",
  1103                "name": "outputRoot",
  1104                "type": "bytes32"
  1105              },
  1106              {
  1107                "internalType": "uint128",
  1108                "name": "timestamp",
  1109                "type": "uint128"
  1110              },
  1111              {
  1112                "internalType": "uint128",
  1113                "name": "l2OutputIndex",
  1114                "type": "uint128"
  1115              }
  1116            ]
  1117          },
  1118          {
  1119            "inputs": [],
  1120            "stateMutability": "view",
  1121            "type": "function",
  1122            "name": "systemConfig",
  1123            "outputs": [
  1124              {
  1125                "internalType": "contract SystemConfig",
  1126                "name": "",
  1127                "type": "address"
  1128              }
  1129            ]
  1130          },
  1131          {
  1132            "inputs": [],
  1133            "stateMutability": "nonpayable",
  1134            "type": "function",
  1135            "name": "unpause"
  1136          },
  1137          {
  1138            "inputs": [],
  1139            "stateMutability": "view",
  1140            "type": "function",
  1141            "name": "version",
  1142            "outputs": [
  1143              {
  1144                "internalType": "string",
  1145                "name": "",
  1146                "type": "string"
  1147              }
  1148            ]
  1149          },
  1150          {
  1151            "inputs": [],
  1152            "stateMutability": "payable",
  1153            "type": "receive"
  1154          }
  1155        ],
  1156        "devdoc": {
  1157          "kind": "dev",
  1158          "methods": {
  1159            "GUARDIAN()": {
  1160              "custom:legacy": ""
  1161            },
  1162            "L2_ORACLE()": {
  1163              "custom:legacy": ""
  1164            },
  1165            "SYSTEM_CONFIG()": {
  1166              "custom:legacy": ""
  1167            },
  1168            "depositTransaction(address,uint256,uint64,bool,bytes)": {
  1169              "params": {
  1170                "_data": "Data to trigger the recipient with.",
  1171                "_gasLimit": "Amount of L2 gas to purchase by burning gas on L1.",
  1172                "_isCreation": "Whether or not the transaction is a contract creation.",
  1173                "_to": "Target address on L2.",
  1174                "_value": "ETH value to send to the recipient."
  1175              }
  1176            },
  1177            "finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))": {
  1178              "params": {
  1179                "_tx": "Withdrawal transaction to finalize."
  1180              }
  1181            },
  1182            "initialize(address,address,address,bool)": {
  1183              "params": {
  1184                "_guardian": "Address that can pause withdrawals.",
  1185                "_l2Oracle": "Address of the L2OutputOracle contract.",
  1186                "_paused": "Sets the contract's pausability state.",
  1187                "_systemConfig": "Address of the SystemConfig contract."
  1188              }
  1189            },
  1190            "isOutputFinalized(uint256)": {
  1191              "params": {
  1192                "_l2OutputIndex": "Index of the L2 output to check."
  1193              },
  1194              "returns": {
  1195                "_0": "Whether or not the output is finalized."
  1196              }
  1197            },
  1198            "minimumGasLimit(uint64)": {
  1199              "params": {
  1200                "_byteCount": "Number of bytes in the calldata."
  1201              },
  1202              "returns": {
  1203                "_0": "The minimum gas limit for a deposit."
  1204              }
  1205            },
  1206            "proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])": {
  1207              "params": {
  1208                "_l2OutputIndex": "L2 output index to prove against.",
  1209                "_outputRootProof": "Inclusion proof of the L2ToL1MessagePasser contract's storage root.",
  1210                "_tx": "Withdrawal transaction to finalize.",
  1211                "_withdrawalProof": "Inclusion proof of the withdrawal in L2ToL1MessagePasser contract."
  1212              }
  1213            }
  1214          },
  1215          "version": 1
  1216        },
  1217        "userdoc": {
  1218          "kind": "user",
  1219          "methods": {
  1220            "GUARDIAN()": {
  1221              "notice": "Getter for the Guardian"
  1222            },
  1223            "L2_ORACLE()": {
  1224              "notice": "Getter for the L2OutputOracle"
  1225            },
  1226            "SYSTEM_CONFIG()": {
  1227              "notice": "Getter for the SystemConfig"
  1228            },
  1229            "constructor": {
  1230              "notice": "Constructs the OptimismPortal contract."
  1231            },
  1232            "depositTransaction(address,uint256,uint64,bool,bytes)": {
  1233              "notice": "Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in         deriving deposit transactions. Note that if a deposit is made by a contract, its         address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider         using the CrossDomainMessenger contracts for a simpler developer experience."
  1234            },
  1235            "donateETH()": {
  1236              "notice": "Accepts ETH value without triggering a deposit to L2.         This function mainly exists for the sake of the migration between the legacy         Optimism system and Bedrock."
  1237            },
  1238            "finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))": {
  1239              "notice": "Finalizes a withdrawal transaction."
  1240            },
  1241            "finalizedWithdrawals(bytes32)": {
  1242              "notice": "A list of withdrawal hashes which have been successfully finalized."
  1243            },
  1244            "guardian()": {
  1245              "notice": "Address that has the ability to pause and unpause withdrawals."
  1246            },
  1247            "initialize(address,address,address,bool)": {
  1248              "notice": "Initializer."
  1249            },
  1250            "isOutputFinalized(uint256)": {
  1251              "notice": "Determine if a given output is finalized.         Reverts if the call to L2_ORACLE.getL2Output reverts.         Returns a boolean otherwise."
  1252            },
  1253            "l2Oracle()": {
  1254              "notice": "Address of the L2OutputOracle contract."
  1255            },
  1256            "l2Sender()": {
  1257              "notice": "Address of the L2 account which initiated a withdrawal in this transaction.         If the of this variable is the default L2 sender address, then we are NOT inside of         a call to finalizeWithdrawalTransaction."
  1258            },
  1259            "minimumGasLimit(uint64)": {
  1260              "notice": "Computes the minimum gas limit for a deposit.         The minimum gas limit linearly increases based on the size of the calldata.         This is to prevent users from creating L2 resource usage without paying for it.         This function can be used when interacting with the portal to ensure forwards         compatibility."
  1261            },
  1262            "params()": {
  1263              "notice": "EIP-1559 style gas parameters."
  1264            },
  1265            "pause()": {
  1266              "notice": "Pauses withdrawals."
  1267            },
  1268            "paused()": {
  1269              "notice": "Determines if cross domain messaging is paused.         When set to true, withdrawals are paused.         This may be removed in the future."
  1270            },
  1271            "proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])": {
  1272              "notice": "Proves a withdrawal transaction."
  1273            },
  1274            "provenWithdrawals(bytes32)": {
  1275              "notice": "A mapping of withdrawal hashes to `ProvenWithdrawal` data."
  1276            },
  1277            "systemConfig()": {
  1278              "notice": "Address of the SystemConfig contract."
  1279            },
  1280            "unpause()": {
  1281              "notice": "Unpauses withdrawals."
  1282            },
  1283            "version()": {
  1284              "notice": "Semantic version."
  1285            }
  1286          },
  1287          "version": 1
  1288        }
  1289      },
  1290      "settings": {
  1291        "remappings": [
  1292          "@cwia/=lib/clones-with-immutable-args/src/",
  1293          "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
  1294          "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
  1295          "@rari-capital/solmate/=lib/solmate/",
  1296          "clones-with-immutable-args/=lib/clones-with-immutable-args/src/",
  1297          "ds-test/=lib/forge-std/lib/ds-test/src/",
  1298          "forge-std/=lib/forge-std/src/",
  1299          "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
  1300          "openzeppelin-contracts/=lib/openzeppelin-contracts/",
  1301          "safe-contracts/=lib/safe-contracts/contracts/",
  1302          "solmate/=lib/solmate/src/"
  1303        ],
  1304        "optimizer": {
  1305          "enabled": true,
  1306          "runs": 999999
  1307        },
  1308        "metadata": {
  1309          "bytecodeHash": "none"
  1310        },
  1311        "compilationTarget": {
  1312          "src/L1/OptimismPortal.sol": "OptimismPortal"
  1313        },
  1314        "libraries": {}
  1315      },
  1316      "sources": {
  1317        "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol": {
  1318          "keccak256": "0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888",
  1319          "urls": [
  1320            "bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a",
  1321            "dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"
  1322          ],
  1323          "license": "MIT"
  1324        },
  1325        "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": {
  1326          "keccak256": "0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e",
  1327          "urls": [
  1328            "bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497",
  1329            "dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"
  1330          ],
  1331          "license": "MIT"
  1332        },
  1333        "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": {
  1334          "keccak256": "0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3",
  1335          "urls": [
  1336            "bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4",
  1337            "dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"
  1338          ],
  1339          "license": "MIT"
  1340        },
  1341        "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol": {
  1342          "keccak256": "0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149",
  1343          "urls": [
  1344            "bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c",
  1345            "dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"
  1346          ],
  1347          "license": "MIT"
  1348        },
  1349        "lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol": {
  1350          "keccak256": "0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66",
  1351          "urls": [
  1352            "bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f",
  1353            "dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"
  1354          ],
  1355          "license": "MIT"
  1356        },
  1357        "lib/openzeppelin-contracts/contracts/utils/Address.sol": {
  1358          "keccak256": "0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10",
  1359          "urls": [
  1360            "bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487",
  1361            "dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"
  1362          ],
  1363          "license": "MIT"
  1364        },
  1365        "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": {
  1366          "keccak256": "0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0",
  1367          "urls": [
  1368            "bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929",
  1369            "dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"
  1370          ],
  1371          "license": "MIT"
  1372        },
  1373        "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": {
  1374          "keccak256": "0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7",
  1375          "urls": [
  1376            "bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689",
  1377            "dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"
  1378          ],
  1379          "license": "MIT"
  1380        },
  1381        "lib/solmate/src/utils/FixedPointMathLib.sol": {
  1382          "keccak256": "0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d",
  1383          "urls": [
  1384            "bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c",
  1385            "dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"
  1386          ],
  1387          "license": "MIT"
  1388        },
  1389        "src/L1/L2OutputOracle.sol": {
  1390          "keccak256": "0x60042eb3e619518cab9a8f2480b62871c2d813716e2e60d9a5e0c5f271c58705",
  1391          "urls": [
  1392            "bzz-raw://08538ef2aa99c508b56a8bb9b3c7b93476cba9dbf0b47783141e5e50a02156cc",
  1393            "dweb:/ipfs/QmdvFZ1fUaTkNdmtB66rNAo73RxY7kccsgR6Uqz7psoXGN"
  1394          ],
  1395          "license": "MIT"
  1396        },
  1397        "src/L1/OptimismPortal.sol": {
  1398          "keccak256": "0xdca91a921b402d82b455d7f11027514e8a16dca906cf820b3afffe271beb8a13",
  1399          "urls": [
  1400            "bzz-raw://688912b9d6005af8395d5c2eb5c4e3367a8be7b50ea97c34fc6a7ac0e2d8fd6a",
  1401            "dweb:/ipfs/QmNPJDwHpNmJ5VPWAJB8muRpZxYeySZDVoV1TMVN7roijJ"
  1402          ],
  1403          "license": "MIT"
  1404        },
  1405        "src/L1/ResourceMetering.sol": {
  1406          "keccak256": "0xa4d524f2a5e91a0b63a62603e712001c51c77e8371b93cbb576bcb7d074b7588",
  1407          "urls": [
  1408            "bzz-raw://d6d8141b6c6dc72d2e684c1ae388c005fd78c9ca7fc9c15dddebd227ca4fd730",
  1409            "dweb:/ipfs/QmPfJrR4qssu769TDWJnxdTozqKtZUxiY8fs95bhfECTvG"
  1410          ],
  1411          "license": "MIT"
  1412        },
  1413        "src/L1/SystemConfig.sol": {
  1414          "keccak256": "0x4bbbc7868e948c44f29285a69383e93251a0c330a67929fb72def01cec060d4e",
  1415          "urls": [
  1416            "bzz-raw://1e7ea2f8b3d49bee9c753f107ede6eda93b2cc0e34d0643fa14ebbb26c19e71b",
  1417            "dweb:/ipfs/QmRP81F8FRVXVZs6u2f2poEPDnbFZhNwNYxHgCVEhGpEmB"
  1418          ],
  1419          "license": "MIT"
  1420        },
  1421        "src/libraries/Arithmetic.sol": {
  1422          "keccak256": "0x06a5a8b00527843f0cfc1bb3c0661316966a6cc432f88be31f23cde78cd07560",
  1423          "urls": [
  1424            "bzz-raw://d5209e78e5415c0bf8b350362a825cc56152811abd6fcf2df3d4fa47766d3dee",
  1425            "dweb:/ipfs/Qmf43xyc4Um32NmccayDfhm8kSnS2mhHXpPZnwABJS7cWm"
  1426          ],
  1427          "license": "MIT"
  1428        },
  1429        "src/libraries/Burn.sol": {
  1430          "keccak256": "0x90a795bcea3ef06d6d5011256c4bd63d1a4271f519246dbf1ee3e8f1c0e21010",
  1431          "urls": [
  1432            "bzz-raw://9f60c3aa77cf0c484ddda4754157cff4dc0e2eace4bea67990daff4c0612ab5f",
  1433            "dweb:/ipfs/QmSYGanMFve9uBC17X7hFneSFnwnJxz86Jgh6MX9BRMweb"
  1434          ],
  1435          "license": "MIT"
  1436        },
  1437        "src/libraries/Bytes.sol": {
  1438          "keccak256": "0x827f47d123b0fdf3b08816d5b33831811704dbf4e554e53f2269354f6bba8859",
  1439          "urls": [
  1440            "bzz-raw://3137ac7204d30a245a8b0d67aa6da5286f1bd8c90379daab561f84963b6db782",
  1441            "dweb:/ipfs/QmWRhisw3axJK833gUScs23ETh2MLFbVzzqzYVMKSDN3S9"
  1442          ],
  1443          "license": "MIT"
  1444        },
  1445        "src/libraries/Constants.sol": {
  1446          "keccak256": "0xe12e392f05f80d3837c9392d016471181ae1ee6b84ea91b4e125e6523e5f18a2",
  1447          "urls": [
  1448            "bzz-raw://a3509231c228b7a4352573cd422cf0260dcbb94cfd915e5b664643db5475a5b7",
  1449            "dweb:/ipfs/QmU2QERY4mHxqWFqSE5Exsy6Ftc5MTjTtYHC11fahLJWDC"
  1450          ],
  1451          "license": "MIT"
  1452        },
  1453        "src/libraries/Encoding.sol": {
  1454          "keccak256": "0xd5bbcb7da113e69562498d9543765e03912558ad66348682c2049c31e19f9d9b",
  1455          "urls": [
  1456            "bzz-raw://afc6656ea10062c0c9d0817bb8683636caebf9222c9c102f29ea54fff74a2f93",
  1457            "dweb:/ipfs/QmTNWtMgrTRHM6XtdUmA8bMZcuFpXoFCXgXR5vRihZWLuW"
  1458          ],
  1459          "license": "MIT"
  1460        },
  1461        "src/libraries/Hashing.sol": {
  1462          "keccak256": "0x44e2b2dcfffc39c0fc95ccd3c2118c7e7585fadf3dca327877d5756c7d4b21c3",
  1463          "urls": [
  1464            "bzz-raw://6c89e0d9cfcb08a0d3c46c85367a32bbd9703468ba4c0c5bb6e124c1d173b26b",
  1465            "dweb:/ipfs/QmaY3nQHBBhHK1wrurVXiEeNL8hfZ1pRmhpqW44tFDJnDf"
  1466          ],
  1467          "license": "MIT"
  1468        },
  1469        "src/libraries/SafeCall.sol": {
  1470          "keccak256": "0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f",
  1471          "urls": [
  1472            "bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a",
  1473            "dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"
  1474          ],
  1475          "license": "MIT"
  1476        },
  1477        "src/libraries/Storage.sol": {
  1478          "keccak256": "0x902a0a815272a5b76c647d9e82101aca765e9835a6624d0857088b9da0f58afd",
  1479          "urls": [
  1480            "bzz-raw://9c39a697aacb0a2eac0bf1fbd7790d835a685c61006f6d3464e19cbc96a24480",
  1481            "dweb:/ipfs/QmV3T8ZTRWPB5CNuZjxwWQNoENd7W4SoBMnFG6Y6g6xYV4"
  1482          ],
  1483          "license": "MIT"
  1484        },
  1485        "src/libraries/Types.sol": {
  1486          "keccak256": "0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4",
  1487          "urls": [
  1488            "bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e",
  1489            "dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"
  1490          ],
  1491          "license": "MIT"
  1492        },
  1493        "src/libraries/rlp/RLPReader.sol": {
  1494          "keccak256": "0x9ba74a3b0a11693e622380807d213d5d1250d974e18b2cd768da9cbe719a6778",
  1495          "urls": [
  1496            "bzz-raw://0808d721ed9e05707526ee134faa051d707a95ee6b8bd6e0b1972275da8e5723",
  1497            "dweb:/ipfs/QmcTTPu9xgckfWdbFUAcr2RAgk3J6vzyR4FpV798TjFMeN"
  1498          ],
  1499          "license": "MIT"
  1500        },
  1501        "src/libraries/rlp/RLPWriter.sol": {
  1502          "keccak256": "0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6",
  1503          "urls": [
  1504            "bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b",
  1505            "dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"
  1506          ],
  1507          "license": "MIT"
  1508        },
  1509        "src/libraries/trie/MerkleTrie.sol": {
  1510          "keccak256": "0xf8ba770ee6666e73ae43184c700e9c704b2c4ace71f9e3c2227ddc11a8148b4c",
  1511          "urls": [
  1512            "bzz-raw://4702ccee1fe44aea3ee01d59e6152eb755da083f786f00947fec4437c064fe74",
  1513            "dweb:/ipfs/QmQjFj5J7hrEM1dxJjFszzW2Cs7g7eMhYNBXonF2DXBstE"
  1514          ],
  1515          "license": "MIT"
  1516        },
  1517        "src/libraries/trie/SecureMerkleTrie.sol": {
  1518          "keccak256": "0xeaff8315cfd21197bc6bc859c2decf5d4f4838c9c357c502cdf2b1eac863d288",
  1519          "urls": [
  1520            "bzz-raw://79dcdcaa560aea51d138da4f5dc553a1808b6de090b2dc1629f18375edbff681",
  1521            "dweb:/ipfs/QmbE4pUPhf5fLKW4W6cEjhQs55gEDvHmbmoBqkW1yz3bnw"
  1522          ],
  1523          "license": "MIT"
  1524        },
  1525        "src/universal/ISemver.sol": {
  1526          "keccak256": "0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44",
  1527          "urls": [
  1528            "bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a",
  1529            "dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"
  1530          ],
  1531          "license": "MIT"
  1532        },
  1533        "src/vendor/AddressAliasHelper.sol": {
  1534          "keccak256": "0x6ecb83b4ec80fbe49c22f4f95d90482de64660ef5d422a19f4d4b04df31c1237",
  1535          "urls": [
  1536            "bzz-raw://1d0885be6e473962f9a0622176a22300165ac0cc1a1d7f2e22b11c3d656ace88",
  1537            "dweb:/ipfs/QmPRa3KmRpXW5P9ykveKRDgYN5zYo4cYLAYSnoqHX3KnXR"
  1538          ],
  1539          "license": "Apache-2.0"
  1540        }
  1541      },
  1542      "version": 1
  1543    },
  1544    "storageLayout": {
  1545      "storage": [
  1546        {
  1547          "astId": 32100,
  1548          "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1549          "label": "_initialized",
  1550          "offset": 0,
  1551          "slot": "0",
  1552          "type": "t_uint8"
  1553        },
  1554        {
  1555          "astId": 32103,
  1556          "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1557          "label": "_initializing",
  1558          "offset": 1,
  1559          "slot": "0",
  1560          "type": "t_bool"
  1561        },
  1562        {
  1563          "astId": 60287,
  1564          "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1565          "label": "params",
  1566          "offset": 0,
  1567          "slot": "1",
  1568          "type": "t_struct(ResourceParams)60270_storage"
  1569        },
  1570        {
  1571          "astId": 60292,
  1572          "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1573          "label": "__gap",
  1574          "offset": 0,
  1575          "slot": "2",
  1576          "type": "t_array(t_uint256)48_storage"
  1577        },
  1578        {
  1579          "astId": 59323,
  1580          "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1581          "label": "l2Sender",
  1582          "offset": 0,
  1583          "slot": "50",
  1584          "type": "t_address"
  1585        },
  1586        {
  1587          "astId": 59328,
  1588          "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1589          "label": "finalizedWithdrawals",
  1590          "offset": 0,
  1591          "slot": "51",
  1592          "type": "t_mapping(t_bytes32,t_bool)"
  1593        },
  1594        {
  1595          "astId": 59334,
  1596          "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1597          "label": "provenWithdrawals",
  1598          "offset": 0,
  1599          "slot": "52",
  1600          "type": "t_mapping(t_bytes32,t_struct(ProvenWithdrawal)59312_storage)"
  1601        },
  1602        {
  1603          "astId": 59337,
  1604          "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1605          "label": "paused",
  1606          "offset": 0,
  1607          "slot": "53",
  1608          "type": "t_bool"
  1609        },
  1610        {
  1611          "astId": 59341,
  1612          "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1613          "label": "l2Oracle",
  1614          "offset": 1,
  1615          "slot": "53",
  1616          "type": "t_contract(L2OutputOracle)59272"
  1617        },
  1618        {
  1619          "astId": 59345,
  1620          "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1621          "label": "systemConfig",
  1622          "offset": 0,
  1623          "slot": "54",
  1624          "type": "t_contract(SystemConfig)61393"
  1625        },
  1626        {
  1627          "astId": 59348,
  1628          "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1629          "label": "guardian",
  1630          "offset": 0,
  1631          "slot": "55",
  1632          "type": "t_address"
  1633        }
  1634      ],
  1635      "types": {
  1636        "t_address": {
  1637          "encoding": "inplace",
  1638          "label": "address",
  1639          "numberOfBytes": "20"
  1640        },
  1641        "t_array(t_uint256)48_storage": {
  1642          "encoding": "inplace",
  1643          "label": "uint256[48]",
  1644          "numberOfBytes": "1536",
  1645          "base": "t_uint256"
  1646        },
  1647        "t_bool": {
  1648          "encoding": "inplace",
  1649          "label": "bool",
  1650          "numberOfBytes": "1"
  1651        },
  1652        "t_bytes32": {
  1653          "encoding": "inplace",
  1654          "label": "bytes32",
  1655          "numberOfBytes": "32"
  1656        },
  1657        "t_contract(L2OutputOracle)59272": {
  1658          "encoding": "inplace",
  1659          "label": "contract L2OutputOracle",
  1660          "numberOfBytes": "20"
  1661        },
  1662        "t_contract(SystemConfig)61393": {
  1663          "encoding": "inplace",
  1664          "label": "contract SystemConfig",
  1665          "numberOfBytes": "20"
  1666        },
  1667        "t_mapping(t_bytes32,t_bool)": {
  1668          "encoding": "mapping",
  1669          "key": "t_bytes32",
  1670          "label": "mapping(bytes32 => bool)",
  1671          "numberOfBytes": "32",
  1672          "value": "t_bool"
  1673        },
  1674        "t_mapping(t_bytes32,t_struct(ProvenWithdrawal)59312_storage)": {
  1675          "encoding": "mapping",
  1676          "key": "t_bytes32",
  1677          "label": "mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal)",
  1678          "numberOfBytes": "32",
  1679          "value": "t_struct(ProvenWithdrawal)59312_storage"
  1680        },
  1681        "t_struct(ProvenWithdrawal)59312_storage": {
  1682          "encoding": "inplace",
  1683          "label": "struct OptimismPortal.ProvenWithdrawal",
  1684          "numberOfBytes": "64",
  1685          "members": [
  1686            {
  1687              "astId": 59307,
  1688              "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1689              "label": "outputRoot",
  1690              "offset": 0,
  1691              "slot": "0",
  1692              "type": "t_bytes32"
  1693            },
  1694            {
  1695              "astId": 59309,
  1696              "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1697              "label": "timestamp",
  1698              "offset": 0,
  1699              "slot": "1",
  1700              "type": "t_uint128"
  1701            },
  1702            {
  1703              "astId": 59311,
  1704              "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1705              "label": "l2OutputIndex",
  1706              "offset": 16,
  1707              "slot": "1",
  1708              "type": "t_uint128"
  1709            }
  1710          ]
  1711        },
  1712        "t_struct(ResourceParams)60270_storage": {
  1713          "encoding": "inplace",
  1714          "label": "struct ResourceMetering.ResourceParams",
  1715          "numberOfBytes": "32",
  1716          "members": [
  1717            {
  1718              "astId": 60265,
  1719              "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1720              "label": "prevBaseFee",
  1721              "offset": 0,
  1722              "slot": "0",
  1723              "type": "t_uint128"
  1724            },
  1725            {
  1726              "astId": 60267,
  1727              "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1728              "label": "prevBoughtGas",
  1729              "offset": 16,
  1730              "slot": "0",
  1731              "type": "t_uint64"
  1732            },
  1733            {
  1734              "astId": 60269,
  1735              "contract": "src/L1/OptimismPortal.sol:OptimismPortal",
  1736              "label": "prevBlockNum",
  1737              "offset": 24,
  1738              "slot": "0",
  1739              "type": "t_uint64"
  1740            }
  1741          ]
  1742        },
  1743        "t_uint128": {
  1744          "encoding": "inplace",
  1745          "label": "uint128",
  1746          "numberOfBytes": "16"
  1747        },
  1748        "t_uint256": {
  1749          "encoding": "inplace",
  1750          "label": "uint256",
  1751          "numberOfBytes": "32"
  1752        },
  1753        "t_uint64": {
  1754          "encoding": "inplace",
  1755          "label": "uint64",
  1756          "numberOfBytes": "8"
  1757        },
  1758        "t_uint8": {
  1759          "encoding": "inplace",
  1760          "label": "uint8",
  1761          "numberOfBytes": "1"
  1762        }
  1763      }
  1764    },
  1765    "userdoc": {
  1766      "version": 1,
  1767      "kind": "user",
  1768      "methods": {
  1769        "GUARDIAN()": {
  1770          "notice": "Getter for the Guardian"
  1771        },
  1772        "L2_ORACLE()": {
  1773          "notice": "Getter for the L2OutputOracle"
  1774        },
  1775        "SYSTEM_CONFIG()": {
  1776          "notice": "Getter for the SystemConfig"
  1777        },
  1778        "constructor": {
  1779          "notice": "Constructs the OptimismPortal contract."
  1780        },
  1781        "depositTransaction(address,uint256,uint64,bool,bytes)": {
  1782          "notice": "Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in         deriving deposit transactions. Note that if a deposit is made by a contract, its         address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider         using the CrossDomainMessenger contracts for a simpler developer experience."
  1783        },
  1784        "donateETH()": {
  1785          "notice": "Accepts ETH value without triggering a deposit to L2.         This function mainly exists for the sake of the migration between the legacy         Optimism system and Bedrock."
  1786        },
  1787        "finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))": {
  1788          "notice": "Finalizes a withdrawal transaction."
  1789        },
  1790        "finalizedWithdrawals(bytes32)": {
  1791          "notice": "A list of withdrawal hashes which have been successfully finalized."
  1792        },
  1793        "guardian()": {
  1794          "notice": "Address that has the ability to pause and unpause withdrawals."
  1795        },
  1796        "initialize(address,address,address,bool)": {
  1797          "notice": "Initializer."
  1798        },
  1799        "isOutputFinalized(uint256)": {
  1800          "notice": "Determine if a given output is finalized.         Reverts if the call to L2_ORACLE.getL2Output reverts.         Returns a boolean otherwise."
  1801        },
  1802        "l2Oracle()": {
  1803          "notice": "Address of the L2OutputOracle contract."
  1804        },
  1805        "l2Sender()": {
  1806          "notice": "Address of the L2 account which initiated a withdrawal in this transaction.         If the of this variable is the default L2 sender address, then we are NOT inside of         a call to finalizeWithdrawalTransaction."
  1807        },
  1808        "minimumGasLimit(uint64)": {
  1809          "notice": "Computes the minimum gas limit for a deposit.         The minimum gas limit linearly increases based on the size of the calldata.         This is to prevent users from creating L2 resource usage without paying for it.         This function can be used when interacting with the portal to ensure forwards         compatibility."
  1810        },
  1811        "params()": {
  1812          "notice": "EIP-1559 style gas parameters."
  1813        },
  1814        "pause()": {
  1815          "notice": "Pauses withdrawals."
  1816        },
  1817        "paused()": {
  1818          "notice": "Determines if cross domain messaging is paused.         When set to true, withdrawals are paused.         This may be removed in the future."
  1819        },
  1820        "proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])": {
  1821          "notice": "Proves a withdrawal transaction."
  1822        },
  1823        "provenWithdrawals(bytes32)": {
  1824          "notice": "A mapping of withdrawal hashes to `ProvenWithdrawal` data."
  1825        },
  1826        "systemConfig()": {
  1827          "notice": "Address of the SystemConfig contract."
  1828        },
  1829        "unpause()": {
  1830          "notice": "Unpauses withdrawals."
  1831        },
  1832        "version()": {
  1833          "notice": "Semantic version."
  1834        }
  1835      },
  1836      "events": {
  1837        "Paused(address)": {
  1838          "notice": "Emitted when the pause is triggered."
  1839        },
  1840        "TransactionDeposited(address,address,uint256,bytes)": {
  1841          "notice": "Emitted when a transaction is deposited from L1 to L2.         The parameters of this event are read by the rollup node and used to derive deposit         transactions on L2."
  1842        },
  1843        "Unpaused(address)": {
  1844          "notice": "Emitted when the pause is lifted."
  1845        },
  1846        "WithdrawalFinalized(bytes32,bool)": {
  1847          "notice": "Emitted when a withdrawal transaction is finalized."
  1848        },
  1849        "WithdrawalProven(bytes32,address,address)": {
  1850          "notice": "Emitted when a withdrawal transaction is proven."
  1851        }
  1852      },
  1853      "notice": "The OptimismPortal is a low-level contract responsible for passing messages between L1         and L2. Messages sent directly to the OptimismPortal have no form of replayability.         Users are encouraged to use the L1CrossDomainMessenger for a higher-level interface."
  1854    },
  1855    "devdoc": {
  1856      "version": 1,
  1857      "kind": "dev",
  1858      "methods": {
  1859        "GUARDIAN()": {},
  1860        "L2_ORACLE()": {},
  1861        "SYSTEM_CONFIG()": {},
  1862        "depositTransaction(address,uint256,uint64,bool,bytes)": {
  1863          "params": {
  1864            "_data": "Data to trigger the recipient with.",
  1865            "_gasLimit": "Amount of L2 gas to purchase by burning gas on L1.",
  1866            "_isCreation": "Whether or not the transaction is a contract creation.",
  1867            "_to": "Target address on L2.",
  1868            "_value": "ETH value to send to the recipient."
  1869          }
  1870        },
  1871        "finalizeWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes))": {
  1872          "params": {
  1873            "_tx": "Withdrawal transaction to finalize."
  1874          }
  1875        },
  1876        "initialize(address,address,address,bool)": {
  1877          "params": {
  1878            "_guardian": "Address that can pause withdrawals.",
  1879            "_l2Oracle": "Address of the L2OutputOracle contract.",
  1880            "_paused": "Sets the contract's pausability state.",
  1881            "_systemConfig": "Address of the SystemConfig contract."
  1882          }
  1883        },
  1884        "isOutputFinalized(uint256)": {
  1885          "params": {
  1886            "_l2OutputIndex": "Index of the L2 output to check."
  1887          },
  1888          "returns": {
  1889            "_0": "Whether or not the output is finalized."
  1890          }
  1891        },
  1892        "minimumGasLimit(uint64)": {
  1893          "params": {
  1894            "_byteCount": "Number of bytes in the calldata."
  1895          },
  1896          "returns": {
  1897            "_0": "The minimum gas limit for a deposit."
  1898          }
  1899        },
  1900        "proveWithdrawalTransaction((uint256,address,address,uint256,uint256,bytes),uint256,(bytes32,bytes32,bytes32,bytes32),bytes[])": {
  1901          "params": {
  1902            "_l2OutputIndex": "L2 output index to prove against.",
  1903            "_outputRootProof": "Inclusion proof of the L2ToL1MessagePasser contract's storage root.",
  1904            "_tx": "Withdrawal transaction to finalize.",
  1905            "_withdrawalProof": "Inclusion proof of the withdrawal in L2ToL1MessagePasser contract."
  1906          }
  1907        }
  1908      },
  1909      "events": {
  1910        "Paused(address)": {
  1911          "params": {
  1912            "account": "Address of the account triggering the pause."
  1913          }
  1914        },
  1915        "TransactionDeposited(address,address,uint256,bytes)": {
  1916          "params": {
  1917            "from": "Address that triggered the deposit transaction.",
  1918            "opaqueData": "ABI encoded deposit data to be parsed off-chain.",
  1919            "to": "Address that the deposit transaction is directed to.",
  1920            "version": "Version of this deposit transaction event."
  1921          }
  1922        },
  1923        "Unpaused(address)": {
  1924          "params": {
  1925            "account": "Address of the account triggering the unpause."
  1926          }
  1927        },
  1928        "WithdrawalFinalized(bytes32,bool)": {
  1929          "params": {
  1930            "success": "Whether the withdrawal transaction was successful.",
  1931            "withdrawalHash": "Hash of the withdrawal transaction."
  1932          }
  1933        },
  1934        "WithdrawalProven(bytes32,address,address)": {
  1935          "params": {
  1936            "from": "Address that triggered the withdrawal transaction.",
  1937            "to": "Address that the withdrawal transaction is directed to.",
  1938            "withdrawalHash": "Hash of the withdrawal transaction."
  1939          }
  1940        }
  1941      }
  1942    },
  1943    "ast": {
  1944      "absolutePath": "src/L1/OptimismPortal.sol",
  1945      "id": 59998,
  1946      "exportedSymbols": {
  1947        "AddressAliasHelper": [
  1948          78127
  1949        ],
  1950        "Constants": [
  1951          69571
  1952        ],
  1953        "Hashing": [
  1954          70279
  1955        ],
  1956        "ISemver": [
  1957          75669
  1958        ],
  1959        "Initializable": [
  1960          32244
  1961        ],
  1962        "L2OutputOracle": [
  1963          59272
  1964        ],
  1965        "OptimismPortal": [
  1966          59997
  1967        ],
  1968        "ResourceMetering": [
  1969          60599
  1970        ],
  1971        "SafeCall": [
  1972          70479
  1973        ],
  1974        "SecureMerkleTrie": [
  1975          72279
  1976        ],
  1977        "SystemConfig": [
  1978          61393
  1979        ],
  1980        "Types": [
  1981          70595
  1982        ]
  1983      },
  1984      "nodeType": "SourceUnit",
  1985      "src": "32:21369:110",
  1986      "nodes": [
  1987        {
  1988          "id": 59274,
  1989          "nodeType": "PragmaDirective",
  1990          "src": "32:23:110",
  1991          "nodes": [],
  1992          "literals": [
  1993            "solidity",
  1994            "0.8",
  1995            ".15"
  1996          ]
  1997        },
  1998        {
  1999          "id": 59276,
  2000          "nodeType": "ImportDirective",
  2001          "src": "57:86:110",
  2002          "nodes": [],
  2003          "absolutePath": "lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol",
  2004          "file": "@openzeppelin/contracts/proxy/utils/Initializable.sol",
  2005          "nameLocation": "-1:-1:-1",
  2006          "scope": 59998,
  2007          "sourceUnit": 32245,
  2008          "symbolAliases": [
  2009            {
  2010              "foreign": {
  2011                "id": 59275,
  2012                "name": "Initializable",
  2013                "nodeType": "Identifier",
  2014                "overloadedDeclarations": [],
  2015                "referencedDeclaration": 32244,
  2016                "src": "66:13:110",
  2017                "typeDescriptions": {}
  2018              },
  2019              "nameLocation": "-1:-1:-1"
  2020            }
  2021          ],
  2022          "unitAlias": ""
  2023        },
  2024        {
  2025          "id": 59278,
  2026          "nodeType": "ImportDirective",
  2027          "src": "144:54:110",
  2028          "nodes": [],
  2029          "absolutePath": "src/libraries/SafeCall.sol",
  2030          "file": "src/libraries/SafeCall.sol",
  2031          "nameLocation": "-1:-1:-1",
  2032          "scope": 59998,
  2033          "sourceUnit": 70480,
  2034          "symbolAliases": [
  2035            {
  2036              "foreign": {
  2037                "id": 59277,
  2038                "name": "SafeCall",
  2039                "nodeType": "Identifier",
  2040                "overloadedDeclarations": [],
  2041                "referencedDeclaration": 70479,
  2042                "src": "153:8:110",
  2043                "typeDescriptions": {}
  2044              },
  2045              "nameLocation": "-1:-1:-1"
  2046            }
  2047          ],
  2048          "unitAlias": ""
  2049        },
  2050        {
  2051          "id": 59280,
  2052          "nodeType": "ImportDirective",
  2053          "src": "199:59:110",
  2054          "nodes": [],
  2055          "absolutePath": "src/L1/L2OutputOracle.sol",
  2056          "file": "src/L1/L2OutputOracle.sol",
  2057          "nameLocation": "-1:-1:-1",
  2058          "scope": 59998,
  2059          "sourceUnit": 59273,
  2060          "symbolAliases": [
  2061            {
  2062              "foreign": {
  2063                "id": 59279,
  2064                "name": "L2OutputOracle",
  2065                "nodeType": "Identifier",
  2066                "overloadedDeclarations": [],
  2067                "referencedDeclaration": 59272,
  2068                "src": "208:14:110",
  2069                "typeDescriptions": {}
  2070              },
  2071              "nameLocation": "-1:-1:-1"
  2072            }
  2073          ],
  2074          "unitAlias": ""
  2075        },
  2076        {
  2077          "id": 59282,
  2078          "nodeType": "ImportDirective",
  2079          "src": "259:55:110",
  2080          "nodes": [],
  2081          "absolutePath": "src/L1/SystemConfig.sol",
  2082          "file": "src/L1/SystemConfig.sol",
  2083          "nameLocation": "-1:-1:-1",
  2084          "scope": 59998,
  2085          "sourceUnit": 61394,
  2086          "symbolAliases": [
  2087            {
  2088              "foreign": {
  2089                "id": 59281,
  2090                "name": "SystemConfig",
  2091                "nodeType": "Identifier",
  2092                "overloadedDeclarations": [],
  2093                "referencedDeclaration": 61393,
  2094                "src": "268:12:110",
  2095                "typeDescriptions": {}
  2096              },
  2097              "nameLocation": "-1:-1:-1"
  2098            }
  2099          ],
  2100          "unitAlias": ""
  2101        },
  2102        {
  2103          "id": 59284,
  2104          "nodeType": "ImportDirective",
  2105          "src": "315:56:110",
  2106          "nodes": [],
  2107          "absolutePath": "src/libraries/Constants.sol",
  2108          "file": "src/libraries/Constants.sol",
  2109          "nameLocation": "-1:-1:-1",
  2110          "scope": 59998,
  2111          "sourceUnit": 69572,
  2112          "symbolAliases": [
  2113            {
  2114              "foreign": {
  2115                "id": 59283,
  2116                "name": "Constants",
  2117                "nodeType": "Identifier",
  2118                "overloadedDeclarations": [],
  2119                "referencedDeclaration": 69571,
  2120                "src": "324:9:110",
  2121                "typeDescriptions": {}
  2122              },
  2123              "nameLocation": "-1:-1:-1"
  2124            }
  2125          ],
  2126          "unitAlias": ""
  2127        },
  2128        {
  2129          "id": 59286,
  2130          "nodeType": "ImportDirective",
  2131          "src": "372:48:110",
  2132          "nodes": [],
  2133          "absolutePath": "src/libraries/Types.sol",
  2134          "file": "src/libraries/Types.sol",
  2135          "nameLocation": "-1:-1:-1",
  2136          "scope": 59998,
  2137          "sourceUnit": 70596,
  2138          "symbolAliases": [
  2139            {
  2140              "foreign": {
  2141                "id": 59285,
  2142                "name": "Types",
  2143                "nodeType": "Identifier",
  2144                "overloadedDeclarations": [],
  2145                "referencedDeclaration": 70595,
  2146                "src": "381:5:110",
  2147                "typeDescriptions": {}
  2148              },
  2149              "nameLocation": "-1:-1:-1"
  2150            }
  2151          ],
  2152          "unitAlias": ""
  2153        },
  2154        {
  2155          "id": 59288,
  2156          "nodeType": "ImportDirective",
  2157          "src": "421:52:110",
  2158          "nodes": [],
  2159          "absolutePath": "src/libraries/Hashing.sol",
  2160          "file": "src/libraries/Hashing.sol",
  2161          "nameLocation": "-1:-1:-1",
  2162          "scope": 59998,
  2163          "sourceUnit": 70280,
  2164          "symbolAliases": [
  2165            {
  2166              "foreign": {
  2167                "id": 59287,
  2168                "name": "Hashing",
  2169                "nodeType": "Identifier",
  2170                "overloadedDeclarations": [],
  2171                "referencedDeclaration": 70279,
  2172                "src": "430:7:110",
  2173                "typeDescriptions": {}
  2174              },
  2175              "nameLocation": "-1:-1:-1"
  2176            }
  2177          ],
  2178          "unitAlias": ""
  2179        },
  2180        {
  2181          "id": 59290,
  2182          "nodeType": "ImportDirective",
  2183          "src": "474:75:110",
  2184          "nodes": [],
  2185          "absolutePath": "src/libraries/trie/SecureMerkleTrie.sol",
  2186          "file": "src/libraries/trie/SecureMerkleTrie.sol",
  2187          "nameLocation": "-1:-1:-1",
  2188          "scope": 59998,
  2189          "sourceUnit": 72280,
  2190          "symbolAliases": [
  2191            {
  2192              "foreign": {
  2193                "id": 59289,
  2194                "name": "SecureMerkleTrie",
  2195                "nodeType": "Identifier",
  2196                "overloadedDeclarations": [],
  2197                "referencedDeclaration": 72279,
  2198                "src": "483:16:110",
  2199                "typeDescriptions": {}
  2200              },
  2201              "nameLocation": "-1:-1:-1"
  2202            }
  2203          ],
  2204          "unitAlias": ""
  2205        },
  2206        {
  2207          "id": 59292,
  2208          "nodeType": "ImportDirective",
  2209          "src": "550:71:110",
  2210          "nodes": [],
  2211          "absolutePath": "src/vendor/AddressAliasHelper.sol",
  2212          "file": "src/vendor/AddressAliasHelper.sol",
  2213          "nameLocation": "-1:-1:-1",
  2214          "scope": 59998,
  2215          "sourceUnit": 78128,
  2216          "symbolAliases": [
  2217            {
  2218              "foreign": {
  2219                "id": 59291,
  2220                "name": "AddressAliasHelper",
  2221                "nodeType": "Identifier",
  2222                "overloadedDeclarations": [],
  2223                "referencedDeclaration": 78127,
  2224                "src": "559:18:110",
  2225                "typeDescriptions": {}
  2226              },
  2227              "nameLocation": "-1:-1:-1"
  2228            }
  2229          ],
  2230          "unitAlias": ""
  2231        },
  2232        {
  2233          "id": 59294,
  2234          "nodeType": "ImportDirective",
  2235          "src": "622:63:110",
  2236          "nodes": [],
  2237          "absolutePath": "src/L1/ResourceMetering.sol",
  2238          "file": "src/L1/ResourceMetering.sol",
  2239          "nameLocation": "-1:-1:-1",
  2240          "scope": 59998,
  2241          "sourceUnit": 60600,
  2242          "symbolAliases": [
  2243            {
  2244              "foreign": {
  2245                "id": 59293,
  2246                "name": "ResourceMetering",
  2247                "nodeType": "Identifier",
  2248                "overloadedDeclarations": [],
  2249                "referencedDeclaration": 60599,
  2250                "src": "631:16:110",
  2251                "typeDescriptions": {}
  2252              },
  2253              "nameLocation": "-1:-1:-1"
  2254            }
  2255          ],
  2256          "unitAlias": ""
  2257        },
  2258        {
  2259          "id": 59296,
  2260          "nodeType": "ImportDirective",
  2261          "src": "686:52:110",
  2262          "nodes": [],
  2263          "absolutePath": "src/universal/ISemver.sol",
  2264          "file": "src/universal/ISemver.sol",
  2265          "nameLocation": "-1:-1:-1",
  2266          "scope": 59998,
  2267          "sourceUnit": 75670,
  2268          "symbolAliases": [
  2269            {
  2270              "foreign": {
  2271                "id": 59295,
  2272                "name": "ISemver",
  2273                "nodeType": "Identifier",
  2274                "overloadedDeclarations": [],
  2275                "referencedDeclaration": 75669,
  2276                "src": "695:7:110",
  2277                "typeDescriptions": {}
  2278              },
  2279              "nameLocation": "-1:-1:-1"
  2280            }
  2281          ],
  2282          "unitAlias": ""
  2283        },
  2284        {
  2285          "id": 59298,
  2286          "nodeType": "ImportDirective",
  2287          "src": "739:56:110",
  2288          "nodes": [],
  2289          "absolutePath": "src/libraries/Constants.sol",
  2290          "file": "src/libraries/Constants.sol",
  2291          "nameLocation": "-1:-1:-1",
  2292          "scope": 59998,
  2293          "sourceUnit": 69572,
  2294          "symbolAliases": [
  2295            {
  2296              "foreign": {
  2297                "id": 59297,
  2298                "name": "Constants",
  2299                "nodeType": "Identifier",
  2300                "overloadedDeclarations": [],
  2301                "referencedDeclaration": 69571,
  2302                "src": "748:9:110",
  2303                "typeDescriptions": {}
  2304              },
  2305              "nameLocation": "-1:-1:-1"
  2306            }
  2307          ],
  2308          "unitAlias": ""
  2309        },
  2310        {
  2311          "id": 59997,
  2312          "nodeType": "ContractDefinition",
  2313          "src": "1135:20265:110",
  2314          "nodes": [
  2315            {
  2316              "id": 59312,
  2317              "nodeType": "StructDefinition",
  2318              "src": "1503:117:110",
  2319              "nodes": [],
  2320              "canonicalName": "OptimismPortal.ProvenWithdrawal",
  2321              "members": [
  2322                {
  2323                  "constant": false,
  2324                  "id": 59307,
  2325                  "mutability": "mutable",
  2326                  "name": "outputRoot",
  2327                  "nameLocation": "1545:10:110",
  2328                  "nodeType": "VariableDeclaration",
  2329                  "scope": 59312,
  2330                  "src": "1537:18:110",
  2331                  "stateVariable": false,
  2332                  "storageLocation": "default",
  2333                  "typeDescriptions": {
  2334                    "typeIdentifier": "t_bytes32",
  2335                    "typeString": "bytes32"
  2336                  },
  2337                  "typeName": {
  2338                    "id": 59306,
  2339                    "name": "bytes32",
  2340                    "nodeType": "ElementaryTypeName",
  2341                    "src": "1537:7:110",
  2342                    "typeDescriptions": {
  2343                      "typeIdentifier": "t_bytes32",
  2344                      "typeString": "bytes32"
  2345                    }
  2346                  },
  2347                  "visibility": "internal"
  2348                },
  2349                {
  2350                  "constant": false,
  2351                  "id": 59309,
  2352                  "mutability": "mutable",
  2353                  "name": "timestamp",
  2354                  "nameLocation": "1573:9:110",
  2355                  "nodeType": "VariableDeclaration",
  2356                  "scope": 59312,
  2357                  "src": "1565:17:110",
  2358                  "stateVariable": false,
  2359                  "storageLocation": "default",
  2360                  "typeDescriptions": {
  2361                    "typeIdentifier": "t_uint128",
  2362                    "typeString": "uint128"
  2363                  },
  2364                  "typeName": {
  2365                    "id": 59308,
  2366                    "name": "uint128",
  2367                    "nodeType": "ElementaryTypeName",
  2368                    "src": "1565:7:110",
  2369                    "typeDescriptions": {
  2370                      "typeIdentifier": "t_uint128",
  2371                      "typeString": "uint128"
  2372                    }
  2373                  },
  2374                  "visibility": "internal"
  2375                },
  2376                {
  2377                  "constant": false,
  2378                  "id": 59311,
  2379                  "mutability": "mutable",
  2380                  "name": "l2OutputIndex",
  2381                  "nameLocation": "1600:13:110",
  2382                  "nodeType": "VariableDeclaration",
  2383                  "scope": 59312,
  2384                  "src": "1592:21:110",
  2385                  "stateVariable": false,
  2386                  "storageLocation": "default",
  2387                  "typeDescriptions": {
  2388                    "typeIdentifier": "t_uint128",
  2389                    "typeString": "uint128"
  2390                  },
  2391                  "typeName": {
  2392                    "id": 59310,
  2393                    "name": "uint128",
  2394                    "nodeType": "ElementaryTypeName",
  2395                    "src": "1592:7:110",
  2396                    "typeDescriptions": {
  2397                      "typeIdentifier": "t_uint128",
  2398                      "typeString": "uint128"
  2399                    }
  2400                  },
  2401                  "visibility": "internal"
  2402                }
  2403              ],
  2404              "name": "ProvenWithdrawal",
  2405              "nameLocation": "1510:16:110",
  2406              "scope": 59997,
  2407              "visibility": "public"
  2408            },
  2409            {
  2410              "id": 59316,
  2411              "nodeType": "VariableDeclaration",
  2412              "src": "1672:45:110",
  2413              "nodes": [],
  2414              "constant": true,
  2415              "documentation": {
  2416                "id": 59313,
  2417                "nodeType": "StructuredDocumentation",
  2418                "src": "1626:41:110",
  2419                "text": "@notice Version of the deposit event."
  2420              },
  2421              "mutability": "constant",
  2422              "name": "DEPOSIT_VERSION",
  2423              "nameLocation": "1698:15:110",
  2424              "scope": 59997,
  2425              "stateVariable": true,
  2426              "storageLocation": "default",
  2427              "typeDescriptions": {
  2428                "typeIdentifier": "t_uint256",
  2429                "typeString": "uint256"
  2430              },
  2431              "typeName": {
  2432                "id": 59314,
  2433                "name": "uint256",
  2434                "nodeType": "ElementaryTypeName",
  2435                "src": "1672:7:110",
  2436                "typeDescriptions": {
  2437                  "typeIdentifier": "t_uint256",
  2438                  "typeString": "uint256"
  2439                }
  2440              },
  2441              "value": {
  2442                "hexValue": "30",
  2443                "id": 59315,
  2444                "isConstant": false,
  2445                "isLValue": false,
  2446                "isPure": true,
  2447                "kind": "number",
  2448                "lValueRequested": false,
  2449                "nodeType": "Literal",
  2450                "src": "1716:1:110",
  2451                "typeDescriptions": {
  2452                  "typeIdentifier": "t_rational_0_by_1",
  2453                  "typeString": "int_const 0"
  2454                },
  2455                "value": "0"
  2456              },
  2457              "visibility": "internal"
  2458            },
  2459            {
  2460              "id": 59320,
  2461              "nodeType": "VariableDeclaration",
  2462              "src": "1813:60:110",
  2463              "nodes": [],
  2464              "constant": true,
  2465              "documentation": {
  2466                "id": 59317,
  2467                "nodeType": "StructuredDocumentation",
  2468                "src": "1724:84:110",
  2469                "text": "@notice The L2 gas limit set when eth is deposited using the receive() function."
  2470              },
  2471              "mutability": "constant",
  2472              "name": "RECEIVE_DEFAULT_GAS_LIMIT",
  2473              "nameLocation": "1838:25:110",
  2474              "scope": 59997,
  2475              "stateVariable": true,
  2476              "storageLocation": "default",
  2477              "typeDescriptions": {
  2478                "typeIdentifier": "t_uint64",
  2479                "typeString": "uint64"
  2480              },
  2481              "typeName": {
  2482                "id": 59318,
  2483                "name": "uint64",
  2484                "nodeType": "ElementaryTypeName",
  2485                "src": "1813:6:110",
  2486                "typeDescriptions": {
  2487                  "typeIdentifier": "t_uint64",
  2488                  "typeString": "uint64"
  2489                }
  2490              },
  2491              "value": {
  2492                "hexValue": "3130305f303030",
  2493                "id": 59319,
  2494                "isConstant": false,
  2495                "isLValue": false,
  2496                "isPure": true,
  2497                "kind": "number",
  2498                "lValueRequested": false,
  2499                "nodeType": "Literal",
  2500                "src": "1866:7:110",
  2501                "typeDescriptions": {
  2502                  "typeIdentifier": "t_rational_100000_by_1",
  2503                  "typeString": "int_const 100000"
  2504                },
  2505                "value": "100_000"
  2506              },
  2507              "visibility": "internal"
  2508            },
  2509            {
  2510              "id": 59323,
  2511              "nodeType": "VariableDeclaration",
  2512              "src": "2129:23:110",
  2513              "nodes": [],
  2514              "constant": false,
  2515              "documentation": {
  2516                "id": 59321,
  2517                "nodeType": "StructuredDocumentation",
  2518                "src": "1880:244:110",
  2519                "text": "@notice Address of the L2 account which initiated a withdrawal in this transaction.\n         If the of this variable is the default L2 sender address, then we are NOT inside of\n         a call to finalizeWithdrawalTransaction."
  2520              },
  2521              "functionSelector": "9bf62d82",
  2522              "mutability": "mutable",
  2523              "name": "l2Sender",
  2524              "nameLocation": "2144:8:110",
  2525              "scope": 59997,
  2526              "stateVariable": true,
  2527              "storageLocation": "default",
  2528              "typeDescriptions": {
  2529                "typeIdentifier": "t_address",
  2530                "typeString": "address"
  2531              },
  2532              "typeName": {
  2533                "id": 59322,
  2534                "name": "address",
  2535                "nodeType": "ElementaryTypeName",
  2536                "src": "2129:7:110",
  2537                "stateMutability": "nonpayable",
  2538                "typeDescriptions": {
  2539                  "typeIdentifier": "t_address",
  2540                  "typeString": "address"
  2541                }
  2542              },
  2543              "visibility": "public"
  2544            },
  2545            {
  2546              "id": 59328,
  2547              "nodeType": "VariableDeclaration",
  2548              "src": "2243:52:110",
  2549              "nodes": [],
  2550              "constant": false,
  2551              "documentation": {
  2552                "id": 59324,
  2553                "nodeType": "StructuredDocumentation",
  2554                "src": "2159:79:110",
  2555                "text": "@notice A list of withdrawal hashes which have been successfully finalized."
  2556              },
  2557              "functionSelector": "a14238e7",
  2558              "mutability": "mutable",
  2559              "name": "finalizedWithdrawals",
  2560              "nameLocation": "2275:20:110",
  2561              "scope": 59997,
  2562              "stateVariable": true,
  2563              "storageLocation": "default",
  2564              "typeDescriptions": {
  2565                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
  2566                "typeString": "mapping(bytes32 => bool)"
  2567              },
  2568              "typeName": {
  2569                "id": 59327,
  2570                "keyType": {
  2571                  "id": 59325,
  2572                  "name": "bytes32",
  2573                  "nodeType": "ElementaryTypeName",
  2574                  "src": "2251:7:110",
  2575                  "typeDescriptions": {
  2576                    "typeIdentifier": "t_bytes32",
  2577                    "typeString": "bytes32"
  2578                  }
  2579                },
  2580                "nodeType": "Mapping",
  2581                "src": "2243:24:110",
  2582                "typeDescriptions": {
  2583                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
  2584                  "typeString": "mapping(bytes32 => bool)"
  2585                },
  2586                "valueType": {
  2587                  "id": 59326,
  2588                  "name": "bool",
  2589                  "nodeType": "ElementaryTypeName",
  2590                  "src": "2262:4:110",
  2591                  "typeDescriptions": {
  2592                    "typeIdentifier": "t_bool",
  2593                    "typeString": "bool"
  2594                  }
  2595                }
  2596              },
  2597              "visibility": "public"
  2598            },
  2599            {
  2600              "id": 59334,
  2601              "nodeType": "VariableDeclaration",
  2602              "src": "2377:61:110",
  2603              "nodes": [],
  2604              "constant": false,
  2605              "documentation": {
  2606                "id": 59329,
  2607                "nodeType": "StructuredDocumentation",
  2608                "src": "2302:70:110",
  2609                "text": "@notice A mapping of withdrawal hashes to `ProvenWithdrawal` data."
  2610              },
  2611              "functionSelector": "e965084c",
  2612              "mutability": "mutable",
  2613              "name": "provenWithdrawals",
  2614              "nameLocation": "2421:17:110",
  2615              "scope": 59997,
  2616              "stateVariable": true,
  2617              "storageLocation": "default",
  2618              "typeDescriptions": {
  2619                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$59312_storage_$",
  2620                "typeString": "mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal)"
  2621              },
  2622              "typeName": {
  2623                "id": 59333,
  2624                "keyType": {
  2625                  "id": 59330,
  2626                  "name": "bytes32",
  2627                  "nodeType": "ElementaryTypeName",
  2628                  "src": "2385:7:110",
  2629                  "typeDescriptions": {
  2630                    "typeIdentifier": "t_bytes32",
  2631                    "typeString": "bytes32"
  2632                  }
  2633                },
  2634                "nodeType": "Mapping",
  2635                "src": "2377:36:110",
  2636                "typeDescriptions": {
  2637                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$59312_storage_$",
  2638                  "typeString": "mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal)"
  2639                },
  2640                "valueType": {
  2641                  "id": 59332,
  2642                  "nodeType": "UserDefinedTypeName",
  2643                  "pathNode": {
  2644                    "id": 59331,
  2645                    "name": "ProvenWithdrawal",
  2646                    "nodeType": "IdentifierPath",
  2647                    "referencedDeclaration": 59312,
  2648                    "src": "2396:16:110"
  2649                  },
  2650                  "referencedDeclaration": 59312,
  2651                  "src": "2396:16:110",
  2652                  "typeDescriptions": {
  2653                    "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage_ptr",
  2654                    "typeString": "struct OptimismPortal.ProvenWithdrawal"
  2655                  }
  2656                }
  2657              },
  2658              "visibility": "public"
  2659            },
  2660            {
  2661              "id": 59337,
  2662              "nodeType": "VariableDeclaration",
  2663              "src": "2618:18:110",
  2664              "nodes": [],
  2665              "constant": false,
  2666              "documentation": {
  2667                "id": 59335,
  2668                "nodeType": "StructuredDocumentation",
  2669                "src": "2445:168:110",
  2670                "text": "@notice Determines if cross domain messaging is paused.\n         When set to true, withdrawals are paused.\n         This may be removed in the future."
  2671              },
  2672              "functionSelector": "5c975abb",
  2673              "mutability": "mutable",
  2674              "name": "paused",
  2675              "nameLocation": "2630:6:110",
  2676              "scope": 59997,
  2677              "stateVariable": true,
  2678              "storageLocation": "default",
  2679              "typeDescriptions": {
  2680                "typeIdentifier": "t_bool",
  2681                "typeString": "bool"
  2682              },
  2683              "typeName": {
  2684                "id": 59336,
  2685                "name": "bool",
  2686                "nodeType": "ElementaryTypeName",
  2687                "src": "2618:4:110",
  2688                "typeDescriptions": {
  2689                  "typeIdentifier": "t_bool",
  2690                  "typeString": "bool"
  2691                }
  2692              },
  2693              "visibility": "public"
  2694            },
  2695            {
  2696              "id": 59341,
  2697              "nodeType": "VariableDeclaration",
  2698              "src": "2732:30:110",
  2699              "nodes": [],
  2700              "constant": false,
  2701              "documentation": {
  2702                "id": 59338,
  2703                "nodeType": "StructuredDocumentation",
  2704                "src": "2643:84:110",
  2705                "text": "@notice Address of the L2OutputOracle contract.\n @custom:network-specific"
  2706              },
  2707              "functionSelector": "9b5f694a",
  2708              "mutability": "mutable",
  2709              "name": "l2Oracle",
  2710              "nameLocation": "2754:8:110",
  2711              "scope": 59997,
  2712              "stateVariable": true,
  2713              "storageLocation": "default",
  2714              "typeDescriptions": {
  2715                "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  2716                "typeString": "contract L2OutputOracle"
  2717              },
  2718              "typeName": {
  2719                "id": 59340,
  2720                "nodeType": "UserDefinedTypeName",
  2721                "pathNode": {
  2722                  "id": 59339,
  2723                  "name": "L2OutputOracle",
  2724                  "nodeType": "IdentifierPath",
  2725                  "referencedDeclaration": 59272,
  2726                  "src": "2732:14:110"
  2727                },
  2728                "referencedDeclaration": 59272,
  2729                "src": "2732:14:110",
  2730                "typeDescriptions": {
  2731                  "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  2732                  "typeString": "contract L2OutputOracle"
  2733                }
  2734              },
  2735              "visibility": "public"
  2736            },
  2737            {
  2738              "id": 59345,
  2739              "nodeType": "VariableDeclaration",
  2740              "src": "2856:32:110",
  2741              "nodes": [],
  2742              "constant": false,
  2743              "documentation": {
  2744                "id": 59342,
  2745                "nodeType": "StructuredDocumentation",
  2746                "src": "2769:82:110",
  2747                "text": "@notice Address of the SystemConfig contract.\n @custom:network-specific"
  2748              },
  2749              "functionSelector": "33d7e2bd",
  2750              "mutability": "mutable",
  2751              "name": "systemConfig",
  2752              "nameLocation": "2876:12:110",
  2753              "scope": 59997,
  2754              "stateVariable": true,
  2755              "storageLocation": "default",
  2756              "typeDescriptions": {
  2757                "typeIdentifier": "t_contract$_SystemConfig_$61393",
  2758                "typeString": "contract SystemConfig"
  2759              },
  2760              "typeName": {
  2761                "id": 59344,
  2762                "nodeType": "UserDefinedTypeName",
  2763                "pathNode": {
  2764                  "id": 59343,
  2765                  "name": "SystemConfig",
  2766                  "nodeType": "IdentifierPath",
  2767                  "referencedDeclaration": 61393,
  2768                  "src": "2856:12:110"
  2769                },
  2770                "referencedDeclaration": 61393,
  2771                "src": "2856:12:110",
  2772                "typeDescriptions": {
  2773                  "typeIdentifier": "t_contract$_SystemConfig_$61393",
  2774                  "typeString": "contract SystemConfig"
  2775                }
  2776              },
  2777              "visibility": "public"
  2778            },
  2779            {
  2780              "id": 59348,
  2781              "nodeType": "VariableDeclaration",
  2782              "src": "3007:23:110",
  2783              "nodes": [],
  2784              "constant": false,
  2785              "documentation": {
  2786                "id": 59346,
  2787                "nodeType": "StructuredDocumentation",
  2788                "src": "2895:107:110",
  2789                "text": "@notice Address that has the ability to pause and unpause withdrawals.\n @custom:network-specific"
  2790              },
  2791              "functionSelector": "452a9320",
  2792              "mutability": "mutable",
  2793              "name": "guardian",
  2794              "nameLocation": "3022:8:110",
  2795              "scope": 59997,
  2796              "stateVariable": true,
  2797              "storageLocation": "default",
  2798              "typeDescriptions": {
  2799                "typeIdentifier": "t_address",
  2800                "typeString": "address"
  2801              },
  2802              "typeName": {
  2803                "id": 59347,
  2804                "name": "address",
  2805                "nodeType": "ElementaryTypeName",
  2806                "src": "3007:7:110",
  2807                "stateMutability": "nonpayable",
  2808                "typeDescriptions": {
  2809                  "typeIdentifier": "t_address",
  2810                  "typeString": "address"
  2811                }
  2812              },
  2813              "visibility": "public"
  2814            },
  2815            {
  2816              "id": 59359,
  2817              "nodeType": "EventDefinition",
  2818              "src": "3541:112:110",
  2819              "nodes": [],
  2820              "anonymous": false,
  2821              "documentation": {
  2822                "id": 59349,
  2823                "nodeType": "StructuredDocumentation",
  2824                "src": "3037:499:110",
  2825                "text": "@notice Emitted when a transaction is deposited from L1 to L2.\n         The parameters of this event are read by the rollup node and used to derive deposit\n         transactions on L2.\n @param from       Address that triggered the deposit transaction.\n @param to         Address that the deposit transaction is directed to.\n @param version    Version of this deposit transaction event.\n @param opaqueData ABI encoded deposit data to be parsed off-chain."
  2826              },
  2827              "eventSelector": "b3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32",
  2828              "name": "TransactionDeposited",
  2829              "nameLocation": "3547:20:110",
  2830              "parameters": {
  2831                "id": 59358,
  2832                "nodeType": "ParameterList",
  2833                "parameters": [
  2834                  {
  2835                    "constant": false,
  2836                    "id": 59351,
  2837                    "indexed": true,
  2838                    "mutability": "mutable",
  2839                    "name": "from",
  2840                    "nameLocation": "3584:4:110",
  2841                    "nodeType": "VariableDeclaration",
  2842                    "scope": 59359,
  2843                    "src": "3568:20:110",
  2844                    "stateVariable": false,
  2845                    "storageLocation": "default",
  2846                    "typeDescriptions": {
  2847                      "typeIdentifier": "t_address",
  2848                      "typeString": "address"
  2849                    },
  2850                    "typeName": {
  2851                      "id": 59350,
  2852                      "name": "address",
  2853                      "nodeType": "ElementaryTypeName",
  2854                      "src": "3568:7:110",
  2855                      "stateMutability": "nonpayable",
  2856                      "typeDescriptions": {
  2857                        "typeIdentifier": "t_address",
  2858                        "typeString": "address"
  2859                      }
  2860                    },
  2861                    "visibility": "internal"
  2862                  },
  2863                  {
  2864                    "constant": false,
  2865                    "id": 59353,
  2866                    "indexed": true,
  2867                    "mutability": "mutable",
  2868                    "name": "to",
  2869                    "nameLocation": "3606:2:110",
  2870                    "nodeType": "VariableDeclaration",
  2871                    "scope": 59359,
  2872                    "src": "3590:18:110",
  2873                    "stateVariable": false,
  2874                    "storageLocation": "default",
  2875                    "typeDescriptions": {
  2876                      "typeIdentifier": "t_address",
  2877                      "typeString": "address"
  2878                    },
  2879                    "typeName": {
  2880                      "id": 59352,
  2881                      "name": "address",
  2882                      "nodeType": "ElementaryTypeName",
  2883                      "src": "3590:7:110",
  2884                      "stateMutability": "nonpayable",
  2885                      "typeDescriptions": {
  2886                        "typeIdentifier": "t_address",
  2887                        "typeString": "address"
  2888                      }
  2889                    },
  2890                    "visibility": "internal"
  2891                  },
  2892                  {
  2893                    "constant": false,
  2894                    "id": 59355,
  2895                    "indexed": true,
  2896                    "mutability": "mutable",
  2897                    "name": "version",
  2898                    "nameLocation": "3626:7:110",
  2899                    "nodeType": "VariableDeclaration",
  2900                    "scope": 59359,
  2901                    "src": "3610:23:110",
  2902                    "stateVariable": false,
  2903                    "storageLocation": "default",
  2904                    "typeDescriptions": {
  2905                      "typeIdentifier": "t_uint256",
  2906                      "typeString": "uint256"
  2907                    },
  2908                    "typeName": {
  2909                      "id": 59354,
  2910                      "name": "uint256",
  2911                      "nodeType": "ElementaryTypeName",
  2912                      "src": "3610:7:110",
  2913                      "typeDescriptions": {
  2914                        "typeIdentifier": "t_uint256",
  2915                        "typeString": "uint256"
  2916                      }
  2917                    },
  2918                    "visibility": "internal"
  2919                  },
  2920                  {
  2921                    "constant": false,
  2922                    "id": 59357,
  2923                    "indexed": false,
  2924                    "mutability": "mutable",
  2925                    "name": "opaqueData",
  2926                    "nameLocation": "3641:10:110",
  2927                    "nodeType": "VariableDeclaration",
  2928                    "scope": 59359,
  2929                    "src": "3635:16:110",
  2930                    "stateVariable": false,
  2931                    "storageLocation": "default",
  2932                    "typeDescriptions": {
  2933                      "typeIdentifier": "t_bytes_memory_ptr",
  2934                      "typeString": "bytes"
  2935                    },
  2936                    "typeName": {
  2937                      "id": 59356,
  2938                      "name": "bytes",
  2939                      "nodeType": "ElementaryTypeName",
  2940                      "src": "3635:5:110",
  2941                      "typeDescriptions": {
  2942                        "typeIdentifier": "t_bytes_storage_ptr",
  2943                        "typeString": "bytes"
  2944                      }
  2945                    },
  2946                    "visibility": "internal"
  2947                  }
  2948                ],
  2949                "src": "3567:85:110"
  2950              }
  2951            },
  2952            {
  2953              "id": 59368,
  2954              "nodeType": "EventDefinition",
  2955              "src": "3957:97:110",
  2956              "nodes": [],
  2957              "anonymous": false,
  2958              "documentation": {
  2959                "id": 59360,
  2960                "nodeType": "StructuredDocumentation",
  2961                "src": "3659:293:110",
  2962                "text": "@notice Emitted when a withdrawal transaction is proven.\n @param withdrawalHash Hash of the withdrawal transaction.\n @param from           Address that triggered the withdrawal transaction.\n @param to             Address that the withdrawal transaction is directed to."
  2963              },
  2964              "eventSelector": "67a6208cfcc0801d50f6cbe764733f4fddf66ac0b04442061a8a8c0cb6b63f62",
  2965              "name": "WithdrawalProven",
  2966              "nameLocation": "3963:16:110",
  2967              "parameters": {
  2968                "id": 59367,
  2969                "nodeType": "ParameterList",
  2970                "parameters": [
  2971                  {
  2972                    "constant": false,
  2973                    "id": 59362,
  2974                    "indexed": true,
  2975                    "mutability": "mutable",
  2976                    "name": "withdrawalHash",
  2977                    "nameLocation": "3996:14:110",
  2978                    "nodeType": "VariableDeclaration",
  2979                    "scope": 59368,
  2980                    "src": "3980:30:110",
  2981                    "stateVariable": false,
  2982                    "storageLocation": "default",
  2983                    "typeDescriptions": {
  2984                      "typeIdentifier": "t_bytes32",
  2985                      "typeString": "bytes32"
  2986                    },
  2987                    "typeName": {
  2988                      "id": 59361,
  2989                      "name": "bytes32",
  2990                      "nodeType": "ElementaryTypeName",
  2991                      "src": "3980:7:110",
  2992                      "typeDescriptions": {
  2993                        "typeIdentifier": "t_bytes32",
  2994                        "typeString": "bytes32"
  2995                      }
  2996                    },
  2997                    "visibility": "internal"
  2998                  },
  2999                  {
  3000                    "constant": false,
  3001                    "id": 59364,
  3002                    "indexed": true,
  3003                    "mutability": "mutable",
  3004                    "name": "from",
  3005                    "nameLocation": "4028:4:110",
  3006                    "nodeType": "VariableDeclaration",
  3007                    "scope": 59368,
  3008                    "src": "4012:20:110",
  3009                    "stateVariable": false,
  3010                    "storageLocation": "default",
  3011                    "typeDescriptions": {
  3012                      "typeIdentifier": "t_address",
  3013                      "typeString": "address"
  3014                    },
  3015                    "typeName": {
  3016                      "id": 59363,
  3017                      "name": "address",
  3018                      "nodeType": "ElementaryTypeName",
  3019                      "src": "4012:7:110",
  3020                      "stateMutability": "nonpayable",
  3021                      "typeDescriptions": {
  3022                        "typeIdentifier": "t_address",
  3023                        "typeString": "address"
  3024                      }
  3025                    },
  3026                    "visibility": "internal"
  3027                  },
  3028                  {
  3029                    "constant": false,
  3030                    "id": 59366,
  3031                    "indexed": true,
  3032                    "mutability": "mutable",
  3033                    "name": "to",
  3034                    "nameLocation": "4050:2:110",
  3035                    "nodeType": "VariableDeclaration",
  3036                    "scope": 59368,
  3037                    "src": "4034:18:110",
  3038                    "stateVariable": false,
  3039                    "storageLocation": "default",
  3040                    "typeDescriptions": {
  3041                      "typeIdentifier": "t_address",
  3042                      "typeString": "address"
  3043                    },
  3044                    "typeName": {
  3045                      "id": 59365,
  3046                      "name": "address",
  3047                      "nodeType": "ElementaryTypeName",
  3048                      "src": "4034:7:110",
  3049                      "stateMutability": "nonpayable",
  3050                      "typeDescriptions": {
  3051                        "typeIdentifier": "t_address",
  3052                        "typeString": "address"
  3053                      }
  3054                    },
  3055                    "visibility": "internal"
  3056                  }
  3057                ],
  3058                "src": "3979:74:110"
  3059              }
  3060            },
  3061            {
  3062              "id": 59375,
  3063              "nodeType": "EventDefinition",
  3064              "src": "4275:72:110",
  3065              "nodes": [],
  3066              "anonymous": false,
  3067              "documentation": {
  3068                "id": 59369,
  3069                "nodeType": "StructuredDocumentation",
  3070                "src": "4060:210:110",
  3071                "text": "@notice Emitted when a withdrawal transaction is finalized.\n @param withdrawalHash Hash of the withdrawal transaction.\n @param success        Whether the withdrawal transaction was successful."
  3072              },
  3073              "eventSelector": "db5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b",
  3074              "name": "WithdrawalFinalized",
  3075              "nameLocation": "4281:19:110",
  3076              "parameters": {
  3077                "id": 59374,
  3078                "nodeType": "ParameterList",
  3079                "parameters": [
  3080                  {
  3081                    "constant": false,
  3082                    "id": 59371,
  3083                    "indexed": true,
  3084                    "mutability": "mutable",
  3085                    "name": "withdrawalHash",
  3086                    "nameLocation": "4317:14:110",
  3087                    "nodeType": "VariableDeclaration",
  3088                    "scope": 59375,
  3089                    "src": "4301:30:110",
  3090                    "stateVariable": false,
  3091                    "storageLocation": "default",
  3092                    "typeDescriptions": {
  3093                      "typeIdentifier": "t_bytes32",
  3094                      "typeString": "bytes32"
  3095                    },
  3096                    "typeName": {
  3097                      "id": 59370,
  3098                      "name": "bytes32",
  3099                      "nodeType": "ElementaryTypeName",
  3100                      "src": "4301:7:110",
  3101                      "typeDescriptions": {
  3102                        "typeIdentifier": "t_bytes32",
  3103                        "typeString": "bytes32"
  3104                      }
  3105                    },
  3106                    "visibility": "internal"
  3107                  },
  3108                  {
  3109                    "constant": false,
  3110                    "id": 59373,
  3111                    "indexed": false,
  3112                    "mutability": "mutable",
  3113                    "name": "success",
  3114                    "nameLocation": "4338:7:110",
  3115                    "nodeType": "VariableDeclaration",
  3116                    "scope": 59375,
  3117                    "src": "4333:12:110",
  3118                    "stateVariable": false,
  3119                    "storageLocation": "default",
  3120                    "typeDescriptions": {
  3121                      "typeIdentifier": "t_bool",
  3122                      "typeString": "bool"
  3123                    },
  3124                    "typeName": {
  3125                      "id": 59372,
  3126                      "name": "bool",
  3127                      "nodeType": "ElementaryTypeName",
  3128                      "src": "4333:4:110",
  3129                      "typeDescriptions": {
  3130                        "typeIdentifier": "t_bool",
  3131                        "typeString": "bool"
  3132                      }
  3133                    },
  3134                    "visibility": "internal"
  3135                  }
  3136                ],
  3137                "src": "4300:46:110"
  3138              }
  3139            },
  3140            {
  3141              "id": 59380,
  3142              "nodeType": "EventDefinition",
  3143              "src": "4474:30:110",
  3144              "nodes": [],
  3145              "anonymous": false,
  3146              "documentation": {
  3147                "id": 59376,
  3148                "nodeType": "StructuredDocumentation",
  3149                "src": "4353:116:110",
  3150                "text": "@notice Emitted when the pause is triggered.\n @param account Address of the account triggering the pause."
  3151              },
  3152              "eventSelector": "62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258",
  3153              "name": "Paused",
  3154              "nameLocation": "4480:6:110",
  3155              "parameters": {
  3156                "id": 59379,
  3157                "nodeType": "ParameterList",
  3158                "parameters": [
  3159                  {
  3160                    "constant": false,
  3161                    "id": 59378,
  3162                    "indexed": false,
  3163                    "mutability": "mutable",
  3164                    "name": "account",
  3165                    "nameLocation": "4495:7:110",
  3166                    "nodeType": "VariableDeclaration",
  3167                    "scope": 59380,
  3168                    "src": "4487:15:110",
  3169                    "stateVariable": false,
  3170                    "storageLocation": "default",
  3171                    "typeDescriptions": {
  3172                      "typeIdentifier": "t_address",
  3173                      "typeString": "address"
  3174                    },
  3175                    "typeName": {
  3176                      "id": 59377,
  3177                      "name": "address",
  3178                      "nodeType": "ElementaryTypeName",
  3179                      "src": "4487:7:110",
  3180                      "stateMutability": "nonpayable",
  3181                      "typeDescriptions": {
  3182                        "typeIdentifier": "t_address",
  3183                        "typeString": "address"
  3184                      }
  3185                    },
  3186                    "visibility": "internal"
  3187                  }
  3188                ],
  3189                "src": "4486:17:110"
  3190              }
  3191            },
  3192            {
  3193              "id": 59385,
  3194              "nodeType": "EventDefinition",
  3195              "src": "4630:32:110",
  3196              "nodes": [],
  3197              "anonymous": false,
  3198              "documentation": {
  3199                "id": 59381,
  3200                "nodeType": "StructuredDocumentation",
  3201                "src": "4510:115:110",
  3202                "text": "@notice Emitted when the pause is lifted.\n @param account Address of the account triggering the unpause."
  3203              },
  3204              "eventSelector": "5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa",
  3205              "name": "Unpaused",
  3206              "nameLocation": "4636:8:110",
  3207              "parameters": {
  3208                "id": 59384,
  3209                "nodeType": "ParameterList",
  3210                "parameters": [
  3211                  {
  3212                    "constant": false,
  3213                    "id": 59383,
  3214                    "indexed": false,
  3215                    "mutability": "mutable",
  3216                    "name": "account",
  3217                    "nameLocation": "4653:7:110",
  3218                    "nodeType": "VariableDeclaration",
  3219                    "scope": 59385,
  3220                    "src": "4645:15:110",
  3221                    "stateVariable": false,
  3222                    "storageLocation": "default",
  3223                    "typeDescriptions": {
  3224                      "typeIdentifier": "t_address",
  3225                      "typeString": "address"
  3226                    },
  3227                    "typeName": {
  3228                      "id": 59382,
  3229                      "name": "address",
  3230                      "nodeType": "ElementaryTypeName",
  3231                      "src": "4645:7:110",
  3232                      "stateMutability": "nonpayable",
  3233                      "typeDescriptions": {
  3234                        "typeIdentifier": "t_address",
  3235                        "typeString": "address"
  3236                      }
  3237                    },
  3238                    "visibility": "internal"
  3239                  }
  3240                ],
  3241                "src": "4644:17:110"
  3242              }
  3243            },
  3244            {
  3245              "id": 59397,
  3246              "nodeType": "ModifierDefinition",
  3247              "src": "4705:103:110",
  3248              "nodes": [],
  3249              "body": {
  3250                "id": 59396,
  3251                "nodeType": "Block",
  3252                "src": "4730:78:110",
  3253                "nodes": [],
  3254                "statements": [
  3255                  {
  3256                    "expression": {
  3257                      "arguments": [
  3258                        {
  3259                          "commonType": {
  3260                            "typeIdentifier": "t_bool",
  3261                            "typeString": "bool"
  3262                          },
  3263                          "id": 59391,
  3264                          "isConstant": false,
  3265                          "isLValue": false,
  3266                          "isPure": false,
  3267                          "lValueRequested": false,
  3268                          "leftExpression": {
  3269                            "id": 59389,
  3270                            "name": "paused",
  3271                            "nodeType": "Identifier",
  3272                            "overloadedDeclarations": [],
  3273                            "referencedDeclaration": 59337,
  3274                            "src": "4748:6:110",
  3275                            "typeDescriptions": {
  3276                              "typeIdentifier": "t_bool",
  3277                              "typeString": "bool"
  3278                            }
  3279                          },
  3280                          "nodeType": "BinaryOperation",
  3281                          "operator": "==",
  3282                          "rightExpression": {
  3283                            "hexValue": "66616c7365",
  3284                            "id": 59390,
  3285                            "isConstant": false,
  3286                            "isLValue": false,
  3287                            "isPure": true,
  3288                            "kind": "bool",
  3289                            "lValueRequested": false,
  3290                            "nodeType": "Literal",
  3291                            "src": "4758:5:110",
  3292                            "typeDescriptions": {
  3293                              "typeIdentifier": "t_bool",
  3294                              "typeString": "bool"
  3295                            },
  3296                            "value": "false"
  3297                          },
  3298                          "src": "4748:15:110",
  3299                          "typeDescriptions": {
  3300                            "typeIdentifier": "t_bool",
  3301                            "typeString": "bool"
  3302                          }
  3303                        },
  3304                        {
  3305                          "hexValue": "4f7074696d69736d506f7274616c3a20706175736564",
  3306                          "id": 59392,
  3307                          "isConstant": false,
  3308                          "isLValue": false,
  3309                          "isPure": true,
  3310                          "kind": "string",
  3311                          "lValueRequested": false,
  3312                          "nodeType": "Literal",
  3313                          "src": "4765:24:110",
  3314                          "typeDescriptions": {
  3315                            "typeIdentifier": "t_stringliteral_b66caa771ead292be27065b6fdbf17fc2b4f01cda6f3a71dafb599bc9ced165d",
  3316                            "typeString": "literal_string \"OptimismPortal: paused\""
  3317                          },
  3318                          "value": "OptimismPortal: paused"
  3319                        }
  3320                      ],
  3321                      "expression": {
  3322                        "argumentTypes": [
  3323                          {
  3324                            "typeIdentifier": "t_bool",
  3325                            "typeString": "bool"
  3326                          },
  3327                          {
  3328                            "typeIdentifier": "t_stringliteral_b66caa771ead292be27065b6fdbf17fc2b4f01cda6f3a71dafb599bc9ced165d",
  3329                            "typeString": "literal_string \"OptimismPortal: paused\""
  3330                          }
  3331                        ],
  3332                        "id": 59388,
  3333                        "name": "require",
  3334                        "nodeType": "Identifier",
  3335                        "overloadedDeclarations": [
  3336                          -18,
  3337                          -18
  3338                        ],
  3339                        "referencedDeclaration": -18,
  3340                        "src": "4740:7:110",
  3341                        "typeDescriptions": {
  3342                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  3343                          "typeString": "function (bool,string memory) pure"
  3344                        }
  3345                      },
  3346                      "id": 59393,
  3347                      "isConstant": false,
  3348                      "isLValue": false,
  3349                      "isPure": false,
  3350                      "kind": "functionCall",
  3351                      "lValueRequested": false,
  3352                      "names": [],
  3353                      "nodeType": "FunctionCall",
  3354                      "src": "4740:50:110",
  3355                      "tryCall": false,
  3356                      "typeDescriptions": {
  3357                        "typeIdentifier": "t_tuple$__$",
  3358                        "typeString": "tuple()"
  3359                      }
  3360                    },
  3361                    "id": 59394,
  3362                    "nodeType": "ExpressionStatement",
  3363                    "src": "4740:50:110"
  3364                  },
  3365                  {
  3366                    "id": 59395,
  3367                    "nodeType": "PlaceholderStatement",
  3368                    "src": "4800:1:110"
  3369                  }
  3370                ]
  3371              },
  3372              "documentation": {
  3373                "id": 59386,
  3374                "nodeType": "StructuredDocumentation",
  3375                "src": "4668:32:110",
  3376                "text": "@notice Reverts when paused."
  3377              },
  3378              "name": "whenNotPaused",
  3379              "nameLocation": "4714:13:110",
  3380              "parameters": {
  3381                "id": 59387,
  3382                "nodeType": "ParameterList",
  3383                "parameters": [],
  3384                "src": "4727:2:110"
  3385              },
  3386              "virtual": false,
  3387              "visibility": "internal"
  3388            },
  3389            {
  3390              "id": 59401,
  3391              "nodeType": "VariableDeclaration",
  3392              "src": "4878:41:110",
  3393              "nodes": [],
  3394              "baseFunctions": [
  3395                75668
  3396              ],
  3397              "constant": true,
  3398              "documentation": {
  3399                "id": 59398,
  3400                "nodeType": "StructuredDocumentation",
  3401                "src": "4814:59:110",
  3402                "text": "@notice Semantic version.\n @custom:semver 1.10.0"
  3403              },
  3404              "functionSelector": "54fd4d50",
  3405              "mutability": "constant",
  3406              "name": "version",
  3407              "nameLocation": "4901:7:110",
  3408              "scope": 59997,
  3409              "stateVariable": true,
  3410              "storageLocation": "default",
  3411              "typeDescriptions": {
  3412                "typeIdentifier": "t_string_memory_ptr",
  3413                "typeString": "string"
  3414              },
  3415              "typeName": {
  3416                "id": 59399,
  3417                "name": "string",
  3418                "nodeType": "ElementaryTypeName",
  3419                "src": "4878:6:110",
  3420                "typeDescriptions": {
  3421                  "typeIdentifier": "t_string_storage_ptr",
  3422                  "typeString": "string"
  3423                }
  3424              },
  3425              "value": {
  3426                "hexValue": "312e31302e30",
  3427                "id": 59400,
  3428                "isConstant": false,
  3429                "isLValue": false,
  3430                "isPure": true,
  3431                "kind": "string",
  3432                "lValueRequested": false,
  3433                "nodeType": "Literal",
  3434                "src": "4911:8:110",
  3435                "typeDescriptions": {
  3436                  "typeIdentifier": "t_stringliteral_0da5b5e4c121ebd588f58cd2a27b23bac1ec4a69fdf68241600b139ec2a21f64",
  3437                  "typeString": "literal_string \"1.10.0\""
  3438                },
  3439                "value": "1.10.0"
  3440              },
  3441              "visibility": "public"
  3442            },
  3443            {
  3444              "id": 59426,
  3445              "nodeType": "FunctionDefinition",
  3446              "src": "4982:219:110",
  3447              "nodes": [],
  3448              "body": {
  3449                "id": 59425,
  3450                "nodeType": "Block",
  3451                "src": "4996:205:110",
  3452                "nodes": [],
  3453                "statements": [
  3454                  {
  3455                    "expression": {
  3456                      "arguments": [
  3457                        {
  3458                          "arguments": [
  3459                            {
  3460                              "arguments": [
  3461                                {
  3462                                  "hexValue": "30",
  3463                                  "id": 59409,
  3464                                  "isConstant": false,
  3465                                  "isLValue": false,
  3466                                  "isPure": true,
  3467                                  "kind": "number",
  3468                                  "lValueRequested": false,
  3469                                  "nodeType": "Literal",
  3470                                  "src": "5065:1:110",
  3471                                  "typeDescriptions": {
  3472                                    "typeIdentifier": "t_rational_0_by_1",
  3473                                    "typeString": "int_const 0"
  3474                                  },
  3475                                  "value": "0"
  3476                                }
  3477                              ],
  3478                              "expression": {
  3479                                "argumentTypes": [
  3480                                  {
  3481                                    "typeIdentifier": "t_rational_0_by_1",
  3482                                    "typeString": "int_const 0"
  3483                                  }
  3484                                ],
  3485                                "id": 59408,
  3486                                "isConstant": false,
  3487                                "isLValue": false,
  3488                                "isPure": true,
  3489                                "lValueRequested": false,
  3490                                "nodeType": "ElementaryTypeNameExpression",
  3491                                "src": "5057:7:110",
  3492                                "typeDescriptions": {
  3493                                  "typeIdentifier": "t_type$_t_address_$",
  3494                                  "typeString": "type(address)"
  3495                                },
  3496                                "typeName": {
  3497                                  "id": 59407,
  3498                                  "name": "address",
  3499                                  "nodeType": "ElementaryTypeName",
  3500                                  "src": "5057:7:110",
  3501                                  "typeDescriptions": {}
  3502                                }
  3503                              },
  3504                              "id": 59410,
  3505                              "isConstant": false,
  3506                              "isLValue": false,
  3507                              "isPure": true,
  3508                              "kind": "typeConversion",
  3509                              "lValueRequested": false,
  3510                              "names": [],
  3511                              "nodeType": "FunctionCall",
  3512                              "src": "5057:10:110",
  3513                              "tryCall": false,
  3514                              "typeDescriptions": {
  3515                                "typeIdentifier": "t_address",
  3516                                "typeString": "address"
  3517                              }
  3518                            }
  3519                          ],
  3520                          "expression": {
  3521                            "argumentTypes": [
  3522                              {
  3523                                "typeIdentifier": "t_address",
  3524                                "typeString": "address"
  3525                              }
  3526                            ],
  3527                            "id": 59406,
  3528                            "name": "L2OutputOracle",
  3529                            "nodeType": "Identifier",
  3530                            "overloadedDeclarations": [],
  3531                            "referencedDeclaration": 59272,
  3532                            "src": "5042:14:110",
  3533                            "typeDescriptions": {
  3534                              "typeIdentifier": "t_type$_t_contract$_L2OutputOracle_$59272_$",
  3535                              "typeString": "type(contract L2OutputOracle)"
  3536                            }
  3537                          },
  3538                          "id": 59411,
  3539                          "isConstant": false,
  3540                          "isLValue": false,
  3541                          "isPure": true,
  3542                          "kind": "typeConversion",
  3543                          "lValueRequested": false,
  3544                          "names": [],
  3545                          "nodeType": "FunctionCall",
  3546                          "src": "5042:26:110",
  3547                          "tryCall": false,
  3548                          "typeDescriptions": {
  3549                            "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  3550                            "typeString": "contract L2OutputOracle"
  3551                          }
  3552                        },
  3553                        {
  3554                          "arguments": [
  3555                            {
  3556                              "hexValue": "30",
  3557                              "id": 59414,
  3558                              "isConstant": false,
  3559                              "isLValue": false,
  3560                              "isPure": true,
  3561                              "kind": "number",
  3562                              "lValueRequested": false,
  3563                              "nodeType": "Literal",
  3564                              "src": "5101:1:110",
  3565                              "typeDescriptions": {
  3566                                "typeIdentifier": "t_rational_0_by_1",
  3567                                "typeString": "int_const 0"
  3568                              },
  3569                              "value": "0"
  3570                            }
  3571                          ],
  3572                          "expression": {
  3573                            "argumentTypes": [
  3574                              {
  3575                                "typeIdentifier": "t_rational_0_by_1",
  3576                                "typeString": "int_const 0"
  3577                              }
  3578                            ],
  3579                            "id": 59413,
  3580                            "isConstant": false,
  3581                            "isLValue": false,
  3582                            "isPure": true,
  3583                            "lValueRequested": false,
  3584                            "nodeType": "ElementaryTypeNameExpression",
  3585                            "src": "5093:7:110",
  3586                            "typeDescriptions": {
  3587                              "typeIdentifier": "t_type$_t_address_$",
  3588                              "typeString": "type(address)"
  3589                            },
  3590                            "typeName": {
  3591                              "id": 59412,
  3592                              "name": "address",
  3593                              "nodeType": "ElementaryTypeName",
  3594                              "src": "5093:7:110",
  3595                              "typeDescriptions": {}
  3596                            }
  3597                          },
  3598                          "id": 59415,
  3599                          "isConstant": false,
  3600                          "isLValue": false,
  3601                          "isPure": true,
  3602                          "kind": "typeConversion",
  3603                          "lValueRequested": false,
  3604                          "names": [],
  3605                          "nodeType": "FunctionCall",
  3606                          "src": "5093:10:110",
  3607                          "tryCall": false,
  3608                          "typeDescriptions": {
  3609                            "typeIdentifier": "t_address",
  3610                            "typeString": "address"
  3611                          }
  3612                        },
  3613                        {
  3614                          "arguments": [
  3615                            {
  3616                              "arguments": [
  3617                                {
  3618                                  "hexValue": "30",
  3619                                  "id": 59419,
  3620                                  "isConstant": false,
  3621                                  "isLValue": false,
  3622                                  "isPure": true,
  3623                                  "kind": "number",
  3624                                  "lValueRequested": false,
  3625                                  "nodeType": "Literal",
  3626                                  "src": "5153:1:110",
  3627                                  "typeDescriptions": {
  3628                                    "typeIdentifier": "t_rational_0_by_1",
  3629                                    "typeString": "int_const 0"
  3630                                  },
  3631                                  "value": "0"
  3632                                }
  3633                              ],
  3634                              "expression": {
  3635                                "argumentTypes": [
  3636                                  {
  3637                                    "typeIdentifier": "t_rational_0_by_1",
  3638                                    "typeString": "int_const 0"
  3639                                  }
  3640                                ],
  3641                                "id": 59418,
  3642                                "isConstant": false,
  3643                                "isLValue": false,
  3644                                "isPure": true,
  3645                                "lValueRequested": false,
  3646                                "nodeType": "ElementaryTypeNameExpression",
  3647                                "src": "5145:7:110",
  3648                                "typeDescriptions": {
  3649                                  "typeIdentifier": "t_type$_t_address_$",
  3650                                  "typeString": "type(address)"
  3651                                },
  3652                                "typeName": {
  3653                                  "id": 59417,
  3654                                  "name": "address",
  3655                                  "nodeType": "ElementaryTypeName",
  3656                                  "src": "5145:7:110",
  3657                                  "typeDescriptions": {}
  3658                                }
  3659                              },
  3660                              "id": 59420,
  3661                              "isConstant": false,
  3662                              "isLValue": false,
  3663                              "isPure": true,
  3664                              "kind": "typeConversion",
  3665                              "lValueRequested": false,
  3666                              "names": [],
  3667                              "nodeType": "FunctionCall",
  3668                              "src": "5145:10:110",
  3669                              "tryCall": false,
  3670                              "typeDescriptions": {
  3671                                "typeIdentifier": "t_address",
  3672                                "typeString": "address"
  3673                              }
  3674                            }
  3675                          ],
  3676                          "expression": {
  3677                            "argumentTypes": [
  3678                              {
  3679                                "typeIdentifier": "t_address",
  3680                                "typeString": "address"
  3681                              }
  3682                            ],
  3683                            "id": 59416,
  3684                            "name": "SystemConfig",
  3685                            "nodeType": "Identifier",
  3686                            "overloadedDeclarations": [],
  3687                            "referencedDeclaration": 61393,
  3688                            "src": "5132:12:110",
  3689                            "typeDescriptions": {
  3690                              "typeIdentifier": "t_type$_t_contract$_SystemConfig_$61393_$",
  3691                              "typeString": "type(contract SystemConfig)"
  3692                            }
  3693                          },
  3694                          "id": 59421,
  3695                          "isConstant": false,
  3696                          "isLValue": false,
  3697                          "isPure": true,
  3698                          "kind": "typeConversion",
  3699                          "lValueRequested": false,
  3700                          "names": [],
  3701                          "nodeType": "FunctionCall",
  3702                          "src": "5132:24:110",
  3703                          "tryCall": false,
  3704                          "typeDescriptions": {
  3705                            "typeIdentifier": "t_contract$_SystemConfig_$61393",
  3706                            "typeString": "contract SystemConfig"
  3707                          }
  3708                        },
  3709                        {
  3710                          "hexValue": "74727565",
  3711                          "id": 59422,
  3712                          "isConstant": false,
  3713                          "isLValue": false,
  3714                          "isPure": true,
  3715                          "kind": "bool",
  3716                          "lValueRequested": false,
  3717                          "nodeType": "Literal",
  3718                          "src": "5179:4:110",
  3719                          "typeDescriptions": {
  3720                            "typeIdentifier": "t_bool",
  3721                            "typeString": "bool"
  3722                          },
  3723                          "value": "true"
  3724                        }
  3725                      ],
  3726                      "expression": {
  3727                        "argumentTypes": [
  3728                          {
  3729                            "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  3730                            "typeString": "contract L2OutputOracle"
  3731                          },
  3732                          {
  3733                            "typeIdentifier": "t_address",
  3734                            "typeString": "address"
  3735                          },
  3736                          {
  3737                            "typeIdentifier": "t_contract$_SystemConfig_$61393",
  3738                            "typeString": "contract SystemConfig"
  3739                          },
  3740                          {
  3741                            "typeIdentifier": "t_bool",
  3742                            "typeString": "bool"
  3743                          }
  3744                        ],
  3745                        "id": 59405,
  3746                        "name": "initialize",
  3747                        "nodeType": "Identifier",
  3748                        "overloadedDeclarations": [],
  3749                        "referencedDeclaration": 59469,
  3750                        "src": "5006:10:110",
  3751                        "typeDescriptions": {
  3752                          "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_L2OutputOracle_$59272_$_t_address_$_t_contract$_SystemConfig_$61393_$_t_bool_$returns$__$",
  3753                          "typeString": "function (contract L2OutputOracle,address,contract SystemConfig,bool)"
  3754                        }
  3755                      },
  3756                      "id": 59423,
  3757                      "isConstant": false,
  3758                      "isLValue": false,
  3759                      "isPure": false,
  3760                      "kind": "functionCall",
  3761                      "lValueRequested": false,
  3762                      "names": [
  3763                        "_l2Oracle",
  3764                        "_guardian",
  3765                        "_systemConfig",
  3766                        "_paused"
  3767                      ],
  3768                      "nodeType": "FunctionCall",
  3769                      "src": "5006:188:110",
  3770                      "tryCall": false,
  3771                      "typeDescriptions": {
  3772                        "typeIdentifier": "t_tuple$__$",
  3773                        "typeString": "tuple()"
  3774                      }
  3775                    },
  3776                    "id": 59424,
  3777                    "nodeType": "ExpressionStatement",
  3778                    "src": "5006:188:110"
  3779                  }
  3780                ]
  3781              },
  3782              "documentation": {
  3783                "id": 59402,
  3784                "nodeType": "StructuredDocumentation",
  3785                "src": "4926:51:110",
  3786                "text": "@notice Constructs the OptimismPortal contract."
  3787              },
  3788              "implemented": true,
  3789              "kind": "constructor",
  3790              "modifiers": [],
  3791              "name": "",
  3792              "nameLocation": "-1:-1:-1",
  3793              "parameters": {
  3794                "id": 59403,
  3795                "nodeType": "ParameterList",
  3796                "parameters": [],
  3797                "src": "4993:2:110"
  3798              },
  3799              "returnParameters": {
  3800                "id": 59404,
  3801                "nodeType": "ParameterList",
  3802                "parameters": [],
  3803                "src": "4996:0:110"
  3804              },
  3805              "scope": 59997,
  3806              "stateMutability": "nonpayable",
  3807              "virtual": false,
  3808              "visibility": "public"
  3809            },
  3810            {
  3811              "id": 59469,
  3812              "nodeType": "FunctionDefinition",
  3813              "src": "5491:423:110",
  3814              "nodes": [],
  3815              "body": {
  3816                "id": 59468,
  3817                "nodeType": "Block",
  3818                "src": "5700:214:110",
  3819                "nodes": [],
  3820                "statements": [
  3821                  {
  3822                    "expression": {
  3823                      "id": 59447,
  3824                      "isConstant": false,
  3825                      "isLValue": false,
  3826                      "isPure": false,
  3827                      "lValueRequested": false,
  3828                      "leftHandSide": {
  3829                        "id": 59444,
  3830                        "name": "l2Sender",
  3831                        "nodeType": "Identifier",
  3832                        "overloadedDeclarations": [],
  3833                        "referencedDeclaration": 59323,
  3834                        "src": "5710:8:110",
  3835                        "typeDescriptions": {
  3836                          "typeIdentifier": "t_address",
  3837                          "typeString": "address"
  3838                        }
  3839                      },
  3840                      "nodeType": "Assignment",
  3841                      "operator": "=",
  3842                      "rightHandSide": {
  3843                        "expression": {
  3844                          "id": 59445,
  3845                          "name": "Constants",
  3846                          "nodeType": "Identifier",
  3847                          "overloadedDeclarations": [],
  3848                          "referencedDeclaration": 69571,
  3849                          "src": "5721:9:110",
  3850                          "typeDescriptions": {
  3851                            "typeIdentifier": "t_type$_t_contract$_Constants_$69571_$",
  3852                            "typeString": "type(library Constants)"
  3853                          }
  3854                        },
  3855                        "id": 59446,
  3856                        "isConstant": false,
  3857                        "isLValue": false,
  3858                        "isPure": false,
  3859                        "lValueRequested": false,
  3860                        "memberName": "DEFAULT_L2_SENDER",
  3861                        "nodeType": "MemberAccess",
  3862                        "referencedDeclaration": 69529,
  3863                        "src": "5721:27:110",
  3864                        "typeDescriptions": {
  3865                          "typeIdentifier": "t_address",
  3866                          "typeString": "address"
  3867                        }
  3868                      },
  3869                      "src": "5710:38:110",
  3870                      "typeDescriptions": {
  3871                        "typeIdentifier": "t_address",
  3872                        "typeString": "address"
  3873                      }
  3874                    },
  3875                    "id": 59448,
  3876                    "nodeType": "ExpressionStatement",
  3877                    "src": "5710:38:110"
  3878                  },
  3879                  {
  3880                    "expression": {
  3881                      "id": 59451,
  3882                      "isConstant": false,
  3883                      "isLValue": false,
  3884                      "isPure": false,
  3885                      "lValueRequested": false,
  3886                      "leftHandSide": {
  3887                        "id": 59449,
  3888                        "name": "l2Oracle",
  3889                        "nodeType": "Identifier",
  3890                        "overloadedDeclarations": [],
  3891                        "referencedDeclaration": 59341,
  3892                        "src": "5758:8:110",
  3893                        "typeDescriptions": {
  3894                          "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  3895                          "typeString": "contract L2OutputOracle"
  3896                        }
  3897                      },
  3898                      "nodeType": "Assignment",
  3899                      "operator": "=",
  3900                      "rightHandSide": {
  3901                        "id": 59450,
  3902                        "name": "_l2Oracle",
  3903                        "nodeType": "Identifier",
  3904                        "overloadedDeclarations": [],
  3905                        "referencedDeclaration": 59430,
  3906                        "src": "5769:9:110",
  3907                        "typeDescriptions": {
  3908                          "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  3909                          "typeString": "contract L2OutputOracle"
  3910                        }
  3911                      },
  3912                      "src": "5758:20:110",
  3913                      "typeDescriptions": {
  3914                        "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  3915                        "typeString": "contract L2OutputOracle"
  3916                      }
  3917                    },
  3918                    "id": 59452,
  3919                    "nodeType": "ExpressionStatement",
  3920                    "src": "5758:20:110"
  3921                  },
  3922                  {
  3923                    "expression": {
  3924                      "id": 59455,
  3925                      "isConstant": false,
  3926                      "isLValue": false,
  3927                      "isPure": false,
  3928                      "lValueRequested": false,
  3929                      "leftHandSide": {
  3930                        "id": 59453,
  3931                        "name": "systemConfig",
  3932                        "nodeType": "Identifier",
  3933                        "overloadedDeclarations": [],
  3934                        "referencedDeclaration": 59345,
  3935                        "src": "5788:12:110",
  3936                        "typeDescriptions": {
  3937                          "typeIdentifier": "t_contract$_SystemConfig_$61393",
  3938                          "typeString": "contract SystemConfig"
  3939                        }
  3940                      },
  3941                      "nodeType": "Assignment",
  3942                      "operator": "=",
  3943                      "rightHandSide": {
  3944                        "id": 59454,
  3945                        "name": "_systemConfig",
  3946                        "nodeType": "Identifier",
  3947                        "overloadedDeclarations": [],
  3948                        "referencedDeclaration": 59435,
  3949                        "src": "5803:13:110",
  3950                        "typeDescriptions": {
  3951                          "typeIdentifier": "t_contract$_SystemConfig_$61393",
  3952                          "typeString": "contract SystemConfig"
  3953                        }
  3954                      },
  3955                      "src": "5788:28:110",
  3956                      "typeDescriptions": {
  3957                        "typeIdentifier": "t_contract$_SystemConfig_$61393",
  3958                        "typeString": "contract SystemConfig"
  3959                      }
  3960                    },
  3961                    "id": 59456,
  3962                    "nodeType": "ExpressionStatement",
  3963                    "src": "5788:28:110"
  3964                  },
  3965                  {
  3966                    "expression": {
  3967                      "id": 59459,
  3968                      "isConstant": false,
  3969                      "isLValue": false,
  3970                      "isPure": false,
  3971                      "lValueRequested": false,
  3972                      "leftHandSide": {
  3973                        "id": 59457,
  3974                        "name": "guardian",
  3975                        "nodeType": "Identifier",
  3976                        "overloadedDeclarations": [],
  3977                        "referencedDeclaration": 59348,
  3978                        "src": "5826:8:110",
  3979                        "typeDescriptions": {
  3980                          "typeIdentifier": "t_address",
  3981                          "typeString": "address"
  3982                        }
  3983                      },
  3984                      "nodeType": "Assignment",
  3985                      "operator": "=",
  3986                      "rightHandSide": {
  3987                        "id": 59458,
  3988                        "name": "_guardian",
  3989                        "nodeType": "Identifier",
  3990                        "overloadedDeclarations": [],
  3991                        "referencedDeclaration": 59432,
  3992                        "src": "5837:9:110",
  3993                        "typeDescriptions": {
  3994                          "typeIdentifier": "t_address",
  3995                          "typeString": "address"
  3996                        }
  3997                      },
  3998                      "src": "5826:20:110",
  3999                      "typeDescriptions": {
  4000                        "typeIdentifier": "t_address",
  4001                        "typeString": "address"
  4002                      }
  4003                    },
  4004                    "id": 59460,
  4005                    "nodeType": "ExpressionStatement",
  4006                    "src": "5826:20:110"
  4007                  },
  4008                  {
  4009                    "expression": {
  4010                      "id": 59463,
  4011                      "isConstant": false,
  4012                      "isLValue": false,
  4013                      "isPure": false,
  4014                      "lValueRequested": false,
  4015                      "leftHandSide": {
  4016                        "id": 59461,
  4017                        "name": "paused",
  4018                        "nodeType": "Identifier",
  4019                        "overloadedDeclarations": [],
  4020                        "referencedDeclaration": 59337,
  4021                        "src": "5856:6:110",
  4022                        "typeDescriptions": {
  4023                          "typeIdentifier": "t_bool",
  4024                          "typeString": "bool"
  4025                        }
  4026                      },
  4027                      "nodeType": "Assignment",
  4028                      "operator": "=",
  4029                      "rightHandSide": {
  4030                        "id": 59462,
  4031                        "name": "_paused",
  4032                        "nodeType": "Identifier",
  4033                        "overloadedDeclarations": [],
  4034                        "referencedDeclaration": 59437,
  4035                        "src": "5865:7:110",
  4036                        "typeDescriptions": {
  4037                          "typeIdentifier": "t_bool",
  4038                          "typeString": "bool"
  4039                        }
  4040                      },
  4041                      "src": "5856:16:110",
  4042                      "typeDescriptions": {
  4043                        "typeIdentifier": "t_bool",
  4044                        "typeString": "bool"
  4045                      }
  4046                    },
  4047                    "id": 59464,
  4048                    "nodeType": "ExpressionStatement",
  4049                    "src": "5856:16:110"
  4050                  },
  4051                  {
  4052                    "expression": {
  4053                      "arguments": [],
  4054                      "expression": {
  4055                        "argumentTypes": [],
  4056                        "id": 59465,
  4057                        "name": "__ResourceMetering_init",
  4058                        "nodeType": "Identifier",
  4059                        "overloadedDeclarations": [],
  4060                        "referencedDeclaration": 60598,
  4061                        "src": "5882:23:110",
  4062                        "typeDescriptions": {
  4063                          "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
  4064                          "typeString": "function ()"
  4065                        }
  4066                      },
  4067                      "id": 59466,
  4068                      "isConstant": false,
  4069                      "isLValue": false,
  4070                      "isPure": false,
  4071                      "kind": "functionCall",
  4072                      "lValueRequested": false,
  4073                      "names": [],
  4074                      "nodeType": "FunctionCall",
  4075                      "src": "5882:25:110",
  4076                      "tryCall": false,
  4077                      "typeDescriptions": {
  4078                        "typeIdentifier": "t_tuple$__$",
  4079                        "typeString": "tuple()"
  4080                      }
  4081                    },
  4082                    "id": 59467,
  4083                    "nodeType": "ExpressionStatement",
  4084                    "src": "5882:25:110"
  4085                  }
  4086                ]
  4087              },
  4088              "documentation": {
  4089                "id": 59427,
  4090                "nodeType": "StructuredDocumentation",
  4091                "src": "5207:279:110",
  4092                "text": "@notice Initializer.\n @param _l2Oracle Address of the L2OutputOracle contract.\n @param _guardian Address that can pause withdrawals.\n @param _paused Sets the contract's pausability state.\n @param _systemConfig Address of the SystemConfig contract."
  4093              },
  4094              "functionSelector": "fecf9734",
  4095              "implemented": true,
  4096              "kind": "function",
  4097              "modifiers": [
  4098                {
  4099                  "arguments": [
  4100                    {
  4101                      "expression": {
  4102                        "id": 59440,
  4103                        "name": "Constants",
  4104                        "nodeType": "Identifier",
  4105                        "overloadedDeclarations": [],
  4106                        "referencedDeclaration": 69571,
  4107                        "src": "5673:9:110",
  4108                        "typeDescriptions": {
  4109                          "typeIdentifier": "t_type$_t_contract$_Constants_$69571_$",
  4110                          "typeString": "type(library Constants)"
  4111                        }
  4112                      },
  4113                      "id": 59441,
  4114                      "isConstant": false,
  4115                      "isLValue": false,
  4116                      "isPure": false,
  4117                      "lValueRequested": false,
  4118                      "memberName": "INITIALIZER",
  4119                      "nodeType": "MemberAccess",
  4120                      "referencedDeclaration": 69570,
  4121                      "src": "5673:21:110",
  4122                      "typeDescriptions": {
  4123                        "typeIdentifier": "t_uint8",
  4124                        "typeString": "uint8"
  4125                      }
  4126                    }
  4127                  ],
  4128                  "id": 59442,
  4129                  "kind": "modifierInvocation",
  4130                  "modifierName": {
  4131                    "id": 59439,
  4132                    "name": "reinitializer",
  4133                    "nodeType": "IdentifierPath",
  4134                    "referencedDeclaration": 32197,
  4135                    "src": "5659:13:110"
  4136                  },
  4137                  "nodeType": "ModifierInvocation",
  4138                  "src": "5659:36:110"
  4139                }
  4140              ],
  4141              "name": "initialize",
  4142              "nameLocation": "5500:10:110",
  4143              "parameters": {
  4144                "id": 59438,
  4145                "nodeType": "ParameterList",
  4146                "parameters": [
  4147                  {
  4148                    "constant": false,
  4149                    "id": 59430,
  4150                    "mutability": "mutable",
  4151                    "name": "_l2Oracle",
  4152                    "nameLocation": "5535:9:110",
  4153                    "nodeType": "VariableDeclaration",
  4154                    "scope": 59469,
  4155                    "src": "5520:24:110",
  4156                    "stateVariable": false,
  4157                    "storageLocation": "default",
  4158                    "typeDescriptions": {
  4159                      "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  4160                      "typeString": "contract L2OutputOracle"
  4161                    },
  4162                    "typeName": {
  4163                      "id": 59429,
  4164                      "nodeType": "UserDefinedTypeName",
  4165                      "pathNode": {
  4166                        "id": 59428,
  4167                        "name": "L2OutputOracle",
  4168                        "nodeType": "IdentifierPath",
  4169                        "referencedDeclaration": 59272,
  4170                        "src": "5520:14:110"
  4171                      },
  4172                      "referencedDeclaration": 59272,
  4173                      "src": "5520:14:110",
  4174                      "typeDescriptions": {
  4175                        "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  4176                        "typeString": "contract L2OutputOracle"
  4177                      }
  4178                    },
  4179                    "visibility": "internal"
  4180                  },
  4181                  {
  4182                    "constant": false,
  4183                    "id": 59432,
  4184                    "mutability": "mutable",
  4185                    "name": "_guardian",
  4186                    "nameLocation": "5562:9:110",
  4187                    "nodeType": "VariableDeclaration",
  4188                    "scope": 59469,
  4189                    "src": "5554:17:110",
  4190                    "stateVariable": false,
  4191                    "storageLocation": "default",
  4192                    "typeDescriptions": {
  4193                      "typeIdentifier": "t_address",
  4194                      "typeString": "address"
  4195                    },
  4196                    "typeName": {
  4197                      "id": 59431,
  4198                      "name": "address",
  4199                      "nodeType": "ElementaryTypeName",
  4200                      "src": "5554:7:110",
  4201                      "stateMutability": "nonpayable",
  4202                      "typeDescriptions": {
  4203                        "typeIdentifier": "t_address",
  4204                        "typeString": "address"
  4205                      }
  4206                    },
  4207                    "visibility": "internal"
  4208                  },
  4209                  {
  4210                    "constant": false,
  4211                    "id": 59435,
  4212                    "mutability": "mutable",
  4213                    "name": "_systemConfig",
  4214                    "nameLocation": "5594:13:110",
  4215                    "nodeType": "VariableDeclaration",
  4216                    "scope": 59469,
  4217                    "src": "5581:26:110",
  4218                    "stateVariable": false,
  4219                    "storageLocation": "default",
  4220                    "typeDescriptions": {
  4221                      "typeIdentifier": "t_contract$_SystemConfig_$61393",
  4222                      "typeString": "contract SystemConfig"
  4223                    },
  4224                    "typeName": {
  4225                      "id": 59434,
  4226                      "nodeType": "UserDefinedTypeName",
  4227                      "pathNode": {
  4228                        "id": 59433,
  4229                        "name": "SystemConfig",
  4230                        "nodeType": "IdentifierPath",
  4231                        "referencedDeclaration": 61393,
  4232                        "src": "5581:12:110"
  4233                      },
  4234                      "referencedDeclaration": 61393,
  4235                      "src": "5581:12:110",
  4236                      "typeDescriptions": {
  4237                        "typeIdentifier": "t_contract$_SystemConfig_$61393",
  4238                        "typeString": "contract SystemConfig"
  4239                      }
  4240                    },
  4241                    "visibility": "internal"
  4242                  },
  4243                  {
  4244                    "constant": false,
  4245                    "id": 59437,
  4246                    "mutability": "mutable",
  4247                    "name": "_paused",
  4248                    "nameLocation": "5622:7:110",
  4249                    "nodeType": "VariableDeclaration",
  4250                    "scope": 59469,
  4251                    "src": "5617:12:110",
  4252                    "stateVariable": false,
  4253                    "storageLocation": "default",
  4254                    "typeDescriptions": {
  4255                      "typeIdentifier": "t_bool",
  4256                      "typeString": "bool"
  4257                    },
  4258                    "typeName": {
  4259                      "id": 59436,
  4260                      "name": "bool",
  4261                      "nodeType": "ElementaryTypeName",
  4262                      "src": "5617:4:110",
  4263                      "typeDescriptions": {
  4264                        "typeIdentifier": "t_bool",
  4265                        "typeString": "bool"
  4266                      }
  4267                    },
  4268                    "visibility": "internal"
  4269                  }
  4270                ],
  4271                "src": "5510:125:110"
  4272              },
  4273              "returnParameters": {
  4274                "id": 59443,
  4275                "nodeType": "ParameterList",
  4276                "parameters": [],
  4277                "src": "5700:0:110"
  4278              },
  4279              "scope": 59997,
  4280              "stateMutability": "nonpayable",
  4281              "virtual": false,
  4282              "visibility": "public"
  4283            },
  4284            {
  4285              "id": 59479,
  4286              "nodeType": "FunctionDefinition",
  4287              "src": "5989:92:110",
  4288              "nodes": [],
  4289              "body": {
  4290                "id": 59478,
  4291                "nodeType": "Block",
  4292                "src": "6049:32:110",
  4293                "nodes": [],
  4294                "statements": [
  4295                  {
  4296                    "expression": {
  4297                      "id": 59476,
  4298                      "name": "l2Oracle",
  4299                      "nodeType": "Identifier",
  4300                      "overloadedDeclarations": [],
  4301                      "referencedDeclaration": 59341,
  4302                      "src": "6066:8:110",
  4303                      "typeDescriptions": {
  4304                        "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  4305                        "typeString": "contract L2OutputOracle"
  4306                      }
  4307                    },
  4308                    "functionReturnParameters": 59475,
  4309                    "id": 59477,
  4310                    "nodeType": "Return",
  4311                    "src": "6059:15:110"
  4312                  }
  4313                ]
  4314              },
  4315              "documentation": {
  4316                "id": 59470,
  4317                "nodeType": "StructuredDocumentation",
  4318                "src": "5920:64:110",
  4319                "text": "@notice Getter for the L2OutputOracle\n @custom:legacy"
  4320              },
  4321              "functionSelector": "001c2ff6",
  4322              "implemented": true,
  4323              "kind": "function",
  4324              "modifiers": [],
  4325              "name": "L2_ORACLE",
  4326              "nameLocation": "5998:9:110",
  4327              "parameters": {
  4328                "id": 59471,
  4329                "nodeType": "ParameterList",
  4330                "parameters": [],
  4331                "src": "6007:2:110"
  4332              },
  4333              "returnParameters": {
  4334                "id": 59475,
  4335                "nodeType": "ParameterList",
  4336                "parameters": [
  4337                  {
  4338                    "constant": false,
  4339                    "id": 59474,
  4340                    "mutability": "mutable",
  4341                    "name": "",
  4342                    "nameLocation": "-1:-1:-1",
  4343                    "nodeType": "VariableDeclaration",
  4344                    "scope": 59479,
  4345                    "src": "6033:14:110",
  4346                    "stateVariable": false,
  4347                    "storageLocation": "default",
  4348                    "typeDescriptions": {
  4349                      "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  4350                      "typeString": "contract L2OutputOracle"
  4351                    },
  4352                    "typeName": {
  4353                      "id": 59473,
  4354                      "nodeType": "UserDefinedTypeName",
  4355                      "pathNode": {
  4356                        "id": 59472,
  4357                        "name": "L2OutputOracle",
  4358                        "nodeType": "IdentifierPath",
  4359                        "referencedDeclaration": 59272,
  4360                        "src": "6033:14:110"
  4361                      },
  4362                      "referencedDeclaration": 59272,
  4363                      "src": "6033:14:110",
  4364                      "typeDescriptions": {
  4365                        "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  4366                        "typeString": "contract L2OutputOracle"
  4367                      }
  4368                    },
  4369                    "visibility": "internal"
  4370                  }
  4371                ],
  4372                "src": "6032:16:110"
  4373              },
  4374              "scope": 59997,
  4375              "stateMutability": "view",
  4376              "virtual": false,
  4377              "visibility": "external"
  4378            },
  4379            {
  4380              "id": 59489,
  4381              "nodeType": "FunctionDefinition",
  4382              "src": "6154:98:110",
  4383              "nodes": [],
  4384              "body": {
  4385                "id": 59488,
  4386                "nodeType": "Block",
  4387                "src": "6216:36:110",
  4388                "nodes": [],
  4389                "statements": [
  4390                  {
  4391                    "expression": {
  4392                      "id": 59486,
  4393                      "name": "systemConfig",
  4394                      "nodeType": "Identifier",
  4395                      "overloadedDeclarations": [],
  4396                      "referencedDeclaration": 59345,
  4397                      "src": "6233:12:110",
  4398                      "typeDescriptions": {
  4399                        "typeIdentifier": "t_contract$_SystemConfig_$61393",
  4400                        "typeString": "contract SystemConfig"
  4401                      }
  4402                    },
  4403                    "functionReturnParameters": 59485,
  4404                    "id": 59487,
  4405                    "nodeType": "Return",
  4406                    "src": "6226:19:110"
  4407                  }
  4408                ]
  4409              },
  4410              "documentation": {
  4411                "id": 59480,
  4412                "nodeType": "StructuredDocumentation",
  4413                "src": "6087:62:110",
  4414                "text": "@notice Getter for the SystemConfig\n @custom:legacy"
  4415              },
  4416              "functionSelector": "f0498750",
  4417              "implemented": true,
  4418              "kind": "function",
  4419              "modifiers": [],
  4420              "name": "SYSTEM_CONFIG",
  4421              "nameLocation": "6163:13:110",
  4422              "parameters": {
  4423                "id": 59481,
  4424                "nodeType": "ParameterList",
  4425                "parameters": [],
  4426                "src": "6176:2:110"
  4427              },
  4428              "returnParameters": {
  4429                "id": 59485,
  4430                "nodeType": "ParameterList",
  4431                "parameters": [
  4432                  {
  4433                    "constant": false,
  4434                    "id": 59484,
  4435                    "mutability": "mutable",
  4436                    "name": "",
  4437                    "nameLocation": "-1:-1:-1",
  4438                    "nodeType": "VariableDeclaration",
  4439                    "scope": 59489,
  4440                    "src": "6202:12:110",
  4441                    "stateVariable": false,
  4442                    "storageLocation": "default",
  4443                    "typeDescriptions": {
  4444                      "typeIdentifier": "t_contract$_SystemConfig_$61393",
  4445                      "typeString": "contract SystemConfig"
  4446                    },
  4447                    "typeName": {
  4448                      "id": 59483,
  4449                      "nodeType": "UserDefinedTypeName",
  4450                      "pathNode": {
  4451                        "id": 59482,
  4452                        "name": "SystemConfig",
  4453                        "nodeType": "IdentifierPath",
  4454                        "referencedDeclaration": 61393,
  4455                        "src": "6202:12:110"
  4456                      },
  4457                      "referencedDeclaration": 61393,
  4458                      "src": "6202:12:110",
  4459                      "typeDescriptions": {
  4460                        "typeIdentifier": "t_contract$_SystemConfig_$61393",
  4461                        "typeString": "contract SystemConfig"
  4462                      }
  4463                    },
  4464                    "visibility": "internal"
  4465                  }
  4466                ],
  4467                "src": "6201:14:110"
  4468              },
  4469              "scope": 59997,
  4470              "stateMutability": "view",
  4471              "virtual": false,
  4472              "visibility": "external"
  4473            },
  4474            {
  4475              "id": 59498,
  4476              "nodeType": "FunctionDefinition",
  4477              "src": "6321:84:110",
  4478              "nodes": [],
  4479              "body": {
  4480                "id": 59497,
  4481                "nodeType": "Block",
  4482                "src": "6373:32:110",
  4483                "nodes": [],
  4484                "statements": [
  4485                  {
  4486                    "expression": {
  4487                      "id": 59495,
  4488                      "name": "guardian",
  4489                      "nodeType": "Identifier",
  4490                      "overloadedDeclarations": [],
  4491                      "referencedDeclaration": 59348,
  4492                      "src": "6390:8:110",
  4493                      "typeDescriptions": {
  4494                        "typeIdentifier": "t_address",
  4495                        "typeString": "address"
  4496                      }
  4497                    },
  4498                    "functionReturnParameters": 59494,
  4499                    "id": 59496,
  4500                    "nodeType": "Return",
  4501                    "src": "6383:15:110"
  4502                  }
  4503                ]
  4504              },
  4505              "documentation": {
  4506                "id": 59490,
  4507                "nodeType": "StructuredDocumentation",
  4508                "src": "6258:58:110",
  4509                "text": "@notice Getter for the Guardian\n @custom:legacy"
  4510              },
  4511              "functionSelector": "724c184c",
  4512              "implemented": true,
  4513              "kind": "function",
  4514              "modifiers": [],
  4515              "name": "GUARDIAN",
  4516              "nameLocation": "6330:8:110",
  4517              "parameters": {
  4518                "id": 59491,
  4519                "nodeType": "ParameterList",
  4520                "parameters": [],
  4521                "src": "6338:2:110"
  4522              },
  4523              "returnParameters": {
  4524                "id": 59494,
  4525                "nodeType": "ParameterList",
  4526                "parameters": [
  4527                  {
  4528                    "constant": false,
  4529                    "id": 59493,
  4530                    "mutability": "mutable",
  4531                    "name": "",
  4532                    "nameLocation": "-1:-1:-1",
  4533                    "nodeType": "VariableDeclaration",
  4534                    "scope": 59498,
  4535                    "src": "6364:7:110",
  4536                    "stateVariable": false,
  4537                    "storageLocation": "default",
  4538                    "typeDescriptions": {
  4539                      "typeIdentifier": "t_address",
  4540                      "typeString": "address"
  4541                    },
  4542                    "typeName": {
  4543                      "id": 59492,
  4544                      "name": "address",
  4545                      "nodeType": "ElementaryTypeName",
  4546                      "src": "6364:7:110",
  4547                      "stateMutability": "nonpayable",
  4548                      "typeDescriptions": {
  4549                        "typeIdentifier": "t_address",
  4550                        "typeString": "address"
  4551                      }
  4552                    },
  4553                    "visibility": "internal"
  4554                  }
  4555                ],
  4556                "src": "6363:9:110"
  4557              },
  4558              "scope": 59997,
  4559              "stateMutability": "view",
  4560              "virtual": false,
  4561              "visibility": "external"
  4562            },
  4563            {
  4564              "id": 59520,
  4565              "nodeType": "FunctionDefinition",
  4566              "src": "6447:173:110",
  4567              "nodes": [],
  4568              "body": {
  4569                "id": 59519,
  4570                "nodeType": "Block",
  4571                "src": "6473:147:110",
  4572                "nodes": [],
  4573                "statements": [
  4574                  {
  4575                    "expression": {
  4576                      "arguments": [
  4577                        {
  4578                          "commonType": {
  4579                            "typeIdentifier": "t_address",
  4580                            "typeString": "address"
  4581                          },
  4582                          "id": 59506,
  4583                          "isConstant": false,
  4584                          "isLValue": false,
  4585                          "isPure": false,
  4586                          "lValueRequested": false,
  4587                          "leftExpression": {
  4588                            "expression": {
  4589                              "id": 59503,
  4590                              "name": "msg",
  4591                              "nodeType": "Identifier",
  4592                              "overloadedDeclarations": [],
  4593                              "referencedDeclaration": -15,
  4594                              "src": "6491:3:110",
  4595                              "typeDescriptions": {
  4596                                "typeIdentifier": "t_magic_message",
  4597                                "typeString": "msg"
  4598                              }
  4599                            },
  4600                            "id": 59504,
  4601                            "isConstant": false,
  4602                            "isLValue": false,
  4603                            "isPure": false,
  4604                            "lValueRequested": false,
  4605                            "memberName": "sender",
  4606                            "nodeType": "MemberAccess",
  4607                            "src": "6491:10:110",
  4608                            "typeDescriptions": {
  4609                              "typeIdentifier": "t_address",
  4610                              "typeString": "address"
  4611                            }
  4612                          },
  4613                          "nodeType": "BinaryOperation",
  4614                          "operator": "==",
  4615                          "rightExpression": {
  4616                            "id": 59505,
  4617                            "name": "guardian",
  4618                            "nodeType": "Identifier",
  4619                            "overloadedDeclarations": [],
  4620                            "referencedDeclaration": 59348,
  4621                            "src": "6505:8:110",
  4622                            "typeDescriptions": {
  4623                              "typeIdentifier": "t_address",
  4624                              "typeString": "address"
  4625                            }
  4626                          },
  4627                          "src": "6491:22:110",
  4628                          "typeDescriptions": {
  4629                            "typeIdentifier": "t_bool",
  4630                            "typeString": "bool"
  4631                          }
  4632                        },
  4633                        {
  4634                          "hexValue": "4f7074696d69736d506f7274616c3a206f6e6c7920677561726469616e2063616e207061757365",
  4635                          "id": 59507,
  4636                          "isConstant": false,
  4637                          "isLValue": false,
  4638                          "isPure": true,
  4639                          "kind": "string",
  4640                          "lValueRequested": false,
  4641                          "nodeType": "Literal",
  4642                          "src": "6515:41:110",
  4643                          "typeDescriptions": {
  4644                            "typeIdentifier": "t_stringliteral_a662ad7462f0018e8b171ba19146984ad716c45a2c8d7c903bdd6e1628b95f08",
  4645                            "typeString": "literal_string \"OptimismPortal: only guardian can pause\""
  4646                          },
  4647                          "value": "OptimismPortal: only guardian can pause"
  4648                        }
  4649                      ],
  4650                      "expression": {
  4651                        "argumentTypes": [
  4652                          {
  4653                            "typeIdentifier": "t_bool",
  4654                            "typeString": "bool"
  4655                          },
  4656                          {
  4657                            "typeIdentifier": "t_stringliteral_a662ad7462f0018e8b171ba19146984ad716c45a2c8d7c903bdd6e1628b95f08",
  4658                            "typeString": "literal_string \"OptimismPortal: only guardian can pause\""
  4659                          }
  4660                        ],
  4661                        "id": 59502,
  4662                        "name": "require",
  4663                        "nodeType": "Identifier",
  4664                        "overloadedDeclarations": [
  4665                          -18,
  4666                          -18
  4667                        ],
  4668                        "referencedDeclaration": -18,
  4669                        "src": "6483:7:110",
  4670                        "typeDescriptions": {
  4671                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  4672                          "typeString": "function (bool,string memory) pure"
  4673                        }
  4674                      },
  4675                      "id": 59508,
  4676                      "isConstant": false,
  4677                      "isLValue": false,
  4678                      "isPure": false,
  4679                      "kind": "functionCall",
  4680                      "lValueRequested": false,
  4681                      "names": [],
  4682                      "nodeType": "FunctionCall",
  4683                      "src": "6483:74:110",
  4684                      "tryCall": false,
  4685                      "typeDescriptions": {
  4686                        "typeIdentifier": "t_tuple$__$",
  4687                        "typeString": "tuple()"
  4688                      }
  4689                    },
  4690                    "id": 59509,
  4691                    "nodeType": "ExpressionStatement",
  4692                    "src": "6483:74:110"
  4693                  },
  4694                  {
  4695                    "expression": {
  4696                      "id": 59512,
  4697                      "isConstant": false,
  4698                      "isLValue": false,
  4699                      "isPure": false,
  4700                      "lValueRequested": false,
  4701                      "leftHandSide": {
  4702                        "id": 59510,
  4703                        "name": "paused",
  4704                        "nodeType": "Identifier",
  4705                        "overloadedDeclarations": [],
  4706                        "referencedDeclaration": 59337,
  4707                        "src": "6567:6:110",
  4708                        "typeDescriptions": {
  4709                          "typeIdentifier": "t_bool",
  4710                          "typeString": "bool"
  4711                        }
  4712                      },
  4713                      "nodeType": "Assignment",
  4714                      "operator": "=",
  4715                      "rightHandSide": {
  4716                        "hexValue": "74727565",
  4717                        "id": 59511,
  4718                        "isConstant": false,
  4719                        "isLValue": false,
  4720                        "isPure": true,
  4721                        "kind": "bool",
  4722                        "lValueRequested": false,
  4723                        "nodeType": "Literal",
  4724                        "src": "6576:4:110",
  4725                        "typeDescriptions": {
  4726                          "typeIdentifier": "t_bool",
  4727                          "typeString": "bool"
  4728                        },
  4729                        "value": "true"
  4730                      },
  4731                      "src": "6567:13:110",
  4732                      "typeDescriptions": {
  4733                        "typeIdentifier": "t_bool",
  4734                        "typeString": "bool"
  4735                      }
  4736                    },
  4737                    "id": 59513,
  4738                    "nodeType": "ExpressionStatement",
  4739                    "src": "6567:13:110"
  4740                  },
  4741                  {
  4742                    "eventCall": {
  4743                      "arguments": [
  4744                        {
  4745                          "expression": {
  4746                            "id": 59515,
  4747                            "name": "msg",
  4748                            "nodeType": "Identifier",
  4749                            "overloadedDeclarations": [],
  4750                            "referencedDeclaration": -15,
  4751                            "src": "6602:3:110",
  4752                            "typeDescriptions": {
  4753                              "typeIdentifier": "t_magic_message",
  4754                              "typeString": "msg"
  4755                            }
  4756                          },
  4757                          "id": 59516,
  4758                          "isConstant": false,
  4759                          "isLValue": false,
  4760                          "isPure": false,
  4761                          "lValueRequested": false,
  4762                          "memberName": "sender",
  4763                          "nodeType": "MemberAccess",
  4764                          "src": "6602:10:110",
  4765                          "typeDescriptions": {
  4766                            "typeIdentifier": "t_address",
  4767                            "typeString": "address"
  4768                          }
  4769                        }
  4770                      ],
  4771                      "expression": {
  4772                        "argumentTypes": [
  4773                          {
  4774                            "typeIdentifier": "t_address",
  4775                            "typeString": "address"
  4776                          }
  4777                        ],
  4778                        "id": 59514,
  4779                        "name": "Paused",
  4780                        "nodeType": "Identifier",
  4781                        "overloadedDeclarations": [],
  4782                        "referencedDeclaration": 59380,
  4783                        "src": "6595:6:110",
  4784                        "typeDescriptions": {
  4785                          "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
  4786                          "typeString": "function (address)"
  4787                        }
  4788                      },
  4789                      "id": 59517,
  4790                      "isConstant": false,
  4791                      "isLValue": false,
  4792                      "isPure": false,
  4793                      "kind": "functionCall",
  4794                      "lValueRequested": false,
  4795                      "names": [],
  4796                      "nodeType": "FunctionCall",
  4797                      "src": "6595:18:110",
  4798                      "tryCall": false,
  4799                      "typeDescriptions": {
  4800                        "typeIdentifier": "t_tuple$__$",
  4801                        "typeString": "tuple()"
  4802                      }
  4803                    },
  4804                    "id": 59518,
  4805                    "nodeType": "EmitStatement",
  4806                    "src": "6590:23:110"
  4807                  }
  4808                ]
  4809              },
  4810              "documentation": {
  4811                "id": 59499,
  4812                "nodeType": "StructuredDocumentation",
  4813                "src": "6411:31:110",
  4814                "text": "@notice Pauses withdrawals."
  4815              },
  4816              "functionSelector": "8456cb59",
  4817              "implemented": true,
  4818              "kind": "function",
  4819              "modifiers": [],
  4820              "name": "pause",
  4821              "nameLocation": "6456:5:110",
  4822              "parameters": {
  4823                "id": 59500,
  4824                "nodeType": "ParameterList",
  4825                "parameters": [],
  4826                "src": "6461:2:110"
  4827              },
  4828              "returnParameters": {
  4829                "id": 59501,
  4830                "nodeType": "ParameterList",
  4831                "parameters": [],
  4832                "src": "6473:0:110"
  4833              },
  4834              "scope": 59997,
  4835              "stateMutability": "nonpayable",
  4836              "virtual": false,
  4837              "visibility": "external"
  4838            },
  4839            {
  4840              "id": 59542,
  4841              "nodeType": "FunctionDefinition",
  4842              "src": "6664:180:110",
  4843              "nodes": [],
  4844              "body": {
  4845                "id": 59541,
  4846                "nodeType": "Block",
  4847                "src": "6692:152:110",
  4848                "nodes": [],
  4849                "statements": [
  4850                  {
  4851                    "expression": {
  4852                      "arguments": [
  4853                        {
  4854                          "commonType": {
  4855                            "typeIdentifier": "t_address",
  4856                            "typeString": "address"
  4857                          },
  4858                          "id": 59528,
  4859                          "isConstant": false,
  4860                          "isLValue": false,
  4861                          "isPure": false,
  4862                          "lValueRequested": false,
  4863                          "leftExpression": {
  4864                            "expression": {
  4865                              "id": 59525,
  4866                              "name": "msg",
  4867                              "nodeType": "Identifier",
  4868                              "overloadedDeclarations": [],
  4869                              "referencedDeclaration": -15,
  4870                              "src": "6710:3:110",
  4871                              "typeDescriptions": {
  4872                                "typeIdentifier": "t_magic_message",
  4873                                "typeString": "msg"
  4874                              }
  4875                            },
  4876                            "id": 59526,
  4877                            "isConstant": false,
  4878                            "isLValue": false,
  4879                            "isPure": false,
  4880                            "lValueRequested": false,
  4881                            "memberName": "sender",
  4882                            "nodeType": "MemberAccess",
  4883                            "src": "6710:10:110",
  4884                            "typeDescriptions": {
  4885                              "typeIdentifier": "t_address",
  4886                              "typeString": "address"
  4887                            }
  4888                          },
  4889                          "nodeType": "BinaryOperation",
  4890                          "operator": "==",
  4891                          "rightExpression": {
  4892                            "id": 59527,
  4893                            "name": "guardian",
  4894                            "nodeType": "Identifier",
  4895                            "overloadedDeclarations": [],
  4896                            "referencedDeclaration": 59348,
  4897                            "src": "6724:8:110",
  4898                            "typeDescriptions": {
  4899                              "typeIdentifier": "t_address",
  4900                              "typeString": "address"
  4901                            }
  4902                          },
  4903                          "src": "6710:22:110",
  4904                          "typeDescriptions": {
  4905                            "typeIdentifier": "t_bool",
  4906                            "typeString": "bool"
  4907                          }
  4908                        },
  4909                        {
  4910                          "hexValue": "4f7074696d69736d506f7274616c3a206f6e6c7920677561726469616e2063616e20756e7061757365",
  4911                          "id": 59529,
  4912                          "isConstant": false,
  4913                          "isLValue": false,
  4914                          "isPure": true,
  4915                          "kind": "string",
  4916                          "lValueRequested": false,
  4917                          "nodeType": "Literal",
  4918                          "src": "6734:43:110",
  4919                          "typeDescriptions": {
  4920                            "typeIdentifier": "t_stringliteral_9b69e94c34df6db33f20b596e1e1d19a7e5843e1b38ae4395fe1bbf64e89e262",
  4921                            "typeString": "literal_string \"OptimismPortal: only guardian can unpause\""
  4922                          },
  4923                          "value": "OptimismPortal: only guardian can unpause"
  4924                        }
  4925                      ],
  4926                      "expression": {
  4927                        "argumentTypes": [
  4928                          {
  4929                            "typeIdentifier": "t_bool",
  4930                            "typeString": "bool"
  4931                          },
  4932                          {
  4933                            "typeIdentifier": "t_stringliteral_9b69e94c34df6db33f20b596e1e1d19a7e5843e1b38ae4395fe1bbf64e89e262",
  4934                            "typeString": "literal_string \"OptimismPortal: only guardian can unpause\""
  4935                          }
  4936                        ],
  4937                        "id": 59524,
  4938                        "name": "require",
  4939                        "nodeType": "Identifier",
  4940                        "overloadedDeclarations": [
  4941                          -18,
  4942                          -18
  4943                        ],
  4944                        "referencedDeclaration": -18,
  4945                        "src": "6702:7:110",
  4946                        "typeDescriptions": {
  4947                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  4948                          "typeString": "function (bool,string memory) pure"
  4949                        }
  4950                      },
  4951                      "id": 59530,
  4952                      "isConstant": false,
  4953                      "isLValue": false,
  4954                      "isPure": false,
  4955                      "kind": "functionCall",
  4956                      "lValueRequested": false,
  4957                      "names": [],
  4958                      "nodeType": "FunctionCall",
  4959                      "src": "6702:76:110",
  4960                      "tryCall": false,
  4961                      "typeDescriptions": {
  4962                        "typeIdentifier": "t_tuple$__$",
  4963                        "typeString": "tuple()"
  4964                      }
  4965                    },
  4966                    "id": 59531,
  4967                    "nodeType": "ExpressionStatement",
  4968                    "src": "6702:76:110"
  4969                  },
  4970                  {
  4971                    "expression": {
  4972                      "id": 59534,
  4973                      "isConstant": false,
  4974                      "isLValue": false,
  4975                      "isPure": false,
  4976                      "lValueRequested": false,
  4977                      "leftHandSide": {
  4978                        "id": 59532,
  4979                        "name": "paused",
  4980                        "nodeType": "Identifier",
  4981                        "overloadedDeclarations": [],
  4982                        "referencedDeclaration": 59337,
  4983                        "src": "6788:6:110",
  4984                        "typeDescriptions": {
  4985                          "typeIdentifier": "t_bool",
  4986                          "typeString": "bool"
  4987                        }
  4988                      },
  4989                      "nodeType": "Assignment",
  4990                      "operator": "=",
  4991                      "rightHandSide": {
  4992                        "hexValue": "66616c7365",
  4993                        "id": 59533,
  4994                        "isConstant": false,
  4995                        "isLValue": false,
  4996                        "isPure": true,
  4997                        "kind": "bool",
  4998                        "lValueRequested": false,
  4999                        "nodeType": "Literal",
  5000                        "src": "6797:5:110",
  5001                        "typeDescriptions": {
  5002                          "typeIdentifier": "t_bool",
  5003                          "typeString": "bool"
  5004                        },
  5005                        "value": "false"
  5006                      },
  5007                      "src": "6788:14:110",
  5008                      "typeDescriptions": {
  5009                        "typeIdentifier": "t_bool",
  5010                        "typeString": "bool"
  5011                      }
  5012                    },
  5013                    "id": 59535,
  5014                    "nodeType": "ExpressionStatement",
  5015                    "src": "6788:14:110"
  5016                  },
  5017                  {
  5018                    "eventCall": {
  5019                      "arguments": [
  5020                        {
  5021                          "expression": {
  5022                            "id": 59537,
  5023                            "name": "msg",
  5024                            "nodeType": "Identifier",
  5025                            "overloadedDeclarations": [],
  5026                            "referencedDeclaration": -15,
  5027                            "src": "6826:3:110",
  5028                            "typeDescriptions": {
  5029                              "typeIdentifier": "t_magic_message",
  5030                              "typeString": "msg"
  5031                            }
  5032                          },
  5033                          "id": 59538,
  5034                          "isConstant": false,
  5035                          "isLValue": false,
  5036                          "isPure": false,
  5037                          "lValueRequested": false,
  5038                          "memberName": "sender",
  5039                          "nodeType": "MemberAccess",
  5040                          "src": "6826:10:110",
  5041                          "typeDescriptions": {
  5042                            "typeIdentifier": "t_address",
  5043                            "typeString": "address"
  5044                          }
  5045                        }
  5046                      ],
  5047                      "expression": {
  5048                        "argumentTypes": [
  5049                          {
  5050                            "typeIdentifier": "t_address",
  5051                            "typeString": "address"
  5052                          }
  5053                        ],
  5054                        "id": 59536,
  5055                        "name": "Unpaused",
  5056                        "nodeType": "Identifier",
  5057                        "overloadedDeclarations": [],
  5058                        "referencedDeclaration": 59385,
  5059                        "src": "6817:8:110",
  5060                        "typeDescriptions": {
  5061                          "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
  5062                          "typeString": "function (address)"
  5063                        }
  5064                      },
  5065                      "id": 59539,
  5066                      "isConstant": false,
  5067                      "isLValue": false,
  5068                      "isPure": false,
  5069                      "kind": "functionCall",
  5070                      "lValueRequested": false,
  5071                      "names": [],
  5072                      "nodeType": "FunctionCall",
  5073                      "src": "6817:20:110",
  5074                      "tryCall": false,
  5075                      "typeDescriptions": {
  5076                        "typeIdentifier": "t_tuple$__$",
  5077                        "typeString": "tuple()"
  5078                      }
  5079                    },
  5080                    "id": 59540,
  5081                    "nodeType": "EmitStatement",
  5082                    "src": "6812:25:110"
  5083                  }
  5084                ]
  5085              },
  5086              "documentation": {
  5087                "id": 59521,
  5088                "nodeType": "StructuredDocumentation",
  5089                "src": "6626:33:110",
  5090                "text": "@notice Unpauses withdrawals."
  5091              },
  5092              "functionSelector": "3f4ba83a",
  5093              "implemented": true,
  5094              "kind": "function",
  5095              "modifiers": [],
  5096              "name": "unpause",
  5097              "nameLocation": "6673:7:110",
  5098              "parameters": {
  5099                "id": 59522,
  5100                "nodeType": "ParameterList",
  5101                "parameters": [],
  5102                "src": "6680:2:110"
  5103              },
  5104              "returnParameters": {
  5105                "id": 59523,
  5106                "nodeType": "ParameterList",
  5107                "parameters": [],
  5108                "src": "6692:0:110"
  5109              },
  5110              "scope": 59997,
  5111              "stateMutability": "nonpayable",
  5112              "virtual": false,
  5113              "visibility": "external"
  5114            },
  5115            {
  5116              "id": 59557,
  5117              "nodeType": "FunctionDefinition",
  5118              "src": "7337:120:110",
  5119              "nodes": [],
  5120              "body": {
  5121                "id": 59556,
  5122                "nodeType": "Block",
  5123                "src": "7410:47:110",
  5124                "nodes": [],
  5125                "statements": [
  5126                  {
  5127                    "expression": {
  5128                      "commonType": {
  5129                        "typeIdentifier": "t_uint64",
  5130                        "typeString": "uint64"
  5131                      },
  5132                      "id": 59554,
  5133                      "isConstant": false,
  5134                      "isLValue": false,
  5135                      "isPure": false,
  5136                      "lValueRequested": false,
  5137                      "leftExpression": {
  5138                        "commonType": {
  5139                          "typeIdentifier": "t_uint64",
  5140                          "typeString": "uint64"
  5141                        },
  5142                        "id": 59552,
  5143                        "isConstant": false,
  5144                        "isLValue": false,
  5145                        "isPure": false,
  5146                        "lValueRequested": false,
  5147                        "leftExpression": {
  5148                          "id": 59550,
  5149                          "name": "_byteCount",
  5150                          "nodeType": "Identifier",
  5151                          "overloadedDeclarations": [],
  5152                          "referencedDeclaration": 59545,
  5153                          "src": "7427:10:110",
  5154                          "typeDescriptions": {
  5155                            "typeIdentifier": "t_uint64",
  5156                            "typeString": "uint64"
  5157                          }
  5158                        },
  5159                        "nodeType": "BinaryOperation",
  5160                        "operator": "*",
  5161                        "rightExpression": {
  5162                          "hexValue": "3136",
  5163                          "id": 59551,
  5164                          "isConstant": false,
  5165                          "isLValue": false,
  5166                          "isPure": true,
  5167                          "kind": "number",
  5168                          "lValueRequested": false,
  5169                          "nodeType": "Literal",
  5170                          "src": "7440:2:110",
  5171                          "typeDescriptions": {
  5172                            "typeIdentifier": "t_rational_16_by_1",
  5173                            "typeString": "int_const 16"
  5174                          },
  5175                          "value": "16"
  5176                        },
  5177                        "src": "7427:15:110",
  5178                        "typeDescriptions": {
  5179                          "typeIdentifier": "t_uint64",
  5180                          "typeString": "uint64"
  5181                        }
  5182                      },
  5183                      "nodeType": "BinaryOperation",
  5184                      "operator": "+",
  5185                      "rightExpression": {
  5186                        "hexValue": "3231303030",
  5187                        "id": 59553,
  5188                        "isConstant": false,
  5189                        "isLValue": false,
  5190                        "isPure": true,
  5191                        "kind": "number",
  5192                        "lValueRequested": false,
  5193                        "nodeType": "Literal",
  5194                        "src": "7445:5:110",
  5195                        "typeDescriptions": {
  5196                          "typeIdentifier": "t_rational_21000_by_1",
  5197                          "typeString": "int_const 21000"
  5198                        },
  5199                        "value": "21000"
  5200                      },
  5201                      "src": "7427:23:110",
  5202                      "typeDescriptions": {
  5203                        "typeIdentifier": "t_uint64",
  5204                        "typeString": "uint64"
  5205                      }
  5206                    },
  5207                    "functionReturnParameters": 59549,
  5208                    "id": 59555,
  5209                    "nodeType": "Return",
  5210                    "src": "7420:30:110"
  5211                  }
  5212                ]
  5213              },
  5214              "documentation": {
  5215                "id": 59543,
  5216                "nodeType": "StructuredDocumentation",
  5217                "src": "6850:482:110",
  5218                "text": "@notice Computes the minimum gas limit for a deposit.\n         The minimum gas limit linearly increases based on the size of the calldata.\n         This is to prevent users from creating L2 resource usage without paying for it.\n         This function can be used when interacting with the portal to ensure forwards\n         compatibility.\n @param _byteCount Number of bytes in the calldata.\n @return The minimum gas limit for a deposit."
  5219              },
  5220              "functionSelector": "a35d99df",
  5221              "implemented": true,
  5222              "kind": "function",
  5223              "modifiers": [],
  5224              "name": "minimumGasLimit",
  5225              "nameLocation": "7346:15:110",
  5226              "parameters": {
  5227                "id": 59546,
  5228                "nodeType": "ParameterList",
  5229                "parameters": [
  5230                  {
  5231                    "constant": false,
  5232                    "id": 59545,
  5233                    "mutability": "mutable",
  5234                    "name": "_byteCount",
  5235                    "nameLocation": "7369:10:110",
  5236                    "nodeType": "VariableDeclaration",
  5237                    "scope": 59557,
  5238                    "src": "7362:17:110",
  5239                    "stateVariable": false,
  5240                    "storageLocation": "default",
  5241                    "typeDescriptions": {
  5242                      "typeIdentifier": "t_uint64",
  5243                      "typeString": "uint64"
  5244                    },
  5245                    "typeName": {
  5246                      "id": 59544,
  5247                      "name": "uint64",
  5248                      "nodeType": "ElementaryTypeName",
  5249                      "src": "7362:6:110",
  5250                      "typeDescriptions": {
  5251                        "typeIdentifier": "t_uint64",
  5252                        "typeString": "uint64"
  5253                      }
  5254                    },
  5255                    "visibility": "internal"
  5256                  }
  5257                ],
  5258                "src": "7361:19:110"
  5259              },
  5260              "returnParameters": {
  5261                "id": 59549,
  5262                "nodeType": "ParameterList",
  5263                "parameters": [
  5264                  {
  5265                    "constant": false,
  5266                    "id": 59548,
  5267                    "mutability": "mutable",
  5268                    "name": "",
  5269                    "nameLocation": "-1:-1:-1",
  5270                    "nodeType": "VariableDeclaration",
  5271                    "scope": 59557,
  5272                    "src": "7402:6:110",
  5273                    "stateVariable": false,
  5274                    "storageLocation": "default",
  5275                    "typeDescriptions": {
  5276                      "typeIdentifier": "t_uint64",
  5277                      "typeString": "uint64"
  5278                    },
  5279                    "typeName": {
  5280                      "id": 59547,
  5281                      "name": "uint64",
  5282                      "nodeType": "ElementaryTypeName",
  5283                      "src": "7402:6:110",
  5284                      "typeDescriptions": {
  5285                        "typeIdentifier": "t_uint64",
  5286                        "typeString": "uint64"
  5287                      }
  5288                    },
  5289                    "visibility": "internal"
  5290                  }
  5291                ],
  5292                "src": "7401:8:110"
  5293              },
  5294              "scope": 59997,
  5295              "stateMutability": "pure",
  5296              "virtual": false,
  5297              "visibility": "public"
  5298            },
  5299            {
  5300              "id": 59575,
  5301              "nodeType": "FunctionDefinition",
  5302              "src": "7878:130:110",
  5303              "nodes": [],
  5304              "body": {
  5305                "id": 59574,
  5306                "nodeType": "Block",
  5307                "src": "7905:103:110",
  5308                "nodes": [],
  5309                "statements": [
  5310                  {
  5311                    "expression": {
  5312                      "arguments": [
  5313                        {
  5314                          "expression": {
  5315                            "id": 59562,
  5316                            "name": "msg",
  5317                            "nodeType": "Identifier",
  5318                            "overloadedDeclarations": [],
  5319                            "referencedDeclaration": -15,
  5320                            "src": "7934:3:110",
  5321                            "typeDescriptions": {
  5322                              "typeIdentifier": "t_magic_message",
  5323                              "typeString": "msg"
  5324                            }
  5325                          },
  5326                          "id": 59563,
  5327                          "isConstant": false,
  5328                          "isLValue": false,
  5329                          "isPure": false,
  5330                          "lValueRequested": false,
  5331                          "memberName": "sender",
  5332                          "nodeType": "MemberAccess",
  5333                          "src": "7934:10:110",
  5334                          "typeDescriptions": {
  5335                            "typeIdentifier": "t_address",
  5336                            "typeString": "address"
  5337                          }
  5338                        },
  5339                        {
  5340                          "expression": {
  5341                            "id": 59564,
  5342                            "name": "msg",
  5343                            "nodeType": "Identifier",
  5344                            "overloadedDeclarations": [],
  5345                            "referencedDeclaration": -15,
  5346                            "src": "7946:3:110",
  5347                            "typeDescriptions": {
  5348                              "typeIdentifier": "t_magic_message",
  5349                              "typeString": "msg"
  5350                            }
  5351                          },
  5352                          "id": 59565,
  5353                          "isConstant": false,
  5354                          "isLValue": false,
  5355                          "isPure": false,
  5356                          "lValueRequested": false,
  5357                          "memberName": "value",
  5358                          "nodeType": "MemberAccess",
  5359                          "src": "7946:9:110",
  5360                          "typeDescriptions": {
  5361                            "typeIdentifier": "t_uint256",
  5362                            "typeString": "uint256"
  5363                          }
  5364                        },
  5365                        {
  5366                          "id": 59566,
  5367                          "name": "RECEIVE_DEFAULT_GAS_LIMIT",
  5368                          "nodeType": "Identifier",
  5369                          "overloadedDeclarations": [],
  5370                          "referencedDeclaration": 59320,
  5371                          "src": "7957:25:110",
  5372                          "typeDescriptions": {
  5373                            "typeIdentifier": "t_uint64",
  5374                            "typeString": "uint64"
  5375                          }
  5376                        },
  5377                        {
  5378                          "hexValue": "66616c7365",
  5379                          "id": 59567,
  5380                          "isConstant": false,
  5381                          "isLValue": false,
  5382                          "isPure": true,
  5383                          "kind": "bool",
  5384                          "lValueRequested": false,
  5385                          "nodeType": "Literal",
  5386                          "src": "7984:5:110",
  5387                          "typeDescriptions": {
  5388                            "typeIdentifier": "t_bool",
  5389                            "typeString": "bool"
  5390                          },
  5391                          "value": "false"
  5392                        },
  5393                        {
  5394                          "arguments": [
  5395                            {
  5396                              "hexValue": "",
  5397                              "id": 59570,
  5398                              "isConstant": false,
  5399                              "isLValue": false,
  5400                              "isPure": true,
  5401                              "kind": "string",
  5402                              "lValueRequested": false,
  5403                              "nodeType": "Literal",
  5404                              "src": "7997:2:110",
  5405                              "typeDescriptions": {
  5406                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
  5407                                "typeString": "literal_string \"\""
  5408                              },
  5409                              "value": ""
  5410                            }
  5411                          ],
  5412                          "expression": {
  5413                            "argumentTypes": [
  5414                              {
  5415                                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
  5416                                "typeString": "literal_string \"\""
  5417                              }
  5418                            ],
  5419                            "id": 59569,
  5420                            "isConstant": false,
  5421                            "isLValue": false,
  5422                            "isPure": true,
  5423                            "lValueRequested": false,
  5424                            "nodeType": "ElementaryTypeNameExpression",
  5425                            "src": "7991:5:110",
  5426                            "typeDescriptions": {
  5427                              "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
  5428                              "typeString": "type(bytes storage pointer)"
  5429                            },
  5430                            "typeName": {
  5431                              "id": 59568,
  5432                              "name": "bytes",
  5433                              "nodeType": "ElementaryTypeName",
  5434                              "src": "7991:5:110",
  5435                              "typeDescriptions": {}
  5436                            }
  5437                          },
  5438                          "id": 59571,
  5439                          "isConstant": false,
  5440                          "isLValue": false,
  5441                          "isPure": true,
  5442                          "kind": "typeConversion",
  5443                          "lValueRequested": false,
  5444                          "names": [],
  5445                          "nodeType": "FunctionCall",
  5446                          "src": "7991:9:110",
  5447                          "tryCall": false,
  5448                          "typeDescriptions": {
  5449                            "typeIdentifier": "t_bytes_memory_ptr",
  5450                            "typeString": "bytes memory"
  5451                          }
  5452                        }
  5453                      ],
  5454                      "expression": {
  5455                        "argumentTypes": [
  5456                          {
  5457                            "typeIdentifier": "t_address",
  5458                            "typeString": "address"
  5459                          },
  5460                          {
  5461                            "typeIdentifier": "t_uint256",
  5462                            "typeString": "uint256"
  5463                          },
  5464                          {
  5465                            "typeIdentifier": "t_uint64",
  5466                            "typeString": "uint64"
  5467                          },
  5468                          {
  5469                            "typeIdentifier": "t_bool",
  5470                            "typeString": "bool"
  5471                          },
  5472                          {
  5473                            "typeIdentifier": "t_bytes_memory_ptr",
  5474                            "typeString": "bytes memory"
  5475                          }
  5476                        ],
  5477                        "id": 59561,
  5478                        "name": "depositTransaction",
  5479                        "nodeType": "Identifier",
  5480                        "overloadedDeclarations": [],
  5481                        "referencedDeclaration": 59961,
  5482                        "src": "7915:18:110",
  5483                        "typeDescriptions": {
  5484                          "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint64_$_t_bool_$_t_bytes_memory_ptr_$returns$__$",
  5485                          "typeString": "function (address,uint256,uint64,bool,bytes memory)"
  5486                        }
  5487                      },
  5488                      "id": 59572,
  5489                      "isConstant": false,
  5490                      "isLValue": false,
  5491                      "isPure": false,
  5492                      "kind": "functionCall",
  5493                      "lValueRequested": false,
  5494                      "names": [],
  5495                      "nodeType": "FunctionCall",
  5496                      "src": "7915:86:110",
  5497                      "tryCall": false,
  5498                      "typeDescriptions": {
  5499                        "typeIdentifier": "t_tuple$__$",
  5500                        "typeString": "tuple()"
  5501                      }
  5502                    },
  5503                    "id": 59573,
  5504                    "nodeType": "ExpressionStatement",
  5505                    "src": "7915:86:110"
  5506                  }
  5507                ]
  5508              },
  5509              "documentation": {
  5510                "id": 59558,
  5511                "nodeType": "StructuredDocumentation",
  5512                "src": "7463:368:110",
  5513                "text": "@notice Accepts value so that users can send ETH directly to this contract and have the\n         funds be deposited to their address on L2. This is intended as a convenience\n         function for EOAs. Contracts should call the depositTransaction() function directly\n         otherwise any deposited funds will be lost due to address aliasing."
  5514              },
  5515              "implemented": true,
  5516              "kind": "receive",
  5517              "modifiers": [],
  5518              "name": "",
  5519              "nameLocation": "-1:-1:-1",
  5520              "parameters": {
  5521                "id": 59559,
  5522                "nodeType": "ParameterList",
  5523                "parameters": [],
  5524                "src": "7885:2:110"
  5525              },
  5526              "returnParameters": {
  5527                "id": 59560,
  5528                "nodeType": "ParameterList",
  5529                "parameters": [],
  5530                "src": "7905:0:110"
  5531              },
  5532              "scope": 59997,
  5533              "stateMutability": "payable",
  5534              "virtual": false,
  5535              "visibility": "external"
  5536            },
  5537            {
  5538              "id": 59580,
  5539              "nodeType": "FunctionDefinition",
  5540              "src": "8222:77:110",
  5541              "nodes": [],
  5542              "body": {
  5543                "id": 59579,
  5544                "nodeType": "Block",
  5545                "src": "8260:39:110",
  5546                "nodes": [],
  5547                "statements": []
  5548              },
  5549              "documentation": {
  5550                "id": 59576,
  5551                "nodeType": "StructuredDocumentation",
  5552                "src": "8014:203:110",
  5553                "text": "@notice Accepts ETH value without triggering a deposit to L2.\n         This function mainly exists for the sake of the migration between the legacy\n         Optimism system and Bedrock."
  5554              },
  5555              "functionSelector": "8b4c40b0",
  5556              "implemented": true,
  5557              "kind": "function",
  5558              "modifiers": [],
  5559              "name": "donateETH",
  5560              "nameLocation": "8231:9:110",
  5561              "parameters": {
  5562                "id": 59577,
  5563                "nodeType": "ParameterList",
  5564                "parameters": [],
  5565                "src": "8240:2:110"
  5566              },
  5567              "returnParameters": {
  5568                "id": 59578,
  5569                "nodeType": "ParameterList",
  5570                "parameters": [],
  5571                "src": "8260:0:110"
  5572              },
  5573              "scope": 59997,
  5574              "stateMutability": "payable",
  5575              "virtual": false,
  5576              "visibility": "external"
  5577            },
  5578            {
  5579              "id": 59593,
  5580              "nodeType": "FunctionDefinition",
  5581              "src": "8548:152:110",
  5582              "nodes": [],
  5583              "body": {
  5584                "id": 59592,
  5585                "nodeType": "Block",
  5586                "src": "8647:53:110",
  5587                "nodes": [],
  5588                "statements": [
  5589                  {
  5590                    "expression": {
  5591                      "arguments": [],
  5592                      "expression": {
  5593                        "argumentTypes": [],
  5594                        "expression": {
  5595                          "id": 59588,
  5596                          "name": "systemConfig",
  5597                          "nodeType": "Identifier",
  5598                          "overloadedDeclarations": [],
  5599                          "referencedDeclaration": 59345,
  5600                          "src": "8664:12:110",
  5601                          "typeDescriptions": {
  5602                            "typeIdentifier": "t_contract$_SystemConfig_$61393",
  5603                            "typeString": "contract SystemConfig"
  5604                          }
  5605                        },
  5606                        "id": 59589,
  5607                        "isConstant": false,
  5608                        "isLValue": false,
  5609                        "isPure": false,
  5610                        "lValueRequested": false,
  5611                        "memberName": "resourceConfig",
  5612                        "nodeType": "MemberAccess",
  5613                        "referencedDeclaration": 61313,
  5614                        "src": "8664:27:110",
  5615                        "typeDescriptions": {
  5616                          "typeIdentifier": "t_function_external_view$__$returns$_t_struct$_ResourceConfig_$60283_memory_ptr_$",
  5617                          "typeString": "function () view external returns (struct ResourceMetering.ResourceConfig memory)"
  5618                        }
  5619                      },
  5620                      "id": 59590,
  5621                      "isConstant": false,
  5622                      "isLValue": false,
  5623                      "isPure": false,
  5624                      "kind": "functionCall",
  5625                      "lValueRequested": false,
  5626                      "names": [],
  5627                      "nodeType": "FunctionCall",
  5628                      "src": "8664:29:110",
  5629                      "tryCall": false,
  5630                      "typeDescriptions": {
  5631                        "typeIdentifier": "t_struct$_ResourceConfig_$60283_memory_ptr",
  5632                        "typeString": "struct ResourceMetering.ResourceConfig memory"
  5633                      }
  5634                    },
  5635                    "functionReturnParameters": 59587,
  5636                    "id": 59591,
  5637                    "nodeType": "Return",
  5638                    "src": "8657:36:110"
  5639                  }
  5640                ]
  5641              },
  5642              "baseFunctions": [
  5643                60579
  5644              ],
  5645              "documentation": {
  5646                "id": 59581,
  5647                "nodeType": "StructuredDocumentation",
  5648                "src": "8305:238:110",
  5649                "text": "@notice Getter for the resource config.\n         Used internally by the ResourceMetering contract.\n         The SystemConfig is the source of truth for the resource config.\n @return ResourceMetering ResourceConfig"
  5650              },
  5651              "implemented": true,
  5652              "kind": "function",
  5653              "modifiers": [],
  5654              "name": "_resourceConfig",
  5655              "nameLocation": "8557:15:110",
  5656              "overrides": {
  5657                "id": 59583,
  5658                "nodeType": "OverrideSpecifier",
  5659                "overrides": [],
  5660                "src": "8589:8:110"
  5661              },
  5662              "parameters": {
  5663                "id": 59582,
  5664                "nodeType": "ParameterList",
  5665                "parameters": [],
  5666                "src": "8572:2:110"
  5667              },
  5668              "returnParameters": {
  5669                "id": 59587,
  5670                "nodeType": "ParameterList",
  5671                "parameters": [
  5672                  {
  5673                    "constant": false,
  5674                    "id": 59586,
  5675                    "mutability": "mutable",
  5676                    "name": "",
  5677                    "nameLocation": "-1:-1:-1",
  5678                    "nodeType": "VariableDeclaration",
  5679                    "scope": 59593,
  5680                    "src": "8607:38:110",
  5681                    "stateVariable": false,
  5682                    "storageLocation": "memory",
  5683                    "typeDescriptions": {
  5684                      "typeIdentifier": "t_struct$_ResourceConfig_$60283_memory_ptr",
  5685                      "typeString": "struct ResourceMetering.ResourceConfig"
  5686                    },
  5687                    "typeName": {
  5688                      "id": 59585,
  5689                      "nodeType": "UserDefinedTypeName",
  5690                      "pathNode": {
  5691                        "id": 59584,
  5692                        "name": "ResourceMetering.ResourceConfig",
  5693                        "nodeType": "IdentifierPath",
  5694                        "referencedDeclaration": 60283,
  5695                        "src": "8607:31:110"
  5696                      },
  5697                      "referencedDeclaration": 60283,
  5698                      "src": "8607:31:110",
  5699                      "typeDescriptions": {
  5700                        "typeIdentifier": "t_struct$_ResourceConfig_$60283_storage_ptr",
  5701                        "typeString": "struct ResourceMetering.ResourceConfig"
  5702                      }
  5703                    },
  5704                    "visibility": "internal"
  5705                  }
  5706                ],
  5707                "src": "8606:40:110"
  5708              },
  5709              "scope": 59997,
  5710              "stateMutability": "view",
  5711              "virtual": false,
  5712              "visibility": "internal"
  5713            },
  5714            {
  5715              "id": 59725,
  5716              "nodeType": "FunctionDefinition",
  5717              "src": "9088:3746:110",
  5718              "nodes": [],
  5719              "body": {
  5720                "id": 59724,
  5721                "nodeType": "Block",
  5722                "src": "9353:3481:110",
  5723                "nodes": [],
  5724                "statements": [
  5725                  {
  5726                    "expression": {
  5727                      "arguments": [
  5728                        {
  5729                          "commonType": {
  5730                            "typeIdentifier": "t_address",
  5731                            "typeString": "address"
  5732                          },
  5733                          "id": 59617,
  5734                          "isConstant": false,
  5735                          "isLValue": false,
  5736                          "isPure": false,
  5737                          "lValueRequested": false,
  5738                          "leftExpression": {
  5739                            "expression": {
  5740                              "id": 59611,
  5741                              "name": "_tx",
  5742                              "nodeType": "Identifier",
  5743                              "overloadedDeclarations": [],
  5744                              "referencedDeclaration": 59597,
  5745                              "src": "9598:3:110",
  5746                              "typeDescriptions": {
  5747                                "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  5748                                "typeString": "struct Types.WithdrawalTransaction memory"
  5749                              }
  5750                            },
  5751                            "id": 59612,
  5752                            "isConstant": false,
  5753                            "isLValue": true,
  5754                            "isPure": false,
  5755                            "lValueRequested": false,
  5756                            "memberName": "target",
  5757                            "nodeType": "MemberAccess",
  5758                            "referencedDeclaration": 70587,
  5759                            "src": "9598:10:110",
  5760                            "typeDescriptions": {
  5761                              "typeIdentifier": "t_address",
  5762                              "typeString": "address"
  5763                            }
  5764                          },
  5765                          "nodeType": "BinaryOperation",
  5766                          "operator": "!=",
  5767                          "rightExpression": {
  5768                            "arguments": [
  5769                              {
  5770                                "id": 59615,
  5771                                "name": "this",
  5772                                "nodeType": "Identifier",
  5773                                "overloadedDeclarations": [],
  5774                                "referencedDeclaration": -28,
  5775                                "src": "9620:4:110",
  5776                                "typeDescriptions": {
  5777                                  "typeIdentifier": "t_contract$_OptimismPortal_$59997",
  5778                                  "typeString": "contract OptimismPortal"
  5779                                }
  5780                              }
  5781                            ],
  5782                            "expression": {
  5783                              "argumentTypes": [
  5784                                {
  5785                                  "typeIdentifier": "t_contract$_OptimismPortal_$59997",
  5786                                  "typeString": "contract OptimismPortal"
  5787                                }
  5788                              ],
  5789                              "id": 59614,
  5790                              "isConstant": false,
  5791                              "isLValue": false,
  5792                              "isPure": true,
  5793                              "lValueRequested": false,
  5794                              "nodeType": "ElementaryTypeNameExpression",
  5795                              "src": "9612:7:110",
  5796                              "typeDescriptions": {
  5797                                "typeIdentifier": "t_type$_t_address_$",
  5798                                "typeString": "type(address)"
  5799                              },
  5800                              "typeName": {
  5801                                "id": 59613,
  5802                                "name": "address",
  5803                                "nodeType": "ElementaryTypeName",
  5804                                "src": "9612:7:110",
  5805                                "typeDescriptions": {}
  5806                              }
  5807                            },
  5808                            "id": 59616,
  5809                            "isConstant": false,
  5810                            "isLValue": false,
  5811                            "isPure": false,
  5812                            "kind": "typeConversion",
  5813                            "lValueRequested": false,
  5814                            "names": [],
  5815                            "nodeType": "FunctionCall",
  5816                            "src": "9612:13:110",
  5817                            "tryCall": false,
  5818                            "typeDescriptions": {
  5819                              "typeIdentifier": "t_address",
  5820                              "typeString": "address"
  5821                            }
  5822                          },
  5823                          "src": "9598:27:110",
  5824                          "typeDescriptions": {
  5825                            "typeIdentifier": "t_bool",
  5826                            "typeString": "bool"
  5827                          }
  5828                        },
  5829                        {
  5830                          "hexValue": "4f7074696d69736d506f7274616c3a20796f752063616e6e6f742073656e64206d6573736167657320746f2074686520706f7274616c20636f6e7472616374",
  5831                          "id": 59618,
  5832                          "isConstant": false,
  5833                          "isLValue": false,
  5834                          "isPure": true,
  5835                          "kind": "string",
  5836                          "lValueRequested": false,
  5837                          "nodeType": "Literal",
  5838                          "src": "9627:65:110",
  5839                          "typeDescriptions": {
  5840                            "typeIdentifier": "t_stringliteral_57e41062e2e7b97ddf730827f5249d28f602a3846dfe107ce36292fb1c029eb8",
  5841                            "typeString": "literal_string \"OptimismPortal: you cannot send messages to the portal contract\""
  5842                          },
  5843                          "value": "OptimismPortal: you cannot send messages to the portal contract"
  5844                        }
  5845                      ],
  5846                      "expression": {
  5847                        "argumentTypes": [
  5848                          {
  5849                            "typeIdentifier": "t_bool",
  5850                            "typeString": "bool"
  5851                          },
  5852                          {
  5853                            "typeIdentifier": "t_stringliteral_57e41062e2e7b97ddf730827f5249d28f602a3846dfe107ce36292fb1c029eb8",
  5854                            "typeString": "literal_string \"OptimismPortal: you cannot send messages to the portal contract\""
  5855                          }
  5856                        ],
  5857                        "id": 59610,
  5858                        "name": "require",
  5859                        "nodeType": "Identifier",
  5860                        "overloadedDeclarations": [
  5861                          -18,
  5862                          -18
  5863                        ],
  5864                        "referencedDeclaration": -18,
  5865                        "src": "9590:7:110",
  5866                        "typeDescriptions": {
  5867                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  5868                          "typeString": "function (bool,string memory) pure"
  5869                        }
  5870                      },
  5871                      "id": 59619,
  5872                      "isConstant": false,
  5873                      "isLValue": false,
  5874                      "isPure": false,
  5875                      "kind": "functionCall",
  5876                      "lValueRequested": false,
  5877                      "names": [],
  5878                      "nodeType": "FunctionCall",
  5879                      "src": "9590:103:110",
  5880                      "tryCall": false,
  5881                      "typeDescriptions": {
  5882                        "typeIdentifier": "t_tuple$__$",
  5883                        "typeString": "tuple()"
  5884                      }
  5885                    },
  5886                    "id": 59620,
  5887                    "nodeType": "ExpressionStatement",
  5888                    "src": "9590:103:110"
  5889                  },
  5890                  {
  5891                    "assignments": [
  5892                      59622
  5893                    ],
  5894                    "declarations": [
  5895                      {
  5896                        "constant": false,
  5897                        "id": 59622,
  5898                        "mutability": "mutable",
  5899                        "name": "outputRoot",
  5900                        "nameLocation": "9878:10:110",
  5901                        "nodeType": "VariableDeclaration",
  5902                        "scope": 59724,
  5903                        "src": "9870:18:110",
  5904                        "stateVariable": false,
  5905                        "storageLocation": "default",
  5906                        "typeDescriptions": {
  5907                          "typeIdentifier": "t_bytes32",
  5908                          "typeString": "bytes32"
  5909                        },
  5910                        "typeName": {
  5911                          "id": 59621,
  5912                          "name": "bytes32",
  5913                          "nodeType": "ElementaryTypeName",
  5914                          "src": "9870:7:110",
  5915                          "typeDescriptions": {
  5916                            "typeIdentifier": "t_bytes32",
  5917                            "typeString": "bytes32"
  5918                          }
  5919                        },
  5920                        "visibility": "internal"
  5921                      }
  5922                    ],
  5923                    "id": 59628,
  5924                    "initialValue": {
  5925                      "expression": {
  5926                        "arguments": [
  5927                          {
  5928                            "id": 59625,
  5929                            "name": "_l2OutputIndex",
  5930                            "nodeType": "Identifier",
  5931                            "overloadedDeclarations": [],
  5932                            "referencedDeclaration": 59599,
  5933                            "src": "9912:14:110",
  5934                            "typeDescriptions": {
  5935                              "typeIdentifier": "t_uint256",
  5936                              "typeString": "uint256"
  5937                            }
  5938                          }
  5939                        ],
  5940                        "expression": {
  5941                          "argumentTypes": [
  5942                            {
  5943                              "typeIdentifier": "t_uint256",
  5944                              "typeString": "uint256"
  5945                            }
  5946                          ],
  5947                          "expression": {
  5948                            "id": 59623,
  5949                            "name": "l2Oracle",
  5950                            "nodeType": "Identifier",
  5951                            "overloadedDeclarations": [],
  5952                            "referencedDeclaration": 59341,
  5953                            "src": "9891:8:110",
  5954                            "typeDescriptions": {
  5955                              "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  5956                              "typeString": "contract L2OutputOracle"
  5957                            }
  5958                          },
  5959                          "id": 59624,
  5960                          "isConstant": false,
  5961                          "isLValue": false,
  5962                          "isPure": false,
  5963                          "lValueRequested": false,
  5964                          "memberName": "getL2Output",
  5965                          "nodeType": "MemberAccess",
  5966                          "referencedDeclaration": 59112,
  5967                          "src": "9891:20:110",
  5968                          "typeDescriptions": {
  5969                            "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_OutputProposal_$70553_memory_ptr_$",
  5970                            "typeString": "function (uint256) view external returns (struct Types.OutputProposal memory)"
  5971                          }
  5972                        },
  5973                        "id": 59626,
  5974                        "isConstant": false,
  5975                        "isLValue": false,
  5976                        "isPure": false,
  5977                        "kind": "functionCall",
  5978                        "lValueRequested": false,
  5979                        "names": [],
  5980                        "nodeType": "FunctionCall",
  5981                        "src": "9891:36:110",
  5982                        "tryCall": false,
  5983                        "typeDescriptions": {
  5984                          "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr",
  5985                          "typeString": "struct Types.OutputProposal memory"
  5986                        }
  5987                      },
  5988                      "id": 59627,
  5989                      "isConstant": false,
  5990                      "isLValue": true,
  5991                      "isPure": false,
  5992                      "lValueRequested": false,
  5993                      "memberName": "outputRoot",
  5994                      "nodeType": "MemberAccess",
  5995                      "referencedDeclaration": 70548,
  5996                      "src": "9891:47:110",
  5997                      "typeDescriptions": {
  5998                        "typeIdentifier": "t_bytes32",
  5999                        "typeString": "bytes32"
  6000                      }
  6001                    },
  6002                    "nodeType": "VariableDeclarationStatement",
  6003                    "src": "9870:68:110"
  6004                  },
  6005                  {
  6006                    "expression": {
  6007                      "arguments": [
  6008                        {
  6009                          "commonType": {
  6010                            "typeIdentifier": "t_bytes32",
  6011                            "typeString": "bytes32"
  6012                          },
  6013                          "id": 59635,
  6014                          "isConstant": false,
  6015                          "isLValue": false,
  6016                          "isPure": false,
  6017                          "lValueRequested": false,
  6018                          "leftExpression": {
  6019                            "id": 59630,
  6020                            "name": "outputRoot",
  6021                            "nodeType": "Identifier",
  6022                            "overloadedDeclarations": [],
  6023                            "referencedDeclaration": 59622,
  6024                            "src": "10058:10:110",
  6025                            "typeDescriptions": {
  6026                              "typeIdentifier": "t_bytes32",
  6027                              "typeString": "bytes32"
  6028                            }
  6029                          },
  6030                          "nodeType": "BinaryOperation",
  6031                          "operator": "==",
  6032                          "rightExpression": {
  6033                            "arguments": [
  6034                              {
  6035                                "id": 59633,
  6036                                "name": "_outputRootProof",
  6037                                "nodeType": "Identifier",
  6038                                "overloadedDeclarations": [],
  6039                                "referencedDeclaration": 59602,
  6040                                "src": "10100:16:110",
  6041                                "typeDescriptions": {
  6042                                  "typeIdentifier": "t_struct$_OutputRootProof_$70562_calldata_ptr",
  6043                                  "typeString": "struct Types.OutputRootProof calldata"
  6044                                }
  6045                              }
  6046                            ],
  6047                            "expression": {
  6048                              "argumentTypes": [
  6049                                {
  6050                                  "typeIdentifier": "t_struct$_OutputRootProof_$70562_calldata_ptr",
  6051                                  "typeString": "struct Types.OutputRootProof calldata"
  6052                                }
  6053                              ],
  6054                              "expression": {
  6055                                "id": 59631,
  6056                                "name": "Hashing",
  6057                                "nodeType": "Identifier",
  6058                                "overloadedDeclarations": [],
  6059                                "referencedDeclaration": 70279,
  6060                                "src": "10072:7:110",
  6061                                "typeDescriptions": {
  6062                                  "typeIdentifier": "t_type$_t_contract$_Hashing_$70279_$",
  6063                                  "typeString": "type(library Hashing)"
  6064                                }
  6065                              },
  6066                              "id": 59632,
  6067                              "isConstant": false,
  6068                              "isLValue": false,
  6069                              "isPure": false,
  6070                              "lValueRequested": false,
  6071                              "memberName": "hashOutputRootProof",
  6072                              "nodeType": "MemberAccess",
  6073                              "referencedDeclaration": 70278,
  6074                              "src": "10072:27:110",
  6075                              "typeDescriptions": {
  6076                                "typeIdentifier": "t_function_internal_pure$_t_struct$_OutputRootProof_$70562_memory_ptr_$returns$_t_bytes32_$",
  6077                                "typeString": "function (struct Types.OutputRootProof memory) pure returns (bytes32)"
  6078                              }
  6079                            },
  6080                            "id": 59634,
  6081                            "isConstant": false,
  6082                            "isLValue": false,
  6083                            "isPure": false,
  6084                            "kind": "functionCall",
  6085                            "lValueRequested": false,
  6086                            "names": [],
  6087                            "nodeType": "FunctionCall",
  6088                            "src": "10072:45:110",
  6089                            "tryCall": false,
  6090                            "typeDescriptions": {
  6091                              "typeIdentifier": "t_bytes32",
  6092                              "typeString": "bytes32"
  6093                            }
  6094                          },
  6095                          "src": "10058:59:110",
  6096                          "typeDescriptions": {
  6097                            "typeIdentifier": "t_bool",
  6098                            "typeString": "bool"
  6099                          }
  6100                        },
  6101                        {
  6102                          "hexValue": "4f7074696d69736d506f7274616c3a20696e76616c6964206f757470757420726f6f742070726f6f66",
  6103                          "id": 59636,
  6104                          "isConstant": false,
  6105                          "isLValue": false,
  6106                          "isPure": true,
  6107                          "kind": "string",
  6108                          "lValueRequested": false,
  6109                          "nodeType": "Literal",
  6110                          "src": "10119:43:110",
  6111                          "typeDescriptions": {
  6112                            "typeIdentifier": "t_stringliteral_490ec653897228799e7e4c4af8b1fd3b4a0688df98d026b46afa352ce9876996",
  6113                            "typeString": "literal_string \"OptimismPortal: invalid output root proof\""
  6114                          },
  6115                          "value": "OptimismPortal: invalid output root proof"
  6116                        }
  6117                      ],
  6118                      "expression": {
  6119                        "argumentTypes": [
  6120                          {
  6121                            "typeIdentifier": "t_bool",
  6122                            "typeString": "bool"
  6123                          },
  6124                          {
  6125                            "typeIdentifier": "t_stringliteral_490ec653897228799e7e4c4af8b1fd3b4a0688df98d026b46afa352ce9876996",
  6126                            "typeString": "literal_string \"OptimismPortal: invalid output root proof\""
  6127                          }
  6128                        ],
  6129                        "id": 59629,
  6130                        "name": "require",
  6131                        "nodeType": "Identifier",
  6132                        "overloadedDeclarations": [
  6133                          -18,
  6134                          -18
  6135                        ],
  6136                        "referencedDeclaration": -18,
  6137                        "src": "10037:7:110",
  6138                        "typeDescriptions": {
  6139                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  6140                          "typeString": "function (bool,string memory) pure"
  6141                        }
  6142                      },
  6143                      "id": 59637,
  6144                      "isConstant": false,
  6145                      "isLValue": false,
  6146                      "isPure": false,
  6147                      "kind": "functionCall",
  6148                      "lValueRequested": false,
  6149                      "names": [],
  6150                      "nodeType": "FunctionCall",
  6151                      "src": "10037:135:110",
  6152                      "tryCall": false,
  6153                      "typeDescriptions": {
  6154                        "typeIdentifier": "t_tuple$__$",
  6155                        "typeString": "tuple()"
  6156                      }
  6157                    },
  6158                    "id": 59638,
  6159                    "nodeType": "ExpressionStatement",
  6160                    "src": "10037:135:110"
  6161                  },
  6162                  {
  6163                    "assignments": [
  6164                      59640
  6165                    ],
  6166                    "declarations": [
  6167                      {
  6168                        "constant": false,
  6169                        "id": 59640,
  6170                        "mutability": "mutable",
  6171                        "name": "withdrawalHash",
  6172                        "nameLocation": "10291:14:110",
  6173                        "nodeType": "VariableDeclaration",
  6174                        "scope": 59724,
  6175                        "src": "10283:22:110",
  6176                        "stateVariable": false,
  6177                        "storageLocation": "default",
  6178                        "typeDescriptions": {
  6179                          "typeIdentifier": "t_bytes32",
  6180                          "typeString": "bytes32"
  6181                        },
  6182                        "typeName": {
  6183                          "id": 59639,
  6184                          "name": "bytes32",
  6185                          "nodeType": "ElementaryTypeName",
  6186                          "src": "10283:7:110",
  6187                          "typeDescriptions": {
  6188                            "typeIdentifier": "t_bytes32",
  6189                            "typeString": "bytes32"
  6190                          }
  6191                        },
  6192                        "visibility": "internal"
  6193                      }
  6194                    ],
  6195                    "id": 59645,
  6196                    "initialValue": {
  6197                      "arguments": [
  6198                        {
  6199                          "id": 59643,
  6200                          "name": "_tx",
  6201                          "nodeType": "Identifier",
  6202                          "overloadedDeclarations": [],
  6203                          "referencedDeclaration": 59597,
  6204                          "src": "10331:3:110",
  6205                          "typeDescriptions": {
  6206                            "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  6207                            "typeString": "struct Types.WithdrawalTransaction memory"
  6208                          }
  6209                        }
  6210                      ],
  6211                      "expression": {
  6212                        "argumentTypes": [
  6213                          {
  6214                            "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  6215                            "typeString": "struct Types.WithdrawalTransaction memory"
  6216                          }
  6217                        ],
  6218                        "expression": {
  6219                          "id": 59641,
  6220                          "name": "Hashing",
  6221                          "nodeType": "Identifier",
  6222                          "overloadedDeclarations": [],
  6223                          "referencedDeclaration": 70279,
  6224                          "src": "10308:7:110",
  6225                          "typeDescriptions": {
  6226                            "typeIdentifier": "t_type$_t_contract$_Hashing_$70279_$",
  6227                            "typeString": "type(library Hashing)"
  6228                          }
  6229                        },
  6230                        "id": 59642,
  6231                        "isConstant": false,
  6232                        "isLValue": false,
  6233                        "isPure": false,
  6234                        "lValueRequested": false,
  6235                        "memberName": "hashWithdrawal",
  6236                        "nodeType": "MemberAccess",
  6237                        "referencedDeclaration": 70254,
  6238                        "src": "10308:22:110",
  6239                        "typeDescriptions": {
  6240                          "typeIdentifier": "t_function_internal_pure$_t_struct$_WithdrawalTransaction_$70594_memory_ptr_$returns$_t_bytes32_$",
  6241                          "typeString": "function (struct Types.WithdrawalTransaction memory) pure returns (bytes32)"
  6242                        }
  6243                      },
  6244                      "id": 59644,
  6245                      "isConstant": false,
  6246                      "isLValue": false,
  6247                      "isPure": false,
  6248                      "kind": "functionCall",
  6249                      "lValueRequested": false,
  6250                      "names": [],
  6251                      "nodeType": "FunctionCall",
  6252                      "src": "10308:27:110",
  6253                      "tryCall": false,
  6254                      "typeDescriptions": {
  6255                        "typeIdentifier": "t_bytes32",
  6256                        "typeString": "bytes32"
  6257                      }
  6258                    },
  6259                    "nodeType": "VariableDeclarationStatement",
  6260                    "src": "10283:52:110"
  6261                  },
  6262                  {
  6263                    "assignments": [
  6264                      59648
  6265                    ],
  6266                    "declarations": [
  6267                      {
  6268                        "constant": false,
  6269                        "id": 59648,
  6270                        "mutability": "mutable",
  6271                        "name": "provenWithdrawal",
  6272                        "nameLocation": "10369:16:110",
  6273                        "nodeType": "VariableDeclaration",
  6274                        "scope": 59724,
  6275                        "src": "10345:40:110",
  6276                        "stateVariable": false,
  6277                        "storageLocation": "memory",
  6278                        "typeDescriptions": {
  6279                          "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr",
  6280                          "typeString": "struct OptimismPortal.ProvenWithdrawal"
  6281                        },
  6282                        "typeName": {
  6283                          "id": 59647,
  6284                          "nodeType": "UserDefinedTypeName",
  6285                          "pathNode": {
  6286                            "id": 59646,
  6287                            "name": "ProvenWithdrawal",
  6288                            "nodeType": "IdentifierPath",
  6289                            "referencedDeclaration": 59312,
  6290                            "src": "10345:16:110"
  6291                          },
  6292                          "referencedDeclaration": 59312,
  6293                          "src": "10345:16:110",
  6294                          "typeDescriptions": {
  6295                            "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage_ptr",
  6296                            "typeString": "struct OptimismPortal.ProvenWithdrawal"
  6297                          }
  6298                        },
  6299                        "visibility": "internal"
  6300                      }
  6301                    ],
  6302                    "id": 59652,
  6303                    "initialValue": {
  6304                      "baseExpression": {
  6305                        "id": 59649,
  6306                        "name": "provenWithdrawals",
  6307                        "nodeType": "Identifier",
  6308                        "overloadedDeclarations": [],
  6309                        "referencedDeclaration": 59334,
  6310                        "src": "10388:17:110",
  6311                        "typeDescriptions": {
  6312                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$59312_storage_$",
  6313                          "typeString": "mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal storage ref)"
  6314                        }
  6315                      },
  6316                      "id": 59651,
  6317                      "indexExpression": {
  6318                        "id": 59650,
  6319                        "name": "withdrawalHash",
  6320                        "nodeType": "Identifier",
  6321                        "overloadedDeclarations": [],
  6322                        "referencedDeclaration": 59640,
  6323                        "src": "10406:14:110",
  6324                        "typeDescriptions": {
  6325                          "typeIdentifier": "t_bytes32",
  6326                          "typeString": "bytes32"
  6327                        }
  6328                      },
  6329                      "isConstant": false,
  6330                      "isLValue": true,
  6331                      "isPure": false,
  6332                      "lValueRequested": false,
  6333                      "nodeType": "IndexAccess",
  6334                      "src": "10388:33:110",
  6335                      "typeDescriptions": {
  6336                        "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage",
  6337                        "typeString": "struct OptimismPortal.ProvenWithdrawal storage ref"
  6338                      }
  6339                    },
  6340                    "nodeType": "VariableDeclarationStatement",
  6341                    "src": "10345:76:110"
  6342                  },
  6343                  {
  6344                    "expression": {
  6345                      "arguments": [
  6346                        {
  6347                          "commonType": {
  6348                            "typeIdentifier": "t_bool",
  6349                            "typeString": "bool"
  6350                          },
  6351                          "id": 59667,
  6352                          "isConstant": false,
  6353                          "isLValue": false,
  6354                          "isPure": false,
  6355                          "lValueRequested": false,
  6356                          "leftExpression": {
  6357                            "commonType": {
  6358                              "typeIdentifier": "t_uint128",
  6359                              "typeString": "uint128"
  6360                            },
  6361                            "id": 59657,
  6362                            "isConstant": false,
  6363                            "isLValue": false,
  6364                            "isPure": false,
  6365                            "lValueRequested": false,
  6366                            "leftExpression": {
  6367                              "expression": {
  6368                                "id": 59654,
  6369                                "name": "provenWithdrawal",
  6370                                "nodeType": "Identifier",
  6371                                "overloadedDeclarations": [],
  6372                                "referencedDeclaration": 59648,
  6373                                "src": "10975:16:110",
  6374                                "typeDescriptions": {
  6375                                  "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr",
  6376                                  "typeString": "struct OptimismPortal.ProvenWithdrawal memory"
  6377                                }
  6378                              },
  6379                              "id": 59655,
  6380                              "isConstant": false,
  6381                              "isLValue": true,
  6382                              "isPure": false,
  6383                              "lValueRequested": false,
  6384                              "memberName": "timestamp",
  6385                              "nodeType": "MemberAccess",
  6386                              "referencedDeclaration": 59309,
  6387                              "src": "10975:26:110",
  6388                              "typeDescriptions": {
  6389                                "typeIdentifier": "t_uint128",
  6390                                "typeString": "uint128"
  6391                              }
  6392                            },
  6393                            "nodeType": "BinaryOperation",
  6394                            "operator": "==",
  6395                            "rightExpression": {
  6396                              "hexValue": "30",
  6397                              "id": 59656,
  6398                              "isConstant": false,
  6399                              "isLValue": false,
  6400                              "isPure": true,
  6401                              "kind": "number",
  6402                              "lValueRequested": false,
  6403                              "nodeType": "Literal",
  6404                              "src": "11005:1:110",
  6405                              "typeDescriptions": {
  6406                                "typeIdentifier": "t_rational_0_by_1",
  6407                                "typeString": "int_const 0"
  6408                              },
  6409                              "value": "0"
  6410                            },
  6411                            "src": "10975:31:110",
  6412                            "typeDescriptions": {
  6413                              "typeIdentifier": "t_bool",
  6414                              "typeString": "bool"
  6415                            }
  6416                          },
  6417                          "nodeType": "BinaryOperation",
  6418                          "operator": "||",
  6419                          "rightExpression": {
  6420                            "commonType": {
  6421                              "typeIdentifier": "t_bytes32",
  6422                              "typeString": "bytes32"
  6423                            },
  6424                            "id": 59666,
  6425                            "isConstant": false,
  6426                            "isLValue": false,
  6427                            "isPure": false,
  6428                            "lValueRequested": false,
  6429                            "leftExpression": {
  6430                              "expression": {
  6431                                "arguments": [
  6432                                  {
  6433                                    "expression": {
  6434                                      "id": 59660,
  6435                                      "name": "provenWithdrawal",
  6436                                      "nodeType": "Identifier",
  6437                                      "overloadedDeclarations": [],
  6438                                      "referencedDeclaration": 59648,
  6439                                      "src": "11047:16:110",
  6440                                      "typeDescriptions": {
  6441                                        "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr",
  6442                                        "typeString": "struct OptimismPortal.ProvenWithdrawal memory"
  6443                                      }
  6444                                    },
  6445                                    "id": 59661,
  6446                                    "isConstant": false,
  6447                                    "isLValue": true,
  6448                                    "isPure": false,
  6449                                    "lValueRequested": false,
  6450                                    "memberName": "l2OutputIndex",
  6451                                    "nodeType": "MemberAccess",
  6452                                    "referencedDeclaration": 59311,
  6453                                    "src": "11047:30:110",
  6454                                    "typeDescriptions": {
  6455                                      "typeIdentifier": "t_uint128",
  6456                                      "typeString": "uint128"
  6457                                    }
  6458                                  }
  6459                                ],
  6460                                "expression": {
  6461                                  "argumentTypes": [
  6462                                    {
  6463                                      "typeIdentifier": "t_uint128",
  6464                                      "typeString": "uint128"
  6465                                    }
  6466                                  ],
  6467                                  "expression": {
  6468                                    "id": 59658,
  6469                                    "name": "l2Oracle",
  6470                                    "nodeType": "Identifier",
  6471                                    "overloadedDeclarations": [],
  6472                                    "referencedDeclaration": 59341,
  6473                                    "src": "11026:8:110",
  6474                                    "typeDescriptions": {
  6475                                      "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  6476                                      "typeString": "contract L2OutputOracle"
  6477                                    }
  6478                                  },
  6479                                  "id": 59659,
  6480                                  "isConstant": false,
  6481                                  "isLValue": false,
  6482                                  "isPure": false,
  6483                                  "lValueRequested": false,
  6484                                  "memberName": "getL2Output",
  6485                                  "nodeType": "MemberAccess",
  6486                                  "referencedDeclaration": 59112,
  6487                                  "src": "11026:20:110",
  6488                                  "typeDescriptions": {
  6489                                    "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_OutputProposal_$70553_memory_ptr_$",
  6490                                    "typeString": "function (uint256) view external returns (struct Types.OutputProposal memory)"
  6491                                  }
  6492                                },
  6493                                "id": 59662,
  6494                                "isConstant": false,
  6495                                "isLValue": false,
  6496                                "isPure": false,
  6497                                "kind": "functionCall",
  6498                                "lValueRequested": false,
  6499                                "names": [],
  6500                                "nodeType": "FunctionCall",
  6501                                "src": "11026:52:110",
  6502                                "tryCall": false,
  6503                                "typeDescriptions": {
  6504                                  "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr",
  6505                                  "typeString": "struct Types.OutputProposal memory"
  6506                                }
  6507                              },
  6508                              "id": 59663,
  6509                              "isConstant": false,
  6510                              "isLValue": true,
  6511                              "isPure": false,
  6512                              "lValueRequested": false,
  6513                              "memberName": "outputRoot",
  6514                              "nodeType": "MemberAccess",
  6515                              "referencedDeclaration": 70548,
  6516                              "src": "11026:63:110",
  6517                              "typeDescriptions": {
  6518                                "typeIdentifier": "t_bytes32",
  6519                                "typeString": "bytes32"
  6520                              }
  6521                            },
  6522                            "nodeType": "BinaryOperation",
  6523                            "operator": "!=",
  6524                            "rightExpression": {
  6525                              "expression": {
  6526                                "id": 59664,
  6527                                "name": "provenWithdrawal",
  6528                                "nodeType": "Identifier",
  6529                                "overloadedDeclarations": [],
  6530                                "referencedDeclaration": 59648,
  6531                                "src": "11093:16:110",
  6532                                "typeDescriptions": {
  6533                                  "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr",
  6534                                  "typeString": "struct OptimismPortal.ProvenWithdrawal memory"
  6535                                }
  6536                              },
  6537                              "id": 59665,
  6538                              "isConstant": false,
  6539                              "isLValue": true,
  6540                              "isPure": false,
  6541                              "lValueRequested": false,
  6542                              "memberName": "outputRoot",
  6543                              "nodeType": "MemberAccess",
  6544                              "referencedDeclaration": 59307,
  6545                              "src": "11093:27:110",
  6546                              "typeDescriptions": {
  6547                                "typeIdentifier": "t_bytes32",
  6548                                "typeString": "bytes32"
  6549                              }
  6550                            },
  6551                            "src": "11026:94:110",
  6552                            "typeDescriptions": {
  6553                              "typeIdentifier": "t_bool",
  6554                              "typeString": "bool"
  6555                            }
  6556                          },
  6557                          "src": "10975:145:110",
  6558                          "typeDescriptions": {
  6559                            "typeIdentifier": "t_bool",
  6560                            "typeString": "bool"
  6561                          }
  6562                        },
  6563                        {
  6564                          "hexValue": "4f7074696d69736d506f7274616c3a207769746864726177616c20686173682068617320616c7265616479206265656e2070726f76656e",
  6565                          "id": 59668,
  6566                          "isConstant": false,
  6567                          "isLValue": false,
  6568                          "isPure": true,
  6569                          "kind": "string",
  6570                          "lValueRequested": false,
  6571                          "nodeType": "Literal",
  6572                          "src": "11134:57:110",
  6573                          "typeDescriptions": {
  6574                            "typeIdentifier": "t_stringliteral_5238e365e021f6fd781c2264a5a09100f0670031b56dacfc224b453789ac1dd0",
  6575                            "typeString": "literal_string \"OptimismPortal: withdrawal hash has already been proven\""
  6576                          },
  6577                          "value": "OptimismPortal: withdrawal hash has already been proven"
  6578                        }
  6579                      ],
  6580                      "expression": {
  6581                        "argumentTypes": [
  6582                          {
  6583                            "typeIdentifier": "t_bool",
  6584                            "typeString": "bool"
  6585                          },
  6586                          {
  6587                            "typeIdentifier": "t_stringliteral_5238e365e021f6fd781c2264a5a09100f0670031b56dacfc224b453789ac1dd0",
  6588                            "typeString": "literal_string \"OptimismPortal: withdrawal hash has already been proven\""
  6589                          }
  6590                        ],
  6591                        "id": 59653,
  6592                        "name": "require",
  6593                        "nodeType": "Identifier",
  6594                        "overloadedDeclarations": [
  6595                          -18,
  6596                          -18
  6597                        ],
  6598                        "referencedDeclaration": -18,
  6599                        "src": "10954:7:110",
  6600                        "typeDescriptions": {
  6601                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  6602                          "typeString": "function (bool,string memory) pure"
  6603                        }
  6604                      },
  6605                      "id": 59669,
  6606                      "isConstant": false,
  6607                      "isLValue": false,
  6608                      "isPure": false,
  6609                      "kind": "functionCall",
  6610                      "lValueRequested": false,
  6611                      "names": [],
  6612                      "nodeType": "FunctionCall",
  6613                      "src": "10954:247:110",
  6614                      "tryCall": false,
  6615                      "typeDescriptions": {
  6616                        "typeIdentifier": "t_tuple$__$",
  6617                        "typeString": "tuple()"
  6618                      }
  6619                    },
  6620                    "id": 59670,
  6621                    "nodeType": "ExpressionStatement",
  6622                    "src": "10954:247:110"
  6623                  },
  6624                  {
  6625                    "assignments": [
  6626                      59672
  6627                    ],
  6628                    "declarations": [
  6629                      {
  6630                        "constant": false,
  6631                        "id": 59672,
  6632                        "mutability": "mutable",
  6633                        "name": "storageKey",
  6634                        "nameLocation": "11445:10:110",
  6635                        "nodeType": "VariableDeclaration",
  6636                        "scope": 59724,
  6637                        "src": "11437:18:110",
  6638                        "stateVariable": false,
  6639                        "storageLocation": "default",
  6640                        "typeDescriptions": {
  6641                          "typeIdentifier": "t_bytes32",
  6642                          "typeString": "bytes32"
  6643                        },
  6644                        "typeName": {
  6645                          "id": 59671,
  6646                          "name": "bytes32",
  6647                          "nodeType": "ElementaryTypeName",
  6648                          "src": "11437:7:110",
  6649                          "typeDescriptions": {
  6650                            "typeIdentifier": "t_bytes32",
  6651                            "typeString": "bytes32"
  6652                          }
  6653                        },
  6654                        "visibility": "internal"
  6655                      }
  6656                    ],
  6657                    "id": 59683,
  6658                    "initialValue": {
  6659                      "arguments": [
  6660                        {
  6661                          "arguments": [
  6662                            {
  6663                              "id": 59676,
  6664                              "name": "withdrawalHash",
  6665                              "nodeType": "Identifier",
  6666                              "overloadedDeclarations": [],
  6667                              "referencedDeclaration": 59640,
  6668                              "src": "11509:14:110",
  6669                              "typeDescriptions": {
  6670                                "typeIdentifier": "t_bytes32",
  6671                                "typeString": "bytes32"
  6672                              }
  6673                            },
  6674                            {
  6675                              "arguments": [
  6676                                {
  6677                                  "hexValue": "30",
  6678                                  "id": 59679,
  6679                                  "isConstant": false,
  6680                                  "isLValue": false,
  6681                                  "isPure": true,
  6682                                  "kind": "number",
  6683                                  "lValueRequested": false,
  6684                                  "nodeType": "Literal",
  6685                                  "src": "11549:1:110",
  6686                                  "typeDescriptions": {
  6687                                    "typeIdentifier": "t_rational_0_by_1",
  6688                                    "typeString": "int_const 0"
  6689                                  },
  6690                                  "value": "0"
  6691                                }
  6692                              ],
  6693                              "expression": {
  6694                                "argumentTypes": [
  6695                                  {
  6696                                    "typeIdentifier": "t_rational_0_by_1",
  6697                                    "typeString": "int_const 0"
  6698                                  }
  6699                                ],
  6700                                "id": 59678,
  6701                                "isConstant": false,
  6702                                "isLValue": false,
  6703                                "isPure": true,
  6704                                "lValueRequested": false,
  6705                                "nodeType": "ElementaryTypeNameExpression",
  6706                                "src": "11541:7:110",
  6707                                "typeDescriptions": {
  6708                                  "typeIdentifier": "t_type$_t_uint256_$",
  6709                                  "typeString": "type(uint256)"
  6710                                },
  6711                                "typeName": {
  6712                                  "id": 59677,
  6713                                  "name": "uint256",
  6714                                  "nodeType": "ElementaryTypeName",
  6715                                  "src": "11541:7:110",
  6716                                  "typeDescriptions": {}
  6717                                }
  6718                              },
  6719                              "id": 59680,
  6720                              "isConstant": false,
  6721                              "isLValue": false,
  6722                              "isPure": true,
  6723                              "kind": "typeConversion",
  6724                              "lValueRequested": false,
  6725                              "names": [],
  6726                              "nodeType": "FunctionCall",
  6727                              "src": "11541:10:110",
  6728                              "tryCall": false,
  6729                              "typeDescriptions": {
  6730                                "typeIdentifier": "t_uint256",
  6731                                "typeString": "uint256"
  6732                              }
  6733                            }
  6734                          ],
  6735                          "expression": {
  6736                            "argumentTypes": [
  6737                              {
  6738                                "typeIdentifier": "t_bytes32",
  6739                                "typeString": "bytes32"
  6740                              },
  6741                              {
  6742                                "typeIdentifier": "t_uint256",
  6743                                "typeString": "uint256"
  6744                              }
  6745                            ],
  6746                            "expression": {
  6747                              "id": 59674,
  6748                              "name": "abi",
  6749                              "nodeType": "Identifier",
  6750                              "overloadedDeclarations": [],
  6751                              "referencedDeclaration": -1,
  6752                              "src": "11481:3:110",
  6753                              "typeDescriptions": {
  6754                                "typeIdentifier": "t_magic_abi",
  6755                                "typeString": "abi"
  6756                              }
  6757                            },
  6758                            "id": 59675,
  6759                            "isConstant": false,
  6760                            "isLValue": false,
  6761                            "isPure": true,
  6762                            "lValueRequested": false,
  6763                            "memberName": "encode",
  6764                            "nodeType": "MemberAccess",
  6765                            "src": "11481:10:110",
  6766                            "typeDescriptions": {
  6767                              "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
  6768                              "typeString": "function () pure returns (bytes memory)"
  6769                            }
  6770                          },
  6771                          "id": 59681,
  6772                          "isConstant": false,
  6773                          "isLValue": false,
  6774                          "isPure": false,
  6775                          "kind": "functionCall",
  6776                          "lValueRequested": false,
  6777                          "names": [],
  6778                          "nodeType": "FunctionCall",
  6779                          "src": "11481:147:110",
  6780                          "tryCall": false,
  6781                          "typeDescriptions": {
  6782                            "typeIdentifier": "t_bytes_memory_ptr",
  6783                            "typeString": "bytes memory"
  6784                          }
  6785                        }
  6786                      ],
  6787                      "expression": {
  6788                        "argumentTypes": [
  6789                          {
  6790                            "typeIdentifier": "t_bytes_memory_ptr",
  6791                            "typeString": "bytes memory"
  6792                          }
  6793                        ],
  6794                        "id": 59673,
  6795                        "name": "keccak256",
  6796                        "nodeType": "Identifier",
  6797                        "overloadedDeclarations": [],
  6798                        "referencedDeclaration": -8,
  6799                        "src": "11458:9:110",
  6800                        "typeDescriptions": {
  6801                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
  6802                          "typeString": "function (bytes memory) pure returns (bytes32)"
  6803                        }
  6804                      },
  6805                      "id": 59682,
  6806                      "isConstant": false,
  6807                      "isLValue": false,
  6808                      "isPure": false,
  6809                      "kind": "functionCall",
  6810                      "lValueRequested": false,
  6811                      "names": [],
  6812                      "nodeType": "FunctionCall",
  6813                      "src": "11458:180:110",
  6814                      "tryCall": false,
  6815                      "typeDescriptions": {
  6816                        "typeIdentifier": "t_bytes32",
  6817                        "typeString": "bytes32"
  6818                      }
  6819                    },
  6820                    "nodeType": "VariableDeclarationStatement",
  6821                    "src": "11437:201:110"
  6822                  },
  6823                  {
  6824                    "expression": {
  6825                      "arguments": [
  6826                        {
  6827                          "arguments": [
  6828                            {
  6829                              "arguments": [
  6830                                {
  6831                                  "id": 59689,
  6832                                  "name": "storageKey",
  6833                                  "nodeType": "Identifier",
  6834                                  "overloadedDeclarations": [],
  6835                                  "referencedDeclaration": 59672,
  6836                                  "src": "12057:10:110",
  6837                                  "typeDescriptions": {
  6838                                    "typeIdentifier": "t_bytes32",
  6839                                    "typeString": "bytes32"
  6840                                  }
  6841                                }
  6842                              ],
  6843                              "expression": {
  6844                                "argumentTypes": [
  6845                                  {
  6846                                    "typeIdentifier": "t_bytes32",
  6847                                    "typeString": "bytes32"
  6848                                  }
  6849                                ],
  6850                                "expression": {
  6851                                  "id": 59687,
  6852                                  "name": "abi",
  6853                                  "nodeType": "Identifier",
  6854                                  "overloadedDeclarations": [],
  6855                                  "referencedDeclaration": -1,
  6856                                  "src": "12046:3:110",
  6857                                  "typeDescriptions": {
  6858                                    "typeIdentifier": "t_magic_abi",
  6859                                    "typeString": "abi"
  6860                                  }
  6861                                },
  6862                                "id": 59688,
  6863                                "isConstant": false,
  6864                                "isLValue": false,
  6865                                "isPure": true,
  6866                                "lValueRequested": false,
  6867                                "memberName": "encode",
  6868                                "nodeType": "MemberAccess",
  6869                                "src": "12046:10:110",
  6870                                "typeDescriptions": {
  6871                                  "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
  6872                                  "typeString": "function () pure returns (bytes memory)"
  6873                                }
  6874                              },
  6875                              "id": 59690,
  6876                              "isConstant": false,
  6877                              "isLValue": false,
  6878                              "isPure": false,
  6879                              "kind": "functionCall",
  6880                              "lValueRequested": false,
  6881                              "names": [],
  6882                              "nodeType": "FunctionCall",
  6883                              "src": "12046:22:110",
  6884                              "tryCall": false,
  6885                              "typeDescriptions": {
  6886                                "typeIdentifier": "t_bytes_memory_ptr",
  6887                                "typeString": "bytes memory"
  6888                              }
  6889                            },
  6890                            {
  6891                              "hexValue": "01",
  6892                              "id": 59691,
  6893                              "isConstant": false,
  6894                              "isLValue": false,
  6895                              "isPure": true,
  6896                              "kind": "hexString",
  6897                              "lValueRequested": false,
  6898                              "nodeType": "Literal",
  6899                              "src": "12070:7:110",
  6900                              "typeDescriptions": {
  6901                                "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2",
  6902                                "typeString": "literal_string hex\"01\""
  6903                              },
  6904                              "value": "\u0001"
  6905                            },
  6906                            {
  6907                              "id": 59692,
  6908                              "name": "_withdrawalProof",
  6909                              "nodeType": "Identifier",
  6910                              "overloadedDeclarations": [],
  6911                              "referencedDeclaration": 59605,
  6912                              "src": "12079:16:110",
  6913                              "typeDescriptions": {
  6914                                "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr",
  6915                                "typeString": "bytes calldata[] calldata"
  6916                              }
  6917                            },
  6918                            {
  6919                              "expression": {
  6920                                "id": 59693,
  6921                                "name": "_outputRootProof",
  6922                                "nodeType": "Identifier",
  6923                                "overloadedDeclarations": [],
  6924                                "referencedDeclaration": 59602,
  6925                                "src": "12097:16:110",
  6926                                "typeDescriptions": {
  6927                                  "typeIdentifier": "t_struct$_OutputRootProof_$70562_calldata_ptr",
  6928                                  "typeString": "struct Types.OutputRootProof calldata"
  6929                                }
  6930                              },
  6931                              "id": 59694,
  6932                              "isConstant": false,
  6933                              "isLValue": false,
  6934                              "isPure": false,
  6935                              "lValueRequested": false,
  6936                              "memberName": "messagePasserStorageRoot",
  6937                              "nodeType": "MemberAccess",
  6938                              "referencedDeclaration": 70559,
  6939                              "src": "12097:41:110",
  6940                              "typeDescriptions": {
  6941                                "typeIdentifier": "t_bytes32",
  6942                                "typeString": "bytes32"
  6943                              }
  6944                            }
  6945                          ],
  6946                          "expression": {
  6947                            "argumentTypes": [
  6948                              {
  6949                                "typeIdentifier": "t_bytes_memory_ptr",
  6950                                "typeString": "bytes memory"
  6951                              },
  6952                              {
  6953                                "typeIdentifier": "t_stringliteral_5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2",
  6954                                "typeString": "literal_string hex\"01\""
  6955                              },
  6956                              {
  6957                                "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr",
  6958                                "typeString": "bytes calldata[] calldata"
  6959                              },
  6960                              {
  6961                                "typeIdentifier": "t_bytes32",
  6962                                "typeString": "bytes32"
  6963                              }
  6964                            ],
  6965                            "expression": {
  6966                              "id": 59685,
  6967                              "name": "SecureMerkleTrie",
  6968                              "nodeType": "Identifier",
  6969                              "overloadedDeclarations": [],
  6970                              "referencedDeclaration": 72279,
  6971                              "src": "11991:16:110",
  6972                              "typeDescriptions": {
  6973                                "typeIdentifier": "t_type$_t_contract$_SecureMerkleTrie_$72279_$",
  6974                                "typeString": "type(library SecureMerkleTrie)"
  6975                              }
  6976                            },
  6977                            "id": 59686,
  6978                            "isConstant": false,
  6979                            "isLValue": false,
  6980                            "isPure": false,
  6981                            "lValueRequested": false,
  6982                            "memberName": "verifyInclusionProof",
  6983                            "nodeType": "MemberAccess",
  6984                            "referencedDeclaration": 72231,
  6985                            "src": "11991:37:110",
  6986                            "typeDescriptions": {
  6987                              "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_bytes32_$returns$_t_bool_$",
  6988                              "typeString": "function (bytes memory,bytes memory,bytes memory[] memory,bytes32) pure returns (bool)"
  6989                            }
  6990                          },
  6991                          "id": 59695,
  6992                          "isConstant": false,
  6993                          "isLValue": false,
  6994                          "isPure": false,
  6995                          "kind": "functionCall",
  6996                          "lValueRequested": false,
  6997                          "names": [],
  6998                          "nodeType": "FunctionCall",
  6999                          "src": "11991:161:110",
  7000                          "tryCall": false,
  7001                          "typeDescriptions": {
  7002                            "typeIdentifier": "t_bool",
  7003                            "typeString": "bool"
  7004                          }
  7005                        },
  7006                        {
  7007                          "hexValue": "4f7074696d69736d506f7274616c3a20696e76616c6964207769746864726177616c20696e636c7573696f6e2070726f6f66",
  7008                          "id": 59696,
  7009                          "isConstant": false,
  7010                          "isLValue": false,
  7011                          "isPure": true,
  7012                          "kind": "string",
  7013                          "lValueRequested": false,
  7014                          "nodeType": "Literal",
  7015                          "src": "12166:52:110",
  7016                          "typeDescriptions": {
  7017                            "typeIdentifier": "t_stringliteral_11b666636981dad70da1c1a9e87589eb7d9c042eacd4d25e887aac557f6cd6b9",
  7018                            "typeString": "literal_string \"OptimismPortal: invalid withdrawal inclusion proof\""
  7019                          },
  7020                          "value": "OptimismPortal: invalid withdrawal inclusion proof"
  7021                        }
  7022                      ],
  7023                      "expression": {
  7024                        "argumentTypes": [
  7025                          {
  7026                            "typeIdentifier": "t_bool",
  7027                            "typeString": "bool"
  7028                          },
  7029                          {
  7030                            "typeIdentifier": "t_stringliteral_11b666636981dad70da1c1a9e87589eb7d9c042eacd4d25e887aac557f6cd6b9",
  7031                            "typeString": "literal_string \"OptimismPortal: invalid withdrawal inclusion proof\""
  7032                          }
  7033                        ],
  7034                        "id": 59684,
  7035                        "name": "require",
  7036                        "nodeType": "Identifier",
  7037                        "overloadedDeclarations": [
  7038                          -18,
  7039                          -18
  7040                        ],
  7041                        "referencedDeclaration": -18,
  7042                        "src": "11970:7:110",
  7043                        "typeDescriptions": {
  7044                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  7045                          "typeString": "function (bool,string memory) pure"
  7046                        }
  7047                      },
  7048                      "id": 59697,
  7049                      "isConstant": false,
  7050                      "isLValue": false,
  7051                      "isPure": false,
  7052                      "kind": "functionCall",
  7053                      "lValueRequested": false,
  7054                      "names": [],
  7055                      "nodeType": "FunctionCall",
  7056                      "src": "11970:258:110",
  7057                      "tryCall": false,
  7058                      "typeDescriptions": {
  7059                        "typeIdentifier": "t_tuple$__$",
  7060                        "typeString": "tuple()"
  7061                      }
  7062                    },
  7063                    "id": 59698,
  7064                    "nodeType": "ExpressionStatement",
  7065                    "src": "11970:258:110"
  7066                  },
  7067                  {
  7068                    "expression": {
  7069                      "id": 59714,
  7070                      "isConstant": false,
  7071                      "isLValue": false,
  7072                      "isPure": false,
  7073                      "lValueRequested": false,
  7074                      "leftHandSide": {
  7075                        "baseExpression": {
  7076                          "id": 59699,
  7077                          "name": "provenWithdrawals",
  7078                          "nodeType": "Identifier",
  7079                          "overloadedDeclarations": [],
  7080                          "referencedDeclaration": 59334,
  7081                          "src": "12510:17:110",
  7082                          "typeDescriptions": {
  7083                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$59312_storage_$",
  7084                            "typeString": "mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal storage ref)"
  7085                          }
  7086                        },
  7087                        "id": 59701,
  7088                        "indexExpression": {
  7089                          "id": 59700,
  7090                          "name": "withdrawalHash",
  7091                          "nodeType": "Identifier",
  7092                          "overloadedDeclarations": [],
  7093                          "referencedDeclaration": 59640,
  7094                          "src": "12528:14:110",
  7095                          "typeDescriptions": {
  7096                            "typeIdentifier": "t_bytes32",
  7097                            "typeString": "bytes32"
  7098                          }
  7099                        },
  7100                        "isConstant": false,
  7101                        "isLValue": true,
  7102                        "isPure": false,
  7103                        "lValueRequested": true,
  7104                        "nodeType": "IndexAccess",
  7105                        "src": "12510:33:110",
  7106                        "typeDescriptions": {
  7107                          "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage",
  7108                          "typeString": "struct OptimismPortal.ProvenWithdrawal storage ref"
  7109                        }
  7110                      },
  7111                      "nodeType": "Assignment",
  7112                      "operator": "=",
  7113                      "rightHandSide": {
  7114                        "arguments": [
  7115                          {
  7116                            "id": 59703,
  7117                            "name": "outputRoot",
  7118                            "nodeType": "Identifier",
  7119                            "overloadedDeclarations": [],
  7120                            "referencedDeclaration": 59622,
  7121                            "src": "12589:10:110",
  7122                            "typeDescriptions": {
  7123                              "typeIdentifier": "t_bytes32",
  7124                              "typeString": "bytes32"
  7125                            }
  7126                          },
  7127                          {
  7128                            "arguments": [
  7129                              {
  7130                                "expression": {
  7131                                  "id": 59706,
  7132                                  "name": "block",
  7133                                  "nodeType": "Identifier",
  7134                                  "overloadedDeclarations": [],
  7135                                  "referencedDeclaration": -4,
  7136                                  "src": "12632:5:110",
  7137                                  "typeDescriptions": {
  7138                                    "typeIdentifier": "t_magic_block",
  7139                                    "typeString": "block"
  7140                                  }
  7141                                },
  7142                                "id": 59707,
  7143                                "isConstant": false,
  7144                                "isLValue": false,
  7145                                "isPure": false,
  7146                                "lValueRequested": false,
  7147                                "memberName": "timestamp",
  7148                                "nodeType": "MemberAccess",
  7149                                "src": "12632:15:110",
  7150                                "typeDescriptions": {
  7151                                  "typeIdentifier": "t_uint256",
  7152                                  "typeString": "uint256"
  7153                                }
  7154                              }
  7155                            ],
  7156                            "expression": {
  7157                              "argumentTypes": [
  7158                                {
  7159                                  "typeIdentifier": "t_uint256",
  7160                                  "typeString": "uint256"
  7161                                }
  7162                              ],
  7163                              "id": 59705,
  7164                              "isConstant": false,
  7165                              "isLValue": false,
  7166                              "isPure": true,
  7167                              "lValueRequested": false,
  7168                              "nodeType": "ElementaryTypeNameExpression",
  7169                              "src": "12624:7:110",
  7170                              "typeDescriptions": {
  7171                                "typeIdentifier": "t_type$_t_uint128_$",
  7172                                "typeString": "type(uint128)"
  7173                              },
  7174                              "typeName": {
  7175                                "id": 59704,
  7176                                "name": "uint128",
  7177                                "nodeType": "ElementaryTypeName",
  7178                                "src": "12624:7:110",
  7179                                "typeDescriptions": {}
  7180                              }
  7181                            },
  7182                            "id": 59708,
  7183                            "isConstant": false,
  7184                            "isLValue": false,
  7185                            "isPure": false,
  7186                            "kind": "typeConversion",
  7187                            "lValueRequested": false,
  7188                            "names": [],
  7189                            "nodeType": "FunctionCall",
  7190                            "src": "12624:24:110",
  7191                            "tryCall": false,
  7192                            "typeDescriptions": {
  7193                              "typeIdentifier": "t_uint128",
  7194                              "typeString": "uint128"
  7195                            }
  7196                          },
  7197                          {
  7198                            "arguments": [
  7199                              {
  7200                                "id": 59711,
  7201                                "name": "_l2OutputIndex",
  7202                                "nodeType": "Identifier",
  7203                                "overloadedDeclarations": [],
  7204                                "referencedDeclaration": 59599,
  7205                                "src": "12685:14:110",
  7206                                "typeDescriptions": {
  7207                                  "typeIdentifier": "t_uint256",
  7208                                  "typeString": "uint256"
  7209                                }
  7210                              }
  7211                            ],
  7212                            "expression": {
  7213                              "argumentTypes": [
  7214                                {
  7215                                  "typeIdentifier": "t_uint256",
  7216                                  "typeString": "uint256"
  7217                                }
  7218                              ],
  7219                              "id": 59710,
  7220                              "isConstant": false,
  7221                              "isLValue": false,
  7222                              "isPure": true,
  7223                              "lValueRequested": false,
  7224                              "nodeType": "ElementaryTypeNameExpression",
  7225                              "src": "12677:7:110",
  7226                              "typeDescriptions": {
  7227                                "typeIdentifier": "t_type$_t_uint128_$",
  7228                                "typeString": "type(uint128)"
  7229                              },
  7230                              "typeName": {
  7231                                "id": 59709,
  7232                                "name": "uint128",
  7233                                "nodeType": "ElementaryTypeName",
  7234                                "src": "12677:7:110",
  7235                                "typeDescriptions": {}
  7236                              }
  7237                            },
  7238                            "id": 59712,
  7239                            "isConstant": false,
  7240                            "isLValue": false,
  7241                            "isPure": false,
  7242                            "kind": "typeConversion",
  7243                            "lValueRequested": false,
  7244                            "names": [],
  7245                            "nodeType": "FunctionCall",
  7246                            "src": "12677:23:110",
  7247                            "tryCall": false,
  7248                            "typeDescriptions": {
  7249                              "typeIdentifier": "t_uint128",
  7250                              "typeString": "uint128"
  7251                            }
  7252                          }
  7253                        ],
  7254                        "expression": {
  7255                          "argumentTypes": [
  7256                            {
  7257                              "typeIdentifier": "t_bytes32",
  7258                              "typeString": "bytes32"
  7259                            },
  7260                            {
  7261                              "typeIdentifier": "t_uint128",
  7262                              "typeString": "uint128"
  7263                            },
  7264                            {
  7265                              "typeIdentifier": "t_uint128",
  7266                              "typeString": "uint128"
  7267                            }
  7268                          ],
  7269                          "id": 59702,
  7270                          "name": "ProvenWithdrawal",
  7271                          "nodeType": "Identifier",
  7272                          "overloadedDeclarations": [],
  7273                          "referencedDeclaration": 59312,
  7274                          "src": "12546:16:110",
  7275                          "typeDescriptions": {
  7276                            "typeIdentifier": "t_type$_t_struct$_ProvenWithdrawal_$59312_storage_ptr_$",
  7277                            "typeString": "type(struct OptimismPortal.ProvenWithdrawal storage pointer)"
  7278                          }
  7279                        },
  7280                        "id": 59713,
  7281                        "isConstant": false,
  7282                        "isLValue": false,
  7283                        "isPure": false,
  7284                        "kind": "structConstructorCall",
  7285                        "lValueRequested": false,
  7286                        "names": [
  7287                          "outputRoot",
  7288                          "timestamp",
  7289                          "l2OutputIndex"
  7290                        ],
  7291                        "nodeType": "FunctionCall",
  7292                        "src": "12546:165:110",
  7293                        "tryCall": false,
  7294                        "typeDescriptions": {
  7295                          "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr",
  7296                          "typeString": "struct OptimismPortal.ProvenWithdrawal memory"
  7297                        }
  7298                      },
  7299                      "src": "12510:201:110",
  7300                      "typeDescriptions": {
  7301                        "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage",
  7302                        "typeString": "struct OptimismPortal.ProvenWithdrawal storage ref"
  7303                      }
  7304                    },
  7305                    "id": 59715,
  7306                    "nodeType": "ExpressionStatement",
  7307                    "src": "12510:201:110"
  7308                  },
  7309                  {
  7310                    "eventCall": {
  7311                      "arguments": [
  7312                        {
  7313                          "id": 59717,
  7314                          "name": "withdrawalHash",
  7315                          "nodeType": "Identifier",
  7316                          "overloadedDeclarations": [],
  7317                          "referencedDeclaration": 59640,
  7318                          "src": "12788:14:110",
  7319                          "typeDescriptions": {
  7320                            "typeIdentifier": "t_bytes32",
  7321                            "typeString": "bytes32"
  7322                          }
  7323                        },
  7324                        {
  7325                          "expression": {
  7326                            "id": 59718,
  7327                            "name": "_tx",
  7328                            "nodeType": "Identifier",
  7329                            "overloadedDeclarations": [],
  7330                            "referencedDeclaration": 59597,
  7331                            "src": "12804:3:110",
  7332                            "typeDescriptions": {
  7333                              "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  7334                              "typeString": "struct Types.WithdrawalTransaction memory"
  7335                            }
  7336                          },
  7337                          "id": 59719,
  7338                          "isConstant": false,
  7339                          "isLValue": true,
  7340                          "isPure": false,
  7341                          "lValueRequested": false,
  7342                          "memberName": "sender",
  7343                          "nodeType": "MemberAccess",
  7344                          "referencedDeclaration": 70585,
  7345                          "src": "12804:10:110",
  7346                          "typeDescriptions": {
  7347                            "typeIdentifier": "t_address",
  7348                            "typeString": "address"
  7349                          }
  7350                        },
  7351                        {
  7352                          "expression": {
  7353                            "id": 59720,
  7354                            "name": "_tx",
  7355                            "nodeType": "Identifier",
  7356                            "overloadedDeclarations": [],
  7357                            "referencedDeclaration": 59597,
  7358                            "src": "12816:3:110",
  7359                            "typeDescriptions": {
  7360                              "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  7361                              "typeString": "struct Types.WithdrawalTransaction memory"
  7362                            }
  7363                          },
  7364                          "id": 59721,
  7365                          "isConstant": false,
  7366                          "isLValue": true,
  7367                          "isPure": false,
  7368                          "lValueRequested": false,
  7369                          "memberName": "target",
  7370                          "nodeType": "MemberAccess",
  7371                          "referencedDeclaration": 70587,
  7372                          "src": "12816:10:110",
  7373                          "typeDescriptions": {
  7374                            "typeIdentifier": "t_address",
  7375                            "typeString": "address"
  7376                          }
  7377                        }
  7378                      ],
  7379                      "expression": {
  7380                        "argumentTypes": [
  7381                          {
  7382                            "typeIdentifier": "t_bytes32",
  7383                            "typeString": "bytes32"
  7384                          },
  7385                          {
  7386                            "typeIdentifier": "t_address",
  7387                            "typeString": "address"
  7388                          },
  7389                          {
  7390                            "typeIdentifier": "t_address",
  7391                            "typeString": "address"
  7392                          }
  7393                        ],
  7394                        "id": 59716,
  7395                        "name": "WithdrawalProven",
  7396                        "nodeType": "Identifier",
  7397                        "overloadedDeclarations": [],
  7398                        "referencedDeclaration": 59368,
  7399                        "src": "12771:16:110",
  7400                        "typeDescriptions": {
  7401                          "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$",
  7402                          "typeString": "function (bytes32,address,address)"
  7403                        }
  7404                      },
  7405                      "id": 59722,
  7406                      "isConstant": false,
  7407                      "isLValue": false,
  7408                      "isPure": false,
  7409                      "kind": "functionCall",
  7410                      "lValueRequested": false,
  7411                      "names": [],
  7412                      "nodeType": "FunctionCall",
  7413                      "src": "12771:56:110",
  7414                      "tryCall": false,
  7415                      "typeDescriptions": {
  7416                        "typeIdentifier": "t_tuple$__$",
  7417                        "typeString": "tuple()"
  7418                      }
  7419                    },
  7420                    "id": 59723,
  7421                    "nodeType": "EmitStatement",
  7422                    "src": "12766:61:110"
  7423                  }
  7424                ]
  7425              },
  7426              "documentation": {
  7427                "id": 59594,
  7428                "nodeType": "StructuredDocumentation",
  7429                "src": "8706:377:110",
  7430                "text": "@notice Proves a withdrawal transaction.\n @param _tx              Withdrawal transaction to finalize.\n @param _l2OutputIndex   L2 output index to prove against.\n @param _outputRootProof Inclusion proof of the L2ToL1MessagePasser contract's storage root.\n @param _withdrawalProof Inclusion proof of the withdrawal in L2ToL1MessagePasser contract."
  7431              },
  7432              "functionSelector": "4870496f",
  7433              "implemented": true,
  7434              "kind": "function",
  7435              "modifiers": [
  7436                {
  7437                  "id": 59608,
  7438                  "kind": "modifierInvocation",
  7439                  "modifierName": {
  7440                    "id": 59607,
  7441                    "name": "whenNotPaused",
  7442                    "nodeType": "IdentifierPath",
  7443                    "referencedDeclaration": 59397,
  7444                    "src": "9335:13:110"
  7445                  },
  7446                  "nodeType": "ModifierInvocation",
  7447                  "src": "9335:13:110"
  7448                }
  7449              ],
  7450              "name": "proveWithdrawalTransaction",
  7451              "nameLocation": "9097:26:110",
  7452              "parameters": {
  7453                "id": 59606,
  7454                "nodeType": "ParameterList",
  7455                "parameters": [
  7456                  {
  7457                    "constant": false,
  7458                    "id": 59597,
  7459                    "mutability": "mutable",
  7460                    "name": "_tx",
  7461                    "nameLocation": "9168:3:110",
  7462                    "nodeType": "VariableDeclaration",
  7463                    "scope": 59725,
  7464                    "src": "9133:38:110",
  7465                    "stateVariable": false,
  7466                    "storageLocation": "memory",
  7467                    "typeDescriptions": {
  7468                      "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  7469                      "typeString": "struct Types.WithdrawalTransaction"
  7470                    },
  7471                    "typeName": {
  7472                      "id": 59596,
  7473                      "nodeType": "UserDefinedTypeName",
  7474                      "pathNode": {
  7475                        "id": 59595,
  7476                        "name": "Types.WithdrawalTransaction",
  7477                        "nodeType": "IdentifierPath",
  7478                        "referencedDeclaration": 70594,
  7479                        "src": "9133:27:110"
  7480                      },
  7481                      "referencedDeclaration": 70594,
  7482                      "src": "9133:27:110",
  7483                      "typeDescriptions": {
  7484                        "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_storage_ptr",
  7485                        "typeString": "struct Types.WithdrawalTransaction"
  7486                      }
  7487                    },
  7488                    "visibility": "internal"
  7489                  },
  7490                  {
  7491                    "constant": false,
  7492                    "id": 59599,
  7493                    "mutability": "mutable",
  7494                    "name": "_l2OutputIndex",
  7495                    "nameLocation": "9189:14:110",
  7496                    "nodeType": "VariableDeclaration",
  7497                    "scope": 59725,
  7498                    "src": "9181:22:110",
  7499                    "stateVariable": false,
  7500                    "storageLocation": "default",
  7501                    "typeDescriptions": {
  7502                      "typeIdentifier": "t_uint256",
  7503                      "typeString": "uint256"
  7504                    },
  7505                    "typeName": {
  7506                      "id": 59598,
  7507                      "name": "uint256",
  7508                      "nodeType": "ElementaryTypeName",
  7509                      "src": "9181:7:110",
  7510                      "typeDescriptions": {
  7511                        "typeIdentifier": "t_uint256",
  7512                        "typeString": "uint256"
  7513                      }
  7514                    },
  7515                    "visibility": "internal"
  7516                  },
  7517                  {
  7518                    "constant": false,
  7519                    "id": 59602,
  7520                    "mutability": "mutable",
  7521                    "name": "_outputRootProof",
  7522                    "nameLocation": "9244:16:110",
  7523                    "nodeType": "VariableDeclaration",
  7524                    "scope": 59725,
  7525                    "src": "9213:47:110",
  7526                    "stateVariable": false,
  7527                    "storageLocation": "calldata",
  7528                    "typeDescriptions": {
  7529                      "typeIdentifier": "t_struct$_OutputRootProof_$70562_calldata_ptr",
  7530                      "typeString": "struct Types.OutputRootProof"
  7531                    },
  7532                    "typeName": {
  7533                      "id": 59601,
  7534                      "nodeType": "UserDefinedTypeName",
  7535                      "pathNode": {
  7536                        "id": 59600,
  7537                        "name": "Types.OutputRootProof",
  7538                        "nodeType": "IdentifierPath",
  7539                        "referencedDeclaration": 70562,
  7540                        "src": "9213:21:110"
  7541                      },
  7542                      "referencedDeclaration": 70562,
  7543                      "src": "9213:21:110",
  7544                      "typeDescriptions": {
  7545                        "typeIdentifier": "t_struct$_OutputRootProof_$70562_storage_ptr",
  7546                        "typeString": "struct Types.OutputRootProof"
  7547                      }
  7548                    },
  7549                    "visibility": "internal"
  7550                  },
  7551                  {
  7552                    "constant": false,
  7553                    "id": 59605,
  7554                    "mutability": "mutable",
  7555                    "name": "_withdrawalProof",
  7556                    "nameLocation": "9287:16:110",
  7557                    "nodeType": "VariableDeclaration",
  7558                    "scope": 59725,
  7559                    "src": "9270:33:110",
  7560                    "stateVariable": false,
  7561                    "storageLocation": "calldata",
  7562                    "typeDescriptions": {
  7563                      "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr",
  7564                      "typeString": "bytes[]"
  7565                    },
  7566                    "typeName": {
  7567                      "baseType": {
  7568                        "id": 59603,
  7569                        "name": "bytes",
  7570                        "nodeType": "ElementaryTypeName",
  7571                        "src": "9270:5:110",
  7572                        "typeDescriptions": {
  7573                          "typeIdentifier": "t_bytes_storage_ptr",
  7574                          "typeString": "bytes"
  7575                        }
  7576                      },
  7577                      "id": 59604,
  7578                      "nodeType": "ArrayTypeName",
  7579                      "src": "9270:7:110",
  7580                      "typeDescriptions": {
  7581                        "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
  7582                        "typeString": "bytes[]"
  7583                      }
  7584                    },
  7585                    "visibility": "internal"
  7586                  }
  7587                ],
  7588                "src": "9123:186:110"
  7589              },
  7590              "returnParameters": {
  7591                "id": 59609,
  7592                "nodeType": "ParameterList",
  7593                "parameters": [],
  7594                "src": "9353:0:110"
  7595              },
  7596              "scope": 59997,
  7597              "stateMutability": "nonpayable",
  7598              "virtual": false,
  7599              "visibility": "external"
  7600            },
  7601            {
  7602              "id": 59870,
  7603              "nodeType": "FunctionDefinition",
  7604              "src": "12947:4839:110",
  7605              "nodes": [],
  7606              "body": {
  7607                "id": 59869,
  7608                "nodeType": "Block",
  7609                "src": "13049:4737:110",
  7610                "nodes": [],
  7611                "statements": [
  7612                  {
  7613                    "expression": {
  7614                      "arguments": [
  7615                        {
  7616                          "commonType": {
  7617                            "typeIdentifier": "t_address",
  7618                            "typeString": "address"
  7619                          },
  7620                          "id": 59738,
  7621                          "isConstant": false,
  7622                          "isLValue": false,
  7623                          "isPure": false,
  7624                          "lValueRequested": false,
  7625                          "leftExpression": {
  7626                            "id": 59735,
  7627                            "name": "l2Sender",
  7628                            "nodeType": "Identifier",
  7629                            "overloadedDeclarations": [],
  7630                            "referencedDeclaration": 59323,
  7631                            "src": "13315:8:110",
  7632                            "typeDescriptions": {
  7633                              "typeIdentifier": "t_address",
  7634                              "typeString": "address"
  7635                            }
  7636                          },
  7637                          "nodeType": "BinaryOperation",
  7638                          "operator": "==",
  7639                          "rightExpression": {
  7640                            "expression": {
  7641                              "id": 59736,
  7642                              "name": "Constants",
  7643                              "nodeType": "Identifier",
  7644                              "overloadedDeclarations": [],
  7645                              "referencedDeclaration": 69571,
  7646                              "src": "13327:9:110",
  7647                              "typeDescriptions": {
  7648                                "typeIdentifier": "t_type$_t_contract$_Constants_$69571_$",
  7649                                "typeString": "type(library Constants)"
  7650                              }
  7651                            },
  7652                            "id": 59737,
  7653                            "isConstant": false,
  7654                            "isLValue": false,
  7655                            "isPure": false,
  7656                            "lValueRequested": false,
  7657                            "memberName": "DEFAULT_L2_SENDER",
  7658                            "nodeType": "MemberAccess",
  7659                            "referencedDeclaration": 69529,
  7660                            "src": "13327:27:110",
  7661                            "typeDescriptions": {
  7662                              "typeIdentifier": "t_address",
  7663                              "typeString": "address"
  7664                            }
  7665                          },
  7666                          "src": "13315:39:110",
  7667                          "typeDescriptions": {
  7668                            "typeIdentifier": "t_bool",
  7669                            "typeString": "bool"
  7670                          }
  7671                        },
  7672                        {
  7673                          "hexValue": "4f7074696d69736d506f7274616c3a2063616e206f6e6c792074726967676572206f6e65207769746864726177616c20706572207472616e73616374696f6e",
  7674                          "id": 59739,
  7675                          "isConstant": false,
  7676                          "isLValue": false,
  7677                          "isPure": true,
  7678                          "kind": "string",
  7679                          "lValueRequested": false,
  7680                          "nodeType": "Literal",
  7681                          "src": "13356:65:110",
  7682                          "typeDescriptions": {
  7683                            "typeIdentifier": "t_stringliteral_452e6500a4013b85635a7a9b231d68a5197c7f7579d0b96d0b2f2e5fe6b5995b",
  7684                            "typeString": "literal_string \"OptimismPortal: can only trigger one withdrawal per transaction\""
  7685                          },
  7686                          "value": "OptimismPortal: can only trigger one withdrawal per transaction"
  7687                        }
  7688                      ],
  7689                      "expression": {
  7690                        "argumentTypes": [
  7691                          {
  7692                            "typeIdentifier": "t_bool",
  7693                            "typeString": "bool"
  7694                          },
  7695                          {
  7696                            "typeIdentifier": "t_stringliteral_452e6500a4013b85635a7a9b231d68a5197c7f7579d0b96d0b2f2e5fe6b5995b",
  7697                            "typeString": "literal_string \"OptimismPortal: can only trigger one withdrawal per transaction\""
  7698                          }
  7699                        ],
  7700                        "id": 59734,
  7701                        "name": "require",
  7702                        "nodeType": "Identifier",
  7703                        "overloadedDeclarations": [
  7704                          -18,
  7705                          -18
  7706                        ],
  7707                        "referencedDeclaration": -18,
  7708                        "src": "13294:7:110",
  7709                        "typeDescriptions": {
  7710                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  7711                          "typeString": "function (bool,string memory) pure"
  7712                        }
  7713                      },
  7714                      "id": 59740,
  7715                      "isConstant": false,
  7716                      "isLValue": false,
  7717                      "isPure": false,
  7718                      "kind": "functionCall",
  7719                      "lValueRequested": false,
  7720                      "names": [],
  7721                      "nodeType": "FunctionCall",
  7722                      "src": "13294:137:110",
  7723                      "tryCall": false,
  7724                      "typeDescriptions": {
  7725                        "typeIdentifier": "t_tuple$__$",
  7726                        "typeString": "tuple()"
  7727                      }
  7728                    },
  7729                    "id": 59741,
  7730                    "nodeType": "ExpressionStatement",
  7731                    "src": "13294:137:110"
  7732                  },
  7733                  {
  7734                    "assignments": [
  7735                      59743
  7736                    ],
  7737                    "declarations": [
  7738                      {
  7739                        "constant": false,
  7740                        "id": 59743,
  7741                        "mutability": "mutable",
  7742                        "name": "withdrawalHash",
  7743                        "nameLocation": "13522:14:110",
  7744                        "nodeType": "VariableDeclaration",
  7745                        "scope": 59869,
  7746                        "src": "13514:22:110",
  7747                        "stateVariable": false,
  7748                        "storageLocation": "default",
  7749                        "typeDescriptions": {
  7750                          "typeIdentifier": "t_bytes32",
  7751                          "typeString": "bytes32"
  7752                        },
  7753                        "typeName": {
  7754                          "id": 59742,
  7755                          "name": "bytes32",
  7756                          "nodeType": "ElementaryTypeName",
  7757                          "src": "13514:7:110",
  7758                          "typeDescriptions": {
  7759                            "typeIdentifier": "t_bytes32",
  7760                            "typeString": "bytes32"
  7761                          }
  7762                        },
  7763                        "visibility": "internal"
  7764                      }
  7765                    ],
  7766                    "id": 59748,
  7767                    "initialValue": {
  7768                      "arguments": [
  7769                        {
  7770                          "id": 59746,
  7771                          "name": "_tx",
  7772                          "nodeType": "Identifier",
  7773                          "overloadedDeclarations": [],
  7774                          "referencedDeclaration": 59729,
  7775                          "src": "13562:3:110",
  7776                          "typeDescriptions": {
  7777                            "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  7778                            "typeString": "struct Types.WithdrawalTransaction memory"
  7779                          }
  7780                        }
  7781                      ],
  7782                      "expression": {
  7783                        "argumentTypes": [
  7784                          {
  7785                            "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  7786                            "typeString": "struct Types.WithdrawalTransaction memory"
  7787                          }
  7788                        ],
  7789                        "expression": {
  7790                          "id": 59744,
  7791                          "name": "Hashing",
  7792                          "nodeType": "Identifier",
  7793                          "overloadedDeclarations": [],
  7794                          "referencedDeclaration": 70279,
  7795                          "src": "13539:7:110",
  7796                          "typeDescriptions": {
  7797                            "typeIdentifier": "t_type$_t_contract$_Hashing_$70279_$",
  7798                            "typeString": "type(library Hashing)"
  7799                          }
  7800                        },
  7801                        "id": 59745,
  7802                        "isConstant": false,
  7803                        "isLValue": false,
  7804                        "isPure": false,
  7805                        "lValueRequested": false,
  7806                        "memberName": "hashWithdrawal",
  7807                        "nodeType": "MemberAccess",
  7808                        "referencedDeclaration": 70254,
  7809                        "src": "13539:22:110",
  7810                        "typeDescriptions": {
  7811                          "typeIdentifier": "t_function_internal_pure$_t_struct$_WithdrawalTransaction_$70594_memory_ptr_$returns$_t_bytes32_$",
  7812                          "typeString": "function (struct Types.WithdrawalTransaction memory) pure returns (bytes32)"
  7813                        }
  7814                      },
  7815                      "id": 59747,
  7816                      "isConstant": false,
  7817                      "isLValue": false,
  7818                      "isPure": false,
  7819                      "kind": "functionCall",
  7820                      "lValueRequested": false,
  7821                      "names": [],
  7822                      "nodeType": "FunctionCall",
  7823                      "src": "13539:27:110",
  7824                      "tryCall": false,
  7825                      "typeDescriptions": {
  7826                        "typeIdentifier": "t_bytes32",
  7827                        "typeString": "bytes32"
  7828                      }
  7829                    },
  7830                    "nodeType": "VariableDeclarationStatement",
  7831                    "src": "13514:52:110"
  7832                  },
  7833                  {
  7834                    "assignments": [
  7835                      59751
  7836                    ],
  7837                    "declarations": [
  7838                      {
  7839                        "constant": false,
  7840                        "id": 59751,
  7841                        "mutability": "mutable",
  7842                        "name": "provenWithdrawal",
  7843                        "nameLocation": "13600:16:110",
  7844                        "nodeType": "VariableDeclaration",
  7845                        "scope": 59869,
  7846                        "src": "13576:40:110",
  7847                        "stateVariable": false,
  7848                        "storageLocation": "memory",
  7849                        "typeDescriptions": {
  7850                          "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr",
  7851                          "typeString": "struct OptimismPortal.ProvenWithdrawal"
  7852                        },
  7853                        "typeName": {
  7854                          "id": 59750,
  7855                          "nodeType": "UserDefinedTypeName",
  7856                          "pathNode": {
  7857                            "id": 59749,
  7858                            "name": "ProvenWithdrawal",
  7859                            "nodeType": "IdentifierPath",
  7860                            "referencedDeclaration": 59312,
  7861                            "src": "13576:16:110"
  7862                          },
  7863                          "referencedDeclaration": 59312,
  7864                          "src": "13576:16:110",
  7865                          "typeDescriptions": {
  7866                            "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage_ptr",
  7867                            "typeString": "struct OptimismPortal.ProvenWithdrawal"
  7868                          }
  7869                        },
  7870                        "visibility": "internal"
  7871                      }
  7872                    ],
  7873                    "id": 59755,
  7874                    "initialValue": {
  7875                      "baseExpression": {
  7876                        "id": 59752,
  7877                        "name": "provenWithdrawals",
  7878                        "nodeType": "Identifier",
  7879                        "overloadedDeclarations": [],
  7880                        "referencedDeclaration": 59334,
  7881                        "src": "13619:17:110",
  7882                        "typeDescriptions": {
  7883                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProvenWithdrawal_$59312_storage_$",
  7884                          "typeString": "mapping(bytes32 => struct OptimismPortal.ProvenWithdrawal storage ref)"
  7885                        }
  7886                      },
  7887                      "id": 59754,
  7888                      "indexExpression": {
  7889                        "id": 59753,
  7890                        "name": "withdrawalHash",
  7891                        "nodeType": "Identifier",
  7892                        "overloadedDeclarations": [],
  7893                        "referencedDeclaration": 59743,
  7894                        "src": "13637:14:110",
  7895                        "typeDescriptions": {
  7896                          "typeIdentifier": "t_bytes32",
  7897                          "typeString": "bytes32"
  7898                        }
  7899                      },
  7900                      "isConstant": false,
  7901                      "isLValue": true,
  7902                      "isPure": false,
  7903                      "lValueRequested": false,
  7904                      "nodeType": "IndexAccess",
  7905                      "src": "13619:33:110",
  7906                      "typeDescriptions": {
  7907                        "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_storage",
  7908                        "typeString": "struct OptimismPortal.ProvenWithdrawal storage ref"
  7909                      }
  7910                    },
  7911                    "nodeType": "VariableDeclarationStatement",
  7912                    "src": "13576:76:110"
  7913                  },
  7914                  {
  7915                    "expression": {
  7916                      "arguments": [
  7917                        {
  7918                          "commonType": {
  7919                            "typeIdentifier": "t_uint128",
  7920                            "typeString": "uint128"
  7921                          },
  7922                          "id": 59760,
  7923                          "isConstant": false,
  7924                          "isLValue": false,
  7925                          "isPure": false,
  7926                          "lValueRequested": false,
  7927                          "leftExpression": {
  7928                            "expression": {
  7929                              "id": 59757,
  7930                              "name": "provenWithdrawal",
  7931                              "nodeType": "Identifier",
  7932                              "overloadedDeclarations": [],
  7933                              "referencedDeclaration": 59751,
  7934                              "src": "13902:16:110",
  7935                              "typeDescriptions": {
  7936                                "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr",
  7937                                "typeString": "struct OptimismPortal.ProvenWithdrawal memory"
  7938                              }
  7939                            },
  7940                            "id": 59758,
  7941                            "isConstant": false,
  7942                            "isLValue": true,
  7943                            "isPure": false,
  7944                            "lValueRequested": false,
  7945                            "memberName": "timestamp",
  7946                            "nodeType": "MemberAccess",
  7947                            "referencedDeclaration": 59309,
  7948                            "src": "13902:26:110",
  7949                            "typeDescriptions": {
  7950                              "typeIdentifier": "t_uint128",
  7951                              "typeString": "uint128"
  7952                            }
  7953                          },
  7954                          "nodeType": "BinaryOperation",
  7955                          "operator": "!=",
  7956                          "rightExpression": {
  7957                            "hexValue": "30",
  7958                            "id": 59759,
  7959                            "isConstant": false,
  7960                            "isLValue": false,
  7961                            "isPure": true,
  7962                            "kind": "number",
  7963                            "lValueRequested": false,
  7964                            "nodeType": "Literal",
  7965                            "src": "13932:1:110",
  7966                            "typeDescriptions": {
  7967                              "typeIdentifier": "t_rational_0_by_1",
  7968                              "typeString": "int_const 0"
  7969                            },
  7970                            "value": "0"
  7971                          },
  7972                          "src": "13902:31:110",
  7973                          "typeDescriptions": {
  7974                            "typeIdentifier": "t_bool",
  7975                            "typeString": "bool"
  7976                          }
  7977                        },
  7978                        {
  7979                          "hexValue": "4f7074696d69736d506f7274616c3a207769746864726177616c20686173206e6f74206265656e2070726f76656e20796574",
  7980                          "id": 59761,
  7981                          "isConstant": false,
  7982                          "isLValue": false,
  7983                          "isPure": true,
  7984                          "kind": "string",
  7985                          "lValueRequested": false,
  7986                          "nodeType": "Literal",
  7987                          "src": "13935:52:110",
  7988                          "typeDescriptions": {
  7989                            "typeIdentifier": "t_stringliteral_bc94f9f4f2ecd47ddd807efca122bcc34325481f7fe9d60687e25c709aff1610",
  7990                            "typeString": "literal_string \"OptimismPortal: withdrawal has not been proven yet\""
  7991                          },
  7992                          "value": "OptimismPortal: withdrawal has not been proven yet"
  7993                        }
  7994                      ],
  7995                      "expression": {
  7996                        "argumentTypes": [
  7997                          {
  7998                            "typeIdentifier": "t_bool",
  7999                            "typeString": "bool"
  8000                          },
  8001                          {
  8002                            "typeIdentifier": "t_stringliteral_bc94f9f4f2ecd47ddd807efca122bcc34325481f7fe9d60687e25c709aff1610",
  8003                            "typeString": "literal_string \"OptimismPortal: withdrawal has not been proven yet\""
  8004                          }
  8005                        ],
  8006                        "id": 59756,
  8007                        "name": "require",
  8008                        "nodeType": "Identifier",
  8009                        "overloadedDeclarations": [
  8010                          -18,
  8011                          -18
  8012                        ],
  8013                        "referencedDeclaration": -18,
  8014                        "src": "13894:7:110",
  8015                        "typeDescriptions": {
  8016                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  8017                          "typeString": "function (bool,string memory) pure"
  8018                        }
  8019                      },
  8020                      "id": 59762,
  8021                      "isConstant": false,
  8022                      "isLValue": false,
  8023                      "isPure": false,
  8024                      "kind": "functionCall",
  8025                      "lValueRequested": false,
  8026                      "names": [],
  8027                      "nodeType": "FunctionCall",
  8028                      "src": "13894:94:110",
  8029                      "tryCall": false,
  8030                      "typeDescriptions": {
  8031                        "typeIdentifier": "t_tuple$__$",
  8032                        "typeString": "tuple()"
  8033                      }
  8034                    },
  8035                    "id": 59763,
  8036                    "nodeType": "ExpressionStatement",
  8037                    "src": "13894:94:110"
  8038                  },
  8039                  {
  8040                    "expression": {
  8041                      "arguments": [
  8042                        {
  8043                          "commonType": {
  8044                            "typeIdentifier": "t_uint256",
  8045                            "typeString": "uint256"
  8046                          },
  8047                          "id": 59770,
  8048                          "isConstant": false,
  8049                          "isLValue": false,
  8050                          "isPure": false,
  8051                          "lValueRequested": false,
  8052                          "leftExpression": {
  8053                            "expression": {
  8054                              "id": 59765,
  8055                              "name": "provenWithdrawal",
  8056                              "nodeType": "Identifier",
  8057                              "overloadedDeclarations": [],
  8058                              "referencedDeclaration": 59751,
  8059                              "src": "14275:16:110",
  8060                              "typeDescriptions": {
  8061                                "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr",
  8062                                "typeString": "struct OptimismPortal.ProvenWithdrawal memory"
  8063                              }
  8064                            },
  8065                            "id": 59766,
  8066                            "isConstant": false,
  8067                            "isLValue": true,
  8068                            "isPure": false,
  8069                            "lValueRequested": false,
  8070                            "memberName": "timestamp",
  8071                            "nodeType": "MemberAccess",
  8072                            "referencedDeclaration": 59309,
  8073                            "src": "14275:26:110",
  8074                            "typeDescriptions": {
  8075                              "typeIdentifier": "t_uint128",
  8076                              "typeString": "uint128"
  8077                            }
  8078                          },
  8079                          "nodeType": "BinaryOperation",
  8080                          "operator": ">=",
  8081                          "rightExpression": {
  8082                            "arguments": [],
  8083                            "expression": {
  8084                              "argumentTypes": [],
  8085                              "expression": {
  8086                                "id": 59767,
  8087                                "name": "l2Oracle",
  8088                                "nodeType": "Identifier",
  8089                                "overloadedDeclarations": [],
  8090                                "referencedDeclaration": 59341,
  8091                                "src": "14305:8:110",
  8092                                "typeDescriptions": {
  8093                                  "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  8094                                  "typeString": "contract L2OutputOracle"
  8095                                }
  8096                              },
  8097                              "id": 59768,
  8098                              "isConstant": false,
  8099                              "isLValue": false,
  8100                              "isPure": false,
  8101                              "lValueRequested": false,
  8102                              "memberName": "startingTimestamp",
  8103                              "nodeType": "MemberAccess",
  8104                              "referencedDeclaration": 58789,
  8105                              "src": "14305:26:110",
  8106                              "typeDescriptions": {
  8107                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
  8108                                "typeString": "function () view external returns (uint256)"
  8109                              }
  8110                            },
  8111                            "id": 59769,
  8112                            "isConstant": false,
  8113                            "isLValue": false,
  8114                            "isPure": false,
  8115                            "kind": "functionCall",
  8116                            "lValueRequested": false,
  8117                            "names": [],
  8118                            "nodeType": "FunctionCall",
  8119                            "src": "14305:28:110",
  8120                            "tryCall": false,
  8121                            "typeDescriptions": {
  8122                              "typeIdentifier": "t_uint256",
  8123                              "typeString": "uint256"
  8124                            }
  8125                          },
  8126                          "src": "14275:58:110",
  8127                          "typeDescriptions": {
  8128                            "typeIdentifier": "t_bool",
  8129                            "typeString": "bool"
  8130                          }
  8131                        },
  8132                        {
  8133                          "hexValue": "4f7074696d69736d506f7274616c3a207769746864726177616c2074696d657374616d70206c657373207468616e204c32204f7261636c65207374617274696e672074696d657374616d70",
  8134                          "id": 59771,
  8135                          "isConstant": false,
  8136                          "isLValue": false,
  8137                          "isPure": true,
  8138                          "kind": "string",
  8139                          "lValueRequested": false,
  8140                          "nodeType": "Literal",
  8141                          "src": "14347:77:110",
  8142                          "typeDescriptions": {
  8143                            "typeIdentifier": "t_stringliteral_5c7c78dd7f8d5d79f2ff5ac1a4442209661a78fffa24392f88331b760a60bedd",
  8144                            "typeString": "literal_string \"OptimismPortal: withdrawal timestamp less than L2 Oracle starting timestamp\""
  8145                          },
  8146                          "value": "OptimismPortal: withdrawal timestamp less than L2 Oracle starting timestamp"
  8147                        }
  8148                      ],
  8149                      "expression": {
  8150                        "argumentTypes": [
  8151                          {
  8152                            "typeIdentifier": "t_bool",
  8153                            "typeString": "bool"
  8154                          },
  8155                          {
  8156                            "typeIdentifier": "t_stringliteral_5c7c78dd7f8d5d79f2ff5ac1a4442209661a78fffa24392f88331b760a60bedd",
  8157                            "typeString": "literal_string \"OptimismPortal: withdrawal timestamp less than L2 Oracle starting timestamp\""
  8158                          }
  8159                        ],
  8160                        "id": 59764,
  8161                        "name": "require",
  8162                        "nodeType": "Identifier",
  8163                        "overloadedDeclarations": [
  8164                          -18,
  8165                          -18
  8166                        ],
  8167                        "referencedDeclaration": -18,
  8168                        "src": "14254:7:110",
  8169                        "typeDescriptions": {
  8170                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  8171                          "typeString": "function (bool,string memory) pure"
  8172                        }
  8173                      },
  8174                      "id": 59772,
  8175                      "isConstant": false,
  8176                      "isLValue": false,
  8177                      "isPure": false,
  8178                      "kind": "functionCall",
  8179                      "lValueRequested": false,
  8180                      "names": [],
  8181                      "nodeType": "FunctionCall",
  8182                      "src": "14254:180:110",
  8183                      "tryCall": false,
  8184                      "typeDescriptions": {
  8185                        "typeIdentifier": "t_tuple$__$",
  8186                        "typeString": "tuple()"
  8187                      }
  8188                    },
  8189                    "id": 59773,
  8190                    "nodeType": "ExpressionStatement",
  8191                    "src": "14254:180:110"
  8192                  },
  8193                  {
  8194                    "expression": {
  8195                      "arguments": [
  8196                        {
  8197                          "arguments": [
  8198                            {
  8199                              "expression": {
  8200                                "id": 59776,
  8201                                "name": "provenWithdrawal",
  8202                                "nodeType": "Identifier",
  8203                                "overloadedDeclarations": [],
  8204                                "referencedDeclaration": 59751,
  8205                                "src": "14853:16:110",
  8206                                "typeDescriptions": {
  8207                                  "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr",
  8208                                  "typeString": "struct OptimismPortal.ProvenWithdrawal memory"
  8209                                }
  8210                              },
  8211                              "id": 59777,
  8212                              "isConstant": false,
  8213                              "isLValue": true,
  8214                              "isPure": false,
  8215                              "lValueRequested": false,
  8216                              "memberName": "timestamp",
  8217                              "nodeType": "MemberAccess",
  8218                              "referencedDeclaration": 59309,
  8219                              "src": "14853:26:110",
  8220                              "typeDescriptions": {
  8221                                "typeIdentifier": "t_uint128",
  8222                                "typeString": "uint128"
  8223                              }
  8224                            }
  8225                          ],
  8226                          "expression": {
  8227                            "argumentTypes": [
  8228                              {
  8229                                "typeIdentifier": "t_uint128",
  8230                                "typeString": "uint128"
  8231                              }
  8232                            ],
  8233                            "id": 59775,
  8234                            "name": "_isFinalizationPeriodElapsed",
  8235                            "nodeType": "Identifier",
  8236                            "overloadedDeclarations": [],
  8237                            "referencedDeclaration": 59996,
  8238                            "src": "14824:28:110",
  8239                            "typeDescriptions": {
  8240                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
  8241                              "typeString": "function (uint256) view returns (bool)"
  8242                            }
  8243                          },
  8244                          "id": 59778,
  8245                          "isConstant": false,
  8246                          "isLValue": false,
  8247                          "isPure": false,
  8248                          "kind": "functionCall",
  8249                          "lValueRequested": false,
  8250                          "names": [],
  8251                          "nodeType": "FunctionCall",
  8252                          "src": "14824:56:110",
  8253                          "tryCall": false,
  8254                          "typeDescriptions": {
  8255                            "typeIdentifier": "t_bool",
  8256                            "typeString": "bool"
  8257                          }
  8258                        },
  8259                        {
  8260                          "hexValue": "4f7074696d69736d506f7274616c3a2070726f76656e207769746864726177616c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c6170736564",
  8261                          "id": 59779,
  8262                          "isConstant": false,
  8263                          "isLValue": false,
  8264                          "isPure": true,
  8265                          "kind": "string",
  8266                          "lValueRequested": false,
  8267                          "nodeType": "Literal",
  8268                          "src": "14894:71:110",
  8269                          "typeDescriptions": {
  8270                            "typeIdentifier": "t_stringliteral_98a66ca0d4a8e5a839585f0aa5b4b8fc94a946382443fc5580ee1ed6e6237f70",
  8271                            "typeString": "literal_string \"OptimismPortal: proven withdrawal finalization period has not elapsed\""
  8272                          },
  8273                          "value": "OptimismPortal: proven withdrawal finalization period has not elapsed"
  8274                        }
  8275                      ],
  8276                      "expression": {
  8277                        "argumentTypes": [
  8278                          {
  8279                            "typeIdentifier": "t_bool",
  8280                            "typeString": "bool"
  8281                          },
  8282                          {
  8283                            "typeIdentifier": "t_stringliteral_98a66ca0d4a8e5a839585f0aa5b4b8fc94a946382443fc5580ee1ed6e6237f70",
  8284                            "typeString": "literal_string \"OptimismPortal: proven withdrawal finalization period has not elapsed\""
  8285                          }
  8286                        ],
  8287                        "id": 59774,
  8288                        "name": "require",
  8289                        "nodeType": "Identifier",
  8290                        "overloadedDeclarations": [
  8291                          -18,
  8292                          -18
  8293                        ],
  8294                        "referencedDeclaration": -18,
  8295                        "src": "14803:7:110",
  8296                        "typeDescriptions": {
  8297                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  8298                          "typeString": "function (bool,string memory) pure"
  8299                        }
  8300                      },
  8301                      "id": 59780,
  8302                      "isConstant": false,
  8303                      "isLValue": false,
  8304                      "isPure": false,
  8305                      "kind": "functionCall",
  8306                      "lValueRequested": false,
  8307                      "names": [],
  8308                      "nodeType": "FunctionCall",
  8309                      "src": "14803:172:110",
  8310                      "tryCall": false,
  8311                      "typeDescriptions": {
  8312                        "typeIdentifier": "t_tuple$__$",
  8313                        "typeString": "tuple()"
  8314                      }
  8315                    },
  8316                    "id": 59781,
  8317                    "nodeType": "ExpressionStatement",
  8318                    "src": "14803:172:110"
  8319                  },
  8320                  {
  8321                    "assignments": [
  8322                      59786
  8323                    ],
  8324                    "declarations": [
  8325                      {
  8326                        "constant": false,
  8327                        "id": 59786,
  8328                        "mutability": "mutable",
  8329                        "name": "proposal",
  8330                        "nameLocation": "15174:8:110",
  8331                        "nodeType": "VariableDeclaration",
  8332                        "scope": 59869,
  8333                        "src": "15146:36:110",
  8334                        "stateVariable": false,
  8335                        "storageLocation": "memory",
  8336                        "typeDescriptions": {
  8337                          "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr",
  8338                          "typeString": "struct Types.OutputProposal"
  8339                        },
  8340                        "typeName": {
  8341                          "id": 59785,
  8342                          "nodeType": "UserDefinedTypeName",
  8343                          "pathNode": {
  8344                            "id": 59784,
  8345                            "name": "Types.OutputProposal",
  8346                            "nodeType": "IdentifierPath",
  8347                            "referencedDeclaration": 70553,
  8348                            "src": "15146:20:110"
  8349                          },
  8350                          "referencedDeclaration": 70553,
  8351                          "src": "15146:20:110",
  8352                          "typeDescriptions": {
  8353                            "typeIdentifier": "t_struct$_OutputProposal_$70553_storage_ptr",
  8354                            "typeString": "struct Types.OutputProposal"
  8355                          }
  8356                        },
  8357                        "visibility": "internal"
  8358                      }
  8359                    ],
  8360                    "id": 59792,
  8361                    "initialValue": {
  8362                      "arguments": [
  8363                        {
  8364                          "expression": {
  8365                            "id": 59789,
  8366                            "name": "provenWithdrawal",
  8367                            "nodeType": "Identifier",
  8368                            "overloadedDeclarations": [],
  8369                            "referencedDeclaration": 59751,
  8370                            "src": "15206:16:110",
  8371                            "typeDescriptions": {
  8372                              "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr",
  8373                              "typeString": "struct OptimismPortal.ProvenWithdrawal memory"
  8374                            }
  8375                          },
  8376                          "id": 59790,
  8377                          "isConstant": false,
  8378                          "isLValue": true,
  8379                          "isPure": false,
  8380                          "lValueRequested": false,
  8381                          "memberName": "l2OutputIndex",
  8382                          "nodeType": "MemberAccess",
  8383                          "referencedDeclaration": 59311,
  8384                          "src": "15206:30:110",
  8385                          "typeDescriptions": {
  8386                            "typeIdentifier": "t_uint128",
  8387                            "typeString": "uint128"
  8388                          }
  8389                        }
  8390                      ],
  8391                      "expression": {
  8392                        "argumentTypes": [
  8393                          {
  8394                            "typeIdentifier": "t_uint128",
  8395                            "typeString": "uint128"
  8396                          }
  8397                        ],
  8398                        "expression": {
  8399                          "id": 59787,
  8400                          "name": "l2Oracle",
  8401                          "nodeType": "Identifier",
  8402                          "overloadedDeclarations": [],
  8403                          "referencedDeclaration": 59341,
  8404                          "src": "15185:8:110",
  8405                          "typeDescriptions": {
  8406                            "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
  8407                            "typeString": "contract L2OutputOracle"
  8408                          }
  8409                        },
  8410                        "id": 59788,
  8411                        "isConstant": false,
  8412                        "isLValue": false,
  8413                        "isPure": false,
  8414                        "lValueRequested": false,
  8415                        "memberName": "getL2Output",
  8416                        "nodeType": "MemberAccess",
  8417                        "referencedDeclaration": 59112,
  8418                        "src": "15185:20:110",
  8419                        "typeDescriptions": {
  8420                          "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_OutputProposal_$70553_memory_ptr_$",
  8421                          "typeString": "function (uint256) view external returns (struct Types.OutputProposal memory)"
  8422                        }
  8423                      },
  8424                      "id": 59791,
  8425                      "isConstant": false,
  8426                      "isLValue": false,
  8427                      "isPure": false,
  8428                      "kind": "functionCall",
  8429                      "lValueRequested": false,
  8430                      "names": [],
  8431                      "nodeType": "FunctionCall",
  8432                      "src": "15185:52:110",
  8433                      "tryCall": false,
  8434                      "typeDescriptions": {
  8435                        "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr",
  8436                        "typeString": "struct Types.OutputProposal memory"
  8437                      }
  8438                    },
  8439                    "nodeType": "VariableDeclarationStatement",
  8440                    "src": "15146:91:110"
  8441                  },
  8442                  {
  8443                    "expression": {
  8444                      "arguments": [
  8445                        {
  8446                          "commonType": {
  8447                            "typeIdentifier": "t_bytes32",
  8448                            "typeString": "bytes32"
  8449                          },
  8450                          "id": 59798,
  8451                          "isConstant": false,
  8452                          "isLValue": false,
  8453                          "isPure": false,
  8454                          "lValueRequested": false,
  8455                          "leftExpression": {
  8456                            "expression": {
  8457                              "id": 59794,
  8458                              "name": "proposal",
  8459                              "nodeType": "Identifier",
  8460                              "overloadedDeclarations": [],
  8461                              "referencedDeclaration": 59786,
  8462                              "src": "15525:8:110",
  8463                              "typeDescriptions": {
  8464                                "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr",
  8465                                "typeString": "struct Types.OutputProposal memory"
  8466                              }
  8467                            },
  8468                            "id": 59795,
  8469                            "isConstant": false,
  8470                            "isLValue": true,
  8471                            "isPure": false,
  8472                            "lValueRequested": false,
  8473                            "memberName": "outputRoot",
  8474                            "nodeType": "MemberAccess",
  8475                            "referencedDeclaration": 70548,
  8476                            "src": "15525:19:110",
  8477                            "typeDescriptions": {
  8478                              "typeIdentifier": "t_bytes32",
  8479                              "typeString": "bytes32"
  8480                            }
  8481                          },
  8482                          "nodeType": "BinaryOperation",
  8483                          "operator": "==",
  8484                          "rightExpression": {
  8485                            "expression": {
  8486                              "id": 59796,
  8487                              "name": "provenWithdrawal",
  8488                              "nodeType": "Identifier",
  8489                              "overloadedDeclarations": [],
  8490                              "referencedDeclaration": 59751,
  8491                              "src": "15548:16:110",
  8492                              "typeDescriptions": {
  8493                                "typeIdentifier": "t_struct$_ProvenWithdrawal_$59312_memory_ptr",
  8494                                "typeString": "struct OptimismPortal.ProvenWithdrawal memory"
  8495                              }
  8496                            },
  8497                            "id": 59797,
  8498                            "isConstant": false,
  8499                            "isLValue": true,
  8500                            "isPure": false,
  8501                            "lValueRequested": false,
  8502                            "memberName": "outputRoot",
  8503                            "nodeType": "MemberAccess",
  8504                            "referencedDeclaration": 59307,
  8505                            "src": "15548:27:110",
  8506                            "typeDescriptions": {
  8507                              "typeIdentifier": "t_bytes32",
  8508                              "typeString": "bytes32"
  8509                            }
  8510                          },
  8511                          "src": "15525:50:110",
  8512                          "typeDescriptions": {
  8513                            "typeIdentifier": "t_bool",
  8514                            "typeString": "bool"
  8515                          }
  8516                        },
  8517                        {
  8518                          "hexValue": "4f7074696d69736d506f7274616c3a206f757470757420726f6f742070726f76656e206973206e6f74207468652073616d652061732063757272656e74206f757470757420726f6f74",
  8519                          "id": 59799,
  8520                          "isConstant": false,
  8521                          "isLValue": false,
  8522                          "isPure": true,
  8523                          "kind": "string",
  8524                          "lValueRequested": false,
  8525                          "nodeType": "Literal",
  8526                          "src": "15589:75:110",
  8527                          "typeDescriptions": {
  8528                            "typeIdentifier": "t_stringliteral_2bee9e90a055fc3fdea28727a1d039ffb281ae00c8962ca3262d0dabb187a280",
  8529                            "typeString": "literal_string \"OptimismPortal: output root proven is not the same as current output root\""
  8530                          },
  8531                          "value": "OptimismPortal: output root proven is not the same as current output root"
  8532                        }
  8533                      ],
  8534                      "expression": {
  8535                        "argumentTypes": [
  8536                          {
  8537                            "typeIdentifier": "t_bool",
  8538                            "typeString": "bool"
  8539                          },
  8540                          {
  8541                            "typeIdentifier": "t_stringliteral_2bee9e90a055fc3fdea28727a1d039ffb281ae00c8962ca3262d0dabb187a280",
  8542                            "typeString": "literal_string \"OptimismPortal: output root proven is not the same as current output root\""
  8543                          }
  8544                        ],
  8545                        "id": 59793,
  8546                        "name": "require",
  8547                        "nodeType": "Identifier",
  8548                        "overloadedDeclarations": [
  8549                          -18,
  8550                          -18
  8551                        ],
  8552                        "referencedDeclaration": -18,
  8553                        "src": "15504:7:110",
  8554                        "typeDescriptions": {
  8555                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  8556                          "typeString": "function (bool,string memory) pure"
  8557                        }
  8558                      },
  8559                      "id": 59800,
  8560                      "isConstant": false,
  8561                      "isLValue": false,
  8562                      "isPure": false,
  8563                      "kind": "functionCall",
  8564                      "lValueRequested": false,
  8565                      "names": [],
  8566                      "nodeType": "FunctionCall",
  8567                      "src": "15504:170:110",
  8568                      "tryCall": false,
  8569                      "typeDescriptions": {
  8570                        "typeIdentifier": "t_tuple$__$",
  8571                        "typeString": "tuple()"
  8572                      }
  8573                    },
  8574                    "id": 59801,
  8575                    "nodeType": "ExpressionStatement",
  8576                    "src": "15504:170:110"
  8577                  },
  8578                  {
  8579                    "expression": {
  8580                      "arguments": [
  8581                        {
  8582                          "arguments": [
  8583                            {
  8584                              "expression": {
  8585                                "id": 59804,
  8586                                "name": "proposal",
  8587                                "nodeType": "Identifier",
  8588                                "overloadedDeclarations": [],
  8589                                "referencedDeclaration": 59786,
  8590                                "src": "15802:8:110",
  8591                                "typeDescriptions": {
  8592                                  "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr",
  8593                                  "typeString": "struct Types.OutputProposal memory"
  8594                                }
  8595                              },
  8596                              "id": 59805,
  8597                              "isConstant": false,
  8598                              "isLValue": true,
  8599                              "isPure": false,
  8600                              "lValueRequested": false,
  8601                              "memberName": "timestamp",
  8602                              "nodeType": "MemberAccess",
  8603                              "referencedDeclaration": 70550,
  8604                              "src": "15802:18:110",
  8605                              "typeDescriptions": {
  8606                                "typeIdentifier": "t_uint128",
  8607                                "typeString": "uint128"
  8608                              }
  8609                            }
  8610                          ],
  8611                          "expression": {
  8612                            "argumentTypes": [
  8613                              {
  8614                                "typeIdentifier": "t_uint128",
  8615                                "typeString": "uint128"
  8616                              }
  8617                            ],
  8618                            "id": 59803,
  8619                            "name": "_isFinalizationPeriodElapsed",
  8620                            "nodeType": "Identifier",
  8621                            "overloadedDeclarations": [],
  8622                            "referencedDeclaration": 59996,
  8623                            "src": "15773:28:110",
  8624                            "typeDescriptions": {
  8625                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
  8626                              "typeString": "function (uint256) view returns (bool)"
  8627                            }
  8628                          },
  8629                          "id": 59806,
  8630                          "isConstant": false,
  8631                          "isLValue": false,
  8632                          "isPure": false,
  8633                          "kind": "functionCall",
  8634                          "lValueRequested": false,
  8635                          "names": [],
  8636                          "nodeType": "FunctionCall",
  8637                          "src": "15773:48:110",
  8638                          "tryCall": false,
  8639                          "typeDescriptions": {
  8640                            "typeIdentifier": "t_bool",
  8641                            "typeString": "bool"
  8642                          }
  8643                        },
  8644                        {
  8645                          "hexValue": "4f7074696d69736d506f7274616c3a206f75747075742070726f706f73616c2066696e616c697a6174696f6e20706572696f6420686173206e6f7420656c6170736564",
  8646                          "id": 59807,
  8647                          "isConstant": false,
  8648                          "isLValue": false,
  8649                          "isPure": true,
  8650                          "kind": "string",
  8651                          "lValueRequested": false,
  8652                          "nodeType": "Literal",
  8653                          "src": "15835:69:110",
  8654                          "typeDescriptions": {
  8655                            "typeIdentifier": "t_stringliteral_e2e53e5f2e5c146290963511529e48aa3e1570a42475ccc1fb3eba5190175c74",
  8656                            "typeString": "literal_string \"OptimismPortal: output proposal finalization period has not elapsed\""
  8657                          },
  8658                          "value": "OptimismPortal: output proposal finalization period has not elapsed"
  8659                        }
  8660                      ],
  8661                      "expression": {
  8662                        "argumentTypes": [
  8663                          {
  8664                            "typeIdentifier": "t_bool",
  8665                            "typeString": "bool"
  8666                          },
  8667                          {
  8668                            "typeIdentifier": "t_stringliteral_e2e53e5f2e5c146290963511529e48aa3e1570a42475ccc1fb3eba5190175c74",
  8669                            "typeString": "literal_string \"OptimismPortal: output proposal finalization period has not elapsed\""
  8670                          }
  8671                        ],
  8672                        "id": 59802,
  8673                        "name": "require",
  8674                        "nodeType": "Identifier",
  8675                        "overloadedDeclarations": [
  8676                          -18,
  8677                          -18
  8678                        ],
  8679                        "referencedDeclaration": -18,
  8680                        "src": "15752:7:110",
  8681                        "typeDescriptions": {
  8682                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  8683                          "typeString": "function (bool,string memory) pure"
  8684                        }
  8685                      },
  8686                      "id": 59808,
  8687                      "isConstant": false,
  8688                      "isLValue": false,
  8689                      "isPure": false,
  8690                      "kind": "functionCall",
  8691                      "lValueRequested": false,
  8692                      "names": [],
  8693                      "nodeType": "FunctionCall",
  8694                      "src": "15752:162:110",
  8695                      "tryCall": false,
  8696                      "typeDescriptions": {
  8697                        "typeIdentifier": "t_tuple$__$",
  8698                        "typeString": "tuple()"
  8699                      }
  8700                    },
  8701                    "id": 59809,
  8702                    "nodeType": "ExpressionStatement",
  8703                    "src": "15752:162:110"
  8704                  },
  8705                  {
  8706                    "expression": {
  8707                      "arguments": [
  8708                        {
  8709                          "commonType": {
  8710                            "typeIdentifier": "t_bool",
  8711                            "typeString": "bool"
  8712                          },
  8713                          "id": 59815,
  8714                          "isConstant": false,
  8715                          "isLValue": false,
  8716                          "isPure": false,
  8717                          "lValueRequested": false,
  8718                          "leftExpression": {
  8719                            "baseExpression": {
  8720                              "id": 59811,
  8721                              "name": "finalizedWithdrawals",
  8722                              "nodeType": "Identifier",
  8723                              "overloadedDeclarations": [],
  8724                              "referencedDeclaration": 59328,
  8725                              "src": "16030:20:110",
  8726                              "typeDescriptions": {
  8727                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
  8728                                "typeString": "mapping(bytes32 => bool)"
  8729                              }
  8730                            },
  8731                            "id": 59813,
  8732                            "indexExpression": {
  8733                              "id": 59812,
  8734                              "name": "withdrawalHash",
  8735                              "nodeType": "Identifier",
  8736                              "overloadedDeclarations": [],
  8737                              "referencedDeclaration": 59743,
  8738                              "src": "16051:14:110",
  8739                              "typeDescriptions": {
  8740                                "typeIdentifier": "t_bytes32",
  8741                                "typeString": "bytes32"
  8742                              }
  8743                            },
  8744                            "isConstant": false,
  8745                            "isLValue": true,
  8746                            "isPure": false,
  8747                            "lValueRequested": false,
  8748                            "nodeType": "IndexAccess",
  8749                            "src": "16030:36:110",
  8750                            "typeDescriptions": {
  8751                              "typeIdentifier": "t_bool",
  8752                              "typeString": "bool"
  8753                            }
  8754                          },
  8755                          "nodeType": "BinaryOperation",
  8756                          "operator": "==",
  8757                          "rightExpression": {
  8758                            "hexValue": "66616c7365",
  8759                            "id": 59814,
  8760                            "isConstant": false,
  8761                            "isLValue": false,
  8762                            "isPure": true,
  8763                            "kind": "bool",
  8764                            "lValueRequested": false,
  8765                            "nodeType": "Literal",
  8766                            "src": "16070:5:110",
  8767                            "typeDescriptions": {
  8768                              "typeIdentifier": "t_bool",
  8769                              "typeString": "bool"
  8770                            },
  8771                            "value": "false"
  8772                          },
  8773                          "src": "16030:45:110",
  8774                          "typeDescriptions": {
  8775                            "typeIdentifier": "t_bool",
  8776                            "typeString": "bool"
  8777                          }
  8778                        },
  8779                        {
  8780                          "hexValue": "4f7074696d69736d506f7274616c3a207769746864726177616c2068617320616c7265616479206265656e2066696e616c697a6564",
  8781                          "id": 59816,
  8782                          "isConstant": false,
  8783                          "isLValue": false,
  8784                          "isPure": true,
  8785                          "kind": "string",
  8786                          "lValueRequested": false,
  8787                          "nodeType": "Literal",
  8788                          "src": "16077:55:110",
  8789                          "typeDescriptions": {
  8790                            "typeIdentifier": "t_stringliteral_2a1157cbf4171a399f26106a5211324151853c78d2faca1fb1d3acbf755aa485",
  8791                            "typeString": "literal_string \"OptimismPortal: withdrawal has already been finalized\""
  8792                          },
  8793                          "value": "OptimismPortal: withdrawal has already been finalized"
  8794                        }
  8795                      ],
  8796                      "expression": {
  8797                        "argumentTypes": [
  8798                          {
  8799                            "typeIdentifier": "t_bool",
  8800                            "typeString": "bool"
  8801                          },
  8802                          {
  8803                            "typeIdentifier": "t_stringliteral_2a1157cbf4171a399f26106a5211324151853c78d2faca1fb1d3acbf755aa485",
  8804                            "typeString": "literal_string \"OptimismPortal: withdrawal has already been finalized\""
  8805                          }
  8806                        ],
  8807                        "id": 59810,
  8808                        "name": "require",
  8809                        "nodeType": "Identifier",
  8810                        "overloadedDeclarations": [
  8811                          -18,
  8812                          -18
  8813                        ],
  8814                        "referencedDeclaration": -18,
  8815                        "src": "16022:7:110",
  8816                        "typeDescriptions": {
  8817                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  8818                          "typeString": "function (bool,string memory) pure"
  8819                        }
  8820                      },
  8821                      "id": 59817,
  8822                      "isConstant": false,
  8823                      "isLValue": false,
  8824                      "isPure": false,
  8825                      "kind": "functionCall",
  8826                      "lValueRequested": false,
  8827                      "names": [],
  8828                      "nodeType": "FunctionCall",
  8829                      "src": "16022:111:110",
  8830                      "tryCall": false,
  8831                      "typeDescriptions": {
  8832                        "typeIdentifier": "t_tuple$__$",
  8833                        "typeString": "tuple()"
  8834                      }
  8835                    },
  8836                    "id": 59818,
  8837                    "nodeType": "ExpressionStatement",
  8838                    "src": "16022:111:110"
  8839                  },
  8840                  {
  8841                    "expression": {
  8842                      "id": 59823,
  8843                      "isConstant": false,
  8844                      "isLValue": false,
  8845                      "isPure": false,
  8846                      "lValueRequested": false,
  8847                      "leftHandSide": {
  8848                        "baseExpression": {
  8849                          "id": 59819,
  8850                          "name": "finalizedWithdrawals",
  8851                          "nodeType": "Identifier",
  8852                          "overloadedDeclarations": [],
  8853                          "referencedDeclaration": 59328,
  8854                          "src": "16213:20:110",
  8855                          "typeDescriptions": {
  8856                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
  8857                            "typeString": "mapping(bytes32 => bool)"
  8858                          }
  8859                        },
  8860                        "id": 59821,
  8861                        "indexExpression": {
  8862                          "id": 59820,
  8863                          "name": "withdrawalHash",
  8864                          "nodeType": "Identifier",
  8865                          "overloadedDeclarations": [],
  8866                          "referencedDeclaration": 59743,
  8867                          "src": "16234:14:110",
  8868                          "typeDescriptions": {
  8869                            "typeIdentifier": "t_bytes32",
  8870                            "typeString": "bytes32"
  8871                          }
  8872                        },
  8873                        "isConstant": false,
  8874                        "isLValue": true,
  8875                        "isPure": false,
  8876                        "lValueRequested": true,
  8877                        "nodeType": "IndexAccess",
  8878                        "src": "16213:36:110",
  8879                        "typeDescriptions": {
  8880                          "typeIdentifier": "t_bool",
  8881                          "typeString": "bool"
  8882                        }
  8883                      },
  8884                      "nodeType": "Assignment",
  8885                      "operator": "=",
  8886                      "rightHandSide": {
  8887                        "hexValue": "74727565",
  8888                        "id": 59822,
  8889                        "isConstant": false,
  8890                        "isLValue": false,
  8891                        "isPure": true,
  8892                        "kind": "bool",
  8893                        "lValueRequested": false,
  8894                        "nodeType": "Literal",
  8895                        "src": "16252:4:110",
  8896                        "typeDescriptions": {
  8897                          "typeIdentifier": "t_bool",
  8898                          "typeString": "bool"
  8899                        },
  8900                        "value": "true"
  8901                      },
  8902                      "src": "16213:43:110",
  8903                      "typeDescriptions": {
  8904                        "typeIdentifier": "t_bool",
  8905                        "typeString": "bool"
  8906                      }
  8907                    },
  8908                    "id": 59824,
  8909                    "nodeType": "ExpressionStatement",
  8910                    "src": "16213:43:110"
  8911                  },
  8912                  {
  8913                    "expression": {
  8914                      "id": 59828,
  8915                      "isConstant": false,
  8916                      "isLValue": false,
  8917                      "isPure": false,
  8918                      "lValueRequested": false,
  8919                      "leftHandSide": {
  8920                        "id": 59825,
  8921                        "name": "l2Sender",
  8922                        "nodeType": "Identifier",
  8923                        "overloadedDeclarations": [],
  8924                        "referencedDeclaration": 59323,
  8925                        "src": "16350:8:110",
  8926                        "typeDescriptions": {
  8927                          "typeIdentifier": "t_address",
  8928                          "typeString": "address"
  8929                        }
  8930                      },
  8931                      "nodeType": "Assignment",
  8932                      "operator": "=",
  8933                      "rightHandSide": {
  8934                        "expression": {
  8935                          "id": 59826,
  8936                          "name": "_tx",
  8937                          "nodeType": "Identifier",
  8938                          "overloadedDeclarations": [],
  8939                          "referencedDeclaration": 59729,
  8940                          "src": "16361:3:110",
  8941                          "typeDescriptions": {
  8942                            "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  8943                            "typeString": "struct Types.WithdrawalTransaction memory"
  8944                          }
  8945                        },
  8946                        "id": 59827,
  8947                        "isConstant": false,
  8948                        "isLValue": true,
  8949                        "isPure": false,
  8950                        "lValueRequested": false,
  8951                        "memberName": "sender",
  8952                        "nodeType": "MemberAccess",
  8953                        "referencedDeclaration": 70585,
  8954                        "src": "16361:10:110",
  8955                        "typeDescriptions": {
  8956                          "typeIdentifier": "t_address",
  8957                          "typeString": "address"
  8958                        }
  8959                      },
  8960                      "src": "16350:21:110",
  8961                      "typeDescriptions": {
  8962                        "typeIdentifier": "t_address",
  8963                        "typeString": "address"
  8964                      }
  8965                    },
  8966                    "id": 59829,
  8967                    "nodeType": "ExpressionStatement",
  8968                    "src": "16350:21:110"
  8969                  },
  8970                  {
  8971                    "assignments": [
  8972                      59831
  8973                    ],
  8974                    "declarations": [
  8975                      {
  8976                        "constant": false,
  8977                        "id": 59831,
  8978                        "mutability": "mutable",
  8979                        "name": "success",
  8980                        "nameLocation": "16996:7:110",
  8981                        "nodeType": "VariableDeclaration",
  8982                        "scope": 59869,
  8983                        "src": "16991:12:110",
  8984                        "stateVariable": false,
  8985                        "storageLocation": "default",
  8986                        "typeDescriptions": {
  8987                          "typeIdentifier": "t_bool",
  8988                          "typeString": "bool"
  8989                        },
  8990                        "typeName": {
  8991                          "id": 59830,
  8992                          "name": "bool",
  8993                          "nodeType": "ElementaryTypeName",
  8994                          "src": "16991:4:110",
  8995                          "typeDescriptions": {
  8996                            "typeIdentifier": "t_bool",
  8997                            "typeString": "bool"
  8998                          }
  8999                        },
  9000                        "visibility": "internal"
  9001                      }
  9002                    ],
  9003                    "id": 59843,
  9004                    "initialValue": {
  9005                      "arguments": [
  9006                        {
  9007                          "expression": {
  9008                            "id": 59834,
  9009                            "name": "_tx",
  9010                            "nodeType": "Identifier",
  9011                            "overloadedDeclarations": [],
  9012                            "referencedDeclaration": 59729,
  9013                            "src": "17030:3:110",
  9014                            "typeDescriptions": {
  9015                              "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  9016                              "typeString": "struct Types.WithdrawalTransaction memory"
  9017                            }
  9018                          },
  9019                          "id": 59835,
  9020                          "isConstant": false,
  9021                          "isLValue": true,
  9022                          "isPure": false,
  9023                          "lValueRequested": false,
  9024                          "memberName": "target",
  9025                          "nodeType": "MemberAccess",
  9026                          "referencedDeclaration": 70587,
  9027                          "src": "17030:10:110",
  9028                          "typeDescriptions": {
  9029                            "typeIdentifier": "t_address",
  9030                            "typeString": "address"
  9031                          }
  9032                        },
  9033                        {
  9034                          "expression": {
  9035                            "id": 59836,
  9036                            "name": "_tx",
  9037                            "nodeType": "Identifier",
  9038                            "overloadedDeclarations": [],
  9039                            "referencedDeclaration": 59729,
  9040                            "src": "17042:3:110",
  9041                            "typeDescriptions": {
  9042                              "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  9043                              "typeString": "struct Types.WithdrawalTransaction memory"
  9044                            }
  9045                          },
  9046                          "id": 59837,
  9047                          "isConstant": false,
  9048                          "isLValue": true,
  9049                          "isPure": false,
  9050                          "lValueRequested": false,
  9051                          "memberName": "gasLimit",
  9052                          "nodeType": "MemberAccess",
  9053                          "referencedDeclaration": 70591,
  9054                          "src": "17042:12:110",
  9055                          "typeDescriptions": {
  9056                            "typeIdentifier": "t_uint256",
  9057                            "typeString": "uint256"
  9058                          }
  9059                        },
  9060                        {
  9061                          "expression": {
  9062                            "id": 59838,
  9063                            "name": "_tx",
  9064                            "nodeType": "Identifier",
  9065                            "overloadedDeclarations": [],
  9066                            "referencedDeclaration": 59729,
  9067                            "src": "17056:3:110",
  9068                            "typeDescriptions": {
  9069                              "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  9070                              "typeString": "struct Types.WithdrawalTransaction memory"
  9071                            }
  9072                          },
  9073                          "id": 59839,
  9074                          "isConstant": false,
  9075                          "isLValue": true,
  9076                          "isPure": false,
  9077                          "lValueRequested": false,
  9078                          "memberName": "value",
  9079                          "nodeType": "MemberAccess",
  9080                          "referencedDeclaration": 70589,
  9081                          "src": "17056:9:110",
  9082                          "typeDescriptions": {
  9083                            "typeIdentifier": "t_uint256",
  9084                            "typeString": "uint256"
  9085                          }
  9086                        },
  9087                        {
  9088                          "expression": {
  9089                            "id": 59840,
  9090                            "name": "_tx",
  9091                            "nodeType": "Identifier",
  9092                            "overloadedDeclarations": [],
  9093                            "referencedDeclaration": 59729,
  9094                            "src": "17067:3:110",
  9095                            "typeDescriptions": {
  9096                              "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  9097                              "typeString": "struct Types.WithdrawalTransaction memory"
  9098                            }
  9099                          },
  9100                          "id": 59841,
  9101                          "isConstant": false,
  9102                          "isLValue": true,
  9103                          "isPure": false,
  9104                          "lValueRequested": false,
  9105                          "memberName": "data",
  9106                          "nodeType": "MemberAccess",
  9107                          "referencedDeclaration": 70593,
  9108                          "src": "17067:8:110",
  9109                          "typeDescriptions": {
  9110                            "typeIdentifier": "t_bytes_memory_ptr",
  9111                            "typeString": "bytes memory"
  9112                          }
  9113                        }
  9114                      ],
  9115                      "expression": {
  9116                        "argumentTypes": [
  9117                          {
  9118                            "typeIdentifier": "t_address",
  9119                            "typeString": "address"
  9120                          },
  9121                          {
  9122                            "typeIdentifier": "t_uint256",
  9123                            "typeString": "uint256"
  9124                          },
  9125                          {
  9126                            "typeIdentifier": "t_uint256",
  9127                            "typeString": "uint256"
  9128                          },
  9129                          {
  9130                            "typeIdentifier": "t_bytes_memory_ptr",
  9131                            "typeString": "bytes memory"
  9132                          }
  9133                        ],
  9134                        "expression": {
  9135                          "id": 59832,
  9136                          "name": "SafeCall",
  9137                          "nodeType": "Identifier",
  9138                          "overloadedDeclarations": [],
  9139                          "referencedDeclaration": 70479,
  9140                          "src": "17006:8:110",
  9141                          "typeDescriptions": {
  9142                            "typeIdentifier": "t_type$_t_contract$_SafeCall_$70479_$",
  9143                            "typeString": "type(library SafeCall)"
  9144                          }
  9145                        },
  9146                        "id": 59833,
  9147                        "isConstant": false,
  9148                        "isLValue": false,
  9149                        "isPure": false,
  9150                        "lValueRequested": false,
  9151                        "memberName": "callWithMinGas",
  9152                        "nodeType": "MemberAccess",
  9153                        "referencedDeclaration": 70478,
  9154                        "src": "17006:23:110",
  9155                        "typeDescriptions": {
  9156                          "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$",
  9157                          "typeString": "function (address,uint256,uint256,bytes memory) returns (bool)"
  9158                        }
  9159                      },
  9160                      "id": 59842,
  9161                      "isConstant": false,
  9162                      "isLValue": false,
  9163                      "isPure": false,
  9164                      "kind": "functionCall",
  9165                      "lValueRequested": false,
  9166                      "names": [],
  9167                      "nodeType": "FunctionCall",
  9168                      "src": "17006:70:110",
  9169                      "tryCall": false,
  9170                      "typeDescriptions": {
  9171                        "typeIdentifier": "t_bool",
  9172                        "typeString": "bool"
  9173                      }
  9174                    },
  9175                    "nodeType": "VariableDeclarationStatement",
  9176                    "src": "16991:85:110"
  9177                  },
  9178                  {
  9179                    "expression": {
  9180                      "id": 59847,
  9181                      "isConstant": false,
  9182                      "isLValue": false,
  9183                      "isPure": false,
  9184                      "lValueRequested": false,
  9185                      "leftHandSide": {
  9186                        "id": 59844,
  9187                        "name": "l2Sender",
  9188                        "nodeType": "Identifier",
  9189                        "overloadedDeclarations": [],
  9190                        "referencedDeclaration": 59323,
  9191                        "src": "17144:8:110",
  9192                        "typeDescriptions": {
  9193                          "typeIdentifier": "t_address",
  9194                          "typeString": "address"
  9195                        }
  9196                      },
  9197                      "nodeType": "Assignment",
  9198                      "operator": "=",
  9199                      "rightHandSide": {
  9200                        "expression": {
  9201                          "id": 59845,
  9202                          "name": "Constants",
  9203                          "nodeType": "Identifier",
  9204                          "overloadedDeclarations": [],
  9205                          "referencedDeclaration": 69571,
  9206                          "src": "17155:9:110",
  9207                          "typeDescriptions": {
  9208                            "typeIdentifier": "t_type$_t_contract$_Constants_$69571_$",
  9209                            "typeString": "type(library Constants)"
  9210                          }
  9211                        },
  9212                        "id": 59846,
  9213                        "isConstant": false,
  9214                        "isLValue": false,
  9215                        "isPure": false,
  9216                        "lValueRequested": false,
  9217                        "memberName": "DEFAULT_L2_SENDER",
  9218                        "nodeType": "MemberAccess",
  9219                        "referencedDeclaration": 69529,
  9220                        "src": "17155:27:110",
  9221                        "typeDescriptions": {
  9222                          "typeIdentifier": "t_address",
  9223                          "typeString": "address"
  9224                        }
  9225                      },
  9226                      "src": "17144:38:110",
  9227                      "typeDescriptions": {
  9228                        "typeIdentifier": "t_address",
  9229                        "typeString": "address"
  9230                      }
  9231                    },
  9232                    "id": 59848,
  9233                    "nodeType": "ExpressionStatement",
  9234                    "src": "17144:38:110"
  9235                  },
  9236                  {
  9237                    "eventCall": {
  9238                      "arguments": [
  9239                        {
  9240                          "id": 59850,
  9241                          "name": "withdrawalHash",
  9242                          "nodeType": "Identifier",
  9243                          "overloadedDeclarations": [],
  9244                          "referencedDeclaration": 59743,
  9245                          "src": "17361:14:110",
  9246                          "typeDescriptions": {
  9247                            "typeIdentifier": "t_bytes32",
  9248                            "typeString": "bytes32"
  9249                          }
  9250                        },
  9251                        {
  9252                          "id": 59851,
  9253                          "name": "success",
  9254                          "nodeType": "Identifier",
  9255                          "overloadedDeclarations": [],
  9256                          "referencedDeclaration": 59831,
  9257                          "src": "17377:7:110",
  9258                          "typeDescriptions": {
  9259                            "typeIdentifier": "t_bool",
  9260                            "typeString": "bool"
  9261                          }
  9262                        }
  9263                      ],
  9264                      "expression": {
  9265                        "argumentTypes": [
  9266                          {
  9267                            "typeIdentifier": "t_bytes32",
  9268                            "typeString": "bytes32"
  9269                          },
  9270                          {
  9271                            "typeIdentifier": "t_bool",
  9272                            "typeString": "bool"
  9273                          }
  9274                        ],
  9275                        "id": 59849,
  9276                        "name": "WithdrawalFinalized",
  9277                        "nodeType": "Identifier",
  9278                        "overloadedDeclarations": [],
  9279                        "referencedDeclaration": 59375,
  9280                        "src": "17341:19:110",
  9281                        "typeDescriptions": {
  9282                          "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$",
  9283                          "typeString": "function (bytes32,bool)"
  9284                        }
  9285                      },
  9286                      "id": 59852,
  9287                      "isConstant": false,
  9288                      "isLValue": false,
  9289                      "isPure": false,
  9290                      "kind": "functionCall",
  9291                      "lValueRequested": false,
  9292                      "names": [],
  9293                      "nodeType": "FunctionCall",
  9294                      "src": "17341:44:110",
  9295                      "tryCall": false,
  9296                      "typeDescriptions": {
  9297                        "typeIdentifier": "t_tuple$__$",
  9298                        "typeString": "tuple()"
  9299                      }
  9300                    },
  9301                    "id": 59853,
  9302                    "nodeType": "EmitStatement",
  9303                    "src": "17336:49:110"
  9304                  },
  9305                  {
  9306                    "condition": {
  9307                      "commonType": {
  9308                        "typeIdentifier": "t_bool",
  9309                        "typeString": "bool"
  9310                      },
  9311                      "id": 59862,
  9312                      "isConstant": false,
  9313                      "isLValue": false,
  9314                      "isPure": false,
  9315                      "lValueRequested": false,
  9316                      "leftExpression": {
  9317                        "commonType": {
  9318                          "typeIdentifier": "t_bool",
  9319                          "typeString": "bool"
  9320                        },
  9321                        "id": 59856,
  9322                        "isConstant": false,
  9323                        "isLValue": false,
  9324                        "isPure": false,
  9325                        "lValueRequested": false,
  9326                        "leftExpression": {
  9327                          "id": 59854,
  9328                          "name": "success",
  9329                          "nodeType": "Identifier",
  9330                          "overloadedDeclarations": [],
  9331                          "referencedDeclaration": 59831,
  9332                          "src": "17649:7:110",
  9333                          "typeDescriptions": {
  9334                            "typeIdentifier": "t_bool",
  9335                            "typeString": "bool"
  9336                          }
  9337                        },
  9338                        "nodeType": "BinaryOperation",
  9339                        "operator": "==",
  9340                        "rightExpression": {
  9341                          "hexValue": "66616c7365",
  9342                          "id": 59855,
  9343                          "isConstant": false,
  9344                          "isLValue": false,
  9345                          "isPure": true,
  9346                          "kind": "bool",
  9347                          "lValueRequested": false,
  9348                          "nodeType": "Literal",
  9349                          "src": "17660:5:110",
  9350                          "typeDescriptions": {
  9351                            "typeIdentifier": "t_bool",
  9352                            "typeString": "bool"
  9353                          },
  9354                          "value": "false"
  9355                        },
  9356                        "src": "17649:16:110",
  9357                        "typeDescriptions": {
  9358                          "typeIdentifier": "t_bool",
  9359                          "typeString": "bool"
  9360                        }
  9361                      },
  9362                      "nodeType": "BinaryOperation",
  9363                      "operator": "&&",
  9364                      "rightExpression": {
  9365                        "commonType": {
  9366                          "typeIdentifier": "t_address",
  9367                          "typeString": "address"
  9368                        },
  9369                        "id": 59861,
  9370                        "isConstant": false,
  9371                        "isLValue": false,
  9372                        "isPure": false,
  9373                        "lValueRequested": false,
  9374                        "leftExpression": {
  9375                          "expression": {
  9376                            "id": 59857,
  9377                            "name": "tx",
  9378                            "nodeType": "Identifier",
  9379                            "overloadedDeclarations": [],
  9380                            "referencedDeclaration": -26,
  9381                            "src": "17669:2:110",
  9382                            "typeDescriptions": {
  9383                              "typeIdentifier": "t_magic_transaction",
  9384                              "typeString": "tx"
  9385                            }
  9386                          },
  9387                          "id": 59858,
  9388                          "isConstant": false,
  9389                          "isLValue": false,
  9390                          "isPure": false,
  9391                          "lValueRequested": false,
  9392                          "memberName": "origin",
  9393                          "nodeType": "MemberAccess",
  9394                          "src": "17669:9:110",
  9395                          "typeDescriptions": {
  9396                            "typeIdentifier": "t_address",
  9397                            "typeString": "address"
  9398                          }
  9399                        },
  9400                        "nodeType": "BinaryOperation",
  9401                        "operator": "==",
  9402                        "rightExpression": {
  9403                          "expression": {
  9404                            "id": 59859,
  9405                            "name": "Constants",
  9406                            "nodeType": "Identifier",
  9407                            "overloadedDeclarations": [],
  9408                            "referencedDeclaration": 69571,
  9409                            "src": "17682:9:110",
  9410                            "typeDescriptions": {
  9411                              "typeIdentifier": "t_type$_t_contract$_Constants_$69571_$",
  9412                              "typeString": "type(library Constants)"
  9413                            }
  9414                          },
  9415                          "id": 59860,
  9416                          "isConstant": false,
  9417                          "isLValue": false,
  9418                          "isPure": false,
  9419                          "lValueRequested": false,
  9420                          "memberName": "ESTIMATION_ADDRESS",
  9421                          "nodeType": "MemberAccess",
  9422                          "referencedDeclaration": 69525,
  9423                          "src": "17682:28:110",
  9424                          "typeDescriptions": {
  9425                            "typeIdentifier": "t_address",
  9426                            "typeString": "address"
  9427                          }
  9428                        },
  9429                        "src": "17669:41:110",
  9430                        "typeDescriptions": {
  9431                          "typeIdentifier": "t_bool",
  9432                          "typeString": "bool"
  9433                        }
  9434                      },
  9435                      "src": "17649:61:110",
  9436                      "typeDescriptions": {
  9437                        "typeIdentifier": "t_bool",
  9438                        "typeString": "bool"
  9439                      }
  9440                    },
  9441                    "id": 59868,
  9442                    "nodeType": "IfStatement",
  9443                    "src": "17645:135:110",
  9444                    "trueBody": {
  9445                      "id": 59867,
  9446                      "nodeType": "Block",
  9447                      "src": "17712:68:110",
  9448                      "statements": [
  9449                        {
  9450                          "expression": {
  9451                            "arguments": [
  9452                              {
  9453                                "hexValue": "4f7074696d69736d506f7274616c3a207769746864726177616c206661696c6564",
  9454                                "id": 59864,
  9455                                "isConstant": false,
  9456                                "isLValue": false,
  9457                                "isPure": true,
  9458                                "kind": "string",
  9459                                "lValueRequested": false,
  9460                                "nodeType": "Literal",
  9461                                "src": "17733:35:110",
  9462                                "typeDescriptions": {
  9463                                  "typeIdentifier": "t_stringliteral_a0543a16ebb14b11743ebd89913eeb3a89aab6ee2824b60e6e93ee3d5b6c55bb",
  9464                                  "typeString": "literal_string \"OptimismPortal: withdrawal failed\""
  9465                                },
  9466                                "value": "OptimismPortal: withdrawal failed"
  9467                              }
  9468                            ],
  9469                            "expression": {
  9470                              "argumentTypes": [
  9471                                {
  9472                                  "typeIdentifier": "t_stringliteral_a0543a16ebb14b11743ebd89913eeb3a89aab6ee2824b60e6e93ee3d5b6c55bb",
  9473                                  "typeString": "literal_string \"OptimismPortal: withdrawal failed\""
  9474                                }
  9475                              ],
  9476                              "id": 59863,
  9477                              "name": "revert",
  9478                              "nodeType": "Identifier",
  9479                              "overloadedDeclarations": [
  9480                                -19,
  9481                                -19
  9482                              ],
  9483                              "referencedDeclaration": -19,
  9484                              "src": "17726:6:110",
  9485                              "typeDescriptions": {
  9486                                "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
  9487                                "typeString": "function (string memory) pure"
  9488                              }
  9489                            },
  9490                            "id": 59865,
  9491                            "isConstant": false,
  9492                            "isLValue": false,
  9493                            "isPure": false,
  9494                            "kind": "functionCall",
  9495                            "lValueRequested": false,
  9496                            "names": [],
  9497                            "nodeType": "FunctionCall",
  9498                            "src": "17726:43:110",
  9499                            "tryCall": false,
  9500                            "typeDescriptions": {
  9501                              "typeIdentifier": "t_tuple$__$",
  9502                              "typeString": "tuple()"
  9503                            }
  9504                          },
  9505                          "id": 59866,
  9506                          "nodeType": "ExpressionStatement",
  9507                          "src": "17726:43:110"
  9508                        }
  9509                      ]
  9510                    }
  9511                  }
  9512                ]
  9513              },
  9514              "documentation": {
  9515                "id": 59726,
  9516                "nodeType": "StructuredDocumentation",
  9517                "src": "12840:102:110",
  9518                "text": "@notice Finalizes a withdrawal transaction.\n @param _tx Withdrawal transaction to finalize."
  9519              },
  9520              "functionSelector": "8c3152e9",
  9521              "implemented": true,
  9522              "kind": "function",
  9523              "modifiers": [
  9524                {
  9525                  "id": 59732,
  9526                  "kind": "modifierInvocation",
  9527                  "modifierName": {
  9528                    "id": 59731,
  9529                    "name": "whenNotPaused",
  9530                    "nodeType": "IdentifierPath",
  9531                    "referencedDeclaration": 59397,
  9532                    "src": "13035:13:110"
  9533                  },
  9534                  "nodeType": "ModifierInvocation",
  9535                  "src": "13035:13:110"
  9536                }
  9537              ],
  9538              "name": "finalizeWithdrawalTransaction",
  9539              "nameLocation": "12956:29:110",
  9540              "parameters": {
  9541                "id": 59730,
  9542                "nodeType": "ParameterList",
  9543                "parameters": [
  9544                  {
  9545                    "constant": false,
  9546                    "id": 59729,
  9547                    "mutability": "mutable",
  9548                    "name": "_tx",
  9549                    "nameLocation": "13021:3:110",
  9550                    "nodeType": "VariableDeclaration",
  9551                    "scope": 59870,
  9552                    "src": "12986:38:110",
  9553                    "stateVariable": false,
  9554                    "storageLocation": "memory",
  9555                    "typeDescriptions": {
  9556                      "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_memory_ptr",
  9557                      "typeString": "struct Types.WithdrawalTransaction"
  9558                    },
  9559                    "typeName": {
  9560                      "id": 59728,
  9561                      "nodeType": "UserDefinedTypeName",
  9562                      "pathNode": {
  9563                        "id": 59727,
  9564                        "name": "Types.WithdrawalTransaction",
  9565                        "nodeType": "IdentifierPath",
  9566                        "referencedDeclaration": 70594,
  9567                        "src": "12986:27:110"
  9568                      },
  9569                      "referencedDeclaration": 70594,
  9570                      "src": "12986:27:110",
  9571                      "typeDescriptions": {
  9572                        "typeIdentifier": "t_struct$_WithdrawalTransaction_$70594_storage_ptr",
  9573                        "typeString": "struct Types.WithdrawalTransaction"
  9574                      }
  9575                    },
  9576                    "visibility": "internal"
  9577                  }
  9578                ],
  9579                "src": "12985:40:110"
  9580              },
  9581              "returnParameters": {
  9582                "id": 59733,
  9583                "nodeType": "ParameterList",
  9584                "parameters": [],
  9585                "src": "13049:0:110"
  9586              },
  9587              "scope": 59997,
  9588              "stateMutability": "nonpayable",
  9589              "virtual": false,
  9590              "visibility": "external"
  9591            },
  9592            {
  9593              "id": 59961,
  9594              "nodeType": "FunctionDefinition",
  9595              "src": "18516:1971:110",
  9596              "nodes": [],
  9597              "body": {
  9598                "id": 59960,
  9599                "nodeType": "Block",
  9600                "src": "18737:1750:110",
  9601                "nodes": [],
  9602                "statements": [
  9603                  {
  9604                    "condition": {
  9605                      "id": 59887,
  9606                      "name": "_isCreation",
  9607                      "nodeType": "Identifier",
  9608                      "overloadedDeclarations": [],
  9609                      "referencedDeclaration": 59879,
  9610                      "src": "18876:11:110",
  9611                      "typeDescriptions": {
  9612                        "typeIdentifier": "t_bool",
  9613                        "typeString": "bool"
  9614                      }
  9615                    },
  9616                    "id": 59899,
  9617                    "nodeType": "IfStatement",
  9618                    "src": "18872:136:110",
  9619                    "trueBody": {
  9620                      "id": 59898,
  9621                      "nodeType": "Block",
  9622                      "src": "18889:119:110",
  9623                      "statements": [
  9624                        {
  9625                          "expression": {
  9626                            "arguments": [
  9627                              {
  9628                                "commonType": {
  9629                                  "typeIdentifier": "t_address",
  9630                                  "typeString": "address"
  9631                                },
  9632                                "id": 59894,
  9633                                "isConstant": false,
  9634                                "isLValue": false,
  9635                                "isPure": false,
  9636                                "lValueRequested": false,
  9637                                "leftExpression": {
  9638                                  "id": 59889,
  9639                                  "name": "_to",
  9640                                  "nodeType": "Identifier",
  9641                                  "overloadedDeclarations": [],
  9642                                  "referencedDeclaration": 59873,
  9643                                  "src": "18911:3:110",
  9644                                  "typeDescriptions": {
  9645                                    "typeIdentifier": "t_address",
  9646                                    "typeString": "address"
  9647                                  }
  9648                                },
  9649                                "nodeType": "BinaryOperation",
  9650                                "operator": "==",
  9651                                "rightExpression": {
  9652                                  "arguments": [
  9653                                    {
  9654                                      "hexValue": "30",
  9655                                      "id": 59892,
  9656                                      "isConstant": false,
  9657                                      "isLValue": false,
  9658                                      "isPure": true,
  9659                                      "kind": "number",
  9660                                      "lValueRequested": false,
  9661                                      "nodeType": "Literal",
  9662                                      "src": "18926:1:110",
  9663                                      "typeDescriptions": {
  9664                                        "typeIdentifier": "t_rational_0_by_1",
  9665                                        "typeString": "int_const 0"
  9666                                      },
  9667                                      "value": "0"
  9668                                    }
  9669                                  ],
  9670                                  "expression": {
  9671                                    "argumentTypes": [
  9672                                      {
  9673                                        "typeIdentifier": "t_rational_0_by_1",
  9674                                        "typeString": "int_const 0"
  9675                                      }
  9676                                    ],
  9677                                    "id": 59891,
  9678                                    "isConstant": false,
  9679                                    "isLValue": false,
  9680                                    "isPure": true,
  9681                                    "lValueRequested": false,
  9682                                    "nodeType": "ElementaryTypeNameExpression",
  9683                                    "src": "18918:7:110",
  9684                                    "typeDescriptions": {
  9685                                      "typeIdentifier": "t_type$_t_address_$",
  9686                                      "typeString": "type(address)"
  9687                                    },
  9688                                    "typeName": {
  9689                                      "id": 59890,
  9690                                      "name": "address",
  9691                                      "nodeType": "ElementaryTypeName",
  9692                                      "src": "18918:7:110",
  9693                                      "typeDescriptions": {}
  9694                                    }
  9695                                  },
  9696                                  "id": 59893,
  9697                                  "isConstant": false,
  9698                                  "isLValue": false,
  9699                                  "isPure": true,
  9700                                  "kind": "typeConversion",
  9701                                  "lValueRequested": false,
  9702                                  "names": [],
  9703                                  "nodeType": "FunctionCall",
  9704                                  "src": "18918:10:110",
  9705                                  "tryCall": false,
  9706                                  "typeDescriptions": {
  9707                                    "typeIdentifier": "t_address",
  9708                                    "typeString": "address"
  9709                                  }
  9710                                },
  9711                                "src": "18911:17:110",
  9712                                "typeDescriptions": {
  9713                                  "typeIdentifier": "t_bool",
  9714                                  "typeString": "bool"
  9715                                }
  9716                              },
  9717                              {
  9718                                "hexValue": "4f7074696d69736d506f7274616c3a206d7573742073656e6420746f2061646472657373283029207768656e206372656174696e67206120636f6e7472616374",
  9719                                "id": 59895,
  9720                                "isConstant": false,
  9721                                "isLValue": false,
  9722                                "isPure": true,
  9723                                "kind": "string",
  9724                                "lValueRequested": false,
  9725                                "nodeType": "Literal",
  9726                                "src": "18930:66:110",
  9727                                "typeDescriptions": {
  9728                                  "typeIdentifier": "t_stringliteral_35a8c36d4f7649c8575025c089af07faab9c54040307e9d6ec8463fe4050a639",
  9729                                  "typeString": "literal_string \"OptimismPortal: must send to address(0) when creating a contract\""
  9730                                },
  9731                                "value": "OptimismPortal: must send to address(0) when creating a contract"
  9732                              }
  9733                            ],
  9734                            "expression": {
  9735                              "argumentTypes": [
  9736                                {
  9737                                  "typeIdentifier": "t_bool",
  9738                                  "typeString": "bool"
  9739                                },
  9740                                {
  9741                                  "typeIdentifier": "t_stringliteral_35a8c36d4f7649c8575025c089af07faab9c54040307e9d6ec8463fe4050a639",
  9742                                  "typeString": "literal_string \"OptimismPortal: must send to address(0) when creating a contract\""
  9743                                }
  9744                              ],
  9745                              "id": 59888,
  9746                              "name": "require",
  9747                              "nodeType": "Identifier",
  9748                              "overloadedDeclarations": [
  9749                                -18,
  9750                                -18
  9751                              ],
  9752                              "referencedDeclaration": -18,
  9753                              "src": "18903:7:110",
  9754                              "typeDescriptions": {
  9755                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  9756                                "typeString": "function (bool,string memory) pure"
  9757                              }
  9758                            },
  9759                            "id": 59896,
  9760                            "isConstant": false,
  9761                            "isLValue": false,
  9762                            "isPure": false,
  9763                            "kind": "functionCall",
  9764                            "lValueRequested": false,
  9765                            "names": [],
  9766                            "nodeType": "FunctionCall",
  9767                            "src": "18903:94:110",
  9768                            "tryCall": false,
  9769                            "typeDescriptions": {
  9770                              "typeIdentifier": "t_tuple$__$",
  9771                              "typeString": "tuple()"
  9772                            }
  9773                          },
  9774                          "id": 59897,
  9775                          "nodeType": "ExpressionStatement",
  9776                          "src": "18903:94:110"
  9777                        }
  9778                      ]
  9779                    }
  9780                  },
  9781                  {
  9782                    "expression": {
  9783                      "arguments": [
  9784                        {
  9785                          "commonType": {
  9786                            "typeIdentifier": "t_uint64",
  9787                            "typeString": "uint64"
  9788                          },
  9789                          "id": 59909,
  9790                          "isConstant": false,
  9791                          "isLValue": false,
  9792                          "isPure": false,
  9793                          "lValueRequested": false,
  9794                          "leftExpression": {
  9795                            "id": 59901,
  9796                            "name": "_gasLimit",
  9797                            "nodeType": "Identifier",
  9798                            "overloadedDeclarations": [],
  9799                            "referencedDeclaration": 59877,
  9800                            "src": "19163:9:110",
  9801                            "typeDescriptions": {
  9802                              "typeIdentifier": "t_uint64",
  9803                              "typeString": "uint64"
  9804                            }
  9805                          },
  9806                          "nodeType": "BinaryOperation",
  9807                          "operator": ">=",
  9808                          "rightExpression": {
  9809                            "arguments": [
  9810                              {
  9811                                "arguments": [
  9812                                  {
  9813                                    "expression": {
  9814                                      "id": 59905,
  9815                                      "name": "_data",
  9816                                      "nodeType": "Identifier",
  9817                                      "overloadedDeclarations": [],
  9818                                      "referencedDeclaration": 59881,
  9819                                      "src": "19199:5:110",
  9820                                      "typeDescriptions": {
  9821                                        "typeIdentifier": "t_bytes_memory_ptr",
  9822                                        "typeString": "bytes memory"
  9823                                      }
  9824                                    },
  9825                                    "id": 59906,
  9826                                    "isConstant": false,
  9827                                    "isLValue": false,
  9828                                    "isPure": false,
  9829                                    "lValueRequested": false,
  9830                                    "memberName": "length",
  9831                                    "nodeType": "MemberAccess",
  9832                                    "src": "19199:12:110",
  9833                                    "typeDescriptions": {
  9834                                      "typeIdentifier": "t_uint256",
  9835                                      "typeString": "uint256"
  9836                                    }
  9837                                  }
  9838                                ],
  9839                                "expression": {
  9840                                  "argumentTypes": [
  9841                                    {
  9842                                      "typeIdentifier": "t_uint256",
  9843                                      "typeString": "uint256"
  9844                                    }
  9845                                  ],
  9846                                  "id": 59904,
  9847                                  "isConstant": false,
  9848                                  "isLValue": false,
  9849                                  "isPure": true,
  9850                                  "lValueRequested": false,
  9851                                  "nodeType": "ElementaryTypeNameExpression",
  9852                                  "src": "19192:6:110",
  9853                                  "typeDescriptions": {
  9854                                    "typeIdentifier": "t_type$_t_uint64_$",
  9855                                    "typeString": "type(uint64)"
  9856                                  },
  9857                                  "typeName": {
  9858                                    "id": 59903,
  9859                                    "name": "uint64",
  9860                                    "nodeType": "ElementaryTypeName",
  9861                                    "src": "19192:6:110",
  9862                                    "typeDescriptions": {}
  9863                                  }
  9864                                },
  9865                                "id": 59907,
  9866                                "isConstant": false,
  9867                                "isLValue": false,
  9868                                "isPure": false,
  9869                                "kind": "typeConversion",
  9870                                "lValueRequested": false,
  9871                                "names": [],
  9872                                "nodeType": "FunctionCall",
  9873                                "src": "19192:20:110",
  9874                                "tryCall": false,
  9875                                "typeDescriptions": {
  9876                                  "typeIdentifier": "t_uint64",
  9877                                  "typeString": "uint64"
  9878                                }
  9879                              }
  9880                            ],
  9881                            "expression": {
  9882                              "argumentTypes": [
  9883                                {
  9884                                  "typeIdentifier": "t_uint64",
  9885                                  "typeString": "uint64"
  9886                                }
  9887                              ],
  9888                              "id": 59902,
  9889                              "name": "minimumGasLimit",
  9890                              "nodeType": "Identifier",
  9891                              "overloadedDeclarations": [],
  9892                              "referencedDeclaration": 59557,
  9893                              "src": "19176:15:110",
  9894                              "typeDescriptions": {
  9895                                "typeIdentifier": "t_function_internal_pure$_t_uint64_$returns$_t_uint64_$",
  9896                                "typeString": "function (uint64) pure returns (uint64)"
  9897                              }
  9898                            },
  9899                            "id": 59908,
  9900                            "isConstant": false,
  9901                            "isLValue": false,
  9902                            "isPure": false,
  9903                            "kind": "functionCall",
  9904                            "lValueRequested": false,
  9905                            "names": [],
  9906                            "nodeType": "FunctionCall",
  9907                            "src": "19176:37:110",
  9908                            "tryCall": false,
  9909                            "typeDescriptions": {
  9910                              "typeIdentifier": "t_uint64",
  9911                              "typeString": "uint64"
  9912                            }
  9913                          },
  9914                          "src": "19163:50:110",
  9915                          "typeDescriptions": {
  9916                            "typeIdentifier": "t_bool",
  9917                            "typeString": "bool"
  9918                          }
  9919                        },
  9920                        {
  9921                          "hexValue": "4f7074696d69736d506f7274616c3a20676173206c696d697420746f6f20736d616c6c",
  9922                          "id": 59910,
  9923                          "isConstant": false,
  9924                          "isLValue": false,
  9925                          "isPure": true,
  9926                          "kind": "string",
  9927                          "lValueRequested": false,
  9928                          "nodeType": "Literal",
  9929                          "src": "19215:37:110",
  9930                          "typeDescriptions": {
  9931                            "typeIdentifier": "t_stringliteral_0a0c886a0c5bbb9f3e1be0cff5d8eb64eb65c2a072ac278a98f80049a2d6c3f8",
  9932                            "typeString": "literal_string \"OptimismPortal: gas limit too small\""
  9933                          },
  9934                          "value": "OptimismPortal: gas limit too small"
  9935                        }
  9936                      ],
  9937                      "expression": {
  9938                        "argumentTypes": [
  9939                          {
  9940                            "typeIdentifier": "t_bool",
  9941                            "typeString": "bool"
  9942                          },
  9943                          {
  9944                            "typeIdentifier": "t_stringliteral_0a0c886a0c5bbb9f3e1be0cff5d8eb64eb65c2a072ac278a98f80049a2d6c3f8",
  9945                            "typeString": "literal_string \"OptimismPortal: gas limit too small\""
  9946                          }
  9947                        ],
  9948                        "id": 59900,
  9949                        "name": "require",
  9950                        "nodeType": "Identifier",
  9951                        "overloadedDeclarations": [
  9952                          -18,
  9953                          -18
  9954                        ],
  9955                        "referencedDeclaration": -18,
  9956                        "src": "19155:7:110",
  9957                        "typeDescriptions": {
  9958                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
  9959                          "typeString": "function (bool,string memory) pure"
  9960                        }
  9961                      },
  9962                      "id": 59911,
  9963                      "isConstant": false,
  9964                      "isLValue": false,
  9965                      "isPure": false,
  9966                      "kind": "functionCall",
  9967                      "lValueRequested": false,
  9968                      "names": [],
  9969                      "nodeType": "FunctionCall",
  9970                      "src": "19155:98:110",
  9971                      "tryCall": false,
  9972                      "typeDescriptions": {
  9973                        "typeIdentifier": "t_tuple$__$",
  9974                        "typeString": "tuple()"
  9975                      }
  9976                    },
  9977                    "id": 59912,
  9978                    "nodeType": "ExpressionStatement",
  9979                    "src": "19155:98:110"
  9980                  },
  9981                  {
  9982                    "expression": {
  9983                      "arguments": [
  9984                        {
  9985                          "commonType": {
  9986                            "typeIdentifier": "t_uint256",
  9987                            "typeString": "uint256"
  9988                          },
  9989                          "id": 59917,
  9990                          "isConstant": false,
  9991                          "isLValue": false,
  9992                          "isPure": false,
  9993                          "lValueRequested": false,
  9994                          "leftExpression": {
  9995                            "expression": {
  9996                              "id": 59914,
  9997                              "name": "_data",
  9998                              "nodeType": "Identifier",
  9999                              "overloadedDeclarations": [],
 10000                              "referencedDeclaration": 59881,
 10001                              "src": "19632:5:110",
 10002                              "typeDescriptions": {
 10003                                "typeIdentifier": "t_bytes_memory_ptr",
 10004                                "typeString": "bytes memory"
 10005                              }
 10006                            },
 10007                            "id": 59915,
 10008                            "isConstant": false,
 10009                            "isLValue": false,
 10010                            "isPure": false,
 10011                            "lValueRequested": false,
 10012                            "memberName": "length",
 10013                            "nodeType": "MemberAccess",
 10014                            "src": "19632:12:110",
 10015                            "typeDescriptions": {
 10016                              "typeIdentifier": "t_uint256",
 10017                              "typeString": "uint256"
 10018                            }
 10019                          },
 10020                          "nodeType": "BinaryOperation",
 10021                          "operator": "<=",
 10022                          "rightExpression": {
 10023                            "hexValue": "3132305f303030",
 10024                            "id": 59916,
 10025                            "isConstant": false,
 10026                            "isLValue": false,
 10027                            "isPure": true,
 10028                            "kind": "number",
 10029                            "lValueRequested": false,
 10030                            "nodeType": "Literal",
 10031                            "src": "19648:7:110",
 10032                            "typeDescriptions": {
 10033                              "typeIdentifier": "t_rational_120000_by_1",
 10034                              "typeString": "int_const 120000"
 10035                            },
 10036                            "value": "120_000"
 10037                          },
 10038                          "src": "19632:23:110",
 10039                          "typeDescriptions": {
 10040                            "typeIdentifier": "t_bool",
 10041                            "typeString": "bool"
 10042                          }
 10043                        },
 10044                        {
 10045                          "hexValue": "4f7074696d69736d506f7274616c3a206461746120746f6f206c61726765",
 10046                          "id": 59918,
 10047                          "isConstant": false,
 10048                          "isLValue": false,
 10049                          "isPure": true,
 10050                          "kind": "string",
 10051                          "lValueRequested": false,
 10052                          "nodeType": "Literal",
 10053                          "src": "19657:32:110",
 10054                          "typeDescriptions": {
 10055                            "typeIdentifier": "t_stringliteral_ed1d4c6d62337124a330de9c9e42dcf809033e5ae909544279fbaee2e389020b",
 10056                            "typeString": "literal_string \"OptimismPortal: data too large\""
 10057                          },
 10058                          "value": "OptimismPortal: data too large"
 10059                        }
 10060                      ],
 10061                      "expression": {
 10062                        "argumentTypes": [
 10063                          {
 10064                            "typeIdentifier": "t_bool",
 10065                            "typeString": "bool"
 10066                          },
 10067                          {
 10068                            "typeIdentifier": "t_stringliteral_ed1d4c6d62337124a330de9c9e42dcf809033e5ae909544279fbaee2e389020b",
 10069                            "typeString": "literal_string \"OptimismPortal: data too large\""
 10070                          }
 10071                        ],
 10072                        "id": 59913,
 10073                        "name": "require",
 10074                        "nodeType": "Identifier",
 10075                        "overloadedDeclarations": [
 10076                          -18,
 10077                          -18
 10078                        ],
 10079                        "referencedDeclaration": -18,
 10080                        "src": "19624:7:110",
 10081                        "typeDescriptions": {
 10082                          "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
 10083                          "typeString": "function (bool,string memory) pure"
 10084                        }
 10085                      },
 10086                      "id": 59919,
 10087                      "isConstant": false,
 10088                      "isLValue": false,
 10089                      "isPure": false,
 10090                      "kind": "functionCall",
 10091                      "lValueRequested": false,
 10092                      "names": [],
 10093                      "nodeType": "FunctionCall",
 10094                      "src": "19624:66:110",
 10095                      "tryCall": false,
 10096                      "typeDescriptions": {
 10097                        "typeIdentifier": "t_tuple$__$",
 10098                        "typeString": "tuple()"
 10099                      }
 10100                    },
 10101                    "id": 59920,
 10102                    "nodeType": "ExpressionStatement",
 10103                    "src": "19624:66:110"
 10104                  },
 10105                  {
 10106                    "assignments": [
 10107                      59922
 10108                    ],
 10109                    "declarations": [
 10110                      {
 10111                        "constant": false,
 10112                        "id": 59922,
 10113                        "mutability": "mutable",
 10114                        "name": "from",
 10115                        "nameLocation": "19789:4:110",
 10116                        "nodeType": "VariableDeclaration",
 10117                        "scope": 59960,
 10118                        "src": "19781:12:110",
 10119                        "stateVariable": false,
 10120                        "storageLocation": "default",
 10121                        "typeDescriptions": {
 10122                          "typeIdentifier": "t_address",
 10123                          "typeString": "address"
 10124                        },
 10125                        "typeName": {
 10126                          "id": 59921,
 10127                          "name": "address",
 10128                          "nodeType": "ElementaryTypeName",
 10129                          "src": "19781:7:110",
 10130                          "stateMutability": "nonpayable",
 10131                          "typeDescriptions": {
 10132                            "typeIdentifier": "t_address",
 10133                            "typeString": "address"
 10134                          }
 10135                        },
 10136                        "visibility": "internal"
 10137                      }
 10138                    ],
 10139                    "id": 59925,
 10140                    "initialValue": {
 10141                      "expression": {
 10142                        "id": 59923,
 10143                        "name": "msg",
 10144                        "nodeType": "Identifier",
 10145                        "overloadedDeclarations": [],
 10146                        "referencedDeclaration": -15,
 10147                        "src": "19796:3:110",
 10148                        "typeDescriptions": {
 10149                          "typeIdentifier": "t_magic_message",
 10150                          "typeString": "msg"
 10151                        }
 10152                      },
 10153                      "id": 59924,
 10154                      "isConstant": false,
 10155                      "isLValue": false,
 10156                      "isPure": false,
 10157                      "lValueRequested": false,
 10158                      "memberName": "sender",
 10159                      "nodeType": "MemberAccess",
 10160                      "src": "19796:10:110",
 10161                      "typeDescriptions": {
 10162                        "typeIdentifier": "t_address",
 10163                        "typeString": "address"
 10164                      }
 10165                    },
 10166                    "nodeType": "VariableDeclarationStatement",
 10167                    "src": "19781:25:110"
 10168                  },
 10169                  {
 10170                    "condition": {
 10171                      "commonType": {
 10172                        "typeIdentifier": "t_address",
 10173                        "typeString": "address"
 10174                      },
 10175                      "id": 59930,
 10176                      "isConstant": false,
 10177                      "isLValue": false,
 10178                      "isPure": false,
 10179                      "lValueRequested": false,
 10180                      "leftExpression": {
 10181                        "expression": {
 10182                          "id": 59926,
 10183                          "name": "msg",
 10184                          "nodeType": "Identifier",
 10185                          "overloadedDeclarations": [],
 10186                          "referencedDeclaration": -15,
 10187                          "src": "19820:3:110",
 10188                          "typeDescriptions": {
 10189                            "typeIdentifier": "t_magic_message",
 10190                            "typeString": "msg"
 10191                          }
 10192                        },
 10193                        "id": 59927,
 10194                        "isConstant": false,
 10195                        "isLValue": false,
 10196                        "isPure": false,
 10197                        "lValueRequested": false,
 10198                        "memberName": "sender",
 10199                        "nodeType": "MemberAccess",
 10200                        "src": "19820:10:110",
 10201                        "typeDescriptions": {
 10202                          "typeIdentifier": "t_address",
 10203                          "typeString": "address"
 10204                        }
 10205                      },
 10206                      "nodeType": "BinaryOperation",
 10207                      "operator": "!=",
 10208                      "rightExpression": {
 10209                        "expression": {
 10210                          "id": 59928,
 10211                          "name": "tx",
 10212                          "nodeType": "Identifier",
 10213                          "overloadedDeclarations": [],
 10214                          "referencedDeclaration": -26,
 10215                          "src": "19834:2:110",
 10216                          "typeDescriptions": {
 10217                            "typeIdentifier": "t_magic_transaction",
 10218                            "typeString": "tx"
 10219                          }
 10220                        },
 10221                        "id": 59929,
 10222                        "isConstant": false,
 10223                        "isLValue": false,
 10224                        "isPure": false,
 10225                        "lValueRequested": false,
 10226                        "memberName": "origin",
 10227                        "nodeType": "MemberAccess",
 10228                        "src": "19834:9:110",
 10229                        "typeDescriptions": {
 10230                          "typeIdentifier": "t_address",
 10231                          "typeString": "address"
 10232                        }
 10233                      },
 10234                      "src": "19820:23:110",
 10235                      "typeDescriptions": {
 10236                        "typeIdentifier": "t_bool",
 10237                        "typeString": "bool"
 10238                      }
 10239                    },
 10240                    "id": 59940,
 10241                    "nodeType": "IfStatement",
 10242                    "src": "19816:108:110",
 10243                    "trueBody": {
 10244                      "id": 59939,
 10245                      "nodeType": "Block",
 10246                      "src": "19845:79:110",
 10247                      "statements": [
 10248                        {
 10249                          "expression": {
 10250                            "id": 59937,
 10251                            "isConstant": false,
 10252                            "isLValue": false,
 10253                            "isPure": false,
 10254                            "lValueRequested": false,
 10255                            "leftHandSide": {
 10256                              "id": 59931,
 10257                              "name": "from",
 10258                              "nodeType": "Identifier",
 10259                              "overloadedDeclarations": [],
 10260                              "referencedDeclaration": 59922,
 10261                              "src": "19859:4:110",
 10262                              "typeDescriptions": {
 10263                                "typeIdentifier": "t_address",
 10264                                "typeString": "address"
 10265                              }
 10266                            },
 10267                            "nodeType": "Assignment",
 10268                            "operator": "=",
 10269                            "rightHandSide": {
 10270                              "arguments": [
 10271                                {
 10272                                  "expression": {
 10273                                    "id": 59934,
 10274                                    "name": "msg",
 10275                                    "nodeType": "Identifier",
 10276                                    "overloadedDeclarations": [],
 10277                                    "referencedDeclaration": -15,
 10278                                    "src": "19902:3:110",
 10279                                    "typeDescriptions": {
 10280                                      "typeIdentifier": "t_magic_message",
 10281                                      "typeString": "msg"
 10282                                    }
 10283                                  },
 10284                                  "id": 59935,
 10285                                  "isConstant": false,
 10286                                  "isLValue": false,
 10287                                  "isPure": false,
 10288                                  "lValueRequested": false,
 10289                                  "memberName": "sender",
 10290                                  "nodeType": "MemberAccess",
 10291                                  "src": "19902:10:110",
 10292                                  "typeDescriptions": {
 10293                                    "typeIdentifier": "t_address",
 10294                                    "typeString": "address"
 10295                                  }
 10296                                }
 10297                              ],
 10298                              "expression": {
 10299                                "argumentTypes": [
 10300                                  {
 10301                                    "typeIdentifier": "t_address",
 10302                                    "typeString": "address"
 10303                                  }
 10304                                ],
 10305                                "expression": {
 10306                                  "id": 59932,
 10307                                  "name": "AddressAliasHelper",
 10308                                  "nodeType": "Identifier",
 10309                                  "overloadedDeclarations": [],
 10310                                  "referencedDeclaration": 78127,
 10311                                  "src": "19866:18:110",
 10312                                  "typeDescriptions": {
 10313                                    "typeIdentifier": "t_type$_t_contract$_AddressAliasHelper_$78127_$",
 10314                                    "typeString": "type(library AddressAliasHelper)"
 10315                                  }
 10316                                },
 10317                                "id": 59933,
 10318                                "isConstant": false,
 10319                                "isLValue": false,
 10320                                "isPure": false,
 10321                                "lValueRequested": false,
 10322                                "memberName": "applyL1ToL2Alias",
 10323                                "nodeType": "MemberAccess",
 10324                                "referencedDeclaration": 78104,
 10325                                "src": "19866:35:110",
 10326                                "typeDescriptions": {
 10327                                  "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_$",
 10328                                  "typeString": "function (address) pure returns (address)"
 10329                                }
 10330                              },
 10331                              "id": 59936,
 10332                              "isConstant": false,
 10333                              "isLValue": false,
 10334                              "isPure": false,
 10335                              "kind": "functionCall",
 10336                              "lValueRequested": false,
 10337                              "names": [],
 10338                              "nodeType": "FunctionCall",
 10339                              "src": "19866:47:110",
 10340                              "tryCall": false,
 10341                              "typeDescriptions": {
 10342                                "typeIdentifier": "t_address",
 10343                                "typeString": "address"
 10344                              }
 10345                            },
 10346                            "src": "19859:54:110",
 10347                            "typeDescriptions": {
 10348                              "typeIdentifier": "t_address",
 10349                              "typeString": "address"
 10350                            }
 10351                          },
 10352                          "id": 59938,
 10353                          "nodeType": "ExpressionStatement",
 10354                          "src": "19859:54:110"
 10355                        }
 10356                      ]
 10357                    }
 10358                  },
 10359                  {
 10360                    "assignments": [
 10361                      59942
 10362                    ],
 10363                    "declarations": [
 10364                      {
 10365                        "constant": false,
 10366                        "id": 59942,
 10367                        "mutability": "mutable",
 10368                        "name": "opaqueData",
 10369                        "nameLocation": "20194:10:110",
 10370                        "nodeType": "VariableDeclaration",
 10371                        "scope": 59960,
 10372                        "src": "20181:23:110",
 10373                        "stateVariable": false,
 10374                        "storageLocation": "memory",
 10375                        "typeDescriptions": {
 10376                          "typeIdentifier": "t_bytes_memory_ptr",
 10377                          "typeString": "bytes"
 10378                        },
 10379                        "typeName": {
 10380                          "id": 59941,
 10381                          "name": "bytes",
 10382                          "nodeType": "ElementaryTypeName",
 10383                          "src": "20181:5:110",
 10384                          "typeDescriptions": {
 10385                            "typeIdentifier": "t_bytes_storage_ptr",
 10386                            "typeString": "bytes"
 10387                          }
 10388                        },
 10389                        "visibility": "internal"
 10390                      }
 10391                    ],
 10392                    "id": 59952,
 10393                    "initialValue": {
 10394                      "arguments": [
 10395                        {
 10396                          "expression": {
 10397                            "id": 59945,
 10398                            "name": "msg",
 10399                            "nodeType": "Identifier",
 10400                            "overloadedDeclarations": [],
 10401                            "referencedDeclaration": -15,
 10402                            "src": "20224:3:110",
 10403                            "typeDescriptions": {
 10404                              "typeIdentifier": "t_magic_message",
 10405                              "typeString": "msg"
 10406                            }
 10407                          },
 10408                          "id": 59946,
 10409                          "isConstant": false,
 10410                          "isLValue": false,
 10411                          "isPure": false,
 10412                          "lValueRequested": false,
 10413                          "memberName": "value",
 10414                          "nodeType": "MemberAccess",
 10415                          "src": "20224:9:110",
 10416                          "typeDescriptions": {
 10417                            "typeIdentifier": "t_uint256",
 10418                            "typeString": "uint256"
 10419                          }
 10420                        },
 10421                        {
 10422                          "id": 59947,
 10423                          "name": "_value",
 10424                          "nodeType": "Identifier",
 10425                          "overloadedDeclarations": [],
 10426                          "referencedDeclaration": 59875,
 10427                          "src": "20235:6:110",
 10428                          "typeDescriptions": {
 10429                            "typeIdentifier": "t_uint256",
 10430                            "typeString": "uint256"
 10431                          }
 10432                        },
 10433                        {
 10434                          "id": 59948,
 10435                          "name": "_gasLimit",
 10436                          "nodeType": "Identifier",
 10437                          "overloadedDeclarations": [],
 10438                          "referencedDeclaration": 59877,
 10439                          "src": "20243:9:110",
 10440                          "typeDescriptions": {
 10441                            "typeIdentifier": "t_uint64",
 10442                            "typeString": "uint64"
 10443                          }
 10444                        },
 10445                        {
 10446                          "id": 59949,
 10447                          "name": "_isCreation",
 10448                          "nodeType": "Identifier",
 10449                          "overloadedDeclarations": [],
 10450                          "referencedDeclaration": 59879,
 10451                          "src": "20254:11:110",
 10452                          "typeDescriptions": {
 10453                            "typeIdentifier": "t_bool",
 10454                            "typeString": "bool"
 10455                          }
 10456                        },
 10457                        {
 10458                          "id": 59950,
 10459                          "name": "_data",
 10460                          "nodeType": "Identifier",
 10461                          "overloadedDeclarations": [],
 10462                          "referencedDeclaration": 59881,
 10463                          "src": "20267:5:110",
 10464                          "typeDescriptions": {
 10465                            "typeIdentifier": "t_bytes_memory_ptr",
 10466                            "typeString": "bytes memory"
 10467                          }
 10468                        }
 10469                      ],
 10470                      "expression": {
 10471                        "argumentTypes": [
 10472                          {
 10473                            "typeIdentifier": "t_uint256",
 10474                            "typeString": "uint256"
 10475                          },
 10476                          {
 10477                            "typeIdentifier": "t_uint256",
 10478                            "typeString": "uint256"
 10479                          },
 10480                          {
 10481                            "typeIdentifier": "t_uint64",
 10482                            "typeString": "uint64"
 10483                          },
 10484                          {
 10485                            "typeIdentifier": "t_bool",
 10486                            "typeString": "bool"
 10487                          },
 10488                          {
 10489                            "typeIdentifier": "t_bytes_memory_ptr",
 10490                            "typeString": "bytes memory"
 10491                          }
 10492                        ],
 10493                        "expression": {
 10494                          "id": 59943,
 10495                          "name": "abi",
 10496                          "nodeType": "Identifier",
 10497                          "overloadedDeclarations": [],
 10498                          "referencedDeclaration": -1,
 10499                          "src": "20207:3:110",
 10500                          "typeDescriptions": {
 10501                            "typeIdentifier": "t_magic_abi",
 10502                            "typeString": "abi"
 10503                          }
 10504                        },
 10505                        "id": 59944,
 10506                        "isConstant": false,
 10507                        "isLValue": false,
 10508                        "isPure": true,
 10509                        "lValueRequested": false,
 10510                        "memberName": "encodePacked",
 10511                        "nodeType": "MemberAccess",
 10512                        "src": "20207:16:110",
 10513                        "typeDescriptions": {
 10514                          "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
 10515                          "typeString": "function () pure returns (bytes memory)"
 10516                        }
 10517                      },
 10518                      "id": 59951,
 10519                      "isConstant": false,
 10520                      "isLValue": false,
 10521                      "isPure": false,
 10522                      "kind": "functionCall",
 10523                      "lValueRequested": false,
 10524                      "names": [],
 10525                      "nodeType": "FunctionCall",
 10526                      "src": "20207:66:110",
 10527                      "tryCall": false,
 10528                      "typeDescriptions": {
 10529                        "typeIdentifier": "t_bytes_memory_ptr",
 10530                        "typeString": "bytes memory"
 10531                      }
 10532                    },
 10533                    "nodeType": "VariableDeclarationStatement",
 10534                    "src": "20181:92:110"
 10535                  },
 10536                  {
 10537                    "eventCall": {
 10538                      "arguments": [
 10539                        {
 10540                          "id": 59954,
 10541                          "name": "from",
 10542                          "nodeType": "Identifier",
 10543                          "overloadedDeclarations": [],
 10544                          "referencedDeclaration": 59922,
 10545                          "src": "20441:4:110",
 10546                          "typeDescriptions": {
 10547                            "typeIdentifier": "t_address",
 10548                            "typeString": "address"
 10549                          }
 10550                        },
 10551                        {
 10552                          "id": 59955,
 10553                          "name": "_to",
 10554                          "nodeType": "Identifier",
 10555                          "overloadedDeclarations": [],
 10556                          "referencedDeclaration": 59873,
 10557                          "src": "20447:3:110",
 10558                          "typeDescriptions": {
 10559                            "typeIdentifier": "t_address",
 10560                            "typeString": "address"
 10561                          }
 10562                        },
 10563                        {
 10564                          "id": 59956,
 10565                          "name": "DEPOSIT_VERSION",
 10566                          "nodeType": "Identifier",
 10567                          "overloadedDeclarations": [],
 10568                          "referencedDeclaration": 59316,
 10569                          "src": "20452:15:110",
 10570                          "typeDescriptions": {
 10571                            "typeIdentifier": "t_uint256",
 10572                            "typeString": "uint256"
 10573                          }
 10574                        },
 10575                        {
 10576                          "id": 59957,
 10577                          "name": "opaqueData",
 10578                          "nodeType": "Identifier",
 10579                          "overloadedDeclarations": [],
 10580                          "referencedDeclaration": 59942,
 10581                          "src": "20469:10:110",
 10582                          "typeDescriptions": {
 10583                            "typeIdentifier": "t_bytes_memory_ptr",
 10584                            "typeString": "bytes memory"
 10585                          }
 10586                        }
 10587                      ],
 10588                      "expression": {
 10589                        "argumentTypes": [
 10590                          {
 10591                            "typeIdentifier": "t_address",
 10592                            "typeString": "address"
 10593                          },
 10594                          {
 10595                            "typeIdentifier": "t_address",
 10596                            "typeString": "address"
 10597                          },
 10598                          {
 10599                            "typeIdentifier": "t_uint256",
 10600                            "typeString": "uint256"
 10601                          },
 10602                          {
 10603                            "typeIdentifier": "t_bytes_memory_ptr",
 10604                            "typeString": "bytes memory"
 10605                          }
 10606                        ],
 10607                        "id": 59953,
 10608                        "name": "TransactionDeposited",
 10609                        "nodeType": "Identifier",
 10610                        "overloadedDeclarations": [],
 10611                        "referencedDeclaration": 59359,
 10612                        "src": "20420:20:110",
 10613                        "typeDescriptions": {
 10614                          "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
 10615                          "typeString": "function (address,address,uint256,bytes memory)"
 10616                        }
 10617                      },
 10618                      "id": 59958,
 10619                      "isConstant": false,
 10620                      "isLValue": false,
 10621                      "isPure": false,
 10622                      "kind": "functionCall",
 10623                      "lValueRequested": false,
 10624                      "names": [],
 10625                      "nodeType": "FunctionCall",
 10626                      "src": "20420:60:110",
 10627                      "tryCall": false,
 10628                      "typeDescriptions": {
 10629                        "typeIdentifier": "t_tuple$__$",
 10630                        "typeString": "tuple()"
 10631                      }
 10632                    },
 10633                    "id": 59959,
 10634                    "nodeType": "EmitStatement",
 10635                    "src": "20415:65:110"
 10636                  }
 10637                ]
 10638              },
 10639              "documentation": {
 10640                "id": 59871,
 10641                "nodeType": "StructuredDocumentation",
 10642                "src": "17792:719:110",
 10643                "text": "@notice Accepts deposits of ETH and data, and emits a TransactionDeposited event for use in\n         deriving deposit transactions. Note that if a deposit is made by a contract, its\n         address will be aliased when retrieved using `tx.origin` or `msg.sender`. Consider\n         using the CrossDomainMessenger contracts for a simpler developer experience.\n @param _to         Target address on L2.\n @param _value      ETH value to send to the recipient.\n @param _gasLimit   Amount of L2 gas to purchase by burning gas on L1.\n @param _isCreation Whether or not the transaction is a contract creation.\n @param _data       Data to trigger the recipient with."
 10644              },
 10645              "functionSelector": "e9e05c42",
 10646              "implemented": true,
 10647              "kind": "function",
 10648              "modifiers": [
 10649                {
 10650                  "arguments": [
 10651                    {
 10652                      "id": 59884,
 10653                      "name": "_gasLimit",
 10654                      "nodeType": "Identifier",
 10655                      "overloadedDeclarations": [],
 10656                      "referencedDeclaration": 59877,
 10657                      "src": "18722:9:110",
 10658                      "typeDescriptions": {
 10659                        "typeIdentifier": "t_uint64",
 10660                        "typeString": "uint64"
 10661                      }
 10662                    }
 10663                  ],
 10664                  "id": 59885,
 10665                  "kind": "modifierInvocation",
 10666                  "modifierName": {
 10667                    "id": 59883,
 10668                    "name": "metered",
 10669                    "nodeType": "IdentifierPath",
 10670                    "referencedDeclaration": 60309,
 10671                    "src": "18714:7:110"
 10672                  },
 10673                  "nodeType": "ModifierInvocation",
 10674                  "src": "18714:18:110"
 10675                }
 10676              ],
 10677              "name": "depositTransaction",
 10678              "nameLocation": "18525:18:110",
 10679              "parameters": {
 10680                "id": 59882,
 10681                "nodeType": "ParameterList",
 10682                "parameters": [
 10683                  {
 10684                    "constant": false,
 10685                    "id": 59873,
 10686                    "mutability": "mutable",
 10687                    "name": "_to",
 10688                    "nameLocation": "18561:3:110",
 10689                    "nodeType": "VariableDeclaration",
 10690                    "scope": 59961,
 10691                    "src": "18553:11:110",
 10692                    "stateVariable": false,
 10693                    "storageLocation": "default",
 10694                    "typeDescriptions": {
 10695                      "typeIdentifier": "t_address",
 10696                      "typeString": "address"
 10697                    },
 10698                    "typeName": {
 10699                      "id": 59872,
 10700                      "name": "address",
 10701                      "nodeType": "ElementaryTypeName",
 10702                      "src": "18553:7:110",
 10703                      "stateMutability": "nonpayable",
 10704                      "typeDescriptions": {
 10705                        "typeIdentifier": "t_address",
 10706                        "typeString": "address"
 10707                      }
 10708                    },
 10709                    "visibility": "internal"
 10710                  },
 10711                  {
 10712                    "constant": false,
 10713                    "id": 59875,
 10714                    "mutability": "mutable",
 10715                    "name": "_value",
 10716                    "nameLocation": "18582:6:110",
 10717                    "nodeType": "VariableDeclaration",
 10718                    "scope": 59961,
 10719                    "src": "18574:14:110",
 10720                    "stateVariable": false,
 10721                    "storageLocation": "default",
 10722                    "typeDescriptions": {
 10723                      "typeIdentifier": "t_uint256",
 10724                      "typeString": "uint256"
 10725                    },
 10726                    "typeName": {
 10727                      "id": 59874,
 10728                      "name": "uint256",
 10729                      "nodeType": "ElementaryTypeName",
 10730                      "src": "18574:7:110",
 10731                      "typeDescriptions": {
 10732                        "typeIdentifier": "t_uint256",
 10733                        "typeString": "uint256"
 10734                      }
 10735                    },
 10736                    "visibility": "internal"
 10737                  },
 10738                  {
 10739                    "constant": false,
 10740                    "id": 59877,
 10741                    "mutability": "mutable",
 10742                    "name": "_gasLimit",
 10743                    "nameLocation": "18605:9:110",
 10744                    "nodeType": "VariableDeclaration",
 10745                    "scope": 59961,
 10746                    "src": "18598:16:110",
 10747                    "stateVariable": false,
 10748                    "storageLocation": "default",
 10749                    "typeDescriptions": {
 10750                      "typeIdentifier": "t_uint64",
 10751                      "typeString": "uint64"
 10752                    },
 10753                    "typeName": {
 10754                      "id": 59876,
 10755                      "name": "uint64",
 10756                      "nodeType": "ElementaryTypeName",
 10757                      "src": "18598:6:110",
 10758                      "typeDescriptions": {
 10759                        "typeIdentifier": "t_uint64",
 10760                        "typeString": "uint64"
 10761                      }
 10762                    },
 10763                    "visibility": "internal"
 10764                  },
 10765                  {
 10766                    "constant": false,
 10767                    "id": 59879,
 10768                    "mutability": "mutable",
 10769                    "name": "_isCreation",
 10770                    "nameLocation": "18629:11:110",
 10771                    "nodeType": "VariableDeclaration",
 10772                    "scope": 59961,
 10773                    "src": "18624:16:110",
 10774                    "stateVariable": false,
 10775                    "storageLocation": "default",
 10776                    "typeDescriptions": {
 10777                      "typeIdentifier": "t_bool",
 10778                      "typeString": "bool"
 10779                    },
 10780                    "typeName": {
 10781                      "id": 59878,
 10782                      "name": "bool",
 10783                      "nodeType": "ElementaryTypeName",
 10784                      "src": "18624:4:110",
 10785                      "typeDescriptions": {
 10786                        "typeIdentifier": "t_bool",
 10787                        "typeString": "bool"
 10788                      }
 10789                    },
 10790                    "visibility": "internal"
 10791                  },
 10792                  {
 10793                    "constant": false,
 10794                    "id": 59881,
 10795                    "mutability": "mutable",
 10796                    "name": "_data",
 10797                    "nameLocation": "18663:5:110",
 10798                    "nodeType": "VariableDeclaration",
 10799                    "scope": 59961,
 10800                    "src": "18650:18:110",
 10801                    "stateVariable": false,
 10802                    "storageLocation": "memory",
 10803                    "typeDescriptions": {
 10804                      "typeIdentifier": "t_bytes_memory_ptr",
 10805                      "typeString": "bytes"
 10806                    },
 10807                    "typeName": {
 10808                      "id": 59880,
 10809                      "name": "bytes",
 10810                      "nodeType": "ElementaryTypeName",
 10811                      "src": "18650:5:110",
 10812                      "typeDescriptions": {
 10813                        "typeIdentifier": "t_bytes_storage_ptr",
 10814                        "typeString": "bytes"
 10815                      }
 10816                    },
 10817                    "visibility": "internal"
 10818                  }
 10819                ],
 10820                "src": "18543:131:110"
 10821              },
 10822              "returnParameters": {
 10823                "id": 59886,
 10824                "nodeType": "ParameterList",
 10825                "parameters": [],
 10826                "src": "18737:0:110"
 10827              },
 10828              "scope": 59997,
 10829              "stateMutability": "payable",
 10830              "virtual": false,
 10831              "visibility": "public"
 10832            },
 10833            {
 10834              "id": 59978,
 10835              "nodeType": "FunctionDefinition",
 10836              "src": "20785:180:110",
 10837              "nodes": [],
 10838              "body": {
 10839                "id": 59977,
 10840                "nodeType": "Block",
 10841                "src": "20865:100:110",
 10842                "nodes": [],
 10843                "statements": [
 10844                  {
 10845                    "expression": {
 10846                      "arguments": [
 10847                        {
 10848                          "expression": {
 10849                            "arguments": [
 10850                              {
 10851                                "id": 59972,
 10852                                "name": "_l2OutputIndex",
 10853                                "nodeType": "Identifier",
 10854                                "overloadedDeclarations": [],
 10855                                "referencedDeclaration": 59964,
 10856                                "src": "20932:14:110",
 10857                                "typeDescriptions": {
 10858                                  "typeIdentifier": "t_uint256",
 10859                                  "typeString": "uint256"
 10860                                }
 10861                              }
 10862                            ],
 10863                            "expression": {
 10864                              "argumentTypes": [
 10865                                {
 10866                                  "typeIdentifier": "t_uint256",
 10867                                  "typeString": "uint256"
 10868                                }
 10869                              ],
 10870                              "expression": {
 10871                                "id": 59970,
 10872                                "name": "l2Oracle",
 10873                                "nodeType": "Identifier",
 10874                                "overloadedDeclarations": [],
 10875                                "referencedDeclaration": 59341,
 10876                                "src": "20911:8:110",
 10877                                "typeDescriptions": {
 10878                                  "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
 10879                                  "typeString": "contract L2OutputOracle"
 10880                                }
 10881                              },
 10882                              "id": 59971,
 10883                              "isConstant": false,
 10884                              "isLValue": false,
 10885                              "isPure": false,
 10886                              "lValueRequested": false,
 10887                              "memberName": "getL2Output",
 10888                              "nodeType": "MemberAccess",
 10889                              "referencedDeclaration": 59112,
 10890                              "src": "20911:20:110",
 10891                              "typeDescriptions": {
 10892                                "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_OutputProposal_$70553_memory_ptr_$",
 10893                                "typeString": "function (uint256) view external returns (struct Types.OutputProposal memory)"
 10894                              }
 10895                            },
 10896                            "id": 59973,
 10897                            "isConstant": false,
 10898                            "isLValue": false,
 10899                            "isPure": false,
 10900                            "kind": "functionCall",
 10901                            "lValueRequested": false,
 10902                            "names": [],
 10903                            "nodeType": "FunctionCall",
 10904                            "src": "20911:36:110",
 10905                            "tryCall": false,
 10906                            "typeDescriptions": {
 10907                              "typeIdentifier": "t_struct$_OutputProposal_$70553_memory_ptr",
 10908                              "typeString": "struct Types.OutputProposal memory"
 10909                            }
 10910                          },
 10911                          "id": 59974,
 10912                          "isConstant": false,
 10913                          "isLValue": true,
 10914                          "isPure": false,
 10915                          "lValueRequested": false,
 10916                          "memberName": "timestamp",
 10917                          "nodeType": "MemberAccess",
 10918                          "referencedDeclaration": 70550,
 10919                          "src": "20911:46:110",
 10920                          "typeDescriptions": {
 10921                            "typeIdentifier": "t_uint128",
 10922                            "typeString": "uint128"
 10923                          }
 10924                        }
 10925                      ],
 10926                      "expression": {
 10927                        "argumentTypes": [
 10928                          {
 10929                            "typeIdentifier": "t_uint128",
 10930                            "typeString": "uint128"
 10931                          }
 10932                        ],
 10933                        "id": 59969,
 10934                        "name": "_isFinalizationPeriodElapsed",
 10935                        "nodeType": "Identifier",
 10936                        "overloadedDeclarations": [],
 10937                        "referencedDeclaration": 59996,
 10938                        "src": "20882:28:110",
 10939                        "typeDescriptions": {
 10940                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
 10941                          "typeString": "function (uint256) view returns (bool)"
 10942                        }
 10943                      },
 10944                      "id": 59975,
 10945                      "isConstant": false,
 10946                      "isLValue": false,
 10947                      "isPure": false,
 10948                      "kind": "functionCall",
 10949                      "lValueRequested": false,
 10950                      "names": [],
 10951                      "nodeType": "FunctionCall",
 10952                      "src": "20882:76:110",
 10953                      "tryCall": false,
 10954                      "typeDescriptions": {
 10955                        "typeIdentifier": "t_bool",
 10956                        "typeString": "bool"
 10957                      }
 10958                    },
 10959                    "functionReturnParameters": 59968,
 10960                    "id": 59976,
 10961                    "nodeType": "Return",
 10962                    "src": "20875:83:110"
 10963                  }
 10964                ]
 10965              },
 10966              "documentation": {
 10967                "id": 59962,
 10968                "nodeType": "StructuredDocumentation",
 10969                "src": "20493:287:110",
 10970                "text": "@notice Determine if a given output is finalized.\n         Reverts if the call to L2_ORACLE.getL2Output reverts.\n         Returns a boolean otherwise.\n @param _l2OutputIndex Index of the L2 output to check.\n @return Whether or not the output is finalized."
 10971              },
 10972              "functionSelector": "6dbffb78",
 10973              "implemented": true,
 10974              "kind": "function",
 10975              "modifiers": [],
 10976              "name": "isOutputFinalized",
 10977              "nameLocation": "20794:17:110",
 10978              "parameters": {
 10979                "id": 59965,
 10980                "nodeType": "ParameterList",
 10981                "parameters": [
 10982                  {
 10983                    "constant": false,
 10984                    "id": 59964,
 10985                    "mutability": "mutable",
 10986                    "name": "_l2OutputIndex",
 10987                    "nameLocation": "20820:14:110",
 10988                    "nodeType": "VariableDeclaration",
 10989                    "scope": 59978,
 10990                    "src": "20812:22:110",
 10991                    "stateVariable": false,
 10992                    "storageLocation": "default",
 10993                    "typeDescriptions": {
 10994                      "typeIdentifier": "t_uint256",
 10995                      "typeString": "uint256"
 10996                    },
 10997                    "typeName": {
 10998                      "id": 59963,
 10999                      "name": "uint256",
 11000                      "nodeType": "ElementaryTypeName",
 11001                      "src": "20812:7:110",
 11002                      "typeDescriptions": {
 11003                        "typeIdentifier": "t_uint256",
 11004                        "typeString": "uint256"
 11005                      }
 11006                    },
 11007                    "visibility": "internal"
 11008                  }
 11009                ],
 11010                "src": "20811:24:110"
 11011              },
 11012              "returnParameters": {
 11013                "id": 59968,
 11014                "nodeType": "ParameterList",
 11015                "parameters": [
 11016                  {
 11017                    "constant": false,
 11018                    "id": 59967,
 11019                    "mutability": "mutable",
 11020                    "name": "",
 11021                    "nameLocation": "-1:-1:-1",
 11022                    "nodeType": "VariableDeclaration",
 11023                    "scope": 59978,
 11024                    "src": "20859:4:110",
 11025                    "stateVariable": false,
 11026                    "storageLocation": "default",
 11027                    "typeDescriptions": {
 11028                      "typeIdentifier": "t_bool",
 11029                      "typeString": "bool"
 11030                    },
 11031                    "typeName": {
 11032                      "id": 59966,
 11033                      "name": "bool",
 11034                      "nodeType": "ElementaryTypeName",
 11035                      "src": "20859:4:110",
 11036                      "typeDescriptions": {
 11037                        "typeIdentifier": "t_bool",
 11038                        "typeString": "bool"
 11039                      }
 11040                    },
 11041                    "visibility": "internal"
 11042                  }
 11043                ],
 11044                "src": "20858:6:110"
 11045              },
 11046              "scope": 59997,
 11047              "stateMutability": "view",
 11048              "virtual": false,
 11049              "visibility": "external"
 11050            },
 11051            {
 11052              "id": 59996,
 11053              "nodeType": "FunctionDefinition",
 11054              "src": "21218:180:110",
 11055              "nodes": [],
 11056              "body": {
 11057                "id": 59995,
 11058                "nodeType": "Block",
 11059                "src": "21305:93:110",
 11060                "nodes": [],
 11061                "statements": [
 11062                  {
 11063                    "expression": {
 11064                      "commonType": {
 11065                        "typeIdentifier": "t_uint256",
 11066                        "typeString": "uint256"
 11067                      },
 11068                      "id": 59993,
 11069                      "isConstant": false,
 11070                      "isLValue": false,
 11071                      "isPure": false,
 11072                      "lValueRequested": false,
 11073                      "leftExpression": {
 11074                        "expression": {
 11075                          "id": 59986,
 11076                          "name": "block",
 11077                          "nodeType": "Identifier",
 11078                          "overloadedDeclarations": [],
 11079                          "referencedDeclaration": -4,
 11080                          "src": "21322:5:110",
 11081                          "typeDescriptions": {
 11082                            "typeIdentifier": "t_magic_block",
 11083                            "typeString": "block"
 11084                          }
 11085                        },
 11086                        "id": 59987,
 11087                        "isConstant": false,
 11088                        "isLValue": false,
 11089                        "isPure": false,
 11090                        "lValueRequested": false,
 11091                        "memberName": "timestamp",
 11092                        "nodeType": "MemberAccess",
 11093                        "src": "21322:15:110",
 11094                        "typeDescriptions": {
 11095                          "typeIdentifier": "t_uint256",
 11096                          "typeString": "uint256"
 11097                        }
 11098                      },
 11099                      "nodeType": "BinaryOperation",
 11100                      "operator": ">",
 11101                      "rightExpression": {
 11102                        "commonType": {
 11103                          "typeIdentifier": "t_uint256",
 11104                          "typeString": "uint256"
 11105                        },
 11106                        "id": 59992,
 11107                        "isConstant": false,
 11108                        "isLValue": false,
 11109                        "isPure": false,
 11110                        "lValueRequested": false,
 11111                        "leftExpression": {
 11112                          "id": 59988,
 11113                          "name": "_timestamp",
 11114                          "nodeType": "Identifier",
 11115                          "overloadedDeclarations": [],
 11116                          "referencedDeclaration": 59981,
 11117                          "src": "21340:10:110",
 11118                          "typeDescriptions": {
 11119                            "typeIdentifier": "t_uint256",
 11120                            "typeString": "uint256"
 11121                          }
 11122                        },
 11123                        "nodeType": "BinaryOperation",
 11124                        "operator": "+",
 11125                        "rightExpression": {
 11126                          "arguments": [],
 11127                          "expression": {
 11128                            "argumentTypes": [],
 11129                            "expression": {
 11130                              "id": 59989,
 11131                              "name": "l2Oracle",
 11132                              "nodeType": "Identifier",
 11133                              "overloadedDeclarations": [],
 11134                              "referencedDeclaration": 59341,
 11135                              "src": "21353:8:110",
 11136                              "typeDescriptions": {
 11137                                "typeIdentifier": "t_contract$_L2OutputOracle_$59272",
 11138                                "typeString": "contract L2OutputOracle"
 11139                              }
 11140                            },
 11141                            "id": 59990,
 11142                            "isConstant": false,
 11143                            "isLValue": false,
 11144                            "isPure": false,
 11145                            "lValueRequested": false,
 11146                            "memberName": "FINALIZATION_PERIOD_SECONDS",
 11147                            "nodeType": "MemberAccess",
 11148                            "referencedDeclaration": 58783,
 11149                            "src": "21353:36:110",
 11150                            "typeDescriptions": {
 11151                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
 11152                              "typeString": "function () view external returns (uint256)"
 11153                            }
 11154                          },
 11155                          "id": 59991,
 11156                          "isConstant": false,
 11157                          "isLValue": false,
 11158                          "isPure": false,
 11159                          "kind": "functionCall",
 11160                          "lValueRequested": false,
 11161                          "names": [],
 11162                          "nodeType": "FunctionCall",
 11163                          "src": "21353:38:110",
 11164                          "tryCall": false,
 11165                          "typeDescriptions": {
 11166                            "typeIdentifier": "t_uint256",
 11167                            "typeString": "uint256"
 11168                          }
 11169                        },
 11170                        "src": "21340:51:110",
 11171                        "typeDescriptions": {
 11172                          "typeIdentifier": "t_uint256",
 11173                          "typeString": "uint256"
 11174                        }
 11175                      },
 11176                      "src": "21322:69:110",
 11177                      "typeDescriptions": {
 11178                        "typeIdentifier": "t_bool",
 11179                        "typeString": "bool"
 11180                      }
 11181                    },
 11182                    "functionReturnParameters": 59985,
 11183                    "id": 59994,
 11184                    "nodeType": "Return",
 11185                    "src": "21315:76:110"
 11186                  }
 11187                ]
 11188              },
 11189              "documentation": {
 11190                "id": 59979,
 11191                "nodeType": "StructuredDocumentation",
 11192                "src": "20971:242:110",
 11193                "text": "@notice Determines whether the finalization period has elapsed with respect to\n         the provided block timestamp.\n @param _timestamp Timestamp to check.\n @return Whether or not the finalization period has elapsed."
 11194              },
 11195              "implemented": true,
 11196              "kind": "function",
 11197              "modifiers": [],
 11198              "name": "_isFinalizationPeriodElapsed",
 11199              "nameLocation": "21227:28:110",
 11200              "parameters": {
 11201                "id": 59982,
 11202                "nodeType": "ParameterList",
 11203                "parameters": [
 11204                  {
 11205                    "constant": false,
 11206                    "id": 59981,
 11207                    "mutability": "mutable",
 11208                    "name": "_timestamp",
 11209                    "nameLocation": "21264:10:110",
 11210                    "nodeType": "VariableDeclaration",
 11211                    "scope": 59996,
 11212                    "src": "21256:18:110",
 11213                    "stateVariable": false,
 11214                    "storageLocation": "default",
 11215                    "typeDescriptions": {
 11216                      "typeIdentifier": "t_uint256",
 11217                      "typeString": "uint256"
 11218                    },
 11219                    "typeName": {
 11220                      "id": 59980,
 11221                      "name": "uint256",
 11222                      "nodeType": "ElementaryTypeName",
 11223                      "src": "21256:7:110",
 11224                      "typeDescriptions": {
 11225                        "typeIdentifier": "t_uint256",
 11226                        "typeString": "uint256"
 11227                      }
 11228                    },
 11229                    "visibility": "internal"
 11230                  }
 11231                ],
 11232                "src": "21255:20:110"
 11233              },
 11234              "returnParameters": {
 11235                "id": 59985,
 11236                "nodeType": "ParameterList",
 11237                "parameters": [
 11238                  {
 11239                    "constant": false,
 11240                    "id": 59984,
 11241                    "mutability": "mutable",
 11242                    "name": "",
 11243                    "nameLocation": "-1:-1:-1",
 11244                    "nodeType": "VariableDeclaration",
 11245                    "scope": 59996,
 11246                    "src": "21299:4:110",
 11247                    "stateVariable": false,
 11248                    "storageLocation": "default",
 11249                    "typeDescriptions": {
 11250                      "typeIdentifier": "t_bool",
 11251                      "typeString": "bool"
 11252                    },
 11253                    "typeName": {
 11254                      "id": 59983,
 11255                      "name": "bool",
 11256                      "nodeType": "ElementaryTypeName",
 11257                      "src": "21299:4:110",
 11258                      "typeDescriptions": {
 11259                        "typeIdentifier": "t_bool",
 11260                        "typeString": "bool"
 11261                      }
 11262                    },
 11263                    "visibility": "internal"
 11264                  }
 11265                ],
 11266                "src": "21298:6:110"
 11267              },
 11268              "scope": 59997,
 11269              "stateMutability": "view",
 11270              "virtual": false,
 11271              "visibility": "internal"
 11272            }
 11273          ],
 11274          "abstract": false,
 11275          "baseContracts": [
 11276            {
 11277              "baseName": {
 11278                "id": 59300,
 11279                "name": "Initializable",
 11280                "nodeType": "IdentifierPath",
 11281                "referencedDeclaration": 32244,
 11282                "src": "1162:13:110"
 11283              },
 11284              "id": 59301,
 11285              "nodeType": "InheritanceSpecifier",
 11286              "src": "1162:13:110"
 11287            },
 11288            {
 11289              "baseName": {
 11290                "id": 59302,
 11291                "name": "ResourceMetering",
 11292                "nodeType": "IdentifierPath",
 11293                "referencedDeclaration": 60599,
 11294                "src": "1177:16:110"
 11295              },
 11296              "id": 59303,
 11297              "nodeType": "InheritanceSpecifier",
 11298              "src": "1177:16:110"
 11299            },
 11300            {
 11301              "baseName": {
 11302                "id": 59304,
 11303                "name": "ISemver",
 11304                "nodeType": "IdentifierPath",
 11305                "referencedDeclaration": 75669,
 11306                "src": "1195:7:110"
 11307              },
 11308              "id": 59305,
 11309              "nodeType": "InheritanceSpecifier",
 11310              "src": "1195:7:110"
 11311            }
 11312          ],
 11313          "canonicalName": "OptimismPortal",
 11314          "contractDependencies": [],
 11315          "contractKind": "contract",
 11316          "documentation": {
 11317            "id": 59299,
 11318            "nodeType": "StructuredDocumentation",
 11319            "src": "797:338:110",
 11320            "text": "@custom:proxied\n @title OptimismPortal\n @notice The OptimismPortal is a low-level contract responsible for passing messages between L1\n         and L2. Messages sent directly to the OptimismPortal have no form of replayability.\n         Users are encouraged to use the L1CrossDomainMessenger for a higher-level interface."
 11321          },
 11322          "fullyImplemented": true,
 11323          "linearizedBaseContracts": [
 11324            59997,
 11325            75669,
 11326            60599,
 11327            32244
 11328          ],
 11329          "name": "OptimismPortal",
 11330          "nameLocation": "1144:14:110",
 11331          "scope": 59998,
 11332          "usedErrors": []
 11333        }
 11334      ],
 11335      "license": "MIT"
 11336    },
 11337    "id": 110
 11338  }