0 txs
60.3k calls
constructor
No constructor.
functions
_getExtensionFunctions
purefunction _getExtensionFunctions() pure returns (bytes4[] functionSelectors)
accrualBlockNumber
viewfunction accrualBlockNumber() view returns (uint256)
adminFeeMantissa
viewfunction adminFeeMantissa() view returns (uint256)
ap
viewfunction ap() view returns (address)
borrowIndex
viewfunction borrowIndex() view returns (uint256)
comptroller
viewfunction comptroller() view returns (address)
contractType
purefunction contractType() pure returns (string)
decimals
viewfunction decimals() view returns (uint8)
delegateType
purefunction delegateType() pure returns (uint8)
feeSeizeShareMantissa
viewfunction feeSeizeShareMantissa() view returns (uint256)
getCash
viewfunction getCash() view returns (uint256)
interestRateModel
viewfunction interestRateModel() view returns (address)
ionicAdmin
viewfunction ionicAdmin() view returns (address)
ionicFeeMantissa
viewfunction ionicFeeMantissa() view returns (uint256)
name
viewfunction name() view returns (string)
protocolSeizeShareMantissa
viewfunction protocolSeizeShareMantissa() view returns (uint256)
reserveFactorMantissa
viewfunction reserveFactorMantissa() view returns (uint256)
symbol
viewfunction symbol() view returns (string)
totalAdminFees
viewfunction totalAdminFees() view returns (uint256)
totalBorrows
viewfunction totalBorrows() view returns (uint256)
totalIonicFees
viewfunction totalIonicFees() view returns (uint256)
totalReserves
viewfunction totalReserves() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
underlying
viewfunction underlying() view returns (address)
_becomeImplementation
nonpayablefunction _becomeImplementation(bytes)
_withdrawAdminFees
nonpayablefunction _withdrawAdminFees(uint256 withdrawAmount) returns (uint256)
_withdrawIonicFees
nonpayablefunction _withdrawIonicFees(uint256 withdrawAmount) returns (uint256)
approve
nonpayablefunction approve(address _token, address _spender)
borrow
nonpayablefunction borrow(uint256 borrowAmount) returns (uint256)
claim
nonpayablefunction claim()
liquidateBorrow
nonpayablefunction liquidateBorrow(address borrower, uint256 repayAmount, address cTokenCollateral) returns (uint256)
mint
nonpayablefunction mint(uint256 mintAmount) returns (uint256)
redeem
nonpayablefunction redeem(uint256 redeemTokens) returns (uint256)
redeemUnderlying
nonpayablefunction redeemUnderlying(uint256 redeemAmount) returns (uint256)
repayBorrow
nonpayablefunction repayBorrow(uint256 repayAmount) returns (uint256)
repayBorrowBehalf
nonpayablefunction repayBorrowBehalf(address borrower, uint256 repayAmount) returns (uint256)
seize
nonpayablefunction seize(address liquidator, address borrower, uint256 seizeTokens) returns (uint256)
selfTransferIn
nonpayablefunction selfTransferIn(address from, uint256 amount) returns (uint256)
selfTransferOut
nonpayablefunction selfTransferOut(address to, uint256 amount)
events
AccrueInterest
event AccrueInterest(uint256 cashPrior, uint256 interestAccumulated, uint256 borrowIndex, uint256 totalBorrows)
Approval
event Approval(address indexed owner, address indexed spender, uint256 amount)
Borrow
event Borrow(address borrower, uint256 borrowAmount, uint256 accountBorrows, uint256 totalBorrows)
Failure
event Failure(uint256 error, uint256 info, uint256 detail)
LiquidateBorrow
event LiquidateBorrow(address liquidator, address borrower, uint256 repayAmount, address cTokenCollateral, uint256 seizeTokens)
Mint
event Mint(address minter, uint256 mintAmount, uint256 mintTokens)
NewAdminFee
event NewAdminFee(uint256 oldAdminFeeMantissa, uint256 newAdminFeeMantissa)
NewIonicFee
event NewIonicFee(uint256 oldIonicFeeMantissa, uint256 newIonicFeeMantissa)
NewMarketInterestRateModel
event NewMarketInterestRateModel(address oldInterestRateModel, address newInterestRateModel)
NewReserveFactor
event NewReserveFactor(uint256 oldReserveFactorMantissa, uint256 newReserveFactorMantissa)
Redeem
event Redeem(address redeemer, uint256 redeemAmount, uint256 redeemTokens)
RepayBorrow
event RepayBorrow(address payer, address borrower, uint256 repayAmount, uint256 accountBorrows, uint256 totalBorrows)
ReservesAdded
event ReservesAdded(address benefactor, uint256 addAmount, uint256 newTotalReserves)
ReservesReduced
event ReservesReduced(address admin, uint256 reduceAmount, uint256 newTotalReserves)
Transfer
event Transfer(address indexed from, address indexed to, uint256 amount)
errors
CallerIsNotEOA
error CallerIsNotEOA()
InteractionNotAllowed
error InteractionNotAllowed()
creation bytecode
0x608060405234801561001057600080fd5b50615dc480620000216000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c80637e5465ba1161013b578063b0d58e49116100b8578063c91a424f1161007c578063c91a424f14610468578063cb2ef6f71461047b578063db006a75146104ac578063f3fdb15a146104bf578063f5e3c462146104d257600080fd5b8063b0d58e4914610417578063b2a02ff11461042a578063be99f1191461043d578063c3bf11cd1461044c578063c5ebeaec1461045557600080fd5b806395d89b41116100ff57806395d89b41146103d75780639826394b146103df578063a0712d68146103e8578063a7b820df146103fb578063aa5af0fd1461040e57600080fd5b80637e5465ba1461038a578063852a12e31461039d57806389f8132e146103b05780638d02d9a1146103c55780638f840ddd146103ce57600080fd5b80633b1d21a2116101c95780635fe3b5671161018d5780635fe3b5671461033f57806361feacff146103575780636752e702146103605780636c540baf1461036e5780636f307dc31461037757600080fd5b80633b1d21a2146102f05780633c4f743c146102f857806347bd3718146103235780634e71d92d1461025557806356e677281461032c57600080fd5b8063173b990411610210578063173b9904146102a957806318160ddd146102b25780632608f818146102bb5780632c436e5b146102ce578063313ce567146102e357600080fd5b8063067db1b31461024257806306fdde03146102575780630e75270214610275578063135f133414610296575b600080fd5b6102556102503660046157b6565b6104e5565b005b61025f61052f565b60405161026c9190615806565b60405180910390f35b610288610283366004615839565b6105bd565b60405190815260200161026c565b6102886102a43660046157b6565b6107dd565b61028860085481565b610288600f5481565b6102886102c93660046157b6565b610829565b60035b60405160ff909116815260200161026c565b6003546102d19060ff1681565b610288610a59565b60145461030b906001600160a01b031681565b6040516001600160a01b03909116815260200161026c565b610288600b5481565b61025561033a366004615868565b610a68565b60035461030b9061010090046001600160a01b031681565b610288600d5481565b610288666379da05b6000081565b61028860095481565b60135461030b906001600160a01b031681565b610255610398366004615919565b610aba565b6102886103ab366004615839565b610bbc565b6103b8610dd2565b60405161026c9190615952565b61028860065481565b610288600c5481565b61025f610f82565b610288600e5481565b6102886103f6366004615839565b610f8f565b610288610409366004615839565b61119c565b610288600a5481565b610288610425366004615839565b61152a565b6102886104383660046159a0565b6117e9565b61028867016345785d8a000081565b61028860075481565b610288610463366004615839565b611983565b60005461030b906001600160a01b031681565b6040805180820190915260158152744345726332305265776172647344656c656761746560581b602082015261025f565b6102886104ba366004615839565b611b8a565b60045461030b906001600160a01b031681565b6102886104e03660046159e1565b611d91565b3330146105215760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b60448201526064015b60405180910390fd5b61052b82826125f0565b5050565b6001805461053c90615a23565b80601f016020809104026020016040519081016040528092919081815260200182805461056890615a23565b80156105b55780601f1061058a576101008083540402835291602001916105b5565b820191906000526020600020905b81548152906001019060200180831161059857829003601f168201915b505050505081565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb89261060a9261010090910490911690339030906001600160e01b031988351690600401615a57565b602060405180830381865afa158015610627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064b9190615a8a565b6106675760405162461bcd60e51b815260040161051890615aac565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061069690600401615ad4565b602060405180830381865afa1580156106b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d79190615b00565b90506001600160a01b0381166106fb5760006106f284612671565b50949350505050565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b15801561073e57600080fd5b505af1158015610752573d6000803e3d6000fd5b50503332039150610774905057600061076a85612671565b5095945050505050565b604051633108c13b60e01b81526001600160a01b03821690633108c13b906107a29032903390600401615b1d565b60006040518083038186803b1580156107ba57600080fd5b505afa1580156107ce573d6000803e3d6000fd5b50505050600061076a85612671565b60003330146108165760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b6044820152606401610518565b6108208383612702565b90505b92915050565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb8926108769261010090910490911690339030906001600160e01b031988351690600401615a57565b602060405180830381865afa158015610893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b79190615a8a565b6108d35760405162461bcd60e51b815260040161051890615aac565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061090290600401615ad4565b602060405180830381865afa15801561091f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109439190615b00565b90506001600160a01b03811661096957600061095f85856128d5565b5092505050610823565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b1580156109ac57600080fd5b505af11580156109c0573d6000803e3d6000fd5b505033320391506109e490505760006109d986866128d5565b509350505050610823565b604051633108c13b60e01b81526001600160a01b03821690633108c13b90610a129032903390600401615b1d565b60006040518083038186803b158015610a2a57600080fd5b505afa158015610a3e573d6000803e3d6000fd5b505050506000610a4e86866128d5565b509695505050505050565b6000610a63612968565b905090565b33301480610a795750610a796129d5565b610ab75760405162461bcd60e51b815260206004820152600f60248201526e10b9b2b633103e3e1010b0b236b4b760891b6044820152606401610518565b50565b610ac26129d5565b610af75760405162461bcd60e51b815260206004820152600660248201526510b0b236b4b760d11b6044820152606401610518565b6013546001600160a01b0390811690831603610b435760405162461bcd60e51b815260206004820152600b60248201526a21756e6465726c79696e6760a81b6044820152606401610518565b60405163095ea7b360e01b81526001600160a01b038281166004830152600019602483015283169063095ea7b3906044016020604051808303816000875af1158015610b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb79190615a8a565b505050565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb892610c099261010090910490911690339030906001600160e01b031988351690600401615a57565b602060405180830381865afa158015610c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4a9190615a8a565b610c665760405162461bcd60e51b815260040161051890615aac565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190610c9590600401615ad4565b602060405180830381865afa158015610cb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd69190615b00565b90506001600160a01b038116610cf657610cef83612b52565b9392505050565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b158015610d3957600080fd5b505af1158015610d4d573d6000803e3d6000fd5b50503332039150610d6b905057610d6384612b52565b949350505050565b604051633108c13b60e01b81526001600160a01b03821690633108c13b90610d999032903390600401615b1d565b60006040518083038186803b158015610db157600080fd5b505afa158015610dc5573d6000803e3d6000fd5b50505050610d6384612b52565b606060026000610de0612bda565b90508160ff168151610df29190615b4d565b67ffffffffffffffff811115610e0a57610e0a615852565b604051908082528060200260200182016040528015610e33578160200160208202803683370190505b50925060005b8151811015610e8f57818181518110610e5457610e54615b60565b6020026020010151848281518110610e6e57610e6e615b60565b6001600160e01b031990921660209283029190910190910152600101610e39565b508051634e71d92d60e01b908490610ea685615b76565b9450610eb59060ff8616615b4d565b81518110610ec557610ec5615b60565b6001600160e01b0319909216602092830291909101909101528051633f2a32dd60e11b908490610ef485615b76565b9450610f039060ff8616615b4d565b81518110610f1357610f13615b60565b6001600160e01b03199092166020928302919091019091015260ff821615610f7d5760405162461bcd60e51b815260206004820152601c60248201527f7573652074686520636f7272656374206172726179206c656e677468000000006044820152606401610518565b505090565b6002805461053c90615a23565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb892610fdc9261010090910490911690339030906001600160e01b031988351690600401615a57565b602060405180830381865afa158015610ff9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101d9190615a8a565b6110395760405162461bcd60e51b815260040161051890615aac565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061106890600401615ad4565b602060405180830381865afa158015611085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a99190615b00565b90506001600160a01b0381166110c45760006106f284612d4a565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b15801561110757600080fd5b505af115801561111b573d6000803e3d6000fd5b50503332039150611133905057600061076a85612d4a565b604051633108c13b60e01b81526001600160a01b03821690633108c13b906111619032903390600401615b1d565b60006040518083038186803b15801561117957600080fd5b505afa15801561118d573d6000803e3d6000fd5b50505050600061076a85612d4a565b6000806111a881612dc7565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906111d790600401615ad4565b602060405180830381865afa1580156111f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112189190615b00565b90506001600160a01b03811661137057306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611268573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128c9190615b93565b5043600954146112a9576112a2600a6039612e8b565b925061136a565b836112b2612968565b10156112c4576112a2600e6038612e8b565b600d548411156112da576112a26002603a612e8b565b83600d546112e89190615bac565b600d55600354604080516303e1469160e61b815290516113659261010090046001600160a01b03169163f851a4409160048083019260209291908290030181865afa15801561133b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135f9190615b00565b856125f0565b600092505b5061151b565b604051633108c13b60e01b815281906001600160a01b03821690633108c13b906113a09032903390600401615b1d565b60006040518083038186803b1580156113b857600080fd5b505afa1580156113cc573d6000803e3d6000fd5b505050506113d73090565b6001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143a9190615b93565b50436009541461145757611450600a6039612e8b565b9350611518565b84611460612968565b101561147257611450600e6038612e8b565b600d54851115611488576114506002603a612e8b565b84600d546114969190615bac565b600d55600354604080516303e1469160e61b815290516115139261010090046001600160a01b03169163f851a4409160048083019260209291908290030181865afa1580156114e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150d9190615b00565b866125f0565b600093505b50505b61152481612f04565b50919050565b60008061153681612dc7565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061156590600401615ad4565b602060405180830381865afa158015611582573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a69190615b00565b90506001600160a01b03811661169a57306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af11580156115f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161a9190615b93565b504360095414611630576112a2600a6035612e8b565b83611639612968565b101561164b576112a2600e6034612e8b565b600e54841115611661576112a260026036612e8b565b600084600e546116719190615bac565b600e81905560005490915061168f906001600160a01b0316866125f0565b60009350505061151b565b604051633108c13b60e01b815281906001600160a01b03821690633108c13b906116ca9032903390600401615b1d565b60006040518083038186803b1580156116e257600080fd5b505afa1580156116f6573d6000803e3d6000fd5b505050506117013090565b6001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611740573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117649190615b93565b50436009541461177a57611450600a6035612e8b565b84611783612968565b101561179557611450600e6034612e8b565b600e548511156117ab5761145060026036612e8b565b600085600e546117bb9190615bac565b600e8190556000549091506117d9906001600160a01b0316876125f0565b6000945050505061152481612f04565b600060016117f681612dc7565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061182590600401615ad4565b602060405180830381865afa158015611842573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118669190615b00565b90506001600160a01b03811661188a5761188233878787612f87565b925050611972565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b1580156118cd57600080fd5b505af11580156118e1573d6000803e3d6000fd5b505033320391506119039050576118fa33888888612f87565b93505050611972565b604051633108c13b60e01b81526001600160a01b03821690633108c13b906119319032903390600401615b1d565b60006040518083038186803b15801561194957600080fd5b505afa15801561195d573d6000803e3d6000fd5b5050505061196d33888888612f87565b935050505b61197b81612f04565b509392505050565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb8926119d09261010090910490911690339030906001600160e01b031988351690600401615a57565b602060405180830381865afa1580156119ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a119190615a8a565b611a2d5760405162461bcd60e51b815260040161051890615aac565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190611a5c90600401615ad4565b602060405180830381865afa158015611a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9d9190615b00565b90506001600160a01b038116611ab657610cef836134d0565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b158015611af957600080fd5b505af1158015611b0d573d6000803e3d6000fd5b50503332039150611b23905057610d63846134d0565b604051633108c13b60e01b81526001600160a01b03821690633108c13b90611b519032903390600401615b1d565b60006040518083038186803b158015611b6957600080fd5b505afa158015611b7d573d6000803e3d6000fd5b50505050610d63846134d0565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb892611bd79261010090910490911690339030906001600160e01b031988351690600401615a57565b602060405180830381865afa158015611bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c189190615a8a565b611c345760405162461bcd60e51b815260040161051890615aac565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190611c6390600401615ad4565b602060405180830381865afa158015611c80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca49190615b00565b90506001600160a01b038116611cbd57610cef8361354b565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b158015611d0057600080fd5b505af1158015611d14573d6000803e3d6000fd5b50503332039150611d2a905057610d638461354b565b604051633108c13b60e01b81526001600160a01b03821690633108c13b90611d589032903390600401615b1d565b60006040518083038186803b158015611d7057600080fd5b505afa158015611d84573d6000803e3d6000fd5b50505050610d638461354b565b60008054600354604051631beb2b9760e31b81526001600160a01b039283169263df595cb892611dde9261010090910490911690339030906001600160e01b031988351690600401615a57565b602060405180830381865afa158015611dfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e1f9190615a8a565b611e3b5760405162461bcd60e51b815260040161051890615aac565b60145460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190611e6a90600401615ad4565b602060405180830381865afa158015611e87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eab9190615b00565b90506001600160a01b0381166120e05760145460405163bf40fac160e01b815286916000916001600160a01b039091169063bf40fac190611eee90600401615bd5565b602060405180830381865afa158015611f0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2f9190615b00565b60145460405163bf40fac160e01b81529192506000916001600160a01b039091169063bf40fac190611f6390600401615bf7565b602060405180830381865afa158015611f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa49190615b00565b9050806001600160a01b0316632c89aa2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fe4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120089190615b93565b6003546040516357c89a7d60e01b81526001600160a01b03808616926357c89a7d9261203f92899261010090041690600401615b1d565b602060405180830381865afa15801561205c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120809190615b93565b11156120c557336001600160a01b038216146120ae5760405162461bcd60e51b815260040161051890615c25565b60006120bb8989896135c8565b5095506120d79050565b60006120d28989896135c8565b509550505b50505050610cef565b60405163b230eab960e01b815233600482015281906001600160a01b0382169063b230eab990602401600060405180830381600087803b15801561212357600080fd5b505af1158015612137573d6000803e3d6000fd5b5050333203915061236a90505760145460405163bf40fac160e01b815287916000916001600160a01b039091169063bf40fac19061217790600401615bd5565b602060405180830381865afa158015612194573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b89190615b00565b60145460405163bf40fac160e01b81529192506000916001600160a01b039091169063bf40fac1906121ec90600401615bf7565b602060405180830381865afa158015612209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222d9190615b00565b9050806001600160a01b0316632c89aa2e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561226d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122919190615b93565b6003546040516357c89a7d60e01b81526001600160a01b03808616926357c89a7d926122c892899261010090041690600401615b1d565b602060405180830381865afa1580156122e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123099190615b93565b111561234e57336001600160a01b038216146123375760405162461bcd60e51b815260040161051890615c25565b60006123448a8a8a6135c8565b5096506123609050565b600061235b8a8a8a6135c8565b509650505b5050505050610cef565b604051633108c13b60e01b81526001600160a01b03821690633108c13b906123989032903390600401615b1d565b60006040518083038186803b1580156123b057600080fd5b505afa1580156123c4573d6000803e3d6000fd5b505060145460405163bf40fac160e01b8152899350600092506001600160a01b039091169063bf40fac1906123fb90600401615bd5565b602060405180830381865afa158015612418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243c9190615b00565b60145460405163bf40fac160e01b81529192506000916001600160a01b039091169063bf40fac19061247090600401615bf7565b602060405180830381865afa15801561248d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b19190615b00565b9050806001600160a01b0316632c89aa2e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125159190615b93565b6003546040516357c89a7d60e01b81526001600160a01b03808616926357c89a7d9261254c92899261010090041690600401615b1d565b602060405180830381865afa158015612569573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258d9190615b93565b11156125d257336001600160a01b038216146125bb5760405162461bcd60e51b815260040161051890615c25565b60006125c88a8a8a6135c8565b5096506125e49050565b60006125df8a8a8a6135c8565b509650505b50505050509392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091018252602080820180516001600160e01b031663a9059cbb60e01b1790528251808401909352601983527f544f4b454e5f5452414e534645525f4f55545f4641494c4544000000000000009083015261052b916136c2565b600080600061267f81612dc7565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af11580156126bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126e39190615b93565b506126ef33338661371f565b925092506126fc81612f04565b50915091565b6013546040516370a0823160e01b815230600482015260009182916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561274f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127739190615b93565b90506128036323b872dd60e01b85308660405160240161279593929190615c82565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518060400160405280601881526020017f544f4b454e5f5452414e534645525f494e5f4641494c454400000000000000008152506136c2565b6013546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561284c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128709190615b93565b9050818110156128c25760405162461bcd60e51b815260206004820152601a60248201527f544f4b454e5f5452414e534645525f494e5f4f564552464c4f570000000000006044820152606401610518565b6128cc8282615bac565b95945050505050565b60008060006128e381612dc7565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612923573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129479190615b93565b5061295333868661371f565b9250925061296081612f04565b509250929050565b6013546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156129b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a639190615b93565b600080600360019054906101000a90046001600160a01b03169050806001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a529190615b00565b6001600160a01b0316336001600160a01b0316148015612acf5750806001600160a01b0316630a755ec26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612aab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612acf9190615a8a565b80612b4c57506000546001600160a01b031633148015612b4c5750806001600160a01b031663cf6bfd2d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4c9190615a8a565b91505090565b600080612b5e81612dc7565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612b9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc29190615b93565b50612bcf33600085613bb3565b915061152481612f04565b606060036000612be86141fb565b90508160ff168151612bfa9190615b4d565b67ffffffffffffffff811115612c1257612c12615852565b604051908082528060200260200182016040528015612c3b578160200160208202803683370190505b50925060005b8151811015612c9757818181518110612c5c57612c5c615b60565b6020026020010151848281518110612c7657612c76615b60565b6001600160e01b031990921660209283029190910190910152600101612c41565b50805163cb2ef6f760e01b908490612cae85615b76565b9450612cbd9060ff8616615b4d565b81518110612ccd57612ccd615b60565b6001600160e01b0319909216602092830291909101909101528051632c436e5b60e01b908490612cfc85615b76565b9450612d0b9060ff8616615b4d565b81518110612d1b57612d1b615b60565b6001600160e01b0319909216602092830291909101909101528051630adccee560e31b908490610ef485615b76565b6000806000612d5881612dc7565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612d98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dbc9190615b93565b506126ef33856145c3565b600054600160a01b900460ff16612e0d5760405162461bcd60e51b815260206004820152600a6024820152691c994b595b9d195c995960b21b6044820152606401610518565b80612e7b57600360019054906101000a90046001600160a01b03166001600160a01b031663c90c20b16040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612e6257600080fd5b505af1158015612e76573d6000803e3d6000fd5b505050505b506000805460ff60a01b19169055565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0836011811115612ec057612ec0615bbf565b836061811115612ed257612ed2615bbf565b60408051928352602083019190915260009082015260600160405180910390a182601181111561082057610820615bbf565b6000805460ff60a01b1916600160a01b17905580610ab757600360019054906101000a90046001600160a01b03166001600160a01b031663632e51426040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612f6c57600080fd5b505af1158015612f80573d6000803e3d6000fd5b5050505050565b60035460405163d02f735160e01b815260009182916101009091046001600160a01b03169063d02f735190612fc89030908a908a908a908a90600401615ca6565b6020604051808303816000875af1158015612fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061300b9190615b93565b90508015613028576130206003601d836149ce565b915050610d63565b846001600160a01b0316846001600160a01b03160361304d576130206006601e612e8b565b6130b2604080516101808101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0385166000908152601060205260409020546130d59085614a70565b60208301819052828260038111156130ef576130ef615bbf565b600381111561310057613100615bbf565b905250600090508151600381111561311a5761311a615bbf565b1461314a576131416009601c8360000151600381111561313c5761313c615bbf565b6149ce565b92505050610d63565b613169846040518060200160405280666379da05b60000815250614a9b565b6080820152604080516020810190915267016345785d8a0000815261318f908590614a9b565b610140820181905260808201516131a69086615bac565b6131b09190615bac565b6060820152306001600160a01b031663bd6d894d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132179190615b93565b60c08201908152604080516020810190915290518152608082015161323c9190614abe565b60a0820152604080516020810190915260c082015181526101408201516132639190614abe565b61016082015260a0810151600c5461327b9190615b4d565b60e08201526101408101516080820151600f546132989190615bac565b6132a29190615bac565b610120820152610160810151600e546132bb9190615b4d565b6101008201526001600160a01b03861660009081526010602052604090205460608201516132e99190614ad6565b604083018190528282600381111561330357613303615bbf565b600381111561331457613314615bbf565b905250600090508151600381111561332e5761332e615bbf565b14613350576131416009601b8360000151600381111561313c5761313c615bbf565b60e0810151600c55610120810151600f55610100810151600e556020808201516001600160a01b0387811660008181526010855260408082209490945583860151928b1680825290849020929092556060850151925192835290929091600080516020615d6f833981519152910160405180910390a3306001600160a01b0316856001600160a01b0316600080516020615d6f83398151915283608001516040516133fd91815260200190565b60405180910390a360a081015160e08201516040805130815260208101939093528201527fa91e67c5ea634cd43a12c5a482724b03de01e85ca68702a53d0c2f45cb7c1dc59060600160405180910390a1600354604051636d35bf9160e01b81526101009091046001600160a01b031690636d35bf919061348a9030908b908b908b908b90600401615ca6565b600060405180830381600087803b1580156134a457600080fd5b505af11580156134b8573d6000803e3d6000fd5b50600092506134c5915050565b979650505050505050565b6000806134dc81612dc7565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af115801561351c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135409190615b93565b50612bcf3384614afc565b60008061355781612dc7565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015613597573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135bb9190615b93565b50612bcf33846000613bb3565b60008060006135d681612dc7565b306001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015613616573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363a9190615b93565b50836001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af115801561367b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061369f9190615b93565b506136ac33878787614ec1565b925092506136b981612f04565b50935093915050565b6013546000906136dc906001600160a01b03168484615369565b805190915015610bb757808060200190518101906136fa9190615a8a565b82906137195760405162461bcd60e51b81526004016105189190615806565b50505050565b600354604051631200453160e11b81523060048201526001600160a01b03858116602483015284811660448301526064820184905260009283928392610100909204909116906324008a62906084016020604051808303816000875af115801561378d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b19190615b93565b905080156137d2576137c660036043836149ce565b60009250925050613bab565b43600954146137e7576137c6600a6044612e8b565b6138306040805161010081019091528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b0386166000908152601260205260409020600101546060820152306040516305eff7ef60e21b81526001600160a01b03888116600483015291909116906317bfdfbc90602401602060405180830381865afa15801561389a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138be9190615b93565b6080820152600185016138da57608081015160408201526138e2565b604081018590525b6138f0878260400151612702565b60e08201819052608082015161390591614a70565b60a083018190526020830182600381111561392257613922615bbf565b600381111561393357613933615bbf565b905250600090508160200151600381111561395057613950615bbf565b146139c35760405162461bcd60e51b815260206004820152603a60248201527f52455041595f424f52524f575f4e45575f4143434f554e545f424f52524f575f60448201527f42414c414e43455f43414c43554c4154494f4e5f4641494c45440000000000006064820152608401610518565b6139d3600b548260e00151614a70565b60c08301819052602083018260038111156139f0576139f0615bbf565b6003811115613a0157613a01615bbf565b9052506000905081602001516003811115613a1e57613a1e615bbf565b14613a855760405162461bcd60e51b815260206004820152603160248201527f52455041595f424f52524f575f4e45575f544f54414c5f42414c414e43455f43604482015270105310d55310551253d397d19052531151607a1b6064820152608401610518565b60a081810180516001600160a01b03898116600081815260126020908152604091829020948555600a5460019095019490945560c0870151600b81905560e088015195518251948f16855294840192909252820193909352606081019190915260808101919091527f1a2a22cb034d26d1854bdc6666a5b91fe25efbbb5dcad3b0355478d6f5c362a1910160405180910390a160035460e082015160405163efcb03dd60e01b81523060048201526001600160a01b038a8116602483015289811660448301526064820192909252610100909204169063efcb03dd90608401600060405180830381600087803b158015613b7e57600080fd5b505af1158015613b92573d6000803e3d6000fd5b5060009250613b9f915050565b8160e001519350935050505b935093915050565b6000821580613bc0575081155b613c0c5760405162461bcd60e51b815260206004820152601860248201527f2172656465656d20746f6b656e73206f7220616d6f756e7400000000000000006044820152606401610518565b613c4d6040805160e0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b306001600160a01b031663bd6d894d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613c8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613caf9190615b93565b60408201528315613d725761138884600f54613ccb9190615bac565b1015613cd757600f5493505b6060810184905260408051602081018252908201518152613cf890856153fc565b6080830181905260208301826003811115613d1557613d15615bbf565b6003811115613d2657613d26615bbf565b9052506000905081602001516003811115613d4357613d43615bbf565b14613d6d57613d656009602c8360200151600381111561313c5761313c615bbf565b915050610cef565b613eb9565b6000198303613dff57600354604051630cbb414760e11b81526001600160a01b0387811660048301523060248301526000604483015261010090920490911690631976828e90606401602060405180830381865afa158015613dd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dfc9190615b93565b92505b6000306001600160a01b0316634aeb3d9a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e639190615b93565b90506103e8613e728583615bac565b1015613e7c578093505b613e8a84836040015161544e565b60608301819052600f546103e891613ea191615bac565b1015613eb057600f5460608301525b50608081018390525b600354606082015160405163eabe7d9160e01b815260009261010090046001600160a01b03169163eabe7d9191613ef79130918b9190600401615c82565b6020604051808303816000875af1158015613f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f3a9190615b93565b90508015613f5857613f4f6003602b836149ce565b92505050610cef565b4360095414613f6d57613f4f600a602f612e8b565b613f7d600f548360600151614a70565b60a0840181905260208401826003811115613f9a57613f9a615bbf565b6003811115613fab57613fab615bbf565b9052506000905082602001516003811115613fc857613fc8615bbf565b14613fea57613f4f600960318460200151600381111561313c5761313c615bbf565b6001600160a01b03861660009081526010602052604090205460608301516140129190614a70565b60c084018190526020840182600381111561402f5761402f615bbf565b600381111561404057614040615bbf565b905250600090508260200151600381111561405d5761405d615bbf565b1461407f57613f4f600960308460200151600381111561313c5761313c615bbf565b816080015161408c612968565b101561409e57613f4f600e6032612e8b565b60a0820151600f5560c08201516001600160a01b03871660009081526010602052604090205560808201516140d49087906125f0565b306001600160a01b0316866001600160a01b0316600080516020615d6f833981519152846060015160405161410b91815260200190565b60405180910390a36080820151606080840151604080516001600160a01b038b16815260208101949094528301527fe5b754fb1abb7f01b499791d0b820ae3b6af3424ac1c59768edb53f4ec31a929910160405180910390a1600354608083015160608401516040516351dff98960e01b81523060048201526001600160a01b038a811660248301526044820193909352606481019190915261010090920416906351dff989906084015b600060405180830381600087803b1580156141d057600080fd5b505af11580156141e4573d6000803e3d6000fd5b50600092506141f1915050565b9695505050505050565b60408051600d8082526101c082019092526060919060009082602082016101a08036833701905050905063140e25ad60e31b8161423784615b76565b93508360ff168151811061424d5761424d615b60565b6001600160e01b03199092166020928302919091019091015263db006a7560e01b8161427884615b76565b93508360ff168151811061428e5761428e615b60565b6001600160e01b03199092166020928302919091019091015263852a12e360e01b816142b984615b76565b93508360ff16815181106142cf576142cf615b60565b6001600160e01b03199092166020928302919091019091015263317afabb60e21b816142fa84615b76565b93508360ff168151811061431057614310615b60565b6001600160e01b03199092166020928302919091019091015263073a938160e11b8161433b84615b76565b93508360ff168151811061435157614351615b60565b6001600160e01b0319909216602092830291909101909101526304c11f0360e31b8161437c84615b76565b93508360ff168151811061439257614392615b60565b6001600160e01b031990921660209283029190910190910152637af1e23160e11b816143bd84615b76565b93508360ff16815181106143d3576143d3615b60565b6001600160e01b031990921660209283029190910190910152631d8e90d160e11b816143fe84615b76565b93508360ff168151811061441457614414615b60565b6001600160e01b03199092166020928302919091019091015263b2a02ff160e01b8161443f84615b76565b93508360ff168151811061445557614455615b60565b6001600160e01b03199092166020928302919091019091015263067db1b360e01b8161448084615b76565b93508360ff168151811061449657614496615b60565b6001600160e01b0319909216602092830291909101909101526304d7c4cd60e21b816144c184615b76565b93508360ff16815181106144d7576144d7615b60565b6001600160e01b03199092166020928302919091019091015263b0d58e4960e01b8161450284615b76565b93508360ff168151811061451857614518615b60565b6001600160e01b03199092166020928302919091019091015263a7b820df60e01b8161454384615b76565b93508360ff168151811061455957614559615b60565b6001600160e01b03199092166020928302919091019091015260ff8216156108235760405162461bcd60e51b815260206004820152601c60248201527f7573652074686520636f7272656374206172726179206c656e677468000000006044820152606401610518565b600354604051634ef4c3e160e01b81526000918291829161010090046001600160a01b031690634ef4c3e19061460190309089908990600401615c82565b6020604051808303816000875af1158015614620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146449190615b93565b905080156146655761465960036021836149ce565b600092509250506149c7565b436009541461467a57614659600a6024612e8b565b6146bb6040805160e0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b306001600160a01b031663bd6d894d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156146f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061471d9190615b93565b604082015261472c8686612702565b60c082018190526040805160208101825290830151815261474d9190615489565b606083018190526020830182600381111561476a5761476a615bbf565b600381111561477b5761477b615bbf565b905250600090508160200151600381111561479857614798615bbf565b146147e55760405162461bcd60e51b815260206004820181905260248201527f4d494e545f45584348414e47455f43414c43554c4154494f4e5f4641494c45446044820152606401610518565b60008160600151116148395760405162461bcd60e51b815260206004820152601a60248201527f4d494e545f5a45524f5f43544f4b454e535f52454a45435445440000000000006044820152606401610518565b8060600151600f5461484b9190615b4d565b608082015260608101516001600160a01b0387166000908152601060205260409020546148789190615b4d565b60a082018190526080820151600f556001600160a01b0387166000818152601060209081526040918290209390935560c0840151606080860151835194855294840191909152908201929092527f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a1856001600160a01b0316306001600160a01b0316600080516020615d6f833981519152836060015160405161492791815260200190565b60405180910390a360035460c082015160608301516040516341c728b960e01b81523060048201526001600160a01b038a811660248301526044820193909352606481019190915261010090920416906341c728b990608401600060405180830381600087803b15801561499a57600080fd5b505af11580156149ae573d6000803e3d6000fd5b50600092506149bb915050565b8160c001519350935050505b9250929050565b60007f45b96fe442630264581b197e84bbada861235052c5a1aadfff9ea4e40a969aa0846011811115614a0357614a03615bbf565b846061811115614a1557614a15615bbf565b604080519283526020830191909152810184905260600160405180910390a16003846011811115614a4857614a48615bbf565b14614a6457836011811115614a5f57614a5f615bbf565b610d63565b610d63826103e8615b4d565b600080838311614a8f576000614a868486615bac565b915091506149c7565b506003905060006149c7565b6000670de0b6b3a7640000614ab4848460000151615499565b6108209190615cef565b600080614acb84846154db565b9050610d638161550c565b600080838301848110614aee576000925090506149c7565b6002600092509250506149c7565b60035460405163368f515360e21b815260009182916101009091046001600160a01b03169063da3d454c90614b3990309088908890600401615c82565b6020604051808303816000875af1158015614b58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b7c9190615b93565b90508015614b9957614b9160036010836149ce565b915050610823565b4360095414614bae57614b91600a600c612e8b565b6000614bb8612968565b905083811015614bd757614bce600e600b612e8b565b92505050610823565b614c03604080516080810190915280600081526020016000815260200160008152602001600081525090565b306040516305eff7ef60e21b81526001600160a01b03888116600483015291909116906317bfdfbc90602401602060405180830381865afa158015614c4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c709190615b93565b60208201819052614c819086614ad6565b6040830181905282826003811115614c9b57614c9b615bbf565b6003811115614cac57614cac615bbf565b9052506000905081516003811115614cc657614cc6615bbf565b14614cf257614ce86009600e8360000151600381111561313c5761313c615bbf565b9350505050610823565b6003546040828101519051631de6c8a560e21b815230600482015260248101919091526101009091046001600160a01b03169063779b229490604401602060405180830381865afa158015614d4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d6f9190615b93565b92508215614d8457614ce860036010856149ce565b614d90600b5486614ad6565b6060830181905282826003811115614daa57614daa615bbf565b6003811115614dbb57614dbb615bbf565b9052506000905081516003811115614dd557614dd5615bbf565b14614df757614ce86009600d8360000151600381111561313c5761313c615bbf565b6040808201516001600160a01b0388166000908152601260205291909120908155600a546001909101556060810151600b55614e3386866125f0565b60408082015160608084015183516001600160a01b038b168152602081018a9052938401929092528201527f13ed6866d4e1ee6da46f845c46d7e54120883d75c5ea9a2dacc1c4ca8984ab809060800160405180910390a1600354604051639614b53b60e01b81526101009091046001600160a01b031690639614b53b906141b69030908a90600401615b1d565b600354604051632fe3f38f60e11b81526000918291829161010090046001600160a01b031690635fc7e71e90614f0390309088908c908c908c90600401615ca6565b6020604051808303816000875af1158015614f22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614f469190615b93565b90508015614f6757614f5b60036014836149ce565b60009250925050615360565b4360095414614f7c57614f5b600a6018612e8b565b43846001600160a01b0316636c540baf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614fbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614fdf9190615b93565b14614ff057614f5b600a6013612e8b565b866001600160a01b0316866001600160a01b03160361501557614f5b60066019612e8b565b8460000361502957614f5b60076017612e8b565b600019850361503e57614f5b60076016612e8b565b60008061504c89898961371f565b909250905081156150815761507382601181111561506c5761506c615bbf565b601a612e8b565b600094509450505050615360565b60035460405163c488847b60e01b815260009182916101009091046001600160a01b03169063c488847b906150be9030908c908890600401615c82565b6040805180830381865afa1580156150da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906150fe9190615d03565b9092509050811561516d5760405162461bcd60e51b815260206004820152603360248201527f4c49515549444154455f434f4d5054524f4c4c45525f43414c43554c4154455f604482015272105353d5539517d4d152569157d19052531151606a1b6064820152608401610518565b6040516370a0823160e01b81526001600160a01b038b811660048301528291908a16906370a0823190602401602060405180830381865afa1580156151b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906151da9190615b93565b10156152285760405162461bcd60e51b815260206004820152601860248201527f4c49515549444154455f5345495a455f544f4f5f4d55434800000000000000006044820152606401610518565b6000306001600160a01b038a160361524d57615246308d8d85612f87565b90506152c3565b60405163b2a02ff160e01b81526001600160a01b038a169063b2a02ff19061527d908f908f908790600401615c82565b6020604051808303816000875af115801561529c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906152c09190615b93565b90505b80156152fa5760405162461bcd60e51b8152602060048201526006602482015265217365697a6560d01b6044820152606401610518565b604080516001600160a01b038e811682528d811660208301528183018790528b1660608201526080810184905290517f298637f684da70674f26509b10f07ec2fbc77a335ab1e7d6215a4b2484d8bb529181900360a00190a16000975092955050505050505b94509492505050565b6060600080856001600160a01b0316856040516153869190615d27565b6000604051808303816000865af19150503d80600081146153c3576040519150601f19603f3d011682016040523d82523d6000602084013e6153c8565b606091505b5091509150816128cc578051156153e25780518082602001fd5b8360405162461bcd60e51b81526004016105189190615806565b60008060008061540c8686615524565b9092509050600082600381111561542557615425615bbf565b1461543657509150600090506149c7565b60006154418261550c565b9350935050509250929050565b60008161546384670de0b6b3a7640000615d43565b61546d9190615cef565b90506154798284615d5a565b1561082357610820600182615b4d565b60008060008061540c86866155a0565b600061082083836040518060400160405280601781526020017f6d756c7469706c69636174696f6e206f766572666c6f77000000000000000000815250615613565b6040805160208101909152600081526040518060200160405280615503856000015185615499565b90529392505050565b805160009061082390670de0b6b3a764000090615cef565b600061553c6040518060200160405280600081525090565b60008061554d866000015186615666565b9092509050600082600381111561556657615566615bbf565b14615585575060408051602081019091526000815290925090506149c7565b60408051602081019091529081526000969095509350505050565b60006155b86040518060200160405280600081525090565b6000806155cd670de0b6b3a764000087615666565b909250905060008260038111156155e6576155e6615bbf565b14615605575060408051602081019091526000815290925090506149c7565b6154418186600001516156a8565b6000831580615620575082155b1561562d57506000610cef565b60006156398486615d43565b9050836156468683615cef565b1483906106f25760405162461bcd60e51b81526004016105189190615806565b6000808360000361567c575060009050806149c7565b8383028361568a8683615cef565b1461569d576002600092509250506149c7565b6000925090506149c7565b60006156c06040518060200160405280600081525090565b6000806156d586670de0b6b3a7640000615666565b909250905060008260038111156156ee576156ee615bbf565b1461570d575060408051602081019091526000815290925090506149c7565b60008061571a8388615773565b9092509050600082600381111561573357615733615bbf565b1461575657816040518060200160405280600081525095509550505050506149c7565b604080516020810190915290815260009890975095505050505050565b6000808260000361578a57506001905060006149c7565b60006157968486615cef565b915091509250929050565b6001600160a01b0381168114610ab757600080fd5b600080604083850312156157c957600080fd5b82356157d4816157a1565b946020939093013593505050565b60005b838110156157fd5781810151838201526020016157e5565b50506000910152565b60208152600082518060208401526158258160408501602087016157e2565b601f01601f19169190910160400192915050565b60006020828403121561584b57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561587a57600080fd5b813567ffffffffffffffff8082111561589257600080fd5b818401915084601f8301126158a657600080fd5b8135818111156158b8576158b8615852565b604051601f8201601f19908116603f011681019083821181831017156158e0576158e0615852565b816040528281528760208487010111156158f957600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806040838503121561592c57600080fd5b8235615937816157a1565b91506020830135615947816157a1565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156159945783516001600160e01b0319168352928401929184019160010161596e565b50909695505050505050565b6000806000606084860312156159b557600080fd5b83356159c0816157a1565b925060208401356159d0816157a1565b929592945050506040919091013590565b6000806000606084860312156159f657600080fd5b8335615a01816157a1565b9250602084013591506040840135615a18816157a1565b809150509250925092565b600181811c90821680615a3757607f821691505b60208210810361152457634e487b7160e01b600052602260045260246000fd5b6001600160a01b0394851681529284166020840152921660408201526001600160e01b0319909116606082015260800190565b600060208284031215615a9c57600080fd5b81518015158114610cef57600080fd5b6020808252600e908201526d1b9bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b60208082526012908201527148595045524e41544956455f4f5241434c4560701b604082015260600190565b600060208284031215615b1257600080fd5b8151610cef816157a1565b6001600160a01b0392831681529116602082015260400190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561082357610823615b37565b634e487b7160e01b600052603260045260246000fd5b600060ff821680615b8957615b89615b37565b6000190192915050565b600060208284031215615ba557600080fd5b5051919050565b8181038181111561082357610823615b37565b634e487b7160e01b600052602160045260246000fd5b602080825260089082015267506f6f6c4c656e7360c01b604082015260600190565b60208082526014908201527324b7b734b1aab734ab19a634b8bab4b230ba37b960611b604082015260600190565b6020808252603e908201527f4865616c746820666163746f72206e6f74206c6f7720656e6f75676820666f7260408201527f206e6f6e2d7065726d697373696f6e6564206c69717569646174696f6e730000606082015260800190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039586168152938516602085015291841660408401529092166060820152608081019190915260a00190565b634e487b7160e01b600052601260045260246000fd5b600082615cfe57615cfe615cd9565b500490565b60008060408385031215615d1657600080fd5b505080516020909101519092909150565b60008251615d398184602087016157e2565b9190910192915050565b808202811582820484141761082357610823615b37565b600082615d6957615d69615cd9565b50069056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205918bbfe8d64698e761913172452eecacb445a7b4ac9029555d4e94d617f30e964736f6c63430008160033