[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "ApproveToCaller", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "type": "error" }, { "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": true, "internalType": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "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" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_addresses", "type": "address[]" } ], "name": "addAllowList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "addressMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "allowList", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "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": "baseExtension", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "flipAllowList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "flipPaused", "outputs": [], "stateMutability": "nonpayable", "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": [], "name": "maxPerTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxPerWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "onlyAllowList", "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": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "royalty", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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": [ { "internalType": "uint256", "name": "_newAmount", "type": "uint256" } ], "name": "setMaxPerTx", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newAmount", "type": "uint256" } ], "name": "setMaxPerWallet", "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": [], "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": [], "name": "totalSupply", "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": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newExtension", "type": "string" } ], "name": "updateBaseExtension", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newURI", "type": "string" } ], "name": "updateBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newAmount", "type": "uint256" } ], "name": "updateCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newAmount", "type": "uint256" } ], "name": "updateRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
61010060405260436080818152906200222660a03980516200002a91600a916020909101906200025f565b5060408051808201909152600580825264173539b7b760d91b60209092019182526200005991600b916200025f565b50600c805461ffff19166101001790556000600d556103e8600e556001600f8190556010553480156200008b57600080fd5b506040518060400160405280600b81526020016a4e6562756c614d61736b7360a81b8152506040518060400160405280600b81526020016a4e4542554c414d41534b5360a81b8152508160029080519060200190620000ec9291906200025f565b508051620001029060039060208401906200025f565b505060016000555062000115336200012d565b60016009556200012733600c6200017f565b62000341565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000805490829003620001a55760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b17831790558284019083908390600080516020620022698339815191528180a4600183015b81811462000234578083600060008051602062002269833981519152600080a46001016200020b565b50816000036200025657604051622e076360e81b815260040160405180910390fd5b60005550505050565b8280546200026d9062000305565b90600052602060002090601f016020900481019282620002915760008555620002dc565b82601f10620002ac57805160ff1916838001178555620002dc565b82800160010185558215620002dc579182015b82811115620002dc578251825591602001919060010190620002bf565b50620002ea929150620002ee565b5090565b5b80821115620002ea5760008155600101620002ef565b600181811c908216806200031a57607f821691505b6020821081036200033b57634e487b7160e01b600052602260045260246000fd5b50919050565b611ed580620003516000396000f3fe6080604052600436106102305760003560e01c80635c975abb1161012e578063a22cb465116100ab578063e268e4d31161006f578063e268e4d314610671578063e985e9c514610691578063f2fde38b146106da578063f968adbe146106fa578063fa30297e1461071057600080fd5b8063a22cb465146105dc578063b88d4fde146105fc578063c66828621461061c578063c6f6f21614610631578063c87b56dd1461065157600080fd5b80638da5cb5b116100f25780638da5cb5b146105565780638fffd8b514610574578063931688cb1461059457806395d89b41146105b4578063a0712d68146105c957600080fd5b80635c975abb146104d25780636352211e146104ec5780636c0360eb1461050c57806370a0823114610521578063715018a61461054157600080fd5b8063252e3ab9116101bc5780633232c10b116101805780633232c10b1461045257806332cb6b0c14610472578063333171bb1461048757806342842e0e1461049c578063453c2310146104bc57600080fd5b8063252e3ab91461037c578063255323ff1461039b5780632848aeaf146103bb57806329ee566c146103fd5780632a55205a1461041357600080fd5b806313faede61161020357806313faede6146102e657806318160ddd1461030a57806320843e871461032757806323b872dd1461033c57806323c5a0881461035c57600080fd5b806301ffc9a71461023557806306fdde031461026a578063081812fc1461028c578063095ea7b3146102c4575b600080fd5b34801561024157600080fd5b50610255610250366004611879565b61073d565b60405190151581526020015b60405180910390f35b34801561027657600080fd5b5061027f610768565b60405161026191906118ee565b34801561029857600080fd5b506102ac6102a7366004611901565b6107fa565b6040516001600160a01b039091168152602001610261565b3480156102d057600080fd5b506102e46102df366004611936565b61083e565b005b3480156102f257600080fd5b506102fc600d5481565b604051908152602001610261565b34801561031657600080fd5b5060015460005403600019016102fc565b34801561033357600080fd5b506102e46108de565b34801561034857600080fd5b506102e4610357366004611960565b610903565b34801561036857600080fd5b506102e4610377366004611901565b610a9b565b34801561038857600080fd5b50600c5461025590610100900460ff1681565b3480156103a757600080fd5b506102e46103b636600461199c565b610aa8565b3480156103c757600080fd5b506103eb6103d6366004611a11565b60116020526000908152604090205460ff1681565b60405160ff9091168152602001610261565b34801561040957600080fd5b506102fc600e5481565b34801561041f57600080fd5b5061043361042e366004611a2c565b610b2a565b604080516001600160a01b039093168352602083019190915201610261565b34801561045e57600080fd5b506102e461046d366004611ada565b610b65565b34801561047e57600080fd5b506102fc60de81565b34801561049357600080fd5b506102e4610b84565b3480156104a857600080fd5b506102e46104b7366004611960565b610ba0565b3480156104c857600080fd5b506102fc60105481565b3480156104de57600080fd5b50600c546102559060ff1681565b3480156104f857600080fd5b506102ac610507366004611901565b610bbb565b34801561051857600080fd5b5061027f610bc6565b34801561052d57600080fd5b506102fc61053c366004611a11565b610c54565b34801561054d57600080fd5b506102e4610ca3565b34801561056257600080fd5b506008546001600160a01b03166102ac565b34801561058057600080fd5b506102e461058f366004611901565b610cb7565b3480156105a057600080fd5b506102e46105af366004611b23565b610cc4565b3480156105c057600080fd5b5061027f610cd8565b6102e46105d7366004611901565b610ce7565b3480156105e857600080fd5b506102e46105f7366004611b83565b6110c0565b34801561060857600080fd5b506102e4610617366004611bbf565b611155565b34801561062857600080fd5b5061027f61119f565b34801561063d57600080fd5b506102e461064c366004611901565b6111ac565b34801561065d57600080fd5b5061027f61066c366004611901565b6111b9565b34801561067d57600080fd5b506102e461068c366004611901565b611240565b34801561069d57600080fd5b506102556106ac366004611c3b565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b3480156106e657600080fd5b506102e46106f5366004611a11565b61124d565b34801561070657600080fd5b506102fc600f5481565b34801561071c57600080fd5b506102fc61072b366004611a11565b60126020526000908152604090205481565b60006001600160e01b0319821663152a902d60e11b14806107625750610762826112c6565b92915050565b60606002805461077790611c6e565b80601f01602080910402602001604051908101604052809291908181526020018280546107a390611c6e565b80156107f05780601f106107c5576101008083540402835291602001916107f0565b820191906000526020600020905b8154815290600101906020018083116107d357829003601f168201915b5050505050905090565b600061080582611314565b610822576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b600061084982610bbb565b9050336001600160a01b038216146108825761086581336106ac565b610882576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6108e6611349565b600c805461ff001981166101009182900460ff1615909102179055565b600061090e826113a3565b9050836001600160a01b0316816001600160a01b0316146109415760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b0388169091141761098e5761097186336106ac565b61098e57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b0385166109b557604051633a954ecd60e21b815260040160405180910390fd5b80156109c057600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003610a5257600184016000818152600460205260408120549003610a50576000548114610a505760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b610aa3611349565b600d55565b610ab0611349565b60005b81811015610b2557600160116000858585818110610ad357610ad3611ca8565b9050602002016020810190610ae89190611a11565b6001600160a01b031681526020810191909152604001600020805460ff191660ff9290921691909117905580610b1d81611cd4565b915050610ab3565b505050565b600080610b3f6008546001600160a01b031690565b612710600e5485610b509190611ced565b610b5a9190611d22565b915091509250929050565b610b6d611349565b8051610b8090600b906020840190611756565b5050565b610b8c611349565b600c805460ff19811660ff90911615179055565b610b2583838360405180602001604052806000815250611155565b6000610762826113a3565b600a8054610bd390611c6e565b80601f0160208091040260200160405190810160405280929190818152602001828054610bff90611c6e565b8015610c4c5780601f10610c2157610100808354040283529160200191610c4c565b820191906000526020600020905b815481529060010190602001808311610c2f57829003601f168201915b505050505081565b60006001600160a01b038216610c7d576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b610cab611349565b610cb56000611419565b565b610cbf611349565b600e55565b610ccc611349565b610b25600a83836117da565b60606003805461077790611c6e565b600260095403610d3e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260095560015460005460de9183910360001901610d5d9190611d36565b1115610da45760405162461bcd60e51b8152602060048201526016602482015275416d6f756e74206578636565647320737570706c792160501b6044820152606401610d35565b6008546001600160a01b03163314610fc957600c54610100900460ff1615610e69573360009081526011602052604090205460ff16600114610e695760405162461bcd60e51b815260206004820152605260248201527f596f75206172656e2774206f6e20416c6c6f77204c69737421204f6e6c79206660448201527f6f72206f776e657273206f6620536d6f6c20536172616d74756c6120417065736064820152711030b7321029b6b7b6102a30b635b2b9399760711b608482015260a401610d35565b600f548111158015610e97575060105433600090815260126020526040902054610e94908390611d36565b11155b610f2f5760405162461bcd60e51b815260206004820152605760248201527f596f752063616e2774206d696e742074686174206d616e7921204f6e6c79203160448201527f2046726565204d696e7421205761697420756e74696c205765646e657364617960648201527f2c204a756c7920323620746f206d696e74206d6f726521000000000000000000608482015260a401610d35565b600c5460ff1615610f775760405162461bcd60e51b81526020600482015260126024820152714d696e74696e67206973207061757365642160701b6044820152606401610d35565b80600d54610f859190611ced565b3414610fc95760405162461bcd60e51b8152602060048201526013602482015272496e73756666696369656e742066756e64732160681b6044820152606401610d35565b6000610fdd6008546001600160a01b031690565b6001600160a01b03163460405160006040518083038185875af1925050503d8060008114611027576040519150601f19603f3d011682016040523d82523d6000602084013e61102c565b606091505b50509050806110885760405162461bcd60e51b815260206004820152602260248201527f4661696c656420746f207472616e736665722066756e647320746f206f776e65604482015261722160f01b6064820152608401610d35565b33600090815260126020526040812080548492906110a7908490611d36565b909155506110b79050338361146b565b50506001600955565b336001600160a01b038316036110e95760405163b06307db60e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b611160848484610903565b6001600160a01b0383163b156111995761117c84848484611569565b611199576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b600b8054610bd390611c6e565b6111b4611349565b600f55565b60606111c482611314565b6111e157604051630a14c4b560e41b815260040160405180910390fd5b600a80546111ee90611c6e565b905060000361120c5760405180602001604052806000815250610762565b600a61121783611655565b600b60405160200161122b93929190611de7565b60405160208183030381529060405292915050565b611248611349565b601055565b611255611349565b6001600160a01b0381166112ba5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d35565b6112c381611419565b50565b60006301ffc9a760e01b6001600160e01b0319831614806112f757506380ac58cd60e01b6001600160e01b03198316145b806107625750506001600160e01b031916635b5e139f60e01b1490565b600081600111158015611328575060005482105b8015610762575050600090815260046020526040902054600160e01b161590565b6008546001600160a01b03163314610cb55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d35565b60008180600111611400576000548110156114005760008181526004602052604081205490600160e01b821690036113fe575b806000036113f75750600019016000818152600460205260409020546113d6565b9392505050565b505b604051636f96cda160e11b815260040160405180910390fd5b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008054908290036114905760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461153f57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101611507565b508160000361156057604051622e076360e81b815260040160405180910390fd5b60005550505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061159e903390899088908890600401611e1a565b6020604051808303816000875af19250505080156115d9575060408051601f3d908101601f191682019092526115d691810190611e57565b60015b611637573d808015611607576040519150601f19603f3d011682016040523d82523d6000602084013e61160c565b606091505b50805160000361162f576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60608160000361167c5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156116a6578061169081611cd4565b915061169f9050600a83611d22565b9150611680565b60008167ffffffffffffffff8111156116c1576116c1611a4e565b6040519080825280601f01601f1916602001820160405280156116eb576020820181803683370190505b5090505b841561164d57611700600183611e74565b915061170d600a86611e8b565b611718906030611d36565b60f81b81838151811061172d5761172d611ca8565b60200101906001600160f81b031916908160001a90535061174f600a86611d22565b94506116ef565b82805461176290611c6e565b90600052602060002090601f01602090048101928261178457600085556117ca565b82601f1061179d57805160ff19168380011785556117ca565b828001600101855582156117ca579182015b828111156117ca5782518255916020019190600101906117af565b506117d692915061184e565b5090565b8280546117e690611c6e565b90600052602060002090601f01602090048101928261180857600085556117ca565b82601f106118215782800160ff198235161785556117ca565b828001600101855582156117ca579182015b828111156117ca578235825591602001919060010190611833565b5b808211156117d6576000815560010161184f565b6001600160e01b0319811681146112c357600080fd5b60006020828403121561188b57600080fd5b81356113f781611863565b60005b838110156118b1578181015183820152602001611899565b838111156111995750506000910152565b600081518084526118da816020860160208601611896565b601f01601f19169290920160200192915050565b6020815260006113f760208301846118c2565b60006020828403121561191357600080fd5b5035919050565b80356001600160a01b038116811461193157600080fd5b919050565b6000806040838503121561194957600080fd5b6119528361191a565b946020939093013593505050565b60008060006060848603121561197557600080fd5b61197e8461191a565b925061198c6020850161191a565b9150604084013590509250925092565b600080602083850312156119af57600080fd5b823567ffffffffffffffff808211156119c757600080fd5b818501915085601f8301126119db57600080fd5b8135818111156119ea57600080fd5b8660208260051b85010111156119ff57600080fd5b60209290920196919550909350505050565b600060208284031215611a2357600080fd5b6113f78261191a565b60008060408385031215611a3f57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611a7f57611a7f611a4e565b604051601f8501601f19908116603f01168101908282118183101715611aa757611aa7611a4e565b81604052809350858152868686011115611ac057600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611aec57600080fd5b813567ffffffffffffffff811115611b0357600080fd5b8201601f81018413611b1457600080fd5b61164d84823560208401611a64565b60008060208385031215611b3657600080fd5b823567ffffffffffffffff80821115611b4e57600080fd5b818501915085601f830112611b6257600080fd5b813581811115611b7157600080fd5b8660208285010111156119ff57600080fd5b60008060408385031215611b9657600080fd5b611b9f8361191a565b915060208301358015158114611bb457600080fd5b809150509250929050565b60008060008060808587031215611bd557600080fd5b611bde8561191a565b9350611bec6020860161191a565b925060408501359150606085013567ffffffffffffffff811115611c0f57600080fd5b8501601f81018713611c2057600080fd5b611c2f87823560208401611a64565b91505092959194509250565b60008060408385031215611c4e57600080fd5b611c578361191a565b9150611c656020840161191a565b90509250929050565b600181811c90821680611c8257607f821691505b602082108103611ca257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611ce657611ce6611cbe565b5060010190565b6000816000190483118215151615611d0757611d07611cbe565b500290565b634e487b7160e01b600052601260045260246000fd5b600082611d3157611d31611d0c565b500490565b60008219821115611d4957611d49611cbe565b500190565b8054600090600181811c9080831680611d6857607f831692505b60208084108203611d8957634e487b7160e01b600052602260045260246000fd5b818015611d9d5760018114611dae57611ddb565b60ff19861689528489019650611ddb565b60008881526020902060005b86811015611dd35781548b820152908501908301611dba565b505084890196505b50505050505092915050565b6000611df38286611d4e565b8451611e03818360208901611896565b611e0f81830186611d4e565b979650505050505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611e4d908301846118c2565b9695505050505050565b600060208284031215611e6957600080fd5b81516113f781611863565b600082821015611e8657611e86611cbe565b500390565b600082611e9a57611e9a611d0c565b50069056fea26469706673582212202ab752ed66800ca44d8e224b6d781413d1f40bf37e895bc3b16126e3b93521fc64736f6c634300080d0033697066733a2f2f626166796265696861723668687370693564686c693271677772797269336975653663746435336974746a3771326b343570366d6b7637787579712fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef