0 txs
0 calls
constructor
constructor(address _pool, address _router, uint256 _protocolFee, uint256 _maxTotalSupply)
functions
accruedProtocolFees0
viewfunction accruedProtocolFees0() view returns (uint256)
accruedProtocolFees1
viewfunction accruedProtocolFees1() view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
baseLower
viewfunction baseLower() view returns (int24)
baseUpper
viewfunction baseUpper() view returns (int24)
decimals
viewfunction decimals() view returns (uint8)
getBalance0
viewfunction getBalance0() view returns (uint256)
getBalance1
viewfunction getBalance1() view returns (uint256)
getPositionAmounts
viewfunction getPositionAmounts(int24 tickLower, int24 tickUpper) view returns (uint256 amount0, uint256 amount1)
getTotalAmounts
viewfunction getTotalAmounts() view returns (uint256 total0, uint256 total1)
governance
viewfunction governance() view returns (address)
limitLower
viewfunction limitLower() view returns (int24)
limitUpper
viewfunction limitUpper() view returns (int24)
maxTotalSupply
viewfunction maxTotalSupply() view returns (uint256)
name
viewfunction name() view returns (string)
pendingGovernance
viewfunction pendingGovernance() view returns (address)
pool
viewfunction pool() view returns (address)
protocolFee
viewfunction protocolFee() view returns (uint256)
router
viewfunction router() view returns (address)
routerAddress
viewfunction routerAddress() view returns (address)
SharpeKeeper
viewfunction SharpeKeeper() view returns (address)
symbol
viewfunction symbol() view returns (string)
tickSpacing
viewfunction tickSpacing() view returns (int24)
token0
viewfunction token0() view returns (address)
token0Address
viewfunction token0Address() view returns (address)
token1
viewfunction token1() view returns (address)
token1Address
viewfunction token1Address() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
acceptGovernance
nonpayablefunction acceptGovernance()
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
collectProtocol
nonpayablefunction collectProtocol(uint256 amount0, uint256 amount1, address to)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(uint256 amount0Desired, uint256 amount1Desired, uint256 amount0Min, uint256 amount1Min, address to) returns (uint256 shares, uint256 amount0, uint256 amount1)
emergencyBurn
nonpayablefunction emergencyBurn(int24 tickLower, int24 tickUpper, uint128 liquidity)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
rebalance
nonpayablefunction rebalance(int256 swapAmount, uint160 sqrtPriceLimitX96, int24 _baseLower, int24 _baseUpper, int24 _bidLower, int24 _bidUpper, int24 _askLower, int24 _askUpper)
setGovernance
nonpayablefunction setGovernance(address _governance)
setMaxTotalSupply
nonpayablefunction setMaxTotalSupply(uint256 _maxTotalSupply)
setProtocolFee
nonpayablefunction setProtocolFee(uint256 _protocolFee)
setSharpeKeeper
nonpayablefunction setSharpeKeeper(address _SharpeKeeper)
sweep
nonpayablefunction sweep(address token, uint256 amount, address to)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
uniswapV3MintCallback
nonpayablefunction uniswapV3MintCallback(uint256 amount0, uint256 amount1, bytes data)
uniswapV3SwapCallback
nonpayablefunction uniswapV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes data)
withdraw
nonpayablefunction withdraw(uint256 shares, uint256 amount0Min, uint256 amount1Min, address to) returns (uint256 amount0, uint256 amount1)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
CollectFees
event CollectFees(uint256 feesToVault0, uint256 feesToVault1, uint256 feesToProtocol0, uint256 feesToProtocol1)
Deposit
event Deposit(address indexed sender, address indexed to, uint256 shares, uint256 amount0, uint256 amount1)
Snapshot
event Snapshot(int24 tick, uint256 totalAmount0, uint256 totalAmount1, uint256 totalSupply)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Withdraw
event Withdraw(address indexed sender, address indexed to, uint256 shares, uint256 amount0, uint256 amount1)
errors
No errors.
creation bytecode
0x6101806040523480156200001257600080fd5b5060405162005d8538038062005d858339810160408190526200003591620004c9565b604080518082018252600681526553686172706560d01b6020808301918252835180850190945260048452630534852560e41b9084015281519192916200007f91600391620003e2565b50805162000095906004906020840190620003e2565b50506001600555506001600160601b0319606085811b821660805284901b1660a05260408051630dfe168160e01b815290516001600160a01b03861691630dfe1681916004808301926020929190829003018186803b158015620000f857600080fd5b505afa1580156200010d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001339190620004a5565b6001600160a01b031660c0816001600160a01b031660601b81525050836001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156200018957600080fd5b505afa1580156200019e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c49190620004a5565b6001600160a01b031660e0816001600160a01b031660601b81525050836001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156200021a57600080fd5b505afa1580156200022f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002559190620004a5565b6001600160a01b0316610120816001600160a01b031660601b81525050836001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ac57600080fd5b505afa158015620002c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e79190620004a5565b6001600160601b0319606091821b8116610140529084901b1661016052604080516334324e9f60e21b815290516001600160a01b0386169163d0c93a7c916004808301926020929190829003018186803b1580156200034557600080fd5b505afa1580156200035a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000380919062000510565b600290810b900b60e81b6101005260068290556007819055600980546001600160a01b03191633179055620f42408210620003d85760405162461bcd60e51b8152600401620003cf9062000533565b60405180910390fd5b5050505062000595565b828054620003f09062000558565b90600052602060002090601f0160209004810192826200041457600085556200045f565b82601f106200042f57805160ff19168380011785556200045f565b828001600101855582156200045f579182015b828111156200045f57825182559160200191906001019062000442565b506200046d92915062000471565b5090565b5b808211156200046d576000815560010162000472565b80516001600160a01b0381168114620004a057600080fd5b919050565b600060208284031215620004b7578081fd5b620004c28262000488565b9392505050565b60008060008060808587031215620004df578283fd5b620004ea8562000488565b9350620004fa6020860162000488565b6040860151606090960151949790965092505050565b60006020828403121562000522578081fd5b81518060020b8114620004c2578182fd5b6020808252600b908201526a70726f746f636f6c46656560a81b604082015260600190565b6002810460018216806200056d57607f821691505b602082108114156200058f57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160601c6101405160601c6101605160601c6155ce620007b7600039600081816107cc01528181610bdb015281816112580152818161358201526137ca0152600081816109ab01528181610cdd01528181611090015281816112f8015281816125ce0152818161362201526138cc015260008181610a0d01528181610c7b0152818161102e0152818161135a0152818161192d01528181613684015261386a0152600081816121bf0152612db001526000818161060401528181610f54015281816111ec0152818161122b01528181611661015281816117a3015281816121e30152818161241b0152818161248f0152818161259f01528181612659015281816127ba01526135550152600081816105ca015281816106f501528181610b6f01528181610bae01528181610eb70152818161162601528181611871015281816123bd01528181612455015281816125650152818161261c0152818161277d015261379d015260008181610a7501528181610d45015281816110f8015281816113c201528181612700015281816136e90152613931015260008181610729015281816119c301528181611bbd01528181611fa501528181612048015281816125280152818161273d01528181612a9e01528181612ed101528181612f950152818161302a015281816131bb0152818161329f01526132e101526155ce6000f3fe608060405234801561001057600080fd5b50600436106102955760003560e01c806387e5e08311610167578063d0c93a7c116100ce578063dd62ed3e11610087578063dd62ed3e1461051e578063eae989a214610531578063f39c38a014610539578063f887ea4014610541578063fa08274314610549578063fa461e331461055157610295565b8063d0c93a7c146104cd578063d21220a7146104d5578063d331bef7146104dd578063d3487997146104f0578063d7cb416f14610503578063dc2c256f1461050b57610295565b8063a91ef6eb11610120578063a91ef6eb14610463578063ab033ea914610484578063abbffcb914610497578063b0e21e8a146104aa578063b3a3d00c146104b2578063c4a7761e146104c557610295565b806387e5e08314610412578063888a91341461042557806395d89b411461042d578063a00fa77f14610435578063a457c2d71461043d578063a9059cbb1461045057610295565b8063313ce5671161020b57806351e87af7116101c457806351e87af7146103cc5780635aa6e675146103d4578063629d9405146103dc57806370a08231146103e4578063787dce3d146103f75780637ff36fbe1461040a57610295565b8063313ce5671461035f5780633268cc5614610374578063365d0ed71461037c578063395093511461039e5780633f3e4c11146103b157806341aec538146103c457610295565b80630f35bcac1161025d5780630f35bcac1461030a57806316f0115b1461031f57806318160ddd14610327578063238efcbc1461033c57806323b872dd146103445780632ab4d0521461035757610295565b80630430c1301461029a57806306fdde03146102af578063095ea7b3146102cd5780630c42383a146102ed5780630dfe168114610302575b600080fd5b6102ad6102a836600461492f565b610564565b005b6102b7610630565b6040516102c49190614be0565b60405180910390f35b6102e06102db366004614520565b6106c2565b6040516102c49190614b78565b6102f56106e4565b6040516102c49190614a6e565b6102f56106f3565b610312610717565b6040516102c49190614b8c565b6102f5610727565b61032f61074b565b6040516102c49190614b83565b6102ad610751565b6102e06103523660046144e0565b61078f565b61032f6107bf565b6103676107c5565b6040516102c491906153aa565b6102f56107ca565b61038f61038a36600461499c565b6107ee565b6040516102c493929190615379565b6102e06103ac366004614520565b61171e565b6102ad6103bf3660046148ff565b61176a565b61032f611799565b610312611848565b6102f5611858565b61032f611867565b61032f6103f236600461448c565b6118bb565b6102ad6104053660046148ff565b6118da565b6102f561192b565b6102ad610420366004614740565b61194f565b610312611dd8565b6102b7611de8565b61032f611df7565b6102e061044b366004614520565b611dfd565b6102e061045e366004614520565b611e69565b610476610471366004614660565b611e81565b6040516102c492919061536b565b6102ad61049236600461448c565b611f18565b6102ad6104a536600461468d565b611f64565b61032f6120e4565b6102ad6104c036600461448c565b6120ea565b610476612136565b6103126121bd565b6102f56121e1565b6104766104eb36600461495c565b612205565b6102ad6104fe3660046146ef565b61251d565b6102f56125cc565b6102ad61051936600461461f565b6125f0565b61032f61052c3660046144a8565b6126be565b61032f6126e9565b6102f56126ef565b6102f56126fe565b610312612722565b6102ad61055f3660046146ef565b612732565b6009546001600160a01b031633146105975760405162461bcd60e51b815260040161058e90614ff0565b60405180910390fd5b600b546105a490846127e1565b600b55600c546105b490836127e1565b600c5582156105f1576105f16001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682856127ed565b811561062b5761062b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682846127ed565b505050565b60606003805461063f9061546e565b80601f016020809104026020016040519081016040528092919081815260200182805461066b9061546e565b80156106b85780601f1061068d576101008083540402835291602001916106b8565b820191906000526020600020905b81548152906001019060200180831161069b57829003601f168201915b5050505050905090565b6000806106cd612843565b90506106da818585612847565b5060019392505050565b6008546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a54600160e81b900460020b81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025490565b600a546001600160a01b0316331461077b5760405162461bcd60e51b815260040161058e90614ef8565b600980546001600160a01b03191633179055565b60008061079a612843565b90506107a78582856128fb565b6107b285858561293f565b60019150505b9392505050565b60075481565b601290565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000600260055414156108165760405162461bcd60e51b815260040161058e90615263565b6002600555871515806108295750600087115b6108455760405162461bcd60e51b815260040161058e90614ec3565b6001600160a01b0384161580159061086657506001600160a01b0384163014155b6108825760405162461bcd60e51b815260040161058e90614cbc565b600a546108a490600160a01b8104600290810b91600160b81b9004900b612a63565b600a546108c690600160d01b8104600290810b91600160e81b9004900b612a63565b6108d08888612b29565b91945092509050858210156108f75760405162461bcd60e51b815260040161058e90614c56565b848110156109175760405162461bcd60e51b815260040161058e906150d9565b826115f35760008211801561092a575080155b8061093e575060008111801561093e575081155b61095a5760405162461bcd60e51b815260040161058e90614f23565b600061096461074b565b9050600080610971612136565b91509150600085118015610983575083155b1561100b576040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106109eb57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610a4d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b81526000917f0000000000000000000000000000000000000000000000000000000000000000169063d06ca61f90610aac9086908690600401615316565b60006040518083038186803b158015610ac457600080fd5b505afa158015610ad8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b00919081019061454b565b90506000610b52610b4283600181518110610b2b57634e487b7160e01b600052603260045260246000fd5b602002602001015187612c8790919063ffffffff16565b610b4c8a88612c93565b90612c9f565b90506000610b6089836127e1565b9050610b976001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308c612cab565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390610c05907f0000000000000000000000000000000000000000000000000000000000000000908590600401614b5f565b602060405180830381600087803b158015610c1f57600080fd5b505af1158015610c33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c579190614605565b506040805160028082526060820183526000926020830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110610cbb57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610d1d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526040516338ed173960e01b81526000917f000000000000000000000000000000000000000000000000000000000000000016906338ed173990610d82908690859087903090429060040161532f565b600060405180830381600087803b158015610d9c57600080fd5b505af1158015610db0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dd8919081019061454b565b90506000610e29610de9868a612c93565b610e248b85600181518110610e0e57634e487b7160e01b600052603260045260246000fd5b6020026020010151612c9390919063ffffffff16565b612ccc565b9050610e446001610e3e8a610b4c85846127e1565b90612c87565b9b50610e596001610e3e8b610b4c85846127e1565b9a50610e6b88610b4c8b81858f612c93565b9c5060008d11610e8d5760405162461bcd60e51b815260040161058e90614d80565b6000610e99868e6127e1565b1115610ede57610ede8e610ead878f6127e1565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906127ed565b6000610f1b8c84600181518110610f0557634e487b7160e01b600052603260045260246000fd5b60200260200101516127e190919063ffffffff16565b1115610f7b57610f7b8e610f4a8d85600181518110610f0557634e487b7160e01b600052603260045260246000fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906127ed565b610f858e8e612ce2565b8d6001600160a01b0316336001600160a01b03167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68f8f8f604051610fcc93929190615379565b60405180910390a3600754610fe18b8f612c87565b1115610fff5760405162461bcd60e51b815260040161058e906151f1565b505050505050506115eb565b6040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061106e57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106110d057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b81526000917f0000000000000000000000000000000000000000000000000000000000000000169063d06ca61f9061112f9087908690600401615316565b60006040518083038186803b15801561114757600080fd5b505afa15801561115b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611183919081019061454b565b905060006111cf6111c5836001815181106111ae57634e487b7160e01b600052603260045260246000fd5b602002602001015186612c8790919063ffffffff16565b610b4c8987612c93565b905060006111dd88836127e1565b90506112146001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308b612cab565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390611282907f0000000000000000000000000000000000000000000000000000000000000000908590600401614b5f565b602060405180830381600087803b15801561129c57600080fd5b505af11580156112b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d49190614605565b506040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061133857634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061139a57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526040516338ed173960e01b81526000917f000000000000000000000000000000000000000000000000000000000000000016906338ed1739906113ff908690859087903090429060040161532f565b600060405180830381600087803b15801561141957600080fd5b505af115801561142d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611455919081019061454b565b9050600061148b6114818984600181518110610e0e57634e487b7160e01b600052603260045260246000fd5b610e24878c612c93565b90506114a06001610e3e8a610b4c85846127e1565b9b506114b56001610e3e8b610b4c85846127e1565b9a506114c788610b4c8b81858f612c93565b9c5060008d116114e95760405162461bcd60e51b815260040161058e90614d80565b60006115108d84600181518110610f0557634e487b7160e01b600052603260045260246000fd5b111561153f5761153f8e610ead8e85600181518110610f0557634e487b7160e01b600052603260045260246000fd5b600061154b868d6127e1565b111561155f5761155f8e610f4a878e6127e1565b6115698e8e612ce2565b8d6001600160a01b0316336001600160a01b03167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68f8f8f6040516115b093929190615379565b60405180910390a36007546115c58b8f612c87565b11156115e35760405162461bcd60e51b815260040161058e906151f1565b505050505050505b50505061170b565b600083116116135760405162461bcd60e51b815260040161058e90615014565b811561164e5761164e6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085612cab565b8015611689576116896001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612cab565b6116938484612ce2565b836001600160a01b0316336001600160a01b03167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585856040516116da93929190615379565b60405180910390a36007546116ed61074b565b111561170b5760405162461bcd60e51b815260040161058e906151f1565b6001600581905550955095509592505050565b600080611729612843565b6001600160a01b038082166000908152600160209081526040808320938916835292905220549091506106da90829086906117659087906153b8565b612847565b6009546001600160a01b031633146117945760405162461bcd60e51b815260040161058e90614ff0565b600755565b6000611843600c547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016117ed9190614a6e565b60206040518083038186803b15801561180557600080fd5b505afa158015611819573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183d9190614917565b906127e1565b905090565b600a54600160d01b900460020b81565b6009546001600160a01b031681565b6000611843600b547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016117ed9190614a6e565b6001600160a01b0381166000908152602081905260409020545b919050565b6009546001600160a01b031633146119045760405162461bcd60e51b815260040161058e90614ff0565b620f424081106119265760405162461bcd60e51b815260040161058e90614f4f565b600655565b7f000000000000000000000000000000000000000000000000000000000000000081565b600260055414156119725760405162461bcd60e51b815260040161058e90615263565b60026005556008546001600160a01b031633146119a15760405162461bcd60e51b815260040161058e90614fca565b6119ab8686612dae565b6119b58484612dae565b6119bf8282612dae565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015611a1a57600080fd5b505afa158015611a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a52919061486e565b50505050509150508060020b8460020b1315611a805760405162461bcd60e51b815260040161058e90614e5b565b8060020b8360020b13611aa55760405162461bcd60e51b815260040161058e906150fd565b600a54600090611aca90600160a01b8104600290810b91600160b81b9004900b612ea3565b5050600a54929350600092611af79250600160d01b8104600290810b9250600160e81b909104900b612ea3565b5050600a54929350611b2392600160a01b8104600290810b9350600160b81b909104900b905084612f6a565b5050600a54611b4b9250600160d01b8104600290810b9250600160e81b909104900b83612f6a565b5050505050506000611b5b611867565b90506000611b67611799565b90507f210f60adf1db7a02e9db9a49ec7c2eb2060c516cbcfd01a0c05288144738ee5d838383611b9561074b565b604051611ba59493929190614bc0565b60405180910390a18a15611c84576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663128acb083060008e1380611bfa57611bf58f615500565b611bfc565b8e5b8e6040518563ffffffff1660e01b8152600401611c1c9493929190614aa6565b6040805180830381600087803b158015611c3557600080fd5b505af1158015611c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6d91906146cc565b5050611c77611867565b9150611c81611799565b90505b6000611c928a8a85856131b6565b9050611c9f8a8a83613279565b600a805460028c810b62ffffff908116600160a01b0262ffffff60a01b19928e900b909116600160b81b0262ffffff60b81b199093169290921716179055611ce5611867565b9250611cef611799565b91506000611cff898986866131b6565b90506000611d0f888887876131b6565b9050806001600160801b0316826001600160801b03161115611d7957611d368a8a84613279565b600a805460028c810b62ffffff908116600160d01b0262ffffff60d01b19928e900b909116600160e81b026001600160e81b039093169290921716179055611dc3565b611d84888883613279565b600a805460028a810b62ffffff908116600160d01b0262ffffff60d01b19928c900b909116600160e81b026001600160e81b0390931692909217161790555b50506001600555505050505050505050505050565b600a54600160b81b900460020b81565b60606004805461063f9061546e565b600c5481565b600080611e08612843565b6001600160a01b0380821660009081526001602090815260408083209389168352929052205490915083811015611e515760405162461bcd60e51b815260040161058e9061529a565b611e5e8286868403612847565b506001949350505050565b600080611e74612843565b90506106da81858561293f565b6000806000806000611e938787612ea3565b9450945050509250611ea68787856132da565b6006549196509450600090611ebf90620f4240906127e1565b9050611ee5611ede620f4240610b4c6001600160801b03871685612c93565b8790612c87565b9550611f0b611f04620f4240610b4c6001600160801b03861685612c93565b8690612c87565b9450505050509250929050565b6009546001600160a01b03163314611f425760405162461bcd60e51b815260040161058e90614ff0565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6009546001600160a01b03163314611f8e5760405162461bcd60e51b815260040161058e90614ff0565b60405163a34123a760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a34123a790611fde90869086908690600401614b9a565b6040805180830381600087803b158015611ff757600080fd5b505af115801561200b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202f91906146cc565b50506040516309e3d67b60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634f1eb3d89061208c903090879087906001600160801b03908190600401614b22565b6040805180830381600087803b1580156120a557600080fd5b505af11580156120b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dd91906147df565b5050505050565b60065481565b6009546001600160a01b031633146121145760405162461bcd60e51b815260040161058e90614ff0565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600a5460009081908190819061216190600160a01b8104600290810b91600160b81b9004900b611e81565b600a549193509150600090819061218d90600160d01b8104600290810b91600160e81b9004900b611e81565b915091506121a182610e3e86610e3e611867565b95506121b381610e3e85610e3e611799565b9450505050509091565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806002600554141561222b5760405162461bcd60e51b815260040161058e90615263565b60026005558561224d5760405162461bcd60e51b815260040161058e90615014565b6001600160a01b0383161580159061226e57506001600160a01b0383163014155b61228a5760405162461bcd60e51b815260040161058e90614cbc565b600061229461074b565b90506122a033886133a1565b60006122b882610b4c8a6122b2611867565b90612c93565b905060006122cc83610b4c8b6122b2611799565b600a5490915060009081906122f890600160a01b8104600290810b91600160b81b9004900b8d88613492565b600a549193509150600090819061232690600160d01b8104600290810b91600160e81b9004900b8f8a613492565b909250905061233982610e3e8887612c87565b985061234981610e3e8786612c87565b97508b89101561236b5760405162461bcd60e51b815260040161058e90614c56565b8a88101561238b5760405162461bcd60e51b815260040161058e906150d9565b60008c11801561239957508a155b156123e9576123aa8860018c613538565b88156123e4576123e46001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168b8b6127ed565b6124b6565b60008b1180156123f757508b155b15612442576124088960008c613538565b87156123e4576123e46001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168b8a6127ed565b881561247c5761247c6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168b8b6127ed565b87156124b6576124b66001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168b8a6127ed565b896001600160a01b0316336001600160a01b03167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8f8c8c6040516124fd93929190615379565b60405180910390a350505050505050600160058190555094509492505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461255257600080fd5b831561258c5761258c6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633866127ed565b82156125c6576125c66001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633856127ed565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6009546001600160a01b0316331461261a5760405162461bcd60e51b815260040161058e90614ff0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415801561268e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b6126aa5760405162461bcd60e51b815260040161058e90614f74565b61062b6001600160a01b03841682846127ed565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600b5481565b600a546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a54600160a01b900460020b81565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461276757600080fd5b60008413156127a4576127a46001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633866127ed565b60008313156125c6576125c66001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633856127ed565b60006107b8828461542b565b61062b8363a9059cbb60e01b848460405160240161280c929190614b5f565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526139c7565b3390565b6001600160a01b03831661286d5760405162461bcd60e51b815260040161058e9061514a565b6001600160a01b0382166128935760405162461bcd60e51b815260040161058e90614d07565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906128ee908590614b83565b60405180910390a3505050565b600061290784846126be565b905060001981146125c657818110156129325760405162461bcd60e51b815260040161058e90614da7565b6125c68484848403612847565b6001600160a01b0383166129655760405162461bcd60e51b815260040161058e90615094565b6001600160a01b03821661298b5760405162461bcd60e51b815260040161058e90614c13565b61299683838361062b565b6001600160a01b038316600090815260208190526040902054818110156129cf5760405162461bcd60e51b815260040161058e90614e15565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612a069084906153b8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a509190614b83565b60405180910390a36125c684848461062b565b6000612a6f8383612ea3565b5050505090506000816001600160801b0316111561062b5760405163a34123a760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a34123a790612ad89086908690600090600401614b9a565b6040805180830381600087803b158015612af157600080fd5b505af1158015612b05573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120dd91906146cc565b600080600080612b3761074b565b9050600080612b44612136565b915091508260001480612b575750600082115b80612b625750600081115b612b7c57634e487b7160e01b600052600160045260246000fd5b82612b9857879450869350612b918585613a56565b9550612c7d565b81612bae57869350612b9181610b4c8686612c93565b80612bc457879450612b9182610b4c8786612c93565b6000881180612bd35750600087115b612bef5760405162461bcd60e51b815260040161058e90614f93565b6000612c08612bfe8a84612c93565b610e248a86612c93565b905080612c1e5788955087945060009650612c7b565b60008111612c3e5760405162461bcd60e51b815260040161058e90615075565b612c516001610e3e84610b4c85846127e1565b9550612c666001610e3e85610b4c85846127e1565b9450612c7882610b4c85818589612c93565b96505b505b5050509250925092565b60006107b882846153b8565b60006107b882846153e4565b60006107b882846153d0565b6125c6846323b872dd60e01b85858560405160240161280c93929190614a82565b6000818310612cdb57816107b8565b5090919050565b6001600160a01b038216612d085760405162461bcd60e51b815260040161058e906152df565b612d146000838361062b565b8060026000828254612d2691906153b8565b90915550506001600160a01b03821660009081526020819052604081208054839290612d539084906153b8565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612d96908590614b83565b60405180910390a3612daa6000838361062b565b5050565b7f0000000000000000000000000000000000000000000000000000000000000000600282810b9084900b12612df55760405162461bcd60e51b815260040161058e90614cd8565b620d89e719600284900b1215612e1d5760405162461bcd60e51b815260040161058e9061511f565b612e2a620d89e7196154df565b60020b8260020b1315612e4f5760405162461bcd60e51b815260040161058e9061518e565b612e5981846154a9565b60020b15612e795760405162461bcd60e51b815260040161058e90614d49565b612e8381836154a9565b60020b1561062b5760405162461bcd60e51b815260040161058e90614dde565b600080600080600080612eb7308989613a66565b60405163514ea4bf60e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063514ea4bf90612f06908490600401614b83565b60a06040518083038186803b158015612f1e57600080fd5b505afa158015612f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f56919061480d565b939c929b5090995097509095509350505050565b60008080806001600160801b038516156130255760405163a34123a760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a34123a790612fce908a908a908a90600401614b9a565b6040805180830381600087803b158015612fe757600080fd5b505af1158015612ffb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061301f91906146cc565b90945092505b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634f1eb3d8308b8b6001600160801b03806040518663ffffffff1660e01b8152600401613083959493929190614b22565b6040805180830381600087803b15801561309c57600080fd5b505af11580156130b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d491906147df565b6001600160801b0391821693501690506130ee82876127e1565b93506130fa81866127e1565b6006549093506000908190801561316b5761311c620f4240610b4c8984612c93565b925061312f620f4240610b4c8884612c93565b915061313b87846127e1565b965061314786836127e1565b600b549096506131579084612c87565b600b55600c546131679083612c87565b600c555b7f1ac56d7e866e3f5ea9aa92aa11758ead39a0a5f013f3fefb0f47cb9d008edd27878785856040516131a0949392919061538f565b60405180910390a1505050505093509350935093565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561321257600080fd5b505afa158015613226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324a919061486e565b505050505050905061326f8161325f88613a9c565b61326888613a9c565b8787613e76565b9695505050505050565b6001600160801b0381161561062b57604051633c8a7d8d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633c8a7d8d90612ad8903090879087908790600401614ae0565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561333857600080fd5b505afa15801561334c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613370919061486e565b50505050505090506133948161338588613a9c565b61338e88613a9c565b87613f3a565b9250925050935093915050565b6001600160a01b0382166133c75760405162461bcd60e51b815260040161058e90615034565b6133d38260008361062b565b6001600160a01b0382166000908152602081905260409020548181101561340c5760405162461bcd60e51b815260040161058e90614c7a565b6001600160a01b038316600090815260208190526040812083830390556002805484929061343b90849061542b565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061347e908690614b83565b60405180910390a361062b8360008461062b565b60008060006134a18787612ea3565b50505050905060006134c985610b4c88856001600160801b0316612c9390919063ffffffff16565b9050801561352d576000806000806134ea8c8c6134e588613fd6565b612f6a565b9296509094509250905061350c6135058a610b4c858e612c93565b8590612c87565b975061352661351f8a610b4c848e612c93565b8490612c87565b9650505050505b505094509492505050565b81156137865760405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906135ac907f0000000000000000000000000000000000000000000000000000000000000000908790600401614b5f565b602060405180830381600087803b1580156135c657600080fd5b505af11580156135da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135fe9190614605565b506040805160028082526060820183526000926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000008160008151811061366257634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106136c457634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526040516338ed173960e01b81527f0000000000000000000000000000000000000000000000000000000000000000909116906338ed17399061372990879060009086908890429060040161532f565b600060405180830381600087803b15801561374357600080fd5b505af1158015613757573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261377f919081019061454b565b505061062b565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906137f4907f0000000000000000000000000000000000000000000000000000000000000000908790600401614b5f565b602060405180830381600087803b15801561380e57600080fd5b505af1158015613822573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138469190614605565b506040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106138aa57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061390c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526040516338ed173960e01b81527f0000000000000000000000000000000000000000000000000000000000000000909116906338ed17399061397190879060009086908890429060040161532f565b600060405180830381600087803b15801561398b57600080fd5b505af115801561399f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120dd919081019061454b565b6000613a1c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166140019092919063ffffffff16565b80519091501561062b5780806020019051810190613a3a9190614605565b61062b5760405162461bcd60e51b815260040161058e90615219565b600081831015612cdb57816107b8565b6000838383604051602001613a7d93929190614a1d565b6040516020818303038152906040528051906020012090509392505050565b60008060008360020b12613ab3578260020b613ac0565b8260020b613ac090615500565b9050600060018216613ad657600160801b613ae8565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615613b27576080613b22826ffff97272373d413259a46990580e213a6153e4565b901c90505b6004821615613b51576080613b4c826ffff2e50f5f656932ef12357cf3c7fdcc6153e4565b901c90505b6008821615613b7b576080613b76826fffe5caca7e10e4e61c3624eaa0941cd06153e4565b901c90505b6010821615613ba5576080613ba0826fffcb9843d60f6159c9db58835c9266446153e4565b901c90505b6020821615613bcf576080613bca826fff973b41fa98c081472e6896dfb254c06153e4565b901c90505b6040821615613bf9576080613bf4826fff2ea16466c96a3843ec78b326b528616153e4565b901c90505b6080821615613c23576080613c1e826ffe5dee046a99a2a811c461f1969c30536153e4565b901c90505b610100821615613c4e576080613c49826ffcbe86c7900a88aedcffc83b479aa3a46153e4565b901c90505b610200821615613c79576080613c74826ff987a7253ac413176f2b074cf7815e546153e4565b901c90505b610400821615613ca4576080613c9f826ff3392b0822b70005940c7a398e4b70f36153e4565b901c90505b610800821615613ccf576080613cca826fe7159475a2c29b7443b29c7fa6e889d96153e4565b901c90505b611000821615613cfa576080613cf5826fd097f3bdfd2022b8845ad8f792aa58256153e4565b901c90505b612000821615613d25576080613d20826fa9f746462d870fdf8a65dc1f90e061e56153e4565b901c90505b614000821615613d50576080613d4b826f70d869a156d2a1b890bb3df62baf32f76153e4565b901c90505b618000821615613d7b576080613d76826f31be135f97d08fd981231505542fcfa66153e4565b901c90505b62010000821615613da7576080613da2826f09aa508b5b7a84e1c677de54f3e99bc96153e4565b901c90505b62020000821615613dd2576080613dcd826e5d6af8dedb81196699c329225ee6046153e4565b901c90505b62040000821615613dfc576080613df7826d2216e584f5fa1ea926041bedfe986153e4565b901c90505b62080000821615613e24576080613e1f826b048a170391f7dc42444e8fa26153e4565b901c90505b60008460020b1315613e3f57613e3c816000196153d0565b90505b613e4e640100000000826154cb565b15613e5a576001613e5d565b60005b613e6e9060ff16602083901c6153b8565b949350505050565b6000836001600160a01b0316856001600160a01b03161115613e96579293925b846001600160a01b0316866001600160a01b031611613ec157613eba858585614010565b9050613f31565b836001600160a01b0316866001600160a01b03161015613f23576000613ee8878686614010565b90506000613ef787898661407a565b9050806001600160801b0316826001600160801b031610613f185780613f1a565b815b92505050613f31565b613f2e85858461407a565b90505b95945050505050565b600080836001600160a01b0316856001600160a01b03161115613f5b579293925b846001600160a01b0316866001600160a01b031611613f8657613f7f8585856140b0565b9150613fcd565b836001600160a01b0316866001600160a01b03161015613fbf57613fab8685856140b0565b9150613fb8858785614123565b9050613fcd565b613fca858585614123565b90505b94509492505050565b60006001600160801b03821115613ffd57634e487b7160e01b600052600160045260246000fd5b5090565b6060613e6e848460008561416d565b6000826001600160a01b0316846001600160a01b03161115614030579192915b6000614053856001600160a01b0316856001600160a01b0316600160601b61422d565b9050613f3161407584836140678989615403565b6001600160a01b031661422d565b6143a3565b6000826001600160a01b0316846001600160a01b0316111561409a579192915b613e6e61407583600160601b6140678888615403565b6000826001600160a01b0316846001600160a01b031611156140d0579192915b6001600160a01b0384166141196fffffffffffffffffffffffffffffffff60601b606085901b166141018787615403565b6001600160a01b0316866001600160a01b031661422d565b613e6e91906153d0565b6000826001600160a01b0316846001600160a01b03161115614143579192915b613e6e6001600160801b03831661415a8686615403565b6001600160a01b0316600160601b61422d565b60608247101561418f5760405162461bcd60e51b815260040161058e90614e7d565b614198856143b9565b6141b45760405162461bcd60e51b815260040161058e906151ba565b600080866001600160a01b031685876040516141d09190614a52565b60006040518083038185875af1925050503d806000811461420d576040519150601f19603f3d011682016040523d82523d6000602084013e614212565b606091505b50915091506142228282866143ea565b979650505050505050565b6000808060001985870986860292508281109083900303905080614263576000841161425857600080fd5b5082900490506107b8565b80841161426f57600080fd5b600084868809808403938111909203919050600061428f861960016153b8565b86169586900495938490049360008190030460010190506142b081846153e4565b9093179260006142c18760036153e4565b60021890506142d081886153e4565b6142db90600261542b565b6142e590826153e4565b90506142f181886153e4565b6142fc90600261542b565b61430690826153e4565b905061431281886153e4565b61431d90600261542b565b61432790826153e4565b905061433381886153e4565b61433e90600261542b565b61434890826153e4565b905061435481886153e4565b61435f90600261542b565b61436990826153e4565b905061437581886153e4565b61438090600261542b565b61438a90826153e4565b905061439681866153e4565b9998505050505050505050565b806001600160801b03811681146118d557600080fd5b600080826001600160a01b0316803b806020016040519081016040528181526000908060200190933c511192915050565b606083156143f95750816107b8565b8251156144095782518084602001fd5b8160405162461bcd60e51b815260040161058e9190614be0565b805180151581146118d557600080fd5b60008083601f840112614444578182fd5b50813567ffffffffffffffff81111561445b578182fd5b60208301915083602082850101111561447357600080fd5b9250929050565b805161ffff811681146118d557600080fd5b60006020828403121561449d578081fd5b81356107b88161555c565b600080604083850312156144ba578081fd5b82356144c58161555c565b915060208301356144d58161555c565b809150509250929050565b6000806000606084860312156144f4578081fd5b83356144ff8161555c565b9250602084013561450f8161555c565b929592945050506040919091013590565b60008060408385031215614532578182fd5b823561453d8161555c565b946020939093013593505050565b6000602080838503121561455d578182fd5b825167ffffffffffffffff80821115614574578384fd5b818501915085601f830112614587578384fd5b81518181111561459957614599615546565b838102604051858282010181811085821117156145b8576145b8615546565b604052828152858101935084860182860187018a10156145d6578788fd5b8795505b838610156145f85780518552600195909501949386019386016145da565b5098975050505050505050565b600060208284031215614616578081fd5b6107b882614423565b600080600060608486031215614633578283fd5b833561463e8161555c565b92506020840135915060408401356146558161555c565b809150509250925092565b60008060408385031215614672578182fd5b823561467d81615574565b915060208301356144d581615574565b6000806000606084860312156146a1578283fd5b83356146ac81615574565b925060208401356146bc81615574565b9150604084013561465581615583565b600080604083850312156146de578182fd5b505080516020909101519092909150565b60008060008060608587031215614704578182fd5b8435935060208501359250604085013567ffffffffffffffff811115614728578283fd5b61473487828801614433565b95989497509550505050565b600080600080600080600080610100898b03121561475c578586fd5b88359750602089013561476e8161555c565b9650604089013561477e81615574565b9550606089013561478e81615574565b9450608089013561479e81615574565b935060a08901356147ae81615574565b925060c08901356147be81615574565b915060e08901356147ce81615574565b809150509295985092959890939650565b600080604083850312156147f1578182fd5b82516147fc81615583565b60208401519092506144d581615583565b600080600080600060a08688031215614824578283fd5b855161482f81615583565b809550506020860151935060408601519250606086015161484f81615583565b608087015190925061486081615583565b809150509295509295909350565b600080600080600080600060e0888a031215614888578081fd5b87516148938161555c565b60208901519097506148a481615574565b95506148b26040890161447a565b94506148c06060890161447a565b93506148ce6080890161447a565b925060a088015160ff811681146148e3578182fd5b91506148f160c08901614423565b905092959891949750929550565b600060208284031215614910578081fd5b5035919050565b600060208284031215614928578081fd5b5051919050565b600080600060608486031215614943578081fd5b833592506020840135915060408401356146558161555c565b60008060008060808587031215614971578182fd5b84359350602085013592506040850135915060608501356149918161555c565b939692955090935050565b600080600080600060a086880312156149b3578283fd5b8535945060208601359350604086013592506060860135915060808601356148608161555c565b6000815180845260208085019450808401835b83811015614a125781516001600160a01b0316875295820195908201906001016149ed565b509495945050505050565b60609390931b6bffffffffffffffffffffffff19168352600291820b60e890811b6014850152910b901b6017820152601a0190565b60008251614a64818460208701615442565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03948516815292151560208401526040830191909152909116606082015260a06080820181905260009082015260c00190565b6001600160a01b03949094168452600292830b6020850152910b60408301526001600160801b0316606082015260a06080820181905260009082015260c00190565b6001600160a01b03959095168552600293840b60208601529190920b60408401526001600160801b03918216606084015216608082015260a00190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60029190910b815260200190565b600293840b81529190920b60208201526001600160801b03909116604082015260600190565b60029490940b845260208401929092526040830152606082015260800190565b6000602082528251806020840152614bff816040850160208701615442565b601f01601f19169190910160400192915050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252600a908201526930b6b7bab73a1826b4b760b11b604082015260600190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b602080825260029082015261746f60f01b604082015260600190565b6020808252601590820152743a34b1b5a637bbb2b9101e103a34b1b5aab83832b960591b604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526017908201527f7469636b4c6f7765722025207469636b53706163696e67000000000000000000604082015260600190565b6020808252600d908201526c7377617070656453686172657360981b604082015260600190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b60208082526017908201527f7469636b55707065722025207469636b53706163696e67000000000000000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6020808252600890820152673134b22ab83832b960c11b604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b6020808252818101527f616d6f756e743044657369726564206f7220616d6f756e743144657369726564604082015260600190565b60208082526011908201527070656e64696e67476f7665726e616e636560781b604082015260600190565b602080825260129082015271616d6f756e7430206f7220616d6f756e743160701b604082015260600190565b6020808252600b908201526a70726f746f636f6c46656560a81b604082015260600190565b6020808252600590820152643a37b5b2b760d91b604082015260600190565b6020808252601b908201527f61746c65617374206f6e6520746f6b656e206973206e65656465640000000000604082015260600190565b6020808252600c908201526b29b430b93832a5b2b2b832b960a11b604082015260600190565b6020808252600a9082015269676f7665726e616e636560b01b604082015260600190565b60208082526006908201526573686172657360d01b604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526005908201526463726f737360d81b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252600a908201526930b6b7bab73a18a6b4b760b11b604082015260600190565b60208082526008908201526730b9b5a637bbb2b960c11b604082015260600190565b6020808252601190820152707469636b4c6f77657220746f6f206c6f7760781b604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601290820152710e8d2c6d6aae0e0cae440e8dede40d0d2ced60731b604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252600e908201526d6d6178546f74616c537570706c7960901b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b600083825260406020830152613e6e60408301846149da565b600086825285602083015260a0604083015261534e60a08301866149da565b6001600160a01b0394909416606083015250608001529392505050565b918252602082015260400190565b9283526020830191909152604082015260600190565b93845260208401929092526040830152606082015260800190565b60ff91909116815260200190565b600082198211156153cb576153cb61551a565b500190565b6000826153df576153df615530565b500490565b60008160001904831182151516156153fe576153fe61551a565b500290565b60006001600160a01b03838116908316818110156154235761542361551a565b039392505050565b60008282101561543d5761543d61551a565b500390565b60005b8381101561545d578181015183820152602001615445565b838111156125c65750506000910152565b60028104600182168061548257607f821691505b602082108114156154a357634e487b7160e01b600052602260045260246000fd5b50919050565b60008260020b806154bc576154bc615530565b808360020b0791505092915050565b6000826154da576154da615530565b500690565b60008160020b627fffff198114156154f9576154f961551a565b9003919050565b6000600160ff1b8214156155165761551661551a565b0390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461557157600080fd5b50565b8060020b811461557157600080fd5b6001600160801b038116811461557157600080fdfea2646970667358221220e6a343465329ac8503a2ba9768ab8f60bd2eeff7a428619350580678cc210d2c64736f6c63430008000033000000000000000000000000dac8a8e6dbf8c690ec6815e0ff03491b2770255d000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff0000000000000000000000000000000000000000000000000000000000001388000000000000000000000000000000000000000000000000000000012a05f200