[ { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_voter", "type": "address" }, { "internalType": "address[]", "name": "_assetTokens", "type": "address[]" }, { "internalType": "address[]", "name": "_bribeTokens", "type": "address[]" }, { "internalType": "address", "name": "_vaultFactory", "type": "address" }, { "internalType": "address", "name": "_farm", "type": "address" }, { "internalType": "string", "name": "_protocol", "type": "string" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_vaultName", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "Plugin__InvalidZeroInput", "type": "error" }, { "inputs": [], "name": "Plugin__NotAuthorizedVoter", "type": "error" }, { "anonymous": false, "inputs": [], "name": "Plugin__ClaimedAnDistributed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Plugin__Deposited", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Plugin__Withdrawn", "type": "event" }, { "inputs": [], "name": "KDK", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "XKDK", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "claimAndDistribute", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "depositFor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "farm", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getAssetTokens", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBribe", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBribeTokens", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getGauge", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLockedLiquidity", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLockedStakes", "outputs": [ { "components": [ { "internalType": "bytes32", "name": "kek_id", "type": "bytes32" }, { "internalType": "uint256", "name": "start_timestamp", "type": "uint256" }, { "internalType": "uint256", "name": "liquidity", "type": "uint256" }, { "internalType": "uint256", "name": "ending_timestamp", "type": "uint256" }, { "internalType": "uint256", "name": "lock_multiplier", "type": "uint256" } ], "internalType": "struct ICommunalFarm.LockedStake[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getName", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getProtocol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRewardVault", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getVaultToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getVoter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_bribe", "type": "address" } ], "name": "setBribe", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_gauge", "type": "address" } ], "name": "setGauge", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdrawTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60e06040523480156200001157600080fd5b50604051620032bc380380620032bc833981016040819052620000349162000442565b60016000556001600160a01b03808a16608052881660c0528651899089908990899089908890889088906200007190600790602089019062000222565b5084516200008790600890602088019062000222565b506005620000968482620005fe565b506006620000a58382620005fe565b50866001600160a01b031663c544df0c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200010b9190620006ca565b6001600160a01b031660a0526040518190819062000129906200028c565b620001369291906200071d565b604051809103906000f08015801562000153573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b039283169081179091556040516301a0761760e01b81526004810191909152908516906301a07617906024016020604051808303816000875af1158015620001b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001db9190620006ca565b600480546001600160a01b039283166001600160a01b031991821617909155600b80549e9092169d169c909c17909b55506200074f9e505050505050505050505050505050565b8280548282559060005260206000209081019282156200027a579160200282015b828111156200027a57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000243565b50620002889291506200029a565b5090565b610fba806200230283390190565b5b808211156200028857600081556001016200029b565b80516001600160a01b0381168114620002c957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200030f576200030f620002ce565b604052919050565b600082601f8301126200032957600080fd5b815160206001600160401b03821115620003475762000347620002ce565b8160051b62000358828201620002e4565b92835284810182019282810190878511156200037357600080fd5b83870192505b848310156200039d576200038d83620002b1565b8252918301919083019062000379565b979650505050505050565b60005b83811015620003c5578181015183820152602001620003ab565b50506000910152565b600082601f830112620003e057600080fd5b81516001600160401b03811115620003fc57620003fc620002ce565b62000411601f8201601f1916602001620002e4565b8181528460208386010111156200042757600080fd5b6200043a826020830160208701620003a8565b949350505050565b60008060008060008060008060006101208a8c0312156200046257600080fd5b6200046d8a620002b1565b98506200047d60208b01620002b1565b60408b01519098506001600160401b03808211156200049b57600080fd5b620004a98d838e0162000317565b985060608c0151915080821115620004c057600080fd5b620004ce8d838e0162000317565b9750620004de60808d01620002b1565b9650620004ee60a08d01620002b1565b955060c08c01519150808211156200050557600080fd5b620005138d838e01620003ce565b945060e08c01519150808211156200052a57600080fd5b620005388d838e01620003ce565b93506101008c01519150808211156200055057600080fd5b506200055f8c828d01620003ce565b9150509295985092959850929598565b600181811c908216806200058457607f821691505b602082108103620005a557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005f957600081815260208120601f850160051c81016020861015620005d45750805b601f850160051c820191505b81811015620005f557828155600101620005e0565b5050505b505050565b81516001600160401b038111156200061a576200061a620002ce565b62000632816200062b84546200056f565b84620005ab565b602080601f8311600181146200066a5760008415620006515750858301515b600019600386901b1c1916600185901b178555620005f5565b600085815260208120601f198616915b828110156200069b578886015182559484019460019091019084016200067a565b5085821015620006ba5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620006dd57600080fd5b620006e882620002b1565b9392505050565b6000815180845262000709816020860160208601620003a8565b601f01601f19169290920160200192915050565b604081526000620007326040830185620006ef565b8281036020840152620007468185620006ef565b95945050505050565b60805160a05160c051611b4e620007b4600039600081816101dd015281816107280152610dfd015260005050600081816101a30152818161042d015281816104ce015281816105110152818161068e01528181610f0e01526112770152611b4e6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b8578063d16352af1161007c578063d16352af146102ce578063dfb89c37146102d6578063e094842a146102de578063e33ca839146102f9578063e81defce14610301578063f2803f031461031457600080fd5b806370a082311461025357806376d0c8641461027c5780638df972be1461028d578063c727d57d1461029e578063d015d577146102b957600080fd5b80632b37f53c1161010a5780632b37f53c146101db5780632f4f21e21461020157806336e9332d1461021457806347c958511461022757806355a68ed31461022f5780635f0f4c831461024257600080fd5b806317d7de7c1461014757806318160ddd14610165578063205c287814610177578063219691ad1461018c57806321df0da7146101a1575b600080fd5b61014f610325565b60405161015c919061174f565b60405180910390f35b6009545b60405190815260200161015c565b61018a61018536600461179e565b6103b7565b005b61019461059f565b60405161015c91906117c8565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161015c565b7f00000000000000000000000000000000000000000000000000000000000000006101c3565b61018a61020f36600461179e565b610615565b600b546101c3906001600160a01b031681565b6101696106b0565b61018a61023d366004611836565b61071d565b6004546001600160a01b03166101c3565b610169610261366004611836565b6001600160a01b03166000908152600a602052604090205490565b6003546001600160a01b03166101c3565b6002546001600160a01b03166101c3565b6101c373414b50157a5697f14e91417c5275a7496dcf429d81565b6102c1610788565b60405161015c9190611858565b61014f6107e9565b61018a6107f8565b6101c373fd27998fa0eab1a6372db14afd4bf7c4a58c536481565b6102c1610d92565b61018a61030f366004611836565b610df2565b6001546001600160a01b03166101c3565b606060068054610334906118a5565b80601f0160208091040260200160405190810160405280929190818152602001828054610360906118a5565b80156103ad5780601f10610382576101008083540402835291602001916103ad565b820191906000526020600020905b81548152906001019060200180831161039057829003601f168201915b5050505050905090565b600b60009054906101000a90046001600160a01b03166001600160a01b031663298360a96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561040757600080fd5b505af115801561041b573d6000803e3d6000fd5b505050506104298282610e5d565b60007f00000000000000000000000000000000000000000000000000000000000000005b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610493573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104b791906118df565b600b549091506104fe906001600160a01b031660007f00000000000000000000000000000000000000000000000000000000000000005b6001600160a01b0316919061106f565b600b54610535906001600160a01b0316827f00000000000000000000000000000000000000000000000000000000000000006104ee565b600b546040516317b18c8960e01b815260048101839052600060248201526001600160a01b03909116906317b18c8990604401600060405180830381600087803b15801561058257600080fd5b505af1158015610596573d6000803e3d6000fd5b50505050505050565b600b54604051631e090f0160e01b81523060048201526060916001600160a01b031690631e090f0190602401600060405180830381865afa1580156105e8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106109190810190611968565b905090565b61061f82826111b4565b600b60009054906101000a90046001600160a01b03166001600160a01b031663298360a96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561066f57600080fd5b505af1158015610683573d6000803e3d6000fd5b50505050600061044d7f000000000000000000000000000000000000000000000000000000000000000090565b600b5460405163d9f96e8d60e01b81523060048201526000916001600160a01b03169063d9f96e8d90602401602060405180830381865afa1580156106f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061091906118df565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610766576040516366dce48d60e11b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b606060078054806020026020016040519081016040528092919081815260200182805480156103ad57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107c2575050505050905090565b606060058054610334906118a5565b6108006113d3565b600b60009054906101000a90046001600160a01b03166001600160a01b0316633d18b9126040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561085057600080fd5b505af1158015610864573d6000803e3d6000fd5b50505050600061087c6002546001600160a01b031690565b905060006108926001546001600160a01b031690565b90506000826001600160a01b0316631be052896040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f891906118df565b6040516370a0823160e01b815230600482015290915060009073fd27998fa0eab1a6372db14afd4bf7c4a58c5364906370a0823190602401602060405180830381865afa15801561094d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097191906118df565b905081811115610b065761099b73fd27998fa0eab1a6372db14afd4bf7c4a58c536484600061106f565b6040516370a0823160e01b8152306004820152610a3090849073fd27998fa0eab1a6372db14afd4bf7c4a58c5364906370a0823190602401602060405180830381865afa1580156109f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1491906118df565b73fd27998fa0eab1a6372db14afd4bf7c4a58c5364919061106f565b6040516370a0823160e01b81523060048201526001600160a01b0384169063b66503cf9073fd27998fa0eab1a6372db14afd4bf7c4a58c53649081906370a0823190602401602060405180830381865afa158015610a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab691906118df565b6040518363ffffffff1660e01b8152600401610ad3929190611a50565b600060405180830381600087803b158015610aed57600080fd5b505af1158015610b01573d6000803e3d6000fd5b505050505b6040516370a0823160e01b815230600482015260009073414b50157a5697f14e91417c5275a7496dcf429d906370a0823190602401602060405180830381865afa158015610b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7c91906118df565b905082811115610c3a57610ba673414b50157a5697f14e91417c5275a7496dcf429d85600061106f565b610bc573414b50157a5697f14e91417c5275a7496dcf429d858361106f565b60405163b66503cf60e01b81526001600160a01b0385169063b66503cf90610c079073414b50157a5697f14e91417c5275a7496dcf429d908590600401611a50565b600060405180830381600087803b158015610c2157600080fd5b505af1158015610c35573d6000803e3d6000fd5b505050505b60005b610c45610d92565b51811015610d8a576000610c57610d92565b8281518110610c6857610c68611a69565b60209081029190910101516040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce191906118df565b905085811115610d7557610d006001600160a01b03831689600061106f565b610d146001600160a01b038316898361106f565b60405163b66503cf60e01b81526001600160a01b0389169063b66503cf90610d429085908590600401611a50565b600060405180830381600087803b158015610d5c57600080fd5b505af1158015610d70573d6000803e3d6000fd5b505050505b50508080610d8290611a95565b915050610c3d565b505050505050565b606060088054806020026020016040519081016040528092919081815260200182805480156103ad576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116107c2575050505050905090565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e3b576040516366dce48d60e11b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610e65611410565b8080600003610e875760405163f6ec1bed60e01b815260040160405180910390fd5b81600954610e959190611aae565b600955336000908152600a6020526040902054610eb3908390611aae565b336000818152600a6020526040908190209290925590517f3d9b7cdf60349a62a2f52625a9697e0e2782b9ef0985bec5e10de869ec541ac590610ef99085815260200190565b60405180910390a2610f356001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484611469565b60015460405163b790a77b60e01b81526001600160a01b039091169063b790a77b90610f679033908690600401611a50565b600060405180830381600087803b158015610f8157600080fd5b505af1158015610f95573d6000803e3d6000fd5b505060048054604051635281244f60e01b81526001600160a01b039091169350635281244f9250610fca913391879101611a50565b600060405180830381600087803b158015610fe457600080fd5b505af1158015610ff8573d6000803e3d6000fd5b5050600354604051632770a7eb60e21b81526001600160a01b039091169250639dc29fac915061102e9030908690600401611a50565b600060405180830381600087803b15801561104857600080fd5b505af115801561105c573d6000803e3d6000fd5b505050505061106b6001600055565b5050565b8015806110e95750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa1580156110c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e791906118df565b155b6111595760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084015b60405180910390fd5b6111af8363095ea7b360e01b8484604051602401611178929190611a50565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611488565b505050565b6111bc611410565b80806000036111de5760405163f6ec1bed60e01b815260040160405180910390fd5b816009546111ec9190611ac7565b6009556001600160a01b0383166000908152600a6020526040902054611213908390611ac7565b6001600160a01b0384166000818152600a6020526040908190209290925590517f9a5084d92dfc874319b7345834de998ed1154f2ed11a4a6d353cf77a1bdb456e906112629085815260200190565b60405180910390a261129f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308561155d565b600154604051631b684ce760e21b81526001600160a01b0390911690636da1339c906112d19086908690600401611a50565b600060405180830381600087803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b50506003546040516340c10f1960e01b81526001600160a01b0390911692506340c10f1991506113359030908690600401611a50565b600060405180830381600087803b15801561134f57600080fd5b505af1158015611363573d6000803e3d6000fd5b505060045460035461138593506001600160a01b03908116925016600061106f565b6004546003546113a2916001600160a01b0391821691168461106f565b60048054604051633c323a1b60e01b81526001600160a01b0390911691633c323a1b9161102e918791879101611a50565b6113db611410565b6040517f8fef40a30af028d208f06e01ada64f23e76ce003c6b015a945795b0cb268b53490600090a161140e6001600055565b565b6002600054036114625760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611150565b6002600055565b6111af8363a9059cbb60e01b8484604051602401611178929190611a50565b60006114dd826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661159b9092919063ffffffff16565b90508051600014806114fe5750808060200190518101906114fe9190611ada565b6111af5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401611150565b6040516001600160a01b03808516602483015283166044820152606481018290526115959085906323b872dd60e01b90608401611178565b50505050565b60606115aa84846000856115b2565b949350505050565b6060824710156116135760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401611150565b600080866001600160a01b0316858760405161162f9190611afc565b60006040518083038185875af1925050503d806000811461166c576040519150601f19603f3d011682016040523d82523d6000602084013e611671565b606091505b50915091506116828783838761168d565b979650505050505050565b606083156116fc5782516000036116f5576001600160a01b0385163b6116f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611150565b50816115aa565b6115aa83838151156117115781518083602001fd5b8060405162461bcd60e51b8152600401611150919061174f565b60005b8381101561174657818101518382015260200161172e565b50506000910152565b602081526000825180602084015261176e81604085016020870161172b565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461179957600080fd5b919050565b600080604083850312156117b157600080fd5b6117ba83611782565b946020939093013593505050565b602080825282518282018190526000919060409081850190868401855b828110156118295781518051855286810151878601528581015186860152606080820151908601526080908101519085015260a090930192908501906001016117e5565b5091979650505050505050565b60006020828403121561184857600080fd5b61185182611782565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156118995783516001600160a01b031683529284019291840191600101611874565b50909695505050505050565b600181811c908216806118b957607f821691505b6020821081036118d957634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156118f157600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b60405160a0810167ffffffffffffffff81118282101715611931576119316118f8565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611960576119606118f8565b604052919050565b6000602080838503121561197b57600080fd5b825167ffffffffffffffff8082111561199357600080fd5b818501915085601f8301126119a757600080fd5b8151818111156119b9576119b96118f8565b6119c7848260051b01611937565b818152848101925060a09182028401850191888311156119e657600080fd5b938501935b82851015611a445780858a031215611a035760008081fd5b611a0b61190e565b855181528686015187820152604080870151908201526060808701519082015260808087015190820152845293840193928501926119eb565b50979650505050505050565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611aa757611aa7611a7f565b5060010190565b81810381811115611ac157611ac1611a7f565b92915050565b80820180821115611ac157611ac1611a7f565b600060208284031215611aec57600080fd5b8151801515811461185157600080fd5b60008251611b0e81846020870161172b565b919091019291505056fea26469706673582212204321d348ec719d15d5c3f722997965eea9d2093a63a581d56351bdaa76593e8564736f6c6343000813003360806040523480156200001157600080fd5b5060405162000fba38038062000fba833981016040819052620000349162000193565b818160036200004483826200028c565b5060046200005382826200028c565b505050620000706200006a6200007860201b60201c565b6200007c565b505062000358565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000f657600080fd5b81516001600160401b0380821115620001135762000113620000ce565b604051601f8301601f19908116603f011681019082821181831017156200013e576200013e620000ce565b816040528381526020925086838588010111156200015b57600080fd5b600091505b838210156200017f578582018301518183018401529082019062000160565b600093810190920192909252949350505050565b60008060408385031215620001a757600080fd5b82516001600160401b0380821115620001bf57600080fd5b620001cd86838701620000e4565b93506020850151915080821115620001e457600080fd5b50620001f385828601620000e4565b9150509250929050565b600181811c908216806200021257607f821691505b6020821081036200023357634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200028757600081815260208120601f850160051c81016020861015620002625750805b601f850160051c820191505b8181101562000283578281556001016200026e565b5050505b505050565b81516001600160401b03811115620002a857620002a8620000ce565b620002c081620002b98454620001fd565b8462000239565b602080601f831160018114620002f85760008415620002df5750858301515b600019600386901b1c1916600185901b17855562000283565b600085815260208120601f198616915b82811015620003295788860151825594840194600190910190840162000308565b5085821015620003485787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c5280620003686000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063a457c2d711610066578063a457c2d714610209578063a9059cbb1461021c578063dd62ed3e1461022f578063f2fde38b1461024257600080fd5b8063715018a6146101cb5780638da5cb5b146101d357806395d89b41146101ee5780639dc29fac146101f657600080fd5b8063313ce567116100d3578063313ce5671461016b578063395093511461017a57806340c10f191461018d57806370a08231146101a257600080fd5b806306fdde0314610105578063095ea7b31461012357806318160ddd1461014657806323b872dd14610158575b600080fd5b61010d610255565b60405161011a9190610a9c565b60405180910390f35b610136610131366004610b06565b6102e7565b604051901515815260200161011a565b6002545b60405190815260200161011a565b610136610166366004610b30565b610301565b6040516012815260200161011a565b610136610188366004610b06565b610325565b6101a061019b366004610b06565b610347565b005b61014a6101b0366004610b6c565b6001600160a01b031660009081526020819052604090205490565b6101a061035d565b6005546040516001600160a01b03909116815260200161011a565b61010d610371565b6101a0610204366004610b06565b610380565b610136610217366004610b06565b610392565b61013661022a366004610b06565b610412565b61014a61023d366004610b8e565b610420565b6101a0610250366004610b6c565b61044b565b60606003805461026490610bc1565b80601f016020809104026020016040519081016040528092919081815260200182805461029090610bc1565b80156102dd5780601f106102b2576101008083540402835291602001916102dd565b820191906000526020600020905b8154815290600101906020018083116102c057829003601f168201915b5050505050905090565b6000336102f58185856104c4565b60019150505b92915050565b60003361030f8582856105e9565b61031a858585610663565b506001949350505050565b6000336102f58185856103388383610420565b6103429190610bfb565b6104c4565b61034f610807565b6103598282610861565b5050565b610365610807565b61036f6000610920565b565b60606004805461026490610bc1565b610388610807565b6103598282610972565b600033816103a08286610420565b9050838110156104055760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61031a82868684036104c4565b6000336102f5818585610663565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610453610807565b6001600160a01b0381166104b85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103fc565b6104c181610920565b50565b6001600160a01b0383166105265760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103fc565b6001600160a01b0382166105875760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103fc565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006105f58484610420565b9050600019811461065d57818110156106505760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103fc565b61065d84848484036104c4565b50505050565b6001600160a01b0383166106c75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103fc565b6001600160a01b0382166107295760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103fc565b6001600160a01b038316600090815260208190526040902054818110156107a15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103fc565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a361065d565b6005546001600160a01b0316331461036f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103fc565b6001600160a01b0382166108b75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103fc565b80600260008282546108c99190610bfb565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166109d25760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103fc565b6001600160a01b03821660009081526020819052604090205481811015610a465760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103fc565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91016105dc565b600060208083528351808285015260005b81811015610ac957858101830151858201604001528201610aad565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610b0157600080fd5b919050565b60008060408385031215610b1957600080fd5b610b2283610aea565b946020939093013593505050565b600080600060608486031215610b4557600080fd5b610b4e84610aea565b9250610b5c60208501610aea565b9150604084013590509250925092565b600060208284031215610b7e57600080fd5b610b8782610aea565b9392505050565b60008060408385031215610ba157600080fd5b610baa83610aea565b9150610bb860208401610aea565b90509250929050565b600181811c90821680610bd557607f821691505b602082108103610bf557634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102fb57634e487b7160e01b600052601160045260246000fdfea26469706673582212209833fff1f4eb98ea44a7db6cdf2ab4c1de7ac0c8efb963154bea53bc7eb75ef864736f6c6343000813003300000000000000000000000063b0edc427664d4330f72eec890a86b3f98ce2250000000000000000000000001f9505ae18755915dcd2a95f38c7560cab149d9c000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001800000000000000000000000002b6e40f65d82a0cb98795bc7587a71bfa49fbb2b00000000000000000000000009347f35b29bd3b8a581a8507f0831aa4d1af8a900000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000e4aaf1351de4c0264c5c7056ef3777b41bd8e03000000000000000000000000f5afcf50006944d17226978e594d4d25f4f92b400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a591eef221369321de76d958dc023936fb39b26a000000000000000000000000000000000000000000000000000000000000000f4b6f6469616b20547269666563746100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011484f4e45592d4e4543542049736c616e6400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000304265726164726f6d6520547269666563746120484f4e45592d4e4543542049736c616e64205661756c7420546f6b656e00000000000000000000000000000000