aave-protocol-v2/types/LendingPoolFactory.ts
2020-07-23 17:18:06 +02:00

1202 lines
64 KiB
TypeScript

/* Generated by ts-generator ver. 0.0.8 */
/* tslint:disable */
import {Contract, ContractFactory, Signer} from 'ethers';
import {Provider} from 'ethers/providers';
import {UnsignedTransaction} from 'ethers/utils/transaction';
import {TransactionOverrides} from '.';
import {LendingPool} from './LendingPool';
export class LendingPoolFactory extends ContractFactory {
constructor(linkLibraryAddresses: LendingPoolLibraryAddresses, signer?: Signer) {
super(_abi, LendingPoolFactory.linkBytecode(linkLibraryAddresses), signer);
}
static linkBytecode(linkLibraryAddresses: LendingPoolLibraryAddresses): string {
let linkedBytecode = _bytecode;
linkedBytecode = linkedBytecode.replace(
new RegExp('__\\$69254465eb8f179ea24caa73cf68b23524\\$__', 'g'),
linkLibraryAddresses['__$69254465eb8f179ea24caa73cf68b23524$__']
.replace(/^0x/, '')
.toLowerCase()
);
linkedBytecode = linkedBytecode.replace(
new RegExp('__\\$5e6137a1b5a0a366e2874209b5abf71c10\\$__', 'g'),
linkLibraryAddresses['__$5e6137a1b5a0a366e2874209b5abf71c10$__']
.replace(/^0x/, '')
.toLowerCase()
);
linkedBytecode = linkedBytecode.replace(
new RegExp('__\\$7347ff53b2b46c21e26a37164ae7f6739f\\$__', 'g'),
linkLibraryAddresses['__$7347ff53b2b46c21e26a37164ae7f6739f$__']
.replace(/^0x/, '')
.toLowerCase()
);
return linkedBytecode;
}
deploy(overrides?: TransactionOverrides): Promise<LendingPool> {
return super.deploy(overrides) as Promise<LendingPool>;
}
getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction {
return super.getDeployTransaction(overrides);
}
attach(address: string): LendingPool {
return super.attach(address) as LendingPool;
}
connect(signer: Signer): LendingPoolFactory {
return super.connect(signer) as LendingPoolFactory;
}
static connect(address: string, signerOrProvider: Signer | Provider): LendingPool {
return new Contract(address, _abi, signerOrProvider) as LendingPool;
}
}
const _abi = [
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_borrowRateMode',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_borrowRate',
type: 'uint256',
},
{
indexed: true,
internalType: 'uint16',
name: '_referral',
type: 'uint16',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'Borrow',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
indexed: true,
internalType: 'uint16',
name: '_referral',
type: 'uint16',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'Deposit',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_target',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_totalFee',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_protocolFee',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'FlashLoan',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_collateral',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_purchaseAmount',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_liquidatedCollateralAmount',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_accruedBorrowInterest',
type: 'uint256',
},
{
indexed: false,
internalType: 'address',
name: '_liquidator',
type: 'address',
},
{
indexed: false,
internalType: 'bool',
name: '_receiveAToken',
type: 'bool',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'LiquidationCall',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_collateral',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_feeLiquidated',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_liquidatedCollateralForFee',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'OriginationFeeLiquidated',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'RebalanceStableBorrowRate',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'RedeemUnderlying',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_repayer',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'Repay',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
],
name: 'ReserveUsedAsCollateralDisabled',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
],
name: 'ReserveUsedAsCollateralEnabled',
type: 'event',
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
indexed: true,
internalType: 'address',
name: '_user',
type: 'address',
},
{
indexed: false,
internalType: 'uint256',
name: '_timestamp',
type: 'uint256',
},
],
name: 'Swap',
type: 'event',
},
{
inputs: [],
name: 'LENDINGPOOL_REVISION',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'UINT_MAX_VALUE',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'addressesProvider',
outputs: [
{
internalType: 'contract LendingPoolAddressesProvider',
name: '',
type: 'address',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address',
name: '_user',
type: 'address',
},
{
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
],
name: 'balanceDecreaseAllowed',
outputs: [
{
internalType: 'bool',
name: '',
type: 'bool',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
internalType: 'uint256',
name: '_interestRateMode',
type: 'uint256',
},
{
internalType: 'uint16',
name: '_referralCode',
type: 'uint16',
},
],
name: 'borrow',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
internalType: 'uint16',
name: '_referralCode',
type: 'uint16',
},
],
name: 'deposit',
outputs: [],
stateMutability: 'payable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_receiver',
type: 'address',
},
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
internalType: 'bytes',
name: '_params',
type: 'bytes',
},
],
name: 'flashLoan',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
],
name: 'getConfiguration',
outputs: [
{
components: [
{
internalType: 'uint256',
name: 'data',
type: 'uint256',
},
],
internalType: 'struct ReserveConfiguration.Map',
name: '',
type: 'tuple',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
],
name: 'getReserveConfigurationData',
outputs: [
{
internalType: 'uint256',
name: 'decimals',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'ltv',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'liquidationThreshold',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'liquidationBonus',
type: 'uint256',
},
{
internalType: 'address',
name: 'interestRateStrategyAddress',
type: 'address',
},
{
internalType: 'bool',
name: 'usageAsCollateralEnabled',
type: 'bool',
},
{
internalType: 'bool',
name: 'borrowingEnabled',
type: 'bool',
},
{
internalType: 'bool',
name: 'stableBorrowRateEnabled',
type: 'bool',
},
{
internalType: 'bool',
name: 'isActive',
type: 'bool',
},
{
internalType: 'bool',
name: 'isFreezed',
type: 'bool',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
],
name: 'getReserveData',
outputs: [
{
internalType: 'uint256',
name: 'availableLiquidity',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'totalBorrowsStable',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'totalBorrowsVariable',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'liquidityRate',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'variableBorrowRate',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'stableBorrowRate',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'averageStableBorrowRate',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'liquidityIndex',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'variableBorrowIndex',
type: 'uint256',
},
{
internalType: 'uint40',
name: 'lastUpdateTimestamp',
type: 'uint40',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
],
name: 'getReserveNormalizedIncome',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
],
name: 'getReserveNormalizedVariableDebt',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
],
name: 'getReserveTokensAddresses',
outputs: [
{
internalType: 'address',
name: 'aTokenAddress',
type: 'address',
},
{
internalType: 'address',
name: 'stableDebtTokenAddress',
type: 'address',
},
{
internalType: 'address',
name: 'variableDebtTokenAddress',
type: 'address',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [],
name: 'getReserves',
outputs: [
{
internalType: 'address[]',
name: '',
type: 'address[]',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_user',
type: 'address',
},
],
name: 'getUserAccountData',
outputs: [
{
internalType: 'uint256',
name: 'totalCollateralETH',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'totalBorrowsETH',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'availableBorrowsETH',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'currentLiquidationThreshold',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'ltv',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'healthFactor',
type: 'uint256',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address',
name: '_user',
type: 'address',
},
],
name: 'getUserReserveData',
outputs: [
{
internalType: 'uint256',
name: 'currentATokenBalance',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'currentStableDebt',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'currentVariableDebt',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'principalStableDebt',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'principalVariableDebt',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'stableBorrowRate',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'liquidityRate',
type: 'uint256',
},
{
internalType: 'uint256',
name: 'variableBorrowIndex',
type: 'uint256',
},
{
internalType: 'uint40',
name: 'stableRateLastUpdated',
type: 'uint40',
},
{
internalType: 'bool',
name: 'usageAsCollateralEnabled',
type: 'bool',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address',
name: '_aTokenAddress',
type: 'address',
},
{
internalType: 'address',
name: '_stableDebtAddress',
type: 'address',
},
{
internalType: 'address',
name: '_variableDebtAddress',
type: 'address',
},
{
internalType: 'address',
name: '_interestRateStrategyAddress',
type: 'address',
},
],
name: 'initReserve',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'contract LendingPoolAddressesProvider',
name: '_addressesProvider',
type: 'address',
},
],
name: 'initialize',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_collateral',
type: 'address',
},
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address',
name: '_user',
type: 'address',
},
{
internalType: 'uint256',
name: '_purchaseAmount',
type: 'uint256',
},
{
internalType: 'bool',
name: '_receiveAToken',
type: 'bool',
},
],
name: 'liquidationCall',
outputs: [],
stateMutability: 'payable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address',
name: '_user',
type: 'address',
},
],
name: 'rebalanceStableBorrowRate',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address payable',
name: '_user',
type: 'address',
},
{
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
internalType: 'uint256',
name: '_aTokenBalanceAfterRedeem',
type: 'uint256',
},
],
name: 'redeemUnderlying',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'uint256',
name: '_amount',
type: 'uint256',
},
{
internalType: 'uint256',
name: '_rateMode',
type: 'uint256',
},
{
internalType: 'address payable',
name: '_onBehalfOf',
type: 'address',
},
],
name: 'repay',
outputs: [],
stateMutability: 'payable',
type: 'function',
},
{
inputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256',
},
],
name: 'reservesList',
outputs: [
{
internalType: 'address',
name: '',
type: 'address',
},
],
stateMutability: 'view',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'uint256',
name: '_configuration',
type: 'uint256',
},
],
name: 'setConfiguration',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'address',
name: '_rateStrategyAddress',
type: 'address',
},
],
name: 'setReserveInterestRateStrategyAddress',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'bool',
name: '_useAsCollateral',
type: 'bool',
},
],
name: 'setUserUseReserveAsCollateral',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
inputs: [
{
internalType: 'address',
name: '_reserve',
type: 'address',
},
{
internalType: 'uint256',
name: '_rateMode',
type: 'uint256',
},
],
name: 'swapBorrowRateMode',
outputs: [],
stateMutability: 'nonpayable',
type: 'function',
},
{
stateMutability: 'payable',
type: 'receive',
},
];
const _bytecode =
'0x6080604052600060015534801561001557600080fd5b506001600055614f7f8061002a6000396000f3fe60806040526004361061019f5760003560e01c80638afaff02116100ec578063c72c4d101161008a578063d0fc81d211610064578063d0fc81d21461051c578063d15e005314610531578063d2493b6c14610551578063d2d0e06614610580576101d4565b8063c72c4d10146104c7578063c858f5f9146104dc578063cd112382146104fc576101d4565b8063b8d29276116100c6578063b8d2927614610428578063bf92857c14610448578063c44b11f71461047a578063c4d66de8146104a7576101d4565b80638afaff02146103d357806394ba89a2146103e85780639895e3d814610408576101d4565b80633e150141116101595780635a3b74b9116101335780635a3b74b9146103465780635cffe9de1461036657806376e9d615146103865780637a708e92146103b3576101d4565b80633e150141146102d05780634fe7a6e514610306578063573ade8114610333576101d4565b8062a718a9146101d95780630902f1ac146101ec5780631d2118f91461021757806328dd2d011461023757806335ea6a751461026d578063386497fd146102a3576101d4565b366101d4576101ad33610593565b6101d25760405162461bcd60e51b81526004016101c990614a7d565b60405180910390fd5b005b600080fd5b6101d26101e73660046140ca565b6105cf565b3480156101f857600080fd5b506102016107a1565b60405161020e91906146fc565b60405180910390f35b34801561022357600080fd5b506101d2610232366004613fdd565b610803565b34801561024357600080fd5b50610257610252366004613fdd565b6108d6565b60405161020e9a99989796959493929190614e54565b34801561027957600080fd5b5061028d610288366004613fa5565b610baa565b60405161020e9a99989796959493929190614e08565b3480156102af57600080fd5b506102c36102be366004613fa5565b610e32565b60405161020e9190614d4e565b3480156102dc57600080fd5b506102f06102eb366004613fa5565b610e59565b60405161020e9a99989796959493929190614d88565b34801561031257600080fd5b50610326610321366004614356565b610f2f565b60405161020e919061452a565b6101d26103413660046142ad565b610f56565b34801561035257600080fd5b506101d261036136600461420e565b611297565b34801561037257600080fd5b506101d2610381366004614163565b611469565b34801561039257600080fd5b506103a66103a1366004614123565b6118cd565b60405161020e9190614749565b3480156103bf57600080fd5b506101d26103ce36600461405a565b6119ea565b3480156103df57600080fd5b506102c3611b23565b3480156103f457600080fd5b506101d261040336600461423b565b611b28565b34801561041457600080fd5b506101d2610423366004614015565b611e3f565b34801561043457600080fd5b506101d261044336600461423b565b612005565b34801561045457600080fd5b50610468610463366004613fa5565b6120c6565b60405161020e96959493929190614de0565b34801561048657600080fd5b5061049a610495366004613fa5565b612288565b60405161020e9190614b6c565b3480156104b357600080fd5b506101d26104c2366004613fa5565b6122bf565b3480156104d357600080fd5b506103266123f3565b3480156104e857600080fd5b506101d26104f73660046142f6565b612402565b34801561050857600080fd5b506101d2610517366004613fdd565b612934565b34801561052857600080fd5b506102c3612c24565b34801561053d57600080fd5b506102c361054c366004613fa5565b612c2a565b34801561055d57600080fd5b5061057161056c366004613fa5565b612c4b565b60405161020e939291906145bd565b6101d261058e366004614266565b612c80565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906105c757508115155b949350505050565b600260005414156105f25760405162461bcd60e51b81526004016101c990614b35565b6002600090815560355460408051632c1a75cd60e11b815290516001600160a01b0390921691635834eb9a91600480820192602092909190829003018186803b15801561063e57600080fd5b505afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190613fc1565b905060006060826001600160a01b0316888888888860405160240161069f9594939291906145e0565b60408051601f198184030181529181526020820180516001600160e01b031662a718a960e01b179052516106d3919061450b565b600060405180830381855af49150503d806000811461070e576040519150601f19603f3d011682016040523d82523d6000602084013e610713565b606091505b5091509150816107355760405162461bcd60e51b81526004016101c99061497c565b600060608280602001905181019061074d9190614386565b9150915081600014610790578060405160200161076a919061450b565b60408051601f198184030181529082905262461bcd60e51b82526101c991600401614754565b505060016000555050505050505050565b606060398054806020026020016040519081016040528092919081815260200182805480156107f957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116107db575b5050505050905090565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561084757600080fd5b505afa15801561085b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087f9190613fc1565b6001600160a01b0316146108a55760405162461bcd60e51b81526004016101c9906149b3565b6001600160a01b03918216600090815260376020526040902060090180546001600160a01b03191691909216179055565b6001600160a01b03808316600090815260376020526040808220600681015491516370a0823160e01b81529293849384938493849384938493849384938493919216906370a082319061092d908f9060040161452a565b60206040518083038186803b15801561094557600080fd5b505afa158015610959573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097d919061436e565b9a506109898c82612ed3565b909a5098506109988c82612fe7565b6001830154600784015460405163e78c9b3b60e01b8152939b5091995096506001600160a01b03169063e78c9b3b906109d5908f9060040161452a565b60206040518083038186803b1580156109ed57600080fd5b505afa158015610a01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a25919061436e565b6007820154604051631e739ae360e21b81529197506001600160a01b0316906379ce6b8c90610a58908f9060040161452a565b60206040518083038186803b158015610a7057600080fd5b505afa158015610a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa89190614474565b9250603860008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002060000160009054906101000a900460ff1691508060080160009054906101000a90046001600160a01b03166001600160a01b031663ee9907a48d6040518263ffffffff1660e01b8152600401610b48919061452a565b60206040518083038186803b158015610b6057600080fd5b505afa158015610b74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b98919061436e565b9350509295989b9194979a5092959850565b600080600080600080600080600080610bc1613ec4565b506001600160a01b038b811660008181526037602090815260409182902082516101808101845281548152600182015481840152600282015481850152600382015460608201526004820154608082015283519283019093526005810154825260a08301919091526006810154841660c083018190526007820154851660e084015260088201548516610100840152600990910154938416610120830152600160a01b840464ffffffffff16610140830152600160c81b90930460ff16151561016082015291610c9191906130a0565b8160e001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cce57600080fd5b505afa158015610ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d06919061436e565b8261010001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4457600080fd5b505afa158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c919061436e565b8360200151846040015185606001518660e001516001600160a01b03166390f6fcf26040518163ffffffff1660e01b815260040160206040518083038186803b158015610dc857600080fd5b505afa158015610ddc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e00919061436e565b876000015188608001518961014001519a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6001600160a01b0381166000908152603760205260408120610e5390613144565b92915050565b6000806000806000806000806000806000603760008d6001600160a01b03166001600160a01b031681526020019081526020016000209050610e9d8160050161317e565b610ea98260050161318f565b610eb58360050161319e565b610ec1846005016131b3565b60098501546001600160a01b0316610edb6005870161318f565b1515610ee9600588016131c6565b610ef5886005016131d8565b610f01896005016131ea565b610f0d8a6005016131fc565b9a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b60398181548110610f3c57fe5b6000918252602090912001546001600160a01b0316905081565b60026000541415610f795760405162461bcd60e51b81526004016101c990614b35565b6002600055610f86613f2b565b6001600160a01b03808616600081815260376020908152604080832094871683526038825280832093835292905220610fbf8483612ed3565b602085015283526000856002811115610fd457fe5b90506001816002811115610fe457fe5b14610ff3578360200151610ff6565b83515b604085015260001987148015906110105750836040015187105b1561101d57604084018790525b83516020850151604080870151905163152be4bd60e31b815273__$69254465eb8f179ea24caa73cf68b23524$__9363a95f25e89361106a9389938f938f938a938f933490600401614c0d565b60006040518083038186803b15801561108257600080fd5b505af4158015611096573d6000803e3d6000fd5b505050506110a38361320e565b60018160028111156110b157fe5b14156111265760078301546040808601519051632770a7eb60e21b81526001600160a01b0390921691639dc29fac916110ef9189919060040161453e565b600060405180830381600087803b15801561110957600080fd5b505af115801561111d573d6000803e3d6000fd5b50505050611191565b60088301546040808601519051632770a7eb60e21b81526001600160a01b0390921691639dc29fac9161115e9189919060040161453e565b600060405180830381600087803b15801561117857600080fd5b505af115801561118c573d6000803e3d6000fd5b505050505b60408401516111ab9084908a90600063ffffffff6132c616565b600683015460408501516111d9916001600160a01b038b81169233929190911690600063ffffffff6135a716565b6111eb886001600160a01b0316613735565b1561122d57600061120985604001513461375a90919063ffffffff16565b9050801561122b5761122b6001600160a01b038a16338363ffffffff61379c16565b505b336001600160a01b0316856001600160a01b0316896001600160a01b03167f81cfb79463601de705d4cf6b8d69112983d76a685120e5e4d3581f30871b87fc876040015142604051611280929190614d40565b60405180910390a450506001600055505050505050565b600260005414156112ba5760405162461bcd60e51b81526004016101c990614b35565b600260009081556001600160a01b038084168083526037602081815260408086203387526038808452828820958852948352958190206035548251631f94a27560e31b81529251919673__$69254465eb8f179ea24caa73cf68b23524$__9663e1717580968a968d9691959294603994169263fca513a8926004808201939291829003018186803b15801561134e57600080fd5b505afa158015611362573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113869190613fc1565b6040518763ffffffff1660e01b81526004016113a796959493929190614ba4565b60006040518083038186803b1580156113bf57600080fd5b505af41580156113d3573d6000803e3d6000fd5b5050825460ff191685158015919091178455915061142790505760405133906001600160a01b038616907e058a56ea94653cdf4f152d227ace22d4c00ad99e2a43f58cb7d9e3feb295f290600090a361145e565b60405133906001600160a01b038616907f44c58d81365b66dd4b1a7f36c25aa97b8c71c361ee4937adc1a00000227db5dd90600090a35b505060016000555050565b6002600054141561148c5760405162461bcd60e51b81526004016101c990614b35565b6002600055611499613f53565b6001600160a01b038085166000818152603760205260409020600681015490921660a084018190526114d1919063ffffffff6130a016565b82526114f66127106114ea86600963ffffffff61385516565b9063ffffffff61388f16565b6060830181905261151790612710906114ea90610bb863ffffffff61385516565b6080830152815184111561153d5760405162461bcd60e51b81526004016101c990614767565b60008260600151118015611555575060008260800151115b6115715760405162461bcd60e51b81526004016101c990614a99565b60a0820151604051634efecaa560e01b8152879182916001600160a01b0390911690634efecaa5906115a99084908a9060040161453e565b602060405180830381600087803b1580156115c357600080fd5b505af11580156115d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fb919061436e565b5060a0840151606085015160405163405b019d60e01b81526001600160a01b0385169263405b019d92611637928c92918c918c90600401614578565b600060405180830381600087803b15801561165157600080fd5b505af1158015611665573d6000803e3d6000fd5b50505050600061168b8560a00151896001600160a01b03166130a090919063ffffffff16565b606086015186519192506116a5919063ffffffff6138d116565b81146116c35760405162461bcd60e51b81526004016101c99061483e565b8373__$5e6137a1b5a0a366e2874209b5abf71c10$__638acb830b90918a88600001516117018a608001518b6060015161375a90919063ffffffff16565b8a608001516040518663ffffffff1660e01b8152600401611726959493929190614c6c565b60006040518083038186803b15801561173e57600080fd5b505af4158015611752573d6000803e3d6000fd5b505050508460a001516001600160a01b0316634efecaa5603560009054906101000a90046001600160a01b03166001600160a01b031663ee8912966040518163ffffffff1660e01b815260040160206040518083038186803b1580156117b757600080fd5b505afa1580156117cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ef9190613fc1565b87608001516040518363ffffffff1660e01b815260040161181192919061453e565b602060405180830381600087803b15801561182b57600080fd5b505af115801561183f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611863919061436e565b50876001600160a01b0316896001600160a01b03167f5b8f46461c1dd69fb968f1a003acee221ea3e19540e350233b612ddb43433b558988606001518960800151426040516118b59493929190614d6d565b60405180910390a35050600160005550505050505050565b600073__$7347ff53b2b46c21e26a37164ae7f6739f$__63daae7055858585603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561194057600080fd5b505afa158015611954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119789190613fc1565b6040518863ffffffff1660e01b815260040161199a9796959493929190614638565b60206040518083038186803b1580156119b257600080fd5b505af41580156119c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c7919061433a565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015611a2e57600080fd5b505afa158015611a42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a669190613fc1565b6001600160a01b031614611a8c5760405162461bcd60e51b81526004016101c9906149b3565b6001600160a01b038516600090815260376020526040908190209051632d621e9960e21b815273__$5e6137a1b5a0a366e2874209b5abf71c10$__9163b5887a6491611ae391908890889088908890600401614b76565b60006040518083038186803b158015611afb57600080fd5b505af4158015611b0f573d6000803e3d6000fd5b50505050611b1c856138f6565b5050505050565b600281565b60026000541415611b4b5760405162461bcd60e51b81526004016101c990614b35565b600260009081556001600160a01b0383168082526037602090815260408084203380865260388452828620948652939092528320909290918190611b8f9085612ed3565b915091506000856002811115611ba157fe5b604051639e29334160e01b815290915073__$69254465eb8f179ea24caa73cf68b23524$__90639e29334190611be39088908890889088908890600401614d0a565b60006040518083038186803b158015611bfb57600080fd5b505af4158015611c0f573d6000803e3d6000fd5b50505050611c1c8561320e565b6001816002811115611c2a57fe5b1415611d01576007850154604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90611c64903390879060040161453e565b600060405180830381600087803b158015611c7e57600080fd5b505af1158015611c92573d6000803e3d6000fd5b50505060088601546040516340c10f1960e01b81526001600160a01b0390911691506340c10f1990611cca903390879060040161453e565b600060405180830381600087803b158015611ce457600080fd5b505af1158015611cf8573d6000803e3d6000fd5b50505050611dd3565b6008850154604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90611d35903390869060040161453e565b600060405180830381600087803b158015611d4f57600080fd5b505af1158015611d63573d6000803e3d6000fd5b5050505060078501546003860154604051630ab714fb60e11b81526001600160a01b039092169163156e29f691611da09133918791600401614557565b600060405180830381600087803b158015611dba57600080fd5b505af1158015611dce573d6000803e3d6000fd5b505050505b611de6858860008063ffffffff6132c616565b336001600160a01b0316876001600160a01b03167fea368a40e9570069bb8e6511d668293ad2e1f03b0d982431fd223de9f3b70ca642604051611e299190614d4e565b60405180910390a3505060016000555050505050565b60026000541415611e625760405162461bcd60e51b81526004016101c990614b35565b600260009081556001600160a01b0380861680835260376020908152604080852088851686526038835281862093865292909152928390206006820154935163cf478a7960e01b815291939092169073__$69254465eb8f179ea24caa73cf68b23524$__9063cf478a7990611edf9086908b908a90600401614bee565b60006040518083038186803b158015611ef757600080fd5b505af4158015611f0b573d6000803e3d6000fd5b50505050611f188361320e565b611f2b838860008863ffffffff6132c616565b83611f3957815460ff191682555b6006830154604051634efecaa560e01b81526001600160a01b0390911690634efecaa590611f6d908990899060040161453e565b602060405180830381600087803b158015611f8757600080fd5b505af1158015611f9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbf919061436e565b50856001600160a01b0316876001600160a01b03167f9c4ed599cd8555b9c1e8cd7643240d7d71eb76b792948c49fcb4d411f7b6b3c68742604051611e29929190614d40565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561204957600080fd5b505afa15801561205d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120819190613fc1565b6001600160a01b0316146120a75760405162461bcd60e51b81526004016101c9906149b3565b6001600160a01b03909116600090815260376020526040902060050155565b60008060008060008073__$7347ff53b2b46c21e26a37164ae7f6739f$__6392eeb05c88603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561213e57600080fd5b505afa158015612152573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121769190613fc1565b6040518663ffffffff1660e01b815260040161219695949392919061468b565b60a06040518083038186803b1580156121ae57600080fd5b505af41580156121c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e69190614435565b60405163d609bd1b60e01b8152949a5092985095509350915073__$7347ff53b2b46c21e26a37164ae7f6739f$__9063d609bd1b9061222d90899089908790600401614d57565b60206040518083038186803b15801561224557600080fd5b505af4158015612259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227d919061436e565b935091939550919395565b612290613f92565b506001600160a01b03166000908152603760209081526040918290208251918201909252600590910154815290565b60006122c9613999565b60025490915060ff16806122e057506122e061399e565b806122ec575060015481115b6123085760405162461bcd60e51b81526004016101c99061492e565b60025460ff16158015612329576002805460ff191660019081179091558290555b603580546001600160a01b0319166001600160a01b03858116919091179182905560408051633efbbf0f60e21b81529051929091169163fbeefc3c91600480820192602092909190829003018186803b15801561238557600080fd5b505afa158015612399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123bd9190613fc1565b603680546001600160a01b0319166001600160a01b039290921691909117905580156123ee576002805460ff191690555b505050565b6035546001600160a01b031681565b600260005414156124255760405162461bcd60e51b81526004016101c990614b35565b600260009081556001600160a01b03851680825260376020908152604080842033855260388352818520938552929091528220909161257d6124696005850161317e565b600a0a6114ea88603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156124be57600080fd5b505afa1580156124d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f69190613fc1565b6001600160a01b031663b3596f078c6040518263ffffffff1660e01b8152600401612521919061452a565b60206040518083038186803b15801561253957600080fd5b505afa15801561254d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612571919061436e565b9063ffffffff61385516565b905073__$69254465eb8f179ea24caa73cf68b23524$__63335c5e8984848a8a868b6019603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156125f557600080fd5b505afa158015612609573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061262d9190613fc1565b6040518c63ffffffff1660e01b81526004016126539b9a99989796959493929190614c98565b60006040518083038186803b15801561266b57600080fd5b505af415801561267f573d6000803e3d6000fd5b5050505061268c8361320e565b60098301805464ffffffffff60a01b1916600160a01b4264ffffffffff1602179055600383015460018660028111156126c157fe5b60028111156126cc57fe5b14156127c5576007840154604051630ab714fb60e11b81526001600160a01b039091169063156e29f6906127089033908b908690600401614557565b600060405180830381600087803b15801561272257600080fd5b505af1158015612736573d6000803e3d6000fd5b505050506007840154604051631e739ae360e21b81526000916001600160a01b0316906379ce6b8c9061276d90339060040161452a565b60206040518083038186803b15801561278557600080fd5b505afa158015612799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127bd9190614474565b90505061282c565b60088401546040516340c10f1960e01b81526001600160a01b03909116906340c10f19906127f99033908b9060040161453e565b600060405180830381600087803b15801561281357600080fd5b505af1158015612827573d6000803e3d6000fd5b505050505b61283f848960008a63ffffffff6132c616565b6006840154604051634efecaa560e01b81526001600160a01b0390911690634efecaa5906128739033908b9060040161453e565b602060405180830381600087803b15801561288d57600080fd5b505af11580156128a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c5919061436e565b5061ffff8516336001600160a01b038a167fe002884724be85e729c98360169e709585b299ace6fbe12aa791d2fee6f652808a8a60018c600281111561290757fe5b600281111561291257fe5b14612921578960020154612923565b865b426040516112809493929190614d6d565b600260005414156129575760405162461bcd60e51b81526004016101c990614b35565b600260009081556001600160a01b03808416825260376020526040808320600781015491516370a0823160e01b81529093919092169182906370a08231906129a390879060040161452a565b60206040518083038186803b1580156129bb57600080fd5b505afa1580156129cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f3919061436e565b905060008111612a155760405162461bcd60e51b81526004016101c9906148d1565b6000612a4e612a3d6aa56fa5b99019a5c8000000612a316139a4565b9063ffffffff6138d116565b60038601549063ffffffff6139b416565b90506000836001600160a01b031663e78c9b3b876040518263ffffffff1660e01b8152600401612a7e919061452a565b60206040518083038186803b158015612a9657600080fd5b505afa158015612aaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ace919061436e565b90508460010154811080612ae157508181115b612afd5760405162461bcd60e51b81526004016101c9906147ef565b612b068561320e565b604051632770a7eb60e21b81526001600160a01b03851690639dc29fac90612b34908990879060040161453e565b600060405180830381600087803b158015612b4e57600080fd5b505af1158015612b62573d6000803e3d6000fd5b5050506003860154604051630ab714fb60e11b81526001600160a01b038716925063156e29f691612b99918a918891600401614557565b600060405180830381600087803b158015612bb357600080fd5b505af1158015612bc7573d6000803e3d6000fd5b50612be1925087915089905060008063ffffffff6132c616565b856001600160a01b0316876001600160a01b03167f443060d15ff6dac05881a7c07a46ef8085d8af4399e436be6c25250df40c5f1842604051611e299190614d4e565b60001981565b6001600160a01b0381166000908152603760205260408120610e53906139ec565b6001600160a01b0390811660009081526037602052604090206006810154600782015460089092015490831693918316921690565b60026000541415612ca35760405162461bcd60e51b81526004016101c990614b35565b600260009081556001600160a01b038416808252603760209081526040808420338552603883528185209385529290915291829020915163b25dc48d60e01b815290919073__$69254465eb8f179ea24caa73cf68b23524$__9063b25dc48d90612d139085908890600401614d40565b60006040518083038186803b158015612d2b57600080fd5b505af4158015612d3f573d6000803e3d6000fd5b50505060068301546040516370a0823160e01b81526001600160a01b03909116915060009082906370a0823190612d7a90339060040161452a565b60206040518083038186803b158015612d9257600080fd5b505afa158015612da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dca919061436e565b159050612dd68461320e565b612de9848888600063ffffffff6132c616565b8015612dfb57825460ff191660011783555b6040516394362e8b60e01b81526001600160a01b038316906394362e8b90612e299033908a9060040161453e565b600060405180830381600087803b158015612e4357600080fd5b505af1158015612e57573d6000803e3d6000fd5b50612e73925050506001600160a01b03881633848960016135a7565b8461ffff16336001600160a01b0316886001600160a01b03167fc12c57b1c73a2c3a2ea4613e9476abb3d8d146857aab7329e24243fb59710c828942604051612ebd929190614d40565b60405180910390a4505060016000555050505050565b60078101546040516370a0823160e01b815260009182916001600160a01b03909116906370a0823190612f0a90879060040161452a565b60206040518083038186803b158015612f2257600080fd5b505afa158015612f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5a919061436e565b60088401546040516370a0823160e01b81526001600160a01b03909116906370a0823190612f8c90889060040161452a565b60206040518083038186803b158015612fa457600080fd5b505afa158015612fb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fdc919061436e565b915091509250929050565b600781015460405163631a6fd560e11b815260009182916001600160a01b039091169063c634dfaa9061301e90879060040161452a565b60206040518083038186803b15801561303657600080fd5b505afa15801561304a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061306e919061436e565b600884015460405163631a6fd560e11b81526001600160a01b039091169063c634dfaa90612f8c90889060040161452a565b60006130ab83613735565b156130c157506001600160a01b03811631610e53565b6040516370a0823160e01b81526001600160a01b038416906370a08231906130ed90859060040161452a565b60206040518083038186803b15801561310557600080fd5b505afa158015613119573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313d919061436e565b9392505050565b60008061313d836004015461317285600201548660090160149054906101000a900464ffffffffff16613a1a565b9063ffffffff6139b416565b5460301c610100600160d01b031690565b54670fffffffffff0000191690565b5460101c650fffffff0001600160f01b031690565b5460201c630fff0001600160e01b031690565b54603a1c6010600160c61b0316151590565b54603b1c6010600160c51b0316151590565b5460381c6010600160c81b0316151590565b5460391c6010600160c71b0316151590565b600061321982613a7f565b905080156132a2576001820154600983015460009161324591600160a01b900464ffffffffff16613b94565b835490915061325b90829063ffffffff6139b416565b83556002830154600984015460009161328191600160a01b900464ffffffffff16613a1a565b905061329a8460040154826139b490919063ffffffff16565b600485015550505b50600901805464ffffffffff60a01b1916600160a01b4264ffffffffff1602179055565b60078401546040805163487b7e7960e11b815290516000926001600160a01b0316916390f6fcf2916004808301926020929190829003018186803b15801561330d57600080fd5b505afa158015613321573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613345919061436e565b600686015490915060009061336c906001600160a01b03878116911663ffffffff6130a016565b6009870154909150600090819081906001600160a01b03166357e37af0896133aa8961339e898d63ffffffff6138d116565b9063ffffffff61375a16565b8c60070160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156133fa57600080fd5b505afa15801561340e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613432919061436e565b8d60080160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561348257600080fd5b505afa158015613496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134ba919061436e565b8a6040518663ffffffff1660e01b81526004016134db9594939291906146ce565b60606040518083038186803b1580156134f357600080fd5b505afa158015613507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061352b9190614408565b60018c0183905560038c0182905560028c018190558b5460048d01546040519497509295509093506001600160a01b038b16927f131cf1f61e39fd78f61f07d78533f5b6c13629c80ef6965983e92c72efbaa4a49261359492889288928c928992909190614de0565b60405180910390a2505050505050505050565b816135b157611b1c565b6135ba85613735565b1561371a57813410156135df5760405162461bcd60e51b81526004016101c990614a06565b6001600160a01b0383163014613672576000836001600160a01b03168361c3509060405161360c90614527565b600060405180830381858888f193505050503d806000811461364a576040519150601f19603f3d011682016040523d82523d6000602084013e61364f565b606091505b50509050806136705760405162461bcd60e51b81526004016101c990614a50565b505b80801561367e57508134115b156137155760006001600160a01b03851661369f348563ffffffff61375a16565b61c350906040516136af90614527565b600060405180830381858888f193505050503d80600081146136ed576040519150601f19603f3d011682016040523d82523d6000602084013e6136f2565b606091505b50509050806137135760405162461bcd60e51b81526004016101c990614a50565b505b611b1c565b611b1c6001600160a01b03861685858563ffffffff613bf416565b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14919050565b600061313d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613c52565b806137a6576123ee565b6137af83613735565b1561383b576000826001600160a01b03168261c350906040516137d190614527565b600060405180830381858888f193505050503d806000811461380f576040519150601f19603f3d011682016040523d82523d6000602084013e613814565b606091505b50509050806138355760405162461bcd60e51b81526004016101c990614a50565b506123ee565b6123ee6001600160a01b038416838363ffffffff613c7e16565b60008261386457506000610e53565b8282028284828161387157fe5b041461313d5760405162461bcd60e51b81526004016101c990614890565b600061313d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613c9d565b60008282018381101561313d5760405162461bcd60e51b81526004016101c9906147b8565b6000805b60395481101561394357826001600160a01b03166039828154811061391b57fe5b6000918252602090912001546001600160a01b0316141561393b57600191505b6001016138fa565b508061399557603980546001810182556000919091527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d30180546001600160a01b0319166001600160a01b0384161790555b5050565b600290565b303b1590565b6b033b2e3c9fd0803ce800000090565b600061313d6b033b2e3c9fd0803ce80000006114ea6139d9868663ffffffff61385516565b6b019d971e4fe8401e74000000906138d1565b60008061313d836000015461317285600101548660090160149054906101000a900464ffffffffff16613b94565b600080613a344264ffffffffff851663ffffffff61375a16565b90506000613a4c856301e1338063ffffffff61388f16565b9050613a7682613a6a613a5d6139a4565b849063ffffffff6138d116565b9063ffffffff613cd416565b95945050505050565b6000610e538260080160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613ad457600080fd5b505afa158015613ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b0c919061436e565b8360070160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015613b5c57600080fd5b505afa158015613b70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a31919061436e565b600080613bae4264ffffffffff851663ffffffff61375a16565b90506000613bd7613bc26301e13380613d2e565b613bcb84613d2e565b9063ffffffff613d4416565b9050613a76613be46139a4565b612a31878463ffffffff6139b416565b613c4c846323b872dd60e01b858585604051602401613c1593929190614614565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613d67565b50505050565b60008184841115613c765760405162461bcd60e51b81526004016101c99190614754565b505050900390565b6123ee8363a9059cbb60e01b8484604051602401613c1592919061453e565b60008183613cbe5760405162461bcd60e51b81526004016101c99190614754565b506000838581613cca57fe5b0495945050505050565b600060028206613cf0576b033b2e3c9fd0803ce8000000613cf2565b825b90506002820491505b8115610e5357613d0b83846139b4565b92506002820615613d2357613d2081846139b4565b90505b600282049150613cfb565b6000610e5382633b9aca0063ffffffff61385516565b6000600282046105c7836114ea613a5d876b033b2e3c9fd0803ce8000000613855565b6060613dbc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613df69092919063ffffffff16565b8051909150156123ee5780806020019051810190613dda919061433a565b6123ee5760405162461bcd60e51b81526004016101c990614aeb565b60606105c784846000856060613e0b85610593565b613e275760405162461bcd60e51b81526004016101c9906149cf565b60006060866001600160a01b03168587604051613e44919061450b565b60006040518083038185875af1925050503d8060008114613e81576040519150601f19603f3d011682016040523d82523d6000602084013e613e86565b606091505b50915091508115613e9a5791506105c79050565b805115613eaa5780518082602001fd5b8360405162461bcd60e51b81526004016101c99190614754565b6040518061018001604052806000815260200160008152602001600081526020016000815260200160008152602001613efb613f92565b815260006020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040518060c00160405280600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b031681525090565b6040518060200160405280600081525090565b600060208284031215613fb6578081fd5b813561313d81614f26565b600060208284031215613fd2578081fd5b815161313d81614f26565b60008060408385031215613fef578081fd5b8235613ffa81614f26565b9150602083013561400a81614f26565b809150509250929050565b6000806000806080858703121561402a578182fd5b843561403581614f26565b9350602085013561404581614f26565b93969395505050506040820135916060013590565b600080600080600060a08688031215614071578081fd5b853561407c81614f26565b9450602086013561408c81614f26565b9350604086013561409c81614f26565b925060608601356140ac81614f26565b915060808601356140bc81614f26565b809150509295509295909350565b600080600080600060a086880312156140e1578081fd5b85356140ec81614f26565b945060208601356140fc81614f26565b9350604086013561410c81614f26565b92506060860135915060808601356140bc81614f3b565b600080600060608486031215614137578283fd5b833561414281614f26565b9250602084013561415281614f26565b929592945050506040919091013590565b60008060008060808587031215614178578384fd5b843561418381614f26565b9350602085013561419381614f26565b925060408501359150606085013567ffffffffffffffff8111156141b5578182fd5b80860187601f8201126141c6578283fd5b803591506141db6141d683614ec9565b614ea2565b8281528860208484010111156141ef578384fd5b8260208301602083013791820160200192909252939692955090935050565b60008060408385031215614220578182fd5b823561422b81614f26565b9150602083013561400a81614f3b565b6000806040838503121561424d578182fd5b823561425881614f26565b946020939093013593505050565b60008060006060848603121561427a578081fd5b833561428581614f26565b925060208401359150604084013561ffff811681146142a2578182fd5b809150509250925092565b600080600080608085870312156142c2578182fd5b84356142cd81614f26565b9350602085013592506040850135915060608501356142eb81614f26565b939692955090935050565b6000806000806080858703121561430b578182fd5b843561431681614f26565b93506020850135925060408501359150606085013561ffff811681146142eb578182fd5b60006020828403121561434b578081fd5b815161313d81614f3b565b600060208284031215614367578081fd5b5035919050565b60006020828403121561437f578081fd5b5051919050565b60008060408385031215614398578182fd5b82519150602083015167ffffffffffffffff8111156143b5578182fd5b80840185601f8201126143c6578283fd5b805191506143d66141d683614ec9565b8281528660208484010111156143ea578384fd5b6143fb836020830160208501614eed565b8093505050509250929050565b60008060006060848603121561441c578081fd5b8351925060208401519150604084015190509250925092565b600080600080600060a0868803121561444c578283fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b600060208284031215614485578081fd5b815164ffffffffff8116811461313d578182fd5b6000815480845260208085019450838352808320835b838110156144d45781546001600160a01b0316875295820195600191820191016144af565b509495945050505050565b600081518084526144f7816020860160208601614eed565b601f01601f19169290920160200192915050565b6000825161451d818460208701614eed565b9190910192915050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906145b2908301846144df565b979650505050505050565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b03958616815293851660208501529190931660408301526060820192909252901515608082015260a00190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060018060a01b03808a168352808916602084015287604084015286606084015285608084015260e060a084015261467460e0840186614499565b915080841660c08401525098975050505050505050565b600060018060a01b03808816835286602084015285604084015260a060608401526146b960a0840186614499565b91508084166080840152509695505050505050565b6001600160a01b03959095168552602085019390935260408401919091526060830152608082015260a00190565b6020808252825182820181905260009190848201906040850190845b8181101561473d5783516001600160a01b031683529284019291840191600101614718565b50909695505050505050565b901515815260200190565b60006020825261313d60208301846144df565b60208082526031908201527f5468657265206973206e6f7420656e6f756768206c697175696469747920617660408201527061696c61626c6520746f20626f72726f7760781b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252602f908201527f496e746572657374207261746520726562616c616e636520636f6e646974696f60408201526e1b9cc81dd95c99481b9bdd081b595d608a1b606082015260800190565b60208082526032908201527f5468652061637475616c2062616c616e6365206f66207468652070726f746f636040820152711bdb081a5cc81a5b98dbdb9cda5cdd195b9d60721b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b60208082526038908201527f5573657220646f6573206e6f74206861766520616e7920737461626c6520726160408201527f7465206c6f616e20666f72207468697320726573657276650000000000000000606082015260800190565b6020808252602e908201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560408201526d195b881a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526017908201527f4c69717569646174696f6e2063616c6c206661696c6564000000000000000000604082015260600190565b602080825260029082015261033360f41b604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252602a908201527f57726f6e67207573616765206f66204554482e756e6976657273616c5472616e6040820152697366657246726f6d282960b01b606082015260800190565b60208082526013908201527211551217d514905394d1915497d19052531151606a1b604082015260600190565b602080825260029082015261191960f11b604082015260600190565b60208082526032908201527f5468652072657175657374656420616d6f756e7420697320746f6f20736d616c60408201527136103337b9103090233630b9b42637b0b71760711b606082015260800190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b9051815260200190565b9485526001600160a01b03938416602086015291831660408501528216606084015216608082015260a00190565b600087825260018060a01b03808816602084015286604084015285606084015260c06080840152614bd860c0840186614499565b915080841660a084015250979650505050505050565b9283526001600160a01b03919091166020830152604082015260600190565b8981526001600160a01b03898116602083015260408201899052610120820190614c3689614f19565b8860608401528088166080840152508560a08301528460c08301528360e0830152826101008301529a9950505050505050505050565b9485526001600160a01b0393909316602085015260408401919091526060830152608082015260a00190565b60006101608d83528c602084015260018060a01b03808d1660408501528b60608501528a60808501528960a08501528860c08501528760e08501528661010085015281610120850152614ced82850187614499565b925080851661014085015250509c9b505050505050505050505050565b600060a082019050868252856020830152846040830152836060830152614d3083614f19565b8260808301529695505050505050565b918252602082015260400190565b90815260200190565b9283526020830191909152604082015260600190565b93845260208401929092526040830152606082015260800190565b998a5260208a0198909852604089019690965260608801949094526001600160a01b03929092166080870152151560a0860152151560c0850152151560e0840152151561010083015215156101208201526101400190565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b998a5260208a019890985260408901969096526060880194909452608087019290925260a086015260c085015260e084015261010083015264ffffffffff166101208201526101400190565b998a5260208a019890985260408901969096526060880194909452608087019290925260a086015260c085015260e084015264ffffffffff1661010083015215156101208201526101400190565b60405181810167ffffffffffffffff81118282101715614ec157600080fd5b604052919050565b600067ffffffffffffffff821115614edf578081fd5b50601f01601f191660200190565b60005b83811015614f08578181015183820152602001614ef0565b83811115613c4c5750506000910152565b60038110614f2357fe5b50565b6001600160a01b0381168114614f2357600080fd5b8015158114614f2357600080fdfea2646970667358221220cf44fc9637ebbe427367506ae10c6899f9bd61b3a77cff08e37b840242acafca64736f6c63430006080033';
export interface LendingPoolLibraryAddresses {
['__$69254465eb8f179ea24caa73cf68b23524$__']: string;
['__$5e6137a1b5a0a366e2874209b5abf71c10$__']: string;
['__$7347ff53b2b46c21e26a37164ae7f6739f$__']: string;
}