[ { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "message", "type": "string" } ], "name": "CommitMessage", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes4", "name": "functionId", "type": "bytes4" }, { "indexed": true, "internalType": "address", "name": "oldDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newDelegate", "type": "address" }, { "indexed": false, "internalType": "string", "name": "functionSignature", "type": "string" } ], "name": "FunctionUpdate", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_allowAddress", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "bundleId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "funcSignatures", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isTransferAllowed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nftLock", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "perPurchaseNFTToMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "reservedNFT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "status", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_delegate", "type": "address" }, { "internalType": "string", "name": "_functionSignatures", "type": "string" }, { "internalType": "string", "name": "_commitMessage", "type": "string" } ], "name": "updateContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b5060405162002d7138038062002d71833981016040819052620000349162000733565b6040518060400160405280601681526020017f58414e41204469616d6f6e642048616e64732053425400000000000000000000815250604051806040016040528060038152602001620b088960eb1b81525081600490816200009791906200080a565b506005620000a682826200080a565b505050620000c3620000bd6200055260201b60201c565b62000556565b600380546001600160a01b0319163017905533600090815260106020908152604091829020805460ff1916600117905581516060810190925260398083529062002d1390830139600f906200011990826200080a565b50612710601281905550600060405180606001604052806025815260200162002d4c602591396003549091506200015b9082906001600160a01b0316620005a8565b6040805180820190915260128152717365744261736555524928737472696e672960701b6020820152620001908184620005a8565b5060408051808201909152600d81526c746f74616c537570706c79282960981b6020820152620001c18184620005a8565b5060408051808201909152601481527f7365745374617274696e67546f6b656e496428290000000000000000000000006020820152620002028184620005a8565b5060408051808201909152601c81527f6d696e7428616464726573732c75696e743235362c737472696e6729000000006020820152620002438184620005a8565b506040805180820190915260128152716275726e41646d696e2875696e743235362960701b6020820152620002798184620005a8565b50604080518082019091526012815271736574417574686f7228616464726573732960701b6020820152620002af8184620005a8565b506040805180820190915260128152717365745374617475732875696e743235362960701b6020820152620002e58184620005a8565b506040805180820190915260208082527f7365745472616e73666572416c6c6f77656428616464726573732c626f6f6c2990820152620003268184620005a8565b50604080518082019091526011815270746f6b656e5552492875696e743235362960781b60208201526200035b8184620005a8565b5060408051808201909152601381527f736574526f79616c74792875696e74323536290000000000000000000000000060208201526200039c8184620005a8565b5060408051808201909152600e81526d6765744d6178537570706c79282960901b6020820152620003ce8184620005a8565b50604080518082019091526012815271676574417574686f722875696e743235362960701b6020820152620004048184620005a8565b5060408051808201909152601681527f676574526f79616c74794665652875696e7432353629000000000000000000006020820152620004458184620005a8565b5060408051808201909152601381527f67657443726561746f722875696e7432353629000000000000000000000000006020820152620004868184620005a8565b5060408051808201909152601d81527f6d696e7442756c6b28616464726573735b5d2c75696e743235365b5d290000006020820152620004c78184620005a8565b5060408051808201909152601881527f616464416c6c6f774164647265737328616464726573732900000000000000006020820152620005088184620005a8565b5060408051808201909152601581527f7365744d6178537570706c792875696e743235362900000000000000000000006020820152620005498184620005a8565b5050506200094f565b3390565b600c80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b81516020808401919091206001600160e01b031981166000908152918290526040822080546001600160a01b0319166001600160a01b0385161790556001805480820182559252907fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6016200061e84826200080a565b5060015460405160029062000635908690620008fc565b908152602001604051809103902081905550816001600160a01b031660006001600160a01b0316826001600160e01b0319167f3234040ce3bd4564874e44810f198910133a1b24c4e84aac87edbf6b458f5353866040516200069891906200091a565b60405180910390a47faa1c0a0a78cec2470f9652e5d29540752e7a64d70f926933cebf13afaeda45de60405162000726906020808252603a908201527f4164646564204552433135333820757064617465436f6e74726163742066756e60408201527f6374696f6e20617420636f6e7472616374206372656174696f6e000000000000606082015260800190565b60405180910390a1505050565b6000602082840312156200074657600080fd5b81516001600160a01b03811681146200075e57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200079057607f821691505b602082108103620007b157634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200080557600081815260208120601f850160051c81016020861015620007e05750805b601f850160051c820191505b818110156200080157828155600101620007ec565b5050505b505050565b81516001600160401b0381111562000826576200082662000765565b6200083e816200083784546200077b565b84620007b7565b602080601f8311600181146200087657600084156200085d5750858301515b600019600386901b1c1916600185901b17855562000801565b600085815260208120601f198616915b82811015620008a75788860151825594840194600190910190840162000886565b5085821015620008c65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60005b83811015620008f3578181015183820152602001620008d9565b50506000910152565b6000825162000910818460208701620008d6565b9190910192915050565b60208152600082518060208401526200093b816040850160208701620008d6565b601f01601f19169190910160400192915050565b6123b4806200095f6000396000f3fe60806040526004361061019c5760003560e01c80636c0360eb116100ec578063a22cb4651161008a578063c87b56dd11610064578063c87b56dd14610575578063e985e9c514610595578063f2fde38b146105b5578063f4e37f12146105d55761019c565b8063a22cb4651461051f578063aa8062ef1461053f578063b88d4fde146105555761019c565b80638822048e116100c65780638822048e146104865780638da5cb5b146104b657806395d89b41146104d4578063a0a2daf0146104e95761019c565b80636c0360eb1461043c57806370a0823114610451578063715018a6146104715761019c565b806323b872dd11610159578063495d815111610133578063495d81511461039c578063521b52a4146103cc57806361455567146103fc5780636352211e1461041c5761019c565b806323b872dd1461033c57806326a6860a1461035c57806342842e0e1461037c5761019c565b806301ffc9a71461025357806306fdde0314610288578063081812fc146102aa578063095ea7b3146102e25780630994b1ad14610302578063200d2ed214610326575b6000356001600160e01b0319161580156101b557503415155b156101bc57005b600080356001600160e01b0319168152602081905260409020546001600160a01b03168061022c5760405162461bcd60e51b8152602060048201526018602482015277233ab731ba34b7b7103237b2b9903737ba1032bc34b9ba1760411b60448201526064015b60405180910390fd5b60405136600082376000803683855af43d806000843e81801561024d578184f35b8184fd5b005b34801561025f57600080fd5b5061027361026e366004611a9f565b610602565b60405190151581526020015b60405180910390f35b34801561029457600080fd5b5061029d610654565b60405161027f9190611b0c565b3480156102b657600080fd5b506102ca6102c5366004611b1f565b6106e6565b6040516001600160a01b03909116815260200161027f565b3480156102ee57600080fd5b506102516102fd366004611b54565b61070d565b34801561030e57600080fd5b5061031860185481565b60405190815260200161027f565b34801561033257600080fd5b5061031860135481565b34801561034857600080fd5b50610251610357366004611b7e565b610753565b34801561036857600080fd5b5061029d610377366004611b1f565b6107c1565b34801561038857600080fd5b50610251610397366004611b7e565b61086d565b3480156103a857600080fd5b506102736103b7366004611b1f565b600b6020526000908152604090205460ff1681565b3480156103d857600080fd5b506102736103e7366004611bba565b60106020526000908152604090205460ff1681565b34801561040857600080fd5b50610251610417366004611c1e565b6108d6565b34801561042857600080fd5b506102ca610437366004611b1f565b610ee1565b34801561044857600080fd5b5061029d610f41565b34801561045d57600080fd5b5061031861046c366004611bba565b610f4e565b34801561047d57600080fd5b50610251610fd4565b34801561049257600080fd5b506102736104a1366004611bba565b600a6020526000908152604090205460ff1681565b3480156104c257600080fd5b50600c546001600160a01b03166102ca565b3480156104e057600080fd5b5061029d61100a565b3480156104f557600080fd5b506102ca610504366004611a9f565b6000602081905290815260409020546001600160a01b031681565b34801561052b57600080fd5b5061025161053a366004611c9f565b611019565b34801561054b57600080fd5b5061031860175481565b34801561056157600080fd5b50610251610570366004611cf1565b61105b565b34801561058157600080fd5b5061029d610590366004611b1f565b6110cb565b3480156105a157600080fd5b506102736105b0366004611dcd565b6111a6565b3480156105c157600080fd5b506102516105d0366004611bba565b6111d4565b3480156105e157600080fd5b506103186105f0366004611b1f565b601d6020526000908152604090205481565b60006001600160e01b031982166380ac58cd60e01b148061063357506001600160e01b03198216635b5e139f60e01b145b8061064e57506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606004805461066390611e00565b80601f016020809104026020016040519081016040528092919081815260200182805461068f90611e00565b80156106dc5780601f106106b1576101008083540402835291602001916106dc565b820191906000526020600020905b8154815290600101906020018083116106bf57829003601f168201915b5050505050905090565b60006106f18261126f565b506000908152600860205260409020546001600160a01b031690565b6001600160a01b0382166000908152600a602052604090205460ff166107455760405162461bcd60e51b815260040161022390611e3a565b61074f82826112ce565b5050565b336000908152600a602052604090205460ff166107825760405162461bcd60e51b815260040161022390611e3a565b6000818152600b602052604090205460ff16156107b15760405162461bcd60e51b815260040161022390611e71565b6107bc8383836113de565b505050565b600181815481106107d157600080fd5b9060005260206000200160009150905080546107ec90611e00565b80601f016020809104026020016040519081016040528092919081815260200182805461081890611e00565b80156108655780601f1061083a57610100808354040283529160200191610865565b820191906000526020600020905b81548152906001019060200180831161084857829003601f168201915b505050505081565b336000908152600a602052604090205460ff1661089c5760405162461bcd60e51b815260040161022390611e3a565b6000818152600b602052604090205460ff16156108cb5760405162461bcd60e51b815260040161022390611e71565b6107bc83838361140f565b600c546001600160a01b031633146109005760405162461bcd60e51b815260040161022390611ea0565b60006001600160a01b038616156109875750843b806109875760405162461bcd60e51b815260206004820152603960248201527f5f64656c65676174652061646472657373206973206e6f74206120636f6e747260448201527f61637420616e64206973206e6f742061646472657373283029000000000000006064820152608401610223565b600085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052508451602080870198509596508601909401938693509150819050808080805b878a1015610e9757895160001a925082602903610e8557896109fb81611eeb565b9a50610a099050878b611f04565b808a526020808b018290206001600160e01b031981166000908152918290526040909120548c99509097506001600160a01b0390811696509094508f16610c2a57600289604051610a5a9190611f17565b908152602001604051809103902054915081600003610ab65760405162461bcd60e51b8152602060048201526018602482015277233ab731ba34b7b7103237b2b9903737ba1032bc34b9ba1760411b6044820152606401610223565b81610ac081611f33565b60018054919450610ad2925090611f04565b9050808214610b6a5760018181548110610aee57610aee611f4a565b9060005260206000200160018381548110610b0b57610b0b611f4a565b906000526020600020019081610b219190611fae565b50610b2d82600161208f565b600260018381548110610b4257610b42611f4a565b90600052602060002001604051610b5991906120a2565b908152604051908190036020019020555b6001805480610b7b57610b7b612118565b600190038181906000526020600020016000610b979190611a3b565b9055600289604051610ba99190611f17565b90815260408051602092819003830181206000908190556001600160e01b03198a168082529381905291822080546001600160a01b031916905590916001600160a01b038816917f3234040ce3bd4564874e44810f198910133a1b24c4e84aac87edbf6b458f535390610c1d908e90611b0c565b60405180910390a4610e80565b600289604051610c3a9190611f17565b908152602001604051809103902054600003610d8c576001600160a01b03851615610c975760405162461bcd60e51b815260206004820152600d60248201526c233ab731a4b21031b630b9b41760991b6044820152606401610223565b8e600080886001600160e01b0319166001600160e01b031916815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600189908060018154018082558091505060019003906000526020600020016000909190919091509081610d16919061212e565b50600154604051600290610d2b908c90611f17565b9081526020016040518091039020819055508e6001600160a01b031660006001600160a01b0316876001600160e01b0319167f3234040ce3bd4564874e44810f198910133a1b24c4e84aac87edbf6b458f53538c604051610c1d9190611b0c565b8e6001600160a01b0316600080886001600160e01b0319166001600160e01b031916815260200190815260200160002060009054906101000a90046001600160a01b03166001600160a01b031614610e80578e600080886001600160e01b0319166001600160e01b031916815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508e6001600160a01b0316856001600160a01b0316876001600160e01b0319167f3234040ce3bd4564874e44810f198910133a1b24c4e84aac87edbf6b458f53538c604051610e779190611b0c565b60405180910390a45b978301975b89610e8f81611eeb565b9a50506109da565b7faa1c0a0a78cec2470f9652e5d29540752e7a64d70f926933cebf13afaeda45de8c8c604051610ec89291906121e8565b60405180910390a1505050505050505050505050505050565b6000818152600660205260408120546001600160a01b03168061064e5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610223565b600f80546107ec90611e00565b60006001600160a01b038216610fb85760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610223565b506001600160a01b031660009081526007602052604090205490565b600c546001600160a01b03163314610ffe5760405162461bcd60e51b815260040161022390611ea0565b611008600061142a565b565b60606005805461066390611e00565b6001600160a01b0382166000908152600a602052604090205460ff166110515760405162461bcd60e51b815260040161022390611e3a565b61074f828261147c565b336000908152600a602052604090205460ff1661108a5760405162461bcd60e51b815260040161022390611e3a565b6000828152600b602052604090205460ff16156110b95760405162461bcd60e51b815260040161022390611e71565b6110c584848484611487565b50505050565b6000818152600660205260409020546060906001600160a01b031661114a5760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610223565b60006111546114b9565b90506000815111611174576040518060200160405280600081525061119f565b8061117e846114c8565b60405160200161118f929190612217565b6040516020818303038152906040525b9392505050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205460ff1690565b600c546001600160a01b031633146111fe5760405162461bcd60e51b815260040161022390611ea0565b6001600160a01b0381166112635760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610223565b61126c8161142a565b50565b6000818152600660205260409020546001600160a01b031661126c5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610223565b60006112d982610ee1565b9050806001600160a01b0316836001600160a01b0316036113465760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610223565b336001600160a01b0382161480611362575061136281336111a6565b6113d45760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610223565b6107bc83836115d1565b6113e8338261163f565b6114045760405162461bcd60e51b815260040161022390612246565b6107bc83838361169d565b6107bc8383836040518060200160405280600081525061105b565b600c80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61074f338383611839565b611491338361163f565b6114ad5760405162461bcd60e51b815260040161022390612246565b6110c584848484611907565b6060600f805461066390611e00565b6060816000036114ef5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611519578061150381611eeb565b91506115129050600a836122aa565b91506114f3565b60008167ffffffffffffffff81111561153457611534611cdb565b6040519080825280601f01601f19166020018201604052801561155e576020820181803683370190505b5090505b84156115c957611573600183611f04565b9150611580600a866122be565b61158b90603061208f565b60f81b8183815181106115a0576115a0611f4a565b60200101906001600160f81b031916908160001a9053506115c2600a866122aa565b9450611562565b949350505050565b600081815260086020526040902080546001600160a01b0319166001600160a01b038416908117909155819061160682610ee1565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061164b83610ee1565b9050806001600160a01b0316846001600160a01b03161480611672575061167281856111a6565b806115c95750836001600160a01b031661168b846106e6565b6001600160a01b031614949350505050565b826001600160a01b03166116b082610ee1565b6001600160a01b0316146117145760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610223565b6001600160a01b0382166117765760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610223565b6117816000826115d1565b6001600160a01b03831660009081526007602052604081208054600192906117aa908490611f04565b90915550506001600160a01b03821660009081526007602052604081208054600192906117d890849061208f565b909155505060008181526006602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b816001600160a01b0316836001600160a01b03160361189a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610223565b6001600160a01b03838116600081815260096020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61191284848461169d565b61191e8484848461193a565b6110c55760405162461bcd60e51b8152600401610223906122d2565b60006001600160a01b0384163b15611a3057604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061197e903390899088908890600401612324565b6020604051808303816000875af19250505080156119b9575060408051601f3d908101601f191682019092526119b691810190612361565b60015b611a16573d8080156119e7576040519150601f19603f3d011682016040523d82523d6000602084013e6119ec565b606091505b508051600003611a0e5760405162461bcd60e51b8152600401610223906122d2565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506115c9565b506001949350505050565b508054611a4790611e00565b6000825580601f10611a57575050565b601f01602090049060005260206000209081019061126c91905b80821115611a855760008155600101611a71565b5090565b6001600160e01b03198116811461126c57600080fd5b600060208284031215611ab157600080fd5b813561119f81611a89565b60005b83811015611ad7578181015183820152602001611abf565b50506000910152565b60008151808452611af8816020860160208601611abc565b601f01601f19169290920160200192915050565b60208152600061119f6020830184611ae0565b600060208284031215611b3157600080fd5b5035919050565b80356001600160a01b0381168114611b4f57600080fd5b919050565b60008060408385031215611b6757600080fd5b611b7083611b38565b946020939093013593505050565b600080600060608486031215611b9357600080fd5b611b9c84611b38565b9250611baa60208501611b38565b9150604084013590509250925092565b600060208284031215611bcc57600080fd5b61119f82611b38565b60008083601f840112611be757600080fd5b50813567ffffffffffffffff811115611bff57600080fd5b602083019150836020828501011115611c1757600080fd5b9250929050565b600080600080600060608688031215611c3657600080fd5b611c3f86611b38565b9450602086013567ffffffffffffffff80821115611c5c57600080fd5b611c6889838a01611bd5565b90965094506040880135915080821115611c8157600080fd5b50611c8e88828901611bd5565b969995985093965092949392505050565b60008060408385031215611cb257600080fd5b611cbb83611b38565b915060208301358015158114611cd057600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215611d0757600080fd5b611d1085611b38565b9350611d1e60208601611b38565b925060408501359150606085013567ffffffffffffffff80821115611d4257600080fd5b818701915087601f830112611d5657600080fd5b813581811115611d6857611d68611cdb565b604051601f8201601f19908116603f01168101908382118183101715611d9057611d90611cdb565b816040528281528a6020848701011115611da957600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b60008060408385031215611de057600080fd5b611de983611b38565b9150611df760208401611b38565b90509250929050565b600181811c90821680611e1457607f821691505b602082108103611e3457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601c908201527f4552433732313a207472616e73666572206e6f7420616c6c6f77656400000000604082015260600190565b602080825260159082015274115490cdcc8c4e88139195081a5cc81b1bd8dad959605a1b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600060018201611efd57611efd611ed5565b5060010190565b8181038181111561064e5761064e611ed5565b60008251611f29818460208701611abc565b9190910192915050565b600081611f4257611f42611ed5565b506000190190565b634e487b7160e01b600052603260045260246000fd5b601f8211156107bc57600081815260208120601f850160051c81016020861015611f875750805b601f850160051c820191505b81811015611fa657828155600101611f93565b505050505050565b818103611fb9575050565b611fc38254611e00565b67ffffffffffffffff811115611fdb57611fdb611cdb565b611fef81611fe98454611e00565b84611f60565b6000601f821160018114612023576000831561200b5750848201545b600019600385901b1c1916600184901b178455612088565b600085815260209020601f19841690600086815260209020845b8381101561205d578286015482556001958601959091019060200161203d565b508583101561207b5781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b8082018082111561064e5761064e611ed5565b60008083546120b081611e00565b600182811680156120c857600181146120dd5761210c565b60ff198416875282151583028701945061210c565b8760005260208060002060005b858110156121035781548a8201529084019082016120ea565b50505082870194505b50929695505050505050565b634e487b7160e01b600052603160045260246000fd5b815167ffffffffffffffff81111561214857612148611cdb565b61215681611fe98454611e00565b602080601f83116001811461218b57600084156121735750858301515b600019600386901b1c1916600185901b178555611fa6565b600085815260208120601f198616915b828110156121ba5788860151825594840194600190910190840161219b565b50858210156121d85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60008351612229818460208801611abc565b83519083019061223d818360208801611abc565b01949350505050565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826122b9576122b9612294565b500490565b6000826122cd576122cd612294565b500690565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061235790830184611ae0565b9695505050505050565b60006020828403121561237357600080fd5b815161119f81611a8956fea264697066735822122082b72e1f1a6dfaa27bf0e4f3001a50c395a8ed577100901e3e7f472f163e67d864736f6c6343000811003368747470733a2f2f746573746170692e78616e616c69612e636f6d2f78616e616c69612f6765742d6e66742d6d6574613f746f6b656e49643d757064617465436f6e747261637428616464726573732c737472696e672c737472696e67290000000000000000000000008644871360e6d88670569d5304040e5f7b3bfc38