2024-08-28 15:44:11 +08:00

947 lines
49 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "Vester",
"sourceName": "contracts/staking/Vester.sol",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "uint256",
"name": "_vestingDuration",
"type": "uint256"
},
{
"internalType": "address",
"name": "_esToken",
"type": "address"
},
{
"internalType": "address",
"name": "_pairToken",
"type": "address"
},
{
"internalType": "address",
"name": "_claimableToken",
"type": "address"
},
{
"internalType": "address",
"name": "_rewardTracker",
"type": "address"
},
{
"internalType": "bool",
"name": "_needCheckStake",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"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": false,
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Claim",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Deposit",
"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": "PairTransfer",
"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": "address",
"name": "account",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "claimedAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "balance",
"type": "uint256"
}
],
"name": "Withdraw",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"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": "address",
"name": "account",
"type": "address"
}
],
"name": "balances",
"outputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "bonusRewards",
"outputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "claim",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_account",
"type": "address"
},
{
"internalType": "address",
"name": "_receiver",
"type": "address"
}
],
"name": "claimForAccount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_account",
"type": "address"
}
],
"name": "claimable",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "claimableToken",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "claimedAmounts",
"outputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "cumulativeClaimAmounts",
"outputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "cumulativeRewardDeductions",
"outputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_account",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "depositForAccount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "esToken",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_account",
"type": "address"
}
],
"name": "getCombinedAverageStakedAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_account",
"type": "address"
}
],
"name": "getMaxVestableAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_account",
"type": "address"
},
{
"internalType": "uint256",
"name": "_esAmount",
"type": "uint256"
}
],
"name": "getPairAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_account",
"type": "address"
}
],
"name": "getTotalVested",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_account",
"type": "address"
}
],
"name": "getVestedAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "gov",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "hasPairToken",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "hasRewardTracker",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "handler",
"type": "address"
}
],
"name": "isHandler",
"outputs": [
{
"internalType": "bool",
"name": "status",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "lastVestingTimes",
"outputs": [
{
"internalType": "uint256",
"name": "time",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "needCheckStake",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "pairAmounts",
"outputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pairSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pairToken",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "rewardTracker",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_account",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "setBonusRewards",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_account",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "setCumulativeRewardDeductions",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_gov",
"type": "address"
}
],
"name": "setGov",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_handler",
"type": "address"
},
{
"internalType": "bool",
"name": "_isActive",
"type": "bool"
}
],
"name": "setHandler",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_rewardTracker",
"type": "address"
}
],
"name": "setRewardTracker",
"outputs": [],
"stateMutability": "nonpayable",
"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": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "vestingDuration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "address",
"name": "_account",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdrawToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6080604052346200046c5762002062803803806200001d8162000471565b928339810190610100818303126200046c5780516001600160401b0381116200046c57826200004e91830162000497565b602082015190926001600160401b0382116200046c576200007191830162000497565b90604081015191620000866060830162000509565b90620000956080840162000509565b93620000a460a0850162000509565b9160e0620000b560c0870162000509565b9501519687151588036200046c576001600081905580546001600160a01b031916331790556004805460ff191660121790558051906001600160401b0382116200035d5760025490600182811c9216801562000461575b60208310146200033c5781601f849311620003fd575b50602090601f83116001146200037f5760009262000373575b50508160011b916000199060031b1c1916176002555b8051906001600160401b0382116200035d5760035490600182811c9216801562000352575b60208310146200033c5781601f849311620002ca575b50602090601f83116001146200023b576000926200022f575b50508160011b916000199060031b1c1916176003555b600555600680546001600160a01b03199081166001600160a01b039485161790915560078054821695841695909517909455600880548516918316919091179055600980549093169116179055600c805491151560ff1660ff1992909216919091179055604051611b2390816200051f8239f35b015190503880620001a5565b6003600090815293507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b91905b601f1984168510620002ae576001945083601f1981161062000294575b505050811b01600355620001bb565b015160001960f88460031b161c1916905538808062000285565b8181015183556020948501946001909301929091019062000268565b60036000529091507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c81016020851062000334575b90849392915b601f830160051c82018110620003245750506200018c565b600081558594506001016200030c565b508062000306565b634e487b7160e01b600052602260045260246000fd5b91607f169162000176565b634e487b7160e01b600052604160045260246000fd5b0151905038806200013b565b6002600090815293506000805160206200204283398151915291905b601f1984168510620003e1576001945083601f19811610620003c7575b505050811b0160025562000151565b015160001960f88460031b161c19169055388080620003b8565b818101518355602094850194600190930192909101906200039b565b600260005290915060008051602062002042833981519152601f840160051c8101916020851062000456575b90601f859493920160051c01905b81811062000446575062000122565b6000815584935060010162000437565b909150819062000429565b91607f16916200010c565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200035d57604052565b919080601f840112156200046c5782516001600160401b0381116200035d57602090620004cd601f8201601f1916830162000471565b928184528282870101116200046c5760005b818110620004f557508260009394955001015290565b8581018301518482018401528201620004df565b51906001600160a01b03821682036200046c5756fe6040608081526004908136101561001557600080fd5b600091823560e01c90816301e3366714610c9b57816306fdde0314610bdc57816308f26c7614610bb6578163095ea7b3146104505781630db9ea4a14610b7e57816312d43a5114610b5557816313e82e7a14610b145781631514617e14610af557816315e90a4114610ad657816316ca05c514610aad57816318160ddd14610a8e57816323b872dd14610a7757816327e235e314610677578163313ce56714610a56578163342fcda914610a21578163387a785d146109e95781633ccfd60b1461083d5781633de35b7914610814578163402914f5146107ee57816341f22724146107a657816345f01ee61461078057816346ea87af146107425781634e71d92d146107105781635d50e729146106d85781636bcb411a146106af57816370a082311461067757816371417b321461063f5781637cf8f3b21461061657816393035473146105f557816395d89b41146104ee5781639cb7de4b1461048d578163a2545fa514610455578163a9059cbb14610450578163ac110d141461042c578163b5ff136d146103f4578163b6b55f25146103c757508063cfad57a214610379578063d5a73fdd1461034d578063d75abb5714610323578063d89b7007146102dc578063dd62ed3e146102af578063f2293bb01461025c578063f421f62a146102325763f6d6d5aa1461020757600080fd5b3461022e578160031936011261022e5760085490516001600160a01b039091168152602090f35b5080fd5b503461022e578160031936011261022e5760095490516001600160a01b0390911615158152602090f35b82346102ac5760203660031901126102ac57610276610cd1565b6001546001600160a01b0391906102909083163314610dd7565b166bffffffffffffffffffffffff60a01b600954161760095580f35b80fd5b503461022e578060031936011261022e57906020916102cc610cd1565b506102d5610cec565b5051908152f35b503461022e578060031936011261022e576102f5610cd1565b6102fd610e1b565b610305611a9b565b6001600160a01b031682526012602052812060243590556001815580f35b503461022e578160031936011261022e5760075490516001600160a01b0390911615158152602090f35b503461022e57602036600319011261022e5760209061037261036d610cd1565b611308565b9051908152f35b82346102ac5760203660031901126102ac57610393610cd1565b600154906001600160a01b03906103ad3383851614610dd7565b16906bffffffffffffffffffffffff60a01b161760015580f35b83903461022e57602036600319011261022e576103ed906103e6610e1b565b35336114a4565b6001815580f35b50503461022e57602036600319011261022e5760209181906001600160a01b0361041c610cd1565b168152600f845220549051908152f35b50503461022e578160031936011261022e5760209060ff600c541690519015158152f35b610db8565b50503461022e57602036600319011261022e5760209181906001600160a01b0361047d610cd1565b1681526013845220549051908152f35b50503461022e578060031936011261022e576104a7610cd1565b90602435918215158093036104ea576001546001600160a01b0391906104d09083163314610dd7565b168352601460205282209060ff8019835416911617905580f35b8380fd5b919050346105f157826003193601126105f157805191836003549060019082821c9282811680156105e7575b60209586861082146105d457508488529081156105b25750600114610559575b610555868661054b828b0383610d37565b5191829182610d6f565b0390f35b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061059f57505050826105559461054b92820101943861053a565b8054868501880152928601928101610582565b60ff191687860152505050151560051b830101925061054b826105553861053a565b634e487b7160e01b845260229052602483fd5b93607f169361051a565b8280fd5b50503461022e57602036600319011261022e5760209061037261036d610cd1565b50503461022e578060031936011261022e57602090610372610636610cd1565b602435906112bb565b50503461022e57602036600319011261022e5760209181906001600160a01b03610667610cd1565b1681526010845220549051908152f35b50503461022e57602036600319011261022e5760209181906001600160a01b0361069f610cd1565b168152600d845220549051908152f35b50503461022e578160031936011261022e5760095490516001600160a01b039091168152602090f35b50503461022e57602036600319011261022e5760209181906001600160a01b03610700610cd1565b168152600e845220549051908152f35b50503461022e578160031936011261022e579060209161072e610e1b565b600161073a3333611a07565b925551908152f35b50503461022e57602036600319011261022e5760209160ff9082906001600160a01b0361076d610cd1565b1681526014855220541690519015158152f35b50503461022e57602036600319011261022e576020906103726107a1610cd1565b61119e565b50503461022e578060031936011261022e576107c0610cd1565b6107c8610e1b565b6107d0611a9b565b6001600160a01b031682526013602052812060243590556001815580f35b50503461022e57602036600319011261022e5760209061037261080f610cd1565b6119c9565b50503461022e578160031936011261022e5760075490516001600160a01b039091168152602090f35b9050346105f157826003193601126105f157610857610e1b565b6108613333611a07565b50338352602091600f835280842054600d845281852054926108838285611099565b156109a65750917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56893916060936108d08360018060a01b03806007541661090c575b339060065416610e71565b6108da833361141a565b338752600f84528682812055601084528682812055601184528682812055815193338552840152820152a16001815580f35b338a52600e87526109a1856109518c8281205492839161092d331515611377565b338152600e8d52610943838383205410156113ce565b338152600e8d5220546110bc565b338d52600e8a52878d205561096881600b546110bc565b600b558b87518281527f659523c479d006050ebc0d0e48fea36d1b2c5d45b2f31402ac6f8671fc84cc048b3392a3338360075416610e71565b6108c5565b825162461bcd60e51b8152908101859052601d60248201527f5665737465723a2076657374656420616d6f756e74206973207a65726f0000006044820152606490fd5b50503461022e57602036600319011261022e5760209181906001600160a01b03610a11610cd1565b1681526012845220549051908152f35b50503461022e573660031901126102ac576103ed610a3d610cd1565b610a45610e1b565b610a4d611a9b565b602435906114a4565b8284346102ac57806003193601126102ac575060ff60209254169051908152f35b83346102ac57610a8636610d02565b505050611332565b50503461022e578160031936011261022e57602090600a549051908152f35b50503461022e578160031936011261022e5760065490516001600160a01b039091168152602090f35b50503461022e578160031936011261022e57602090600b549051908152f35b50503461022e578160031936011261022e576020906005549051908152f35b50503461022e578060031936011261022e5790602091600161073a610b37610cd1565b610b3f610cec565b90610b48610e1b565b610b50611a9b565b611a07565b50503461022e578160031936011261022e5760015490516001600160a01b039091168152602090f35b50503461022e57602036600319011261022e5760209181906001600160a01b03610ba6610cd1565b1681526011845220549051908152f35b50503461022e57602036600319011261022e57602090610372610bd7610cd1565b6110c9565b919050346105f157826003193601126105f157805191836002549060019082821c928281168015610c91575b60209586861082146105d457508488529081156105b25750600114610c3857610555868661054b828b0383610d37565b929550600283527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b828410610c7e57505050826105559461054b92820101943861053a565b8054868501880152928601928101610c61565b93607f1693610c08565b83346102ac57610cce610cad36610d02565b60015490926001600160a01b0391610cc89083163314610dd7565b16610e71565b80f35b600435906001600160a01b0382168203610ce757565b600080fd5b602435906001600160a01b0382168203610ce757565b6060906003190112610ce7576001600160a01b03906004358281168103610ce757916024359081168103610ce7579060443590565b90601f8019910116810190811067ffffffffffffffff821117610d5957604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610da457505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610d82565b34610ce7576040366003190112610ce757610dd1610cd1565b50611332565b15610dde57565b60405162461bcd60e51b815260206004820152601560248201527423b7bb32b93730b136329d103337b93134b23232b760591b6044820152606490fd5b600260005414610e2c576002600055565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152610eb291610ead606483610d37565b610eb4565b565b60018060a01b0316906040516040810167ffffffffffffffff9082811082821117610d59576040526020938483527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858401526000808587829751910182855af1903d15610ff9573d928311610fe55790610f4f93929160405192610f4288601f19601f8401160185610d37565b83523d868885013e611004565b805191821591848315610fc1575b505050905015610f6a5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b91938180945001031261022e578201519081151582036102ac575080388084610f5d565b634e487b7160e01b85526041600452602485fd5b90610f4f9392506060915b919290156110665750815115611018575090565b3b156110215790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156110795750805190602001fd5b60405162461bcd60e51b81529081906110959060048301610d6f565b0390fd5b919082018092116110a657565b634e487b7160e01b600052601160045260246000fd5b919082039182116110a657565b6001600160a01b039081166000818152601360209081526040822054600954929490939192168061111b575b508352601290526040822054908181106111165761111392506110bc565b90565b505090565b92826024929460405193848092633792def360e01b82528860048301525afa91821561119357859261115e575b506012929161115691611099565b9290916110f5565b9091508281813d831161118c575b6111768183610d37565b81010312611188575190611156611148565b8480fd5b503d61116c565b6040513d87823e3d90fd5b6009546001600160a01b039081169190821561125357604051633792def360e01b81529116600482018190526020918281602481875afa9081156112475760009161125b575b501561125357819060246040518095819363a318021760e01b835260048301525afa9081156112475760009161121b575b50905090565b82813d8311611240575b61122f8183610d37565b810103126102ac5750518038611215565b503d611225565b6040513d6000823e3d90fd5b505050600090565b908382813d8311611281575b6112718183610d37565b810103126102ac575051386111e4565b503d611267565b818102929181159184041417156110a657565b81156112a5570490565b634e487b7160e01b600052601260045260246000fd5b6009549091906001600160a01b031615611301576112d88261119e565b918215611253576112e8906110c9565b90811561125357611113926112fc91611288565b61129b565b5050600090565b60018060a01b0316600052600d602052611113604060002054600f60205260406000205490611099565b60405162461bcd60e51b815260206004820152601960248201527f5665737465723a206e6f6e2d7472616e736665727261626c65000000000000006044820152606490fd5b1561137e57565b60405162461bcd60e51b815260206004820152602260248201527f5665737465723a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b156113d557565b60405162461bcd60e51b815260206004820152601d60248201527f5665737465723a2062616c616e6365206973206e6f7420656e6f7567680000006044820152606490fd5b6001600160a01b031661142e811515611377565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600093838552600d825261146b81604087205410156113ce565b838552600d82526114808160408720546110bc565b848652600d8352604086205561149881600a546110bc565b600a55604051908152a3565b9190801561179c576114b583611885565b60018060a01b03926114ce8285600654168330916117e1565b838116936114dd85151561183a565b6114e983600a54611099565b600a55600090858252602091600d83526040966115098689842054611099565b818352600d85528883205580827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868b518a8152a380828460075416806116e6575b50505060ff600c5416806116d9575b611606575b50505061156b826110c9565b61157483611308565b116115b7575092516001600160a01b0390931683526020830152907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c90604090a1565b60849085519062461bcd60e51b825260048201526024808201527f5665737465723a206d6178207665737461626c6520616d6f756e7420657863656044820152631959195960e21b6064820152fd5b838360095416936008541660448a5180968193637aeceb1f60e11b835286600484015260248301525afa9283156116cf5790829189939461169a575b508152600d84522054116116585738808061155f565b60649085519062461bcd60e51b825280600483015260248201527f5665737465723a20696e73756666696369656e74206365632062616c616e63656044820152fd5b8580929550819394503d83116116c8575b6116b58183610d37565b8101031261022e57908791519238611642565b503d6116ab565b88513d84823e3d90fd5b508260095416151561155a565b828252600e8752868b83205491600d82528c8a61170682872054826112bb565b91858311611719575b505050505061154b565b61175561174a7f659523c479d006050ebc0d0e48fea36d1b2c5d45b2f31402ac6f8671fc84cc049761177e956110bc565b8095819430916117e1565b61176088151561183a565b61176c82600b54611099565b600b55878752600e8552862054611099565b858552600e83528d8520558c51908152a38082388681808a8e61170f565b60405162461bcd60e51b815260206004820152601760248201527f5665737465723a20696e76616c6964205f616d6f756e740000000000000000006044820152606490fd5b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a081019181831067ffffffffffffffff841117610d5957610eb292604052610eb4565b1561184157565b606460405162461bcd60e51b815260206004820152602060248201527f5665737465723a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b61188e81611962565b6001600160a01b0380831660008181526011602052604080822042905590949093929190831561195a57836118c29161141a565b808552600f6020526118d78385872054611099565b908552600f602052838520556006541690813b156104ea578251632770a7eb60e21b81523060048201526024810191909152929081908490604490829084905af1801561194e5761192757505050565b67ffffffffffffffff831161193a575052565b634e487b7160e01b81526041600452602490fd5b509051903d90823e3d90fd5b505050505050565b6001600160a01b03811660008181526011602052604090205461198590426110bc565b90600052600d602052604060002054918215611253576119b9916119ab6119b092611308565b611288565b6005549061129b565b8181106119c4575090565b905090565b6111139060018060a01b038116600052600f602052611a016119fb6040600020546010602052604060002054906110bc565b91611962565b90611099565b611a7d917f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d491611a3681611885565b611a3f816119c9565b9384809360018060a01b03808516806000526010602052611a6584604060002054611099565b90600052601060205260406000205560085416610e71565b604080516001600160a01b039290921682526020820192909252a190565b33600052601460205260ff6040600020541615611ab457565b60405162461bcd60e51b81526020600482015260116024820152702b32b9ba32b91d103337b93134b23232b760791b6044820152606490fdfea26469706673582212204ec2e325de603c91d8517820fdaa605484edead3ee87bf9d525ddac83ce788e764736f6c63430008130033405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace",
"deployedBytecode": "0x6040608081526004908136101561001557600080fd5b600091823560e01c90816301e3366714610c9b57816306fdde0314610bdc57816308f26c7614610bb6578163095ea7b3146104505781630db9ea4a14610b7e57816312d43a5114610b5557816313e82e7a14610b145781631514617e14610af557816315e90a4114610ad657816316ca05c514610aad57816318160ddd14610a8e57816323b872dd14610a7757816327e235e314610677578163313ce56714610a56578163342fcda914610a21578163387a785d146109e95781633ccfd60b1461083d5781633de35b7914610814578163402914f5146107ee57816341f22724146107a657816345f01ee61461078057816346ea87af146107425781634e71d92d146107105781635d50e729146106d85781636bcb411a146106af57816370a082311461067757816371417b321461063f5781637cf8f3b21461061657816393035473146105f557816395d89b41146104ee5781639cb7de4b1461048d578163a2545fa514610455578163a9059cbb14610450578163ac110d141461042c578163b5ff136d146103f4578163b6b55f25146103c757508063cfad57a214610379578063d5a73fdd1461034d578063d75abb5714610323578063d89b7007146102dc578063dd62ed3e146102af578063f2293bb01461025c578063f421f62a146102325763f6d6d5aa1461020757600080fd5b3461022e578160031936011261022e5760085490516001600160a01b039091168152602090f35b5080fd5b503461022e578160031936011261022e5760095490516001600160a01b0390911615158152602090f35b82346102ac5760203660031901126102ac57610276610cd1565b6001546001600160a01b0391906102909083163314610dd7565b166bffffffffffffffffffffffff60a01b600954161760095580f35b80fd5b503461022e578060031936011261022e57906020916102cc610cd1565b506102d5610cec565b5051908152f35b503461022e578060031936011261022e576102f5610cd1565b6102fd610e1b565b610305611a9b565b6001600160a01b031682526012602052812060243590556001815580f35b503461022e578160031936011261022e5760075490516001600160a01b0390911615158152602090f35b503461022e57602036600319011261022e5760209061037261036d610cd1565b611308565b9051908152f35b82346102ac5760203660031901126102ac57610393610cd1565b600154906001600160a01b03906103ad3383851614610dd7565b16906bffffffffffffffffffffffff60a01b161760015580f35b83903461022e57602036600319011261022e576103ed906103e6610e1b565b35336114a4565b6001815580f35b50503461022e57602036600319011261022e5760209181906001600160a01b0361041c610cd1565b168152600f845220549051908152f35b50503461022e578160031936011261022e5760209060ff600c541690519015158152f35b610db8565b50503461022e57602036600319011261022e5760209181906001600160a01b0361047d610cd1565b1681526013845220549051908152f35b50503461022e578060031936011261022e576104a7610cd1565b90602435918215158093036104ea576001546001600160a01b0391906104d09083163314610dd7565b168352601460205282209060ff8019835416911617905580f35b8380fd5b919050346105f157826003193601126105f157805191836003549060019082821c9282811680156105e7575b60209586861082146105d457508488529081156105b25750600114610559575b610555868661054b828b0383610d37565b5191829182610d6f565b0390f35b929550600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b82841061059f57505050826105559461054b92820101943861053a565b8054868501880152928601928101610582565b60ff191687860152505050151560051b830101925061054b826105553861053a565b634e487b7160e01b845260229052602483fd5b93607f169361051a565b8280fd5b50503461022e57602036600319011261022e5760209061037261036d610cd1565b50503461022e578060031936011261022e57602090610372610636610cd1565b602435906112bb565b50503461022e57602036600319011261022e5760209181906001600160a01b03610667610cd1565b1681526010845220549051908152f35b50503461022e57602036600319011261022e5760209181906001600160a01b0361069f610cd1565b168152600d845220549051908152f35b50503461022e578160031936011261022e5760095490516001600160a01b039091168152602090f35b50503461022e57602036600319011261022e5760209181906001600160a01b03610700610cd1565b168152600e845220549051908152f35b50503461022e578160031936011261022e579060209161072e610e1b565b600161073a3333611a07565b925551908152f35b50503461022e57602036600319011261022e5760209160ff9082906001600160a01b0361076d610cd1565b1681526014855220541690519015158152f35b50503461022e57602036600319011261022e576020906103726107a1610cd1565b61119e565b50503461022e578060031936011261022e576107c0610cd1565b6107c8610e1b565b6107d0611a9b565b6001600160a01b031682526013602052812060243590556001815580f35b50503461022e57602036600319011261022e5760209061037261080f610cd1565b6119c9565b50503461022e578160031936011261022e5760075490516001600160a01b039091168152602090f35b9050346105f157826003193601126105f157610857610e1b565b6108613333611a07565b50338352602091600f835280842054600d845281852054926108838285611099565b156109a65750917ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56893916060936108d08360018060a01b03806007541661090c575b339060065416610e71565b6108da833361141a565b338752600f84528682812055601084528682812055601184528682812055815193338552840152820152a16001815580f35b338a52600e87526109a1856109518c8281205492839161092d331515611377565b338152600e8d52610943838383205410156113ce565b338152600e8d5220546110bc565b338d52600e8a52878d205561096881600b546110bc565b600b558b87518281527f659523c479d006050ebc0d0e48fea36d1b2c5d45b2f31402ac6f8671fc84cc048b3392a3338360075416610e71565b6108c5565b825162461bcd60e51b8152908101859052601d60248201527f5665737465723a2076657374656420616d6f756e74206973207a65726f0000006044820152606490fd5b50503461022e57602036600319011261022e5760209181906001600160a01b03610a11610cd1565b1681526012845220549051908152f35b50503461022e573660031901126102ac576103ed610a3d610cd1565b610a45610e1b565b610a4d611a9b565b602435906114a4565b8284346102ac57806003193601126102ac575060ff60209254169051908152f35b83346102ac57610a8636610d02565b505050611332565b50503461022e578160031936011261022e57602090600a549051908152f35b50503461022e578160031936011261022e5760065490516001600160a01b039091168152602090f35b50503461022e578160031936011261022e57602090600b549051908152f35b50503461022e578160031936011261022e576020906005549051908152f35b50503461022e578060031936011261022e5790602091600161073a610b37610cd1565b610b3f610cec565b90610b48610e1b565b610b50611a9b565b611a07565b50503461022e578160031936011261022e5760015490516001600160a01b039091168152602090f35b50503461022e57602036600319011261022e5760209181906001600160a01b03610ba6610cd1565b1681526011845220549051908152f35b50503461022e57602036600319011261022e57602090610372610bd7610cd1565b6110c9565b919050346105f157826003193601126105f157805191836002549060019082821c928281168015610c91575b60209586861082146105d457508488529081156105b25750600114610c3857610555868661054b828b0383610d37565b929550600283527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b828410610c7e57505050826105559461054b92820101943861053a565b8054868501880152928601928101610c61565b93607f1693610c08565b83346102ac57610cce610cad36610d02565b60015490926001600160a01b0391610cc89083163314610dd7565b16610e71565b80f35b600435906001600160a01b0382168203610ce757565b600080fd5b602435906001600160a01b0382168203610ce757565b6060906003190112610ce7576001600160a01b03906004358281168103610ce757916024359081168103610ce7579060443590565b90601f8019910116810190811067ffffffffffffffff821117610d5957604052565b634e487b7160e01b600052604160045260246000fd5b6020808252825181830181905290939260005b828110610da457505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610d82565b34610ce7576040366003190112610ce757610dd1610cd1565b50611332565b15610dde57565b60405162461bcd60e51b815260206004820152601560248201527423b7bb32b93730b136329d103337b93134b23232b760591b6044820152606490fd5b600260005414610e2c576002600055565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b60405163a9059cbb60e01b60208201526001600160a01b03929092166024830152604480830193909352918152610eb291610ead606483610d37565b610eb4565b565b60018060a01b0316906040516040810167ffffffffffffffff9082811082821117610d59576040526020938483527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858401526000808587829751910182855af1903d15610ff9573d928311610fe55790610f4f93929160405192610f4288601f19601f8401160185610d37565b83523d868885013e611004565b805191821591848315610fc1575b505050905015610f6a5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b91938180945001031261022e578201519081151582036102ac575080388084610f5d565b634e487b7160e01b85526041600452602485fd5b90610f4f9392506060915b919290156110665750815115611018575090565b3b156110215790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156110795750805190602001fd5b60405162461bcd60e51b81529081906110959060048301610d6f565b0390fd5b919082018092116110a657565b634e487b7160e01b600052601160045260246000fd5b919082039182116110a657565b6001600160a01b039081166000818152601360209081526040822054600954929490939192168061111b575b508352601290526040822054908181106111165761111392506110bc565b90565b505090565b92826024929460405193848092633792def360e01b82528860048301525afa91821561119357859261115e575b506012929161115691611099565b9290916110f5565b9091508281813d831161118c575b6111768183610d37565b81010312611188575190611156611148565b8480fd5b503d61116c565b6040513d87823e3d90fd5b6009546001600160a01b039081169190821561125357604051633792def360e01b81529116600482018190526020918281602481875afa9081156112475760009161125b575b501561125357819060246040518095819363a318021760e01b835260048301525afa9081156112475760009161121b575b50905090565b82813d8311611240575b61122f8183610d37565b810103126102ac5750518038611215565b503d611225565b6040513d6000823e3d90fd5b505050600090565b908382813d8311611281575b6112718183610d37565b810103126102ac575051386111e4565b503d611267565b818102929181159184041417156110a657565b81156112a5570490565b634e487b7160e01b600052601260045260246000fd5b6009549091906001600160a01b031615611301576112d88261119e565b918215611253576112e8906110c9565b90811561125357611113926112fc91611288565b61129b565b5050600090565b60018060a01b0316600052600d602052611113604060002054600f60205260406000205490611099565b60405162461bcd60e51b815260206004820152601960248201527f5665737465723a206e6f6e2d7472616e736665727261626c65000000000000006044820152606490fd5b1561137e57565b60405162461bcd60e51b815260206004820152602260248201527f5665737465723a206275726e2066726f6d20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b156113d557565b60405162461bcd60e51b815260206004820152601d60248201527f5665737465723a2062616c616e6365206973206e6f7420656e6f7567680000006044820152606490fd5b6001600160a01b031661142e811515611377565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600093838552600d825261146b81604087205410156113ce565b838552600d82526114808160408720546110bc565b848652600d8352604086205561149881600a546110bc565b600a55604051908152a3565b9190801561179c576114b583611885565b60018060a01b03926114ce8285600654168330916117e1565b838116936114dd85151561183a565b6114e983600a54611099565b600a55600090858252602091600d83526040966115098689842054611099565b818352600d85528883205580827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef868b518a8152a380828460075416806116e6575b50505060ff600c5416806116d9575b611606575b50505061156b826110c9565b61157483611308565b116115b7575092516001600160a01b0390931683526020830152907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c90604090a1565b60849085519062461bcd60e51b825260048201526024808201527f5665737465723a206d6178207665737461626c6520616d6f756e7420657863656044820152631959195960e21b6064820152fd5b838360095416936008541660448a5180968193637aeceb1f60e11b835286600484015260248301525afa9283156116cf5790829189939461169a575b508152600d84522054116116585738808061155f565b60649085519062461bcd60e51b825280600483015260248201527f5665737465723a20696e73756666696369656e74206365632062616c616e63656044820152fd5b8580929550819394503d83116116c8575b6116b58183610d37565b8101031261022e57908791519238611642565b503d6116ab565b88513d84823e3d90fd5b508260095416151561155a565b828252600e8752868b83205491600d82528c8a61170682872054826112bb565b91858311611719575b505050505061154b565b61175561174a7f659523c479d006050ebc0d0e48fea36d1b2c5d45b2f31402ac6f8671fc84cc049761177e956110bc565b8095819430916117e1565b61176088151561183a565b61176c82600b54611099565b600b55878752600e8552862054611099565b858552600e83528d8520558c51908152a38082388681808a8e61170f565b60405162461bcd60e51b815260206004820152601760248201527f5665737465723a20696e76616c6964205f616d6f756e740000000000000000006044820152606490fd5b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815260a081019181831067ffffffffffffffff841117610d5957610eb292604052610eb4565b1561184157565b606460405162461bcd60e51b815260206004820152602060248201527f5665737465723a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b61188e81611962565b6001600160a01b0380831660008181526011602052604080822042905590949093929190831561195a57836118c29161141a565b808552600f6020526118d78385872054611099565b908552600f602052838520556006541690813b156104ea578251632770a7eb60e21b81523060048201526024810191909152929081908490604490829084905af1801561194e5761192757505050565b67ffffffffffffffff831161193a575052565b634e487b7160e01b81526041600452602490fd5b509051903d90823e3d90fd5b505050505050565b6001600160a01b03811660008181526011602052604090205461198590426110bc565b90600052600d602052604060002054918215611253576119b9916119ab6119b092611308565b611288565b6005549061129b565b8181106119c4575090565b905090565b6111139060018060a01b038116600052600f602052611a016119fb6040600020546010602052604060002054906110bc565b91611962565b90611099565b611a7d917f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d491611a3681611885565b611a3f816119c9565b9384809360018060a01b03808516806000526010602052611a6584604060002054611099565b90600052601060205260406000205560085416610e71565b604080516001600160a01b039290921682526020820192909252a190565b33600052601460205260ff6040600020541615611ab457565b60405162461bcd60e51b81526020600482015260116024820152702b32b9ba32b91d103337b93134b23232b760791b6044820152606490fdfea26469706673582212204ec2e325de603c91d8517820fdaa605484edead3ee87bf9d525ddac83ce788e764736f6c63430008130033",
"linkReferences": {},
"deployedLinkReferences": {}
}