[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAllDelegation", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" } ], "name": "DelegateRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "delegator", "type": "address" } ], "name": "DelegatorApproved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "start", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "cliff", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "end", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "period", "type": "uint256" } ], "name": "PlanCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountRedeemed", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "planRemainder", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "resetDate", "type": "uint256" } ], "name": "PlanRedeemed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "segmentId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newPlanAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newPlanRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "segmentAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "segmentRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "start", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "cliff", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "period", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newPlanEnd", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "segmentEnd", "type": "uint256" } ], "name": "PlanSegmented", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id0", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "id1", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "survivingId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "start", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "cliff", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "period", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "end", "type": "uint256" } ], "name": "PlansCombined", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" } ], "name": "TokenDelegated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_admin", "type": "address" } ], "name": "URIAdminDeleted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "newURI", "type": "string" } ], "name": "URISet", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegator", "type": "address" }, { "internalType": "uint256", "name": "planId", "type": "uint256" } ], "name": "approveDelegator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "planId", "type": "uint256" } ], "name": "approveSpenderDelegator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegate", "type": "address" } ], "name": "balanceOfDelegate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId0", "type": "uint256" }, { "internalType": "uint256", "name": "planId1", "type": "uint256" } ], "name": "combinePlans", "outputs": [ { "internalType": "uint256", "name": "survivingPlanId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "start", "type": "uint256" }, { "internalType": "uint256", "name": "cliff", "type": "uint256" }, { "internalType": "uint256", "name": "rate", "type": "uint256" }, { "internalType": "uint256", "name": "period", "type": "uint256" } ], "name": "createPlan", "outputs": [ { "internalType": "uint256", "name": "newPlanId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" }, { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegateAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "planIds", "type": "uint256[]" }, { "internalType": "address[]", "name": "delegatees", "type": "address[]" } ], "name": "delegatePlans", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" } ], "name": "delegatedBalances", "outputs": [ { "internalType": "uint256", "name": "delegatedBalance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "delegatedTo", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deleteAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" } ], "name": "getApprovedDelegator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAllDelegation", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" } ], "name": "lockedBalances", "outputs": [ { "internalType": "uint256", "name": "lockedBalance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "planIds", "type": "uint256[]" }, { "internalType": "uint256", "name": "redemptionTime", "type": "uint256" } ], "name": "partialRedeemPlans", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" }, { "internalType": "uint256", "name": "timeStamp", "type": "uint256" }, { "internalType": "uint256", "name": "redemptionTime", "type": "uint256" } ], "name": "planBalanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "remainder", "type": "uint256" }, { "internalType": "uint256", "name": "latestUnlock", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" } ], "name": "planEnd", "outputs": [ { "internalType": "uint256", "name": "end", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "plans", "outputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "start", "type": "uint256" }, { "internalType": "uint256", "name": "cliff", "type": "uint256" }, { "internalType": "uint256", "name": "rate", "type": "uint256" }, { "internalType": "uint256", "name": "period", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "redeemAllPlans", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "planIds", "type": "uint256[]" } ], "name": "redeemPlans", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" }, { "internalType": "uint256[]", "name": "segmentAmounts", "type": "uint256[]" }, { "internalType": "address[]", "name": "delegatees", "type": "address[]" } ], "name": "segmentAndDelegatePlans", "outputs": [ { "internalType": "uint256[]", "name": "newPlanIds", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "segmentOriginalEnd", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" }, { "internalType": "uint256[]", "name": "segmentAmounts", "type": "uint256[]" } ], "name": "segmentPlan", "outputs": [ { "internalType": "uint256[]", "name": "newPlanIds", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAllDelegation", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegate", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfDelegateByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "transferAndDelegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "updateBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080604052346200033c57620045b1803803806200001d8162000341565b9283398101906040818303126200033c5780516001600160401b03908181116200033c57836200004f91840162000367565b91602093848201518381116200033c576200006b920162000367565b825190828211620003265760008054926001958685811c951680156200031b575b8886101462000307578190601f95868111620002b4575b5088908683116001146200025057849262000244575b5050600019600383901b1c191690861b1781555b8151938411620002305784548581811c9116801562000225575b878210146200021157838111620001c9575b50859284116001146200016457839495509262000158575b5050600019600383901b1c191690821b1781555b60125560148054610100600160a81b0319163360081b610100600160a81b03161790556040516141d79081620003da8239f35b01519050388062000111565b9190601f1984169585845280842093905b878210620001b15750508385961062000197575b505050811b01815562000125565b015160001960f88460031b161c1916905538808062000189565b80878596829496860151815501950193019062000175565b8582528682208480870160051c82019289881062000207575b0160051c019086905b828110620001fb575050620000f9565b838155018690620001eb565b92508192620001e2565b634e487b7160e01b82526022600452602482fd5b90607f1690620000e7565b634e487b7160e01b81526041600452602490fd5b015190503880620000b9565b8480528985208994509190601f198416865b8c8282106200029d575050841162000283575b505050811b018155620000cd565b015160001960f88460031b161c1916905538808062000275565b8385015186558c9790950194938401930162000262565b9091508380528884208680850160051c8201928b8610620002fd575b918a91869594930160051c01915b828110620002ee575050620000a3565b8681558594508a9101620002de565b92508192620002d0565b634e487b7160e01b83526022600452602483fd5b94607f16946200008c565b634e487b7160e01b600052604160045260246000fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200032657604052565b919080601f840112156200033c5782516001600160401b03811162000326576020906200039d601f8201601f1916830162000341565b928184528282870101116200033c5760005b818110620003c557508260009394955001015290565b8581018301518482018401528201620003af56fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a714611f2f5750806306fdde0314611e8c578063081812fc14611e6e57806308bbb82414611e41578063095ea7b314611d105780630aef166c1461185757806316c09967146117e357806318160ddd146117c55780631f25ccb61461173257806323b872dd1461170e57806323bdaea9146116ba5780632f745c59146116935780632f809b3814611539578063402d5a771461151b57806342842e0e146115045780634c6839cc146114e15780634e897e16146111055780634f6ccce71461107457806352e5b7e414610f9d5780636352211e14610f6d5780636b04021814610eeb5780636b8e3d7314610e145780636bb3c73f14610de05780636c0360eb14610dc457806370a0823114610da15780637b4e51f614610d7e57806388cccd8014610d66578063931688cb14610b5057806395d89b4114610a71578063968b3e5914610a23578063a22cb46514610a0b578063a414159614610953578063a8973e2b14610873578063b162061614610808578063b6f97787146107b2578063b88d4fde1461072b578063b9bdac2c146106c7578063c3ca57551461064d578063c7711c4c146105b1578063c7d74fa71461056f578063c83d7818146104dd578063c87b56dd146102c4578063dc1fa56814610295578063e985e9c51461023f5763fcbdd1961461020e57600080fd5b3461023a57602036600319011261023a5760043560005260116020526020604060002054604051908152f35b600080fd5b3461023a57604036600319011261023a57610258612012565b610260611ffc565b9060018060a01b03809116600052600560205260406000209116600052602052602060ff604060002054166040519015158152f35b3461023a57604036600319011261023a5760206102bc6102b3612012565b60243590612cb2565b604051908152f35b3461023a5760208060031936011261023a576004356000818152600260205260409020546102fc906001600160a01b03161515612392565b816103056121dc565b8051909290156104c457600090807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000081818110156104b6575b5050836d04ee2d6d415b85acef8100000000808310156104aa575b5050662386f26fc100008082101561049d575b506305f5e10080821015610490575b5061271080821015610483575b506064811015610475575b600a8091101561046b575b6001808401928160216103c46103ae876122c9565b966103bc6040519889612093565b8088526122c9565b8689019790601f1901368937860101905b610435575b505050509261041b929161040f9460405195836104008895518092888089019101611fb4565b84019151809386840190611fb4565b01038084520182612093565b905b610431604051928284938452830190611fd7565b0390f35b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304918215610466579190826103d5565b6103da565b9160010191610399565b60646002910492019161038e565b6004910492019186610383565b6008910492019186610376565b6010910492019186610367565b93019290048387610354565b604094500490508680610339565b5050506040516104d381612078565b600081529061041d565b3461023a57604036600319011261023a576004356024356001600160401b03811161023a57610510903690600401612119565b610518612efa565b6105228151613127565b9160005b825181101561055c57806105476105406105579386613168565b51846136c7565b6105518287613168565b52613159565b610526565b6001601255604051806104318682612137565b3461023a57606036600319011261023a57610431610594604435602435600435613e8a565b604080519384526020840192909252908201529081906060820190565b3461023a57600036600319011261023a576014546105dd33600883901c6001600160a01b03161461414c565b60ff81161561062257610100600160a81b0319166014556040513381527fa775782c93424d570e142a52abffaedcebb0e9cd73cca502455acb0587efb6b790602090a1005b606460405162461bcd60e51b81526020600482015260046024820152630854d15560e21b6044820152fd5b3461023a57602036600319011261023a57600435600052601060205260206102bc60a060406000206040516106818161205d565b600180841b038254168152600182015490818682015260028301549081604082015260038401546060820152600560048501549485608084015201549485910152613b1c565b3461023a57600036600319011261023a576106e0612efa565b6106e93361231b565b6106f281613127565b9060005b81811061070e576107074284613234565b6001601255005b8061071c6107269233612b58565b6105518286613168565b6106f6565b3461023a57608036600319011261023a57610744612012565b61074c611ffc565b90606435906044356001600160401b03831161023a573660238401121561023a576107b0936107886107ab9436906024816004013591016122e4565b9261079b610796843361253e565b61243f565b6107a6838383612606565b612add565b61251a565b005b3461023a57604036600319011261023a576107cb612012565b6107d3611ffc565b9060018060a01b03809116600052600b60205260406000209116600052602052602060ff604060002054166040519015158152f35b3461023a57602036600319011261023a57600435600052601060205260c0604060002060018060a01b038154169060018101549060028101546003820154906005600484015493015493604051958652602086015260408501526060840152608083015260a0820152f35b3461023a57604036600319011261023a576001600160401b0360043581811161023a576108a4903690600401612172565b9160243590811161023a576108bd903690600401612172565b6108c8929192612efa565b8084036109205760005b8481106108e0576001601255005b6108eb818386613224565b35906001600160a01b038216820361023a5761091661091b9261090f838988613224565b359061317c565b613159565b6108d2565b60405162461bcd60e51b815260206004820152600b60248201526a30b93930bc9032b93937b960a91b6044820152606490fd5b3461023a57604036600319011261023a576107b061096f612012565b602435906109a76001600160a01b0380610988856123de565b1680331480156109b6575b61099d9150613f7f565b8216331415613fbc565b6109b18282613ff9565b61289e565b5080600052600b60205260406000203360005260205260ff60406000205416806109e5575b61099d9150610993565b50600052600560205260406000203360005260205261099d60ff604060002054166109db565b3461023a576107b0610a1c3661229a565b90336128fb565b3461023a57602036600319011261023a576004356001600160401b03811161023a57610a6c610a59610707923690600401612172565b9190610a63612efa565b429236916120cb565b613234565b3461023a57600036600319011261023a5760405160006001805490610a95826121a2565b80855291818116908115610b295750600114610ad0575b61043184610abc81860382612093565b604051918291602083526020830190611fd7565b600081815292507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b828410610b11575050508101602001610abc82610aac565b80546020858701810191909152909301928101610af9565b60ff191660208087019190915292151560051b85019092019250610abc9150839050610aac565b3461023a5760208060031936011261023a576001600160401b039060043582811161023a573660238201121561023a57610b949036906024816004013591016122e4565b90610bad60018060a01b0360145460081c16331461414c565b8151928311610d5057610bc16013546121a2565b601f8111610cec575b508092601f8111600114610c4957807fde63cc2d19581e57e158d078c2df83f9ab70addd6257f7f12bfecb21c06c912894600091610c3e575b508160011b916000199060031b1c1916176013555b600160ff196014541617601455610c39604051928284938452830190611fd7565b0390a1005b905083015185610c03565b601f1981169360136000527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909460005b818110610cd557509482916001937fde63cc2d19581e57e158d078c2df83f9ab70addd6257f7f12bfecb21c06c91289710610cbc575b5050811b01601355610c18565b85015160001960f88460031b161c191690558580610caf565b858301518755600190960195918401918401610c79565b60136000527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090601f850160051c810191838610610d46575b601f0160051c01905b818110610d3a5750610bca565b60008155600101610d2d565b9091508190610d24565b634e487b7160e01b600052604160045260246000fd5b3461023a576107b0610d773661229a565b9033614060565b3461023a576107b0610d8f3661229a565b90610d9b828233614060565b336128fb565b3461023a57602036600319011261023a5760206102bc610dbf612012565b61231b565b3461023a57600036600319011261023a57610431610abc6121dc565b3461023a57602036600319011261023a57600435600052600c602052602060018060a01b0360406000205416604051908152f35b3461023a57604036600319011261023a57610e2d612012565b610e35611ffc565b600091610e4181612c8d565b916001600160a01b039081169160005b848110610e6357602086604051908152f35b610e6d8183612cb2565b6000526020601081526040600020604051610e878161205d565b60a0600587845416938484526001810154809685015260028101546040850152600381015460608501526004810154608085015201549101528514610ed6575b50610ed190613159565b610e51565b610ee490610ed19297612d22565b9590610ec7565b3461023a57604036600319011261023a576004356001600160401b03811161023a57610f1b903690600401612172565b60243590610f27612efa565b42821015610f3e5761070792610a6c9136916120cb565b60405162461bcd60e51b81526020600482015260076024820152662166757475726560c81b6044820152606490fd5b3461023a57602036600319011261023a576020610f8b6004356123de565b6040516001600160a01b039091168152f35b3461023a57604036600319011261023a57610fb6612012565b610fbe611ffc565b600091610fca8161231b565b916001600160a01b039081169160005b848110610fec57602086604051908152f35b610ff68183612b58565b60005260206010815260406000206040516110108161205d565b60a060058784541693848452600181015480968501526002810154604085015260038101546060850152600481015460808501520154910152851461105f575b5061105a90613159565b610fda565b61106d9061105a9297612d22565b9590611050565b3461023a57602036600319011261023a576004356008548110156110ab5761109d602091612be6565b90546040519160031b1c8152f35b60405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608490fd5b3461023a5760e036600319011261023a5761111e612012565b611126611ffc565b9061112f612efa565b6001600160a01b038116156114ae576001600160a01b0382161561147f5761116460c43560a435604435608435606435613b5c565b9190911561023a5760158054600101908190556040516370a0823160e01b8152306004820152939092906020856024816001600160a01b0385165afa9485156113e05760009561144b575b506040516370a0823160e01b81523360048201526020816024816001600160a01b0386165afa9081156113e057600091611419575b50604435116113ec576040516323b872dd60e01b60208201523360248201523060448201526044356064820152606481528060a08101106001600160401b0360a083011117610d505760a08101604052611247906001600160a01b038316613cea565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0386165afa9081156113e0576000916113ac575b5061139c85926112bb7fe7d9b7fd810a51c7f2f160d0c100b1bb756592fdeaf6b9b84425b44eca133e9b936112b560209a60443592612ddc565b14613cb6565b6040516112c78161205d565b60018060a01b038216815260058982016044358152604083016064358152606084016084358152608085019160a435835260a086019360c43585528a60005260108f5260406000209660018060a01b039051166001600160601b0360a01b885416178755516001870155516002860155516003850155516004840155519101556113518487612f50565b604080516044358152606435602082015260843591810191909152606081019590955260a435608086015260c43560a08601526001600160a01b0390811695169390819060c0820190565b0390a46001601255604051908152f35b90506020813d6020116113d8575b816113c760209383612093565b8101031261023a575161139c61127b565b3d91506113ba565b6040513d6000823e3d90fd5b60405162461bcd60e51b815260206004820152600560248201526454484c303160d81b6044820152606490fd5b90506020813d602011611443575b8161143460209383612093565b8101031261023a5751866111e4565b3d9150611427565b9094506020813d602011611477575b8161146760209383612093565b8101031261023a575193856111af565b3d915061145a565b60405162461bcd60e51b8152602060048201526007602482015266182fba37b5b2b760c91b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a0c17dc9958da5c1a595b9d60aa1b6044820152606490fd5b3461023a57602036600319011261023a5760206102bc6114ff612012565b612c8d565b3461023a576107b061151536612028565b916124a1565b3461023a57602036600319011261023a576020610f8b60043561410e565b3461023a57606036600319011261023a576004356001600160401b0360243581811161023a5761156d903690600401612119565b9060443590811161023a573660238201121561023a578060040135611591816120b4565b9161159f6040519384612093565b81835260209160248385019160051b8301019136831161023a57602401905b828210611674575050506115d0612efa565b825182510361164157506115e48251613127565b9260005b835181101561162e57806116026105406116299387613168565b61161f816001600160a01b036116188589613168565b511661317c565b6105518288613168565b6115e8565b6001601255604051806104318782612137565b6064906040519062461bcd60e51b82526004820152600c60248201526b3632b733ba342fb2b93937b960a11b6044820152fd5b81356001600160a01b038116810361023a5781529083019083016115be565b3461023a57604036600319011261023a5760206102bc6116b1612012565b60243590612b58565b3461023a57606036600319011261023a576004356116d6611ffc565b906044356001600160a01b038116810361023a576117008282610707956116fb612efa565b6124a1565b61170982612de9565b612d2f565b3461023a576107b061171f36612028565b9161172d610796843361253e565b612606565b3461023a57604036600319011261023a5761174b612012565b611753611ffc565b61175b612efa565b6117643361231b565b6001600160a01b039283169290919060005b838110611784576001601255005b806117926117b09233612b58565b806000526010602052868460406000205416146117b5575b50613159565b611776565b6117bf908561317c565b866117aa565b3461023a57600036600319011261023a576020600854604051908152f35b3461023a57604036600319011261023a576107b06117ff612012565b6024359061182c6001600160a01b0380611818856123de565b1680331480156118315761099d9150613f7f565b613ff9565b50600052600b60205260406000203360005260205261099d60ff60406000205416610993565b3461023a57604036600319011261023a57611870612efa565b61187b6004356123de565b6001600160a01b03906118919082163314613483565b6118a833826118a16024356123de565b1614613483565b60043560005260106020526040600020906005604051926118c88461205d565b82815416845260018101546020850152600281015460408501526003810154606085015260048101546080850152015460a0830152602435600052601060205260406000206040519161191a8361205d565b8082541690818452600183015460208501526002830154604085015260056003840154936060860194855260048101546080870152015460a085015284511603611cdd576040830151604083015103611caa576060830151905103611c775760a082015160a082015103611c43576119a66040830151602084015160808501519060a086015192613b1c565b6119c46040830151602084015160808501519060a086015192613b1c565b81148015611c0a575b15611bd95760243560005260106020526001604060002001546004356000526119ff6001604060002001918254612d22565b9055611a68611a2a611a1a6020860151602086015190612d22565b9360808087015191015190612d22565b6040850151611a6060a087015192611a4c611a458589613b09565b9188613aff565b611bc657611a5a8387612ddc565b90612c33565b948591613b1c565b906004356000526010602052826004604060002001558110611b60575b6024356000526010602052611abc604060002060056000918281558260018201558260028201558260038201558260048201550155565b611ac76024356134b8565b60043560005260106020527f68362f23abee957d51cf9ad5676447be98bb329fda7263be069a80d23569a8e860016040600020015491604085015194611b4c60a0606083015192015192604051938493600435996024359960043599879260a094919796959260c0850198855260208501526040840152606083015260808201520152565b0390a4600160125560206040516004358152f35b601160205260406000205481148015611bb2575b611a855760405162461bcd60e51b815260206004820152601260248201527137b934b3b4b730b61032b7321032b93937b960711b6044820152606490fd5b506024356000526040600020548114611b74565b611a5a84611bd48589612ddc565b612ddc565b60405162461bcd60e51b815260206004820152600960248201526832b7321032b93937b960b91b6044820152606490fd5b5060043560005260116020526040600020546024356000526040600020541480156119cd575060043560005260406000205415156119cd565b60405162461bcd60e51b815260206004820152600c60248201526b3832b934b7b21032b93937b960a11b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a31b634b3331032b93937b960a91b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a39ba30b93a1032b93937b960a91b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a3a37b5b2b71032b93937b960a91b6044820152606490fd5b3461023a57604036600319011261023a57611d29612012565b6024356001600160a01b0380611d3e836123de565b168091841614611df257803314908115611dcd575b5015611d62576107b09161289e565b60405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608490fd5b9050600052600560205260406000203360005260205260ff6040600020541683611d53565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b3461023a57604036600319011261023a57610707611e5d611ffc565b611e65612efa565b6004359061317c565b3461023a57602036600319011261023a576020610f8b600435612401565b3461023a57600036600319011261023a5760405160008054611ead816121a2565b80845290600190818116908115610b295750600114611ed65761043184610abc81860382612093565b600080805292507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b828410611f17575050508101602001610abc82610aac565b80546020858701810191909152909301928101611eff565b3461023a57602036600319011261023a576004359063ffffffff60e01b821680920361023a5760209163780e9d6360e01b8114908115611f71575b5015158152f35b6380ac58cd60e01b811491508115611fa3575b8115611f92575b5083611f6a565b6301ffc9a760e01b14905083611f8b565b635b5e139f60e01b81149150611f84565b60005b838110611fc75750506000910152565b8181015183820152602001611fb7565b90602091611ff081518092818552858086019101611fb4565b601f01601f1916010190565b602435906001600160a01b038216820361023a57565b600435906001600160a01b038216820361023a57565b606090600319011261023a576001600160a01b0390600435828116810361023a5791602435908116810361023a579060443590565b60c081019081106001600160401b03821117610d5057604052565b602081019081106001600160401b03821117610d5057604052565b90601f801991011681019081106001600160401b03821117610d5057604052565b6001600160401b038111610d505760051b60200190565b92916120d6826120b4565b916120e46040519384612093565b829481845260208094019160051b810192831161023a57905b82821061210a5750505050565b813581529083019083016120fd565b9080601f8301121561023a57816020612134933591016120cb565b90565b6020908160408183019282815285518094520193019160005b82811061215e575050505090565b835185529381019392810192600101612150565b9181601f8401121561023a578235916001600160401b03831161023a576020808501948460051b01011161023a57565b90600182811c921680156121d2575b60208310146121bc57565b634e487b7160e01b600052602260045260246000fd5b91607f16916121b1565b60405190600082601354916121f0836121a2565b808352926001908181169081156122785750600114612219575b5061221792500383612093565b565b6013600090815291507f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0905b84831061225d575061221793505081016020013861220a565b81935090816020925483858a01015201910190918592612244565b90506020925061221794915060ff191682840152151560051b8201013861220a565b604090600319011261023a576004356001600160a01b038116810361023a5790602435801515810361023a5790565b6001600160401b038111610d5057601f01601f191660200190565b9291926122f0826122c9565b916122fe6040519384612093565b82948184528183011161023a578281602093846000960137010152565b6001600160a01b0316801561233b57600052600360205260406000205490565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608490fd5b1561239957565b60405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606490fd5b6000908152600260205260409020546001600160a01b0316612134811515612392565b600081815260026020526040902054612424906001600160a01b03161515612392565b6000908152600460205260409020546001600160a01b031690565b1561244657565b60405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608490fd5b612217926107ab92604051926124b684612078565b6000845261079b610796843361253e565b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b1561252157565b60405162461bcd60e51b81528061253a600482016124c7565b0390fd5b906001600160a01b038080612552846123de565b16931691838314938415612585575b50831561256f575b50505090565b61257b91929350612401565b1614388080612569565b909350600052600560205260406000208260005260205260ff604060002054169238612561565b156125b357565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b9061262c90612614846123de565b6001600160a01b0384811693909291831684146125ac565b81811693841561284d5783801591826000146127745750506008549286600052600960205283604060002055600160401b841015610d5057846126e6916126a58961268c8860016000805160206141828339815191529a01600855612be6565b90919082549060031b91821b91600019901b1916179055565b818803612742575b600094898652600a6020528960408720956001600160601b0360a01b96878154169055612732575b6126df91506123de565b16146125ac565b85825260046020526040822081815416905583825260036020526040822060001981540190558482526040822060018154019055858252600260205284604083209182541617905580a4565b61273b91612d2f565b38896126d5565b61274b8561231b565b604060008a815260066020528181208382526020528b828220558b8152600760205220556126ad565b868203612796575b506126e690600080516020614182833981519152946126a5565b6127a0915061231b565b60001981019390841161283757846126e691600080516020614182833981519152956000908a82526020906007825260409182842054828103612800575b508c84528383812055858452600681528284209184525281205594509061277c565b86855260068252838520838652825283852054878652600683528486208287528352808587205585526007825283852055386127de565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b600082815260046020526040902080546001600160a01b0319166001600160a01b03928316908117909155906128d3836123de565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4565b6001600160a01b039182169291169081831461296d5760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000526005825260406000208560005282526129628160406000209060ff801983541691151516179055565b6040519015158152a3565b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b3d156129dd573d906129c3826122c9565b916129d16040519384612093565b82523d6000602084013e565b606090565b9091600091803b15612ad457612a2d6020918493604051948580948193630a85bd0160e11b9a8b84523360048501528460248501526044840152608060648401526084830190611fd7565b03926001600160a01b03165af190829082612a85575b5050612a7757612a516129b2565b80519081612a725760405162461bcd60e51b81528061253a600482016124c7565b602001fd5b6001600160e01b0319161490565b909192506020813d8211612acc575b81612aa160209383612093565b81010312612ac85751906001600160e01b031982168203612ac55750903880612a43565b80fd5b5080fd5b3d9150612a94565b50505050600190565b91926000929190813b15612b4e57602091612b339185604051958680958194630a85bd0160e11b9b8c845233600485015260018060a01b0380951660248501526044840152608060648401526084830190611fd7565b0393165af190829082612a85575050612a7757612a516129b2565b5050505050600190565b612b618161231b565b821015612b8d5760018060a01b0316600052600660205260406000209060005260205260406000205490565b60405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608490fd5b600854811015612c1d5760086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30190600090565b634e487b7160e01b600052603260045260246000fd5b8115612c3d570490565b634e487b7160e01b600052601260045260246000fd5b15612c5a57565b60405162461bcd60e51b815260206004820152600b60248201526a216164647265737328302960a81b6044820152606490fd5b6001600160a01b0316612ca1811515612c53565b600052600d60205260406000205490565b6001600160a01b03166000818152600d602052604081205491929091811015612ced576040928252600e602052828220908252602052205490565b60405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606490fd5b9190820180921161283757565b6001600160a01b031690612d44821515612c53565b60008281526020600d8152600d60409182842054600e825283852081865282528584862055858552600f825283852055600c8152828420866001600160601b0360a01b82541617905585845252812080549060018201809211612dc857557fcd57880fa6fb6b4aedb77272d2cfa8d03186b5034f9b672ccfcd3cd6edfecc9b9080a3565b634e487b7160e01b83526011600452602483fd5b9190820391821161283757565b6000818152600c60209081526040808320546001600160a01b0316939291612e12851515612c53565b848352600d81528183205460001990818101908111612eaf57858552600f835283852054818103612ec3575b508585528484812055868552600e835283852090855282528383812055858452600d82528284208054918201918211612eaf5755838352600c9052812080546001600160a01b03191690557f09f87139523b83583b15f476015dd9a27fae3a03f17202cdf77d063bef5d21c29080a3565b634e487b7160e01b85526011600452602485fd5b878652600e8452848620828752845284862054888752600e8552858720828852855280868820558652600f84528486205538612e3e565b600260125414612f0b576002601255565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b90604091825192612f6084612078565b60008085526001600160a01b03831691821561309857600085815260026020526040902054612f9b906001600160a01b031615155b156130db565b60085490858352602091600983528082852055600160401b811015613084579286949192828694612fde6107ab9a61268c8960016122179f9d9b01600855612be6565b612fe78761231b565b82855260068452818520818652845286828620558685526007845281852055600a83526002818520936001600160601b0360a01b9485815416905561302c888a612d2f565b60008881526002602052604090205461304f906001600160a01b03161515612f95565b8386526003815282862060018154019055878652528320918254161790556000805160206141828339815191528180a46129e2565b634e487b7160e01b84526041600452602484fd5b5162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606490fd5b156130e257565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b90613131826120b4565b61313e6040519182612093565b828152809261314f601f19916120b4565b0190602036910137565b60001981146128375760010190565b8051821015612c1d5760209160051b010190565b906001600160a01b038061318f836123de565b16908133149182156131fd575b5081156131e9575b50156131b7576122179161170982612de9565b60405162461bcd60e51b815260206004820152600a60248201526910b232b632b3b0ba37b960b11b6044820152606490fd5b3391506131f58361410e565b1614386131a4565b909150600052600b60205260406000203360005260205260ff60406000205416903861319c565b9190811015612c1d5760051b0190565b919060005b835181101561347d5761325782426132518488613168565b51613e8a565b918061326f575b50505061326a90613159565b613239565b6132798488613168565b5192613284846123de565b6001600160a01b039061329a9082163314613483565b846000526020906010825260409183836000209283541692871560001461346d576132e4915060056000918281558260018201558260028201558260038201558260048201550155565b6132ed876134b8565b8251916370a0823160e01b808452600490338286015260249084868381875afa95861561346257600096613433575b50865163a9059cbb60e01b86820152338382015260448082018b90528152608081016001600160401b0381118282101761341f578694939291613361918a5286613cea565b87519485938492835233908301525afa918215613414576000926133e3575b50509284926133bd7fa6faee2246474597b6de7c76bf9a45d256737543cb0806e6e805b55b38c7663f966112b56133d89561326a9c9b9a98612ddc565b51938493846040919493926060820195825260208201520152565b0390a290388061325e565b81819392933d831161340d575b6133fa8183612093565b81010312612ac5575051826133bd613380565b503d6133f0565b84513d6000823e3d90fd5b83604186634e487b7160e01b600052526000fd5b90958582813d831161345b575b61344a8183612093565b81010312612ac5575051943861331c565b503d613440565b87513d6000823e3d90fd5b80886001600293015501556132ed565b50509050565b1561348a57565b60405162461bcd60e51b815260206004820152600660248201526510b7bbb732b960d11b6044820152606490fd5b6134c1816123de565b6001600160a01b0390808216801591821561364157505060085483600052600960205280604060002055600160401b811015610d50578361268c82600161350b9401600855612be6565b6008546000199190828101908111612837576000938585526020906009825260409261353a8488205491612be6565b90549060031b1c61354e8161268c84612be6565b875260098352838720558686528583812055600854801561362d57850161357481612be6565b8782549160031b1b19169055600855868652600a8252828620936001600160601b0360a01b948581541690556135fc57906002916135b188612de9565b6135ba886123de565b888852600483528488208681541690551694858752600382528387209081540190558686525283209081541690556000805160206141828339815191528280a4565b50606491519062461bcd60e51b82526004820152600b60248201526a216164647265737328302960a81b6044820152fd5b634e487b7160e01b87526031600452602487fd5b61364a9061231b565b6000198101919082116128375760009185835260206007815260409283852054838103613690575b5087855284848120558452600681528284209184525281205561350b565b8186526006835284862084875283528486205482875260068452858720828852845280868820558652600783528486205538613672565b9190916136e66136d6826123de565b6001600160a01b03163314613483565b806000526010602052604060002090604051936137028561205d565b82546001600160a01b03168552600183015460208601818152600285015460408801526003850154606088015260048501546080880190815260059095015460a08801529390821015613acb578115613a9a5761376d6040870151855183519060a08a015192613b1c565b9060016015540194856015558597613786858351612ddc565b925191519160408201519160a08101519660608201519486670de0b6b3a7640000810204670de0b6b3a76400001487151715612837576137e8670de0b6b3a76400006137e06137da6137ee94838c02612c33565b87613b09565b048095612ddc565b82613aff565b613a765761382561380c6138028a84613b09565b611a5a878b612ddc565b985b898361381d83888c8c8c613b5c565b999098613b5c565b86919691613a6e575b5015613a36578860005260116020526040600020548015600014613a315750865b8085106139fb5785106139c3577f951d6388fa4b9c632ce8fdc16c4275079f7a0f61173a15b277546c9810fa44dd97610120978a600052601060205284600460406000208a600182015501556138a58c33612f50565b60018060a01b0384511660058d604087015190606088015160a089015192604051956138d08761205d565b8652602086018981526040870191825260608701928352608087019389855260a08801958652600052601060205260406000209660018060a01b039051166001600160601b0360a01b885416178755516001870155516002860155516003850155516004840155519101558a600052601160205260406000205480156000146139b257508a6000526011602052806040600020558b6000526040600020555b60408301519160a0606085015194015194604051988952602089015260408801526060870152608086015260a085015260c084015260e0830152610100820152a3565b90508b60005260406000205561396f565b60405162461bcd60e51b815260206004820152601060248201526f39b2b3b6b2b73a22b7321032b93937b960811b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d383630b71032b7321032b93937b960911b6044820152606490fd5b61384f565b60405162461bcd60e51b815260206004820152601060248201526f696e76616c696420656e64206461746560801b6044820152606490fd5b90503861382e565b613825613a94613a868a84613b09565b611a5a8b611bd4898d612ddc565b9861380e565b60405162461bcd60e51b81526020600482015260096024820152680c17dcd959db595b9d60ba1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b30b6b7bab73a1032b93937b960a11b6044820152606490fd5b8115612c3d570690565b8181029291811591840414171561283757565b9190613b288282613aff565b613b475792613b3d613b429261213495612c33565b613b09565b612d22565b92613b4281613b3d613b429461213497612c33565b9194939290948015613c86578115613c5857808211613c23578315613bf357613b858282613aff565b613bd95792613b3d613b4292613b9a95612c33565b809211613ba657600190565b60405162461bcd60e51b815260206004820152600b60248201526a18db1a5999880f88195b9960aa1b6044820152606490fd5b92613b4281613b3d613b4294613bee97612c33565b613b9a565b60405162461bcd60e51b81526020600482015260086024820152670c17dc195c9a5bd960c21b6044820152606490fd5b60405162461bcd60e51b815260206004820152600d60248201526c1c985d19480f88185b5bdd5b9d609a1b6044820152606490fd5b60405162461bcd60e51b8152602060048201526006602482015265305f7261746560d01b6044820152606490fd5b60405162461bcd60e51b81526020600482015260086024820152670c17d85b5bdd5b9d60c21b6044820152606490fd5b15613cbd57565b60405162461bcd60e51b81526020600482015260056024820152642a2426181960d91b6044820152606490fd5b60018060a01b03169060405160408101908082106001600160401b03831117610d5057613d5b916040526020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af1613d556129b2565b91613df1565b805191821591848315613dcd575b505050905015613d765750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b919381809450010312612ac857820151908115158203612ac5575080388084613d69565b91929015613e535750815115613e05575090565b3b15613e0e5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015613e665750805190602001fd5b60405162461bcd60e51b81526020600482015290819061253a906024830190611fd7565b90916000918252601060205260a06040832060405193613ea98561205d565b600180841b0382541685526001820154938460208701526002830154958660408201526003840154908160608201526005600486015495866080840152015495869101528297808811918215613f75575b50508015613f6b575b15613f1057505050509192565b613f5c94965090613f3b613f3485613f2f89613f5697969a989a612ddc565b612c33565b9283613b09565b9050868111613f6157613f50905b8097612ddc565b94613b09565b90612d22565b909192565b50613f5086613f49565b5085811115613f03565b1190503880613efa565b15613f8657565b60405162461bcd60e51b815260206004820152600e60248201526d10b7bbb732b927b832b930ba37b960911b6044820152606490fd5b15613fc357565b60405162461bcd60e51b815260206004820152600e60248201526d085cd95b1988185c1c1c9bdd985b60921b6044820152606490fd5b6000828152600a60205260409081902080546001600160a01b0319166001600160a01b039384169081179091557f5f05f4f4b46d943d34b887b4741055b5ab6decb7b4fd2670a98969d38a3640809290614052856123de565b8351921682526020820152a2565b6001600160a01b0391821691168082146140dd577f947bc3b5c76434e50335b9127e82fb1abb17b34d9380caf2a64cd8c6f43711849260609282600052600b6020526040600020816000526020526140c88260406000209060ff801983541691151516179055565b604051928352602083015215156040820152a1565b60405162461bcd60e51b815260206004820152600960248201526810b7b832b930ba37b960b91b6044820152606490fd5b600081815260026020526040902054614131906001600160a01b03161515612392565b6000908152600a60205260409020546001600160a01b031690565b1561415357565b60405162461bcd60e51b815260206004820152600660248201526510a0a226a4a760d11b6044820152606490fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122036043c0c65903ad135166f24827718d207573052c603642ce324da1475fa30a364736f6c63430008130033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000010546f6b656e4c6f636b7570506c616e73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003544c500000000000000000000000000000000000000000000000000000000000
0xa264697066735822122036043c0c65903ad135166f24827718d207573052c603642ce324da1475fa30a364736f6c63430008130033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000010546f6b656e4c6f636b7570506c616e73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003544c500000000000000000000000000000000000000000000000000000000000