0 txs
0 calls
constructor
constructor(address _gvFactory, address _gsFactory, address _router, address _mathLib, address _dsFactory, address _aeroFactory, address _WETH)
functions
aeroFactory
viewfunction aeroFactory() view returns (address)
calcLiquidityPremium
viewfunction calcLiquidityPremium(address pool) view returns (uint256)
canPayPool
viewfunction canPayPool(address pool) view returns (bool canPay, uint256 liquidity)
dsFactory
viewfunction dsFactory() view returns (address)
feesPerToken
viewfunction feesPerToken(address) view returns (uint256)
getFeesThresholdLIU
viewfunction getFeesThresholdLIU(address pool) view returns (uint64)
getLiqPremiumModel
viewfunction getLiqPremiumModel(address pool) view returns (uint64 baseRate, uint64 optimalUtilRate, uint64 slope1, uint64 slope2, bool isActive)
getLPReservationFeeBps
viewfunction getLPReservationFeeBps(address pool) view returns (uint16)
getPoolFees
viewfunction getPoolFees(address pool) view returns (uint256 fees0, uint256 fees1)
getVaultFees
viewfunction getVaultFees(address vault) view returns (uint256 fees0, uint256 fees1)
gsFactory
viewfunction gsFactory() view returns (address)
gvFactory
viewfunction gvFactory() view returns (address)
manager
viewfunction manager() view returns (address)
mathLib
viewfunction mathLib() view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
poolFees
viewfunction poolFees(address) view returns (bool isSet, uint16 protocolId, uint16 lpReservationFeeBps, address cfmm, address token0, address token1, uint64 feesThresholdLIU, uint256 fees0, uint256 fees1)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
router
viewfunction router() view returns (address)
vaultFees
viewfunction vaultFees(address) view returns (bool isSet, address token0, address token1, address gsPool, uint256 fees0, uint256 fees1)
WETH
viewfunction WETH() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
claimFees
nonpayablefunction claimFees(address vault, uint256 fees0, uint256 fees1)
clearToken
nonpayablefunction clearToken(address token, address to, uint256 amount)
initialize
nonpayablefunction initialize(address _manager)
payPoolFees
nonpayablefunction payPoolFees(address pool) returns (uint8 action)
refundETH
payablefunction refundETH() payable
setFeesThresholdLIU
nonpayablefunction setFeesThresholdLIU(address pool, uint64 feesThresholdLIU)
setLiqPremiumModel
nonpayablefunction setLiqPremiumModel(address pool, uint64 baseRate, uint64 optimalUtilRate, uint64 slope1, uint64 slope2, bool isActive)
setLPReservationFeeBps
nonpayablefunction setLPReservationFeeBps(address pool, uint16 lpReservationFeeBps)
setManager
nonpayablefunction setManager(address _manager)
syncPoolFees
nonpayablefunction syncPoolFees(address pool)
syncVaultFees
nonpayablefunction syncVaultFees(address vault)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed currentOwner, address indexed newOwner)
PayPoolFees
event PayPoolFees(address indexed pool, uint256 amount0, uint256 amount1, uint256 lpTokens)
Upgraded
event Upgraded(address indexed implementation)
errors
AlreadyInitialized
error AlreadyInitialized()
InsufficientTokens
error InsufficientTokens()
InvalidDepositFee
error InvalidDepositFee()
NotWETH
error NotWETH()
SA_Fail
error SA_Fail()
ST_Fail
error ST_Fail()
STE_Fail
error STE_Fail()
ZeroAddress
error ZeroAddress()
creation bytecode
0x610180604052306080523480156200001657600080fd5b5060405162005cec38038062005cec8339810160408190526200003991620000b3565b60008054336001600160a01b031991821681179092556001600160a01b0398891661016052968816610140529487166101205292861660c05290851660e05284166101005290921660a05260068054909116909117905562000148565b80516001600160a01b0381168114620000ae57600080fd5b919050565b600080600080600080600060e0888a031215620000cf57600080fd5b620000da8862000096565b9650620000ea6020890162000096565b9550620000fa6040890162000096565b94506200010a6060890162000096565b93506200011a6080890162000096565b92506200012a60a0890162000096565b91506200013a60c0890162000096565b905092959891949750929550565b60805160a05160c05160e05161010051610120516101405161016051615ac76200022560003960008181610547015281816126e10152613fa90152600081816109b7015281816121150152613c1d01526000818161098301528181610d4f01528181610e2d01528181610e760152610f5f01526000818161061d01526131150152600081816108ba015261303e01526000818161065101528181610c6f0152611dec0152600081816102230152610705015260008181611ab501528181611afe01528181611b9d01528181611bdd0152611e430152615ac76000f3fe6080604052600436106102135760003560e01c806389cdfb8f11610118578063ccbe764a116100a0578063f2fde38b1161006f578063f2fde38b146108fc578063f3d441ac1461091c578063f6080cb714610951578063f887ea4014610971578063f97dbc5d146109a557600080fd5b8063ccbe764a14610868578063d0ebdbe714610888578063d72f924d146108a8578063e30c3978146108dc57600080fd5b8063a0033ad6116100e7578063a0033ad6146106d3578063ad5c4648146106f3578063be6e916114610727578063c4d66de814610815578063c5faedd61461083557600080fd5b806389cdfb8f1461063f57806389e997a8146106735780638da5cb5b1461069357806398bc58ed146106b357600080fd5b806351ecfe221161019b578063797f49ad1161016a578063797f49ad1461059657806379ba5097146105b65780637b6a098e146105cb57806381abed15146105eb57806386f3d02a1461060b57600080fd5b806351ecfe22146104e957806352d1902d14610520578063622f18f8146105355780636f7ecb4b1461056957600080fd5b806320348108116101e257806320348108146103765780632d4fd6db146104465780633659cfe61461047e578063481c6a751461049e5780634f1ef286146104d657600080fd5b8063067a0479146102685780630a01286f1461029f578063111ced7f1461034057806312210e8a1461036e57600080fd5b3661026357336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461026157604051635724f38560e01b815260040160405180910390fd5b005b600080fd5b34801561027457600080fd5b506102886102833660046147b8565b6109d9565b60405160ff90911681526020015b60405180910390f35b3480156102ab57600080fd5b506103016102ba3660046147b8565b60046020819052600091825260409091208054600182015460028301546003840154939094015460ff8316946001600160a01b036101009094048416949284169316919086565b6040805196151587526001600160a01b0395861660208801529385169386019390935292166060840152608083019190915260a082015260c001610296565b34801561034c57600080fd5b5061036061035b3660046147b8565b61176f565b604051908152602001610296565b61026161195b565b34801561038257600080fd5b5061040b6103913660046147b8565b6001600160a01b0316600090815260026020908152604091829020825160a08101845281546001600160401b03808216808452600160401b83048216958401869052600160801b83048216968401879052600160c01b909204166060830181905260019093015460ff161515608090920182905294929392565b604080516001600160401b0396871681529486166020860152928516928401929092529092166060820152901515608082015260a001610296565b34801561045257600080fd5b506104666104613660046147b8565b611975565b6040516001600160401b039091168152602001610296565b34801561048a57600080fd5b506102616104993660046147b8565b611aab565b3480156104aa57600080fd5b506006546104be906001600160a01b031681565b6040516001600160a01b039091168152602001610296565b6102616104e43660046148b1565b611b93565b3480156104f557600080fd5b506105096105043660046147b8565b611c63565b604080519215158352602083019190915201610296565b34801561052c57600080fd5b50610360611e36565b34801561054157600080fd5b506104be7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057557600080fd5b506103606105843660046147b8565b60056020526000908152604090205481565b3480156105a257600080fd5b506102616105b1366004614953565b611ee9565b3480156105c257600080fd5b50610261612047565b3480156105d757600080fd5b506102616105e63660046149af565b6120eb565b3480156105f757600080fd5b506102616106063660046147b8565b612334565b34801561061757600080fd5b506104be7f000000000000000000000000000000000000000000000000000000000000000081565b34801561064b57600080fd5b506104be7f000000000000000000000000000000000000000000000000000000000000000081565b34801561067f57600080fd5b5061026161068e366004614a31565b612420565b34801561069f57600080fd5b506000546104be906001600160a01b031681565b3480156106bf57600080fd5b506102616106ce3660046147b8565b61254f565b3480156106df57600080fd5b506102616106ee366004614a5f565b6126bf565b3480156106ff57600080fd5b506104be7f000000000000000000000000000000000000000000000000000000000000000081565b34801561073357600080fd5b506107b46107423660046147b8565b60036020819052600091825260409091208054600182015460028301549383015460049093015460ff83169461ffff610100850481169563010000008604909116946001600160a01b03600160281b909104811694811693908316926001600160401b03600160a01b90910416919089565b604080519915158a5261ffff98891660208b015296909716958801959095526001600160a01b039384166060880152918316608087015290911660a08501526001600160401b031660c084015260e083015261010082015261012001610296565b34801561082157600080fd5b506102616108303660046147b8565b6129f8565b34801561084157600080fd5b506108556108503660046147b8565b612b5c565b60405161ffff9091168152602001610296565b34801561087457600080fd5b50610261610883366004614a94565b612c92565b34801561089457600080fd5b506102616108a33660046147b8565b612d5c565b3480156108b457600080fd5b506104be7f000000000000000000000000000000000000000000000000000000000000000081565b3480156108e857600080fd5b506001546104be906001600160a01b031681565b34801561090857600080fd5b506102616109173660046147b8565b612d6d565b34801561092857600080fd5b5061093c6109373660046147b8565b612e0a565b60408051928352602083019190915201610296565b34801561095d57600080fd5b5061093c61096c3660046147b8565b612e9f565b34801561097d57600080fd5b506104be7f000000000000000000000000000000000000000000000000000000000000000081565b3480156109b157600080fd5b506104be7f000000000000000000000000000000000000000000000000000000000000000081565b60006109e3612fe8565b6001600160a01b038281166000908152600360208181526040808420815161014081018352815460ff81161515825261010080820461ffff90811684880152630100000083041683860152600160281b90910488166060830152600183015488166080830152600283015497881660a0830152600160a01b9097046001600160401b031660c08201529381015460e085015260048101549584019590955260058501805482518185028101850190935280835294959394610120860193830182828015610aed57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411610abe5790505b50505050508152505090508060000151610b075750919050565b6000806127108360e001511180610b245750612710836101000151115b1561134857600080606085606001516001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b6d57600080fd5b505af1158015610b81573d6000803e3d6000fd5b5050505060008087606001516001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bee9190614aec565b506001600160701b031691506001600160701b031691506000610c1989602001518a6060015161302e565b90506000610c948a60e001518b610100015186868e6101200151600081518110610c4557610c45614b3c565b60200260200101518f6101200151600181518110610c6557610c65614b3c565b60200260200101517f00000000000000000000000000000000000000000000000000000000000000008961319e565b9050600081600181518110610cab57610cab614b3c565b60200260200101511315610d795760808a01516020808c015160a08d015160405160019b50610cdf94936000929101614b52565b6040516020818303038152906040529450610d3d8a60e00151610d388462ffffff1661271085600181518110610d1757610d17614b3c565b6020026020010151886001600160801b03168a6001600160801b03166133d2565b613413565b95508515610d7457610d748a608001517f00000000000000000000000000000000000000000000000000000000000000008861342b565b610e52565b600081600081518110610d8e57610d8e614b3c565b60200260200101511315610e525760a08a01516020808c015160808d015160405160009b50610dc194938c929101614b52565b6040516020818303038152906040529450610e1b8a6101000151610d388462ffffff1661271085600081518110610dfa57610dfa614b3c565b6020026020010151896001600160801b0316896001600160801b03166133d2565b95508515610e5257610e528a60a001517f00000000000000000000000000000000000000000000000000000000000000008861342b565b6103e886111561134057604051637f74aba560e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fee9574a90610ead908a908a90600401614bf3565b6000604051808303816000875af1158015610ecc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ef49190810190614d5a565b5090506103e88160018351610f099190614e2b565b81518110610f1957610f19614b3c565b6020026020010151111561133e57610f358b608001513061350e565b9950610f458b60a001513061350e565b604051631cddb78560e21b81529099506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637376de1490610f9f908a906000908b90309060001990600401614e3e565b600060405180830381600087803b158015610fb957600080fd5b505af1158015610fcd573d6000803e3d6000fd5b50505060e08c015160808d01516001600160a01b0316600090815260056020526040902054610ffc9250614e2b565b60808c01516001600160a01b03908116600090815260056020526040808220939093556101008e015160a08f01519092168152919091205461103e9190614e2b565b60a08c01516001600160a01b031660009081526005602052604090205560019b5087156110cb576110738b608001513061350e565b61107d908b614e2b565b99508861108e8c60a001513061350e565b6110989190614e2b565b9850898b60e001516110aa9190614e2b565b60e08c01526101008b01516110c0908a90614e7a565b6101008c015261112d565b896110da8c608001513061350e565b6110e49190614e2b565b99506110f48b60a001513061350e565b6110fe908a614e2b565b9850898b60e001516111109190614e7a565b60e08c01526101008b0151611126908a90614e2b565b6101008c01525b60e08b015160808c01516001600160a01b03166000908152600560205260409020546111599190614e7a565b60808c01516001600160a01b03908116600090815260056020526040808220939093556101008e015160a08f01519092168152919091205461119b9190614e7a565b600560008d60a001516001600160a01b03166001600160a01b03168152602001908152602001600020819055508a600360008f6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548161ffff021916908361ffff16021790555060408201518160000160036101000a81548161ffff021916908361ffff16021790555060608201518160000160056101000a8154816001600160a01b0302191690836001600160a01b0316021790555060808201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a08201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c08201518160020160146101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160030155610100820151816004015561012082015181600501908051906020019061133a9291906146e8565b5050505b505b505050505050505b505060e081015161010082015160ff84161580611371575061136f82828560c001516135de565b155b1561137e57505050919050565b60808301516001600160a01b0316600090815260056020526040902054600294506113aa908390614e2b565b60808401516001600160a01b039081166000908152600560205260408082209390935560a0860151909116815220546113e4908290614e2b565b600560008560a001516001600160a01b03166001600160a01b031681526020019081526020016000208190555060008360e00181815250506000836101000181815250508260036000876001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548161ffff021916908361ffff16021790555060408201518160000160036101000a81548161ffff021916908361ffff16021790555060608201518160000160056101000a8154816001600160a01b0302191690836001600160a01b0316021790555060808201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a08201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c08201518160020160146101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160030155610100820151816004015561012082015181600501908051906020019061159a9291906146e8565b5050821590506115b7576115b78360800151846060015184613611565b80156115d0576115d08360a00151846060015183613611565b60008215806115dd575081155b1561163e5783606001516001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561162157600080fd5b505af1158015611635573d6000803e3d6000fd5b505050506116b1565b60608401516040516335313c2160e11b81523060048201526001600160a01b0390911690636a627842906024016020604051808303816000875af115801561168a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ae9190614e8d565b90505b80156116c6576116c684606001518783613611565b856001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561170157600080fd5b505af1158015611715573d6000803e3d6000fd5b505060408051868152602081018690529081018490526001600160a01b03891692507fb3ec1709fc74be2934ca5c07e3c80f1802aad3692bc1be9112d13fe10b9e4b19915060600160405180910390a2505050505b919050565b6001600160a01b0381166000908152600260209081526040808320815160a08101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104851693820193909352600160c01b909204909216606082015260019091015460ff161515608082018190526117f75750670de0b6b3a764000092915050565b6000836001600160a01b031663fb29238b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015611837573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261185f9190810190615104565b9050600061186c856136f4565b9050600083602001516001600160401b03168211156118d657670de0b6b3a764000084604001516001600160401b031685602001516001600160401b0316840302816118ba576118ba6154a7565b0490506118cf81670de0b6b3a7640000614e7a565b905061193c565b670de0b6b3a764000084606001516001600160401b03168386602001516001600160401b031603028161190b5761190b6154a7565b04905061192081670de0b6b3a7640000614e7a565b611939906ec097ce7bc90715b34b9f10000000006154bd565b90505b8351611951906001600160401b031682614e7a565b9695505050505050565b611963613797565b47156119735761197333476137dd565b565b6001600160a01b038181166000908152600360208181526040808420815161014081018352815460ff81161515825261010080820461ffff90811684880152630100000083041683860152600160281b90910488166060830152600183015488166080830152600283015497881660a0830152600160a01b9097046001600160401b031660c08201529381015460e0850152600481015495840195909552600585018054825181850281018501909352808352949586959093610120860193929190830182828015611a8457602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411611a555790505b50505050508152505090508060000151611aa15750600092915050565b60c0015192915050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611afc5760405162461bcd60e51b8152600401611af3906154df565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611b45600080516020615a4b833981519152546001600160a01b031690565b6001600160a01b031614611b6b5760405162461bcd60e51b8152600401611af39061552b565b611b7481613856565b60408051600080825260208201909252611b909183919061385e565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611bdb5760405162461bcd60e51b8152600401611af3906154df565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611c24600080516020615a4b833981519152546001600160a01b031690565b6001600160a01b031614611c4a5760405162461bcd60e51b8152600401611af39061552b565b611c5382613856565b611c5f8282600161385e565b5050565b6001600160a01b038181166000908152600360208181526040808420815161014081018352815460ff81161515825261010080820461ffff90811684880152630100000083041683860152600160281b90910488166060830152600183015488166080830152600283015497881660a0830152600160a01b9097046001600160401b031660c08201529381015460e08501526004810154958401959095526005850180548251818502810185019093528083529495869586959491936101208601939092909190830182828015611d7757602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411611d485790505b50505050508152505090508060000151611d975750600093849350915050565b611e1081606001518260e00151836101000151846101200151600081518110611dc257611dc2614b3c565b6020026020010151856101200151600181518110611de257611de2614b3c565b60200260200101517f00000000000000000000000000000000000000000000000000000000000000006139c9565b9150611e2c8160c001516001600160401b0316620186a0613a79565b8211925050915091565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611ed65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401611af3565b50600080516020615a4b83398151915290565b611ef1613797565b61012c8161ffff161115611f18576040516305289dcb60e21b815260040160405180910390fd5b6000611f2383613a88565b61ffff83811660408381019182526001600160a01b03878116600090815260036020818152939091208651815485890151965160608a015162ffffff1990921692151562ffff001916929092176101009789168802176301000000600160c81b03191663010000009290981691909102600160281b600160c81b03191696909617600160281b9684169690960295909517855560808601516001860180546001600160a01b03191691841691909117905560a086015160028601805460c0890151929094166001600160e01b031990941693909317600160a01b6001600160401b03909216919091021790915560e0850151908401559083015160048301556101208301518051939450849361203f92600585019201906146e8565b505050505050565b60015433906001600160a01b031681146120915760405162461bcd60e51b815260206004820152600b60248201526a2737ba2732bba7bbb732b960a91b6044820152606401611af3565b600080546001600160a01b038381166001600160a01b031980841682178555600180549091169055604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6120f3613797565b6040516324de43d160e21b81526001600160a01b0387811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906393790f4490602401602060405180830381865afa15801561215e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121829190614e8d565b036121c15760405162461bcd60e51b815260206004820152600f60248201526e1253959053125117d1d4d7d413d3d3608a1b6044820152606401611af3565b670de0b6b3a7640000856001600160401b0316111561220e5760405162461bcd60e51b8152602060048201526009602482015268424153455f5241544560b81b6044820152606401611af3565b670de0b6b3a7640000846001600160401b031611156122635760405162461bcd60e51b81526020600482015260116024820152704f5054494d414c5f5554494c5f5241544560781b6044820152606401611af3565b6040805160a0810182526001600160401b039687168152948616602080870191825294871686830190815293871660608701908152921515608087019081526001600160a01b03909816600090815260029095529320935184549351925191518616600160c01b026001600160c01b03928716600160801b02929092166001600160801b03938716600160401b026fffffffffffffffffffffffffffffffff19909516919096161792909217169290921791909117815590516001909101805491151560ff19909216919091179055565b600061233f82613ee3565b905060008061235683602001518460400151614180565b91509150818360800181815161236c9190614e7a565b90525060a083018051829190612383908390614e7a565b90525050506001600160a01b039182166000908152600460208181526040928390208451815492860151871661010002610100600160a81b0319911515919091166001600160a81b031990931692909217919091178155918301516001830180549186166001600160a01b03199283161790556060840151600284018054919096169116179093556080820151600382015560a090910151910155565b612428613797565b600061243383613a88565b6001600160401b0380841660c083019081526001600160a01b0380871660009081526003602081815260409283902087518154838a0151958a015160608b01518816600160281b02600160281b600160c81b031961ffff928316630100000002166301000000600160c81b03199290981661010090810262ffff00199515159590951662ffffff199094169390931793909317169590951717815560808801516001820180549187166001600160a01b031990921691909117905560a08801516002820180549751909816600160a01b026001600160e01b03199097169516949094179490941790945560e0850151938201939093559183015160048301556101208301518051939450849361203f92600585019201906146e8565b600061255a82613a88565b905060008061257183608001518460a00151614180565b91509150818360e0018181516125879190614e7a565b9052506101008301805182919061259f908390614e7a565b9052506001600160a01b0380851660009081526003602081815260409283902087518154838a0151958a015160608b01518816600160281b02600160281b600160c81b031961ffff928316630100000002166301000000600160c81b03199290981661010090810262ffff00199515159590951662ffffff199094169390931793909317169590951717815560808801516001820180549187166001600160a01b031990921691909117905560a088015160028201805460c08b01516001600160401b0316600160a01b026001600160e01b031990911692909716919091179590951790945560e08701519184019190915590850151600483015561012085015180518693926126b69260058501929101906146e8565b50505050505050565b6040516324de43d160e21b81526001600160a01b0384811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906393790f4490602401602060405180830381865afa15801561272a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061274e9190614e8d565b0361278b5760405162461bcd60e51b815260206004820152600d60248201526c1253959053125117d590555315609a1b6044820152606401611af3565b336001600160a01b038416146127cf5760405162461bcd60e51b81526020600482015260096024820152682327a92124a22222a760b91b6044820152606401611af3565b6001600160a01b03808416600090815260046020818152604092839020835160c081018552815460ff811615158252610100900486169281019290925260018101548516938201939093526002830154909316606084015260038201546080840181905291015460a0830152831180159061284e57508060a001518211155b61288e5760405162461bcd60e51b8152602060048201526011602482015270494e53554646494349454e545f4645455360781b6044820152606401611af3565b6020808201516001600160a01b03166000908152600590915260409020546128b7908490614e2b565b6020808301516001600160a01b03908116600090815260059092526040808320939093558284015116815220546128ef908390614e2b565b6040808301516001600160a01b0316600090815260056020522055608081015161291a908490614e2b565b608082015260a081015161292f908390614e2b565b60a082019081526001600160a01b038086166000908152600460208181526040928390208651815492880151861661010002610100600160a81b0319911515919091166001600160a81b031990931692909217919091178155918501516001830180549185166001600160a01b031992831617905560608601516002840180549190951691161790925560808401516003820155915191015582156129dd576129dd81602001518585613611565b81156129f2576129f281604001518584613611565b50505050565b600154600160a81b900460ff1615808015612a1e575060018054600160a01b900460ff16105b80612a3e5750303b158015612a3e575060018054600160a01b900460ff16145b612aa15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401611af3565b6001805460ff60a01b1916600160a01b1790558015612ace576001805460ff60a81b1916600160a81b1790555b6000546001600160a01b031615612af75760405162dc149f60e41b815260040160405180910390fd5b600080546001600160a01b03191633179055612b1282614229565b8015611c5f576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b038181166000908152600360208181526040808420815161014081018352815460ff81161515825261010080820461ffff90811684880152630100000083041683860152600160281b90910488166060830152600183015488166080830152600283015497881660a0830152600160a01b9097046001600160401b031660c08201529381015460e0850152600481015495840195909552600585018054825181850281018501909352808352949586959093610120860193929190830182828015612c6b57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411612c3c5790505b50505050508152505090508060000151612c885750600092915050565b6040015192915050565b612c9a613797565b6001600160a01b0383166000818152600560205260408082205490516370a0823160e01b81523060048201529092906370a0823190602401602060405180830381865afa158015612cef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d139190614e8d565b9050818111612d35576040516378dbf0af60e11b815260040160405180910390fd5b819003612d428184613413565b92508215612d5557612d55858585613611565b5050505050565b612d64613797565b611b9081614229565b612d75613797565b6001600160a01b038116612db95760405162461bcd60e51b815260206004820152600b60248201526a5a65726f4164647265737360a81b6044820152606401611af3565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009190a350565b6001600160a01b038082166000908152600460208181526040808420815160c081018352815460ff8116151580835261010090910488169482019490945260018201548716928101929092526002810154909516606082015260038501546080820152939091015460a084015290918291612e8b5750600093849350915050565b806080015192508060a00151915050915091565b6001600160a01b038181166000908152600360208181526040808420815161014081018352815460ff81161515825261010080820461ffff90811684880152630100000083041683860152600160281b90910488166060830152600183015488166080830152600283015497881660a0830152600160a01b9097046001600160401b031660c08201529381015460e08501526004810154958401959095526005850180548251818502810185019093528083529495869586959491936101208601939092909190830182828015612fb357602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411612f845790505b50505050508152505090508060000151612fd35750600093849350915050565b8060e001519250806101000151915050915091565b6006546001600160a01b031633146119735760405162461bcd60e51b81526020600482015260096024820152682337b93134b23232b760b91b6044820152606401611af3565b60008261ffff166003036130e3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663172b0d9a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561309a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130be9190615577565b6130cd9060ff166103e8615592565b6130d890600a6155b4565b61ffff169050613198565b8261ffff166004036131935760405163cc56b2c560e01b81526001600160a01b038381166004830152600060248301527f0000000000000000000000000000000000000000000000000000000000000000169063cc56b2c590604401602060405180830381865afa15801561315c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131809190614e8d565b61318c906127106155da565b9050613198565b506126f25b92915050565b604080516002808252606080830184529260208301908036833701905050905060006131f08a6001600160801b03168a6001600160801b03168a6001600160801b03168a6001600160801b0316614272565b60ff169050806001036132df57604051600162d7fbdd60e01b031981526001600160a01b0385169063ff2804239061323a908d908d908d908d908a90612710908f906004016155f6565b600060405180830381865afa158015613257573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261327f9190810190615640565b91508160018151811061329457613294614b3c565b60200260200101516000836000815181106132b1576132b1614b3c565b60200260200101846001815181106132cb576132cb614b3c565b6020908102919091010191909152526133c5565b806002036133c557604051600162d7fbdd60e01b031981526001600160a01b0385169063ff28042390613324908c908e908c908e908a90612710908e906004016155f6565b600060405180830381865afa158015613341573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526133699190810190615640565b915060008260018151811061338057613380614b3c565b60200260200101518360008151811061339b5761339b614b3c565b60200260200101846001815181106133b5576133b5614b3c565b6020908102919091010191909152525b5098975050505050505050565b6000856133df8585614e2b565b6133e991906156c5565b856133f486856156c5565b6133fe91906156c5565b61340891906154bd565b611951906001614e7a565b60008183106134225781613424565b825b9392505050565b6040516001600160a01b03838116602483015260448201839052600091829186169060640160408051601f198184030181529181526020820180516001600160e01b031663095ea7b360e01b1790525161348591906156dc565b6000604051808303816000865af19150503d80600081146134c2576040519150601f19603f3d011682016040523d82523d6000602084013e6134c7565b606091505b50915091508180156134f15750805115806134f15750808060200190518101906134f19190615703565b612d555760405163cbade9b160e01b815260040160405180910390fd5b6040516001600160a01b038281166024830152600091829182919086169060440160408051601f198184030181529181526020820180516001600160e01b03166370a0823160e01b1790525161356491906156dc565b600060405180830381855afa9150503d806000811461359f576040519150601f19603f3d011682016040523d82523d6000602084013e6135a4565b606091505b50915091508180156135b857506020815110155b6135c157600080fd5b808060200190518101906135d59190614e8d565b95945050505050565b60006135f6826001600160401b0316620186a0613a79565b61360861360385876156c5565b6142c2565b11949350505050565b6040516001600160a01b03838116602483015260448201839052600091829186169060640160408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b1790525161366b91906156dc565b6000604051808303816000865af19150503d80600081146136a8576040519150601f19603f3d011682016040523d82523d6000602084013e6136ad565b606091505b50915091508180156136d75750805115806136d75750808060200190518101906136d79190615703565b612d555760405163847ea61d60e01b815260040160405180910390fd5b600080826001600160a01b031663fb29238b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015613735573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261375d9190810190615104565b9050600061378f826104c0015164ffffffffff1664e8d4a5100061378191906156c5565b670b1a2bc2ec500000613413565b949350505050565b6000546001600160a01b031633146119735760405162461bcd60e51b81526020600482015260096024820152682337b93134b23232b760b91b6044820152606401611af3565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461382a576040519150601f19603f3d011682016040523d82523d6000602084013e61382f565b606091505b5050905080613851576040516325e5592160e21b815260040160405180910390fd5b505050565b611b90613797565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156138915761385183614361565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156138eb575060408051601f3d908101601f191682019092526138e891810190614e8d565b60015b61394e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401611af3565b600080516020615a4b83398151915281146139bd5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401611af3565b506138518383836143fd565b6000806000886001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015613a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a309190614aec565b506001600160701b031691506001600160701b031691506000613a5b898985858b8b8b6126f261319e565b9050613a6b818a8a86868a614422565b9a9950505050505050505050565b60008183116134225781613424565b604080516101408101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082018390526101008201929092526101208101919091526001600160a01b03828116600090815260036020818152604092839020835161014081018552815460ff81161515825261010080820461ffff90811684870152630100000083041683880152600160281b90910487166060830152600183015487166080830152600283015496871660a0830152600160a01b9096046001600160401b031660c08201529281015460e08401526004810154948301949094526005840180548451818402810184019095528085529294936101208601939092830182828015613be757602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411613bb85790505b5050505050815250509050806000015161176a576040516324de43d160e21b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906393790f4490602401602060405180830381865afa158015613c66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c8a9190614e8d565b03613cc95760405162461bcd60e51b815260206004820152600f60248201526e1253959053125117d1d4d7d413d3d3608a1b6044820152606401611af3565b6000826001600160a01b031663fb29238b6040518163ffffffff1660e01b8152600401600060405180830381865afa158015613d09573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613d319190810190615104565b6101e08101516001600160a01b0316606084015261036081015161012084015260208082015161ffff1690840152610300810151805191925090600090613d7a57613d7a614b3c565b60209081029190910101516001600160a01b0316608083015261030081015180516001908110613dac57613dac614b3c565b6020908102919091018101516001600160a01b0390811660a085019081526000604080870182815260018089528986168452600380885292909320885181548a890151935160608c01518916600160281b02600160281b600160c81b031961ffff928316630100000002166301000000600160c81b03199690921661010090810262ffff00199515159590951662ffffff1990941693909317939093179490941693909317178155608089015193810180549487166001600160a01b031990951694909417909355925160028301805460c08a01516001600160401b0316600160a01b026001600160e01b031990911692909616919091179490941790935560e086015192810192909255840151600482015561012084015180518593613eda9260058501929101906146e8565b50505050919050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506001600160a01b03808216600090815260046020818152604092839020835160c081018552815460ff811615158083526101009091048716938201939093526001820154861694810194909452600281015490941660608401526003840154608084015292015460a08201529061176a576040516324de43d160e21b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906393790f4490602401602060405180830381865afa158015613ff2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140169190614e8d565b036140535760405162461bcd60e51b815260206004820152600d60248201526c1253959053125117d590555315609a1b6044820152606401611af3565b6000826001600160a01b031663fef840ff6040518163ffffffff1660e01b815260040161054060405180830381865afa158015614094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140b89190615732565b6103208101516001600160a01b03908116602080860191825261034084015183166040808801918252610280909501518416606088019081526001808952898616600090815260049485905296909620885181549551871661010002610100600160a81b0319911515919091166001600160a81b031990961695909517949094178455905194830180549585166001600160a01b031996871617905551600283018054919094169416939093179091556080840151600382015560a084015191015550919050565b6001600160a01b0380831660009081526005602052604080822054928416825281205490918291816141b2873061350e565b6141bc9190614e2b565b9350806141c9863061350e565b6141d39190614e2b565b92506141df8483614e7a565b6001600160a01b0387166000908152600560205260409020556142028382614e7a565b6001600160a01b039095166000908152600560205260409020949094555090939092509050565b6001600160a01b0381166142505760405163d92e233d60e01b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b60008061427f85856156c5565b9050600061428d87856156c5565b9050808211156142a25760019250505061378f565b808210156142b55760029250505061378f565b5060009695505050505050565b6000816000036142d457506000919050565b5070ffffffffffffffffffffffffffffffffff811160071b81811c68ffffffffffffffffff1060061b1781811c64ffffffffff1060051b1781811c62ffffff1060041b1781811c620100000160b5600192831c1b0260121c80830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c908190048111900390565b6001600160a01b0381163b6143ce5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401611af3565b600080516020615a4b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61440683614581565b6000825111806144135750805b15613851576129f283836145c1565b6000808760008151811061443857614438614b3c565b602002602001015113156144e457816001600160a01b031663a4a299c28860008151811061446857614468614b3c565b6020026020010151888888886126f26127106040518863ffffffff1660e01b815260040161449c97969594939291906159f9565b602060405180830381865afa1580156144b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144dd9190614e8d565b9050611951565b6000876001815181106144f9576144f9614b3c565b6020026020010151131561455d57816001600160a01b031663a4a299c28860018151811061452957614529614b3c565b6020026020010151878987896126f26127106040518863ffffffff1660e01b815260040161449c97969594939291906159f9565b6145766136036001600160801b038088169089166156c5565b979650505050505050565b61458a81614361565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606134248383604051806060016040528060278152602001615a6b602791396060600080856001600160a01b0316856040516145fe91906156dc565b600060405180830381855af49150503d8060008114614639576040519150601f19603f3d011682016040523d82523d6000602084013e61463e565b606091505b509150915061195186838387606083156146b95782516000036146b2576001600160a01b0385163b6146b25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611af3565b508161378f565b61378f83838151156146ce5781518083602001fd5b8060405162461bcd60e51b8152600401611af39190615a37565b82805482825590600052602060002090601f0160209004810192821561477e5791602002820160005b8382111561474f57835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302614711565b801561477c5782816101000a81549060ff021916905560010160208160000104928301926001030261474f565b505b5061478a92915061478e565b5090565b5b8082111561478a576000815560010161478f565b6001600160a01b0381168114611b9057600080fd5b6000602082840312156147ca57600080fd5b8135613424816147a3565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b038111828210171561480e5761480e6147d5565b60405290565b60405161058081016001600160401b038111828210171561480e5761480e6147d5565b60405161054081016001600160401b038111828210171561480e5761480e6147d5565b604051601f8201601f191681016001600160401b0381118282101715614882576148826147d5565b604052919050565b60006001600160401b038211156148a3576148a36147d5565b50601f01601f191660200190565b600080604083850312156148c457600080fd5b82356148cf816147a3565b915060208301356001600160401b038111156148ea57600080fd5b8301601f810185136148fb57600080fd5b803561490e6149098261488a565b61485a565b81815286602083850101111561492357600080fd5b816020840160208301376000602083830101528093505050509250929050565b61ffff81168114611b9057600080fd5b6000806040838503121561496657600080fd5b8235614971816147a3565b9150602083013561498181614943565b809150509250929050565b6001600160401b0381168114611b9057600080fd5b8015158114611b9057600080fd5b60008060008060008060c087890312156149c857600080fd5b86356149d3816147a3565b955060208701356149e38161498c565b945060408701356149f38161498c565b93506060870135614a038161498c565b92506080870135614a138161498c565b915060a0870135614a23816149a1565b809150509295509295509295565b60008060408385031215614a4457600080fd5b8235614a4f816147a3565b915060208301356149818161498c565b600080600060608486031215614a7457600080fd5b8335614a7f816147a3565b95602085013595506040909401359392505050565b600080600060608486031215614aa957600080fd5b8335614ab4816147a3565b92506020840135614ac4816147a3565b929592945050506040919091013590565b80516001600160701b038116811461176a57600080fd5b600080600060608486031215614b0157600080fd5b614b0a84614ad5565b9250614b1860208501614ad5565b9150604084015163ffffffff81168114614b3157600080fd5b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b606094851b6bffffffffffffffffffffffff19908116825260f09490941b6001600160f01b031916601482015260e89290921b6001600160e81b031916601683015290921b166019820152602d0190565b60005b83811015614bbe578181015183820152602001614ba6565b50506000910152565b60008151808452614bdf816020860160208601614ba3565b601f01601f19169290920160200192915050565b82815260406020820152600061378f6040830184614bc7565b60006001600160401b03821115614c2557614c256147d5565b5060051b60200190565b805161176a816147a3565b805161176a81614943565b805162ffffff8116811461176a57600080fd5b600082601f830112614c6957600080fd5b81516020614c7961490983614c0c565b82815260089290921b84018101918181019086841115614c9857600080fd5b8286015b84811015614d4f576101008189031215614cb65760008081fd5b614cbe6147eb565b8151614cc9816147a3565b8152614cd6828601614c2f565b858201526040614ce7818401614c2f565b908201526060614cf8838201614c3a565b908201526080614d09838201614c45565b9082015260a0614d1a838201614c2f565b9082015260c0614d2b838201614c2f565b9082015260e0614d3c838201614c2f565b9082015283529183019161010001614c9c565b509695505050505050565b60008060408385031215614d6d57600080fd5b82516001600160401b0380821115614d8457600080fd5b818501915085601f830112614d9857600080fd5b81516020614da861490983614c0c565b82815260059290921b84018101918181019089841115614dc757600080fd5b948201945b83861015614de557855182529482019490820190614dcc565b91880151919650909350505080821115614dfe57600080fd5b50614e0b85828601614c58565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561319857613198614e15565b85815284602082015260a060408201526000614e5d60a0830186614bc7565b6001600160a01b0394909416606083015250608001529392505050565b8082018082111561319857613198614e15565b600060208284031215614e9f57600080fd5b5051919050565b80516001600160801b038116811461176a57600080fd5b805169ffffffffffffffffffff8116811461176a57600080fd5b805160ff8116811461176a57600080fd5b805164ffffffffff8116811461176a57600080fd5b805161176a8161498c565b600082601f830112614f1957600080fd5b81516020614f2961490983614c0c565b82815260059290921b84018101918181019086841115614f4857600080fd5b8286015b84811015614d4f578051614f5f816147a3565b8352918301918301614f4c565b600082601f830112614f7d57600080fd5b81516020614f8d61490983614c0c565b82815260059290921b84018101918181019086841115614fac57600080fd5b8286015b84811015614d4f5780516001600160401b03811115614fcf5760008081fd5b8701603f81018913614fe15760008081fd5b848101516040614ff36149098361488a565b8281528b828486010111156150085760008081fd5b61501783898301848701614ba3565b8652505050918301918301614fb0565b600082601f83011261503857600080fd5b8151602061504861490983614c0c565b82815260059290921b8401810191818101908684111561506757600080fd5b8286015b84811015614d4f5761507c81614ed7565b835291830191830161506b565b600082601f83011261509a57600080fd5b815160206150aa61490983614c0c565b82815260059290921b840181019181810190868411156150c957600080fd5b8286015b84811015614d4f576150de81614ea6565b83529183019183016150cd565b805168ffffffffffffffffff8116811461176a57600080fd5b60006020828403121561511657600080fd5b81516001600160401b038082111561512d57600080fd5b90830190610580828603121561514257600080fd5b61514a614814565b61515383614c2f565b815261516160208401614c3a565b602082015261517260408401614c2f565b604082015261518360608401614c2f565b606082015261519460808401614c2f565b60808201526151a560a08401614c2f565b60a08201526151b660c08401614c2f565b60c08201526151c760e08401614c2f565b60e08201526101006151da818501614c2f565b908201526101206151ec848201614c2f565b908201526101408381015190820152610160808401519082015261018080840151908201526101a061521f818501614ea6565b908201526101c0615231848201614ea6565b908201526101e0615243848201614c2f565b90820152610200615255848201614ebd565b90820152610220615267848201614ed7565b90820152610240615279848201614c3a565b9082015261026061528b848201614ee8565b9082015261028061529d848201614efd565b908201526102a06152af848201614ea6565b908201526102c083810151908201526102e0808401519082015261030080840151838111156152dd57600080fd5b6152e988828701614f08565b828401525050610320808401518381111561530357600080fd5b61530f88828701614f6c565b828401525050610340808401518381111561532957600080fd5b61533588828701614f6c565b828401525050610360808401518381111561534f57600080fd5b61535b88828701615027565b828401525050610380808401518381111561537557600080fd5b61538188828701615089565b8284015250506103a0808401518381111561539b57600080fd5b6153a788828701615089565b91830191909152506103c083810151908201526103e080840151908201526104008084015190820152610420808401519082015261044091506153eb828401614ee8565b8282015261046091506153ff828401614ed7565b828201526104809150615413828401614ed7565b828201526104a0915081830151828201526104c09150615434828401614ee8565b828201526104e09150615448828401614ed7565b82820152610500915061545c828401614ed7565b828201526105209150615470828401614ed7565b828201526105409150615484828401614c3a565b8282015261056091506154988284016150eb565b91810191909152949350505050565b634e487b7160e01b600052601260045260246000fd5b6000826154da57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561558957600080fd5b61342482614ed7565b61ffff8281168282160390808211156155ad576155ad614e15565b5092915050565b61ffff8181168382160280821691908281146155d2576155d2614e15565b505092915050565b62ffffff8281168282160390808211156155ad576155ad614e15565b6001600160801b0397881681529587166020870152938616604086015291909416606084015262ffffff909316608083015260a082019290925260ff90911660c082015260e00190565b6000602080838503121561565357600080fd5b82516001600160401b0381111561566957600080fd5b8301601f8101851361567a57600080fd5b805161568861490982614c0c565b81815260059190911b820183019083810190878311156156a757600080fd5b928401925b82841015614576578351825292840192908401906156ac565b808202811582820484141761319857613198614e15565b600082516156ee818460208701614ba3565b9190910192915050565b805161176a816149a1565b60006020828403121561571557600080fd5b8151613424816149a1565b8051600281900b811461176a57600080fd5b6000610540828403121561574557600080fd5b61574d614837565b61575683614c2f565b815261576460208401614c3a565b602082015261577560408401614c3a565b604082015261578660608401614c3a565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152506101606157e5818501614ea6565b908201526101806157f7848201614ea6565b908201526101a083810151908201526101c080840151908201526101e061581f818501614c2f565b90820152610200615831848201614c2f565b90820152610220615843848201614c2f565b90820152610240615855848201614c2f565b90820152610260615867848201614c2f565b90820152610280615879848201614c2f565b908201526102a061588b848201614c2f565b908201526102c061589d848201614c2f565b908201526102e06158af848201614c2f565b908201526103006158c1848201614c2f565b908201526103206158d3848201614c2f565b908201526103406158e5848201614c2f565b908201526103606158f7848201614c2f565b908201526103806159098482016156f8565b908201526103a061591b848201614efd565b908201526103c061592d848201614efd565b908201526103e061593f848201614ed7565b90820152610400615951848201614ed7565b90820152610420615963848201614c45565b90820152610440615975848201615720565b90820152610460615987848201615720565b90820152610480615999848201615720565b908201526104a06159ab848201614efd565b908201526104c06159bd848201614c3a565b908201526104e06159cf848201614c2f565b908201526105006159e1848201614ed7565b90820152610520928301519281019290925250919050565b9687526001600160801b03958616602088015293851660408701529184166060860152909216608084015260a083019190915260c082015260e00190565b6020815260006134246020830184614bc756fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200aabe02ddbc73bde3f9a8cbcc6eb07985a113160c267c4e8ab2d3a24012b189864736f6c634300081500330000000000000000000000003e9955c6c6aa6af4f72cfaa7e9b7573f7ac25429000000000000000000000000fd513630f697a9c1731f196185fb9eba6eaac20b0000000000000000000000004689903fbbd2b49b872cf1f315bf60d2eb83169800000000000000000000000022801e12ff90e8c9dc6c17e0fa21ed42a2d41f43000000000000000000000000cb85e1222f715a81b8edaeb73b28182fa37cffa8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1