0 txs
0 calls
constructor
constructor()
functions
claimerOperators
viewfunction claimerOperators(address) view returns (address)
DEFUND_ADDRESS
viewfunction DEFUND_ADDRESS() view returns (address)
delegation
viewfunction delegation() view returns (address)
delegationManager
viewfunction delegationManager() view returns (address)
delegators
viewfunction delegators(address) view returns (address)
explanation
purefunction explanation() pure returns (string)
getQuitRequestList
viewfunction getQuitRequestList() view returns (address[])
getSlashingParams
viewfunction getSlashingParams() view returns (uint256[2])
getSlashRecord
viewfunction getSlashRecord(uint256 batchIndex, address user) view returns (bool)
isSetParam
viewfunction isSetParam() view returns (bool)
messenger
viewfunction messenger() view returns (address)
operatorClaimers
viewfunction operatorClaimers(address) view returns (address)
operators
viewfunction operators(address) view returns (bytes)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
quitRequestList
viewfunction quitRequestList(uint256) view returns (address)
regulatoryAccount
viewfunction regulatoryAccount() view returns (address)
shares
viewfunction shares(address user) view returns (uint256)
sharesToUnderlying
viewfunction sharesToUnderlying(uint256 amountShares) view returns (uint256)
sharesToUnderlyingView
viewfunction sharesToUnderlyingView(uint256 amountShares) view returns (uint256)
slashAmount
viewfunction slashAmount(uint256) view returns (uint256)
stakers
viewfunction stakers(address, uint256) view returns (address)
totalShares
viewfunction totalShares() view returns (uint256)
tssDelegationContract
viewfunction tssDelegationContract() view returns (address)
tssDelegationManagerContract
viewfunction tssDelegationManagerContract() view returns (address)
tssGroupContract
viewfunction tssGroupContract() view returns (address)
tssManager
viewfunction tssManager() view returns (address)
underlyingToken
viewfunction underlyingToken() view returns (address)
underlyingToShares
viewfunction underlyingToShares(uint256 amountUnderlying) view returns (uint256)
underlyingToSharesView
viewfunction underlyingToSharesView(uint256 amountUnderlying) view returns (uint256)
userUnderlyingView
viewfunction userUnderlyingView(address user) view returns (uint256)
withdrawalRoots
viewfunction withdrawalRoots(address) view returns (bytes32)
withdrawals
viewfunction withdrawals(address) view returns (address depositor, tuple withdrawerAndNonce, address delegatedAddress)
canCompleteQueuedWithdrawal
nonpayablefunction canCompleteQueuedWithdrawal() returns (bool)
clearQuitRequestList
nonpayablefunction clearQuitRequestList()
completeWithdraw
nonpayablefunction completeWithdraw()
defund
nonpayablefunction defund() returns (uint256)
delegateTo
nonpayablefunction delegateTo(address _operator)
deposit
nonpayablefunction deposit(address depositor, address token, uint256 amount) returns (uint256 newShares)
deposit
nonpayablefunction deposit(uint256 amount) returns (uint256)
initialize
nonpayablefunction initialize(address _mantleToken, address _tssGroupContract, address _delegationManager, address _delegation, address _l1messenger, address _regulatoryAccount, address _tssManager)
isCanOperator
nonpayablefunction isCanOperator(address _addr) returns (bool)
isJailed
nonpayablefunction isJailed(address user) returns (bool)
onDelegationReceived
nonpayablefunction onDelegationReceived(address delegator, address operator, address[] delegationShares, uint256[] investorShares)
onDelegationReceived
nonpayablefunction onDelegationReceived(address delegator, address[] investorDelegationShares, uint256[] investorShares)
onDelegationWithdrawn
nonpayablefunction onDelegationWithdrawn(address delegator, address operator, address[] delegationShares, uint256[] investorShares)
onDelegationWithdrawn
nonpayablefunction onDelegationWithdrawn(address delegator, address[] investorDelegationShares, uint256[] investorShares)
payForService
payablefunction payForService(address token, uint256 amount) payable
quitRequest
nonpayablefunction quitRequest()
registerAsOperator
nonpayablefunction registerAsOperator(bytes _pubKey)
renounceOwnership
nonpayablefunction renounceOwnership()
setClaimer
nonpayablefunction setClaimer(address _operator, address _claimer)
setRegulatoryAccount
nonpayablefunction setRegulatoryAccount(address _account)
setSlashingParams
nonpayablefunction setSlashingParams(uint256[2] _slashAmount)
setTokenAddress
nonpayablefunction setTokenAddress(address _token)
setTssGroupAddress
nonpayablefunction setTssGroupAddress(address _tssGroup)
setTssManager
nonpayablefunction setTssManager(address _tssManager)
slashing
nonpayablefunction slashing(bytes _messageBytes, bytes _sig)
startWithdraw
nonpayablefunction startWithdraw()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unJail
nonpayablefunction unJail()
userUnderlying
nonpayablefunction userUnderlying(address user) returns (uint256)
withdraw
nonpayablefunction withdraw()
withdraw
nonpayablefunction withdraw(address depositor, address token, uint256 amountShares)
events
Defund
event Defund(address, address, uint256)
Deposit
event Deposit(address depositor, address token, uint256 amount)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Slashing
event Slashing(address, uint8)
Unpaused
event Unpaused(address account)
Withdraw
event Withdraw(address depositor, address token, uint256 amount)
WithdrawQueue
event WithdrawQueue(address, uint256)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b5060cd80546001600160a01b03191690556200002c62000032565b620000f4565b600054610100900460ff16156200009f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000f2576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61586c80620001046000396000f3fe6080604052600436106103c35760003560e01c80638f6a6240116101f2578063ce749c291161010d578063ea4d3c9b116100a0578063f47c83c51161006f578063f47c83c514610598578063f5cf673b14610bfe578063f756fa2114610c1e578063fee17dd514610c3357600080fd5b8063ea4d3c9b14610b7e578063f2bd740014610b9e578063f2fde38b14610bbe578063f3e7387514610bde57600080fd5b8063d9caed12116100dc578063d9caed1214610ae8578063df5cf72314610b08578063e3dae51c14610b28578063ea0c8c2f14610b4857600080fd5b8063ce749c2914610a5d578063ce7c2ac214610a72578063d323041d14610a92578063d58ecaaa14610ab257600080fd5b8063ac637c7a11610185578063bbb26c6311610154578063bbb26c63146109de578063c3a82e11146109f0578063c665c35a14610a1d578063c8b6cbf714610a3d57600080fd5b8063ac637c7a1461095c578063b1bbdc411461097c578063b3fc1cb21461099c578063b6b55f25146109be57600080fd5b80639c211730116101c15780639c211730146108e2578063a458413a14610907578063a5424a5514610927578063ab5921e11461094757600080fd5b80638f6a62401461086d57806390ed6bf41461088d57806395cf5bea146108a2578063965a303f146108c257600080fd5b80635716d17c116102e2578063740efec3116102755780638340f549116102445780638340f549146107d95780638c871019146107f95780638d23fc61146108195780638da5cb5b1461084f57600080fd5b8063740efec3146106dc5780637a8b2637146106f15780637a9262a214610711578063829673ef1461079357600080fd5b806360ac5166116102b157806360ac5166146106725780636dd300b5146106925780636eae5b11146106b2578063715018a6146106c757600080fd5b80635716d17c146105fa57806357b0f05f1461061a5780635887c33c1461063a5780635c975abb1461065a57600080fd5b8063358764761161035a5780633ccfd60b116103295780633ccfd60b14610583578063412cdd2c14610598578063490ab9d6146105b8578063553ca5f8146105da57600080fd5b806335876476146104ff5780633a98ef391461051f5780633c86a42f146105435780633cb747bf1461056357600080fd5b806326a4e8d21161039657806326a4e8d21461047d578063289087ba1461049d57806329f13431146104b757806332a9efc4146104d757600080fd5b8063111b8c02146103c857806313e7c9d8146103df57806314bfb527146104155780632495a59914610445575b600080fd5b3480156103d457600080fd5b506103dd610c48565b005b3480156103eb57600080fd5b506103ff6103fa36600461482f565b610c5e565b60405161040c91906148a8565b60405180910390f35b34801561042157600080fd5b5061043561043036600461482f565b610cf8565b604051901515815260200161040c565b34801561045157600080fd5b5060ca54610465906001600160a01b031681565b6040516001600160a01b03909116815260200161040c565b34801561048957600080fd5b506103dd61049836600461482f565b610e00565b3480156104a957600080fd5b5060dd546104359060ff1681565b3480156104c357600080fd5b506103dd6104d23660046148bb565b610e50565b3480156104e357600080fd5b50610465732f44bd2a54ac3fb20cd7783cf94334069641dac981565b34801561050b57600080fd5b506103dd61051a3660046148dd565b610f72565b34801561052b57600080fd5b5061053560cb5481565b60405190815260200161040c565b34801561054f57600080fd5b506103dd61055e36600461482f565b61112d565b34801561056f57600080fd5b5060cd54610465906001600160a01b031681565b34801561058f57600080fd5b506103dd61117d565b3480156105a457600080fd5b506103dd6105b3366004614af9565b505050565b3480156105c457600080fd5b506105cd611713565b60405161040c9190614b6f565b3480156105e657600080fd5b506105356105f536600461482f565b611775565b34801561060657600080fd5b5060cf54610465906001600160a01b031681565b34801561062657600080fd5b50610465610635366004614bbc565b611789565b34801561064657600080fd5b506103dd610655366004614c1e565b6117b3565b34801561066657600080fd5b5060975460ff16610435565b34801561067e57600080fd5b506103dd61068d36600461482f565b611ac5565b34801561069e57600080fd5b506103dd6106ad366004614c8a565b611b15565b3480156106be57600080fd5b506103dd611cca565b3480156106d357600080fd5b506103dd611ee7565b3480156106e857600080fd5b506103dd611ef9565b3480156106fd57600080fd5b5061053561070c366004614bbc565b612283565b34801561071d57600080fd5b5061078461072c36600461482f565b60d8602090815260009182526040918290206003810154835180850190945260048201546001600160a01b038082168652600160a01b9091046001600160601b03169385019390935260059091015490821692911683565b60405161040c93929190614d34565b34801561079f57600080fd5b506104356107ae366004614d64565b600091825260d5602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156107e557600080fd5b506105356107f4366004614d94565b6122b9565b34801561080557600080fd5b50610535610814366004614bbc565b612581565b34801561082557600080fd5b5061046561083436600461482f565b60da602052600090815260409020546001600160a01b031681565b34801561085b57600080fd5b506033546001600160a01b0316610465565b34801561087957600080fd5b5061053561088836600461482f565b61258c565b34801561089957600080fd5b506103dd61259a565b3480156108ae57600080fd5b506103dd6108bd366004614dd5565b612658565b3480156108ce57600080fd5b5060d054610465906001600160a01b031681565b3480156108ee57600080fd5b5060dd546104659061010090046001600160a01b031681565b34801561091357600080fd5b5061043561092236600461482f565b61276d565b34801561093357600080fd5b506103dd61094236600461482f565b6127f2565b34801561095357600080fd5b506103ff612848565b34801561096857600080fd5b506103dd61097736600461482f565b612868565b34801561098857600080fd5b506103dd610997366004614c8a565b61289a565b3480156109a857600080fd5b506109b1612c6f565b60405161040c9190614e17565b3480156109ca57600080fd5b506105356109d9366004614bbc565b612ca9565b6103dd6109ec366004614e48565b5050565b3480156109fc57600080fd5b50610535610a0b36600461482f565b60d76020526000908152604090205481565b348015610a2957600080fd5b5060d654610465906001600160a01b031681565b348015610a4957600080fd5b50610465610a58366004614e48565b612d41565b348015610a6957600080fd5b50610535612d79565b348015610a7e57600080fd5b50610535610a8d36600461482f565b612f40565b348015610a9e57600080fd5b5060ce54610465906001600160a01b031681565b348015610abe57600080fd5b50610465610acd36600461482f565b60db602052600090815260409020546001600160a01b031681565b348015610af457600080fd5b506103dd610b03366004614d94565b612fc3565b348015610b1457600080fd5b5060cc54610465906001600160a01b031681565b348015610b3457600080fd5b50610535610b43366004614bbc565b6131c5565b348015610b5457600080fd5b50610465610b6336600461482f565b60dc602052600090815260409020546001600160a01b031681565b348015610b8a57600080fd5b5060c954610465906001600160a01b031681565b348015610baa57600080fd5b50610535610bb9366004614bbc565b61320a565b348015610bca57600080fd5b506103dd610bd936600461482f565b613221565b348015610bea57600080fd5b50610535610bf9366004614bbc565b61329a565b348015610c0a57600080fd5b506103dd610c19366004614e74565b6132a5565b348015610c2a57600080fd5b506103dd61354b565b348015610c3f57600080fd5b506104356137cd565b610c50613a00565b610c5c60d260006146b9565b565b60d16020526000908152604090208054610c7790614ea2565b80601f0160208091040260200160405190810160405280929190818152602001828054610ca390614ea2565b8015610cf05780601f10610cc557610100808354040283529160200191610cf0565b820191906000526020600020905b815481529060010190602001808311610cd357829003601f168201915b505050505081565b60ce546001600160a01b03828116600090815260d16020526040808220905163152eee4560e21b81529193849316916354bbb91491610d3991600401614ed7565b600060405180830381600087803b158015610d5357600080fd5b505af1158015610d67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d8f9190810190614fa2565b805151909150604014610de05760405162461bcd60e51b81526020600482015260146024820152731d1cdcc81b595b58995c881b9bdd08195e1a5cdd60621b60448201526064015b60405180910390fd5b600181604001516001811115610df857610df8615081565b149392505050565b610e08613a00565b6001600160a01b038116610e2e5760405162461bcd60e51b8152600401610dd790615097565b60ca80546001600160a01b0319166001600160a01b0392909216919091179055565b610e58613a00565b8035602082013511610ec05760405162461bcd60e51b815260206004820152602b60248201527f696e76616c696420706172616d20736c617368416d6f756e742c20616e696d7560448201526a73203c3d20757074696d6560a81b6064820152608401610dd7565b60005b6002811015610f61576000828260028110610ee057610ee06150c0565b602002013511610f235760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b6044820152606401610dd7565b818160028110610f3557610f356150c0565b602002013560d38260028110610f4d57610f4d6150c0565b015580610f59816150ec565b915050610ec3565b505060dd805460ff19166001179055565b600054610100900460ff1615808015610f925750600054600160ff909116105b80610fac5750303b158015610fac575060005460ff166001145b61100f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610dd7565b6000805460ff191660011790558015611032576000805461ff0019166101001790555b61103a613a5a565b611042613a89565b60ca80546001600160a01b03808b166001600160a01b03199283161790925560ce80548a841690831617905560cf8054898416908316811790915560d08054898516908416811790915560c98054841690921790915560cc80548316909117905560cd805487841690831617905560d68054868416921691909117905560dd805491841661010002610100600160a81b03199092169190911790558015611123576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b611135613a00565b6001600160a01b03811661115b5760405162461bcd60e51b8152600401610dd790615097565b60d680546001600160a01b0319166001600160a01b0392909216919091179055565b60cc54604051633e28391d60e01b81523360048201526001600160a01b0390911690633e28391d9060240160206040518083038186803b1580156111c057600080fd5b505afa1580156111d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f89190615107565b6112345760405162461bcd60e51b815260206004820152600d60248201526c3737ba103232b632b3b0ba37b960991b6044820152606401610dd7565b33600090815260d760205260409020541561129d5760405162461bcd60e51b8152602060048201526024808201527f6d73672073656e64657220616c726561647920726571756573742077697468646044820152637261777360e01b6064820152608401610dd7565b604080516001808252818301909252600091602080830190803683370190505090506000816000815181106112d4576112d46150c0565b60209081029190910101526040805160018082528183019092526000918160200160208202803683370190505090503081600081518110611317576113176150c0565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020016020820280368337505060ca5482519293506001600160a01b031691839150600090611374576113746150c0565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090506113ba33612f40565b816000815181106113cd576113cd6150c0565b602090810291909101015260cf546040516329f0dcef60e21b81523360048201526000916001600160a01b03169063a7c373bc9060240160206040518083038186803b15801561141c57600080fd5b505afa158015611430573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114549190615129565b905060006040518060400160405280336001600160a01b0316815260200161147b84613ab8565b6001600160601b0316905260cc54604051631976849960e21b81523360048201529192506000916001600160a01b03909116906365da12649060240160206040518083038186803b1580156114cf57600080fd5b505afa1580156114e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115079190615142565b6040805160c08101825288815260208082018990528183018890523360608301819052608083018790526001600160a01b03851660a0840152600090815260d8825292909220815180519495509193849391926115689284929101906146d7565b50602082810151805161158192600185019201906146d7565b506040820151805161159d916002840191602090910190614738565b5060608201516003820180546001600160a01b039283166001600160a01b031991821617909155608084015180516020909101516001600160601b0316600160a01b029083161760048085019190915560a09094015160059093018054938316939091169290921790915560cf5460405163529075a560e01b8152600093919092169163529075a59161163c9133918e918e918e918e918d91016151d3565b602060405180830381600087803b15801561165657600080fd5b505af115801561166a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168e9190615129565b33600081815260d76020526040812083905588519293507f784199bc7528da846b1da87aeba29604de8f22a93e73379d5d1c7282fa3c727f928991906116d6576116d66150c0565b60200260200101516040516117009291906001600160a01b03929092168252602082015260400190565b60405180910390a1505050505050505050565b606060d280548060200260200160405190810160405280929190818152602001828054801561176b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161174d575b5050505050905090565b600061178361070c83612f40565b92915050565b60d2818154811061179957600080fd5b6000918252602090912001546001600160a01b0316905081565b600260655414156118065760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610dd7565b600260655560dd5461010090046001600160a01b031633146118835760405162461bcd60e51b815260206004820152603060248201527f5473735374616b696e67536c617368696e673a206d73672e73656e646572206960448201526f39903737ba103a39b9a6b0b730b3b2b960811b6064820152608401610dd7565b60006118918486018661524c565b90506118a08160200151610cf8565b156118ed5760405162461bcd60e51b815260206004820152601760248201527f746865206e6f646520616c7265616479206a61696c65640000000000000000006044820152606401610dd7565b8051600090815260d560209081526040808320828501516001600160a01b0316845290915290205460ff16156119575760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdb185cda1959608a1b6044820152606401610dd7565b8051600090815260d560209081526040808320828501516001600160a01b039081168552925291829020805460ff1916600117905560ce549151911690633231a7f0906119a79088908890615344565b6040519081900381206001600160e01b031960e084901b1682526119d19187908790600401615354565b602060405180830381600087803b1580156119eb57600080fd5b505af11580156119ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a239190615107565b611a6f5760405162461bcd60e51b815260206004820152601c60248201527f7369676e6572206e6f74207473732067726f757020707562206b6579000000006044820152606401610dd7565b611a7881613b24565b7f9453459a6e9fa2069f1490c99cec15646afa157300f218a7f7840b23d09dbd3e81602001518260600151604051611ab192919061538a565b60405180910390a150506001606555505050565b611acd613a00565b6001600160a01b038116611af35760405162461bcd60e51b8152600401610dd790615097565b60ce80546001600160a01b0319166001600160a01b0392909216919091179055565b60cc546001600160a01b03163314611b3f5760405162461bcd60e51b8152600401610dd7906153c5565b815160018114611b8b5760405162461bcd60e51b815260206004820152601760248201527664656c65676174696f6e206f6e6c7920666f722074737360481b6044820152606401610dd7565b8151600114611bdc5760405162461bcd60e51b815260206004820152601d60248201527f64656c65676174696f6e207368617265206f6e6c7920666f72207473730000006044820152606401610dd7565b306001600160a01b031683600081518110611bf957611bf96150c0565b60200260200101516001600160a01b031614611c535760405162461bcd60e51b81526020600482015260196024820152781b5d5cdd081d5cd94818dd5c9c995b9d0818dbdb9d1c9858dd603a1b6044820152606401610dd7565b6001600160a01b03858116600090815260da602052604090205416611cc3576001600160a01b03808616600081815260da602090815260408083208054958a166001600160a01b03199687168117909155835260d982528220805460018101825590835291200180549092161790555b5050505050565b60dd5460ff16611d1c5760405162461bcd60e51b815260206004820152601d60248201527f68617665206e6f74207365742074686520736c61736820616d6f756e740000006044820152606401610dd7565b611d2533610cf8565b611d8b5760405162461bcd60e51b815260206004820152603160248201527f416e20756e6a61696c6564207573657220646f65736e2774206e65656420746f6044820152700818d85b1b081d1a1a5cc81b595d1a1bd9607a1b6064820152608401610dd7565b6000611d95613d84565b905060d36001015460cb5460cc5460405163778e55f360e01b815284916001600160a01b03169063778e55f390611dd2903390309060040161540e565b60206040518083038186803b158015611dea57600080fd5b505afa158015611dfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e229190615129565b611e2c9190615428565b611e369190615447565b1015611e7b5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610dd7565b60ce5433600090815260d160205260409081902090516310a7b12760e21b81526001600160a01b039092169163429ec49c91611eb991600401614ed7565b600060405180830381600087803b158015611ed357600080fd5b505af1158015611cc3573d6000803e3d6000fd5b611eef613a00565b610c5c6000613e05565b60026065541415611f4c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610dd7565b600260655560cc5460405163778e55f360e01b81526000916001600160a01b03169063778e55f390611f84903390309060040161540e565b60206040518083038186803b158015611f9c57600080fd5b505afa158015611fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd49190615129565b116120175760405162461bcd60e51b8152602060048201526013602482015272191bc81b9bdd081a185d994819195c1bdcda5d606a1b6044820152606401610dd7565b60ce5433600090815260d16020526040908190209051630243371760e51b81526001600160a01b0390921691634866e2e09161205591600401614ed7565b602060405180830381600087803b15801561206f57600080fd5b505af1158015612083573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a79190615107565b8061213d575060ce5433600090815260d16020526040908190209051635e5e2fe360e11b81526001600160a01b039092169163bcbc5fc6916120eb91600401614ed7565b602060405180830381600087803b15801561210557600080fd5b505af1158015612119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213d9190615107565b61219b5760405162461bcd60e51b815260206004820152602960248201527f6e6f742061742074686520696e6163746976652067726f7570206f722061637460448201526806976652067726f75760bc1b6064820152608401610dd7565b60005b60d25481101561223a57336001600160a01b031660d282815481106121c5576121c56150c0565b6000918252602090912001546001600160a01b031614156122285760405162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2071756974526571756573744c6973740000000000006044820152606401610dd7565b80612232816150ec565b91505061219e565b5060d28054600181810183556000929092527ff2192e1030363415d7b4fb0406540a0060e8e2fc8982f3f32289379e11fa65460180546001600160a01b03191633179055606555565b600060cb5460001415612294575090565b60cb54826122a0613d84565b6122aa9190615428565b6117839190615447565b919050565b60006122c3613e57565b60c9546001600160a01b031633146122ed5760405162461bcd60e51b8152600401610dd7906153c5565b60ca546001600160a01b038481169116146123705760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e5368617265426173652e6465706f7369743a2043616e60448201527f206f6e6c79206465706f73697420756e6465726c79696e67546f6b656e0000006064820152608401610dd7565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b179052905160009182916001600160a01b038716916123b391615469565b6000604051808303816000865af19150503d80600081146123f0576040519150601f19603f3d011682016040523d82523d6000602084013e6123f5565b606091505b50915091508161245c5760405162461bcd60e51b815260206004820152602c60248201527f756e6465726c79696e67546f6b656e2068617665206e6f206d6574686f64207760448201526b69746820646563696d616c7360a01b6064820152608401610dd7565b600061246782615485565b905061247481600a61558d565b61247f906001615428565b8510156124c65760405162461bcd60e51b8152602060048201526015602482015274185b5bdd5b9d081b5d5cdd0819dd080c481d5b9a5d605a1b6044820152606401610dd7565b6000856124d1613d84565b6124db9190615599565b90508015806124ea575060cb54155b156124f757859450612513565b8060cb54876125069190615428565b6125109190615447565b94505b8460cb600082825461252591906155b0565b9091555050604080516001600160a01b03808b168252891660208201529081018790527f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f629060600160405180910390a1505050505b9392505050565b6000611783826131c5565b6000611783610bf983612f40565b33600090815260d760205260409020546126055760405162461bcd60e51b815260206004820152602660248201527f6d73672073656e646572206d757374207265717565737420776974686472617760448201526508199a5c9cdd60d21b6064820152608401610dd7565b33600081815260d760205260408082205460cf5491516331f8ee6760e11b8152600481018290526024810194909452604484019290925290916001600160a01b03909116906363f1dcce90606401611eb9565b61269782828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613e9d92505050565b6001600160a01b0316336001600160a01b0316146126ee5760405162461bcd60e51b81526020600482015260146024820152730e0eac4d8d2c640d6caf240dcdee840dac2e8c6d60631b6044820152606401610dd7565b60d0546040516311a38c8560e01b81526001600160a01b03909116906311a38c8590612720903090339060040161540e565b600060405180830381600087803b15801561273a57600080fd5b505af115801561274e573d6000803e3d6000fd5b505033600090815260d1602052604090206105b3925090508383614773565b60cf546040516358775aaf60e11b81526000916001600160a01b03169063b0eeb55e906127a0908590309060040161540e565b602060405180830381600087803b1580156127ba57600080fd5b505af11580156127ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117839190615107565b6127fa613a00565b6001600160a01b0381166128205760405162461bcd60e51b8152600401610dd790615097565b60dd80546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60606040518060800160405280604881526020016157ef60489139905090565b60d05460405163438bb7e560e01b81526001600160a01b039091169063438bb7e590611eb9908490339060040161540e565b60cc546001600160a01b031633146128c45760405162461bcd60e51b8152600401610dd7906153c5565b8151600181146129105760405162461bcd60e51b815260206004820152601760248201527664656c65676174696f6e206f6e6c7920666f722074737360481b6044820152606401610dd7565b81516001146129615760405162461bcd60e51b815260206004820152601d60248201527f64656c65676174696f6e207368617265206f6e6c7920666f72207473730000006044820152606401610dd7565b306001600160a01b03168360008151811061297e5761297e6150c0565b60200260200101516001600160a01b0316146129d85760405162461bcd60e51b81526020600482015260196024820152781b5d5cdd081d5cd94818dd5c9c995b9d0818dbdb9d1c9858dd603a1b6044820152606401610dd7565b816000815181106129eb576129eb6150c0565b602002602001015160cf60009054906101000a90046001600160a01b03166001600160a01b03166305579ccc8786600081518110612a2b57612a2b6150c0565b60200260200101516040518363ffffffff1660e01b8152600401612a5092919061540e565b60206040518083038186803b158015612a6857600080fd5b505afa158015612a7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa09190615129565b1415611cc3576001600160a01b038416600090815260d96020908152604080832080548251818502810185019093528083529192909190830182828015612b1057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612af2575b5050505050905060005b8151811015612c6657866001600160a01b0316828281518110612b3f57612b3f6150c0565b60200260200101516001600160a01b03161415612c54576001600160a01b038616600090815260d9602052604090208251612b7c90600190615599565b81548110612b8c57612b8c6150c0565b60009182526020808320909101546001600160a01b03898116845260d99092526040909220805491909216919083908110612bc957612bc96150c0565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918816815260d990915260409020805480612c0e57612c0e6155c8565b60008281526020808220830160001990810180546001600160a01b031990811690915593019093556001600160a01b038a16815260da9092526040909120805490911690555b80612c5e816150ec565b915050612b1a565b50505050505050565b612c776147e7565b60408051808201918290529060d39060029082845b815481526020019060010190808311612c8c575050505050905090565b60cf5460ca54604051631abeb0d960e01b81523060048201526001600160a01b0391821660248201526044810184905233606482015260009283921690631abeb0d990608401602060405180830381600087803b158015612d0957600080fd5b505af1158015612d1d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257a9190615129565b60d96020528160005260406000208181548110612d5d57600080fd5b6000918252602090912001546001600160a01b03169150829050565b60ca546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a082319060240160206040518083038186803b158015612dc157600080fd5b505afa158015612dd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612df99190615129565b905060008111612e425760405162461bcd60e51b81526020600482015260146024820152734e6f742073756666696369656e742066756e647360601b6044820152606401610dd7565b60ca5460405163a9059cbb60e01b8152732f44bd2a54ac3fb20cd7783cf94334069641dac96004820152602481018390526001600160a01b039091169063a9059cbb90604401602060405180830381600087803b158015612ea257600080fd5b505af1158015612eb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eda9190615107565b5060ca54604080516001600160a01b039092168252732f44bd2a54ac3fb20cd7783cf94334069641dac9602083015281018290527f3bb082152a6aeca4accd7a549583361cf3387c060a33681f9bc6f22fa6333f8c9060600160405180910390a1919050565b60c954604051634e5b005d60e11b81526000916001600160a01b031690639cb600ba90612f73908590309060040161540e565b60206040518083038186803b158015612f8b57600080fd5b505afa158015612f9f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117839190615129565b612fcb613e57565b60c9546001600160a01b03163314612ff55760405162461bcd60e51b8152600401610dd7906153c5565b60ca546001600160a01b038381169116146130835760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e5368617265426173652e77697468647261773a20436160448201527f6e206f6e6c792077697468647261772074686520737472617465677920746f6b60648201526132b760f11b608482015260a401610dd7565b60cb548111156131185760405162461bcd60e51b815260206004820152605460248201527f44656c65676174696f6e5368617265426173652e77697468647261773a20616d60448201527f6f756e74536861726573206d757374206265206c657373207468616e206f7220606482015273657175616c20746f20746f74616c53686172657360601b608482015260a401610dd7565b60cb805482810390915560008282141561313b57613134613d84565b905061315c565b8183613145613d84565b61314f9190615428565b6131599190615447565b90505b60ca54613173906001600160a01b03168683613efc565b604080516001600160a01b038088168252861660208201529081018290527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9060600160405180910390a15050505050565b6000806131d0613d84565b90508015806131df575060cb54155b156131eb575090919050565b8060cb54846131fa9190615428565b61257a9190615447565b50919050565b60d3816002811061321a57600080fd5b0154905081565b613229613a00565b6001600160a01b03811661328e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610dd7565b61329781613e05565b50565b600061178382612283565b336001600160a01b0383161461330e5760405162461bcd60e51b815260206004820152602860248201527f6d73672073656e64657220697320646966662077697468206f70657261746f72604482015267206164647265737360c01b6064820152608401610dd7565b60cc546040516336b87bd760e11b81523360048201526001600160a01b0390911690636d70f7ae9060240160206040518083038186803b15801561335157600080fd5b505afa158015613365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133899190615107565b6133e35760405162461bcd60e51b815260206004820152602560248201527f6d73672073656e646572206973206e6f742072656769737465726564206f70656044820152643930ba37b960d91b6064820152608401610dd7565b6001600160a01b03818116600090815260dc6020526040902054161561344b5760405162461bcd60e51b815260206004820152601960248201527f74686520636c61696d657220686173206265656e2075736564000000000000006044820152606401610dd7565b6001600160a01b03828116600090815260db602052604090205416156134a1576001600160a01b03808316600090815260db6020908152604080832054909316825260dc90522080546001600160a01b03191690555b6001600160a01b03808316600081815260db6020908152604080832080549587166001600160a01b03199687168117909155835260dc90915280822080549094169092179092555163f5cf673b60e01b90613502908590859060240161540e565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290506105b36020602160991b01621e848083613f4e565b33600090815260d760205260409020546135775760405162461bcd60e51b8152600401610dd7906155de565b33600090815260d8602090815260408083208151815460e09481028201850190935260c081018381529093919284928491908401828280156135e257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116135c4575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561364457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613626575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561369c57602002820191906000526020600020905b815481526020019060010190808311613688575b505050918352505060038201546001600160a01b039081166020808401919091526040805180820182526004808701548086168352600160a01b90046001600160601b03169382019390935281850152600590940154821660609093019290925260cf54925163218c446b60e21b8152939450919091169163863111ac9161372b9133918691600191016156ad565b600060405180830381600087803b15801561374557600080fd5b505af1158015613759573d6000803e3d6000fd5b505033600090815260d76020908152604080832083905560d890915281209250905061378582826146b9565b6137936001830160006146b9565b6137a16002830160006146b9565b506003810180546001600160a01b03199081169091556000600483015560059091018054909116905550565b33600090815260d760205260408120546137f95760405162461bcd60e51b8152600401610dd7906155de565b33600090815260d8602090815260408083208151815460e09481028201850190935260c0810183815290939192849284919084018282801561386457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613846575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156138c657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116138a8575b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561391e57602002820191906000526020600020905b81548152602001906001019080831161390a575b505050918352505060038201546001600160a01b039081166020808401919091526040805180820182526004808701548086168352600160a01b90046001600160601b03169382019390935281850152600590940154821660609093019290925260c95492516329a8131760e11b81529394509190911691635350262e916139a8918591016156e3565b602060405180830381600087803b1580156139c257600080fd5b505af11580156139d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139fa9190615107565b91505090565b6033546001600160a01b03163314610c5c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610dd7565b600054610100900460ff16613a815760405162461bcd60e51b8152600401610dd7906156f6565b610c5c613fb0565b600054610100900460ff16613ab05760405162461bcd60e51b8152600401610dd7906156f6565b610c5c613fe0565b60006001600160601b03821115613b205760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b6064820152608401610dd7565b5090565b60dd5460ff16613b765760405162461bcd60e51b815260206004820152601d60248201527f68617665206e6f74207365742074686520736c61736820616d6f756e740000006044820152606401610dd7565b6020808201516001600160a01b0316600090815260d1909152604081208054613b9e90614ea2565b80601f0160208091040260200160405190810160405280929190818152602001828054613bca90614ea2565b8015613c175780601f10613bec57610100808354040283529160200191613c17565b820191906000526020600020905b815481529060010190602001808311613bfa57829003601f168201915b5093945060009350613c2892505050565b82606001516001811115613c3e57613c3e615081565b1415613cb55760ce5460405163254ff98160e01b81526001600160a01b039091169063254ff98190613c749084906004016148a8565b600060405180830381600087803b158015613c8e57600080fd5b505af1158015613ca2573d6000803e3d6000fd5b505050506109ec8260200151600061400e565b600182606001516001811115613ccd57613ccd615081565b1415613d445760ce5460405163254ff98160e01b81526001600160a01b039091169063254ff98190613d039084906004016148a8565b600060405180830381600087803b158015613d1d57600080fd5b505af1158015613d31573d6000803e3d6000fd5b505050506109ec8260200151600161400e565b60405162461bcd60e51b8152602060048201526015602482015274657272207479706520666f7220736c617368696e6760581b6044820152606401610dd7565b60ca546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b158015613dc857600080fd5b505afa158015613ddc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e009190615129565b905090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60975460ff1615610c5c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610dd7565b60008151604014613ef05760405162461bcd60e51b815260206004820152601f60248201527f7075626c6963206b6579206c656e677468206d757374203634206279746573006044820152606401610dd7565b50805160209091012090565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526105b390849061446f565b60cd54604051633dbb202b60e01b81526001600160a01b0390911690633dbb202b90613f8290869085908790600401615741565b600060405180830381600087803b158015613f9c57600080fd5b505af1158015612c66573d6000803e3d6000fd5b600054610100900460ff16613fd75760405162461bcd60e51b8152600401610dd7906156f6565b610c5c33613e05565b600054610100900460ff166140075760405162461bcd60e51b8152600401610dd7906156f6565b6001606555565b600080614019613d84565b905060d3836002811061402e5761402e6150c0565b015460cb5460cc5460405163778e55f360e01b815284916001600160a01b03169063778e55f390614065908a90309060040161540e565b60206040518083038186803b15801561407d57600080fd5b505afa158015614091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140b59190615129565b6140bf9190615428565b6140c99190615447565b10156141175760405162461bcd60e51b815260206004820152601a60248201527f646f206e6f74206861766520656e6f75676874207368617265730000000000006044820152606401610dd7565b8060cb5460d3856002811061412e5761412e6150c0565b015461413a9190615428565b6141449190615447565b60cc5460405163778e55f360e01b81529193506000916001600160a01b039091169063778e55f39061417c908890309060040161540e565b60206040518083038186803b15801561419457600080fd5b505afa1580156141a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141cc9190615129565b60408051600180825281830190925291925060009190602080830190803683370190505090503081600081518110614206576142066150c0565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020016020820280368337019050509050600081600081518110614258576142586150c0565b6020908102919091010152604080516001808252818301909252600091816020016020820280368337505060ca5482519293506001600160a01b0316918391506000906142a7576142a76150c0565b6001600160a01b03928316602091820292909201810191909152908916600090815260d982526040808220805482518186028101860190935280835292939192909183018282801561432257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311614304575b5050505050905060005b815181101561446357600061435983838151811061434c5761434c6150c0565b6020026020010151612f40565b60408051600180825281830190925291925060009190602080830190803683370190505090508761438a838c615428565b6143949190615447565b816000815181106143a7576143a76150c0565b602090810291909101015260cf5484516001600160a01b03909116906306f1f684908690869081106143db576143db6150c0565b602090810291909101015160d6546040516001600160e01b031960e085901b16815261441c92916001600160a01b0316908c908b908d90899060040161577b565b600060405180830381600087803b15801561443657600080fd5b505af115801561444a573d6000803e3d6000fd5b505050505050808061445b906150ec565b91505061432c565b50505050505050505050565b60006144c4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166145419092919063ffffffff16565b8051909150156105b357808060200190518101906144e29190615107565b6105b35760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610dd7565b60606145508484600085614558565b949350505050565b6060824710156145b95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610dd7565b843b6146075760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610dd7565b600080866001600160a01b031685876040516146239190615469565b60006040518083038185875af1925050503d8060008114614660576040519150601f19603f3d011682016040523d82523d6000602084013e614665565b606091505b5091509150614675828286614680565b979650505050505050565b6060831561468f57508161257a565b82511561469f5782518084602001fd5b8160405162461bcd60e51b8152600401610dd791906148a8565b50805460008255906000526020600020908101906132979190614805565b82805482825590600052602060002090810192821561472c579160200282015b8281111561472c57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906146f7565b50613b20929150614805565b82805482825590600052602060002090810192821561472c579160200282015b8281111561472c578251825591602001919060010190614758565b82805461477f90614ea2565b90600052602060002090601f0160209004810192826147a1576000855561472c565b82601f106147ba5782800160ff1982351617855561472c565b8280016001018555821561472c579182015b8281111561472c5782358255916020019190600101906147cc565b60405180604001604052806002906020820280368337509192915050565b5b80821115613b205760008155600101614806565b6001600160a01b038116811461329757600080fd5b60006020828403121561484157600080fd5b813561257a8161481a565b60005b8381101561486757818101518382015260200161484f565b83811115614876576000848401525b50505050565b6000815180845261489481602086016020860161484c565b601f01601f19169290920160200192915050565b60208152600061257a602083018461487c565b6000604082840312156148cd57600080fd5b8260408301111561320457600080fd5b600080600080600080600060e0888a0312156148f857600080fd5b87356149038161481a565b965060208801356149138161481a565b955060408801356149238161481a565b945060608801356149338161481a565b935060808801356149438161481a565b925060a08801356149538161481a565b915060c08801356149638161481a565b8091505092959891949750929550565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156149ac576149ac614973565b60405290565b6040516080810167ffffffffffffffff811182821017156149ac576149ac614973565b604051601f8201601f1916810167ffffffffffffffff811182821017156149fe576149fe614973565b604052919050565b600067ffffffffffffffff821115614a2057614a20614973565b5060051b60200190565b600082601f830112614a3b57600080fd5b81356020614a50614a4b83614a06565b6149d5565b82815260059290921b84018101918181019086841115614a6f57600080fd5b8286015b84811015614a93578035614a868161481a565b8352918301918301614a73565b509695505050505050565b600082601f830112614aaf57600080fd5b81356020614abf614a4b83614a06565b82815260059290921b84018101918181019086841115614ade57600080fd5b8286015b84811015614a935780358352918301918301614ae2565b600080600060608486031215614b0e57600080fd5b8335614b198161481a565b9250602084013567ffffffffffffffff80821115614b3657600080fd5b614b4287838801614a2a565b93506040860135915080821115614b5857600080fd5b50614b6586828701614a9e565b9150509250925092565b6020808252825182820181905260009190848201906040850190845b81811015614bb05783516001600160a01b031683529284019291840191600101614b8b565b50909695505050505050565b600060208284031215614bce57600080fd5b5035919050565b60008083601f840112614be757600080fd5b50813567ffffffffffffffff811115614bff57600080fd5b602083019150836020828501011115614c1757600080fd5b9250929050565b60008060008060408587031215614c3457600080fd5b843567ffffffffffffffff80821115614c4c57600080fd5b614c5888838901614bd5565b90965094506020870135915080821115614c7157600080fd5b50614c7e87828801614bd5565b95989497509550505050565b60008060008060808587031215614ca057600080fd5b8435614cab8161481a565b93506020850135614cbb8161481a565b9250604085013567ffffffffffffffff80821115614cd857600080fd5b614ce488838901614a2a565b93506060870135915080821115614cfa57600080fd5b50614d0787828801614a9e565b91505092959194509250565b80516001600160a01b031682526020908101516001600160601b0316910152565b6001600160a01b0384811682526080820190614d536020840186614d13565b808416606084015250949350505050565b60008060408385031215614d7757600080fd5b823591506020830135614d898161481a565b809150509250929050565b600080600060608486031215614da957600080fd5b8335614db48161481a565b92506020840135614dc48161481a565b929592945050506040919091013590565b60008060208385031215614de857600080fd5b823567ffffffffffffffff811115614dff57600080fd5b614e0b85828601614bd5565b90969095509350505050565b60408101818360005b6002811015614e3f578151835260209283019290910190600101614e20565b50505092915050565b60008060408385031215614e5b57600080fd5b8235614e668161481a565b946020939093013593505050565b60008060408385031215614e8757600080fd5b8235614e928161481a565b91506020830135614d898161481a565b600181811c90821680614eb657607f821691505b6020821081141561320457634e487b7160e01b600052602260045260246000fd5b600060208083526000845481600182811c915080831680614ef957607f831692505b858310811415614f1757634e487b7160e01b85526022600452602485fd5b878601838152602001818015614f345760018114614f4557614f70565b60ff19861682528782019650614f70565b60008b81526020902060005b86811015614f6a57815484820152908501908901614f51565b83019750505b50949998505050505050505050565b80516122b48161481a565b6002811061329757600080fd5b80516122b481614f8a565b60006020808385031215614fb557600080fd5b825167ffffffffffffffff80821115614fcd57600080fd5b9084019060608287031215614fe157600080fd5b614fe9614989565b825182811115614ff857600080fd5b8301601f8101881361500957600080fd5b80518381111561501b5761501b614973565b61502d601f8201601f191687016149d5565b9350808452888682840101111561504357600080fd5b6150528187860188850161484c565b5050818152615062848401614f7f565b8482015261507260408401614f97565b60408201529695505050505050565b634e487b7160e01b600052602160045260246000fd5b6020808252600f908201526e496e76616c6964206164647265737360881b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415615100576151006150d6565b5060010190565b60006020828403121561511957600080fd5b8151801515811461257a57600080fd5b60006020828403121561513b57600080fd5b5051919050565b60006020828403121561515457600080fd5b815161257a8161481a565b600081518084526020808501945080840160005b8381101561518f57815187529582019590820190600101615173565b509495945050505050565b600081518084526020808501945080840160005b8381101561518f5781516001600160a01b0316875295820195908201906001016151ae565b6001600160a01b038716815260e0602082018190526000906151f79083018861515f565b8281036040840152615209818861519a565b9050828103606084015261521d818761519a565b90508281036080840152615231818661515f565b91505061467560a0830184614d13565b80356122b481614f8a565b6000602080838503121561525f57600080fd5b823567ffffffffffffffff8082111561527757600080fd5b908401906080828703121561528b57600080fd5b6152936149b2565b82358152838301356152a48161481a565b818501526040830135828111156152ba57600080fd5b83019150601f820187136152cd57600080fd5b81356152db614a4b82614a06565b81815260059190911b830185019085810190898311156152fa57600080fd5b938601935b828510156153215784356153128161481a565b825293860193908601906152ff565b604084015250615335905060608401615241565b60608201529695505050505050565b8183823760009101908152919050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b6001600160a01b038316815260408101600283106153b857634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b60208082526029908201527f44656c65676174696f6e5368617265426173652e6f6e6c7944656c656761746960408201526837b726b0b730b3b2b960b91b606082015260800190565b6001600160a01b0392831681529116602082015260400190565b6000816000190483118215151615615442576154426150d6565b500290565b60008261546457634e487b7160e01b600052601260045260246000fd5b500490565b6000825161547b81846020870161484c565b9190910192915050565b805160208083015191908110156132045760001960209190910360031b1b16919050565b600181815b808511156154e45781600019048211156154ca576154ca6150d6565b808516156154d757918102915b93841c93908002906154ae565b509250929050565b6000826154fb57506001611783565b8161550857506000611783565b816001811461551e576002811461552857615544565b6001915050611783565b60ff841115615539576155396150d6565b50506001821b611783565b5060208310610133831016604e8410600b8410161715615567575081810a611783565b61557183836154a9565b8060001904821115615585576155856150d6565b029392505050565b600061257a83836154ec565b6000828210156155ab576155ab6150d6565b500390565b600082198211156155c3576155c36150d6565b500190565b634e487b7160e01b600052603160045260246000fd5b60208082526024908201527f6d73672073656e64657220646964206e6f7420726571756573742077697468646040820152637261777360e01b606082015260800190565b6000815160e0845261563760e085018261519a565b905060208301518482036020860152615650828261519a565b9150506040830151848203604086015261566a828261515f565b915050606083015160018060a01b038082166060870152608085015191506156956080870183614d13565b8060a08601511660c087015250508091505092915050565b6001600160a01b03841681526060602082018190526000906156d190830185615622565b90508215156040830152949350505050565b60208152600061257a6020830184615622565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b03841681526060602082018190526000906157659083018561487c565b905063ffffffff83166040830152949350505050565b6001600160a01b0387811682528616602082015260c0604082018190526000906157a79083018761519a565b82810360608401526157b9818761519a565b905082810360808401526157cd818661515f565b905082810360a08401526157e1818561515f565b999850505050505050505056fe4d616e746c6520746f6b656e2044656c65676174696f6e536861726520696d706c656d656e746174696f6e20666f72207375626d6f64756c657320617320616e206578616d706c65a2646970667358221220e57271eade17a5b142954064cbb2d1593ec6948af13ee3ae82a9524376f3306b64736f6c63430008090033