0 txs
524 calls
constructor
No constructor.
functions
accruedManagerFees0
viewfunction accruedManagerFees0() view returns (uint256)
accruedManagerFees1
viewfunction accruedManagerFees1() view returns (uint256)
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)
baseThreshold
viewfunction baseThreshold() view returns (int24)
baseUpper
viewfunction baseUpper() view returns (int24)
checkCanRebalance
viewfunction checkCanRebalance() view
decimals
viewfunction decimals() view returns (uint8)
factory
viewfunction factory() view returns (address)
fullLower
viewfunction fullLower() view returns (int24)
fullRangeWeight
viewfunction fullRangeWeight() view returns (uint24)
fullUpper
viewfunction fullUpper() view returns (int24)
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)
getTwap
viewfunction getTwap() view returns (int24)
lastTick
viewfunction lastTick() view returns (int24)
lastTimestamp
viewfunction lastTimestamp() view returns (uint256)
limitLower
viewfunction limitLower() view returns (int24)
limitThreshold
viewfunction limitThreshold() view returns (int24)
limitUpper
viewfunction limitUpper() view returns (int24)
manager
viewfunction manager() view returns (address)
managerFee
viewfunction managerFee() view returns (uint24)
maxTotalSupply
viewfunction maxTotalSupply() view returns (uint256)
maxTwapDeviation
viewfunction maxTwapDeviation() view returns (int24)
MINIMUM_LIQUIDITY
viewfunction MINIMUM_LIQUIDITY() view returns (uint256)
minTickMove
viewfunction minTickMove() view returns (int24)
name
viewfunction name() view returns (string)
pendingManager
viewfunction pendingManager() view returns (address)
pendingManagerFee
viewfunction pendingManagerFee() view returns (uint24)
period
viewfunction period() view returns (uint32)
pool
viewfunction pool() view returns (address)
protocolFee
viewfunction protocolFee() view returns (uint24)
rebalanceDelegate
viewfunction rebalanceDelegate() view returns (address)
symbol
viewfunction symbol() view returns (string)
tickSpacing
viewfunction tickSpacing() view returns (int24)
token0
viewfunction token0() view returns (address)
token1
viewfunction token1() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
twapDuration
viewfunction twapDuration() view returns (uint32)
acceptManager
nonpayablefunction acceptManager()
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
collectManager
nonpayablefunction collectManager(address to)
collectProtocol
nonpayablefunction collectProtocol(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)
initialize
nonpayablefunction initialize(tuple _params, address _factory)
rebalance
nonpayablefunction rebalance()
setBaseThreshold
nonpayablefunction setBaseThreshold(int24 _baseThreshold)
setFullRangeWeight
nonpayablefunction setFullRangeWeight(uint24 _fullRangeWeight)
setLimitThreshold
nonpayablefunction setLimitThreshold(int24 _limitThreshold)
setManager
nonpayablefunction setManager(address _manager)
setManagerFee
nonpayablefunction setManagerFee(uint24 _pendingManagerFee)
setMaxTotalSupply
nonpayablefunction setMaxTotalSupply(uint256 _maxTotalSupply)
setMaxTwapDeviation
nonpayablefunction setMaxTwapDeviation(int24 _maxTwapDeviation)
setMinTickMove
nonpayablefunction setMinTickMove(int24 _minTickMove)
setPeriod
nonpayablefunction setPeriod(uint32 _period)
setRebalanceDelegate
nonpayablefunction setRebalanceDelegate(address _rebalanceDelegate)
setTwapDuration
nonpayablefunction setTwapDuration(uint32 _twapDuration)
sweep
nonpayablefunction sweep(address token, uint256 amount, address to)
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, 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, uint256 feesToManager0, uint256 feesToManager1)
CollectManager
event CollectManager(uint256 amount0, uint256 amount1)
CollectProtocol
event CollectProtocol(uint256 amount0, uint256 amount1)
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)
UpdateBaseThreshold
event UpdateBaseThreshold(int24 threshold)
UpdateFullRangeWeight
event UpdateFullRangeWeight(uint24 weight)
UpdateLimitThreshold
event UpdateLimitThreshold(int24 threshold)
UpdateManager
event UpdateManager(address manager)
UpdateManagerFee
event UpdateManagerFee(uint24 managerFee)
UpdateMaxTotalSupply
event UpdateMaxTotalSupply(uint256 maxTotalSupply)
UpdateMaxTwapDeviation
event UpdateMaxTwapDeviation(int24 maxTwapDeviation)
UpdateMinTickMove
event UpdateMinTickMove(int24 minTickMove)
UpdatePendingManager
event UpdatePendingManager(address manager)
UpdatePeriod
event UpdatePeriod(uint32 period)
UpdateRebalanceDelegate
event UpdateRebalanceDelegate(address delegate)
UpdateTwapDuration
event UpdateTwapDuration(uint32 twapDuration)
Withdraw
event Withdraw(address indexed sender, address indexed to, uint256 shares, uint256 amount0, uint256 amount1)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50615b4080620000216000396000f3fe608060405234801561001057600080fd5b506004361061041d5760003560e01c806395d89b411161022b578063d0c93a7c11610130578063eae989a2116100b8578063f4005cae11610087578063f4005cae146107ca578063f8d01c9d146107dd578063fa082743146107f0578063fa461e33146107f8578063fa9430e11461080b5761041d565b8063eae989a2146107aa578063ebaf2d3b146107b2578063ecb5468e146107ba578063ef78d4fd146107c25761041d565b8063d3487997116100ff578063d348799714610761578063dc2c256f14610774578063dd62ed3e14610787578063e4d2b8aa1461079a578063e7c7cb91146107a25761041d565b8063d0c93a7c1461072b578063d0ebdbe714610733578063d21220a714610746578063d331bef71461074e5761041d565b8063abbffcb9116101b3578063ba9a7a5611610182578063ba9a7a56146106ed578063c0aeff9f146106f5578063c433c80a14610708578063c45a01551461071b578063c4a7761e146107235761041d565b8063abbffcb9146106ac578063af794480146106bf578063b0e21e8a146106d2578063b8ec2d38146106da5761041d565b8063a457c2d7116101fa578063a457c2d71461064a578063a63293551461065d578063a87bab9c14610670578063a9059cbb14610678578063a91ef6eb1461068b5761041d565b806395d89b411461062a5780639c7632fc14610632578063a00fa77f1461063a578063a00fff6f146106425761041d565b80633dfa5d8711610331578063629d9405116102b957806371bd0ea71161028857806371bd0ea7146105f75780637d7c2a1c146105ff578063846fdf6014610607578063854360ef1461061a578063888a9134146106225761041d565b8063629d9405146105bf5780636c395821146105c75780636f00b077146105cf57806370a08231146105e45761041d565b806348ff15b31161030057806348ff15b31461059757806351e87af71461059f5780635d752a9a146105a75780635da07868146105af57806360e1592a146105b75761041d565b80633dfa5d871461056c5780633f3e4c111461057457806341aec53814610587578063481c6a751461058f5761041d565b806319d8ac61116103b45780632ab4d052116103835780632ab4d05214610507578063313ce5671461050f578063365d0ed71461052457806339509351146105465780633cbff3fe146105595761041d565b806319d8ac61146104c45780631d769828146104cc57806323b872dd146104df57806326d89545146104f25761041d565b806316947fec116103f057806316947fec1461048a57806316c3e29d1461049f57806316f0115b146104a757806318160ddd146104af5761041d565b806306fdde0314610422578063095ea7b3146104405780630dfe1681146104605780630f35bcac14610475575b600080fd5b61042a61081e565b60405161043791906153ef565b60405180910390f35b61045361044e366004614cc3565b6108b4565b6040516104379190615387565b6104686108d2565b60405161043791906152aa565b61047d6108e1565b604051610437919061539b565b61049d610498366004615187565b6108f1565b005b61047d6109a3565b6104686109b3565b6104b76109c2565b6040516104379190615392565b6104b76109c8565b61049d6104da366004614c13565b6109ce565b6104536104ed366004614c83565b610b0e565b6104fa610b96565b604051610437919061587c565b6104b7610ba2565b610517610ba8565b604051610437919061588d565b610537610532366004615252565b610bb1565b6040516104379392919061583e565b610453610554366004614cc3565b610e43565b61049d610567366004614df7565b610e91565b61047d610f2f565b61049d6105823660046151bf565b610f3f565b6104b7610f9e565b61046861103c565b61049d61104b565b61047d6110c2565b61047d6110d2565b61046861121a565b6104b7611229565b6104b761122f565b61047d611272565b6105d7611282565b6040516104379190615820565b6104b76105f2366004614c13565b611294565b61049d6112b3565b61049d611504565b61049d610615366004615187565b611a75565b61047d611b13565b61047d611b23565b61042a611b33565b6105d7611b94565b6104b7611ba6565b610468611bac565b610453610658366004614cc3565b611bbb565b61049d61066b366004614df7565b611c23565b61047d611cb5565b610453610686366004614cc3565b611cc5565b61069e610699366004614e2f565b611cd9565b604051610437929190615830565b61049d6106ba366004614e5c565b611d8a565b61049d6106cd366004614df7565b611ed2565b6105d7611f64565b61049d6106e8366004615290565b611f76565b6104b7611fe5565b61049d610703366004614eec565b611feb565b61049d610716366004615290565b61259e565b610468612633565b61069e612642565b61047d612705565b61049d610741366004614c13565b612715565b61046861278a565b61069e61075c366004615212565b612799565b61049d61076f366004614e9b565b612a23565b61049d610782366004614db6565b612a7a565b6104b7610795366004614c4b565b612b00565b6105d7612b2b565b61047d612b3d565b6104b7612b4d565b61047d612b53565b6104b7612b63565b6104fa612b69565b61049d6107d8366004614df7565b612b75565b61049d6107eb366004614c13565b612c13565b61047d612c88565b61049d610806366004614e9b565b612c98565b61049d610819366004614c13565b612cef565b60368054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108aa5780601f1061087f576101008083540402835291602001916108aa565b820191906000526020600020905b81548152906001019060200180831161088d57829003601f168201915b5050505050905090565b60006108c86108c1612d96565b8484612d9a565b5060015b92915050565b6098546001600160a01b031681565b60a554600160981b900460020b81565b609b546001600160a01b031633146109245760405162461bcd60e51b815260040161091b90615519565b60405180910390fd5b62030d408162ffffff16111561094c5760405162461bcd60e51b815260040161091b906157e9565b60a4805462ffffff60501b1916600160501b62ffffff8416021790556040517f218e2de5d78d8a72c25f717811481b5563d21963b758fddb0643d18fa38c7a6790610998908390615820565b60405180910390a150565b60a454600160981b900460020b81565b6097546001600160a01b031681565b60355490565b60a35481565b609a60009054906101000a90046001600160a01b03166001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b158015610a1c57600080fd5b505afa158015610a30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a549190614c2f565b6001600160a01b0316336001600160a01b031614610a845760405162461bcd60e51b815260040161091b9061571e565b609f805460a08054600093849055929055908115610ab357609854610ab3906001600160a01b03168484612e86565b8015610ad057609954610ad0906001600160a01b03168483612e86565b7fd63986ca13f11502796aee70ba80ac7317d99f08e5871fd9fd602a2764c7ef308282604051610b01929190615830565b60405180910390a1505050565b6000610b1b848484612ed8565b610b8b84610b27612d96565b610b8685604051806060016040528060288152602001615a2a602891396001600160a01b038a16600090815260346020526040812090610b65612d96565b6001600160a01b031681526020810191909152604001600020549190613035565b612d9a565b5060015b9392505050565b60a55463ffffffff1681565b609e5481565b60385460ff1690565b600080600060026065541415610c0e576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260655587151580610c215750600087115b610c3d5760405162461bcd60e51b815260040161091b90615683565b6001600160a01b03841615801590610c5e57506001600160a01b0384163014155b610c7a5760405162461bcd60e51b815260040161091b906154fd565b60a554610c9c90600160201b8104600290810b91600160381b9004900b6130cc565b60a554610cbe90600160501b8104600290810b91600160681b9004900b6130cc565b60a554610ce090600160801b8104600290810b91600160981b9004900b6130cc565b610cea8888613176565b9194509250905082610d0e5760405162461bcd60e51b815260040161091b90615742565b85821015610d2e5760405162461bcd60e51b815260040161091b90615495565b84811015610d4e5760405162461bcd60e51b815260040161091b90615781565b610d566109c2565b610d7257609a54610d72906001600160a01b03166103e86132a6565b8115610d9057609854610d90906001600160a01b0316333085613398565b8015610dae57609954610dae906001600160a01b0316333084613398565b610db884846132a6565b836001600160a01b0316336001600160a01b03167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f6858585604051610dff9392919061583e565b60405180910390a3609e54610e126109c2565b1115610e305760405162461bcd60e51b815260040161091b906157c1565b6001606581905550955095509592505050565b60006108c8610e50612d96565b84610b868560346000610e61612d96565b6001600160a01b03908116825260208083019390935260409182016000908120918c1681529252902054906133f2565b609b546001600160a01b03163314610ebb5760405162461bcd60e51b815260040161091b90615519565b60008160020b1215610edf5760405162461bcd60e51b815260040161091b9061559d565b60a4805462ffffff60e01b1916600160e01b62ffffff600285900b16021790556040517f957dddabc1ac2b52bf67ebbe53150c1b46f57ec0e1dc487632d5bcc3a36a2d829061099890839061539b565b60a554600160b01b900460020b81565b609b546001600160a01b03163314610f695760405162461bcd60e51b815260040161091b90615519565b609e8190556040517f49e8da6bc2b1ffc75cb81c88d1a8e64d5b1224c626dc9be8787d6ff982b46a3990610998908390615392565b60a25460a0546099546040516370a0823160e01b8152600093611037939092611031926001600160a01b03909116906370a0823190610fe19030906004016152aa565b60206040518083038186803b158015610ff957600080fd5b505afa15801561100d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103191906151d7565b9061344c565b905090565b609b546001600160a01b031681565b609c546001600160a01b031633146110755760405162461bcd60e51b815260040161091b906154b9565b609b80546001600160a01b031916339081179091556040517f5c18ab5c697b63d102fc7e14c77bfaef0f1013206eca139920fd389277814e09916110b8916152aa565b60405180910390a1565b60a554600160801b900460020b81565b60a55460408051600280825260608201835260009363ffffffff169284929190602083019080368337019050509050818160008151811061110f57fe5b602002602001019063ffffffff16908163ffffffff168152505060008160018151811061113857fe5b63ffffffff9092166020928302919091019091015260975460405163883bdbfd60e01b81526000916001600160a01b03169063883bdbfd9061117e90859060040161533d565b60006040518083038186803b15801561119657600080fd5b505afa1580156111aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111d29190810190614cee565b5090508263ffffffff16816000815181106111e957fe5b6020026020010151826001815181106111fe57fe5b60200260200101510360060b8161121157fe5b05935050505090565b609d546001600160a01b031681565b60a25481565b60a154609f546098546040516370a0823160e01b8152600093611037939092611031926001600160a01b03909116906370a0823190610fe19030906004016152aa565b60a554600160381b900460020b81565b60a454600160681b900462ffffff1681565b6001600160a01b0381166000908152603360205260409020545b919050565b60a35460a4546112ce90829063ffffffff908116906133f216565b4210156112ed5760405162461bcd60e51b815260040161091b906154e1565b60975460408051633850c7bd60e01b815290516000926001600160a01b031691633850c7bd9160048083019260e0929190829003018186803b15801561133257600080fd5b505afa158015611346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136a91906150ed565b5050505050915050600060a560169054906101000a900460020b60020b8260020b136113a55760a554600160b01b900460020b8290036113b5565b60a554600160b01b900460020b82035b90508215806113d7575060a454600160b01b9004600290810b810b9082900b12155b6113f35760405162461bcd60e51b815260040161091b90615442565b60006113fd6110d2565b905060008160020b8460020b136114165783820361141a565b8184035b905060a4601c9054906101000a900460020b60020b8160020b13156114515760405162461bcd60e51b815260040161091b90615702565b60a454600090600160981b8104600290810b810b600160801b909204810b900b136114885760a454600160981b900460020b611496565b60a454600160801b900460020b5b905060a460199054906101000a900460020b81620d89e719010160020b8560020b121580156114e0575060a454600160c81b9004600290810b620d89e883900303810b9086900b13155b6114fc5760405162461bcd60e51b815260040161091b906157a5565b505050505050565b6002606554141561155c576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026065556115696112b3565b609d546001600160a01b0316156115b957609b546001600160a01b031633148061159d5750609d546001600160a01b031633145b6115b95760405162461bcd60e51b815260040161091b906156d7565b60a554600160201b8104600290810b91600160381b9004900b60006115de83836134a9565b505060a55492935060009261160b9250600160501b8104600290810b9250600160681b909104900b6134a9565b505060a5549293506000926116389250600160801b8104600290810b9250600160981b909104900b6134a9565b505050509050611649858585613552565b505060a5546116719250600160501b8104600290810b9250600160681b909104900b84613552565b505060a5546116999250600160801b8104600290810b9250600160981b909104900b83613552565b505060975460408051633850c7bd60e01b81529051600097506001600160a01b039092169550633850c7bd94506004808201945060e0935090829003018186803b1580156116e657600080fd5b505afa1580156116fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171e91906150ed565b50505050509150506000611731826137db565b60a454909150600160c81b8104600290810b830191600160801b8104820b8085039290840191600160981b9004900b80850390859085908101600061177461122f565b90506000611780610f9e565b90507f210f60adf1db7a02e9db9a49ec7c2eb2060c516cbcfd01a0c05288144738ee5d8b83836117ae6109c2565b6040516117be94939291906153cf565b60405180910390a160006117d48e8e858561384e565b60a4549091506000906118159061181090620f42409061180a906001600160801b03871690600160681b900462ffffff16613906565b9061395f565b6139c6565b90506118228f8f836139dd565b505061182c61122f565b9150611836610f9e565b905060006118468989858561384e565b90506118538989836139dd565b5060a5805460028a810b62ffffff908116600160501b0262ffffff60501b19928c900b909116600160681b0262ffffff60681b19909316929092171617905561189a61122f565b91506118a4610f9e565b905060006118b48787858561384e565b905060006118c48686868661384e565b9050806001600160801b0316826001600160801b0316111561192e576118eb8888846139dd565b60a5805460028a810b62ffffff908116600160801b0262ffffff60801b19928c900b909116600160981b0262ffffff60981b199093169290921716179055611978565b6119398686836139dd565b60a58054600288810b62ffffff908116600160801b0262ffffff60801b19928a900b909116600160981b0262ffffff60981b1990931692909217161790555b4260a35560a5805460028f900b62ffffff16600160b01b0262ffffff60b01b19909116179055609a54604080516358710f4560e11b815290516001600160a01b039092169163b0e21e8a91600480820192602092909190829003018186803b1580156119e357600080fd5b505afa1580156119f7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1b91906151a3565b60a4805469ffffff000000000000001966ffffff0000000019909116600160201b62ffffff9485160217908116600160501b909104909216600160381b029190911790555050600160655550505050505050505050505050565b609b546001600160a01b03163314611a9f5760405162461bcd60e51b815260040161091b90615519565b620f42408162ffffff161115611ac75760405162461bcd60e51b815260040161091b9061561d565b60a4805462ffffff60681b1916600160681b62ffffff8416021790556040517f4bc6c62e4a5f6773e54d33316555e789b37ac3b4758897c87c705c5d55fdd88190610998908390615820565b60a454600160b01b900460020b81565b60a554600160681b900460020b81565b60378054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108aa5780601f1061087f576101008083540402835291602001916108aa565b60a454600160381b900462ffffff1681565b60a05481565b609c546001600160a01b031681565b60006108c8611bc8612d96565b84610b8685604051806060016040528060258152602001615ae66025913960346000611bf2612d96565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190613035565b609b546001600160a01b03163314611c4d5760405162461bcd60e51b815260040161091b90615519565b60a454611c65908290600160c81b900460020b613a22565b60a4805462ffffff60801b1916600160801b62ffffff600285900b16021790556040517ff1759909677b9c42577caba6b12efd5bcf3a398d02a2c1c97d23bbd312b561a79061099890839061539b565b60a454600160801b900460020b81565b60006108c8611cd2612d96565b8484612ed8565b6000806000806000611ceb87876134a9565b9450945050509250611cfe878785613aa0565b60a4549196509450600090611d319062ffffff600160381b820481169161103191620f424091600160201b90041661344c565b9050611d57611d50620f424061180a6001600160801b03871685613906565b87906133f2565b9550611d7d611d76620f424061180a6001600160801b03861685613906565b86906133f2565b9450505050509250929050565b609b546001600160a01b03163314611db45760405162461bcd60e51b815260040161091b90615519565b60975460405163a34123a760e01b81526001600160a01b039091169063a34123a790611de8908690869086906004016153a9565b6040805180830381600087803b158015611e0157600080fd5b505af1158015611e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3991906151ef565b50506097546040516309e3d67b60e31b81526001600160a01b0390911690634f1eb3d890611e7a903090879087906001600160801b03908190600401615300565b6040805180830381600087803b158015611e9357600080fd5b505af1158015611ea7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecb919061505e565b5050505050565b609b546001600160a01b03163314611efc5760405162461bcd60e51b815260040161091b90615519565b60a454611f14908290600160c81b900460020b613a22565b60a4805462ffffff60981b1916600160981b62ffffff600285900b16021790556040517fc797ac22933a04255304effee6a7d3c3e4bbfaa0b2897c52c61a8b1fb027b9f29061099890839061539b565b60a454600160201b900462ffffff1681565b609b546001600160a01b03163314611fa05760405162461bcd60e51b815260040161091b90615519565b60a4805463ffffffff191663ffffffff83161790556040517fa55d4ed589bc280e365d3ff1dc7fe4f59dff2d75e22716e29d6a9158fe0598469061099890839061587c565b6103e881565b600054610100900460ff16806120045750612004613b5c565b80612012575060005460ff16155b61204d5760405162461bcd60e51b815260040180806020018281038252602e8152602001806159db602e913960400191505060405180910390fd5b600054610100900460ff16158015612078576000805460ff1961ff0019909116610100171660011790555b61208c836101800151846101a00151613b6d565b612094613c22565b8251609780546001600160a01b0319166001600160a01b03928316179081905560408051630dfe168160e01b815290519190921691630dfe1681916004808301926020929190829003018186803b1580156120ee57600080fd5b505afa158015612102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121269190614c2f565b609880546001600160a01b0319166001600160a01b039283161790556097546040805163d21220a760e01b81529051919092169163d21220a7916004808301926020929190829003018186803b15801561217f57600080fd5b505afa158015612193573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b79190614c2f565b609980546001600160a01b0319166001600160a01b03928316179055609754604080516334324e9f60e21b81529051600093929092169163d0c93a7c91600480820192602092909190829003018186803b15801561221457600080fd5b505afa158015612228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224c9190614e13565b90508060a460196101000a81548162ffffff021916908360020b62ffffff1602179055508360200151609b60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508360600151609d60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550836040015160a4600a6101000a81548162ffffff021916908362ffffff1602179055508360800151609e819055508360a0015160a460106101000a81548162ffffff021916908360020b62ffffff1602179055508360c0015160a460136101000a81548162ffffff021916908360020b62ffffff1602179055508360e0015160a4600d6101000a81548162ffffff021916908362ffffff16021790555083610100015160a460006101000a81548163ffffffff021916908363ffffffff16021790555083610120015160a460166101000a81548162ffffff021916908360020b62ffffff16021790555083610140015160a4601c6101000a81548162ffffff021916908360020b62ffffff16021790555083610160015160a560006101000a81548163ffffffff021916908363ffffffff16021790555082609a60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550808160020b620d89e71960020b8161243857fe5b050260a560046101000a81548162ffffff021916908360020b62ffffff160217905550808160020b620d89e71960000360020b8161247257fe5b050260a560076101000a81548162ffffff021916908360020b62ffffff1602179055506124a38460a0015182613a22565b6124b18460c0015182613a22565b620f42408460e0015162ffffff1611156124dd5760405162461bcd60e51b815260040161091b9061561d565b600084610120015160020b12156125065760405162461bcd60e51b815260040161091b9061553a565b600084610140015160020b121561252f5760405162461bcd60e51b815260040161091b9061559d565b600084610160015163ffffffff161161255a5760405162461bcd60e51b815260040161091b9061545e565b62030d40846040015162ffffff1611156125865760405162461bcd60e51b815260040161091b906157e9565b508015612599576000805461ff00191690555b505050565b609b546001600160a01b031633146125c85760405162461bcd60e51b815260040161091b90615519565b60008163ffffffff16116125ee5760405162461bcd60e51b815260040161091b9061545e565b60a5805463ffffffff191663ffffffff83161790556040517f2402faf0100aca3dc010189fd1fb0e310ab05da61ce9a65457e0fe7018e920d99061099890839061587c565b609a546001600160a01b031681565b60a55460009081908190819061266d90600160201b8104600290810b91600160381b9004900b611cd9565b60a5549193509150600090819061269990600160501b8104600290810b91600160681b9004900b611cd9565b60a554919350915060009081906126c590600160801b8104600290810b91600160981b9004900b611cd9565b915091506126e3826126dd866126dd8a6126dd61122f565b906133f2565b97506126f9816126dd856126dd896126dd610f9e565b96505050505050509091565b60a454600160c81b900460020b81565b609b546001600160a01b0316331461273f5760405162461bcd60e51b815260040161091b90615519565b609c80546001600160a01b0319166001600160a01b0383161790556040517f4d3334a0a69f5f1c54636cf743914f0b34fb2e7849b55ee7c1faddd0e06b4dfd906109989083906152aa565b6099546001600160a01b031681565b600080600260655414156127f4576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002606555856128165760405162461bcd60e51b815260040161091b90615742565b6001600160a01b0383161580159061283757506001600160a01b0383163014155b6128535760405162461bcd60e51b815260040161091b906154fd565b600061285d6109c2565b90506128693388613ccc565b61287f8161180a8961287961122f565b90613906565b92506128918161180a89612879610f9e565b60a55490925060009081906128bd90600160201b8104600290810b91600160381b9004900b8b86613dc8565b60a554919350915060009081906128eb90600160501b8104600290810b91600160681b9004900b8d88613dc8565b60a5549193509150600090819061291990600160801b8104600290810b91600160981b9004900b8f8a613dc8565b909250905061292e826126dd86818d8b6133f2565b9850612940816126dd85818c8a6133f2565b97508b8910156129625760405162461bcd60e51b815260040161091b90615495565b8a8810156129825760405162461bcd60e51b815260040161091b90615781565b881561299f5760985461299f906001600160a01b03168b8b612e86565b87156129bc576099546129bc906001600160a01b03168b8a612e86565b896001600160a01b0316336001600160a01b03167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8f8c8c604051612a039392919061583e565b60405180910390a350505050505050600160658190555094509492505050565b6097546001600160a01b03163314612a3a57600080fd5b8315612a5757609854612a57906001600160a01b03163386612e86565b8215612a7457609954612a74906001600160a01b03163385612e86565b50505050565b609b546001600160a01b03163314612aa45760405162461bcd60e51b815260040161091b90615519565b6098546001600160a01b03848116911614801590612ad057506099546001600160a01b03848116911614155b612aec5760405162461bcd60e51b815260040161091b906156b8565b6125996001600160a01b0384168284612e86565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b60a454600160501b900462ffffff1681565b60a454600160e01b900460020b81565b609f5481565b60a554600160201b900460020b81565b60a15481565b60a45463ffffffff1681565b609b546001600160a01b03163314612b9f5760405162461bcd60e51b815260040161091b90615519565b60008160020b1215612bc35760405162461bcd60e51b815260040161091b9061553a565b60a4805462ffffff60b01b1916600160b01b62ffffff600285900b16021790556040517f52a3cbe96b59de1055b9b043e8906557387b821f26af47beea677164a7f26b629061099890839061539b565b609b546001600160a01b03163314612c3d5760405162461bcd60e51b815260040161091b90615519565b609d80546001600160a01b0319166001600160a01b0383161790556040517f02d71f3b54d658df30617ce7b33fa5f9835dd21a1da2a6dce6368dc9e5a40a97906109989083906152aa565b60a554600160501b900460020b81565b6097546001600160a01b03163314612caf57600080fd5b6000841315612ccf57609854612ccf906001600160a01b03163386612e86565b6000831315612a7457609954612a74906001600160a01b03163385612e86565b609b546001600160a01b03163314612d195760405162461bcd60e51b815260040161091b90615519565b60a1805460a28054600093849055929055908115612d4857609854612d48906001600160a01b03168484612e86565b8015612d6557609954612d65906001600160a01b03168483612e86565b7f17f6807ba08fcbc6bc82aff717379b30802e04cff0756017bf22b2a490d0ab658282604051610b01929190615830565b3390565b6001600160a01b038316612ddf5760405162461bcd60e51b8152600401808060200182810382526024815260200180615a986024913960400191505060405180910390fd5b6001600160a01b038216612e245760405162461bcd60e51b815260040180806020018281038252602281526020018061596d6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260346020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612599908490613e6e565b6001600160a01b038316612f1d5760405162461bcd60e51b8152600401808060200182810382526025815260200180615a736025913960400191505060405180910390fd5b6001600160a01b038216612f625760405162461bcd60e51b81526004018080602001828103825260238152602001806159286023913960400191505060405180910390fd5b612f6d838383612599565b612faa8160405180606001604052806026815260200161598f602691396001600160a01b0386166000908152603360205260409020549190613035565b6001600160a01b038085166000908152603360205260408082209390935590841681522054612fd990826133f2565b6001600160a01b0380841660008181526033602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156130c45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613089578181015183820152602001613071565b50505050905090810190601f1680156130b65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60006130d883836134a9565b5050505090506000816001600160801b031611156125995760975460405163a34123a760e01b81526001600160a01b039091169063a34123a79061312590869086906000906004016153a9565b6040805180830381600087803b15801561313e57600080fd5b505af1158015613152573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecb91906151ef565b6000806000806131846109c2565b9050600080613191612642565b9150915082600014806131a45750600082115b806131af5750600081115b6131b557fe5b826131e1578794508693506131da6103e88587116131d35785611031565b869061344c565b955061329c565b816131f7578693506131da8161180a8686613906565b8061320d578794506131da8261180a8786613906565b60006132198983613906565b905060006132278985613906565b90506000818311613238578261323a565b815b90506000811161325c5760405162461bcd60e51b815260040161091b90615762565b61326f60016126dd8661180a858461344c565b975061328460016126dd8761180a858461344c565b96506132968461180a8781858b613906565b98505050505b5050509250925092565b6001600160a01b038216613301576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61330d60008383612599565b60355461331a90826133f2565b6035556001600160a01b03821660009081526033602052604090205461334090826133f2565b6001600160a01b03831660008181526033602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052612a74908590613e6e565b600082820183811015610b8f576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000828211156134a3576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000806000806000806134bd308989613f1f565b60975460405163514ea4bf60e01b81529192506001600160a01b03169063514ea4bf906134ee908490600401615392565b60a06040518083038186803b15801561350657600080fd5b505afa15801561351a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061353e919061508c565b939c929b5090995097509095509350505050565b60008080806001600160801b038516156135f15760975460405163a34123a760e01b81526001600160a01b039091169063a34123a79061359a908a908a908a906004016153a9565b6040805180830381600087803b1580156135b357600080fd5b505af11580156135c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135eb91906151ef565b90945092505b6097546040516309e3d67b60e31b815260009182916001600160a01b0390911690634f1eb3d8906136359030908d908d906001600160801b03908190600401615300565b6040805180830381600087803b15801561364e57600080fd5b505af1158015613662573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613686919061505e565b6001600160801b0391821693501690506136a0828761344c565b93506136ac818661344c565b60a454909350600160201b900462ffffff1660006136d1620f424061180a8885613906565b905060006136e6620f424061180a8886613906565b609f549091506136f690836133f2565b609f5560a05461370690826133f2565b60a05560a454600160381b900462ffffff16600080821561376957613732620f424061180a8c86613906565b9150613745620f424061180a8b86613906565b60a15490915061375590836133f2565b60a15560a25461376590826133f2565b60a2555b613777826110318c8861344c565b9950613787816110318b8761344c565b98507f3d6c49c42d0f03a60a09b6137b84abbd7a0bf738324602cb48343f830e3db4708a8a878786866040516137c296959493929190615854565b60405180910390a1505050505050505093509350935093565b60008060a460199054906101000a900460020b60020b8360020b816137fc57fe5b05905060008360020b128015613830575060a454600160c81b9004600290810b810b9084900b8161382957fe5b0760020b15155b1561383a57600019015b60a454600160c81b900460020b0292915050565b600080609760009054906101000a90046001600160a01b03166001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561389f57600080fd5b505afa1580156138b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138d791906150ed565b50505050505090506138fc816138ec88613f75565b6138f588613f75565b87876142a6565b9695505050505050565b600082613915575060006108cc565b8282028284828161392257fe5b0414610b8f5760405162461bcd60e51b8152600401808060200182810382526021815260200180615a096021913960400191505060405180910390fd5b60008082116139b5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816139be57fe5b049392505050565b60006001600160801b038211156139d957fe5b5090565b6001600160801b0381161561259957609754604051633c8a7d8d60e01b81526001600160a01b0390911690633c8a7d8d906131259030908790879087906004016152be565b60008260020b13613a455760405162461bcd60e51b815260040161091b90615654565b620d89e8600283900b1315613a6c5760405162461bcd60e51b815260040161091b90615571565b8060020b8260020b81613a7b57fe5b0760020b15613a9c5760405162461bcd60e51b815260040161091b906155d4565b5050565b6000806000609760009054906101000a90046001600160a01b03166001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015613af357600080fd5b505afa158015613b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b2b91906150ed565b5050505050509050613b4f81613b4088613f75565b613b4988613f75565b8761436a565b9250925050935093915050565b6000613b6730614406565b15905090565b600054610100900460ff1680613b865750613b86613b5c565b80613b94575060005460ff16155b613bcf5760405162461bcd60e51b815260040180806020018281038252602e8152602001806159db602e913960400191505060405180910390fd5b600054610100900460ff16158015613bfa576000805460ff1961ff0019909116610100171660011790555b613c0261440c565b613c0c83836144ac565b8015612599576000805461ff0019169055505050565b600054610100900460ff1680613c3b5750613c3b613b5c565b80613c49575060005460ff16155b613c845760405162461bcd60e51b815260040180806020018281038252602e8152602001806159db602e913960400191505060405180910390fd5b600054610100900460ff16158015613caf576000805460ff1961ff0019909116610100171660011790555b613cb7614584565b8015613cc9576000805461ff00191690555b50565b6001600160a01b038216613d115760405162461bcd60e51b8152600401808060200182810382526021815260200180615a526021913960400191505060405180910390fd5b613d1d82600083612599565b613d5a8160405180606001604052806022815260200161594b602291396001600160a01b0385166000908152603360205260409020549190613035565b6001600160a01b038316600090815260336020526040902055603554613d80908261344c565b6035556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000806000613dd787876134a9565b5050505090506000613dff8561180a88856001600160801b031661390690919063ffffffff16565b90508015613e6357600080600080613e208c8c613e1b886139c6565b613552565b92965090945092509050613e42613e3b8a61180a858e613906565b85906133f2565b9750613e5c613e558a61180a848e613906565b84906133f2565b9650505050505b505094509492505050565b6000613ec3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661462a9092919063ffffffff16565b80519091501561259957808060200190516020811015613ee257600080fd5b50516125995760405162461bcd60e51b815260040180806020018281038252602a815260200180615abc602a913960400191505060405180910390fd5b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a9093019052815191012090565b60008060008360020b12613f8c578260020b613f94565b8260020b6000035b9050620d89e8811115613fd2576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216613fe657600160801b613ff8565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561402c576ffff97272373d413259a46990580e213a0260801c5b600482161561404b576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561406a576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615614089576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156140a8576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156140c7576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156140e6576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615614106576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615614126576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615614146576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615614166576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615614186576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156141a6576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156141c6576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156141e6576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615614207576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615614227576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615614246576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615614263576b048a170391f7dc42444e8fa20260801c5b60008460020b131561427e57806000198161427a57fe5b0490505b600160201b810615614291576001614294565b60005b60ff16602082901c0192505050919050565b6000836001600160a01b0316856001600160a01b031611156142c6579293925b846001600160a01b0316866001600160a01b0316116142f1576142ea858585614641565b9050614361565b836001600160a01b0316866001600160a01b03161015614353576000614318878686614641565b905060006143278789866146a4565b9050806001600160801b0316826001600160801b031610614348578061434a565b815b92505050614361565b61435e8585846146a4565b90505b95945050505050565b600080836001600160a01b0316856001600160a01b0316111561438b579293925b846001600160a01b0316866001600160a01b0316116143b6576143af8585856146e1565b91506143fd565b836001600160a01b0316866001600160a01b031610156143ef576143db8685856146e1565b91506143e885878561474a565b90506143fd565b6143fa85858561474a565b90505b94509492505050565b3b151590565b600054610100900460ff16806144255750614425613b5c565b80614433575060005460ff16155b61446e5760405162461bcd60e51b815260040180806020018281038252602e8152602001806159db602e913960400191505060405180910390fd5b600054610100900460ff16158015613cb7576000805460ff1961ff0019909116610100171660011790558015613cc9576000805461ff001916905550565b600054610100900460ff16806144c557506144c5613b5c565b806144d3575060005460ff16155b61450e5760405162461bcd60e51b815260040180806020018281038252602e8152602001806159db602e913960400191505060405180910390fd5b600054610100900460ff16158015614539576000805460ff1961ff0019909116610100171660011790555b825161454c906036906020860190614a13565b508151614560906037906020850190614a13565b506038805460ff191660121790558015612599576000805461ff0019169055505050565b600054610100900460ff168061459d575061459d613b5c565b806145ab575060005460ff16155b6145e65760405162461bcd60e51b815260040180806020018281038252602e8152602001806159db602e913960400191505060405180910390fd5b600054610100900460ff16158015614611576000805460ff1961ff0019909116610100171660011790555b60016065558015613cc9576000805461ff001916905550565b6060614639848460008561478d565b949350505050565b6000826001600160a01b0316846001600160a01b03161115614661579192915b6000614684856001600160a01b0316856001600160a01b0316600160601b6148e8565b905061436161469f84838888036001600160a01b03166148e8565b614997565b6000826001600160a01b0316846001600160a01b031611156146c4579192915b61463961469f83600160601b8787036001600160a01b03166148e8565b6000826001600160a01b0316846001600160a01b03161115614701579192915b836001600160a01b031661473a606060ff16846001600160801b0316901b8686036001600160a01b0316866001600160a01b03166148e8565b8161474157fe5b04949350505050565b6000826001600160a01b0316846001600160a01b0316111561476a579192915b614639826001600160801b03168585036001600160a01b0316600160601b6148e8565b6060824710156147ce5760405162461bcd60e51b81526004018080602001828103825260268152602001806159b56026913960400191505060405180910390fd5b6147d785614406565b614828576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600080866001600160a01b031685876040518082805190602001908083835b602083106148665780518252601f199092019160209182019101614847565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146148c8576040519150601f19603f3d011682016040523d82523d6000602084013e6148cd565b606091505b50915091506148dd8282866149ad565b979650505050505050565b600080806000198587098686029250828110908390030390508061491e576000841161491357600080fd5b508290049050610b8f565b80841161492a57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b806001600160801b03811681146112ae57600080fd5b606083156149bc575081610b8f565b8251156149cc5782518084602001fd5b60405162461bcd60e51b8152602060048201818152845160248401528451859391928392604401919085019080838360008315613089578181015183820152602001613071565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282614a495760008555614a8f565b82601f10614a6257805160ff1916838001178555614a8f565b82800160010185558215614a8f579182015b82811115614a8f578251825591602001919060010190614a74565b506139d99291505b808211156139d95760008155600101614a97565b80356112ae816158dd565b600082601f830112614ac6578081fd5b81516020614adb614ad6836158bf565b61589b565b8281528181019085830183850287018401881015614af7578586fd5b855b85811015614b1e578151614b0c816158dd565b84529284019290840190600101614af9565b5090979650505050505050565b60008083601f840112614b3c578182fd5b50813567ffffffffffffffff811115614b53578182fd5b602083019150836020828501011115614b6b57600080fd5b9250929050565b80356112ae816158f2565b600082601f830112614b8d578081fd5b813567ffffffffffffffff811115614ba157fe5b614bb4601f8201601f191660200161589b565b818152846020838601011115614bc8578283fd5b816020850160208301379081016020019190915292915050565b805161ffff811681146112ae57600080fd5b80356112ae81615916565b803563ffffffff811681146112ae57600080fd5b600060208284031215614c24578081fd5b8135610b8f816158dd565b600060208284031215614c40578081fd5b8151610b8f816158dd565b60008060408385031215614c5d578081fd5b8235614c68816158dd565b91506020830135614c78816158dd565b809150509250929050565b600080600060608486031215614c97578081fd5b8335614ca2816158dd565b92506020840135614cb2816158dd565b929592945050506040919091013590565b60008060408385031215614cd5578182fd5b8235614ce0816158dd565b946020939093013593505050565b60008060408385031215614d00578182fd5b825167ffffffffffffffff80821115614d17578384fd5b818501915085601f830112614d2a578384fd5b81516020614d3a614ad6836158bf565b82815281810190858301838502870184018b1015614d56578889fd5b8896505b84871015614d865780518060060b8114614d7257898afd5b835260019690960195918301918301614d5a565b5091880151919650909350505080821115614d9f578283fd5b50614dac85828601614ab6565b9150509250929050565b600080600060608486031215614dca578081fd5b8335614dd5816158dd565b9250602084013591506040840135614dec816158dd565b809150509250925092565b600060208284031215614e08578081fd5b8135610b8f816158f2565b600060208284031215614e24578081fd5b8151610b8f816158f2565b60008060408385031215614e41578182fd5b8235614e4c816158f2565b91506020830135614c78816158f2565b600080600060608486031215614e70578081fd5b8335614e7b816158f2565b92506020840135614e8b816158f2565b91506040840135614dec81615901565b60008060008060608587031215614eb0578182fd5b8435935060208501359250604085013567ffffffffffffffff811115614ed4578283fd5b614ee087828801614b2b565b95989497509550505050565b60008060408385031215614efe578182fd5b823567ffffffffffffffff80821115614f15578384fd5b81850191506101c0808388031215614f2b578485fd5b614f348161589b565b9050614f3f83614aab565b8152614f4d60208401614aab565b6020820152614f5e60408401614bf4565b6040820152614f6f60608401614aab565b606082015260808301356080820152614f8a60a08401614b72565b60a0820152614f9b60c08401614b72565b60c0820152614fac60e08401614bf4565b60e0820152610100614fbf818501614bff565b90820152610120614fd1848201614b72565b90820152610140614fe3848201614b72565b90820152610160614ff5848201614bff565b90820152610180838101358381111561500c578687fd5b61501889828701614b7d565b8284015250506101a08084013583811115615031578687fd5b61503d89828701614b7d565b82840152505080945050505061505560208401614aab565b90509250929050565b60008060408385031215615070578182fd5b825161507b81615901565b6020840151909250614c7881615901565b600080600080600060a086880312156150a3578283fd5b85516150ae81615901565b80955050602086015193506040860151925060608601516150ce81615901565b60808701519092506150df81615901565b809150509295509295909350565b600080600080600080600060e0888a031215615107578485fd5b8751615112816158dd565b6020890151909750615123816158f2565b955061513160408901614be2565b945061513f60608901614be2565b935061514d60808901614be2565b925060a088015160ff81168114615162578283fd5b60c08901519092508015158114615177578182fd5b8091505092959891949750929550565b600060208284031215615198578081fd5b8135610b8f81615916565b6000602082840312156151b4578081fd5b8151610b8f81615916565b6000602082840312156151d0578081fd5b5035919050565b6000602082840312156151e8578081fd5b5051919050565b60008060408385031215615201578182fd5b505080516020909101519092909150565b60008060008060808587031215615227578182fd5b8435935060208501359250604085013591506060850135615247816158dd565b939692955090935050565b600080600080600060a08688031215615269578283fd5b8535945060208601359350604086013592506060860135915060808601356150df816158dd565b6000602082840312156152a1578081fd5b610b8f82614bff565b6001600160a01b0391909116815260200190565b6001600160a01b03949094168452600292830b6020850152910b60408301526001600160801b0316606082015260a06080820181905260009082015260c00190565b6001600160a01b03959095168552600293840b60208601529190920b60408401526001600160801b03918216606084015216608082015260a00190565b6020808252825182820181905260009190848201906040850190845b8181101561537b57835163ffffffff1683529284019291840191600101615359565b50909695505050505050565b901515815260200190565b90815260200190565b60029190910b815260200190565b600293840b81529190920b60208201526001600160801b03909116604082015260600190565b60029490940b845260208401929092526040830152606082015260800190565b6000602080835283518082850152825b8181101561541b578581018301518582016040015282016153ff565b8181111561542c5783604083870101525b50601f01601f1916929092016040019392505050565b602080825260029082015261544d60f01b604082015260600190565b60208082526018908201527f747761704475726174696f6e206d757374206265203e20300000000000000000604082015260600190565b6020808252600a908201526930b6b7bab73a1826b4b760b11b604082015260600190565b6020808252600e908201526d3832b73234b733a6b0b730b3b2b960911b604082015260600190565b602080825260029082015261504560f01b604082015260600190565b602080825260029082015261746f60f01b604082015260600190565b60208082526007908201526636b0b730b3b2b960c91b604082015260600190565b60208082526018908201527f6d696e5469636b4d6f7665206d757374206265203e3d20300000000000000000604082015260600190565b6020808252601290820152710e8d0e4cae6d0ded8c840e8dede40d0d2ced60731b604082015260600190565b6020808252601d908201527f6d617854776170446576696174696f6e206d757374206265203e3d2030000000604082015260600190565b60208082526029908201527f7468726573686f6c64206d757374206265206d756c7469706c65206f66207469604082015268636b53706163696e6760b81b606082015260800190565b6020808252601e908201527f66756c6c52616e6765576569676874206d757374206265203c3d203165360000604082015260600190565b60208082526015908201527407468726573686f6c64206d757374206265203e203605c1b604082015260600190565b6020808252818101527f616d6f756e743044657369726564206f7220616d6f756e743144657369726564604082015260600190565b6020808252600590820152643a37b5b2b760d91b604082015260600190565b602080825260119082015270726562616c616e636544656c656761746560781b604082015260600190565b602080825260029082015261054560f41b604082015260600190565b6020808252600a9082015269676f7665726e616e636560b01b604082015260600190565b60208082526006908201526573686172657360d01b604082015260600190565b60208082526005908201526463726f737360d81b604082015260600190565b6020808252600a908201526930b6b7bab73a18a6b4b760b11b604082015260600190565b602080825260029082015261282160f11b604082015260600190565b6020808252600e908201526d6d6178546f74616c537570706c7960901b604082015260600190565b6020808252601c908201527f6d616e61676572466565206d757374206265203c3d2032303030303000000000604082015260600190565b62ffffff91909116815260200190565b918252602082015260400190565b9283526020830191909152604082015260600190565b958652602086019490945260408501929092526060840152608083015260a082015260c00190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b60405181810167ffffffffffffffff811182821017156158b757fe5b604052919050565b600067ffffffffffffffff8211156158d357fe5b5060209081020190565b6001600160a01b0381168114613cc957600080fd5b8060020b8114613cc957600080fd5b6001600160801b0381168114613cc957600080fd5b62ffffff81168114613cc957600080fdfe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205e1a87b91f95804f95998a63022ca313bc97982018deee297db71083c3253b9864736f6c63430007060033