0 txs
1 call
constructor
constructor()
functions
admin
viewfunction admin() view returns (address)
allowedControllers
viewfunction allowedControllers(address controller) view returns (bool allowed)
controllerFactory
viewfunction controllerFactory() view returns (address)
disableDelay
viewfunction disableDelay() view returns (uint256)
disablePendingTimestamp
viewfunction disablePendingTimestamp(address) view returns (uint256)
implementationContract
viewfunction implementationContract() view returns (address)
lastSwitch
viewfunction lastSwitch() view returns (address)
merkleExecutor
viewfunction merkleExecutor() view returns (address)
pendingAdmin
viewfunction pendingAdmin() view returns (address)
privateSwitchBeacon
viewfunction privateSwitchBeacon() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
switchPrice
viewfunction switchPrice() view returns (uint256)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
acceptAdmin
nonpayablefunction acceptAdmin()
allowController
nonpayablefunction allowController(address _controller)
cancelDisable
nonpayablefunction cancelDisable(address _switch, uint256 _switchId)
deployPrivateSwitch
nonpayablefunction deployPrivateSwitch(address _controller, address _wrappedNative, address _pool, address _token, address _paired, uint8 _version, bytes32 _merkleRoot, uint256 _premium)
disallowController
nonpayablefunction disallowController(address _controller)
executeDisable
nonpayablefunction executeDisable(address _switch, uint256 _switchId)
initialize
nonpayablefunction initialize(address _admin, address _merkleExecutor, uint256 _switchPrice)
proposeDisable
nonpayablefunction proposeDisable(address _switch, uint256 _switchId)
registerPrivateSwitchImplementationContract
nonpayablefunction registerPrivateSwitchImplementationContract(address _privateSwitchImplementationContract)
setAdmin
nonpayablefunction setAdmin(address _admin)
setControllerFactory
nonpayablefunction setControllerFactory(address _controllerFactory)
setDisableDelay
nonpayablefunction setDisableDelay(uint256 _disableDelay)
updateMerkleExecutor
nonpayablefunction updateMerkleExecutor(address _merkleExecutor)
updateSwitchPrice
nonpayablefunction updateSwitchPrice(uint256 _switchPrice)
upgradePrivateSwitch
nonpayablefunction upgradePrivateSwitch(address _newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminUpdateAccepted
event AdminUpdateAccepted(address indexed newAdmin)
AdminUpdateStarted
event AdminUpdateStarted(address indexed newAdmin)
ControllerAllowed
event ControllerAllowed(address indexed _controller)
ControllerDisallowed
event ControllerDisallowed(address indexed _controller)
ControllerFactoryUpdated
event ControllerFactoryUpdated(address indexed _controllerFactory)
DisableCancelled
event DisableCancelled(address indexed _switch)
DisableDelayUpdated
event DisableDelayUpdated(uint256 newDelay)
DisableExecuted
event DisableExecuted(address indexed _switch)
DisableProposed
event DisableProposed(address indexed _switch, uint256 executionTime)
Initialized
event Initialized(uint64 version)
MerkleExecutorUpdated
event MerkleExecutorUpdated(address indexed newExecutor)
PrivateSwitchFactoryInitialized
event PrivateSwitchFactoryInitialized(address indexed admin, address indexed merkleExecutor, uint256 switchPrice, uint256 disableDelay)
PrivateSwitchImplementationUpgraded
event PrivateSwitchImplementationUpgraded(address indexed _newImplementation)
SwitchPriceUpdated
event SwitchPriceUpdated(uint256 newPrice)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a060405230608052348015610013575f80fd5b5061001c610021565b6100d3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516129f3620000fa5f395f81816117340152818161175e015261194c01526129f35ff3fe608060405260043610620001df575f3560e01c80636aef220a1162000106578063aa827e8c116200009e578063cb93e283116200006a578063cb93e283146200058a578063cf80b77b14620005b9578063ea0d9baa14620005d0578063f851a44014620005f4575f80fd5b8063aa827e8c14620004e0578063ad3cb1cc1462000504578063b247dfaf1462000545578063b45c24a71462000569575f80fd5b806385a1805411620000de57806385a18054146200045357806386346182146200047757806399e7d056146200049b578063a0bbd6e914620004bc575f80fd5b80636aef220a14620003cb578063704b6c02146200040e578063736721921462000432575f80fd5b80633754d173116200017a5780634f1ef28611620001525780634f1ef286146200035957806352d1902d14620003705780635ddd26e414620003875780635f4203fd14620003a7575f80fd5b80633754d17314620002f057806339d01c6914620003145780633cbf2b681462000335575f80fd5b80630e18b68111620001ba5780630e18b68114620002575780631794bb3c146200026e5780632678224714620002925780632e234ddc14620002cc575f80fd5b806304db525e14620001e35780630b76672314620002095780630d621563146200022d575b5f80fd5b348015620001ef575f80fd5b50620002076200020136600462001bf2565b62000615565b005b34801562000215575f80fd5b50620002076200022736600462001c1f565b6200063b565b34801562000239575f80fd5b5062000244600a5481565b6040519081526020015b60405180910390f35b34801562000263575f80fd5b50620002076200075a565b3480156200027a575f80fd5b50620002076200028c36600462001c3d565b62000817565b3480156200029e575f80fd5b50600854620002b3906001600160a01b031681565b6040516001600160a01b0390911681526020016200024e565b348015620002d8575f80fd5b5062000207620002ea36600462001c1f565b62000a1f565b348015620002fc575f80fd5b50620002076200030e36600462001bf2565b62000bd0565b34801562000320575f80fd5b50600654620002b3906001600160a01b031681565b34801562000341575f80fd5b50620002076200035336600462001c80565b62000c87565b620002076200036a36600462001d35565b62000de2565b3480156200037c575f80fd5b506200024462000e07565b34801562000393575f80fd5b505f54620002b3906001600160a01b031681565b348015620003b3575f80fd5b5062000207620003c536600462001c1f565b62000e25565b348015620003d7575f80fd5b50620003fd620003e936600462001c1f565b60016020525f908152604090205460ff1681565b60405190151581526020016200024e565b3480156200041a575f80fd5b50620002076200042c36600462001c1f565b62000f96565b3480156200043e575f80fd5b50600354620002b3906001600160a01b031681565b3480156200045f575f80fd5b50620002076200047136600462001c1f565b62001037565b34801562000483575f80fd5b50620002076200049536600462001dff565b620010d8565b348015620004a7575f80fd5b50600754620002b3906001600160a01b031681565b348015620004c8575f80fd5b5062000207620004da36600462001c1f565b620011d8565b348015620004ec575f80fd5b5062000207620004fe36600462001dff565b620012c2565b34801562000510575f80fd5b5062000536604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516200024e919062001e68565b34801562000551575f80fd5b50620002076200056336600462001c1f565b62001406565b34801562000575575f80fd5b50600454620002b3906001600160a01b031681565b34801562000596575f80fd5b5062000244620005a836600462001c1f565b60026020525f908152604090205481565b348015620005c5575f80fd5b506200024460095481565b348015620005dc575f80fd5b5062000207620005ee36600462001bf2565b620014c6565b34801562000600575f80fd5b50600554620002b3906001600160a01b031681565b62000621828262001632565b506001600160a01b03165f90815260026020526040812055565b806001600160a01b0381166200066e5760405162461bcd60e51b8152600401620006659062001e7c565b60405180910390fd5b6004805460408051600162425cff60e01b0319815290516001600160a01b039092169263ffbda3019282820192602092908290030181865afa158015620006b7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006dd919062001ebe565b6001600160a01b0316336001600160a01b031614620007105760405162461bcd60e51b8152600401620006659062001edc565b600680546001600160a01b0319166001600160a01b0384169081179091556040517f6e66a3814158fdf632ac5d85f55fe690234b7959da24c30c82801f296e308423905f90a25050565b6008546001600160a01b03163314620007c65760405162461bcd60e51b815260206004820152602760248201527f50726976617465537769746368466163746f72793a204e6f742070656e64696e604482015266339030b236b4b760c91b606482015260840162000665565b60088054600580546001600160a01b03199081166001600160a01b0384161790915516905560405133907f59a9c0cd7ecc99db379838c600cd482db8d470ad3924c9dea370e271e4b6b896905f90a2565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156200085d5750825b90505f8267ffffffffffffffff1660011480156200087a5750303b155b90508115801562000889575080155b15620008a85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315620008d357845460ff60401b1916600160401b1785555b876001600160a01b038116620008fd5760405162461bcd60e51b8152600401620006659062001e7c565b876001600160a01b038116620009275760405162461bcd60e51b8152600401620006659062001e7c565b620009316200171d565b5f8811620009535760405162461bcd60e51b8152600401620006659062001f11565b600580546001600160a01b03199081166001600160a01b038d811691821790935560068054909216928c1692831790915560098a90556202a300600a819055604080518c815260208101929092527f6dcc55641b13632aba4c645e2cb15a0a96efd57a32d1f4d182ee11a353ed7239910160405180910390a35050831562000a1557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b6004805460408051600162425cff60e01b0319815290516001600160a01b039092169263ffbda3019282820192602092908290030181865afa15801562000a68573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a8e919062001ebe565b6001600160a01b0316336001600160a01b03161462000ac15760405162461bcd60e51b8152600401620006659062001edc565b5f546001600160a01b03161562000b255760405162461bcd60e51b815260206004820152602160248201527f50726976617465537769746368466163746f72793a20416c72656164792073656044820152601d60fa1b606482015260840162000665565b6001600160a01b03811662000b4e5760405162461bcd60e51b8152600401620006659062001e7c565b600780546001600160a01b0319166001600160a01b038316908117909155604051309062000b7c9062001bc1565b6001600160a01b03928316815291166020820152604001604051809103905ff08015801562000bad573d5f803e3d5ffd5b505f80546001600160a01b0319166001600160a01b039290921691909117905550565b62000bdc828262001632565b6001600160a01b0382165f908152600260205260409020541562000c595760405162461bcd60e51b815260206004820152602d60248201527f50726976617465537769746368466163746f72793a2044697361626c6520616c60448201526c72656164792070656e64696e6760981b606482015260840162000665565b600a5462000c68904262001f63565b6001600160a01b039092165f9081526002602052604090209190915550565b335f9081526001602052604090205460ff1662000cfc5760405162461bcd60e51b815260206004820152602c60248201527f50726976617465537769746368466163746f72793a204e6f7420616c6c6f776560448201526b321031b7b73a3937b63632b960a11b606482015260840162000665565b604080516001600160a01b038a8116602483015289811660448301528881166064830152878116608483015286811660a483015260ff861660c483015260e482018590526101048083018590528351808403909101815261012490920183526020820180516001600160e01b0316632925df8360e01b1790525f8054935192939092911690839062000d8e9062001bcf565b62000d9b92919062001f83565b604051809103905ff08015801562000db5573d5f803e3d5ffd5b50600380546001600160a01b0319166001600160a01b039290921691909117905550505050505050505050565b62000dec62001729565b62000df782620017d1565b62000e03828262001876565b5050565b5f62000e1262001941565b505f805160206200299e83398151915290565b6004805460408051600162425cff60e01b0319815290516001600160a01b039092169263ffbda3019282820192602092908290030181865afa15801562000e6e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000e94919062001ebe565b6001600160a01b0316336001600160a01b03161462000ec75760405162461bcd60e51b8152600401620006659062001edc565b6001600160a01b03811662000ef05760405162461bcd60e51b8152600401620006659062001e7c565b5f54604051631b2ce7f360e11b81526001600160a01b03838116600483015290911690633659cfe6906024015f604051808303815f87803b15801562000f34575f80fd5b505af115801562000f47573d5f803e3d5ffd5b5050600780546001600160a01b0319166001600160a01b0385169081179091556040519092507fe280a137a3b227d3ec35cd64274620e95df00786f72caafcf22407a7670ffd0891505f90a250565b806001600160a01b03811662000fc05760405162461bcd60e51b8152600401620006659062001e7c565b6005546001600160a01b0316331462000fed5760405162461bcd60e51b8152600401620006659062001edc565b600880546001600160a01b0319166001600160a01b0384169081179091556040517f4cd7c3b34ea893f399dc5a74a3183d31c6928b350b1ff0b3d47f6f36d41c698c905f90a25050565b806001600160a01b038116620010615760405162461bcd60e51b8152600401620006659062001e7c565b6005546001600160a01b031633146200108e5760405162461bcd60e51b8152600401620006659062001edc565b600480546001600160a01b0319166001600160a01b0384169081179091556040517fcba1f5e9eaf8fd6a21b9b652e0bfdaa5881c3c0b6d6e0416dc7ea9112053c563905f90a25050565b6004805460408051600162425cff60e01b0319815290516001600160a01b039092169263ffbda3019282820192602092908290030181865afa15801562001121573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001147919062001ebe565b6001600160a01b0316336001600160a01b0316146200117a5760405162461bcd60e51b8152600401620006659062001edc565b5f81116200119c5760405162461bcd60e51b8152600401620006659062001f11565b60098190556040518181527fc826c49c7084ba33ee490a2535f08a80414f46cc69611e5932099ab501e26183906020015b60405180910390a150565b6004805460408051600162425cff60e01b0319815290516001600160a01b039092169263ffbda3019282820192602092908290030181865afa15801562001221573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001247919062001ebe565b6001600160a01b0316336001600160a01b0316146200127a5760405162461bcd60e51b8152600401620006659062001edc565b6001600160a01b0381165f81815260016020526040808220805460ff19169055517f0e0f7cb5c73210f01be88c2ececcdd66a8e38a3e15d2a1dd935c629a6b8b2d409190a250565b6004805460408051600162425cff60e01b0319815290516001600160a01b039092169263ffbda3019282820192602092908290030181865afa1580156200130b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001331919062001ebe565b6001600160a01b0316336001600160a01b031614620013645760405162461bcd60e51b8152600401620006659062001edc565b5f8111620013d05760405162461bcd60e51b815260206004820152603260248201527f50726976617465537769746368466163746f72793a2044656c6179206d75737460448201527102062652067726561746572207468616e20360741b606482015260840162000665565b600a8190556040518181527fded18ae13b40b0fb1861c9c80006c8e6ab017d9341f6a47d8096099155776ff890602001620011cd565b6004546001600160a01b03163314620014785760405162461bcd60e51b815260206004820152602d60248201527f50726976617465537769746368466163746f72793a204f6e6c7920636f6e747260448201526c6f6c6c657220666163746f727960981b606482015260840162000665565b6001600160a01b0381165f818152600160208190526040808320805460ff1916909217909155517f465eaa4d3a5503c92b7c54a8bfee7094777af09e984f5b32fa7b7f7cf1e3be849190a250565b620014d2828262001632565b6001600160a01b0382165f90815260026020526040902054620015495760405162461bcd60e51b815260206004820152602860248201527f50726976617465537769746368466163746f72793a204e6f2064697361626c656044820152672070656e64696e6760c01b606482015260840162000665565b6001600160a01b0382165f90815260026020526040902054421015620015c65760405162461bcd60e51b815260206004820152602b60248201527f50726976617465537769746368466163746f72793a2054696d65206c6f636b2060448201526a1b9bdd08195e1c1a5c995960aa1b606482015260840162000665565b816001600160a01b0316632f2770db6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620015ff575f80fd5b505af115801562001612573d5f803e3d5ffd5b5050506001600160a01b039092165f908152600260205260408120555050565b335f9081526001602052604090205460ff168015620016c3575060405163881ec10b60e01b8152600481018290526001600160a01b03831690339063881ec10b90602401602060405180830381865afa15801562001692573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620016b8919062001ebe565b6001600160a01b0316145b62000e035760405162461bcd60e51b8152602060048201526024808201527f50726976617465537769746368466163746f72793a204e6f7420617574686f726044820152631a5e995960e21b606482015260840162000665565b620017276200198b565b565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480620017b257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316620017a65f805160206200299e833981519152546001600160a01b031690565b6001600160a01b031614155b15620017275760405163703e46dd60e11b815260040160405180910390fd5b6004805460408051600162425cff60e01b0319815290516001600160a01b039092169263ffbda3019282820192602092908290030181865afa1580156200181a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001840919062001ebe565b6001600160a01b0316336001600160a01b031614620018735760405162461bcd60e51b8152600401620006659062001edc565b50565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620018d3575060408051601f3d908101601f19168201909252620018d09181019062001fb0565b60015b620018fd57604051634c9c8ce360e01b81526001600160a01b038316600482015260240162000665565b5f805160206200299e83398151915281146200193057604051632a87526960e21b81526004810182905260240162000665565b6200193c8383620019d5565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614620017275760405163703e46dd60e11b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166200172757604051631afcd79f60e31b815260040160405180910390fd5b620019e08262001a31565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511562001a27576200193c828262001a97565b62000e0362001b11565b806001600160a01b03163b5f0362001a6857604051634c9c8ce360e01b81526001600160a01b038216600482015260240162000665565b5f805160206200299e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b03168460405162001ab5919062001fc8565b5f60405180830381855af49150503d805f811462001aef576040519150601f19603f3d011682016040523d82523d5f602084013e62001af4565b606091505b509150915062001b0685838362001b31565b925050505b92915050565b3415620017275760405163b398979f60e01b815260040160405180910390fd5b60608262001b4a5762001b448262001b97565b62001b90565b815115801562001b6257506001600160a01b0384163b155b1562001b8d57604051639996b31560e01b81526001600160a01b038516600482015260240162000665565b50805b9392505050565b80511562001ba85780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b6104218062001fe683390190565b610597806200240783390190565b6001600160a01b038116811462001873575f80fd5b5f806040838503121562001c04575f80fd5b823562001c118162001bdd565b946020939093013593505050565b5f6020828403121562001c30575f80fd5b813562001b908162001bdd565b5f805f6060848603121562001c50575f80fd5b833562001c5d8162001bdd565b9250602084013562001c6f8162001bdd565b929592945050506040919091013590565b5f805f805f805f80610100898b03121562001c99575f80fd5b883562001ca68162001bdd565b9750602089013562001cb88162001bdd565b9650604089013562001cca8162001bdd565b9550606089013562001cdc8162001bdd565b9450608089013562001cee8162001bdd565b935060a089013560ff8116811462001d04575f80fd5b979a969950949793969295929450505060c08201359160e0013590565b634e487b7160e01b5f52604160045260245ffd5b5f806040838503121562001d47575f80fd5b823562001d548162001bdd565b9150602083013567ffffffffffffffff8082111562001d71575f80fd5b818501915085601f83011262001d85575f80fd5b81358181111562001d9a5762001d9a62001d21565b604051601f8201601f19908116603f0116810190838211818310171562001dc55762001dc562001d21565b8160405282815288602084870101111562001dde575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f6020828403121562001e10575f80fd5b5035919050565b5f5b8381101562001e3357818101518382015260200162001e19565b50505f910152565b5f815180845262001e5481602086016020860162001e17565b601f01601f19169290920160200192915050565b602081525f62001b90602083018462001e3b565b60208082526022908201527f50726976617465537769746368466163746f72793a2041646472657373205a65604082015261726f60f01b606082015260800190565b5f6020828403121562001ecf575f80fd5b815162001b908162001bdd565b6020808252818101527f50726976617465537769746368466163746f72793a204f6e6c792061646d696e604082015260600190565b60208082526032908201527f50726976617465537769746368466163746f72793a205072696365206d75737460408201527102062652067726561746572207468616e20360741b606082015260800190565b8082018082111562001b0b57634e487b7160e01b5f52601160045260245ffd5b6001600160a01b03831681526040602082018190525f9062001fa89083018462001e3b565b949350505050565b5f6020828403121562001fc1575f80fd5b5051919050565b5f825162001fdb81846020870162001e17565b919091019291505056fe608060405234801561000f575f80fd5b5060405161042138038061042183398101604081905261002e9161015f565b806001600160a01b03811661005d57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b61006681610077565b50610070826100c6565b5050610190565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b806001600160a01b03163b5f036100fb5760405163211eb15960e21b81526001600160a01b0382166004820152602401610054565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b80516001600160a01b038116811461015a575f80fd5b919050565b5f8060408385031215610170575f80fd5b61017983610144565b915061018760208401610144565b90509250929050565b6102848061019d5f395ff3fe608060405234801561000f575f80fd5b5060043610610055575f3560e01c80633659cfe6146100595780635c60da1b1461006e578063715018a6146100975780638da5cb5b1461009f578063f2fde38b146100af575b5f80fd5b61006c610067366004610221565b6100c2565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006c6100d6565b5f546001600160a01b031661007b565b61006c6100bd366004610221565b6100e9565b6100ca610128565b6100d381610154565b50565b6100de610128565b6100e75f6101d2565b565b6100f1610128565b6001600160a01b03811661011f57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6100d3816101d2565b5f546001600160a01b031633146100e75760405163118cdaa760e01b8152336004820152602401610116565b806001600160a01b03163b5f036101895760405163211eb15960e21b81526001600160a01b0382166004820152602401610116565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610231575f80fd5b81356001600160a01b0381168114610247575f80fd5b939250505056fea2646970667358221220c3897609882e1bd41ca1fe4509f3692b831be8a3e8181acac690317d81be0d5f64736f6c6343000817003360a060405260405161059738038061059783398101604081905261002291610376565b61002c828261003e565b506001600160a01b0316608052610465565b610047826100fb565b6040516001600160a01b038316907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e905f90a28051156100ef576100ea826001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e49190610431565b82610209565b505050565b6100f761027c565b5050565b806001600160a01b03163b5f0361013557604051631933b43b60e21b81526001600160a01b03821660048201526024015b60405180910390fd5b807fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392831617905560408051635c60da1b60e01b815290515f92841691635c60da1b9160048083019260209291908290030181865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d29190610431565b9050806001600160a01b03163b5f036100f757604051634c9c8ce360e01b81526001600160a01b038216600482015260240161012c565b60605f80846001600160a01b031684604051610225919061044a565b5f60405180830381855af49150503d805f811461025d576040519150601f19603f3d011682016040523d82523d5f602084013e610262565b606091505b50909250905061027385838361029d565b95945050505050565b341561029b5760405163b398979f60e01b815260040160405180910390fd5b565b6060826102b2576102ad826102fc565b6102f5565b81511580156102c957506001600160a01b0384163b155b156102f257604051639996b31560e01b81526001600160a01b038516600482015260240161012c565b50805b9392505050565b80511561030c5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b80516001600160a01b038116811461033b575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561036e578181015183820152602001610356565b50505f910152565b5f8060408385031215610387575f80fd5b61039083610325565b60208401519092506001600160401b03808211156103ac575f80fd5b818501915085601f8301126103bf575f80fd5b8151818111156103d1576103d1610340565b604051601f8201601f19908116603f011681019083821181831017156103f9576103f9610340565b81604052828152886020848701011115610411575f80fd5b610422836020830160208801610354565b80955050505050509250929050565b5f60208284031215610441575f80fd5b6102f582610325565b5f825161045b818460208701610354565b9190910192915050565b60805161011b61047c5f395f601d015261011b5ff3fe6080604052600a600c565b005b60186014601a565b609d565b565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156076573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906098919060ba565b905090565b365f80375f80365f845af43d5f803e80801560b6573d5ff35b3d5ffd5b5f6020828403121560c9575f80fd5b81516001600160a01b038116811460de575f80fd5b939250505056fea2646970667358221220a5b7a142dad3a74fb8f8430afb6c060a9c9645a3a78f4500d209d24b528adb1a64736f6c63430008170033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca264697066735822122029a7a0a8dc2caabf639d60fc1efe09946474c666419d4d91afdb61eba033b8f564736f6c63430008170033