[ { "anonymous": false, "inputs": [ { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "enum IDiamondWritable.FacetCutAction", "name": "action", "type": "uint8" }, { "internalType": "bytes4[]", "name": "selectors", "type": "bytes4[]" } ], "indexed": false, "internalType": "struct IDiamondWritable.FacetCut[]", "name": "facetCuts", "type": "tuple[]" }, { "indexed": false, "internalType": "address", "name": "target", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "DiamondCut", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "enum IDiamondWritable.FacetCutAction", "name": "action", "type": "uint8" }, { "internalType": "bytes4[]", "name": "selectors", "type": "bytes4[]" } ], "internalType": "struct IDiamondWritable.FacetCut[]", "name": "facetCuts", "type": "tuple[]" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "diamondCut", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "selector", "type": "bytes4" } ], "name": "facetAddress", "outputs": [ { "internalType": "address", "name": "facet", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "facetAddresses", "outputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "facet", "type": "address" } ], "name": "facetFunctionSelectors", "outputs": [ { "internalType": "bytes4[]", "name": "selectors", "type": "bytes4[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "facets", "outputs": [ { "components": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes4[]", "name": "selectors", "type": "bytes4[]" } ], "internalType": "struct IDiamondReadable.Facet[]", "name": "diamondFacets", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFallbackAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nomineeOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "fallbackAddress", "type": "address" } ], "name": "setFallbackAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040523480156200001157600080fd5b506000620000296200048160201b62000d1a1760201c565b60408051600c8082526101a08201909252919250600091906020820161018080368337019050509050631f931c1c60e01b816000815181106200007057620000706200103a565b6001600160e01b0319909216602092830291909101820152620000aa9083906307e4c70760e21b9060019062000d3e620004a5821b17901c565b637a0ed62760e01b81600181518110620000c857620000c86200103a565b6001600160e01b03199092166020928302919091019091015280516356fe50af60e11b90829060029081106200010257620001026200103a565b6001600160e01b03199092166020928302919091019091015280516314bbdacb60e21b90829060039081106200013c576200013c6200103a565b6001600160e01b03199092166020928302919091019091015280516366ffd66360e11b90829060049081106200017657620001766200103a565b6001600160e01b0319909216602092830291909101820152620001b09083906348e2b09360e01b9060019062000d3e620004a5821b17901c565b6301ffc9a760e01b81600581518110620001ce57620001ce6200103a565b6001600160e01b0319909216602092830291909101820152620002089083906301ffc9a760e01b9060019062000d3e620004a5821b17901c565b638da5cb5b60e01b816006815181106200022657620002266200103a565b6001600160e01b031990921660209283029190910190910152805163455a8a8560e11b90829060079081106200026057620002606200103a565b6001600160e01b031990921660209283029190910190910152805163f2fde38b60e01b90829060089081106200029a576200029a6200103a565b6001600160e01b03199092166020928302919091019091015280516379ba509760e01b9082906009908110620002d457620002d46200103a565b6001600160e01b03199092166020928302919091018201526200030e9083906307f5828d60e41b9060019062000d3e620004a5821b17901c565b632c40805960e01b81600a815181106200032c576200032c6200103a565b6001600160e01b0319909216602092830291909101909101528051639142376560e01b908290600b9081106200036657620003666200103a565b6001600160e01b03199290921660209283029190910190910152604080516001808252818301909252600091816020015b604080516060808201835260008083526020830152918101919091528152602001906001900390816200039757905050604080516060810190915230815290915060208101600081526020018381525081600081518110620003fd57620003fd6200103a565b60200260200101819052506200044a81600060405180602001604052806000815250620004346200053360201b62000dc61760201c565b6200055760201b62000dea17909392919060201c565b6200047833620004646200078360201b62000fc61760201c565b620007a760201b62000fea1790919060201c565b505050620011df565b7f326d0c59a7612f6a9919e2a8ee333c80ba689d8ba2634de89c85cbb04832e70590565b6001600160e01b03198083169003620005055760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e746572666163652069640000000060448201526064015b60405180910390fd5b6001600160e01b03199190911660009081526020929092526040909120805460ff1916911515919091179055565b7f177481ac65e4292921c69f62d1cc7f57541261e5d61c8175cf4e36a01c9bfc9390565b600184015461ffff811690819060009060071615620005885750600381901c60009081526002870160205260409020545b60005b8651811015620006f1576000878281518110620005ac57620005ac6200103a565b60200260200101519050600081602001519050600082604001515111620006225760405162461bcd60e51b815260206004820152602360248201527f4469616d6f6e64426173653a206e6f2073656c6563746f7273207370656369666044820152621a595960ea1b6064820152608401620004fc565b600081600281111562000639576200063962001050565b0362000668576200065d8585848d620007c460201b6200100717909392919060201c565b9095509350620006e6565b60018160028111156200067f576200067f62001050565b03620006a5576200069f828b6200099660201b620011ba1790919060201c565b620006e6565b6002816002811115620006bc57620006bc62001050565b03620006e657620006e08585848d62000bd760201b620013b217909392919060201c565b90955093505b50506001016200058b565b508282146200070e5760018701805461ffff191661ffff84161790555b60078216156200073157600382901c600090815260028801602052604090208190555b7f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738686866040516200076693929190620010ba565b60405180910390a16200077a858562000ea5565b50505050505050565b7f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f67168046090565b81546001600160a01b0319166001600160a01b0391909116179055565b805160009081906001600160a01b03163014806200080057506200080083600001516001600160a01b03166200103460201b620003a41760201c565b6200085a5760405162461bcd60e51b815260206004820152602360248201527f4469616d6f6e64426173653a204144442074617267657420686173206e6f20636044820152626f646560e81b6064820152608401620004fc565b60005b83604001515181101562000989576000846040015182815181106200088657620008866200103a565b6020908102919091018101516001600160e01b031981166000908152918a9052604090912054909150606081901c156200090f5760405162461bcd60e51b815260206004820152602360248201527f4469616d6f6e64426173653a2073656c6563746f7220616c726561647920616460448201526219195960ea1b6064820152608401620004fc565b85516001600160e01b0319838116600081815260208d90526040902060609390931b6001600160601b0319168b1790925560058a901b60e090811692831c91831c199990991617978190036200097957600389901c600090815260028b0160205260408120989098555b505050600195860195016200085d565b5093959294509192505050565b620009b981600001516001600160a01b03166200103460201b620003a41760201c565b62000a175760405162461bcd60e51b815260206004820152602760248201527f4469616d6f6e64426173653a205245504c4143452074617267657420686173206044820152666e6f20636f646560c81b6064820152608401620004fc565b60005b81604001515181101562000bd25760008260400151828151811062000a435762000a436200103a565b6020908102919091018101516001600160e01b03198116600090815291869052604090912054909150606081901c8062000ac05760405162461bcd60e51b815260206004820152601f60248201527f4469616d6f6e64426173653a2073656c6563746f72206e6f7420666f756e64006044820152606401620004fc565b306001600160a01b0382160362000b145760405162461bcd60e51b815260206004820152602260248201526000805160206200317a8339815191526044820152616c6560f01b6064820152608401620004fc565b84600001516001600160a01b0316816001600160a01b03160362000b8c5760405162461bcd60e51b815260206004820152602860248201527f4469616d6f6e64426173653a205245504c41434520746172676574206973206960448201526719195b9d1a58d85b60c21b6064820152608401620004fc565b5083516001600160e01b031992909216600090815260208690526040902060609290921b6001600160601b0319166001600160601b039190911617905560010162000a1a565b505050565b805160009081906001600160a01b03161562000c4e5760405162461bcd60e51b815260206004820152602f60248201527f4469616d6f6e64426173653a2052454d4f564520746172676574206d7573742060448201526e6265207a65726f206164647265737360881b6064820152608401620004fc565b600385901c6007861660005b85604001515181101562000e915760008660400151828151811062000c835762000c836200103a565b6020908102919091018101516001600160e01b031981166000908152918c9052604090912054909150606081901c62000cff5760405162461bcd60e51b815260206004820152601f60248201527f4469616d6f6e64426173653a2073656c6563746f72206e6f7420666f756e64006044820152606401620004fc565b30606082901c0362000d4e5760405162461bcd60e51b815260206004820152602260248201526000805160206200317a8339815191526044820152616c6560f01b6064820152608401620004fc565b600089900362000d7c57600019909401600081815260028c0160205260409020549850936007935062000d84565b600019909301925b600584901b89901b6000806001600160e01b03198084169086161462000dd7576001600160e01b03198316600090815260208f90526040902080546001600160601b0319166001600160601b0386161790555b50506001600160e01b03198316600090815260208d90526040812055611fff600383901c1660e0600584901b1687821462000e3c57600082815260028f016020526040902080546001600160e01b031980841c19909116908516831c17905562000e60565b80836001600160e01b031916901c816001600160e01b031960001b901c198d16179b505b8660000362000e7f57600088815260028f01602052604081208190559b505b50506001909301925062000c5a915050565b5060039190911b1796939550929350505050565b8051156001600160a01b038316151462000f195760405162461bcd60e51b815260206004820152602e60248201527f4469616d6f6e64426173653a20696e76616c696420696e697469616c697a617460448201526d696f6e20706172616d657465727360901b6064820152608401620004fc565b6001600160a01b0382161562001030576001600160a01b038216301462000fbe5762000f59826001600160a01b03166200103460201b620003a41760201c565b62000fbe5760405162461bcd60e51b815260206004820152602e60248201527f4469616d6f6e64426173653a20696e697469616c697a6174696f6e207461726760448201526d657420686173206e6f20636f646560901b6064820152608401620004fc565b6000826001600160a01b03168260405162000fda9190620011c1565b600060405180830381855af49150503d806000811462001017576040519150601f19603f3d011682016040523d82523d6000602084013e6200101c565b606091505b505090508062000bd2573d6000803e3d6000fd5b5050565b3b151590565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60005b838110156200108357818101518382015260200162001069565b50506000910152565b60008151808452620010a681602086016020860162001066565b601f01601f19169290920160200192915050565b60006060808301818452808751808352608092508286019150828160051b8701016020808b0160005b848110156200118f57898403607f19018652815180516001600160a01b031685528381015189860190600381106200112b57634e487b7160e01b600052602160045260246000fd5b868601526040918201519186018a905281519081905290840190600090898701905b80831015620011795783516001600160e01b03191682529286019260019290920191908601906200114d565b50978501979550505090820190600101620010e3565b50506001600160a01b038a16908801528681036040880152620011b381896200108c565b9a9950505050505050505050565b60008251620011d581846020870162001066565b9190910192915050565b611f8b80620011ef6000396000f3fe6080604052600436106100ab5760003560e01c80638ab5150a116100645780638ab5150a1461022a5780638da5cb5b1461023f5780639142376514610254578063adfca15e14610274578063cdffacc6146102a1578063f2fde38b146102c1576100b2565b806301ffc9a71461014f5780631f931c1c146101845780632c408059146101a457806352ef6b2c146101d157806379ba5097146101f35780637a0ed62714610208576100b2565b366100b257005b60006100bc6102e1565b90506001600160a01b0381163b6101295760405162461bcd60e51b815260206004820152602660248201527f50726f78793a20696d706c656d656e746174696f6e206d75737420626520636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e808015610148573d6000f35b3d6000fd5b005b34801561015b57600080fd5b5061016f61016a3660046118cc565b6103aa565b60405190151581526020015b60405180910390f35b34801561019057600080fd5b5061014d61019f366004611947565b6103df565b3480156101b057600080fd5b506101b9610474565b6040516001600160a01b03909116815260200161017b565b3480156101dd57600080fd5b506101e6610490565b60405161017b91906119f9565b3480156101ff57600080fd5b5061014d610633565b34801561021457600080fd5b5061021d6106b7565b60405161017b9190611a8b565b34801561023657600080fd5b506101b9610adf565b34801561024b57600080fd5b506101b9610aee565b34801561026057600080fd5b5061014d61026f366004611b08565b610af8565b34801561028057600080fd5b5061029461028f366004611b08565b610b5d565b60405161017b9190611b23565b3480156102ad57600080fd5b506101b96102bc3660046118cc565b610ca9565b3480156102cd57600080fd5b5061014d6102dc366004611b08565b610cd6565b600080356001600160e01b03191681527f177481ac65e4292921c69f62d1cc7f57541261e5d61c8175cf4e36a01c9bfc9360208190526040822054819060601c8061039d575060038201546001600160a01b03168061039d5760405162461bcd60e51b815260206004820152603260248201527f4469616d6f6e64426173653a206e6f20666163657420666f756e6420666f722060448201527166756e6374696f6e207369676e617475726560701b6064820152608401610120565b9392505050565b3b151590565b60006103d9826103b8610d1a565b906001600160e01b0319166000908152602091909152604090205460ff1690565b92915050565b6103e761164a565b6001600160a01b0316336001600160a01b0316146104175760405162461bcd60e51b815260040161012090611b65565b61046d6104248587611c30565b8484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104659250610dc6915050565b929190610dea565b5050505050565b600061047e610dc6565b600301546001600160a01b0316919050565b6060600061049c610dc6565b600181015490915061ffff1667ffffffffffffffff8111156104c0576104c0611b9c565b6040519080825280602002602001820160405280156104e9578160200160208202803683370190505b50915060008060005b600184015461ffff1682101561062b576000818152600285016020526040812054905b6008811015610616578361052881611d7a565b600188015490955061ffff168511905061061657600581901b82901b6001600160e01b0319811660009081526020889052604081205460601c90805b888110156105b9578a818151811061057e5761057e611d93565b60200260200101516001600160a01b0316836001600160a01b0316036105a757600191506105b9565b806105b181611d7a565b915050610564565b5080156105c857505050610604565b818a89815181106105db576105db611d93565b6001600160a01b0390921660209283029190910190910152876105fd81611d7a565b9850505050505b8061060e81611d7a565b915050610515565b5050808061062390611d7a565b9150506104f2565b505082525090565b61063b611663565b6001600160a01b0316336001600160a01b0316146106ad5760405162461bcd60e51b815260206004820152602960248201527f536166654f776e61626c653a2073656e646572206d757374206265206e6f6d696044820152683732b29037bbb732b960b91b6064820152608401610120565b6106b561168b565b565b606060006106c3610dc6565b600181015490915061ffff1667ffffffffffffffff8111156106e7576106e7611b9c565b60405190808252806020026020018201604052801561072d57816020015b6040805180820190915260008152606060208201528152602001906001900390816107055790505b50600182015490925060009061ffff1667ffffffffffffffff81111561075557610755611b9c565b60405190808252806020026020018201604052801561077e578160200160208202803683370190505b50905060008060005b600185015461ffff16821015610a6d576000818152600286016020526040812054905b6008811015610a5857836107bd81611d7a565b600189015490955061ffff1685119050610a5857600581901b82901b6001600160e01b0319811660009081526020899052604081205460601c90805b8881101561091657826001600160a01b03168c828151811061081d5761081d611d93565b6020026020010151600001516001600160a01b03160361090457838c828151811061084a5761084a611d93565b6020026020010151602001518b838151811061086857610868611d93565b602002602001015160ff168151811061088357610883611d93565b60200260200101906001600160e01b03191690816001600160e01b0319168152505060ff8a82815181106108b9576108b9611d93565b602002602001015160ff16106108ce57600080fd5b8981815181106108e0576108e0611d93565b6020026020010180518091906108f590611da9565b60ff1690525060019150610916565b8061090e81611d7a565b9150506107f9565b50801561092557505050610a46565b818b898151811061093857610938611d93565b60209081029190910101516001600160a01b03909116905260018a015461ffff1667ffffffffffffffff81111561097157610971611b9c565b60405190808252806020026020018201604052801561099a578160200160208202803683370190505b508b89815181106109ad576109ad611d93565b602002602001015160200181905250828b89815181106109cf576109cf611d93565b6020026020010151602001516000815181106109ed576109ed611d93565b60200260200101906001600160e01b03191690816001600160e01b031916815250506001898981518110610a2357610a23611d93565b60ff9092166020928302919091019091015287610a3f81611d7a565b9850505050505b80610a5081611d7a565b9150506107aa565b50508080610a6590611d7a565b915050610787565b5060005b82811015610ad4576000848281518110610a8d57610a8d611d93565b602002602001015160ff1690506000878381518110610aae57610aae611d93565b602002602001015160200151905081815250508080610acc90611d7a565b915050610a71565b508185525050505090565b6000610ae9611663565b905090565b6000610ae961164a565b610b0061164a565b6001600160a01b0316336001600160a01b031614610b305760405162461bcd60e51b815260040161012090611b65565b80610b39610dc6565b60030180546001600160a01b0319166001600160a01b039290921691909117905550565b60606000610b69610dc6565b600181015490915061ffff1667ffffffffffffffff811115610b8d57610b8d611b9c565b604051908082528060200260200182016040528015610bb6578160200160208202803683370190505b50915060008060005b600184015461ffff16821015610c9f576000818152600285016020526040812054905b6008811015610c8a5783610bf581611d7a565b600188015490955061ffff1685119050610c8a57600581901b82901b6001600160e01b0319811660009081526020889052604090205460601c6001600160a01b038a1603610c775780888781518110610c5057610c50611d93565b6001600160e01b03199092166020928302919091019091015285610c7381611d7a565b9650505b5080610c8281611d7a565b915050610be2565b50508080610c9790611d7a565b915050610bbf565b5050825250919050565b6000610cb3610dc6565b6001600160e01b0319909216600090815260209290925250604090205460601c90565b610cde61164a565b6001600160a01b0316336001600160a01b031614610d0e5760405162461bcd60e51b815260040161012090611b65565b610d1781611708565b50565b7f326d0c59a7612f6a9919e2a8ee333c80ba689d8ba2634de89c85cbb04832e70590565b6001600160e01b03198083169003610d985760405162461bcd60e51b815260206004820152601c60248201527f4552433136353a20696e76616c696420696e74657266616365206964000000006044820152606401610120565b6001600160e01b03199190911660009081526020929092526040909120805460ff1916911515919091179055565b7f177481ac65e4292921c69f62d1cc7f57541261e5d61c8175cf4e36a01c9bfc9390565b600184015461ffff811690819060009060071615610e1a5750600381901c60009081526002870160205260409020545b60005b8651811015610f3a576000878281518110610e3a57610e3a611d93565b60200260200101519050600081602001519050600082604001515111610eae5760405162461bcd60e51b815260206004820152602360248201527f4469616d6f6e64426173653a206e6f2073656c6563746f7273207370656369666044820152621a595960ea1b6064820152608401610120565b6000816002811115610ec257610ec2611dc8565b03610edd57610ed38a868685611007565b9095509350610f30565b6001816002811115610ef157610ef1611dc8565b03610f0557610f008a836111ba565b610f30565b6002816002811115610f1957610f19611dc8565b03610f3057610f2a8a8686856113b2565b90955093505b5050600101610e1d565b50828214610f565760018701805461ffff191661ffff84161790555b6007821615610f7857600382901c600090815260028801602052604090208190555b7f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb673868686604051610fab93929190611e2e565b60405180910390a1610fbd8585611711565b50505050505050565b7f8a22373512790c48b83a1fe2efdd2888d4a917bcdc24d0adf63e60f67168046090565b81546001600160a01b0319166001600160a01b0391909116179055565b805160009081906001600160a01b031630148061102e575082516001600160a01b03163b15155b6110865760405162461bcd60e51b815260206004820152602360248201527f4469616d6f6e64426173653a204144442074617267657420686173206e6f20636044820152626f646560e81b6064820152608401610120565b60005b8360400151518110156111ad576000846040015182815181106110ae576110ae611d93565b6020908102919091018101516001600160e01b031981166000908152918a9052604090912054909150606081901c156111355760405162461bcd60e51b815260206004820152602360248201527f4469616d6f6e64426173653a2073656c6563746f7220616c726561647920616460448201526219195960ea1b6064820152608401610120565b85516001600160e01b0319838116600081815260208d90526040902060609390931b6001600160601b0319168b1790925560058a901b60e090811692831c91831c1999909916179781900361119e57600389901c600090815260028b0160205260408120989098555b50505060019586019501611089565b5093959294509192505050565b80516001600160a01b03163b6112225760405162461bcd60e51b815260206004820152602760248201527f4469616d6f6e64426173653a205245504c4143452074617267657420686173206044820152666e6f20636f646560c81b6064820152608401610120565b60005b8160400151518110156113ad5760008260400151828151811061124a5761124a611d93565b6020908102919091018101516001600160e01b03198116600090815291869052604090912054909150606081901c806112c55760405162461bcd60e51b815260206004820152601f60248201527f4469616d6f6e64426173653a2073656c6563746f72206e6f7420666f756e64006044820152606401610120565b306001600160a01b038216036112ed5760405162461bcd60e51b815260040161012090611ef7565b84600001516001600160a01b0316816001600160a01b0316036113635760405162461bcd60e51b815260206004820152602860248201527f4469616d6f6e64426173653a205245504c41434520746172676574206973206960448201526719195b9d1a58d85b60c21b6064820152608401610120565b5083516001600160e01b031992909216600090815260208690526040902060609290921b6001600160601b0319166bffffffffffffffffffffffff91909116179055600101611225565b505050565b805160009081906001600160a01b0316156114275760405162461bcd60e51b815260206004820152602f60248201527f4469616d6f6e64426173653a2052454d4f564520746172676574206d7573742060448201526e6265207a65726f206164647265737360881b6064820152608401610120565b600385901c6007861660005b8560400151518110156116365760008660400151828151811061145857611458611d93565b6020908102919091018101516001600160e01b031981166000908152918c9052604090912054909150606081901c6114d25760405162461bcd60e51b815260206004820152601f60248201527f4469616d6f6e64426173653a2073656c6563746f72206e6f7420666f756e64006044820152606401610120565b30606082901c036114f55760405162461bcd60e51b815260040161012090611ef7565b600089900361152157600019909401600081815260028c01602052604090205498509360079350611529565b600019909301925b600584901b89901b6000806001600160e01b031980841690861614611580576001600160e01b03198316600090815260208f90526040902080546001600160601b0319166bffffffffffffffffffffffff86161790555b50506001600160e01b03198316600090815260208d90526040812055611fff600383901c1660e0600584901b168782146115e357600082815260028f016020526040902080546001600160e01b031980841c19909116908516831c179055611607565b80836001600160e01b031916901c816001600160e01b031960001b901c198d16179b505b8660000361162557600088815260028f01602052604081208190559b505b505060019093019250611433915050565b5060039190911b1796939550929350505050565b6000611654610fc6565b546001600160a01b0316919050565b60007f24aa1f7b31fd188a8d3ecfb06bc55c806040e59b03bd4396283442fce6617890611654565b6000611695610fc6565b805460405191925033916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36116db8133610fea565b610d1760007f24aa1f7b31fd188a8d3ecfb06bc55c806040e59b03bd4396283442fce66178905b90610fea565b610d1781611881565b8051156001600160a01b03831615146117835760405162461bcd60e51b815260206004820152602e60248201527f4469616d6f6e64426173653a20696e76616c696420696e697469616c697a617460448201526d696f6e20706172616d657465727360901b6064820152608401610120565b6001600160a01b0382161561187d576001600160a01b0382163014611810576001600160a01b0382163b6118105760405162461bcd60e51b815260206004820152602e60248201527f4469616d6f6e64426173653a20696e697469616c697a6174696f6e207461726760448201526d657420686173206e6f20636f646560901b6064820152608401610120565b6000826001600160a01b03168260405161182a9190611f39565b600060405180830381855af49150503d8060008114611865576040519150601f19603f3d011682016040523d82523d6000602084013e61186a565b606091505b50509050806113ad573d6000803e3d6000fd5b5050565b610d1781610d17817f24aa1f7b31fd188a8d3ecfb06bc55c806040e59b03bd4396283442fce6617890611702565b80356001600160e01b0319811681146118c757600080fd5b919050565b6000602082840312156118de57600080fd5b61039d826118af565b80356001600160a01b03811681146118c757600080fd5b60008083601f84011261191057600080fd5b50813567ffffffffffffffff81111561192857600080fd5b60208301915083602082850101111561194057600080fd5b9250929050565b60008060008060006060868803121561195f57600080fd5b853567ffffffffffffffff8082111561197757600080fd5b818801915088601f83011261198b57600080fd5b81358181111561199a57600080fd5b8960208260051b85010111156119af57600080fd5b602083019750809650506119c5602089016118e7565b945060408801359150808211156119db57600080fd5b506119e8888289016118fe565b969995985093965092949392505050565b6020808252825182820181905260009190848201906040850190845b81811015611a3a5783516001600160a01b031683529284019291840191600101611a15565b50909695505050505050565b600081518084526020808501945080840160005b83811015611a805781516001600160e01b03191687529582019590820190600101611a5a565b509495945050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015611afa57888303603f19018552815180516001600160a01b03168452870151878401879052611ae787850182611a46565b9588019593505090860190600101611ab2565b509098975050505050505050565b600060208284031215611b1a57600080fd5b61039d826118e7565b6020808252825182820181905260009190848201906040850190845b81811015611a3a5783516001600160e01b03191683529284019291840191600101611b3f565b6020808252601d908201527f4f776e61626c653a2073656e646572206d757374206265206f776e6572000000604082015260600190565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611bd557611bd5611b9c565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611c0457611c04611b9c565b604052919050565b600067ffffffffffffffff821115611c2657611c26611b9c565b5060051b60200190565b6000611c43611c3e84611c0c565b611bdb565b83815260208082019190600586811b860136811115611c6157600080fd5b865b81811015611d5757803567ffffffffffffffff80821115611c845760008081fd5b818a01915060608236031215611c9a5760008081fd5b611ca2611bb2565b611cab836118e7565b81528683013560038110611cbf5760008081fd5b8188015260408381013583811115611cd75760008081fd5b939093019236601f850112611cee57600092508283fd5b83359250611cfe611c3e84611c0c565b83815292871b84018801928881019036851115611d1b5760008081fd5b948901945b84861015611d4057611d31866118af565b82529489019490890190611d20565b918301919091525088525050948301948301611c63565b5092979650505050505050565b634e487b7160e01b600052601160045260246000fd5b600060018201611d8c57611d8c611d64565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff8103611dbf57611dbf611d64565b60010192915050565b634e487b7160e01b600052602160045260246000fd5b60005b83811015611df9578181015183820152602001611de1565b50506000910152565b60008151808452611e1a816020860160208601611dde565b601f01601f19169290920160200192915050565b6000606080830181845280875180835260808601915060808160051b87010192506020808a016000805b84811015611ec757898703607f19018652825180516001600160a01b031688528481015160038110611e9857634e487b7160e01b84526021600452602484fd5b88860152604090810151908801899052611eb489890182611a46565b9750509483019491830191600101611e58565b5050506001600160a01b0389169087015250508381036040850152611eec8186611e02565b979650505050505050565b60208082526022908201527f4469616d6f6e64426173653a2073656c6563746f7220697320696d6d757461626040820152616c6560f01b606082015260800190565b60008251611f4b818460208701611dde565b919091019291505056fea26469706673582212201d8300bd5a027eee58fc780803946b0d4bb1abf1b605ec1fe558cbc8988955fc64736f6c634300081000334469616d6f6e64426173653a2073656c6563746f7220697320696d6d75746162