{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the address provided by the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the address provided by the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable.sol":"Ownable"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":36064,"contract":"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable.sol:Ownable","label":"_owner","offset":0,"slot":"0","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"}}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/Ownable.sol","id":36204,"exportedSymbols":{"Context":[37396],"Ownable":[36203]},"nodeType":"SourceUnit","src":"102:3000:24","nodes":[{"id":36057,"nodeType":"PragmaDirective","src":"102:24:24","nodes":[],"literals":["solidity","^","0.8",".20"]},{"id":36059,"nodeType":"ImportDirective","src":"128:45:24","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../utils/Context.sol","nameLocation":"-1:-1:-1","scope":36204,"sourceUnit":37397,"symbolAliases":[{"foreign":{"id":36058,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37396,"src":"136:7:24","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":36203,"nodeType":"ContractDefinition","src":"663:2438:24","nodes":[{"id":36064,"nodeType":"VariableDeclaration","src":"706:22:24","nodes":[],"constant":false,"mutability":"mutable","name":"_owner","nameLocation":"722:6:24","scope":36203,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36063,"name":"address","nodeType":"ElementaryTypeName","src":"706:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":36069,"nodeType":"ErrorDefinition","src":"825:50:24","nodes":[],"documentation":{"id":36065,"nodeType":"StructuredDocumentation","src":"735:85:24","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","name":"OwnableUnauthorizedAccount","nameLocation":"831:26:24","parameters":{"id":36068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36067,"mutability":"mutable","name":"account","nameLocation":"866:7:24","nodeType":"VariableDeclaration","scope":36069,"src":"858:15:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36066,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"857:17:24"}},{"id":36074,"nodeType":"ErrorDefinition","src":"968:41:24","nodes":[],"documentation":{"id":36070,"nodeType":"StructuredDocumentation","src":"881:82:24","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","name":"OwnableInvalidOwner","nameLocation":"974:19:24","parameters":{"id":36073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36072,"mutability":"mutable","name":"owner","nameLocation":"1002:5:24","nodeType":"VariableDeclaration","scope":36074,"src":"994:13:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36071,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"993:15:24"}},{"id":36080,"nodeType":"EventDefinition","src":"1015:84:24","nodes":[],"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","name":"OwnershipTransferred","nameLocation":"1021:20:24","parameters":{"id":36079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36076,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"1058:13:24","nodeType":"VariableDeclaration","scope":36080,"src":"1042:29:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36075,"name":"address","nodeType":"ElementaryTypeName","src":"1042:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36078,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"1089:8:24","nodeType":"VariableDeclaration","scope":36080,"src":"1073:24:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36077,"name":"address","nodeType":"ElementaryTypeName","src":"1073:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1041:57:24"}},{"id":36106,"nodeType":"FunctionDefinition","src":"1225:187:24","nodes":[],"body":{"id":36105,"nodeType":"Block","src":"1259:153:24","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36086,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36083,"src":"1273:12:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1297:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1289:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36087,"name":"address","nodeType":"ElementaryTypeName","src":"1289:7:24","typeDescriptions":{}}},"id":36090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1289:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1273:26:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36100,"nodeType":"IfStatement","src":"1269:95:24","trueBody":{"id":36099,"nodeType":"Block","src":"1301:63:24","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":36095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1350:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1342:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36093,"name":"address","nodeType":"ElementaryTypeName","src":"1342:7:24","typeDescriptions":{}}},"id":36096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1342:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36092,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36074,"src":"1322:19:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":36097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1322:31:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36098,"nodeType":"RevertStatement","src":"1315:38:24"}]}},{"expression":{"arguments":[{"id":36102,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36083,"src":"1392:12:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36101,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36202,"src":"1373:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":36103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:32:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36104,"nodeType":"ExpressionStatement","src":"1373:32:24"}]},"documentation":{"id":36081,"nodeType":"StructuredDocumentation","src":"1105:115:24","text":" @dev Initializes the contract setting the address provided by the deployer as the initial owner."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":36084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36083,"mutability":"mutable","name":"initialOwner","nameLocation":"1245:12:24","nodeType":"VariableDeclaration","scope":36106,"src":"1237:20:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36082,"name":"address","nodeType":"ElementaryTypeName","src":"1237:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1236:22:24"},"returnParameters":{"id":36085,"nodeType":"ParameterList","parameters":[],"src":"1259:0:24"},"scope":36203,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":36114,"nodeType":"ModifierDefinition","src":"1500:62:24","nodes":[],"body":{"id":36113,"nodeType":"Block","src":"1521:41:24","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":36109,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36140,"src":"1531:11:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":36110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:13:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36111,"nodeType":"ExpressionStatement","src":"1531:13:24"},{"id":36112,"nodeType":"PlaceholderStatement","src":"1554:1:24"}]},"documentation":{"id":36107,"nodeType":"StructuredDocumentation","src":"1418:77:24","text":" @dev Throws if called by any account other than the owner."},"name":"onlyOwner","nameLocation":"1509:9:24","parameters":{"id":36108,"nodeType":"ParameterList","parameters":[],"src":"1518:2:24"},"virtual":false,"visibility":"internal"},{"id":36123,"nodeType":"FunctionDefinition","src":"1638:85:24","nodes":[],"body":{"id":36122,"nodeType":"Block","src":"1693:30:24","nodes":[],"statements":[{"expression":{"id":36120,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36064,"src":"1710:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":36119,"id":36121,"nodeType":"Return","src":"1703:13:24"}]},"documentation":{"id":36115,"nodeType":"StructuredDocumentation","src":"1568:65:24","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1647:5:24","parameters":{"id":36116,"nodeType":"ParameterList","parameters":[],"src":"1652:2:24"},"returnParameters":{"id":36119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36118,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":36123,"src":"1684:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36117,"name":"address","nodeType":"ElementaryTypeName","src":"1684:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1683:9:24"},"scope":36203,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":36140,"nodeType":"FunctionDefinition","src":"1796:162:24","nodes":[],"body":{"id":36139,"nodeType":"Block","src":"1841:117:24","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":36127,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36123,"src":"1855:5:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":36128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1855:7:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":36129,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37378,"src":"1866:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":36130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1855:23:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36138,"nodeType":"IfStatement","src":"1851:101:24","trueBody":{"id":36137,"nodeType":"Block","src":"1880:72:24","statements":[{"errorCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":36133,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37378,"src":"1928:10:24","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":36134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:12:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36132,"name":"OwnableUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36069,"src":"1901:26:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":36135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:40:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36136,"nodeType":"RevertStatement","src":"1894:47:24"}]}}]},"documentation":{"id":36124,"nodeType":"StructuredDocumentation","src":"1729:62:24","text":" @dev Throws if the sender is not the owner."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1805:11:24","parameters":{"id":36125,"nodeType":"ParameterList","parameters":[],"src":"1816:2:24"},"returnParameters":{"id":36126,"nodeType":"ParameterList","parameters":[],"src":"1841:0:24"},"scope":36203,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":36154,"nodeType":"FunctionDefinition","src":"2293:101:24","nodes":[],"body":{"id":36153,"nodeType":"Block","src":"2347:47:24","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":36149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2384:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2376:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36147,"name":"address","nodeType":"ElementaryTypeName","src":"2376:7:24","typeDescriptions":{}}},"id":36150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36146,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36202,"src":"2357:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":36151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2357:30:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36152,"nodeType":"ExpressionStatement","src":"2357:30:24"}]},"documentation":{"id":36141,"nodeType":"StructuredDocumentation","src":"1964:324:24","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner."},"functionSelector":"715018a6","implemented":true,"kind":"function","modifiers":[{"id":36144,"kind":"modifierInvocation","modifierName":{"id":36143,"name":"onlyOwner","nameLocations":["2337:9:24"],"nodeType":"IdentifierPath","referencedDeclaration":36114,"src":"2337:9:24"},"nodeType":"ModifierInvocation","src":"2337:9:24"}],"name":"renounceOwnership","nameLocation":"2302:17:24","parameters":{"id":36142,"nodeType":"ParameterList","parameters":[],"src":"2319:2:24"},"returnParameters":{"id":36145,"nodeType":"ParameterList","parameters":[],"src":"2347:0:24"},"scope":36203,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":36182,"nodeType":"FunctionDefinition","src":"2543:215:24","nodes":[],"body":{"id":36181,"nodeType":"Block","src":"2613:145:24","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":36167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":36162,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36157,"src":"2627:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":36165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2647:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2639:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36163,"name":"address","nodeType":"ElementaryTypeName","src":"2639:7:24","typeDescriptions":{}}},"id":36166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2627:22:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":36176,"nodeType":"IfStatement","src":"2623:91:24","trueBody":{"id":36175,"nodeType":"Block","src":"2651:63:24","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":36171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2700:1:24","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":36170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2692:7:24","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":36169,"name":"address","nodeType":"ElementaryTypeName","src":"2692:7:24","typeDescriptions":{}}},"id":36172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2692:10:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36168,"name":"OwnableInvalidOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36074,"src":"2672:19:24","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":36173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2672:31:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36174,"nodeType":"RevertStatement","src":"2665:38:24"}]}},{"expression":{"arguments":[{"id":36178,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36157,"src":"2742:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":36177,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36202,"src":"2723:18:24","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":36179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2723:28:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36180,"nodeType":"ExpressionStatement","src":"2723:28:24"}]},"documentation":{"id":36155,"nodeType":"StructuredDocumentation","src":"2400:138:24","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","implemented":true,"kind":"function","modifiers":[{"id":36160,"kind":"modifierInvocation","modifierName":{"id":36159,"name":"onlyOwner","nameLocations":["2603:9:24"],"nodeType":"IdentifierPath","referencedDeclaration":36114,"src":"2603:9:24"},"nodeType":"ModifierInvocation","src":"2603:9:24"}],"name":"transferOwnership","nameLocation":"2552:17:24","parameters":{"id":36158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36157,"mutability":"mutable","name":"newOwner","nameLocation":"2578:8:24","nodeType":"VariableDeclaration","scope":36182,"src":"2570:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36156,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2569:18:24"},"returnParameters":{"id":36161,"nodeType":"ParameterList","parameters":[],"src":"2613:0:24"},"scope":36203,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":36202,"nodeType":"FunctionDefinition","src":"2912:187:24","nodes":[],"body":{"id":36201,"nodeType":"Block","src":"2975:124:24","nodes":[],"statements":[{"assignments":[36189],"declarations":[{"constant":false,"id":36189,"mutability":"mutable","name":"oldOwner","nameLocation":"2993:8:24","nodeType":"VariableDeclaration","scope":36201,"src":"2985:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36188,"name":"address","nodeType":"ElementaryTypeName","src":"2985:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":36191,"initialValue":{"id":36190,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36064,"src":"3004:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2985:25:24"},{"expression":{"id":36194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":36192,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36064,"src":"3020:6:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":36193,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36185,"src":"3029:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3020:17:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":36195,"nodeType":"ExpressionStatement","src":"3020:17:24"},{"eventCall":{"arguments":[{"id":36197,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36189,"src":"3073:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":36198,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36185,"src":"3083:8:24","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":36196,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36080,"src":"3052:20:24","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":36199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3052:40:24","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36200,"nodeType":"EmitStatement","src":"3047:45:24"}]},"documentation":{"id":36183,"nodeType":"StructuredDocumentation","src":"2764:143:24","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2921:18:24","parameters":{"id":36186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36185,"mutability":"mutable","name":"newOwner","nameLocation":"2948:8:24","nodeType":"VariableDeclaration","scope":36202,"src":"2940:16:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36184,"name":"address","nodeType":"ElementaryTypeName","src":"2940:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2939:18:24"},"returnParameters":{"id":36187,"nodeType":"ParameterList","parameters":[],"src":"2975:0:24"},"scope":36203,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":36061,"name":"Context","nameLocations":["692:7:24"],"nodeType":"IdentifierPath","referencedDeclaration":37396,"src":"692:7:24"},"id":36062,"nodeType":"InheritanceSpecifier","src":"692:7:24"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":36060,"nodeType":"StructuredDocumentation","src":"175:487:24","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"linearizedBaseContracts":[36203,37396],"name":"Ownable","nameLocation":"681:7:24","scope":36204,"usedErrors":[36069,36074],"usedEvents":[36080]}],"license":"MIT"},"id":24}