[ { "inputs": [ { "internalType": "contract IERC20", "name": "steakToken_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "userAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "usageAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Allocate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "userAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "usageAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ApproveUsage", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "userAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "xSteakAmount", "type": "uint256" } ], "name": "CancelRedeem", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Convert", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "userAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "usageAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "fee", "type": "uint256" } ], "name": "Deallocate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "userAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "xSteakAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "steakAmount", "type": "uint256" } ], "name": "FinalizeRedeem", "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": "userAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "xSteakAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "steakAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "Redeem", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "allowList", "type": "address" } ], "name": "SetAllowList", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "add", "type": "bool" } ], "name": "SetTransferWhitelist", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "recipient", "type": "address" } ], "name": "TransferExcess", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "usageAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "fee", "type": "uint256" } ], "name": "UpdateDeallocationFee", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousDividendsAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newDividendsAddress", "type": "address" } ], "name": "UpdateDividendsAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "userAddress", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "redeemIndex", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "previousDividendsAddress", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newDividendsAddress", "type": "address" } ], "name": "UpdateRedeemDividendsAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "minRedeemRatio", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "maxRedeemRatio", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "minRedeemDuration", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "maxRedeemDuration", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "redeemDividendsAdjustment", "type": "uint256" } ], "name": "UpdateRedeemSettings", "type": "event" }, { "inputs": [], "name": "MAX_DEALLOCATION_FEE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_FIXED_RATIO", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "XSteakBalances", "outputs": [ { "internalType": "uint256", "name": "allocatedAmount", "type": "uint256" }, { "internalType": "uint256", "name": "redeemingAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "usageAddress", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "usageData", "type": "bytes" } ], "name": "allocate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "userAddress", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "allocateFromUsage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "allowListAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IXSteakTokenUsage", "name": "usage", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approveUsage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "redeemIndex", "type": "uint256" } ], "name": "cancelRedeem", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "convert", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "convertTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "usageAddress", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "usageData", "type": "bytes" } ], "name": "deallocate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "userAddress", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "deallocateFromUsage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "dividendsAddress", "outputs": [ { "internalType": "contract IXSteakTokenUsage", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "redeemIndex", "type": "uint256" } ], "name": "finalizeRedeem", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "getSteakByVestingDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "userAddress", "type": "address" }, { "internalType": "address", "name": "usageAddress", "type": "address" } ], "name": "getUsageAllocation", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "userAddress", "type": "address" }, { "internalType": "address", "name": "usageAddress", "type": "address" } ], "name": "getUsageApproval", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "userAddress", "type": "address" }, { "internalType": "uint256", "name": "redeemIndex", "type": "uint256" } ], "name": "getUserRedeem", "outputs": [ { "internalType": "uint256", "name": "steakAmount", "type": "uint256" }, { "internalType": "uint256", "name": "xSteakAmount", "type": "uint256" }, { "internalType": "uint256", "name": "endTime", "type": "uint256" }, { "internalType": "address", "name": "dividendsContract", "type": "address" }, { "internalType": "uint256", "name": "dividendsAllocation", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "userAddress", "type": "address" } ], "name": "getUserRedeemsLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "userAddress", "type": "address" } ], "name": "getXSteakBalance", "outputs": [ { "internalType": "uint256", "name": "allocatedAmount", "type": "uint256" }, { "internalType": "uint256", "name": "redeemingAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" } ], "name": "inCaseTokensGetStuck", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isTransferWhitelisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxRedeemDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxRedeemRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minRedeemDuration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minRedeemRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "xSteakAmount", "type": "uint256" }, { "internalType": "uint256", "name": "duration", "type": "uint256" } ], "name": "redeem", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "redeemDividendsAdjustment", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" } ], "name": "removeExcessSteak", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "steakToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "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": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "transferWhitelist", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "transferWhitelistLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_allowListAddress", "type": "address" } ], "name": "updateAllowListAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "usageAddress", "type": "address" }, { "internalType": "uint256", "name": "fee", "type": "uint256" } ], "name": "updateDeallocationFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IXSteakTokenUsage", "name": "dividendsAddress_", "type": "address" } ], "name": "updateDividendsAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "redeemIndex", "type": "uint256" } ], "name": "updateRedeemDividendsAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "minRedeemRatio_", "type": "uint256" }, { "internalType": "uint256", "name": "maxRedeemRatio_", "type": "uint256" }, { "internalType": "uint256", "name": "minRedeemDuration_", "type": "uint256" }, { "internalType": "uint256", "name": "maxRedeemDuration_", "type": "uint256" }, { "internalType": "uint256", "name": "redeemDividendsAdjustment_", "type": "uint256" } ], "name": "updateRedeemSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "add", "type": "bool" } ], "name": "updateTransferWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "usageAllocations", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "usageApprovals", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "usagesDeallocationFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "userRedeems", "outputs": [ { "internalType": "uint256", "name": "steakAmount", "type": "uint256" }, { "internalType": "uint256", "name": "xSteakAmount", "type": "uint256" }, { "internalType": "uint256", "name": "endTime", "type": "uint256" }, { "internalType": "contract IXSteakTokenUsage", "name": "dividendsAddress", "type": "address" }, { "internalType": "uint256", "name": "dividendsAllocation", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60a06040526032600e556064600f556213c6806010556276a70060115560326012553480156200002e57600080fd5b50604051620037ab380380620037ab8339810160408190526200005191620001d8565b6040518060400160405280601481526020017f535445414b20657363726f77656420746f6b656e0000000000000000000000008152506040518060400160405280600681526020016578535445414b60d01b815250620000c0620000ba6200011260201b60201c565b62000116565b600180556005620000d28382620002af565b506006620000e18282620002af565b5050506001600160a01b0381166080526200010a60083062000166602090811b62001d0c17901c565b50506200037b565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006200017d836001600160a01b03841662000186565b90505b92915050565b6000818152600183016020526040812054620001cf5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000180565b50600062000180565b600060208284031215620001eb57600080fd5b81516001600160a01b03811681146200020357600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200023557607f821691505b6020821081036200025657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002aa57600081815260208120601f850160051c81016020861015620002855750805b601f850160051c820191505b81811015620002a65782815560010162000291565b5050505b505050565b81516001600160401b03811115620002cb57620002cb6200020a565b620002e381620002dc845462000220565b846200025c565b602080601f8311600181146200031b5760008415620003025750858301515b600019600386901b1c1916600185901b178555620002a6565b600085815260208120601f198616915b828110156200034c578886015182559484019460019091019084016200032b565b50858210156200036b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6080516133f8620003b36000396000818161088901528181610b2d01528181610c1901528181612776015261284601526133f86000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c80634f62b7ec116101d3578063a3908e1b11610104578063cc6c5423116100a2578063e3a2950b1161007c578063e3a2950b1461085f578063e9ed87f814610868578063f2fde38b14610871578063fdba1c451461088457600080fd5b8063cc6c542314610826578063dd62ed3e14610839578063def68a9c1461084c57600080fd5b8063aff6cbf1116100de578063aff6cbf1146107ce578063b90c2b52146107e1578063c360ed1c1461080a578063c4b107661461081d57600080fd5b8063a3908e1b14610795578063a457c2d7146107a8578063a9059cbb146107bb57600080fd5b80637cbc2373116101715780638da5cb5b1161014b5780638da5cb5b146107565780638ea15c2a1461076757806395d89b411461077a578063a0bdc7cb1461078257600080fd5b80637cbc23731461071057806389083654146107235780638975f9181461073657600080fd5b80635a1d34dc116101ad5780635a1d34dc146106c4578063619ac95b146106d757806370a08231146106df578063715018a61461070857600080fd5b80634f62b7ec1461065a578063539ffb771461069e578063549230c9146106b157600080fd5b806323b872dd116102ad578063395093511161024b578063497965ee11610225578063497965ee146106005780634a5b406e1461062b5780634a977826146106345780634b359d381461064757600080fd5b806339509351146105af5780633b90f9a0146105c2578063488c8303146105d557600080fd5b80632e9a76e4116102875780632e9a76e41461054157806331124ce31461057a578063313ce5671461058d5780633735edfe1461059c57600080fd5b806323b872dd146104ca5780632b489679146104dd5780632cc2f5ce1461051657600080fd5b80630f7d3a691161031a57806318160ddd116102f457806318160ddd146104935780631c3526791461049b5780631c75e369146104a45780631eee7e60146104b757600080fd5b80630f7d3a6914610447578063161aab431461045a57806317b0a3de1461046257600080fd5b8063073888751161035657806307388875146103c2578063093220b7146103fe578063095ea7b3146104115780630ba5923e1461043457600080fd5b806302f91e551461037d57806306045a211461039857806306fdde03146103ad575b600080fd5b61038560c881565b6040519081526020015b60405180910390f35b6103ab6103a6366004612f04565b6108ab565b005b6103b5610930565b60405161038f9190612f71565b6103e96103d0366004612f04565b6013602052600090815260409020805460019091015482565b6040805192835260208301919091520161038f565b6103ab61040c366004612f84565b6109c2565b61042461041f366004612fbf565b610af3565b604051901515815260200161038f565b6103ab610442366004612f04565b610b0d565b6103ab610455366004612fbf565b610c87565b610385610d39565b6103e9610470366004612f04565b6001600160a01b0316600090815260136020526040902080546001909101549091565b600454610385565b610385600e5481565b6103ab6104b2366004612feb565b610d4a565b6104246104c5366004612f04565b610dd0565b6104246104d8366004613074565b610ddd565b6103856104eb3660046130b5565b6001600160a01b039182166000908152600b6020908152604080832093909416825291909152205490565b6103856105243660046130b5565b600c60209081526000928352604080842090915290825290205481565b61038561054f3660046130b5565b6001600160a01b039182166000908152600c6020908152604080832093909416825291909152205490565b6103ab6105883660046130ee565b610e01565b6040516012815260200161038f565b6103856105aa366004613107565b611024565b6104246105bd366004612fbf565b6110d8565b6103ab6105d0366004612fbf565b6110fa565b6103856105e33660046130b5565b600b60209081526000928352604080842090915290825290205481565b600754610613906001600160a01b031681565b6040516001600160a01b03909116815260200161038f565b61038560125481565b6103ab610642366004612f04565b61111a565b6106136106553660046130ee565b6111d8565b61066d610668366004612fbf565b6111e5565b604080519586526020860194909452928401919091526001600160a01b03166060830152608082015260a00161038f565b6103ab6106ac3660046130ee565b61123c565b6103ab6106bf366004612feb565b6113b8565b6103ab6106d2366004613129565b6113fd565b610385606481565b6103856106ed366004612f04565b6001600160a01b031660009081526002602052604090205490565b6103ab611456565b6103ab61071e366004613107565b61146a565b6103ab61073136600461315c565b6116fe565b610385610744366004612f04565b600d6020526000908152604090205481565b6000546001600160a01b0316610613565b600a54610613906001600160a01b031681565b6103b56117ef565b6103ab610790366004612fbf565b6117fe565b6103ab6107a33660046130ee565b611811565b6104246107b6366004612fbf565b61182c565b6104246107c9366004612fbf565b6118a7565b6103ab6107dc3660046130ee565b6118b5565b6103856107ef366004612f04565b6001600160a01b031660009081526014602052604090205490565b6103ab610818366004612fbf565b611a5b565b61038560105481565b61066d610834366004612fbf565b611b2f565b6103856108473660046130b5565b611be2565b6103ab61085a366004612f04565b611c0d565b610385600f5481565b61038560115481565b6103ab61087f366004612f04565b611c96565b6106137f000000000000000000000000000000000000000000000000000000000000000081565b6108b3611d28565b6001600160a01b0381166108c75760006012555b600754604080516001600160a01b03928316815291831660208301527f044c75b8fa43ce72364b4c23fdb8451beafbda46505bf44c76f0853a01ed4ade910160405180910390a1600780546001600160a01b0319166001600160a01b0392909216919091179055565b60606005805461093f9061318a565b80601f016020809104026020016040519081016040528092919081815260200182805461096b9061318a565b80156109b85780601f1061098d576101008083540402835291602001916109b8565b820191906000526020600020905b81548152906001019060200180831161099b57829003601f168201915b5050505050905090565b6109ca611d28565b838511156109f35760405162461bcd60e51b81526004016109ea906131c4565b60405180910390fd5b818310610a565760405162461bcd60e51b815260206004820152602b60248201527f75706461746552656465656d53657474696e67733a2077726f6e67206475726160448201526a74696f6e2076616c75657360a81b60648201526084016109ea565b60648411158015610a68575060648111155b610a845760405162461bcd60e51b81526004016109ea906131c4565b600e859055600f849055601083905560118290556012819055604080518681526020810186905290810184905260608101839052608081018290527f5b37d10782e41a6539b50d59366d4112a880236e4187e85b6d1514d20e07d9b89060a00160405180910390a15050505050565b600033610b01818585611d82565b60019150505b92915050565b610b15611d28565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba0919061320c565b90506000610bad60045490565b9050808211610bfe5760405162461bcd60e51b815260206004820152601760248201527f78535445414b3a206e6f2065786365737320535445414b00000000000000000060448201526064016109ea565b6000610c0a828461323b565b9050610c406001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168583611ea6565b604080518281526001600160a01b03861660208201527fe1340a8492243084101c7ee480b1a336f24d28033fbf2b1ba171924ba01f0a2f910160405180910390a150505050565b610c8f611d28565b60c8811115610ce05760405162461bcd60e51b815260206004820152601f60248201527f7570646174654465616c6c6f636174696f6e4665653a20746f6f20686967680060448201526064016109ea565b6001600160a01b0382166000818152600d602052604090819020839055517f6ff024152fc2cd8071bc701f966036513eb03e243863f21d8218646faac0eaef90610d2d9084815260200190565b60405180910390a25050565b6000610d456008611f0e565b905090565b610d52611f18565b610d5d338585611f71565b604051631c75e36960e01b81526001600160a01b03851690631c75e36990610d8f90339087908790879060040161324e565b600060405180830381600087803b158015610da957600080fd5b505af1158015610dbd573d6000803e3d6000fd5b50505050610dca60018055565b50505050565b6000610b07600883612125565b600033610deb858285612147565b610df68585856121bb565b506001949350505050565b610e09611f18565b3360008181526014602052604090205482908110610e395760405162461bcd60e51b81526004016109ea90613296565b336000908152601460205260408120805485908110610e5a57610e5a6132e1565b6000918252602090912060059091020160038101546007549192506001600160a01b03908116911614801590610e9a57506007546001600160a01b031615155b1561101557600481015415610f9a57600381015460048201546040805160008152602081019182905263549230c960e01b9091526001600160a01b039092169163549230c991610ef091339190602481016132f7565b600060405180830381600087803b158015610f0a57600080fd5b505af1158015610f1e573d6000803e3d6000fd5b5050600754600484015460408051600081526020810191829052631c75e36960e01b9091526001600160a01b039092169350631c75e3699250610f6791339190602481016132f7565b600060405180830381600087803b158015610f8157600080fd5b505af1158015610f95573d6000803e3d6000fd5b505050505b6003810154600754604080518781526001600160a01b039384166020820152929091169082015233907fa60c8f9118be22c9277a8129333d64ffda3de44ca7a5831d077a3127f1237a189060600160405180910390a26007546003820180546001600160a01b0319166001600160a01b039092169190911790555b50505061102160018055565b50565b600060105482101561103857506000610b07565b60115482111561106957611062606461105c600f548661237190919063ffffffff16565b9061237d565b9050610b07565b60006110bf6110b661108860105460115461238990919063ffffffff16565b61105c6110a2600e54600f5461238990919063ffffffff16565b6010546110b0908990612389565b90612371565b600e5490612395565b90506110d0606461105c8684612371565b949350505050565b600033610b018185856110eb8383611be2565b6110f59190613327565b611d82565b611102611f18565b61110d823383611f71565b61111660018055565b5050565b611122611d28565b6001600160a01b0381166111845760405162461bcd60e51b8152602060048201526024808201527f757064617465416c6c6f774c697374416464726573733a206e6f2030206164646044820152637265737360e01b60648201526084016109ea565b600a80546001600160a01b0319166001600160a01b0383169081179091556040519081527f8ecdaab4c863dd4142ed97df898c3419b0ab395e3541101340983f9d0c62bf169060200160405180910390a150565b6000610b076008836123a1565b6014602052816000526040600020818154811061120157600080fd5b600091825260209091206005909102018054600182015460028301546003840154600490940154929550909350916001600160a01b03169085565b611244611f18565b33600081815260146020526040902054829081106112745760405162461bcd60e51b81526004016109ea90613296565b336000908152601360209081526040808320601490925282208054919291869081106112a2576112a26132e1565b906000526020600020906005020190506112cd8160010154836001015461238990919063ffffffff16565b82600101819055506112e4303383600101546121bb565b60048101541561136857600381015460048201546040805160008152602081019182905263549230c960e01b9091526001600160a01b039092169163549230c99161133591339190602481016132f7565b600060405180830381600087803b15801561134f57600080fd5b505af1158015611363573d6000803e3d6000fd5b505050505b600181015460405190815233907f56d7520e387607a8daa892e3fed116badc2a636307bdc794b1c1aed97ae203f49060200160405180910390a26113ab856123ad565b5050505061102160018055565b6113c0611f18565b6113cb3385856124d7565b60405163549230c960e01b81526001600160a01b0385169063549230c990610d8f90339087908790879060040161324e565b611405611f18565b333b61144c5760405162461bcd60e51b815260206004820152601660248201527518dbdb9d995c9d151bce881b9bdd08185b1b1bddd95960521b60448201526064016109ea565b61110d8282612719565b61145e611d28565b61146860006127e9565b565b611472611f18565b600082116114ce5760405162461bcd60e51b815260206004820152602360248201527f72656465656d3a2078537465616b416d6f756e742063616e6e6f74206265206e6044820152621d5b1b60ea1b60648201526084016109ea565b6010548110156115205760405162461bcd60e51b815260206004820152601860248201527f72656465656d3a206475726174696f6e20746f6f206c6f77000000000000000060448201526064016109ea565b61152b3330846121bb565b336000908152601360205260408120906115458484611024565b604080518681526020810183905290810185905290915033907fbd5034ffbd47e4e72a94baa2cdb74c6fad73cb3bcdc13036b72ec8306f5a76469060600160405180910390a282156116e85760018201546115a09085612395565b60018301556012546000906115bd9060649061105c908890612371565b905080156116395760075460408051600081526020810191829052631c75e36960e01b9091526001600160a01b0390911690631c75e369906116069033908590602481016132f7565b600060405180830381600087803b15801561162057600080fd5b505af1158015611634573d6000803e3d6000fd5b505050505b33600090815260146020908152604091829020825160a08101845285815291820188905291810161166a4288612395565b81526007546001600160a01b0390811660208084019190915260409283019590955283546001808201865560009586529486902084516005909202019081559483015193850193909355810151600284015560608101516003840180546001600160a01b0319169190931617909155608001516004909101556116f3565b6116f3338583612839565b505061111660018055565b611706611d28565b306001600160a01b038316036117845760405162461bcd60e51b815260206004820152603c60248201527f7570646174655472616e7366657257686974656c6973743a2043616e6e6f742060448201527f72656d6f76652078537465616b2066726f6d2077686974656c6973740000000060648201526084016109ea565b801561179b57611795600883611d0c565b506117a8565b6117a66008836128c0565b505b604080516001600160a01b038416815282151560208201527f3a34209cb941a5d23a56dea730a13738454bc7daefd4bb32e8d7df58c1bd920d910160405180910390a15050565b60606006805461093f9061318a565b611806611f18565b61110d8233836124d7565b611819611f18565b6118238133612719565b61102160018055565b6000338161183a8286611be2565b90508381101561189a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109ea565b610df68286868403611d82565b600033610b018185856121bb565b6118bd611f18565b33600081815260146020526040902054829081106118ed5760405162461bcd60e51b81526004016109ea90613296565b3360009081526013602090815260408083206014909252822080549192918690811061191b5761191b6132e1565b9060005260206000209060050201905080600201546119374290565b10156119a05760405162461bcd60e51b815260206004820152603260248201527f66696e616c697a6552656465656d3a2076657374696e67206475726174696f6e604482015271081a185cc81b9bdd08195b991959081e595d60721b60648201526084016109ea565b600180820154908301546119b391612389565b82600101819055506119ce3382600101548360000154612839565b600481015415611a5257600381015460048201546040805160008152602081019182905263549230c960e01b9091526001600160a01b039092169163549230c991611a1f91339190602481016132f7565b600060405180830381600087803b158015611a3957600080fd5b505af1158015611a4d573d6000803e3d6000fd5b505050505b6113ab856123ad565b611a63611f18565b6001600160a01b038216611acb5760405162461bcd60e51b815260206004820152602960248201527f617070726f766555736167653a20617070726f766520746f20746865207a65726044820152686f206164647265737360b81b60648201526084016109ea565b336000818152600b602090815260408083206001600160a01b03871680855290835292819020859055518481529192917fe75ec259c38e4601f24580968665ec00b21cca4f996689b260ec598aec5c08db910160405180910390a361111660018055565b6001600160a01b0382166000908152601460205260408120548190819081908190879087908110611b725760405162461bcd60e51b81526004016109ea90613296565b6001600160a01b038916600090815260146020526040812080548a908110611b9c57611b9c6132e1565b600091825260209091206005909102018054600182015460028301546003840154600490940154929e919d509b506001600160a01b039092169950975095505050505050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b611c15611d28565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015611c5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c80919061320c565b90506111166001600160a01b0383163383611ea6565b611c9e611d28565b6001600160a01b038116611d035760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109ea565b611021816127e9565b6000611d21836001600160a01b0384166128d5565b9392505050565b6000546001600160a01b031633146114685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109ea565b6001600160a01b038316611de45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109ea565b6001600160a01b038216611e455760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109ea565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6040516001600160a01b038316602482015260448101829052611f0990849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612924565b505050565b6000610b07825490565b600260015403611f6a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109ea565b6002600155565b60008111611fc15760405162461bcd60e51b815260206004820152601f60248201527f616c6c6f636174653a20616d6f756e742063616e6e6f74206265206e756c6c0060448201526064016109ea565b6001600160a01b038084166000908152601360209081526040808320600b8352818420948716845293909152902054828110156120405760405162461bcd60e51b815260206004820152601f60248201527f616c6c6f636174653a206e6f6e20617574686f72697a656420616d6f756e740060448201526064016109ea565b61204a8184612389565b6001600160a01b038087166000818152600b60209081526040808320948a1680845294825280832095909555918152600c825283812092815291905220546120929084612395565b6001600160a01b038087166000908152600c602090815260408083209389168352929052205581546120c49084612395565b82556120d18530856121bb565b836001600160a01b0316856001600160a01b03167f5168bfb88d6125d4580e2b91ecb103a730312c3e8b0be9c4031a0fc794e2cd5f8560405161211691815260200190565b60405180910390a35050505050565b6001600160a01b03811660009081526001830160205260408120541515611d21565b60006121538484611be2565b90506000198114610dca57818110156121ae5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016109ea565b610dca8484848403611d82565b6001600160a01b03831661221f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109ea565b6001600160a01b0382166122815760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109ea565b61228c8383836129f9565b6001600160a01b038316600090815260026020526040902054818110156123045760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109ea565b6001600160a01b0380851660008181526002602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906123649086815260200190565b60405180910390a3610dca565b6000611d21828461333a565b6000611d218284613351565b6000611d21828461323b565b6000611d218284613327565b6000611d218383612a6a565b33600090815260146020526040902080546123ca9060019061323b565b815481106123da576123da6132e1565b906000526020600020906005020160146000336001600160a01b03166001600160a01b03168152602001908152602001600020828154811061241e5761241e6132e1565b600091825260208083208454600590930201918255600180850154908301556002808501549083015560038085015490830180546001600160a01b0319166001600160a01b03909216919091179055600493840154939091019290925533815260149091526040902080548061249657612496613373565b60008281526020812060056000199093019283020181815560018101829055600281018290556003810180546001600160a01b031916905560040155905550565b600081116125315760405162461bcd60e51b815260206004820152602160248201527f6465616c6c6f636174653a20616d6f756e742063616e6e6f74206265206e756c6044820152601b60fa1b60648201526084016109ea565b6001600160a01b038084166000908152600c6020908152604080832093861683529290522054818110156125b15760405162461bcd60e51b815260206004820152602160248201527f6465616c6c6f636174653a206e6f6e20617574686f72697a656420616d6f756e6044820152601d60fa1b60648201526084016109ea565b6125bb8183612389565b6001600160a01b038086166000908152600c60209081526040808320938816835292815282822093909355600d909252812054612601906127109061105c908690612371565b600a546040516305a3b80960e01b81523360048201529192506001600160a01b0316906305a3b80990602401602060405180830381865afa15801561264a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266e9190613389565b15612677575060005b6001600160a01b0385166000908152601360205260409020805461269b9085612389565b81556126b130876126ac8786612389565b6121bb565b6126bb3083612a94565b846001600160a01b0316866001600160a01b03167f7d613f7bd1a777aeeefdd38ae61201003086575188df50618d02482220f5c1478685604051612709929190918252602082015260400190565b60405180910390a3505050505050565b816000036127695760405162461bcd60e51b815260206004820152601e60248201527f636f6e766572743a20616d6f756e742063616e6e6f74206265206e756c6c000060448201526064016109ea565b61279e6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085612bd4565b6127a88183612c0c565b604080516001600160a01b03831681526020810184905233917fccfaeb3043a96a967dc036ab72e078a9632af809671bc2a1ac30a8043645f89e9101610d2d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61286d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168483611ea6565b6128773083612a94565b60408051838152602081018390526001600160a01b038516917f0da072ebd7a5649099f43a3776eb0cda17aca79426ee9f28aae203f5dfa04eda910160405180910390a2505050565b6000611d21836001600160a01b038416612cd9565b600081815260018301602052604081205461291c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b07565b506000610b07565b6000612979826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612dcc9092919063ffffffff16565b905080516000148061299a57508080602001905181019061299a9190613389565b611f095760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016109ea565b6001600160a01b0383161580612a155750612a15600884612125565b80612a265750612a26600883612125565b611f095760405162461bcd60e51b81526020600482015260156024820152741d1c985b9cd9995c8e881b9bdd08185b1b1bddd959605a1b60448201526064016109ea565b6000826000018281548110612a8157612a816132e1565b9060005260206000200154905092915050565b6001600160a01b038216612af45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016109ea565b612b00826000836129f9565b6001600160a01b03821660009081526002602052604090205481811015612b745760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016109ea565b6001600160a01b03831660008181526002602090815260408083208686039055600480548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610dca9085906323b872dd60e01b90608401611ed2565b6001600160a01b038216612c625760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016109ea565b612c6e600083836129f9565b8060046000828254612c809190613327565b90915550506001600160a01b0382166000818152600260209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60008181526001830160205260408120548015612dc2576000612cfd60018361323b565b8554909150600090612d119060019061323b565b9050818114612d76576000866000018281548110612d3157612d316132e1565b9060005260206000200154905080876000018481548110612d5457612d546132e1565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612d8757612d87613373565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b07565b6000915050610b07565b60606110d0848460008585600080866001600160a01b03168587604051612df391906133a6565b60006040518083038185875af1925050503d8060008114612e30576040519150601f19603f3d011682016040523d82523d6000602084013e612e35565b606091505b5091509150612e4687838387612e51565b979650505050505050565b60608315612ec0578251600003612eb9576001600160a01b0385163b612eb95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109ea565b50816110d0565b6110d08383815115612ed55781518083602001fd5b8060405162461bcd60e51b81526004016109ea9190612f71565b6001600160a01b038116811461102157600080fd5b600060208284031215612f1657600080fd5b8135611d2181612eef565b60005b83811015612f3c578181015183820152602001612f24565b50506000910152565b60008151808452612f5d816020860160208601612f21565b601f01601f19169290920160200192915050565b602081526000611d216020830184612f45565b600080600080600060a08688031215612f9c57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008060408385031215612fd257600080fd5b8235612fdd81612eef565b946020939093013593505050565b6000806000806060858703121561300157600080fd5b843561300c81612eef565b935060208501359250604085013567ffffffffffffffff8082111561303057600080fd5b818701915087601f83011261304457600080fd5b81358181111561305357600080fd5b88602082850101111561306557600080fd5b95989497505060200194505050565b60008060006060848603121561308957600080fd5b833561309481612eef565b925060208401356130a481612eef565b929592945050506040919091013590565b600080604083850312156130c857600080fd5b82356130d381612eef565b915060208301356130e381612eef565b809150509250929050565b60006020828403121561310057600080fd5b5035919050565b6000806040838503121561311a57600080fd5b50508035926020909101359150565b6000806040838503121561313c57600080fd5b8235915060208301356130e381612eef565b801515811461102157600080fd5b6000806040838503121561316f57600080fd5b823561317a81612eef565b915060208301356130e38161314e565b600181811c9082168061319e57607f821691505b6020821081036131be57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526028908201527f75706461746552656465656d53657474696e67733a2077726f6e6720726174696040820152676f2076616c75657360c01b606082015260800190565b60006020828403121561321e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b0757610b07613225565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b6020808252602b908201527f76616c696461746552656465656d3a2072656465656d20656e74727920646f6560408201526a1cc81b9bdd08195e1a5cdd60aa1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60018060a01b038416815282602082015260606040820152600061331e6060830184612f45565b95945050505050565b80820180821115610b0757610b07613225565b8082028115828204841417610b0757610b07613225565b60008261336e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561339b57600080fd5b8151611d218161314e565b600082516133b8818460208701612f21565b919091019291505056fea26469706673582212200997da160b88632f1f27ce62edc1117f26ce7a0eee3e36a65c6b780fbeea2bf064736f6c63430008110033000000000000000000000000b279f8dd152b99ec1d84a489d32c35bc0c7f5674