{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_logic",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "stateMutability": "payable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "previousAdmin",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "AdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "beacon",
          "type": "address"
        }
      ],
      "name": "BeaconUpgraded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "Upgraded",
      "type": "event"
    },
    {
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "allSourcePaths": {
    "21": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Address.sol",
    "23": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/StorageSlot.sol",
    "5": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/interfaces/draft-IERC1822.sol",
    "6": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/ERC1967/ERC1967Proxy.sol",
    "7": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/ERC1967/ERC1967Upgrade.sol",
    "8": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/Proxy.sol",
    "9": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/beacon/IBeacon.sol"
  },
  "ast": {
    "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/ERC1967/ERC1967Proxy.sol",
    "exportedSymbols": {
      "Address": [
        26374
      ],
      "ERC1967Proxy": [
        24111
      ],
      "ERC1967Upgrade": [
        27521
      ],
      "IBeacon": [
        28646
      ],
      "IERC1822Proxiable": [
        28636
      ],
      "Proxy": [
        27573
      ],
      "StorageSlot": [
        28706
      ]
    },
    "id": 24112,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 24076,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "114:23:6"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/Proxy.sol",
        "file": "../Proxy.sol",
        "id": 24077,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 24112,
        "sourceUnit": 27574,
        "src": "139:22:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/ERC1967/ERC1967Upgrade.sol",
        "file": "./ERC1967Upgrade.sol",
        "id": 24078,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 24112,
        "sourceUnit": 27522,
        "src": "162:30:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 24080,
              "name": "Proxy",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 27573,
              "src": "592:5:6"
            },
            "id": 24081,
            "nodeType": "InheritanceSpecifier",
            "src": "592:5:6"
          },
          {
            "baseName": {
              "id": 24082,
              "name": "ERC1967Upgrade",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 27521,
              "src": "599:14:6"
            },
            "id": 24083,
            "nodeType": "InheritanceSpecifier",
            "src": "599:14:6"
          }
        ],
        "contractDependencies": [
          27521,
          27573
        ],
        "contractKind": "contract",
        "documentation": {
          "id": 24079,
          "nodeType": "StructuredDocumentation",
          "src": "194:372:6",
          "text": " @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."
        },
        "fullyImplemented": true,
        "id": 24111,
        "linearizedBaseContracts": [
          24111,
          27521,
          27573
        ],
        "name": "ERC1967Proxy",
        "nameLocation": "576:12:6",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 24097,
              "nodeType": "Block",
              "src": "1014:56:6",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 24092,
                        "name": "_logic",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 24086,
                        "src": "1042:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 24093,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 24088,
                        "src": "1050:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 24094,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1057:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 24091,
                      "name": "_upgradeToAndCall",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 27304,
                      "src": "1024:17:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,bytes memory,bool)"
                      }
                    },
                    "id": 24095,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1024:39:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 24096,
                  "nodeType": "ExpressionStatement",
                  "src": "1024:39:6"
                }
              ]
            },
            "documentation": {
              "id": 24084,
              "nodeType": "StructuredDocumentation",
              "src": "620:333:6",
              "text": " @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n function call, and allows initializing the storage of the proxy like a Solidity constructor."
            },
            "id": 24098,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 24089,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24086,
                  "mutability": "mutable",
                  "name": "_logic",
                  "nameLocation": "978:6:6",
                  "nodeType": "VariableDeclaration",
                  "scope": 24098,
                  "src": "970:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24085,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "970:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 24088,
                  "mutability": "mutable",
                  "name": "_data",
                  "nameLocation": "999:5:6",
                  "nodeType": "VariableDeclaration",
                  "scope": 24098,
                  "src": "986:18:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 24087,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "986:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "969:36:6"
            },
            "returnParameters": {
              "id": 24090,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1014:0:6"
            },
            "scope": 24111,
            "src": "958:112:6",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              27538
            ],
            "body": {
              "id": 24109,
              "nodeType": "Block",
              "src": "1229:59:6",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 24105,
                        "name": "ERC1967Upgrade",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 27521,
                        "src": "1246:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_ERC1967Upgrade_$27521_$",
                          "typeString": "type(contract ERC1967Upgrade)"
                        }
                      },
                      "id": 24106,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_getImplementation",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27235,
                      "src": "1246:33:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 24107,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1246:35:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 24104,
                  "id": 24108,
                  "nodeType": "Return",
                  "src": "1239:42:6"
                }
              ]
            },
            "documentation": {
              "id": 24099,
              "nodeType": "StructuredDocumentation",
              "src": "1076:67:6",
              "text": " @dev Returns the current implementation address."
            },
            "id": 24110,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_implementation",
            "nameLocation": "1157:15:6",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 24101,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1197:8:6"
            },
            "parameters": {
              "id": 24100,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1172:2:6"
            },
            "returnParameters": {
              "id": 24104,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 24103,
                  "mutability": "mutable",
                  "name": "impl",
                  "nameLocation": "1223:4:6",
                  "nodeType": "VariableDeclaration",
                  "scope": 24110,
                  "src": "1215:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 24102,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1215:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1214:14:6"
            },
            "scope": 24111,
            "src": "1148:140:6",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 24112,
        "src": "567:723:6"
      }
    ],
    "src": "114:1177:6"
  },
  "bytecode": "608060405260405161071c38038061071c833981016040819052610022916102d2565b61002e82826000610035565b505061042c565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d083836040518060600160405280602781526020016106f5602791396101a9565b9392505050565b6100ea8161028760201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61029660201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606001600160a01b0384163b6102115760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610148565b600080856001600160a01b03168560405161022c919061039b565b600060405180830381855af49150503d8060008114610267576040519150601f19603f3d011682016040523d82523d6000602084013e61026c565b606091505b50909250905061027d828286610299565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a85750816100d0565b8251156102b85782518084602001fd5b8160405162461bcd60e51b815260040161014891906103b7565b600080604083850312156102e4578182fd5b82516001600160a01b03811681146102fa578283fd5b60208401519092506001600160401b0380821115610316578283fd5b818501915085601f830112610329578283fd5b81518181111561033b5761033b610416565b604051601f8201601f19908116603f0116810190838211818310171561036357610363610416565b8160405282815288602084870101111561037b578586fd5b61038c8360208301602088016103ea565b80955050505050509250929050565b600082516103ad8184602087016103ea565b9190910192915050565b60006020825282518060208401526103d68160408501602087016103ea565b601f01601f19169190910160400192915050565b60005b838110156104055781810151838201526020016103ed565b838111156100645750506000910152565b634e487b7160e01b600052604160045260246000fd5b6102ba8061043b6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b91906101de565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b815260040161012791906101fa565b600082516101f081846020870161022d565b9190910192915050565b600060208252825180602084015261021981604085016020870161022d565b601f01601f19169190910160400192915050565b60005b83811015610248578181015183820152602001610230565b83811115610257576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200722adea085ea2a3f54d4cd1485208a79f2bd27a52da5f5b6b92ccc21599cbd864736f6c63430008020033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "ERC1967Proxy",
  "coverageMap": {
    "branches": {
      "21": {
        "Address.verifyCallResult": {
          "11": [
            7735,
            7742,
            false
          ],
          "12": [
            7876,
            7897,
            false
          ]
        }
      },
      "23": {},
      "5": {},
      "6": {},
      "7": {},
      "8": {},
      "9": {}
    },
    "statements": {
      "21": {
        "Address.functionDelegateCall": {
          "3": [
            6677,
            6761
          ],
          "7": [
            7119,
            7188
          ],
          "8": [
            7276,
            7334
          ]
        },
        "Address.isContract": {
          "4": [
            1458,
            1488
          ]
        },
        "Address.verifyCallResult": {
          "9": [
            7758,
            7775
          ],
          "10": [
            8252,
            8272
          ]
        }
      },
      "23": {},
      "5": {},
      "6": {
        "ERC1967Proxy._implementation": {
          "5": [
            1239,
            1281
          ]
        }
      },
      "7": {
        "ERC1967Upgrade._getImplementation": {
          "6": [
            1373,
            1434
          ]
        }
      },
      "8": {
        "Proxy.<fallback>": {
          "1": [
            2675,
            2686
          ]
        },
        "Proxy.<receive>": {
          "0": [
            2898,
            2909
          ]
        },
        "Proxy._fallback": {
          "2": [
            2397,
            2425
          ]
        }
      },
      "9": {}
    }
  },
  "dependencies": [
    "OpenZeppelin/openzeppelin-contracts@4.7.3/Address",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/ERC1967Upgrade",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IBeacon",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC1822Proxiable",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/Proxy",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/StorageSlot"
  ],
  "deployedBytecode": "60806040523661001357610011610017565b005b6100115b610027610022610067565b61009f565b565b606061004e838360405180606001604052806027815260200161025e602791396100c3565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156100be573d6000f35b3d6000fd5b60606001600160a01b0384163b6101305760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161014b91906101de565b600060405180830381855af49150503d8060008114610186576040519150601f19603f3d011682016040523d82523d6000602084013e61018b565b606091505b509150915061019b8282866101a5565b9695505050505050565b606083156101b457508161004e565b8251156101c45782518084602001fd5b8160405162461bcd60e51b815260040161012791906101fa565b600082516101f081846020870161022d565b9190910192915050565b600060208252825180602084015261021981604085016020870161022d565b601f01601f19169190910160400192915050565b60005b83811015610248578181015183820152602001610230565b83811115610257576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200722adea085ea2a3f54d4cd1485208a79f2bd27a52da5f5b6b92ccc21599cbd864736f6c63430008020033",
  "deployedSourceMap": "567:723:6:-:0;;;;;;2898:11:8;:9;:11::i;:::-;567:723:6;;2675:11:8;2322:110;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;:::-;2322:110::o;6570:198:21:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:21:o;1175:320::-;-1:-1:-1;;;;;1465:19:21;;:23;;;1175:320::o;1614:190:23:-;1784:4;1760:38::o;1148:140:6:-;1215:12;1246:35;1030:66:7;1380:54;-1:-1:-1;;;;;1380:54:7;;1301:140;1246:35:6;1239:42;;1148:140;:::o;948:895:8:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27;6954:387:21;7095:12;-1:-1:-1;;;;;1465:19:21;;;7119:69;;;;-1:-1:-1;;;7119:69:21;;883:2:103;7119:69:21;;;865:21:103;922:2;902:18;;;895:30;961:34;941:18;;;934:62;-1:-1:-1;;;1012:18:103;;;1005:36;1058:19;;7119:69:21;;;;;;;;;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:21;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7199:67;;;;7283:51;7300:7;7309:10;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:21:o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:21;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:21;;;;;;;;:::i;14:274:103:-;;181:6;175:13;197:53;243:6;238:3;231:4;223:6;219:17;197:53;:::i;:::-;266:16;;;;;151:137;-1:-1:-1;;151:137:103:o;293:383::-;;442:2;431:9;424:21;474:6;468:13;517:6;512:2;501:9;497:18;490:34;533:66;592:6;587:2;576:9;572:18;567:2;559:6;555:15;533:66;:::i;:::-;660:2;639:15;-1:-1:-1;;635:29:103;620:45;;;;667:2;616:54;;414:262;-1:-1:-1;;414:262:103:o;1088:258::-;1160:1;1170:113;1184:6;1181:1;1178:13;1170:113;;;1260:11;;;1254:18;1241:11;;;1234:39;1206:2;1199:10;1170:113;;;1301:6;1298:1;1295:13;1292:2;;;1336:1;1327:6;1322:3;1318:16;1311:27;1292:2;;1141:205;;;:::o",
  "language": "Solidity",
  "natspec": {
    "details": "This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.",
    "kind": "dev",
    "methods": {
      "constructor": {
        "details": "Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor."
      }
    },
    "version": 1
  },
  "offset": [
    567,
    1290
  ],
  "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLDATASIZE PUSH2 0x13 JUMPI PUSH2 0x11 PUSH2 0x17 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11 JUMPDEST PUSH2 0x27 PUSH2 0x22 PUSH2 0x67 JUMP JUMPDEST PUSH2 0x9F JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x60 PUSH2 0x4E DUP4 DUP4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x27 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x25E PUSH1 0x27 SWAP2 CODECOPY PUSH2 0xC3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9A PUSH32 0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST CALLDATASIZE PUSH1 0x0 DUP1 CALLDATACOPY PUSH1 0x0 DUP1 CALLDATASIZE PUSH1 0x0 DUP5 GAS DELEGATECALL RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY DUP1 DUP1 ISZERO PUSH2 0xBE JUMPI RETURNDATASIZE PUSH1 0x0 RETURN JUMPDEST RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND EXTCODESIZE PUSH2 0x130 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F PUSH1 0x44 DUP3 ADD MSTORE PUSH6 0x1B9D1C9858DD PUSH1 0xD2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP6 PUSH1 0x40 MLOAD PUSH2 0x14B SWAP2 SWAP1 PUSH2 0x1DE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x186 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x18B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP PUSH2 0x19B DUP3 DUP3 DUP7 PUSH2 0x1A5 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 ISZERO PUSH2 0x1B4 JUMPI POP DUP2 PUSH2 0x4E JUMP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x1C4 JUMPI DUP3 MLOAD DUP1 DUP5 PUSH1 0x20 ADD REVERT JUMPDEST DUP2 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x127 SWAP2 SWAP1 PUSH2 0x1FA JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x1F0 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x22D JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x219 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x22D JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x248 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x230 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x257 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID COINBASE PUSH5 0x6472657373 GASPRICE KECCAK256 PUSH13 0x6F772D6C6576656C2064656C65 PUSH8 0x6174652063616C6C KECCAK256 PUSH7 0x61696C6564A264 PUSH10 0x706673582212200722AD 0xEA ADDMOD 0x5E LOG2 LOG3 CREATE2 0x4D 0x4C 0xD1 0x48 MSTORE ADDMOD 0xA7 SWAP16 0x2B 0xD2 PUSH27 0x52DA5F5B6B92CCC21599CBD864736F6C6343000802003300000000 ",
  "pcMap": {
    "0": {
      "offset": [
        567,
        1290
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x80"
    },
    "2": {
      "fn": null,
      "offset": [
        567,
        1290
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x40"
    },
    "4": {
      "fn": null,
      "offset": [
        567,
        1290
      ],
      "op": "MSTORE",
      "path": "6"
    },
    "5": {
      "fn": null,
      "offset": [
        567,
        1290
      ],
      "op": "CALLDATASIZE",
      "path": "6"
    },
    "6": {
      "fn": null,
      "offset": [
        567,
        1290
      ],
      "op": "PUSH2",
      "path": "6",
      "value": "0x13"
    },
    "9": {
      "fn": null,
      "offset": [
        567,
        1290
      ],
      "op": "JUMPI",
      "path": "6"
    },
    "10": {
      "fn": "Proxy.<receive>",
      "offset": [
        2898,
        2909
      ],
      "op": "PUSH2",
      "path": "8",
      "statement": 0,
      "value": "0x11"
    },
    "13": {
      "fn": "Proxy.<receive>",
      "offset": [
        2898,
        2907
      ],
      "op": "PUSH2",
      "path": "8",
      "value": "0x17"
    },
    "16": {
      "fn": "Proxy.<receive>",
      "jump": "i",
      "offset": [
        2898,
        2909
      ],
      "op": "JUMP",
      "path": "8"
    },
    "17": {
      "fn": "Proxy.<receive>",
      "offset": [
        2898,
        2909
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "18": {
      "offset": [
        567,
        1290
      ],
      "op": "STOP",
      "path": "6"
    },
    "19": {
      "fn": "Proxy.<receive>",
      "offset": [
        567,
        1290
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "20": {
      "fn": "Proxy.<fallback>",
      "offset": [
        2675,
        2686
      ],
      "op": "PUSH2",
      "path": "8",
      "statement": 1,
      "value": "0x11"
    },
    "23": {
      "fn": "Proxy._fallback",
      "offset": [
        2322,
        2432
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "24": {
      "fn": "Proxy._fallback",
      "offset": [
        2397,
        2425
      ],
      "op": "PUSH2",
      "path": "8",
      "statement": 2,
      "value": "0x27"
    },
    "27": {
      "fn": "Proxy._fallback",
      "offset": [
        2407,
        2424
      ],
      "op": "PUSH2",
      "path": "8",
      "value": "0x22"
    },
    "30": {
      "fn": "Proxy._fallback",
      "offset": [
        2407,
        2422
      ],
      "op": "PUSH2",
      "path": "8",
      "value": "0x67"
    },
    "33": {
      "fn": "Proxy._fallback",
      "jump": "i",
      "offset": [
        2407,
        2424
      ],
      "op": "JUMP",
      "path": "8"
    },
    "34": {
      "fn": "Proxy._fallback",
      "offset": [
        2407,
        2424
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "35": {
      "fn": "Proxy._fallback",
      "offset": [
        2397,
        2406
      ],
      "op": "PUSH2",
      "path": "8",
      "value": "0x9F"
    },
    "38": {
      "fn": "Proxy._fallback",
      "jump": "i",
      "offset": [
        2397,
        2425
      ],
      "op": "JUMP",
      "path": "8"
    },
    "39": {
      "fn": "Proxy._fallback",
      "offset": [
        2397,
        2425
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "40": {
      "fn": "Proxy._fallback",
      "jump": "o",
      "offset": [
        2322,
        2432
      ],
      "op": "JUMP",
      "path": "8"
    },
    "41": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6570,
        6768
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "42": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6653,
        6665
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x60"
    },
    "44": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH2",
      "path": "21",
      "statement": 3,
      "value": "0x4E"
    },
    "47": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6705,
        6711
      ],
      "op": "DUP4",
      "path": "21"
    },
    "48": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6713,
        6717
      ],
      "op": "DUP4",
      "path": "21"
    },
    "49": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "51": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "52": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "DUP1",
      "path": "21"
    },
    "53": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x60"
    },
    "55": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "ADD",
      "path": "21"
    },
    "56": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "58": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "MSTORE",
      "path": "21"
    },
    "59": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "DUP1",
      "path": "21"
    },
    "60": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x27"
    },
    "62": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "DUP2",
      "path": "21"
    },
    "63": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "MSTORE",
      "path": "21"
    },
    "64": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x20"
    },
    "66": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "ADD",
      "path": "21"
    },
    "67": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x25E"
    },
    "70": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x27"
    },
    "72": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "73": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "CODECOPY",
      "path": "21"
    },
    "74": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6704
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0xC3"
    },
    "77": {
      "fn": "Address.functionDelegateCall",
      "jump": "i",
      "offset": [
        6684,
        6761
      ],
      "op": "JUMP",
      "path": "21"
    },
    "78": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6684,
        6761
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "79": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6677,
        6761
      ],
      "op": "SWAP4",
      "path": "21"
    },
    "80": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6570,
        6768
      ],
      "op": "SWAP3",
      "path": "21"
    },
    "81": {
      "op": "POP"
    },
    "82": {
      "op": "POP"
    },
    "83": {
      "op": "POP"
    },
    "84": {
      "fn": "Address.functionDelegateCall",
      "jump": "o",
      "offset": [
        6570,
        6768
      ],
      "op": "JUMP",
      "path": "21"
    },
    "85": {
      "fn": "Address.isContract",
      "offset": [
        1175,
        1495
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "86": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "88": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "90": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "92": {
      "op": "SHL"
    },
    "93": {
      "op": "SUB"
    },
    "94": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "AND",
      "path": "21",
      "statement": 4
    },
    "95": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "EXTCODESIZE",
      "path": "21"
    },
    "96": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1488
      ],
      "op": "ISZERO",
      "path": "21"
    },
    "97": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1488
      ],
      "op": "ISZERO",
      "path": "21"
    },
    "98": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1488
      ],
      "op": "SWAP1",
      "path": "21"
    },
    "99": {
      "fn": "Address.isContract",
      "jump": "o",
      "offset": [
        1175,
        1495
      ],
      "op": "JUMP",
      "path": "21"
    },
    "100": {
      "fn": "StorageSlot.getAddressSlot",
      "offset": [
        1614,
        1804
      ],
      "op": "JUMPDEST",
      "path": "23"
    },
    "101": {
      "fn": "StorageSlot.getAddressSlot",
      "offset": [
        1784,
        1788
      ],
      "op": "SWAP1",
      "path": "23"
    },
    "102": {
      "fn": "StorageSlot.getAddressSlot",
      "jump": "o",
      "offset": [
        1760,
        1798
      ],
      "op": "JUMP",
      "path": "23"
    },
    "103": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1148,
        1288
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "104": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1215,
        1227
      ],
      "op": "PUSH1",
      "path": "6",
      "value": "0x0"
    },
    "106": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1246,
        1281
      ],
      "op": "PUSH2",
      "path": "6",
      "statement": 5,
      "value": "0x9A"
    },
    "109": {
      "offset": [
        1030,
        1096
      ],
      "op": "PUSH32",
      "path": "7",
      "value": "0x360894A13BA1A3210667C828492DB98DCA3E2076CC3735A920A3CA505D382BBC"
    },
    "142": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1380,
        1434
      ],
      "op": "SLOAD",
      "path": "7",
      "statement": 6
    },
    "143": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "145": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "147": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "149": {
      "op": "SHL"
    },
    "150": {
      "op": "SUB"
    },
    "151": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1380,
        1434
      ],
      "op": "AND",
      "path": "7"
    },
    "152": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1380,
        1434
      ],
      "op": "SWAP1",
      "path": "7"
    },
    "153": {
      "fn": "ERC1967Upgrade._getImplementation",
      "offset": [
        1301,
        1441
      ],
      "op": "JUMP",
      "path": "7"
    },
    "154": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1246,
        1281
      ],
      "op": "JUMPDEST",
      "path": "6"
    },
    "155": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1239,
        1281
      ],
      "op": "SWAP1",
      "path": "6"
    },
    "156": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1239,
        1281
      ],
      "op": "POP",
      "path": "6"
    },
    "157": {
      "fn": "ERC1967Proxy._implementation",
      "offset": [
        1148,
        1288
      ],
      "op": "SWAP1",
      "path": "6"
    },
    "158": {
      "fn": "ERC1967Proxy._implementation",
      "jump": "o",
      "offset": [
        1148,
        1288
      ],
      "op": "JUMP",
      "path": "6"
    },
    "159": {
      "fn": "Proxy._delegate",
      "offset": [
        948,
        1843
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "160": {
      "fn": "Proxy._delegate",
      "offset": [
        1286,
        1300
      ],
      "op": "CALLDATASIZE",
      "path": "8"
    },
    "161": {
      "fn": "Proxy._delegate",
      "offset": [
        1283,
        1284
      ],
      "op": "PUSH1",
      "path": "8",
      "value": "0x0"
    },
    "163": {
      "fn": "Proxy._delegate",
      "offset": [
        1280,
        1281
      ],
      "op": "DUP1",
      "path": "8"
    },
    "164": {
      "fn": "Proxy._delegate",
      "offset": [
        1267,
        1301
      ],
      "op": "CALLDATACOPY",
      "path": "8"
    },
    "165": {
      "fn": "Proxy._delegate",
      "offset": [
        1500,
        1501
      ],
      "op": "PUSH1",
      "path": "8",
      "value": "0x0"
    },
    "167": {
      "fn": "Proxy._delegate",
      "offset": [
        1497,
        1498
      ],
      "op": "DUP1",
      "path": "8"
    },
    "168": {
      "fn": "Proxy._delegate",
      "offset": [
        1481,
        1495
      ],
      "op": "CALLDATASIZE",
      "path": "8"
    },
    "169": {
      "fn": "Proxy._delegate",
      "offset": [
        1478,
        1479
      ],
      "op": "PUSH1",
      "path": "8",
      "value": "0x0"
    },
    "171": {
      "fn": "Proxy._delegate",
      "offset": [
        1462,
        1476
      ],
      "op": "DUP5",
      "path": "8"
    },
    "172": {
      "fn": "Proxy._delegate",
      "offset": [
        1455,
        1460
      ],
      "op": "GAS",
      "path": "8"
    },
    "173": {
      "fn": "Proxy._delegate",
      "offset": [
        1442,
        1502
      ],
      "op": "DELEGATECALL",
      "path": "8"
    },
    "174": {
      "fn": "Proxy._delegate",
      "offset": [
        1576,
        1592
      ],
      "op": "RETURNDATASIZE",
      "path": "8"
    },
    "175": {
      "fn": "Proxy._delegate",
      "offset": [
        1573,
        1574
      ],
      "op": "PUSH1",
      "path": "8",
      "value": "0x0"
    },
    "177": {
      "fn": "Proxy._delegate",
      "offset": [
        1570,
        1571
      ],
      "op": "DUP1",
      "path": "8"
    },
    "178": {
      "fn": "Proxy._delegate",
      "offset": [
        1555,
        1593
      ],
      "op": "RETURNDATACOPY",
      "path": "8"
    },
    "179": {
      "fn": "Proxy._delegate",
      "offset": [
        1614,
        1620
      ],
      "op": "DUP1",
      "path": "8"
    },
    "180": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "DUP1",
      "path": "8"
    },
    "181": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "ISZERO",
      "path": "8"
    },
    "182": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "PUSH2",
      "path": "8",
      "value": "0xBE"
    },
    "185": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "JUMPI",
      "path": "8"
    },
    "186": {
      "fn": "Proxy._delegate",
      "offset": [
        1796,
        1812
      ],
      "op": "RETURNDATASIZE",
      "path": "8"
    },
    "187": {
      "fn": "Proxy._delegate",
      "offset": [
        1793,
        1794
      ],
      "op": "PUSH1",
      "path": "8",
      "value": "0x0"
    },
    "189": {
      "fn": "Proxy._delegate",
      "offset": [
        1786,
        1813
      ],
      "op": "RETURN",
      "path": "8"
    },
    "190": {
      "fn": "Proxy._delegate",
      "offset": [
        1681,
        1747
      ],
      "op": "JUMPDEST",
      "path": "8"
    },
    "191": {
      "fn": "Proxy._delegate",
      "offset": [
        1716,
        1732
      ],
      "op": "RETURNDATASIZE",
      "path": "8"
    },
    "192": {
      "fn": "Proxy._delegate",
      "offset": [
        1713,
        1714
      ],
      "op": "PUSH1",
      "path": "8",
      "value": "0x0"
    },
    "194": {
      "fn": "Proxy._delegate",
      "offset": [
        1706,
        1733
      ],
      "op": "REVERT",
      "path": "8"
    },
    "195": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6954,
        7341
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "196": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7095,
        7107
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x60"
    },
    "198": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "200": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "202": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "204": {
      "op": "SHL"
    },
    "205": {
      "op": "SUB"
    },
    "206": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "DUP5",
      "path": "21"
    },
    "207": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "AND",
      "path": "21"
    },
    "208": {
      "fn": "Address.isContract",
      "offset": [
        1465,
        1484
      ],
      "op": "EXTCODESIZE",
      "path": "21"
    },
    "209": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "PUSH2",
      "path": "21",
      "statement": 7,
      "value": "0x130"
    },
    "212": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "JUMPI",
      "path": "21"
    },
    "213": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "215": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "216": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "220": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "222": {
      "op": "SHL"
    },
    "223": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "DUP2",
      "path": "21"
    },
    "224": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "MSTORE",
      "path": "21"
    },
    "225": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "227": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x4"
    },
    "229": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "DUP3",
      "path": "21"
    },
    "230": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "ADD",
      "path": "21"
    },
    "231": {
      "op": "MSTORE"
    },
    "232": {
      "op": "PUSH1",
      "value": "0x26"
    },
    "234": {
      "op": "PUSH1",
      "value": "0x24"
    },
    "236": {
      "op": "DUP3"
    },
    "237": {
      "op": "ADD"
    },
    "238": {
      "op": "MSTORE"
    },
    "239": {
      "op": "PUSH32",
      "value": "0x416464726573733A2064656C65676174652063616C6C20746F206E6F6E2D636F"
    },
    "272": {
      "op": "PUSH1",
      "value": "0x44"
    },
    "274": {
      "op": "DUP3"
    },
    "275": {
      "op": "ADD"
    },
    "276": {
      "op": "MSTORE"
    },
    "277": {
      "op": "PUSH6",
      "value": "0x1B9D1C9858DD"
    },
    "284": {
      "op": "PUSH1",
      "value": "0xD2"
    },
    "286": {
      "op": "SHL"
    },
    "287": {
      "op": "PUSH1",
      "value": "0x64"
    },
    "289": {
      "op": "DUP3"
    },
    "290": {
      "op": "ADD"
    },
    "291": {
      "op": "MSTORE"
    },
    "292": {
      "op": "PUSH1",
      "value": "0x84"
    },
    "294": {
      "op": "ADD"
    },
    "295": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "296": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "298": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "299": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "DUP1",
      "path": "21"
    },
    "300": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "301": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "SUB",
      "path": "21"
    },
    "302": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "SWAP1",
      "path": "21"
    },
    "303": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "REVERT",
      "optimizer_revert": true,
      "path": "21"
    },
    "304": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7119,
        7188
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "305": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7200,
        7212
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x0"
    },
    "307": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7214,
        7237
      ],
      "op": "DUP1",
      "path": "21"
    },
    "308": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7247
      ],
      "op": "DUP6",
      "path": "21"
    },
    "309": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "311": {
      "op": "PUSH1",
      "value": "0x1"
    },
    "313": {
      "op": "PUSH1",
      "value": "0xA0"
    },
    "315": {
      "op": "SHL"
    },
    "316": {
      "op": "SUB"
    },
    "317": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7260
      ],
      "op": "AND",
      "path": "21"
    },
    "318": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7261,
        7265
      ],
      "op": "DUP6",
      "path": "21"
    },
    "319": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "321": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "322": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x14B"
    },
    "325": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "326": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "SWAP1",
      "path": "21"
    },
    "327": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x1DE"
    },
    "330": {
      "fn": "Address.functionDelegateCall",
      "jump": "i",
      "offset": [
        7241,
        7266
      ],
      "op": "JUMP",
      "path": "21"
    },
    "331": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "332": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x0"
    },
    "334": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "336": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "337": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP1",
      "path": "21"
    },
    "338": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP4",
      "path": "21"
    },
    "339": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "SUB",
      "path": "21"
    },
    "340": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP2",
      "path": "21"
    },
    "341": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP6",
      "path": "21"
    },
    "342": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "GAS",
      "path": "21"
    },
    "343": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DELEGATECALL",
      "path": "21"
    },
    "344": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "345": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "346": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "347": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "RETURNDATASIZE",
      "path": "21"
    },
    "348": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP1",
      "path": "21"
    },
    "349": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x0"
    },
    "351": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP2",
      "path": "21"
    },
    "352": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "EQ",
      "path": "21"
    },
    "353": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x186"
    },
    "356": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "JUMPI",
      "path": "21"
    },
    "357": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "359": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "360": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "361": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "362": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x1F"
    },
    "364": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "NOT",
      "path": "21"
    },
    "365": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x3F"
    },
    "367": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "RETURNDATASIZE",
      "path": "21"
    },
    "368": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "ADD",
      "path": "21"
    },
    "369": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "AND",
      "path": "21"
    },
    "370": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP3",
      "path": "21"
    },
    "371": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "ADD",
      "path": "21"
    },
    "372": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "374": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "MSTORE",
      "path": "21"
    },
    "375": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "RETURNDATASIZE",
      "path": "21"
    },
    "376": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP3",
      "path": "21"
    },
    "377": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "MSTORE",
      "path": "21"
    },
    "378": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "RETURNDATASIZE",
      "path": "21"
    },
    "379": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x0"
    },
    "381": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x20"
    },
    "383": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "DUP5",
      "path": "21"
    },
    "384": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "ADD",
      "path": "21"
    },
    "385": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "RETURNDATACOPY",
      "path": "21"
    },
    "386": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x18B"
    },
    "389": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "JUMP",
      "path": "21"
    },
    "390": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "391": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x60"
    },
    "393": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "394": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "395": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "396": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7241,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "397": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7199,
        7266
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "398": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7199,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "399": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7199,
        7266
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "400": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7199,
        7266
      ],
      "op": "POP",
      "path": "21"
    },
    "401": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7283,
        7334
      ],
      "op": "PUSH2",
      "path": "21",
      "statement": 8,
      "value": "0x19B"
    },
    "404": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7300,
        7307
      ],
      "op": "DUP3",
      "path": "21"
    },
    "405": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7309,
        7319
      ],
      "op": "DUP3",
      "path": "21"
    },
    "406": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7321,
        7333
      ],
      "op": "DUP7",
      "path": "21"
    },
    "407": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7283,
        7299
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x1A5"
    },
    "410": {
      "fn": "Address.functionDelegateCall",
      "jump": "i",
      "offset": [
        7283,
        7334
      ],
      "op": "JUMP",
      "path": "21"
    },
    "411": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7283,
        7334
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "412": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        7276,
        7334
      ],
      "op": "SWAP7",
      "path": "21"
    },
    "413": {
      "fn": "Address.functionDelegateCall",
      "offset": [
        6954,
        7341
      ],
      "op": "SWAP6",
      "path": "21"
    },
    "414": {
      "op": "POP"
    },
    "415": {
      "op": "POP"
    },
    "416": {
      "op": "POP"
    },
    "417": {
      "op": "POP"
    },
    "418": {
      "op": "POP"
    },
    "419": {
      "op": "POP"
    },
    "420": {
      "fn": "Address.functionDelegateCall",
      "jump": "o",
      "offset": [
        6954,
        7341
      ],
      "op": "JUMP",
      "path": "21"
    },
    "421": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7561,
        8303
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "422": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7707,
        7719
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x60"
    },
    "424": {
      "branch": 11,
      "fn": "Address.verifyCallResult",
      "offset": [
        7735,
        7742
      ],
      "op": "DUP4",
      "path": "21"
    },
    "425": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7731,
        8297
      ],
      "op": "ISZERO",
      "path": "21"
    },
    "426": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7731,
        8297
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x1B4"
    },
    "429": {
      "branch": 11,
      "fn": "Address.verifyCallResult",
      "offset": [
        7731,
        8297
      ],
      "op": "JUMPI",
      "path": "21"
    },
    "430": {
      "op": "POP"
    },
    "431": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7765,
        7775
      ],
      "op": "DUP2",
      "path": "21",
      "statement": 9
    },
    "432": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7758,
        7775
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x4E"
    },
    "435": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7758,
        7775
      ],
      "op": "JUMP",
      "path": "21"
    },
    "436": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7731,
        8297
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "437": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7876,
        7893
      ],
      "op": "DUP3",
      "path": "21"
    },
    "438": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7876,
        7893
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "439": {
      "branch": 12,
      "fn": "Address.verifyCallResult",
      "offset": [
        7876,
        7897
      ],
      "op": "ISZERO",
      "path": "21"
    },
    "440": {
      "fn": "Address.verifyCallResult",
      "offset": [
        7872,
        8287
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x1C4"
    },
    "443": {
      "branch": 12,
      "fn": "Address.verifyCallResult",
      "offset": [
        7872,
        8287
      ],
      "op": "JUMPI",
      "path": "21"
    },
    "444": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8120,
        8130
      ],
      "op": "DUP3",
      "path": "21"
    },
    "445": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8114,
        8131
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "446": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8180,
        8195
      ],
      "op": "DUP1",
      "path": "21"
    },
    "447": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8167,
        8177
      ],
      "op": "DUP5",
      "path": "21"
    },
    "448": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8163,
        8165
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x20"
    },
    "450": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8159,
        8178
      ],
      "op": "ADD",
      "path": "21"
    },
    "451": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8152,
        8196
      ],
      "op": "REVERT",
      "path": "21"
    },
    "452": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8069,
        8214
      ],
      "op": "JUMPDEST",
      "path": "21"
    },
    "453": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8259,
        8271
      ],
      "op": "DUP2",
      "path": "21",
      "statement": 10
    },
    "454": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x40"
    },
    "456": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "MLOAD",
      "path": "21"
    },
    "457": {
      "op": "PUSH3",
      "value": "0x461BCD"
    },
    "461": {
      "op": "PUSH1",
      "value": "0xE5"
    },
    "463": {
      "op": "SHL"
    },
    "464": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "DUP2",
      "path": "21"
    },
    "465": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "MSTORE",
      "path": "21"
    },
    "466": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "PUSH1",
      "path": "21",
      "value": "0x4"
    },
    "468": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "ADD",
      "path": "21"
    },
    "469": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x127"
    },
    "472": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "SWAP2",
      "path": "21"
    },
    "473": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "SWAP1",
      "path": "21"
    },
    "474": {
      "fn": "Address.verifyCallResult",
      "offset": [
        8252,
        8272
      ],
      "op": "PUSH2",
      "path": "21",
      "value": "0x1FA"
    },
    "477": {
      "fn": "Address.verifyCallResult",
      "jump": "i",
      "offset": [
        8252,
        8272
      ],
      "op": "JUMP",
      "path": "21"
    },
    "478": {
      "op": "JUMPDEST"
    },
    "479": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "481": {
      "op": "DUP3"
    },
    "482": {
      "op": "MLOAD"
    },
    "483": {
      "op": "PUSH2",
      "value": "0x1F0"
    },
    "486": {
      "op": "DUP2"
    },
    "487": {
      "op": "DUP5"
    },
    "488": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "490": {
      "op": "DUP8"
    },
    "491": {
      "op": "ADD"
    },
    "492": {
      "op": "PUSH2",
      "value": "0x22D"
    },
    "495": {
      "jump": "i",
      "op": "JUMP"
    },
    "496": {
      "op": "JUMPDEST"
    },
    "497": {
      "op": "SWAP2"
    },
    "498": {
      "op": "SWAP1"
    },
    "499": {
      "op": "SWAP2"
    },
    "500": {
      "op": "ADD"
    },
    "501": {
      "op": "SWAP3"
    },
    "502": {
      "op": "SWAP2"
    },
    "503": {
      "op": "POP"
    },
    "504": {
      "op": "POP"
    },
    "505": {
      "jump": "o",
      "op": "JUMP"
    },
    "506": {
      "op": "JUMPDEST"
    },
    "507": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "509": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "511": {
      "op": "DUP3"
    },
    "512": {
      "op": "MSTORE"
    },
    "513": {
      "op": "DUP3"
    },
    "514": {
      "op": "MLOAD"
    },
    "515": {
      "op": "DUP1"
    },
    "516": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "518": {
      "op": "DUP5"
    },
    "519": {
      "op": "ADD"
    },
    "520": {
      "op": "MSTORE"
    },
    "521": {
      "op": "PUSH2",
      "value": "0x219"
    },
    "524": {
      "op": "DUP2"
    },
    "525": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "527": {
      "op": "DUP6"
    },
    "528": {
      "op": "ADD"
    },
    "529": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "531": {
      "op": "DUP8"
    },
    "532": {
      "op": "ADD"
    },
    "533": {
      "op": "PUSH2",
      "value": "0x22D"
    },
    "536": {
      "jump": "i",
      "op": "JUMP"
    },
    "537": {
      "op": "JUMPDEST"
    },
    "538": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "540": {
      "op": "ADD"
    },
    "541": {
      "op": "PUSH1",
      "value": "0x1F"
    },
    "543": {
      "op": "NOT"
    },
    "544": {
      "op": "AND"
    },
    "545": {
      "op": "SWAP2"
    },
    "546": {
      "op": "SWAP1"
    },
    "547": {
      "op": "SWAP2"
    },
    "548": {
      "op": "ADD"
    },
    "549": {
      "op": "PUSH1",
      "value": "0x40"
    },
    "551": {
      "op": "ADD"
    },
    "552": {
      "op": "SWAP3"
    },
    "553": {
      "op": "SWAP2"
    },
    "554": {
      "op": "POP"
    },
    "555": {
      "op": "POP"
    },
    "556": {
      "jump": "o",
      "op": "JUMP"
    },
    "557": {
      "op": "JUMPDEST"
    },
    "558": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "560": {
      "op": "JUMPDEST"
    },
    "561": {
      "op": "DUP4"
    },
    "562": {
      "op": "DUP2"
    },
    "563": {
      "op": "LT"
    },
    "564": {
      "op": "ISZERO"
    },
    "565": {
      "op": "PUSH2",
      "value": "0x248"
    },
    "568": {
      "op": "JUMPI"
    },
    "569": {
      "op": "DUP2"
    },
    "570": {
      "op": "DUP2"
    },
    "571": {
      "op": "ADD"
    },
    "572": {
      "op": "MLOAD"
    },
    "573": {
      "op": "DUP4"
    },
    "574": {
      "op": "DUP3"
    },
    "575": {
      "op": "ADD"
    },
    "576": {
      "op": "MSTORE"
    },
    "577": {
      "op": "PUSH1",
      "value": "0x20"
    },
    "579": {
      "op": "ADD"
    },
    "580": {
      "op": "PUSH2",
      "value": "0x230"
    },
    "583": {
      "op": "JUMP"
    },
    "584": {
      "op": "JUMPDEST"
    },
    "585": {
      "op": "DUP4"
    },
    "586": {
      "op": "DUP2"
    },
    "587": {
      "op": "GT"
    },
    "588": {
      "op": "ISZERO"
    },
    "589": {
      "op": "PUSH2",
      "value": "0x257"
    },
    "592": {
      "op": "JUMPI"
    },
    "593": {
      "op": "PUSH1",
      "value": "0x0"
    },
    "595": {
      "op": "DUP5"
    },
    "596": {
      "op": "DUP5"
    },
    "597": {
      "op": "ADD"
    },
    "598": {
      "op": "MSTORE"
    },
    "599": {
      "op": "JUMPDEST"
    },
    "600": {
      "op": "POP"
    },
    "601": {
      "op": "POP"
    },
    "602": {
      "op": "POP"
    },
    "603": {
      "op": "POP"
    },
    "604": {
      "jump": "o",
      "op": "JUMP"
    }
  },
  "sha1": "6d8e76e6172afcf7857809407ed272a7ab7a88ea",
  "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol)\n\npragma solidity ^0.8.0;\n\nimport \"../Proxy.sol\";\nimport \"./ERC1967Upgrade.sol\";\n\n/**\n * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n * implementation address that can be changed. This address is stored in storage in the location specified by\n * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n * implementation behind the proxy.\n */\ncontract ERC1967Proxy is Proxy, ERC1967Upgrade {\n    /**\n     * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n     *\n     * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n     * function call, and allows initializing the storage of the proxy like a Solidity constructor.\n     */\n    constructor(address _logic, bytes memory _data) payable {\n        _upgradeToAndCall(_logic, _data, false);\n    }\n\n    /**\n     * @dev Returns the current implementation address.\n     */\n    function _implementation() internal view virtual override returns (address impl) {\n        return ERC1967Upgrade._getImplementation();\n    }\n}\n",
  "sourceMap": "567:723:6:-:0;;;958:112;;;;;;;;;;;;;;;;;;:::i;:::-;1024:39;1042:6;1050:5;1057;1024:17;:39::i;:::-;958:112;;567:723;;2183:295:7;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;;;;;:53;;:::i;:::-;;2360:112;2183:295;;;:::o;1897:152::-;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:7;;;;;;;;1897:152;:::o;6570:198:21:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:21:o;1532:259:7:-;1613:37;1632:17;1613:18;;;;;:37;;:::i;:::-;1605:95;;;;-1:-1:-1;;;1605:95:7;;1988:2:103;1605:95:7;;;1970:21:103;2027:2;2007:18;;;2000:30;2066:34;2046:18;;;2039:62;-1:-1:-1;;;2117:18:103;;;2110:43;2170:19;;1605:95:7;;;;;;;;;1767:17;1710:48;1030:66;1737:20;;1710:26;;;;;:48;;:::i;:::-;:74;;-1:-1:-1;;;;;;1710:74:7;-1:-1:-1;;;;;1710:74:7;;;;;;;;;;-1:-1:-1;1532:259:7:o;6954:387:21:-;7095:12;-1:-1:-1;;;;;1465:19:21;;;7119:69;;;;-1:-1:-1;;;7119:69:21;;2402:2:103;7119:69:21;;;2384:21:103;2441:2;2421:18;;;2414:30;2480:34;2460:18;;;2453:62;-1:-1:-1;;;2531:18:103;;;2524:36;2577:19;;7119:69:21;2374:228:103;7119:69:21;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:21;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7199:67:21;;-1:-1:-1;7199:67:21;-1:-1:-1;7283:51:21;7199:67;;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:21:o;1175:320::-;-1:-1:-1;;;;;1465:19:21;;:23;;;1175:320::o;1614:190:23:-;1784:4;1760:38::o;7561:742:21:-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:21;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;8069:145;8259:12;8252:20;;-1:-1:-1;;;8252:20:21;;;;;;;;:::i;14:1100:103:-;;;163:2;151:9;142:7;138:23;134:32;131:2;;;184:6;176;169:22;131:2;215:16;;-1:-1:-1;;;;;260:31:103;;250:42;;240:2;;311:6;303;296:22;240:2;388;373:18;;367:25;339:5;;-1:-1:-1;;;;;;441:14:103;;;438:2;;;473:6;465;458:22;438:2;516:6;505:9;501:22;491:32;;561:7;554:4;550:2;546:13;542:27;532:2;;588:6;580;573:22;532:2;622;616:9;644:2;640;637:10;634:2;;;650:18;;:::i;:::-;725:2;719:9;693:2;779:13;;-1:-1:-1;;775:22:103;;;799:2;771:31;767:40;755:53;;;823:18;;;843:22;;;820:46;817:2;;;869:18;;:::i;:::-;909:10;905:2;898:22;944:2;936:6;929:18;984:7;979:2;974;970;966:11;962:20;959:33;956:2;;;1010:6;1002;995:22;956:2;1028:55;1080:2;1075;1067:6;1063:15;1058:2;1054;1050:11;1028:55;:::i;:::-;1102:6;1092:16;;;;;;;121:993;;;;;:::o;1119:274::-;;1286:6;1280:13;1302:53;1348:6;1343:3;1336:4;1328:6;1324:17;1302:53;:::i;:::-;1371:16;;;;;1256:137;-1:-1:-1;;1256:137:103:o;1398:383::-;;1547:2;1536:9;1529:21;1579:6;1573:13;1622:6;1617:2;1606:9;1602:18;1595:34;1638:66;1697:6;1692:2;1681:9;1677:18;1672:2;1664:6;1660:15;1638:66;:::i;:::-;1765:2;1744:15;-1:-1:-1;;1740:29:103;1725:45;;;;1772:2;1721:54;;1519:262;-1:-1:-1;;1519:262:103:o;2607:258::-;2679:1;2689:113;2703:6;2700:1;2697:13;2689:113;;;2779:11;;;2773:18;2760:11;;;2753:39;2725:2;2718:10;2689:113;;;2820:6;2817:1;2814:13;2811:2;;;-1:-1:-1;;2855:1:103;2837:16;;2830:27;2660:205::o;2870:127::-;2931:10;2926:3;2922:20;2919:1;2912:31;2962:4;2959:1;2952:15;2986:4;2983:1;2976:15;2902:95;567:723:6;;;;;;",
  "sourcePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/ERC1967/ERC1967Proxy.sol",
  "type": "contract"
}