0 txs
4.8k calls
constructor
No constructor.
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
calculateAvailableManagerFee
viewfunction calculateAvailableManagerFee(uint256 fundValue) view returns (uint256 fee)
creationTime
viewfunction creationTime() view returns (uint256)
creator
viewfunction creator() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
factory
viewfunction factory() view returns (address)
getExitRemainingCooldown
viewfunction getExitRemainingCooldown(address sender) view returns (uint256 remaining)
getFundSummary
viewfunction getFundSummary() view returns (tuple)
lastDeposit
viewfunction lastDeposit(address) view returns (uint256)
lastExitCooldown
viewfunction lastExitCooldown(address) view returns (uint256)
lastFeeMintTime
viewfunction lastFeeMintTime() view returns (uint256)
lastWhitelistTransfer
viewfunction lastWhitelistTransfer(address) view returns (uint256)
name
viewfunction name() view returns (string)
poolManagerLogic
viewfunction poolManagerLogic() view returns (address)
privatePool
viewfunction privatePool() view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenPrice
viewfunction tokenPrice() view returns (uint256 price)
tokenPriceAtLastFeeMint
viewfunction tokenPriceAtLastFeeMint() view returns (uint256)
tokenPriceWithoutManagerFee
viewfunction tokenPriceWithoutManagerFee() view returns (uint256 price)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(address _asset, uint256 _amount) returns (uint256 liquidityMinted)
depositFor
nonpayablefunction depositFor(address _recipient, address _asset, uint256 _amount) returns (uint256 liquidityMinted)
depositForWithCustomCooldown
nonpayablefunction depositForWithCustomCooldown(address _recipient, address _asset, uint256 _amount, uint256 _cooldown) returns (uint256 liquidityMinted)
execTransaction
nonpayablefunction execTransaction(address to, bytes data) returns (bool success)
execTransactions
nonpayablefunction execTransactions(tuple[] txs)
executeOperation
nonpayablefunction executeOperation(address[] assets, uint256[] amounts, uint256[] premiums, address initiator, bytes params) returns (bool success)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
initialize
nonpayablefunction initialize(address _factory, bool _privatePool, string _fundName, string _fundSymbol)
mintManagerFee
nonpayablefunction mintManagerFee()
onERC721Received
nonpayablefunction onERC721Received(address operator, address from, uint256 tokenId, bytes data) returns (bytes4 magicSelector)
setPoolManagerLogic
nonpayablefunction setPoolManagerLogic(address _poolManagerLogic)
setPoolPrivate
nonpayablefunction setPoolPrivate(bool _privatePool)
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, uint256 amount) returns (bool)
withdraw
nonpayablefunction withdraw(uint256 _fundTokenAmount)
withdrawSafe
nonpayablefunction withdrawSafe(uint256 _fundTokenAmount, tuple[] _complexAssetsData)
withdrawSafe
nonpayablefunction withdrawSafe(uint256 _fundTokenAmount, uint256 _slippageTolerance)
withdrawTo
nonpayablefunction withdrawTo(address _recipient, uint256 _fundTokenAmount)
withdrawToSafe
nonpayablefunction withdrawToSafe(address _recipient, uint256 _fundTokenAmount, tuple[] _complexAssetsData)
withdrawToSafe
nonpayablefunction withdrawToSafe(address _recipient, uint256 _fundTokenAmount, uint256 _slippageTolerance)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Deposit
event Deposit(address fundAddress, address investor, address assetDeposited, uint256 amountDeposited, uint256 valueDeposited, uint256 fundTokensReceived, uint256 totalInvestorFundTokens, uint256 fundValue, uint256 totalSupply, uint256 time)
EntryFeeMinted
event EntryFeeMinted(address manager, uint256 entryFeeAmount)
ExitFeeMinted
event ExitFeeMinted(address manager, uint256 exitFeeAmount)
ManagerFeeMinted
event ManagerFeeMinted(address pool, address manager, uint256 available, uint256 daoFee, uint256 managerFee, uint256 tokenPriceAtLastFeeMint)
PoolManagerLogicSet
event PoolManagerLogicSet(address poolManagerLogic, address from)
PoolPrivacyUpdated
event PoolPrivacyUpdated(bool isPoolPrivate)
TransactionExecuted
event TransactionExecuted(address pool, address manager, uint16 transactionType, uint256 time)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Withdrawal
event Withdrawal(address fundAddress, address investor, uint256 valueWithdrawn, uint256 fundTokensWithdrawn, uint256 totalInvestorFundTokens, uint256 fundValue, uint256 totalSupply, (address asset, uint256 amount, bool externalWithdrawProcessed)[] withdrawnAssets, uint256 time)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50615f7880620000216000396000f3fe608060405234801561001057600080fd5b50600436106102095760003560e01c80637714f39d116101215780637714f39d146103b657806377806392146103be5780637ae7cfb5146103d15780637ff9b596146103e4578063920f5c84146103ec57806394138e97146103ff57806395d89b4114610412578063a457c2d71461041a578063a77134e41461042d578063a9059cbb14610435578063a971a91314610448578063aee883341461045b578063b3db428b1461046e578063b8ea2b6e14610481578063c45a015514610494578063cc3c6df61461049c578063d8270dce146104a4578063dd62ed3e146104ac578063de6eb133146104bf578063df8164cf146104d2578063df8ff12f146104e5578063e4262edd146104ed57610209565b806302d05d3f1461020e57806306fdde031461022c578063095ea7b3146102415780630acc7f2514610261578063150b7a021461027657806318160ddd146102965780631c5918d2146102ab5780631e50a4a6146102c0578063205c2878146102c857806323b872dd146102db57806329d16ee8146102ee5780632e1a7d4d14610301578063313ce5671461031457806339509351146103295780633babaad51461033c57806347e7ef241461034f5780635426f81d1461036257806359b5e75e1461037557806370a082311461037d5780637481de6614610390578063750226de146103a3575b600080fd5b610216610500565b60405161022391906152dc565b60405180910390f35b610234610514565b60405161022391906155e5565b61025461024f366004614d8e565b6105aa565b60405161022391906155b6565b61027461026f366004615190565b6105c8565b005b610289610284366004614c02565b6105da565b60405161022391906155c1565b61029e610745565b6040516102239190615c4f565b6102b361074b565b6040516102239190615b78565b61021661088a565b6102746102d6366004614d8e565b610899565b6102546102e9366004614bc2565b610981565b61029e6102fc366004614b52565b610a09565b61027461030f366004615160565b610a1b565b61031c610b05565b6040516102239190615c58565b610254610337366004614d8e565b610b0e565b61027461034a3660046150af565b610b5c565b61029e61035d366004614d8e565b610be2565b610274610370366004614cb7565b610bf7565b610254610cfe565b61029e61038b366004614b52565b610d07565b61029e61039e366004614b52565b610d26565b6102746103b1366004614b52565b610d38565b61029e610e81565b6102746103cc366004614db9565b610e87565b6102546103df366004614d3c565b610e9a565b61029e610ee4565b6102546103fa366004614e90565b610f20565b61029e61040d366004615160565b611325565b61023461136c565b610254610428366004614d8e565b6113cd565b61029e611435565b610254610443366004614d8e565b611454565b610274610456366004615070565b611468565b61029e610469366004614b52565b61152c565b61029e61047c366004614bc2565b61153e565b61029e61048f366004614b52565b61154e565b61021661159c565b6102746115ab565b61029e61173e565b61029e6104ba366004614b8a565b611744565b61029e6104cd366004614c72565b61176f565b6102746104e03660046151d4565b611856565b61029e61193b565b6102746104fb366004614e5c565b611941565b60975461010090046001600160a01b031681565b60368054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105a05780601f10610575576101008083540402835291602001916105a0565b820191906000526020600020905b81548152906001019060200180831161058357829003601f168201915b5050505050905090565b60006105be6105b7611a26565b8484611a2a565b5060015b92915050565b6105d6338361271084611b16565b5050565b609954604051634f8419b960e01b815260009182916001600160a01b0390911690634f8419b99061060f908a906004016152dc565b60206040518083038186803b15801561062757600080fd5b505afa15801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190614b6e565b90506001600160a01b0381166106905760405162461bcd60e51b815260040161068790615b1c565b60405180910390fd5b6040516306baeff360e11b81526001600160a01b03821690630d75dfe6906106c4908a908a908a908a908a906004016154ec565b602060405180830381600087803b1580156106de57600080fd5b505af11580156106f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071691906150cb565b6107325760405162461bcd60e51b8152600401610687906156aa565b50630a85bd0160e11b9695505050505050565b60355490565b6107536146e7565b600080600080600061076361222b565b94509450945094509450604051806101a00160405280610781610514565b815260200161078e610745565b815260200161079b6122ca565b81526020016107a8612347565b6001600160a01b03168152602001609c60009054906101000a90046001600160a01b03166001600160a01b031663fed4416a6040518163ffffffff1660e01b815260040160006040518083038186803b15801561080457600080fd5b505afa158015610818573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261084091908101906150e7565b8152609854602082015260975460ff16151560408201526060810196909652608086019490945260a0850181905260c085019190915260e084015261010090920191909152905090565b609c546001600160a01b031681565b6105d68282612710609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b1580156108ef57600080fd5b505afa158015610903573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261092b9190810190614f65565b516001600160401b038111801561094157600080fd5b5060405190808252806020026020018201604052801561097b57816020015b61096861475a565b8152602001906001900390816109605790505b50611b16565b600061098e8484846123c4565b6109fe8461099a611a26565b6109f985604051806060016040528060288152602001615e6c602891396001600160a01b038a166000908152603460205260408120906109d8611a26565b6001600160a01b03168152602081019190915260400160002054919061250f565b611a2a565b5060015b9392505050565b609b6020526000908152604090205481565b610b023382612710609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b158015610a7157600080fd5b505afa158015610a85573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610aad9190810190614f65565b516001600160401b0381118015610ac357600080fd5b5060405190808252806020026020018201604052801561097b57816020015b610aea61475a565b815260200190600190039081610ae257905050611b16565b50565b60385460ff1690565b60006105be610b1b611a26565b846109f98560346000610b2c611a26565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906125a6565b610b64612347565b6001600160a01b0316336001600160a01b031614610b945760405162461bcd60e51b8152600401610687906157dc565b6097805460ff19168215151790556040517f8d75e9ede4188432084b863d70b3416010c97547dfeb4fc17734d2e997ee0f3990610bd29083906155b6565b60405180910390a1610b026125fe565b6000610a02338484610bf2612668565b6126ad565b600054610100900460ff1680610c105750610c10612d20565b80610c1e575060005460ff16155b610c595760405162461bcd60e51b815260040180806020018281038252602e815260200180615e1d602e913960400191505060405180910390fd5b600054610100900460ff16158015610c84576000805460ff1961ff0019909116610100171660011790555b610c8e8383612d31565b610c96612de6565b609980546001600160a01b0319166001600160a01b0387161790556097805460ff191685151517610100600160a81b0319166101003302179055426098819055609e55670de0b6b3a7640000609a558015610cf7576000805461ff00191690555b5050505050565b60975460ff1681565b6001600160a01b0381166000908152603360205260409020545b919050565b609f6020526000908152604090205481565b6001600160a01b038116610d5e5760405162461bcd60e51b81526004016106879061588c565b6099546001600160a01b0316331480610e0d5750609960009054906101000a90046001600160a01b03166001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc057600080fd5b505afa158015610dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df89190614b6e565b6001600160a01b0316336001600160a01b0316145b610e295760405162461bcd60e51b81526004016106879061572a565b609c80546001600160a01b0319166001600160a01b0383161790556040517f63fb64c359a4cae97e1bf003c1ab11390b5f0e18cc5b3d67b90bd61c0f5c52fd90610e769083903390615314565b60405180910390a150565b609a5481565b610e95838361271084611b16565b505050565b6000610edc8484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e8f92505050565b949350505050565b600080610eef6122ca565b90506000610f0d610eff83611325565b610f07610745565b906125a6565b9050610f19828261359d565b9250505090565b60006001600160a01b0384163014610f4a5760405162461bcd60e51b81526004016106879061582e565b609954604051633f30232f60e21b81526000916001600160a01b03169063fcc08cbc90610f7b9033906004016152dc565b60206040518083038186803b158015610f9357600080fd5b505afa158015610fa7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fcb9190614b6e565b90506001600160a01b038116158015906110665750806001600160a01b031663e9d337b86040518163ffffffff1660e01b815260040160206040518083038186803b15801561101957600080fd5b505afa15801561102d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110519190614b6e565b6001600160a01b0316336001600160a01b0316145b6110825760405162461bcd60e51b815260040161068790615b4a565b60008b8b600081811061109157fe5b90506020020160208101906110a69190614b52565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016110d191906152dc565b60206040518083038186803b1580156110e957600080fd5b505afa1580156110fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111219190615178565b90506000826001600160a01b031663989dccf8308f8f600081811061114257fe5b90506020020160208101906111579190614b52565b8e8e600081811061116457fe5b905060200201358d8d600081811061117857fe5b905060200201358b8b6040518763ffffffff1660e01b81526004016111a296959493929190615520565b60006040518083038186803b1580156111ba57600080fd5b505afa1580156111ce573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111f6919081019061503e565b905060005b81518110156112585761124e82828151811061121357fe5b60200260200101516020015183838151811061122b57fe5b6020026020010151600001516001600160a01b03166135cd90919063ffffffff16565b94506001016111fb565b508c8c600081811061126657fe5b905060200201602081019061127b9190614b52565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016112a691906152dc565b60206040518083038186803b1580156112be57600080fd5b505afa1580156112d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f69190615178565b8211156113155760405162461bcd60e51b8152600401610687906159cb565b5050509998505050505050505050565b60008060008061133361222b565b94505050925092506000806113528761134a610745565b878787613600565b909250905061136182826125a6565b979650505050505050565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105a05780601f10610575576101008083540402835291602001916105a0565b60006105be6113da611a26565b846109f985604051806060016040528060258152602001615f1e6025913960346000611404611a26565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919061250f565b600061144f6114426122ca565b61144a610745565b61359d565b905090565b60006105be611461611a26565b84846123c4565b60005b81811015610e955761150883838381811061148257fe5b90506020028101906114949190615caa565b6114a2906020810190614b52565b8484848181106114ae57fe5b90506020028101906114c09190615caa565b6114ce906020810190615c66565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612e8f92505050565b6115245760405162461bcd60e51b81526004016106879061592b565b60010161146b565b609d6020526000908152604090205481565b6000610edc848484610bf2612668565b6001600160a01b0381166000908152609f6020908152604080832054609b909252822054829161157e91906125a6565b905042811015611592576000915050610d21565b610a0281426136e2565b6099546001600160a01b031681565b600260655414156115f1576040805162461bcd60e51b815260206004820152601f6024820152600080516020615d93833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b15801561163b57600080fd5b505afa15801561164f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167391906150cb565b156116905760405162461bcd60e51b815260040161068790615a7c565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c07906116c09030906004016152dc565b60206040518083038186803b1580156116d857600080fd5b505afa1580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171091906150cb565b1561172d5760405162461bcd60e51b815260040161068790615acd565b61173561373f565b50506001606555565b60985481565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b609954604051632927233b60e01b81526000916001600160a01b031690632927233b906117a09033906004016152dc565b60206040518083038186803b1580156117b857600080fd5b505afa1580156117cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f091906150cb565b61180c5760405162461bcd60e51b815260040161068790615905565b61012c82101580156118255750611821612668565b8211155b6118415760405162461bcd60e51b81526004016106879061594e565b61184d858585856126ad565b95945050505050565b6105d6338383609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b1580156118aa57600080fd5b505afa1580156118be573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118e69190810190614f65565b516001600160401b03811180156118fc57600080fd5b5060405190808252806020026020018201604052801561097b57816020015b61192361475a565b81526020019060019003908161191b57905050611b16565b609e5481565b610e95838383609c60009054906101000a90046001600160a01b03166001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b15801561199557600080fd5b505afa1580156119a9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119d19190810190614f65565b516001600160401b03811180156119e757600080fd5b5060405190808252806020026020018201604052801561097b57816020015b611a0e61475a565b815260200190600190039081611a0657905050611b16565b3390565b6001600160a01b038316611a6f5760405162461bcd60e51b8152600401808060200182810382526024815260200180615efa6024913960400191505060405180910390fd5b6001600160a01b038216611ab45760405162461bcd60e51b8152600401808060200182810382526022815260200180615dd56022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60026065541415611b5c576040805162461bcd60e51b815260206004820152601f6024820152600080516020615d93833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b158015611ba657600080fd5b505afa158015611bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bde91906150cb565b15611bfb5760405162461bcd60e51b815260040161068790615a7c565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c0790611c2b9030906004016152dc565b60206040518083038186803b158015611c4357600080fd5b505afa158015611c57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7b91906150cb565b15611c985760405162461bcd60e51b815260040161068790615acd565b336000908152609b60205260409020544211611cc65760405162461bcd60e51b815260040161068790615a21565b82611cd033610d07565b1015611cee5760405162461bcd60e51b815260040161068790615802565b612710821115611d105760405162461bcd60e51b8152600401610687906159a0565b611d18614784565b611d2a84611d24610745565b906136e2565b808252620186a0111580611d3d57508051155b611d595760405162461bcd60e51b8152600401610687906155f8565b611d6161373f565b60408301526020820152600080611d7661222b565b945094505050506000821115611e27576000611d9c82611d9689866139da565b90613a33565b9050611da887826136e2565b8451909750611db790826125a6565b84526000611dc3612347565b9050611dcf8183611454565b611deb5760405162461bcd60e51b8152600401610687906158b5565b7f5dc1670f498e308c97e785c929486b7129f92b86f4acd9230ce652ab3b7829ab8183604051611e1c92919061559d565b60405180910390a150505b50506000611e48611e36610745565b611d9687670de0b6b3a76400006139da565b9050611e543386613a97565b611e5c610745565b611e6d57670de0b6b3a7640000609a555b609c546040805163e5406dbf60e01b815290516000926001600160a01b03169163e5406dbf9160048083019286929190829003018186803b158015611eb157600080fd5b505afa158015611ec5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611eed9190810190614f65565b9050600081516001600160401b0381118015611f0857600080fd5b50604051908082528060200260200182016040528015611f4257816020015b611f2f6147a5565b815260200190600190039081611f275790505b5090506000805b8351811015612083576000806000611f8e878581518110611f6657fe5b6020026020010151600001518e8a8e8e8981518110611f8157fe5b6020026020010151613b81565b919450925090508115612023576001600160a01b038316611fc15760405162461bcd60e51b8152600401610687906156d0565b61202163a9059cbb60e01b8e84604051602401611fdf92919061559d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038516906135cd565b505b808061202f5750600082115b15612078576040518060600160405280846001600160a01b0316815260200183815260200182151581525086868151811061206657fe5b60209081029190910101526001909401935b505050600101611f49565b50825160009061209390836136e2565b905080835103835260006120c0670de0b6b3a7640000611d968960200151896139da90919063ffffffff16565b90506120cf81620f42406125a6565b609c54604080516335fd4a6360e11b8152905161215a926001600160a01b031691636bfa94c69160048083019260209291908290030181600087803b15801561211757600080fd5b505af115801561212b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214f9190615178565b60208a0151906136e2565b11156121785760405162461bcd60e51b8152600401610687906158dd565b612180610745565b60408801518851612190916125a6565b146121ad5760405162461bcd60e51b815260040161068790615863565b7ffad3d7f9ed107ffa7fc8ce8baa521effc3650ec48a4d1dd36bdb9c4b91db12953033838d6121db33610d07565b60208d01516121ea90886136e2565b6121f2610745565b8b426040516122099998979695949392919061532e565b60405180910390a16122196125fe565b50506001606555505050505050505050565b6000806000806000609c60009054906101000a90046001600160a01b03166001600160a01b031663ced72f876040518163ffffffff1660e01b815260040160a06040518083038186803b15801561228157600080fd5b505afa158015612295573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122b99190615218565b939992985090965094509092509050565b609c5460408051632b583ff360e21b815290516000926001600160a01b03169163ad60ffcc916004808301926020929190829003018186803b15801561230f57600080fd5b505afa158015612323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144f9190615178565b609c546040805163481c6a7560e01b815290516000926001600160a01b03169163481c6a75916004808301926020929190829003018186803b15801561238c57600080fd5b505afa1580156123a0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061144f9190614b6e565b6001600160a01b0383166124095760405162461bcd60e51b8152600401808060200182810382526025815260200180615ed56025913960400191505060405180910390fd5b6001600160a01b03821661244e5760405162461bcd60e51b8152600401808060200182810382526023815260200180615d706023913960400191505060405180910390fd5b612459838383614119565b61249681604051806060016040528060268152602001615df7602691396001600160a01b038616600090815260336020526040902054919061250f565b6001600160a01b0380851660009081526033602052604080822093909355908416815220546124c590826125a6565b6001600160a01b038084166000818152603360209081526040918290209490945580518581529051919392871692600080516020615e9483398151915292918290030190a3505050565b6000818484111561259e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561256357818101518382015260200161254b565b50505050905090810190601f1680156125905780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610a02576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b609960009054906101000a90046001600160a01b03166001600160a01b03166325c4121b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561264e57600080fd5b505af1158015612662573d6000803e3d6000fd5b50505050565b609954604080516308a0361160e31b815290516000926001600160a01b031691634501b088916004808301926020929190829003018186803b15801561230f57600080fd5b6000600260655414156126f5576040805162461bcd60e51b815260206004820152601f6024820152600080516020615d93833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b15801561273f57600080fd5b505afa158015612753573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277791906150cb565b156127945760405162461bcd60e51b815260040161068790615a7c565b60995460405163cdf04c0760e01b81526001600160a01b039091169063cdf04c07906127c49030906004016152dc565b60206040518083038186803b1580156127dc57600080fd5b505afa1580156127f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061281491906150cb565b156128315760405162461bcd60e51b815260040161068790615acd565b600061283b612347565b9050806001600160a01b0316866001600160a01b03161480612860575060975460ff16155b8061286f575061286f866141ec565b61288b5760405162461bcd60e51b8152600401610687906157b6565b609c5460405163bdbef07d60e01b81526001600160a01b039091169063bdbef07d906128bb9088906004016152dc565b60206040518083038186803b1580156128d357600080fd5b505afa1580156128e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290b91906150cb565b6129275760405162461bcd60e51b8152600401610687906159f2565b600080866001600160a01b03166175306301ffc9a760e01b6380ac58cd60e01b60405160240161295791906155c1565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161299591906152c0565b6000604051808303818686fa925050503d80600081146129d1576040519150601f19603f3d011682016040523d82523d6000602084013e6129d6565b606091505b50915091508115806129f95750808060200190518101906129f791906150cb565b155b612a155760405162461bcd60e51b81526004016106879061567e565b50506000612a2161373f565b5090506000612a2e610745565b9050612a926323b872dd60e01b333089604051602401612a50939291906152f0565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526001600160a01b038916906135cd565b506000612a9f888861426d565b90508115612abc57612ab583611d9683856139da565b9450612ac0565b8094505b600080612acb61222b565b945050935050506000821115612b3e576000612aeb82611d968a866139da565b9050612af788826136e2565b9750612b0387826142f0565b7f041016c816f0ae89a17cebf19a247e87d1f932255183b75b0cca3ca4e23d8eb38782604051612b3492919061559d565b60405180910390a1505b620186a0871015612b615760405162461bcd60e51b81526004016106879061564d565b612b6b8b886142f0565b5050612ba8612b798a610d07565b6001600160a01b038b166000908152609f6020908152604080832054609b9092529091205488918a91426143d0565b6001600160a01b038a166000908152609f6020908152604080832093909355609b9052908120429055612bda8a610d07565b90506000612be885846125a6565b90506000612bf4610745565b9050609c60009054906101000a90046001600160a01b03166001600160a01b03166350b721a76040518163ffffffff1660e01b815260040160206040518083038186803b158015612c4457600080fd5b505afa158015612c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7c9190615178565b612c9c670de0b6b3a7640000611d96612c95868661359d565b87906139da565b1015612cba5760405162461bcd60e51b815260040161068790615af2565b7f97e6c213c123075e233a6f2323f33d8319141b993ab05e9e2f7eb2eda08cb944308d8d8d888d89898942604051612cfb9a999897969594939291906153d7565b60405180910390a150612d0c6125fe565b505060016065555092979650505050505050565b6000612d2b3061447e565b15905090565b600054610100900460ff1680612d4a5750612d4a612d20565b80612d58575060005460ff16155b612d935760405162461bcd60e51b815260040180806020018281038252602e815260200180615e1d602e913960400191505060405180910390fd5b600054610100900460ff16158015612dbe576000805460ff1961ff0019909116610100171660011790555b612dc6614484565b612dd08383614524565b8015610e95576000805461ff0019169055505050565b600054610100900460ff1680612dff5750612dff612d20565b80612e0d575060005460ff16155b612e485760405162461bcd60e51b815260040180806020018281038252602e815260200180615e1d602e913960400191505060405180910390fd5b600054610100900460ff16158015612e73576000805460ff1961ff0019909116610100171660011790555b612e7b6145fc565b8015610b02576000805461ff001916905550565b600060026065541415612ed7576040805162461bcd60e51b815260206004820152601f6024820152600080516020615d93833981519152604482015290519081900360640190fd5b6002606555609954604080516358c3de9360e11b815290516001600160a01b039092169163b187bd2691600480820192602092909190829003018186803b158015612f2157600080fd5b505afa158015612f35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5991906150cb565b15612f765760405162461bcd60e51b815260040161068790615a7c565b6001600160a01b038316612f9c5760405162461bcd60e51b81526004016106879061588c565b609954604051634f8419b960e01b81526000916001600160a01b031690634f8419b990612fcd9087906004016152dc565b60206040518083038186803b158015612fe557600080fd5b505afa158015612ff9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061301d9190614b6e565b905060008080806001600160a01b038516156130c357609c54604051636179309d60e01b81528694506001600160a01b0380861692636179309d9261306c92909116908c908c9060040161542d565b6040805180830381600087803b15801561308557600080fd5b505af1158015613099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130bd919061512c565b90925090505b61ffff821661338c57609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc906130fc908b906004016152dc565b60206040518083038186803b15801561311457600080fd5b505afa158015613128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314c9190614b6e565b93506001600160a01b038416613260576099546040805163795053d360e01b815290516000926001600160a01b03169163795053d3916004808301926020929190829003018186803b1580156131a157600080fd5b505afa1580156131b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131d99190614b6e565b60405162a950c360e81b81529091506001600160a01b0382169063a950c30090613208906000906004016155d6565b60206040518083038186803b15801561322057600080fd5b505afa158015613234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132589190614b6e565b9450506132fc565b609c54604051634df48c7360e11b81526001600160a01b0390911690639be918e690613290908b906004016152dc565b60206040518083038186803b1580156132a857600080fd5b505afa1580156132bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132e091906150cb565b6132fc5760405162461bcd60e51b815260040161068790615978565b609c54604051636179309d60e01b81528594506001600160a01b0380861692636179309d9261333592909116908c908c9060040161542d565b6040805180830381600087803b15801561334e57600080fd5b505af1158015613362573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613386919061512c565b90925090505b60008261ffff16116133b05760405162461bcd60e51b8152600401610687906156fd565b80806133d457506133bf612347565b6001600160a01b0316336001600160a01b0316145b806133f757506133e26146a2565b6001600160a01b0316336001600160a01b0316145b6134135760405162461bcd60e51b815260040161068790615780565b6134266001600160a01b038916886135cd565b60408051600481526024810182526020810180516001600160e01b0316637bf9811960e01b179052905191975060009182916001600160a01b0387169161346d91906152c0565b6000604051808303816000865af19150503d80600081146134aa576040519150601f19603f3d011682016040523d82523d6000602084013e6134af565b606091505b50915091508180156134d05750808060200190518101906134d091906150cb565b1561353e57609c54604051637b364ee960e11b81526001600160a01b038781169263f66c9dd29261350b92909116908e908e9060040161542d565b600060405180830381600087803b15801561352557600080fd5b505af1158015613539573d6000803e3d6000fd5b505050505b7f14464fb67b1871a79e726fa7af525f8fff56e9e5649d511e47f3a357ae31d20730613568612347565b864260405161357a9493929190615459565b60405180910390a161358a6125fe565b5050600160655550939695505050505050565b60008115806135aa575082155b156135b7575060006105c2565b610a0282611d9685670de0b6b3a76400006139da565b60008060008351602085016000875af190508015600181146135ee576135f9565b3d806000803e806000fd5b5092915050565b60008085158061360e575086155b1561361e575060009050806136d8565b600061363687611d968a670de0b6b3a76400006139da565b9050609a5481111561369957600061367c61365986670de0b6b3a76400006139da565b611d968a6136768b613676609a54896136e290919063ffffffff16565b906139da565b905061369561368b8a836136e2565b611d96838b6139da565b9350505b609e54156136d65760006136b8609e54426136e290919063ffffffff16565b90506136d26301e13380611d9687818a6136768e886139da565b9250505b505b9550959350505050565b600082821115613739576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080609c60009054906101000a90046001600160a01b03166001600160a01b0316636bfa94c66040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561379257600080fd5b505af11580156137a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137ca9190615178565b915060006137d6610745565b905060008060006137e561222b565b94505050925092506000806137fd8887878787613600565b909250905061380c82826125a6565b6099546040805163272b69b960e21b81528151939a5060009384936001600160a01b031692639cada6e49260048082019391829003018186803b15801561385257600080fd5b505afa158015613866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061388a91906151f5565b9092509050600061389f82611d968c866139da565b905060006138ad8b836136e2565b905060006138bb8d8c61359d565b905080609a5410156138cd57609a8190555b85156138d85742609e555b8215613962576099546040805163084c71a360e21b81529051613962926001600160a01b031691632131c68c916004808301926020929190829003018186803b15801561392457600080fd5b505afa158015613938573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061395c9190614b6e565b846142f0565b811561397957613979613973612347565b836142f0565b7f755a8059d66d8d243bc9f6913f429a811f154599d0538bb0b6a2ac23f23d2ccd306139a3612347565b8e8686609a546040516139bb96959493929190615567565b60405180910390a16139cb6125fe565b50505050505050505050509091565b6000826139e9575060006105c2565b828202828482816139f657fe5b0414610a025760405162461bcd60e51b8152600401808060200182810382526021815260200180615e4b6021913960400191505060405180910390fd5b6000808211613a86576040805162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b604482015290519081900360640190fd5b818381613a8f57fe5b049392505050565b6001600160a01b038216613adc5760405162461bcd60e51b8152600401808060200182810382526021815260200180615eb46021913960400191505060405180910390fd5b613ae882600083614119565b613b2581604051806060016040528060228152602001615db3602291396001600160a01b038516600090815260336020526040902054919061250f565b6001600160a01b038316600090815260336020526040902055603554613b4b90826136e2565b6035556040805182815290516000916001600160a01b03851691600080516020615e948339815191529181900360200190a35050565b6000806000613b8e6147c5565b609954604051633f30232f60e21b81526001600160a01b039091169063fcc08cbc90613bbe908c906004016152dc565b60206040518083038186803b158015613bd657600080fd5b505afa158015613bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c0e9190614b6e565b6001600160a01b031660608201819052613c3a5760405162461bcd60e51b815260040161068790615aa6565b613ccc670de0b6b3a7640000611d968984606001516001600160a01b031663d4fac45d308f6040518363ffffffff1660e01b8152600401613c7c929190615314565b60206040518083038186803b158015613c9457600080fd5b505afa158015613ca8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136769190615178565b808252613cda908a9061426d565b6020808301919091528501515160609015613db95785516001600160a01b038b8116911614613d1b5760405162461bcd60e51b815260040161068790615621565b81606001516001600160a01b031663056f626f308c8b8d8b602001516040518663ffffffff1660e01b8152600401613d579594939291906154b1565b600060405180830381600087803b158015613d7157600080fd5b505af1158015613d85573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613dad9190810190614e0f565b91965094509050613e54565b81606001516001600160a01b0316636f8ae202308c8b8d6040518563ffffffff1660e01b8152600401613def9493929190615486565b600060405180830381600087803b158015613e0957600080fd5b505af1158015613e1d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e459190810190614e0f565b60016040860152919650945090505b80518015613fd35760006001600160a01b03871615613eec576040516370a0823160e01b81526001600160a01b038816906370a0823190613e999030906004016152dc565b60206040518083038186803b158015613eb157600080fd5b505afa158015613ec5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee99190615178565b90505b60005b82811015613f2857613f1e848281518110613f0657fe5b60200260200101516020015185838151811061122b57fe5b9550600101613eef565b506001600160a01b03871615613fd1576040516370a0823160e01b81526000906001600160a01b038916906370a0823190613f679030906004016152dc565b60206040518083038186803b158015613f7f57600080fd5b505afa158015613f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fb79190615178565b9050613fcd613fc682846136e2565b88906125a6565b9650505b505b606083015160408051600481526024810182526020810180516001600160e01b0316631f32d1a360e11b179052905160009283926001600160a01b039091169161401d91906152c0565b6000604051808303816000865af19150503d806000811461405a576040519150601f19603f3d011682016040523d82523d6000602084013e61405f565b606091505b5091509150846040015180156140725750815b801561408d57508080602001905181019061408d91906150cb565b80156140a157506001600160a01b03881615155b156141095760008960400151116140b857896140be565b88604001515b99506140e1612710611d968c6127100388602001516139da90919063ffffffff16565b6140eb898961426d565b10156141095760405162461bcd60e51b815260040161068790615a4c565b5050505050955095509592505050565b614124838383610e95565b6001600160a01b03831661413757610e95565b609954604051637065accb60e11b81526001600160a01b039091169063e0cb5996906141679085906004016152dc565b60206040518083038186803b15801561417f57600080fd5b505afa158015614193573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141b791906150cb565b1515600114156141c657610e95565b6141cf8361154e565b15610e955760405162461bcd60e51b815260040161068790615757565b609c5460405163bbbf725b60e01b81526000916001600160a01b03169063bbbf725b9061421d9085906004016152dc565b60206040518083038186803b15801561423557600080fd5b505afa158015614249573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c291906150cb565b609c546040516314e03fdd60e11b81526000916001600160a01b0316906329c07fba906142a0908690869060040161559d565b60206040518083038186803b1580156142b857600080fd5b505afa1580156142cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a029190615178565b6001600160a01b03821661434b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61435760008383614119565b60355461436490826125a6565b6035556001600160a01b03821660009081526033602052604090205461438a90826125a6565b6001600160a01b0383166000818152603360209081526040808320949094558351858152935192939192600080516020615e948339815191529281900390910190a35050565b6000806143dd84866125a6565b905060008382106143f7576143f282856136e2565b6143fa565b60005b905088158015614408575087155b156144165760009250614472565b8861442357869250614472565b87158061442f57508087105b1561443c57809250614472565b600061445082610f078c611d968c8e6139da565b905087811161446c5780614465576001614467565b805b61446e565b875b9350505b50509695505050505050565b3b151590565b600054610100900460ff168061449d575061449d612d20565b806144ab575060005460ff16155b6144e65760405162461bcd60e51b815260040180806020018281038252602e815260200180615e1d602e913960400191505060405180910390fd5b600054610100900460ff16158015612e7b576000805460ff1961ff0019909116610100171660011790558015610b02576000805461ff001916905550565b600054610100900460ff168061453d575061453d612d20565b8061454b575060005460ff16155b6145865760405162461bcd60e51b815260040180806020018281038252602e815260200180615e1d602e913960400191505060405180910390fd5b600054610100900460ff161580156145b1576000805460ff1961ff0019909116610100171660011790555b82516145c49060369060208601906147f8565b5081516145d89060379060208501906147f8565b506038805460ff191660121790558015610e95576000805461ff0019169055505050565b600054610100900460ff16806146155750614615612d20565b80614623575060005460ff16155b61465e5760405162461bcd60e51b815260040180806020018281038252602e815260200180615e1d602e913960400191505060405180910390fd5b600054610100900460ff16158015614689576000805460ff1961ff0019909116610100171660011790555b60016065558015610b02576000805461ff001916905550565b609c5460408051631758078b60e01b815290516000926001600160a01b031691631758078b916004808301926020929190829003018186803b15801561238c57600080fd5b604051806101a0016040528060608152602001600081526020016000815260200160006001600160a01b0316815260200160608152602001600081526020016000151581526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051806060016040528060006001600160a01b0316815260200160608152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b604080516060810182526000808252602082018190529181019190915290565b6040518060800160405280600081526020016000815260200160001515815260200160006001600160a01b031681525090565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261482e5760008555614874565b82601f1061484757805160ff1916838001178555614874565b82800160010185558215614874579182015b82811115614874578251825591602001919060010190614859565b50614880929150614884565b5090565b5b808211156148805760008155600101614885565b60006148ac6148a784615cff565b615cbf565b90508281528383830111156148c057600080fd5b828260208301376000602084830101529392505050565b60006148e56148a784615cff565b90508281528383830111156148f957600080fd5b610a02836020830184615d20565b60008083601f840112614918578182fd5b5081356001600160401b0381111561492e578182fd5b602083019150836020808302850101111561494857600080fd5b9250929050565b600082601f83011261495f578081fd5b8135602061496f6148a783615ce2565b82815281810190858301855b85811015614a1e5781358801606080601f19838d0301121561499b578889fd5b604080518281016001600160401b0382821081831117156149b857fe5b908352848a0135906149c982615d4c565b9082528483013590808211156149dd578c8dfd5b508401603f81018e136149ee578b8cfd5b6149fe8e8b830135858401614899565b828b0152509290910135908201528452928401929084019060010161497b565b5090979650505050505050565b600082601f830112614a3b578081fd5b81516020614a4b6148a783615ce2565b82815281810190858301855b85811015614a1e5781518801604080601f19838d03011215614a77578889fd5b80518181016001600160401b038282108183111715614a9257fe5b9083528389015190614aa382615d4c565b908252838301519080821115614ab7578b8cfd5b508084019350508b603f840112614acc57898afd5b614adc8c898501518486016148d7565b81890152865250509284019290840190600101614a57565b60008083601f840112614b05578182fd5b5081356001600160401b03811115614b1b578182fd5b60208301915083602082850101111561494857600080fd5b600082601f830112614b43578081fd5b610a0283833560208501614899565b600060208284031215614b63578081fd5b8135610a0281615d4c565b600060208284031215614b7f578081fd5b8151610a0281615d4c565b60008060408385031215614b9c578081fd5b8235614ba781615d4c565b91506020830135614bb781615d4c565b809150509250929050565b600080600060608486031215614bd6578081fd5b8335614be181615d4c565b92506020840135614bf181615d4c565b929592945050506040919091013590565b600080600080600060808688031215614c19578283fd5b8535614c2481615d4c565b94506020860135614c3481615d4c565b93506040860135925060608601356001600160401b03811115614c55578182fd5b614c6188828901614af4565b969995985093965092949392505050565b60008060008060808587031215614c87578182fd5b8435614c9281615d4c565b93506020850135614ca281615d4c565b93969395505050506040820135916060013590565b60008060008060808587031215614ccc578182fd5b8435614cd781615d4c565b93506020850135614ce781615d61565b925060408501356001600160401b0380821115614d02578384fd5b614d0e88838901614b33565b93506060870135915080821115614d23578283fd5b50614d3087828801614b33565b91505092959194509250565b600080600060408486031215614d50578081fd5b8335614d5b81615d4c565b925060208401356001600160401b03811115614d75578182fd5b614d8186828701614af4565b9497909650939450505050565b60008060408385031215614da0578182fd5b8235614dab81615d4c565b946020939093013593505050565b600080600060608486031215614dcd578081fd5b8335614dd881615d4c565b92506020840135915060408401356001600160401b03811115614df9578182fd5b614e058682870161494f565b9150509250925092565b600080600060608486031215614e23578081fd5b8351614e2e81615d4c565b6020850151604086015191945092506001600160401b03811115614e50578182fd5b614e0586828701614a2b565b600080600060608486031215614e70578081fd5b8335614e7b81615d4c565b95602085013595506040909401359392505050565b600080600080600080600080600060a08a8c031215614ead578687fd5b89356001600160401b0380821115614ec3578889fd5b614ecf8d838e01614907565b909b50995060208c0135915080821115614ee7578889fd5b614ef38d838e01614907565b909950975060408c0135915080821115614f0b578586fd5b614f178d838e01614907565b909750955060608c01359150614f2c82615d4c565b90935060808b01359080821115614f41578384fd5b50614f4e8c828d01614af4565b915080935050809150509295985092959850929598565b60006020808385031215614f77578182fd5b82516001600160401b0380821115614f8d578384fd5b818501915085601f830112614fa0578384fd5b8151614fae6148a782615ce2565b818152848101908486016040808502870188018b1015614fcc578889fd5b8896505b8487101561502f5780828c031215614fe6578889fd5b80518181018181108882111715614ff957fe5b8252825161500681615d4c565b81528289015161501581615d61565b818a01528452600196909601959287019290810190614fd0565b50909998505050505050505050565b60006020828403121561504f578081fd5b81516001600160401b03811115615064578182fd5b610edc84828501614a2b565b60008060208385031215615082578182fd5b82356001600160401b03811115615097578283fd5b6150a385828601614907565b90969095509350505050565b6000602082840312156150c0578081fd5b8135610a0281615d61565b6000602082840312156150dc578081fd5b8151610a0281615d61565b6000602082840312156150f8578081fd5b81516001600160401b0381111561510d578182fd5b8201601f8101841361511d578182fd5b610edc848251602084016148d7565b6000806040838503121561513e578182fd5b825161ffff8116811461514f578283fd5b6020840151909250614bb781615d61565b600060208284031215615171578081fd5b5035919050565b600060208284031215615189578081fd5b5051919050565b600080604083850312156151a2578182fd5b8235915060208301356001600160401b038111156151be578182fd5b6151ca8582860161494f565b9150509250929050565b600080604083850312156151e6578182fd5b50508035926020909101359150565b60008060408385031215615207578182fd5b505080516020909101519092909150565b600080600080600060a0868803121561522f578283fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b6001600160a01b03169052565b15159052565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526152ac816020860160208601615d20565b601f01601f19169290920160200192915050565b600082516152d2818460208701615d20565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0392831681529116602082015260400190565b600061012080830160018060a01b03808e1685526020818e168187015260408d8188015260608d818901528c60808901528b60a08901528a60c08901528560e0890152849550895180865261014089019650838b019550875b818110156153b857865180518716895285810151868a01528401511515848901529682019695840195600101615387565b505050505061010094909401949094529b9a5050505050505050505050565b6001600160a01b039a8b168152988a1660208a01529690981660408801526060870194909452608086019290925260a085015260c084015260e08301526101008201929092526101208101919091526101400190565b6001600160a01b0384811682528316602082015260606040820181905260009061184d90830184615294565b6001600160a01b03948516815292909316602083015261ffff166040820152606081019190915260800190565b6001600160a01b03948516815292841660208401526040830191909152909116606082015260800190565b6001600160a01b0386811682528581166020830152604082018590528316606082015260a06080820181905260009061136190830184615294565b6001600160a01b0386811682528516602082015260408101849052608060608201819052600090611361908301848661526a565b6001600160a01b03878116825286166020820152604081018590526060810184905260a06080820181905260009061555b908301848661526a565b98975050505050505050565b6001600160a01b03968716815294909516602085015260408401929092526060830152608082015260a081019190915260c00190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6001600160e01b031991909116815260200190565b61ffff91909116815260200190565b600060208252610a026020830184615294565b6020808252600f908201526e18995b1bddc81d1a1c995cda1bdb19608a1b604082015260600190565b602080825260129082015271696e76616c6964206173736574206461746160701b604082015260600190565b6020808252601790820152761a5b9d985b1a59081b1a5c5d5a591a5d1e535a5b9d1959604a1b604082015260600190565b6020808252601290820152711391951cc81b9bdd081cdd5c1c1bdc9d195960721b604082015260600190565b6020808252600c908201526b1b9bdd081d995c9a599a595960a21b604082015260600190565b6020808252601390820152721b995959081dda5d1a191c985dc8185cdcd95d606a1b604082015260600190565b60208082526013908201527234b73b30b634b2103a3930b739b0b1ba34b7b760691b604082015260600190565b6020808252601390820152726f6e6c79206f776e65722c20666163746f727960681b604082015260600190565b6020808252600f908201526e636f6f6c646f776e2061637469766560881b604082015260600190565b6020808252601c908201527b6f6e6c79206d616e616765722c207472616465722c207075626c696360201b604082015260600190565b6020808252600c908201526b6f6e6c79206d656d6265727360a01b604082015260600190565b6020808252600c908201526b37b7363c9036b0b730b3b2b960a11b604082015260600190565b6020808252601290820152716e6f7420656e6f7567682062616c616e636560701b604082015260600190565b6020808252601b908201527a37b7363c903837b7b610333630b9b4103637b0b71037b934b3b4b760291b604082015260600190565b6020808252600f908201526e0e6eae0e0d8f240dad2e6dac2e8c6d608b1b604082015260600190565b6020808252600f908201526e696e76616c6964206164647265737360881b604082015260600190565b6020808252600e908201526d195e1a5d1199594819985a5b195960921b604082015260600190565b6020808252600e908201526d0ecc2d8eaca40dad2e6dac2e8c6d60931b604082015260600190565b6020808252600c908201526b1bdb9b1e48185b1b1bddd95960a21b604082015260600190565b6020808252600990820152681d1e0819985a5b195960ba1b604082015260600190565b60208082526010908201526f34b73b30b634b21031b7b7b63237bbb760811b604082015260600190565b6020808252600e908201526d185cdcd95d08191a5cd8589b195960921b604082015260600190565b602080825260119082015270696e76616c696420746f6c6572616e636560781b604082015260600190565b6020808252600d908201526c6869676820736c69707061676560981b604082015260600190565b6020808252601590820152741a5b9d985b1a590819195c1bdcda5d08185cdcd95d605a1b604082015260600190565b60208082526011908201527031b0b7103bb4ba34323930bb9039b7b7b760791b604082015260600190565b6020808252601690820152756869676820776974686472617720736c69707061676560501b604082015260600190565b60208082526010908201526f18dbdb9d1c9858dd1cc81c185d5cd95960821b604082015260600190565b6020808252600d908201526c1a5b9d985b1a590819dd585c99609a1b604082015260600190565b6020808252600b908201526a1c1bdbdb081c185d5cd95960aa1b604082015260600190565b60208082526010908201526f1b995959081b5a5b8819195c1bdcda5d60821b604082015260600190565b6020808252601490820152736f6e6c792067756172646564206164647265737360601b604082015260600190565b6020808252601490820152731a5b9d985b1a59081b195b991a5b99c81c1bdbdb60621b604082015260600190565b60006020825282516101a0806020850152615b976101c0850183615294565b915060208501516040850152604085015160608501526060850151615bbf6080860182615257565b506080850151848303601f190160a0860152615bdb8382615294565b92505060a085015160c085015260c0850151615bfa60e0860182615264565b5060e08501516101008581019190915285015161012080860191909152850151610140808601919091528501516101608086019190915285015161018080860191909152909401519390920192909252919050565b90815260200190565b60ff91909116815260200190565b6000808335601e19843603018112615c7c578283fd5b8301803591506001600160401b03821115615c95578283fd5b60200191503681900382131561494857600080fd5b60008235603e198336030181126152d2578182fd5b6040518181016001600160401b0381118282101715615cda57fe5b604052919050565b60006001600160401b03821115615cf557fe5b5060209081020190565b60006001600160401b03821115615d1257fe5b50601f01601f191660200190565b60005b83811015615d3b578181015183820152602001615d23565b838111156126625750506000910152565b6001600160a01b0381168114610b0257600080fd5b8015158114610b0257600080fdfe45524332303a207472616e7366657220746f20746865207a65726f20616464726573735265656e7472616e637947756172643a207265656e7472616e742063616c6c0045524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220de1d20c2b058833c53d42ac4494550b4bc05976f50c5a87a84e1d17e794ba1c564736f6c63430007060033