26 txs
100 calls
constructor
constructor(address _initialOwner, string _name, string _symbol, uint48 _annualPerformanceFeeBps, address _feeCollector, address _tokenPrices, uint256 _maxTotalSupply)
functions
acceptedExitTokens
viewfunction acceptedExitTokens() view returns (address[])
acceptedInvestTokens
viewfunction acceptedInvestTokens() view returns (address[])
accruedPerformanceFee
viewfunction accruedPerformanceFee() view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
annualPerformanceFeeBps
viewfunction annualPerformanceFeeBps() view returns (uint48)
API_VERSION
viewfunction API_VERSION() view returns (string)
apiVersion
purefunction apiVersion() pure returns (string)
areExitsPaused
viewfunction areExitsPaused() view returns (bool)
areInvestmentsPaused
viewfunction areInvestmentsPaused() view returns (bool)
assetsAndLiabilities
viewfunction assetsAndLiabilities() view returns (uint256, uint256, uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
baseToken
viewfunction baseToken() view returns (address)
decimals
viewfunction decimals() view returns (uint8)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
effectiveExposure
viewfunction effectiveExposure() view returns (uint128)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
exitQuote
viewfunction exitQuote(uint256 investmentTokenAmount, address toToken, uint256 maxSlippageBps, uint256 deadline) view returns (tuple quoteData, uint256[] exitFeeBps)
explicitFunctionAccess
viewfunction explicitFunctionAccess(address, bytes4) view returns (bool)
feeCollector
viewfunction feeCollector() view returns (address)
getDynamicFeesBps
viewfunction getDynamicFeesBps() view returns (uint256 depositFeeBps, uint256 exitFeeBps)
investQuote
viewfunction investQuote(uint256 fromTokenAmount, address fromToken, uint256 maxSlippageBps, uint256 deadline) view returns (tuple quoteData, uint256[] investFeeBps)
isMinter
viewfunction isMinter(address account) view returns (bool)
lastPerformanceFeeTime
viewfunction lastPerformanceFeeTime() view returns (uint48)
manager
viewfunction manager() view returns (address)
maxExit
viewfunction maxExit(address toToken) view returns (uint256)
maxInvest
viewfunction maxInvest(address fromToken) view returns (uint256)
maxTotalSupply
viewfunction maxTotalSupply() view returns (uint256)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
owner
viewfunction owner() view returns (address)
reservesPerShare
viewfunction reservesPerShare() view returns (uint256)
reservesToShares
viewfunction reservesToShares(uint256 reserves) view returns (uint256)
reserveToken
viewfunction reserveToken() view returns (address)
sharesToReserves
viewfunction sharesToReserves(uint256 shares) view returns (uint256)
symbol
viewfunction symbol() view returns (string)
tokenPrices
viewfunction tokenPrices() view returns (address)
totalReserves
viewfunction totalReserves() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
userALRange
viewfunction userALRange() view returns (uint128, uint128)
acceptOwner
nonpayablefunction acceptOwner()
addMinter
nonpayablefunction addMinter(address account)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
burn
nonpayablefunction burn(address account, uint256 amount)
collectPerformanceFees
nonpayablefunction collectPerformanceFees() returns (uint256 amount)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
exitToNative
nonpayablefunction exitToNative(tuple, address) returns (uint256)
exitToToken
nonpayablefunction exitToToken(tuple quoteData, address recipient) returns (uint256 toTokenAmount)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
investWithNative
payablefunction investWithNative(tuple) payable returns (uint256)
investWithToken
nonpayablefunction investWithToken(tuple quoteData) returns (uint256 investmentAmount)
mint
nonpayablefunction mint(address _to, uint256 _amount)
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
proposeNewOwner
nonpayablefunction proposeNewOwner(address account)
recoverToken
nonpayablefunction recoverToken(address token, address to, uint256 amount)
removeMinter
nonpayablefunction removeMinter(address account)
setAnnualPerformanceFee
nonpayablefunction setAnnualPerformanceFee(uint48 _annualPerformanceFeeBps)
setExplicitAccess
nonpayablefunction setExplicitAccess(address allowedCaller, tuple[] access)
setFeeCollector
nonpayablefunction setFeeCollector(address _feeCollector)
setManager
nonpayablefunction setManager(address _manager)
setMaxTotalSupply
nonpayablefunction setMaxTotalSupply(uint256 _maxTotalSupply)
setTokenPrices
nonpayablefunction setTokenPrices(address _tokenPrices)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
events
AddedMinter
event AddedMinter(address indexed account)
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
EIP712DomainChanged
event EIP712DomainChanged()
Exited
event Exited(address indexed user, uint256 investmentAmount, address indexed toToken, uint256 toTokenAmount, address indexed recipient)
ExplicitAccessSet
event ExplicitAccessSet(address indexed account, bytes4 indexed fnSelector, bool indexed value)
FeeCollectorSet
event FeeCollectorSet(address indexed feeCollector)
Invested
event Invested(address indexed user, uint256 fromTokenAmount, address indexed fromToken, uint256 investmentAmount)
ManagerSet
event ManagerSet(address indexed manager)
MaxTotalSupplySet
event MaxTotalSupplySet(uint256 maxTotalSupply)
NewOwnerAccepted
event NewOwnerAccepted(address indexed oldOwner, address indexed newOwner)
NewOwnerProposed
event NewOwnerProposed(address indexed oldOwner, address indexed oldProposedOwner, address indexed newProposedOwner)
PerformanceFeesCollected
event PerformanceFeesCollected(address indexed feeCollector, uint256 mintAmount)
PerformanceFeeSet
event PerformanceFeeSet(uint256 fee)
RemovedMinter
event RemovedMinter(address indexed account)
TokenPricesSet
event TokenPricesSet(address indexed _tokenPrices)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
errors
BreachedMaxTotalSupply
error BreachedMaxTotalSupply(uint256 totalSupply, uint256 maxTotalSupply)
CannotMintOrBurn
error CannotMintOrBurn(address caller)
ExpectedNonZero
error ExpectedNonZero()
InvalidAccess
error InvalidAccess()
InvalidAddress
error InvalidAddress(address addr)
InvalidParam
error InvalidParam()
InvalidShortString
error InvalidShortString()
PRBMath_MulDiv_Overflow
error PRBMath_MulDiv_Overflow(uint256 x, uint256 y, uint256 denominator)
StringTooLong
error StringTooLong(string str)
Unsupported
error Unsupported()
creation bytecode
0x6101606040523480156200001257600080fd5b5060405162005190380380620051908339810160408190526200003591620003c8565b858588828282808380604051806040016040528060018152602001603160f81b815250868681600390816200006b919062000522565b5060046200007a828262000522565b506200008c91508390506005620001e5565b610120526200009d816006620001e5565b61014052815160208084019190912060e052815190820120610100524660a0526200012b60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0525062000140816200021e565b50506001600d5550505061271065ffffffffffff8716111591506200017a905057604051633494a40d60e21b815260040160405180910390fd5b600f80546001600160a01b039485166001600160a01b03194265ffffffffffff908116600160d01b026001600160d01b0391909916600160a01b0216928716929092179690961781169590951790556010805492909316919093161790556011555062000648915050565b60006020835110156200020557620001fd836200029b565b905062000218565b8162000212848262000522565b5060ff90505b92915050565b6009546001600160a01b0316156200024957604051633006171960e21b815260040160405180910390fd5b6001600160a01b0381166200027957604051634726455360e11b8152600060048201526024015b60405180910390fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b600080829050601f81511115620002c9578260405163305a27a960e01b8152600401620002709190620005ee565b8051620002d68262000623565b179392505050565b80516001600160a01b0381168114620002f657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200032e57818101518382015260200162000314565b50506000910152565b600082601f8301126200034957600080fd5b81516001600160401b0380821115620003665762000366620002fb565b604051601f8301601f19908116603f01168101908282118183101715620003915762000391620002fb565b81604052838152866020858801011115620003ab57600080fd5b620003be84602083016020890162000311565b9695505050505050565b600080600080600080600060e0888a031215620003e457600080fd5b620003ef88620002de565b60208901519097506001600160401b03808211156200040d57600080fd5b6200041b8b838c0162000337565b975060408a01519150808211156200043257600080fd5b50620004418a828b0162000337565b955050606088015165ffffffffffff811681146200045e57600080fd5b93506200046e60808901620002de565b92506200047e60a08901620002de565b915060c0880151905092959891949750929550565b600181811c90821680620004a857607f821691505b602082108103620004c957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200051d57600081815260208120601f850160051c81016020861015620004f85750805b601f850160051c820191505b81811015620005195782815560010162000504565b5050505b505050565b81516001600160401b038111156200053e576200053e620002fb565b62000556816200054f845462000493565b84620004cf565b602080601f8311600181146200058e5760008415620005755750858301515b600019600386901b1c1916600185901b17855562000519565b600085815260208120601f198616915b82811015620005bf578886015182559484019460019091019084016200059e565b5085821015620005de5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600082518060208401526200060f81604085016020870162000311565b601f01601f19169190910160400192915050565b80516020808301519190811015620004c95760001960209190910360031b1b16919050565b60805160a05160c05160e051610100516101205161014051614aed620006a360003960006114850152600061145a015260006130370152600061300f01526000612f6a01526000612f9401526000612fbe0152614aed6000f3fe6080604052600436106103b85760003560e01c806395d89b41116101f2578063c415b95c1161010d578063dd62ed3e116100a0578063edf90acf1161006f578063edf90acf14610c34578063f4325d6714610c54578063f57092bd14610c69578063ff32b55c14610c8957600080fd5b8063dd62ed3e14610b75578063e664b02014610bbb578063eb6c1f3014610be9578063ebbc496514610c1f57600080fd5b8063d4da79b3116100dc578063d4da79b314610aea578063d505accf14610aff578063d8e5db5214610b1f578063daeccc7914610b3a57600080fd5b8063c415b95c14610a65578063c55dae6314610a85578063c5e6f99414610a9a578063d0ebdbe714610aca57600080fd5b8063a7229fd911610185578063b1f8100d11610154578063b1f8100d146109e5578063b5a2d9a914610a05578063be2f503914610a25578063bfccf0ec14610a4557600080fd5b8063a7229fd91461094c578063a9059cbb1461096c578063aa271e1a1461098c578063b1e1fca4146109c557600080fd5b8063a42dce80116101c1578063a42dce80146108ab578063a457c2d7146108cb578063a515b8ec146108eb578063a5c59ba61461091557600080fd5b806395d89b4114610841578063983b2d56146108565780639a6b27cf146108765780639dc29fac1461088b57600080fd5b80633644e515116102e257806370a08231116102755780638a83c9cd116102445780638a83c9cd146107d75780638c625c15146107ec5780638da5cb5b1461080c5780638f840ddd1461082c57600080fd5b806370a082311461071057806377e3b267146107465780637ecebe001461078f57806384b0196e146107af57600080fd5b8063415a1271116102b1578063415a127114610687578063481c6a75146106a75780634d8fea1f146106d95780636a1eb7b8146106ee57600080fd5b80633644e5151461061257806339509351146106275780633f3e4c111461064757806340c10f191461066757600080fd5b80631a0377d11161035a5780632ab4d052116103295780632ab4d0521461059e5780633092afd5146105b4578063313ce567146105d657806333378e31146105f257600080fd5b80631a0377d1146104f757806323b872dd14610525578063258294101461054557806327e66c621461058b57600080fd5b80630e5f8f96116103965780630e5f8f961461043b57806313da2d4a1461048f57806318160ddd146104cd5780631902848a146104e257600080fd5b806306fdde03146103bd578063095ea7b3146103e85780630c14935e14610418575b600080fd5b3480156103c957600080fd5b506103d2610ca9565b6040516103df9190613be8565b60405180910390f35b3480156103f457600080fd5b50610408610403366004613c10565b610d3b565b60405190151581526020016103df565b34801561042457600080fd5b5061042d610d55565b6040519081526020016103df565b34801561044757600080fd5b50600f54610478907a010000000000000000000000000000000000000000000000000000900465ffffffffffff1681565b60405165ffffffffffff90911681526020016103df565b34801561049b57600080fd5b506104a4610de6565b604080516fffffffffffffffffffffffffffffffff9384168152929091166020830152016103df565b3480156104d957600080fd5b5060025461042d565b3480156104ee57600080fd5b5061042d610e75565b34801561050357600080fd5b50610517610512366004613c3c565b610efa565b6040516103df929190613cb4565b34801561053157600080fd5b50610408610540366004613d34565b610ff1565b34801561055157600080fd5b5060408051808201909152600581527f302e322e3000000000000000000000000000000000000000000000000000000060208201526103d2565b61042d610599366004613d87565b611017565b3480156105aa57600080fd5b5061042d60115481565b3480156105c057600080fd5b506105d46105cf366004613dbc565b61104b565b005b3480156105e257600080fd5b50604051601281526020016103df565b3480156105fe57600080fd5b5061042d61060d366004613dd9565b611116565b34801561061e57600080fd5b5061042d6111a3565b34801561063357600080fd5b50610408610642366004613c10565b6111ad565b34801561065357600080fd5b506105d4610662366004613dd9565b6111ec565b34801561067357600080fd5b506105d4610682366004613c10565b61128b565b34801561069357600080fd5b5061042d6106a2366004613dbc565b6112e9565b3480156106b357600080fd5b50600e546001600160a01b03165b6040516001600160a01b0390911681526020016103df565b3480156106e557600080fd5b5061042d611335565b3480156106fa57600080fd5b506107036113a3565b6040516103df9190613df2565b34801561071c57600080fd5b5061042d61072b366004613dbc565b6001600160a01b031660009081526020819052604090205490565b34801561075257600080fd5b506103d26040518060400160405280600581526020017f302e322e3000000000000000000000000000000000000000000000000000000081525081565b34801561079b57600080fd5b5061042d6107aa366004613dbc565b61142e565b3480156107bb57600080fd5b506107c461144c565b6040516103df9796959493929190613e3f565b3480156107e357600080fd5b506107036114f1565b3480156107f857600080fd5b506105d4610807366004613ec9565b611554565b34801561081857600080fd5b506009546106c1906001600160a01b031681565b34801561083857600080fd5b5061042d611691565b34801561084d57600080fd5b506103d26116db565b34801561086257600080fd5b506105d4610871366004613dbc565b6116ea565b34801561088257600080fd5b506104086117b8565b34801561089757600080fd5b506105d46108a6366004613c10565b61183f565b3480156108b757600080fd5b506105d46108c6366004613dbc565b611894565b3480156108d757600080fd5b506104086108e6366004613c10565b6119a9565b3480156108f757600080fd5b50610900611a5e565b604080519283526020830191909152016103df565b34801561092157600080fd5b50600f546104789074010000000000000000000000000000000000000000900465ffffffffffff1681565b34801561095857600080fd5b506105d4610967366004613d34565b611ae5565b34801561097857600080fd5b50610408610987366004613c10565b611baf565b34801561099857600080fd5b506104086109a7366004613dbc565b6001600160a01b03166000908152600c602052604090205460ff1690565b3480156109d157600080fd5b506010546106c1906001600160a01b031681565b3480156109f157600080fd5b506105d4610a00366004613dbc565b611bbd565b348015610a1157600080fd5b5061042d610a20366004613dbc565b611ce6565b348015610a3157600080fd5b506105d4610a40366004613dbc565b611d32565b348015610a5157600080fd5b506105d4610a60366004613ef1565b611e47565b348015610a7157600080fd5b50600f546106c1906001600160a01b031681565b348015610a9157600080fd5b506106c161202f565b348015610aa657600080fd5b50610aaf6120b6565b604080519384526020840192909252908201526060016103df565b348015610ad657600080fd5b506105d4610ae5366004613dbc565b612150565b348015610af657600080fd5b50610408612265565b348015610b0b57600080fd5b506105d4610b1a366004613f79565b6122c8565b348015610b2b57600080fd5b5061042d610599366004613ff0565b348015610b4657600080fd5b50610408610b55366004614072565b600a60209081526000928352604080842090915290825290205460ff1681565b348015610b8157600080fd5b5061042d610b903660046140a7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b348015610bc757600080fd5b50610bdb610bd6366004613c3c565b61242c565b6040516103df9291906140d5565b348015610bf557600080fd5b50610bfe612516565b6040516fffffffffffffffffffffffffffffffff90911681526020016103df565b348015610c2b57600080fd5b506105d46125a1565b348015610c4057600080fd5b5061042d610c4f366004613dd9565b612655565b348015610c6057600080fd5b506106c16126a1565b348015610c7557600080fd5b5061042d610c84366004613ff0565b612704565b348015610c9557600080fd5b5061042d610ca4366004613d87565b6128a7565b606060038054610cb890614138565b80601f0160208091040260200160405190810160405280929190818152602001828054610ce490614138565b8015610d315780601f10610d0657610100808354040283529160200191610d31565b820191906000526020600020905b815481529060010190602001808311610d1457829003601f168201915b5050505050905090565b600033610d49818585612a81565b60019150505b92915050565b600f546000908190610d8d907a010000000000000000000000000000000000000000000000000000900465ffffffffffff16426141b4565b9050610de0610d9b60025490565b600f54610dc990849074010000000000000000000000000000000000000000900465ffffffffffff166141c7565b610dd96127106301e133806141c7565b6000612bd9565b91505090565b600e54604080517f13da2d4a000000000000000000000000000000000000000000000000000000008152815160009384936001600160a01b03909116926313da2d4a92600480830193928290030181865afa158015610e49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6d91906141fe565b915091509091565b600e546000906001600160a01b031663643b1e50610e956012600a61430c565b60016040518363ffffffff1660e01b8152600401610eb4929190614385565b602060405180830381865afa158015610ed1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef59190614399565b905090565b610f436040518060e0016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001606081525090565b600e546040517f1a0377d1000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b03868116602483015260448201869052606482018590526060921690631a0377d190608401600060405180830381865afa158015610fbc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fe49190810190614539565b9097909650945050505050565b600033610fff858285612c74565b61100a858585612d06565b60019150505b9392505050565b60006040517f90a2caf200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611079336000357fffffffff0000000000000000000000000000000000000000000000000000000016612ef3565b6110af576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166000818152600c602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055517fc93cfdd5d8f442c448a02ed11ccff64355643272c9f2be94b723f2181af1a8969190a250565b600e546040517f24b821ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906324b821ab906111629085908590600401614385565b602060405180830381865afa15801561117f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f9190614399565b6000610ef5612f5d565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190610d4990829086906111e790879061460f565b612a81565b61121a336000357fffffffff0000000000000000000000000000000000000000000000000000000016612ef3565b611250576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60118190556040518181527f0120f799fc820eabb910038e9cce6e8024add369b4d780181846e300df2844849060200160405180910390a150565b336000908152600c602052604090205460ff166112db576040517fe5ef2bd00000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6112e58282613088565b5050565b600e546040517f415a12710000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092169063415a127190602401611162565b6000611365336000357fffffffff0000000000000000000000000000000000000000000000000000000016612ef3565b61139b576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ef5613147565b600e54604080517f6a1eb7b800000000000000000000000000000000000000000000000000000000815290516060926001600160a01b031691636a1eb7b89160048083019260009291908290030181865afa158015611406573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ef59190810190614622565b6001600160a01b038116600090815260076020526040812054610d4f565b6000606080828080836114807f000000000000000000000000000000000000000000000000000000000000000060056131f5565b6114ab7f000000000000000000000000000000000000000000000000000000000000000060066131f5565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b600e54604080517f8a83c9cd00000000000000000000000000000000000000000000000000000000815290516060926001600160a01b031691638a83c9cd9160048083019260009291908290030181865afa158015611406573d6000803e3d6000fd5b611582336000357fffffffff0000000000000000000000000000000000000000000000000000000016612ef3565b6115b8576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6127108165ffffffffffff1611156115fc576040517fd252903400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611604613147565b5060405165ffffffffffff821681527fceb20f7f0b19335681096ee1eaa9bb2a6ef5a9a69ba48b6b488e7b7eff2ef04d9060200160405180910390a1600f805465ffffffffffff90921674010000000000000000000000000000000000000000027fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b600e546040517f6026220d0000000000000000000000000000000000000000000000000000000081526000916001600160a01b031690636026220d90610eb49084906004016146b1565b606060048054610cb890614138565b611718336000357fffffffff0000000000000000000000000000000000000000000000000000000016612ef3565b61174e576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166000818152600c602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f887003b0d91467e681b2ba1437748e2d1b6e9b0b1cb8be6541e6cdfc1b50eabc9190a250565b600e54604080517f9a6b27cf00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b031691639a6b27cf9160048083019260209291908290030181865afa15801561181b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef591906146cd565b336000908152600c602052604090205460ff1661188a576040517fe5ef2bd00000000000000000000000000000000000000000000000000000000081523360048201526024016112d2565b6112e582826132a0565b6118c2336000357fffffffff0000000000000000000000000000000000000000000000000000000016612ef3565b6118f8576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811661193b576040517f8e4c8aa6000000000000000000000000000000000000000000000000000000008152600060048201526024016112d2565b6040516001600160a01b038216907f12e1d17016b94668449f97876f4a8d5cc2c19f314db337418894734037cc19d490600090a2600f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015611a465760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016112d2565b611a538286868403612a81565b506001949350505050565b600e54604080517fa515b8ec000000000000000000000000000000000000000000000000000000008152815160009384936001600160a01b039091169263a515b8ec92600480830193928290030181865afa158015611ac1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6d91906146ea565b611b13336000357fffffffff0000000000000000000000000000000000000000000000000000000016612ef3565b611b49576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b826001600160a01b0316826001600160a01b03167f879f92dded0f26b83c3e00b12e0395dc72cfc3077343d1854ed6988edd1f909683604051611b8e91815260200190565b60405180910390a3611baa6001600160a01b0384168383613409565b505050565b600033610d49818585612d06565b611beb336000357fffffffff0000000000000000000000000000000000000000000000000000000016612ef3565b611c21576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116611c6c576040517f8e4c8aa60000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016112d2565b600b546009546040516001600160a01b038085169381169216907f64420d4a41c6ed4de2bccbf33192eea18e576c5b23c79c3a722d4e9534c2e8d890600090a4600b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b600e546040517fb5a2d9a90000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600092169063b5a2d9a990602401611162565b611d60336000357fffffffff0000000000000000000000000000000000000000000000000000000016612ef3565b611d96576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116611dd9576040517f8e4c8aa6000000000000000000000000000000000000000000000000000000008152600060048201526024016112d2565b6040516001600160a01b038216907f2781e03d8cf8be1845f40e150af1187b0cdb48dccd761a708f5e5b612a865d1d90600090a2601080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b611e75336000357fffffffff0000000000000000000000000000000000000000000000000000000016612ef3565b611eab576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038316611ef6576040517f8e4c8aa60000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016112d2565b604080518082019091526000808252602082015260005b8281101561202857838382818110611f2757611f2761470e565b905060400201803603810190611f3d919061473d565b91508160200151151582600001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916866001600160a01b03167ff5736e75de2c751f775d4c5ed517289f77074f8c337f451ba4c0c3ed1dd7f9ad60405160405180910390a46020828101516001600160a01b0387166000908152600a8352604080822086517fffffffff000000000000000000000000000000000000000000000000000000001683529093529190912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556120218161479a565b9050611f0d565b5050505050565b600e54604080517fc55dae6300000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163c55dae639160048083019260209291908290030181865afa158015612092573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef591906147b4565b600e546040517fa8e93cdb000000000000000000000000000000000000000000000000000000008152600091829182916001600160a01b03169063a8e93cdb906121049084906004016146b1565b606060405180830381865afa158015612121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214591906147d1565b925092509250909192565b61217e336000357fffffffff0000000000000000000000000000000000000000000000000000000016612ef3565b6121b4576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166121f7576040517f8e4c8aa6000000000000000000000000000000000000000000000000000000008152600060048201526024016112d2565b6040516001600160a01b038216907f60a0f5b9f9e81e98216071b85826681c796256fe3d1354ecb675580fba64fa6990600090a2600e80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b600e54604080517fd4da79b300000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163d4da79b39160048083019260209291908290030181865afa15801561181b573d6000803e3d6000fd5b834211156123185760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016112d2565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886123478c6134b2565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006123a2826134da565b905060006123b282878787613522565b9050896001600160a01b0316816001600160a01b0316146124155760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016112d2565b6124208a8a8a612a81565b50505050505050505050565b6124756040518060e001604052806000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001606081525090565b600e546040517fe664b020000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b0386811660248301526044820186905260648201859052606092169063e664b02090608401600060405180830381865afa1580156124ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fe491908101906147ff565b600e546040517feea2f45c0000000000000000000000000000000000000000000000000000000081526000916001600160a01b03169063eea2f45c906125609084906004016146b1565b602060405180830381865afa15801561257d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef59190614895565b600b546001600160a01b031633146125e5576040517fc0185c6400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60095460405133916001600160a01b0316907f5cd6b24c0149d980c82592262b3a81294b39f8f6e3c004126aaf0828c787d55490600090a3600980547fffffffffffffffffffffffff00000000000000000000000000000000000000009081163317909155600b80549091169055565b600e546040517f643b1e500000000000000000000000000000000000000000000000000000000081526000916001600160a01b03169063643b1e50906111629085908590600401614385565b600e54604080517ff4325d6700000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163f4325d679160048083019260209291908290030181865afa158015612092573d6000803e3d6000fd5b600061270e61354a565b8235600003612749576040517f54db0c8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216612794576040517f8e4c8aa60000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016112d2565b600e546040517fc677e2750000000000000000000000000000000000000000000000000000000081526000916001600160a01b03169063c677e275906127e290339088908890600401614946565b60408051808303816000875af1158015612800573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282491906146ea565b90925090506001600160a01b0383166128436040860160208701613dbc565b6040805187358152602081018690526001600160a01b03929092169133917f452a5afbe062050de33ff43d2f66cca3d37117d3c252e5980dbcce5c7931ce25910160405180910390a4801561289c5761289c33826132a0565b50610d4f6001600d55565b60006128b161354a565b81602001356000036128ef576040517f54db0c8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e546001600160a01b03166129223382602086018035906129119088613dbc565b6001600160a01b03169291906135a3565b6040517fb07c63c70000000000000000000000000000000000000000000000000000000081526001600160a01b0382169063b07c63c79061296990339087906004016149e1565b6020604051808303816000875af1158015612988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ac9190614399565b91506129bb6020840184613dbc565b6001600160a01b0316336001600160a01b03167f27d6b86df7406aa09ba2f9db93e6b49838ee989212e76df0306d234475a5ddaa856020013585604051612a0c929190918252602082015260400190565b60405180910390a38115612a7157612a243383613088565b6011546002541115612a71576002546011546040517ff20d1ed9000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016112d2565b50612a7c6001600d55565b919050565b6001600160a01b038316612afc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016112d2565b6001600160a01b038216612b785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016112d2565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000612be68585856135f4565b90506001826001811115612bfc57612bfc61431b565b03612c6c578280612c0f57612c0f614a6c565b84860915612c6c57600019811015612c2957600101612c6c565b6040517f63a057780000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604481018490526064016112d2565b949350505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114612d005781811015612cf35760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016112d2565b612d008484848403612a81565b50505050565b6001600160a01b038316612d825760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016112d2565b6001600160a01b038216612dfe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016112d2565b6001600160a01b03831660009081526020819052604090205481811015612e8d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016112d2565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3612d00565b6009546000906001600160a01b038481169116148061101057506001600160a01b0383166000908152600a602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290205460ff169392505050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612fb657507f000000000000000000000000000000000000000000000000000000000000000046145b15612fe057507f000000000000000000000000000000000000000000000000000000000000000090565b610ef5604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6001600160a01b0382166130de5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016112d2565b80600260008282546130f0919061460f565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6000613151610d55565b905080156131a957600f546040518281526001600160a01b039091169081907f8ca882445572a0beb49b440f5a329364aa0678559e2511916cf49b557a43cff99060200160405180910390a26131a78183613088565b505b600f805479ffffffffffffffffffffffffffffffffffffffffffffffffffff167a0100000000000000000000000000000000000000000000000000004265ffffffffffff160217905590565b606060ff831461320f57613208836136e1565b9050610d4f565b81805461321b90614138565b80601f016020809104026020016040519081016040528092919081815260200182805461324790614138565b80156132945780601f1061326957610100808354040283529160200191613294565b820191906000526020600020905b81548152906001019060200180831161327757829003601f168201915b50505050509050610d4f565b6001600160a01b03821661331c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016112d2565b6001600160a01b038216600090815260208190526040902054818110156133ab5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016112d2565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6040516001600160a01b038316602482015260448101829052611baa9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613720565b6001600160a01b03811660009081526007602052604090208054600181018255905b50919050565b6000610d4f6134e7612f5d565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080600061353387878787613808565b91509150613540816138cc565b5095945050505050565b6002600d540361359c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016112d2565b6002600d55565b6040516001600160a01b0380851660248301528316604482015260648101829052612d009085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161344e565b600080806000198587098587029250828110838203039150508060000361362e5783828161362457613624614a6c565b0492505050611010565b838110613678576040517f63a057780000000000000000000000000000000000000000000000000000000081526004810187905260248101869052604481018590526064016112d2565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b606060006136ee83613a34565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000613775826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316613a759092919063ffffffff16565b905080516000148061379657508080602001905181019061379691906146cd565b611baa5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016112d2565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561383f57506000905060036138c3565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613893573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166138bc576000600192509250506138c3565b9150600090505b94509492505050565b60008160048111156138e0576138e061431b565b036138e85750565b60018160048111156138fc576138fc61431b565b036139495760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016112d2565b600281600481111561395d5761395d61431b565b036139aa5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016112d2565b60038160048111156139be576139be61431b565b03613a315760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016112d2565b50565b600060ff8216601f811115610d4f576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060612c6c848460008585600080866001600160a01b03168587604051613a9c9190614a9b565b60006040518083038185875af1925050503d8060008114613ad9576040519150601f19603f3d011682016040523d82523d6000602084013e613ade565b606091505b5091509150613aef87838387613afa565b979650505050505050565b60608315613b69578251600003613b62576001600160a01b0385163b613b625760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016112d2565b5081612c6c565b612c6c8383815115613b7e5781518083602001fd5b8060405162461bcd60e51b81526004016112d29190613be8565b60005b83811015613bb3578181015183820152602001613b9b565b50506000910152565b60008151808452613bd4816020860160208601613b98565b601f01601f19169290920160200192915050565b6020815260006110106020830184613bbc565b6001600160a01b0381168114613a3157600080fd5b60008060408385031215613c2357600080fd5b8235613c2e81613bfb565b946020939093013593505050565b60008060008060808587031215613c5257600080fd5b843593506020850135613c6481613bfb565b93969395505050506040820135916060013590565b600081518084526020808501945080840160005b83811015613ca957815187529582019590820190600101613c8d565b509495945050505050565b604081526001600160a01b0383511660408201526020830151606082015260408301516080820152606083015160a0820152608083015160c082015260a083015160e0820152600060c084015160e0610100840152613d17610120840182613bbc565b90508281036020840152613d2b8185613c79565b95945050505050565b600080600060608486031215613d4957600080fd5b8335613d5481613bfb565b92506020840135613d6481613bfb565b929592945050506040919091013590565b600060e082840312156134d457600080fd5b600060208284031215613d9957600080fd5b813567ffffffffffffffff811115613db057600080fd5b612c6c84828501613d75565b600060208284031215613dce57600080fd5b813561101081613bfb565b600060208284031215613deb57600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b81811015613e335783516001600160a01b031683529284019291840191600101613e0e565b50909695505050505050565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e060208201526000613e7a60e0830189613bbc565b8281036040840152613e8c8189613bbc565b90508660608401526001600160a01b03861660808401528460a084015282810360c0840152613ebb8185613c79565b9a9950505050505050505050565b600060208284031215613edb57600080fd5b813565ffffffffffff8116811461101057600080fd5b600080600060408486031215613f0657600080fd5b8335613f1181613bfb565b9250602084013567ffffffffffffffff80821115613f2e57600080fd5b818601915086601f830112613f4257600080fd5b813581811115613f5157600080fd5b8760208260061b8501011115613f6657600080fd5b6020830194508093505050509250925092565b600080600080600080600060e0888a031215613f9457600080fd5b8735613f9f81613bfb565b96506020880135613faf81613bfb565b95506040880135945060608801359350608088013560ff81168114613fd357600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561400357600080fd5b823567ffffffffffffffff81111561401a57600080fd5b61402685828601613d75565b925050602083013561403781613bfb565b809150509250929050565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114612a7c57600080fd5b6000806040838503121561408557600080fd5b823561409081613bfb565b915061409e60208401614042565b90509250929050565b600080604083850312156140ba57600080fd5b82356140c581613bfb565b9150602083013561403781613bfb565b60408152825160408201526001600160a01b03602084015116606082015260408301516080820152606083015160a0820152608083015160c082015260a083015160e0820152600060c084015160e0610100840152613d17610120840182613bbc565b600181811c9082168061414c57607f821691505b6020821081036134d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610d4f57610d4f614185565b8082028115828204841417610d4f57610d4f614185565b80516fffffffffffffffffffffffffffffffff81168114612a7c57600080fd5b6000806040838503121561421157600080fd5b61421a836141de565b915061409e602084016141de565b600181815b8085111561426357816000190482111561424957614249614185565b8085161561425657918102915b93841c939080029061422d565b509250929050565b60008261427a57506001610d4f565b8161428757506000610d4f565b816001811461429d57600281146142a7576142c3565b6001915050610d4f565b60ff8411156142b8576142b8614185565b50506001821b610d4f565b5060208310610133831016604e8410600b84101617156142e6575081810a610d4f565b6142f08383614228565b806000190482111561430457614304614185565b029392505050565b600061101060ff84168361426b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110614381577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9052565b82815260408101611010602083018461434a565b6000602082840312156143ab57600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715614404576144046143b2565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715614433576144336143b2565b604052919050565b8051612a7c81613bfb565b600082601f83011261445757600080fd5b815167ffffffffffffffff811115614471576144716143b2565b6144846020601f19601f8401160161440a565b81815284602083860101111561449957600080fd5b612c6c826020830160208701613b98565b600067ffffffffffffffff8211156144c4576144c46143b2565b5060051b60200190565b600082601f8301126144df57600080fd5b815160206144f46144ef836144aa565b61440a565b82815260059290921b8401810191818101908684111561451357600080fd5b8286015b8481101561452e5780518352918301918301614517565b509695505050505050565b6000806040838503121561454c57600080fd5b825167ffffffffffffffff8082111561456457600080fd5b9084019060e0828703121561457857600080fd5b6145806143e1565b6145898361443b565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c0830151828111156145cf57600080fd5b6145db88828601614446565b60c08301525060208601519094509150808211156145f857600080fd5b50614605858286016144ce565b9150509250929050565b80820180821115610d4f57610d4f614185565b6000602080838503121561463557600080fd5b825167ffffffffffffffff81111561464c57600080fd5b8301601f8101851361465d57600080fd5b805161466b6144ef826144aa565b81815260059190911b8201830190838101908783111561468a57600080fd5b928401925b82841015613aef5783516146a281613bfb565b8252928401929084019061468f565b60208101610d4f828461434a565b8015158114613a3157600080fd5b6000602082840312156146df57600080fd5b8151611010816146bf565b600080604083850312156146fd57600080fd5b505080516020909101519092909150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006040828403121561474f57600080fd5b6040516040810181811067ffffffffffffffff82111715614772576147726143b2565b60405261477e83614042565b8152602083013561478e816146bf565b60208201529392505050565b600060001982036147ad576147ad614185565b5060010190565b6000602082840312156147c657600080fd5b815161101081613bfb565b6000806000606084860312156147e657600080fd5b8351925060208401519150604084015190509250925092565b6000806040838503121561481257600080fd5b825167ffffffffffffffff8082111561482a57600080fd5b9084019060e0828703121561483e57600080fd5b6148466143e1565b825181526148566020840161443b565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c0830151828111156145cf57600080fd5b6000602082840312156148a757600080fd5b611010826141de565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126148e557600080fd5b830160208101925035905067ffffffffffffffff81111561490557600080fd5b80360382131561491457600080fd5b9250929050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60006001600160a01b0380861683526060602084015284356060840152602085013561497181613bfb565b81811660808501525050604084013560a0830152606084013560c0830152608084013560e083015260a08401356101008301526149b160c08501856148b0565b60e06101208501526149c86101408501828461491b565b92505050612c6c60408301846001600160a01b03169052565b60006001600160a01b038085168352604060208401528335614a0281613bfb565b818116604085015250506020830135606083015260408301356080830152606083013560a0830152608083013560c083015260a083013560e0830152614a4b60c08401846148b0565b60e0610100850152614a626101208501828461491b565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008251614aad818460208701613b98565b919091019291505056fea2646970667358221220b9acd6e996069591a53d4c68e819bbaf48f4211fdcf7a3a67a40cf12e14e5a4464736f6c63430008130033000000000000000000000000b20aae0fe007519b7ce6f090a2ab8353b3da5d8000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000064000000000000000000000000781b4c57100738095222bd92d37b07ed034ab69600000000000000000000000043a3cb2cf5ea2331174c166214302f0c3bba6a850000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001d4f726967616d69206c6f762d574554482d43424254432d6c6f6e672d6100000000000000000000000000000000000000000000000000000000000000000000156c6f762d574554482d43424254432d6c6f6e672d610000000000000000000000