0 txs
1 call
constructor
constructor()
functions
creator
viewfunction creator() view returns (address)
creatorReward
viewfunction creatorReward() view returns (uint256)
evolved
viewfunction evolved() view returns (bool)
evolveLiquidity
viewfunction evolveLiquidity() view returns (uint256)
FACTORY
viewfunction FACTORY() view returns (address)
getReserves
viewfunction getReserves() view returns (uint112 reserveWETH, uint112 reserveRock, uint32 blockTimestampLast)
graduationFee
viewfunction graduationFee() view returns (uint256)
platformFee
viewfunction platformFee() view returns (uint256)
platformWallet
viewfunction platformWallet() view returns (address)
priceRockCumulativeLast
viewfunction priceRockCumulativeLast() view returns (uint256)
priceWETHCumulativeLast
viewfunction priceWETHCumulativeLast() view returns (uint256)
rock
viewfunction rock() view returns (address)
WETH
viewfunction WETH() view returns (address)
initializeAuthority
nonpayablefunction initializeAuthority(address initAuthority)
setup
nonpayablefunction setup(address initCreator, address initRouter, address initPositionManager, address initLiquidityLocker, address initFactoryV3, address initSwapRouter, address initWETH, address initRock, address initPlatformWallet, uint256 initPlatformFee, uint256 initEvolveLiquidity)
skim
nonpayablefunction skim(address to)
start
nonpayablefunction start()
swap
nonpayablefunction swap(uint256 amountIn, uint256 amountOut, bool wethIn, bool toUnwrap, address to) returns (uint256 amountInActual, uint256 amountOutActual, uint112 reserveWETH, uint112 reserveRock)
sync
nonpayablefunction sync()
events
InitializeAuthority
event InitializeAuthority(address authority)
Start
event Start(address indexed sender, uint256 amountWETH, uint256 amountRock)
Swap
event Swap(address indexed sender, address indexed to, uint256 amountIn, uint256 amountOut, bool wethIn)
Sync
event Sync(uint112 reserveWETH, uint112 reserveRock)
errors
CallerNotAuthority
error CallerNotAuthority()
CallerNotPendingAuthority
error CallerNotPendingAuthority()
FailedCall
error FailedCall()
Forbidden
error Forbidden()
InsufficientAmount
error InsufficientAmount()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
InsufficientExchangeLiquidity
error InsufficientExchangeLiquidity()
InsufficientLiquidityMinted
error InsufficientLiquidityMinted()
InvalidAddress
error InvalidAddress()
InvalidAuthorityAssignment
error InvalidAuthorityAssignment()
InvalidReceiver
error InvalidReceiver()
K
error K()
Overflow
error Overflow()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
TokenEvolved
error TokenEvolved()
creation bytecode
0x60a06040526729a2241af62c00006007556310e352d56007546305f5e100610027919061009a565b61003191906100c3565b6008556103e86007546046610046919061009a565b61005091906100c3565b6009556103e8600754601e610065919061009a565b61006f91906100c3565b600a5534801561007d575f5ffd5b505f80546001600160a01b031916339081179091556080526100e2565b80820281158282048414176100bd57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f826100dd57634e487b7160e01b5f52601260045260245ffd5b500490565b608051612d8b6101015f395f81816102c00152610b820152612d8b5ff3fe608060405260043610610140575f3560e01c806399fb809e116100bb578063be9a655511610071578063d8fd1ed911610057578063d8fd1ed9146103d7578063fa2af9da146103ec578063fff6cae91461040b575f5ffd5b8063be9a6555146103a4578063c2f6c664146103b8575f5ffd5b8063b01388ea116100a1578063b01388ea1461035b578063bc22593e14610370578063bc25cf7714610385575f5ffd5b806399fb809e14610316578063ad5c464814610337575f5ffd5b8063135f0f85116101105780632dd31000116100f65780632dd31000146102af5780636da6bad0146102e25780638120192c14610301575f5ffd5b8063135f0f851461024557806326232a2e1461029a575f5ffd5b806302a4a8901461014b57806302d05d3f146101735780630902f1ac146101aa5780630d8d7f141461021c575f5ffd5b3661014757005b5f5ffd5b348015610156575f5ffd5b5061016060115481565b6040519081526020015b60405180910390f35b34801561017e575f5ffd5b50600d54610192906001600160a01b031681565b6040516001600160a01b03909116815260200161016a565b3480156101b5575f5ffd5b50600654604080516dffffffffffffffffffffffffffff80841682526e01000000000000000000000000000084041660208201527c010000000000000000000000000000000000000000000000000000000090920463ffffffff169082015260600161016a565b348015610227575f5ffd5b50600b546102359060ff1681565b604051901515815260200161016a565b348015610250575f5ffd5b5061026461025f366004612668565b61041f565b6040805194855260208501939093526dffffffffffffffffffffffffffff9182169284019290925216606082015260800161016a565b3480156102a5575f5ffd5b50610160600f5481565b3480156102ba575f5ffd5b506101927f000000000000000000000000000000000000000000000000000000000000000081565b3480156102ed575f5ffd5b50600c54610192906001600160a01b031681565b34801561030c575f5ffd5b5061016060095481565b348015610321575f5ffd5b506103356103303660046126c3565b6108f8565b005b348015610342575f5ffd5b50600b546101929061010090046001600160a01b031681565b348015610366575f5ffd5b5061016060105481565b34801561037b575f5ffd5b5061016060075481565b348015610390575f5ffd5b5061033561039f3660046126c3565b61093e565b3480156103af575f5ffd5b50610335610a28565b3480156103c3575f5ffd5b506103356103d23660046126de565b610b80565b3480156103e2575f5ffd5b50610160600a5481565b3480156103f7575f5ffd5b50600e54610192906001600160a01b031681565b348015610416575f5ffd5b50610335610dfd565b5f5f5f5f61042b610e8d565b610433610f13565b600b5460ff1615610467576104677fb5dcde8c00000000000000000000000000000000000000000000000000000000610f4a565b881580610472575087155b156104a0576104a07f5945ea5600000000000000000000000000000000000000000000000000000000610f4a565b600b546001600160a01b038681166101009092041614806104ce5750600c546001600160a01b038681169116145b156104fc576104fc7f1e4ec46b00000000000000000000000000000000000000000000000000000000610f4a565b50506006546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004165f8080891561058457600c54600f546dffffffffffffffffffffffffffff861694506001600160a01b0390911692506103e890610564908e6127d5565b61056e9190612819565b905061057a818d61282c565b96508a95506105dc565b846dffffffffffffffffffffffffffff169250600b60019054906101000a90046001600160a01b031691506103e8600f548c6105c091906127d5565b6105ca9190612819565b8c975090506105d9818c61282c565b95505b828b111561060d5761060d7f713654fb00000000000000000000000000000000000000000000000000000000610f4a565b881561069a576040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b03831690632e1a7d4d906024015f604051808303815f87803b15801561066b575f5ffd5b505af115801561067d573d5f5f3e3d5ffd5b50610695925050506001600160a01b03891687610f52565b6106ae565b6106ae6001600160a01b0383168988611028565b600e54600b546106d0916001600160a01b036101009092048216911683611028565b5050505f5f6106dd61109c565b91509150826dffffffffffffffffffffffffffff16846dffffffffffffffffffffffffffff1661070d91906127d5565b61071a90620f42406127d5565b61072482846127d5565b61073190620f42406127d5565b1015610760576107607fa932492f00000000000000000000000000000000000000000000000000000000610f4a565b61076c828286866111a3565b600b546040516370a0823160e01b81523060048201529296509094505f935061010090046001600160a01b031691506370a0823190602401602060405180830381865afa1580156107bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e3919061283f565b90506007548110610895576103e86107fc8260466127d5565b6108069190612819565b6009556103e861081782601e6127d5565b6108219190612819565b600a55600e54600954600b5461084a926001600160a01b03610100909204821692911690611028565b600d54600a54600b54610870926001600160a01b03610100909204821692911690611028565b600a546009546108809190612856565b61088a908261282c565b905061089581611483565b60408051868152602081018690528915158183015290516001600160a01b0388169133917f15df6b17ebbe8381abae058b80360eb98bd18ff544a05e3661ffbed247b47e689181900360600190a3506108ec611dcf565b95509550955095915050565b5f546001600160a01b03163314610932576109327f1c90b19100000000000000000000000000000000000000000000000000000000610f4a565b61093b81611df9565b50565b610946610e8d565b5f5f61095061109c565b915091505f5f6109af6006546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b5090925090506109eb856109d36dffffffffffffffffffffffffffff85168761282c565b600b5461010090046001600160a01b03169190611028565b610a1c85610a096dffffffffffffffffffffffffffff84168661282c565b600c546001600160a01b03169190611028565b5050505061093b611dcf565b610a30610e8d565b610a38610f13565b5f5f610a4261109c565b915091505f5f610aa16006546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b5090925090505f610ac26dffffffffffffffffffffffffffff84168661282c565b90505f610adf6dffffffffffffffffffffffffffff84168661282c565b90505f610af4610aef83856127d5565b611ed4565b9050805f03610b2657610b267fd226f9d400000000000000000000000000000000000000000000000000000000610f4a565b610b32878787876111a3565b5050604080518481526020810184905233917f9bd12ff361235cfc00ce4754dc56d7091bb0a6a4db278a4e8b2f23d84a14c5d4910160405180910390a250505050505050610b7e611dcf565b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610bd957610bd97fee90c46800000000000000000000000000000000000000000000000000000000610f4a565b6001600160a01b038b161580610bf657506001600160a01b038916155b80610c0857506001600160a01b038816155b80610c1a57506001600160a01b038716155b80610c2c57506001600160a01b038616155b80610c3e57506001600160a01b038516155b80610c5057506001600160a01b038416155b80610c6257506001600160a01b038316155b15610c9057610c907fe6c4247b00000000000000000000000000000000000000000000000000000000610f4a565b811580610c9b575080155b15610cc957610cc97f5945ea5600000000000000000000000000000000000000000000000000000000610f4a565b600d80547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b038e8116919091179092556002805482168c84161790556003805482168b84161790556004805482168a8416179055600580548216898416179055600b80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010089851602179055600c80548216878416179055600e8054909116918516919091179055600f82905560078190556310e352d5610d9c826305f5e1006127d5565b610da69190612819565b6008556007546103e890610dbb9060466127d5565b610dc59190612819565b6009556007546103e890610dda90601e6127d5565b610de49190612819565b600a55610df08a611df9565b5050505050505050505050565b610e05610e8d565b5f5f610e0f61109c565b915091505f5f610e6e6006546dffffffffffffffffffffffffffff808216926e01000000000000000000000000000083049091169163ffffffff7c01000000000000000000000000000000000000000000000000000000009091041690565b5091509150610e7f848484846111a3565b505050505050610b7e611dcf565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c15610ee6576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b7e60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b90612039565b6001546001600160a01b03163314610b7e57610b7e7f35f3f298000000000000000000000000000000000000000000000000000000005b805f5260045ffd5b80471015610f9a576040517fcf479181000000000000000000000000000000000000000000000000000000008152476004820152602481018290526044015b60405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610fe3576040519150601f19603f3d011682016040523d82523d5f602084013e610fe8565b606091505b5050905080611023576040517fd6bda27500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6040516001600160a01b0383811660248301526044820183905261102391859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612040565b600854600b546040516370a0823160e01b81523060048201525f92839290916101009091046001600160a01b0316906370a0823190602401602060405180830381865afa1580156110ef573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611113919061283f565b61111d9190612856565b600c546040516370a0823160e01b81523060048201529193506001600160a01b0316906370a0823190602401602060405180830381865afa158015611164573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611188919061283f565b61119d906a3c626448a0bfcccc9c0000612856565b90509091565b600b545f90819060ff16156111db576111db7fb5dcde8c00000000000000000000000000000000000000000000000000000000610f4a565b6dffffffffffffffffffffffffffff86118061120457506dffffffffffffffffffffffffffff85115b15611232576112327f35278d1200000000000000000000000000000000000000000000000000000000610f4a565b5f61124264010000000042612869565b6006549091505f9061127a907c0100000000000000000000000000000000000000000000000000000000900463ffffffff168361287c565b90505f8163ffffffff161180156112a057506dffffffffffffffffffffffffffff861615155b80156112bb57506dffffffffffffffffffffffffffff851615155b15611387578063ffffffff166112f8876112d4886120cb565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16906120fb565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661132091906127d5565b60105f8282546113309190612856565b909155505063ffffffff8116611349866112d4896120cb565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661137191906127d5565b60115f8282546113819190612856565b90915550505b6006805463ffffffff84167c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff6dffffffffffffffffffffffffffff8b81166e0100000000000000000000000000009081027fffffffff000000000000000000000000000000000000000000000000000000009095168e83161794909417918216831794859055604080519382169282169290921780845293909404909316602082018190529196509094507f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1910160405180910390a1505094509492505050565b600c546040516370a0823160e01b81523060048201525f91829182918291829182916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156114d5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114f9919061283f565b600c54600b549192506001600160a01b03908116610100909204161061154357600c54600b546001600160a01b039182169161010090910416828961153e818361211d565b611567565b600b54600c546001600160a01b03610100909204821691168883611567818361211d565b60408051610160810182526001600160a01b03808816825286166020820152610bb891810191909152949a50929850909650945092505f9060608101603c6115cf817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618612898565b6115d991906128ec565b60020b8152602001603c8061160d7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618612912565b6116179190612898565b61162191906128ec565b600290810b825260208201889052604082018790525f6060830181905260808301523060a08301524260c09092019190915254600b549192506116769161010090046001600160a01b0390811691168a612146565b600c5f9054906101000a90046001600160a01b03166001600160a01b031663b1b3d3f66040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156116c2575f5ffd5b505af11580156116d4573d5f5f3e3d5ffd5b5050600254600c546116f593506001600160a01b0390811692501684612146565b600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556002546040517f13ead5620000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301528881166024830152610bb860448301528581166064830152909116906313ead562906084016020604051808303815f875af115801561179a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117be919061294e565b506002546040517f883164560000000000000000000000000000000000000000000000000000000081525f916001600160a01b031690638831645690611808908590600401612969565b6080604051808303815f875af1158015611824573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118489190612a2d565b505060408051610140810182526002546001600160a01b0390811682526020808301869052600e54909116828401819052606083018190526080830181905260a08301525f1960c0830152606d60e083015282518084018452600781527f44454641554c54000000000000000000000000000000000000000000000000008183015261010083015282515f808252918101909352939450915061012082019083611902565b60608152602001906001900390816118ed5790505b5090526002546003546040517fa22cb4650000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260016024820152929350169063a22cb465906044015f604051808303815f87803b15801561196d575f5ffd5b505af115801561197f573d5f5f3e3d5ffd5b50506003546040517fa35a96b80000000000000000000000000000000000000000000000000000000081526001600160a01b03909116925063a35a96b891506119cc908490600401612b05565b6020604051808303815f875af11580156119e8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a0c919061283f565b50600b546040516370a0823160e01b81523060048201525f9161010090046001600160a01b0316906370a0823190602401602060405180830381865afa158015611a58573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a7c919061283f565b600c546040516370a0823160e01b81523060048201529192505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015611ac7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aeb919061283f565b600554600b54919250611b109161010090046001600160a01b03908116911684612146565b600b54600c54604051610100909204606090811b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090811660208501527e0bb80000000000000000000000000000000000000000000000000000000000603485015291901b1660378201525f90604b0160408051601f19818403018152608083018252808352600e546001600160a01b0390811660208501528383018790525f606085015260055492517fb858183f000000000000000000000000000000000000000000000000000000008152919450919091169063b858183f90611bf9908490600401612bea565b6020604051808303815f875af1158015611c15573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c39919061283f565b5050600b546040516370a0823160e01b81523060048201526101009091046001600160a01b031691506370a0823190602401602060405180830381865afa158015611c86573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611caa919061283f565b91508115611d4857600b54600e546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015260248101859052610100909204169063a9059cbb906044016020604051808303815f875af1158015611d22573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d469190612c38565b505b8015611dc157600c546040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b03909116906342966c68906024015f604051808303815f87803b158015611daa575f5ffd5b505af1158015611dbc573d5f5f3e3d5ffd5b505050505b505050505050505050505050565b610b7e5f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00610f0d565b6001600160a01b038116611e3057611e307f12e6291100000000000000000000000000000000000000000000000000000000610f4a565b5f546001600160a01b031615611e68575f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fac1f812621b6c406f47d89f077576cabc56e1309dc67429449723f66ad0dd2269060200160405180910390a150565b5f60018211611ee1575090565b8160017001000000000000000000000000000000008210611f075760809190911c9060401b5b680100000000000000008210611f225760409190911c9060201b5b6401000000008210611f395760209190911c9060101b5b620100008210611f4e5760109190911c9060081b5b6101008210611f625760089190911c9060041b5b60108210611f755760049190911c9060021b5b60048210611f815760011b5b600302600190811c90818581611f9957611f996127ec565b048201901c90506001818581611fb157611fb16127ec565b048201901c90506001818581611fc957611fc96127ec565b048201901c90506001818581611fe157611fe16127ec565b048201901c90506001818581611ff957611ff96127ec565b048201901c90506001818581612011576120116127ec565b048201901c905061203081858161202a5761202a6127ec565b04821190565b90039392505050565b80825d5050565b5f5f60205f8451602086015f885af18061205f576040513d5f823e3d81fd5b50505f513d91508115612076578060011415612083565b6001600160a01b0384163b155b156120c5576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610f91565b50505050565b5f6120f56e0100000000000000000000000000006dffffffffffffffffffffffffffff8416612c53565b92915050565b5f6121166dffffffffffffffffffffffffffff831684612cd1565b9392505050565b5f61211661213361212e8585612203565b61224a565b6c0100000000000000000000000061226a565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001790526121c584826122e4565b6120c5576040516001600160a01b0384811660248301525f60448301526121f991869182169063095ea7b390606401611055565b6120c58482612040565b5f815f0361220f575f5ffd5b5f61221a848461232d565b90506f7fffffffffffffffffffffffffffffff6fffffffffffffffffffffffffffffffff82161115612116575f5ffd5b5f5f82600f0b121561225a575f5ffd5b6120f5604083600f0b901b6124b8565b5f815f0361227557505f5b5f83600f0b1215612284575f5ffd5b600f83900b6fffffffffffffffffffffffffffffffff8316810260401c90608084901c0277ffffffffffffffffffffffffffffffffffffffffffffffff8111156122cc575f5ffd5b60401b81198111156122dc575f5ffd5b019392505050565b5f5f5f5f60205f8651602088015f8a5af192503d91505f519050828015612323575081156123155780600114612323565b5f866001600160a01b03163b115b9695505050505050565b5f815f03612339575f5ffd5b5f77ffffffffffffffffffffffffffffffffffffffffffffffff84116123745782604085901b8161236c5761236c6127ec565b04905061249c565b60c084811c640100000000811061238d576020918201911c5b62010000811061239f576010918201911c5b61010081106123b0576008918201911c5b601081106123c0576004918201911c5b600481106123d0576002918201911c5b600281106123df576001820191505b60bf820360018603901c6001018260ff0387901b81612400576124006127ec565b0492506fffffffffffffffffffffffffffffffff83111561241f575f5ffd5b608085901c83026fffffffffffffffffffffffffffffffff8616840260c088901c604089901b82811015612454576001820391505b608084901b9290038281101561246b576001820391505b829003608084901c821461248157612481612d28565b888181612490576124906127ec565b04870196505050505050505b6fffffffffffffffffffffffffffffffff811115612116575f5ffd5b5f815f036124c757505f919050565b81600170010000000000000000000000000000000082106124ed5760809190911c9060401b5b6801000000000000000082106125085760409190911c9060201b5b640100000000821061251f5760209190911c9060101b5b6201000082106125345760109190911c9060081b5b61010082106125485760089190911c9060041b5b6010821061255b5760049190911c9060021b5b600882106125675760011b5b6001818581612578576125786127ec565b048201901c90506001818581612590576125906127ec565b048201901c905060018185816125a8576125a86127ec565b048201901c905060018185816125c0576125c06127ec565b048201901c905060018185816125d8576125d86127ec565b048201901c905060018185816125f0576125f06127ec565b048201901c90506001818581612608576126086127ec565b048201901c90505f81858161261f5761261f6127ec565b04905080821061262f5780612631565b815b93505050505b919050565b801515811461093b575f5ffd5b6001600160a01b038116811461093b575f5ffd5b803561263781612649565b5f5f5f5f5f60a0868803121561267c575f5ffd5b853594506020860135935060408601356126958161263c565b925060608601356126a58161263c565b915060808601356126b581612649565b809150509295509295909350565b5f602082840312156126d3575f5ffd5b813561211681612649565b5f5f5f5f5f5f5f5f5f5f5f6101608c8e0312156126f9575f5ffd5b8b3561270481612649565b9a5060208c013561271481612649565b995060408c013561272481612649565b985060608c013561273481612649565b975060808c013561274481612649565b965060a08c013561275481612649565b955060c08c013561276481612649565b945061277260e08d0161265d565b93506127816101008d0161265d565b9a9d999c50979a969995989497509295919493610120830135935061014090920135919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820281158282048414176120f5576120f56127a8565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82612827576128276127ec565b500490565b818103818111156120f5576120f56127a8565b5f6020828403121561284f575f5ffd5b5051919050565b808201808211156120f5576120f56127a8565b5f82612877576128776127ec565b500690565b63ffffffff82811682821603908111156120f5576120f56127a8565b5f8160020b8360020b806128ae576128ae6127ec565b5f1981147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000831416156128e3576128e36127a8565b90059392505050565b5f8260020b8260020b028060020b915080821461290b5761290b6127a8565b5092915050565b5f8160020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008103612946576129466127a8565b5f0392915050565b5f6020828403121561295e575f5ffd5b815161211681612649565b81516001600160a01b031681526101608101602083015161299560208401826001600160a01b03169052565b5060408301516129ac604084018262ffffff169052565b5060608301516129c1606084018260020b9052565b5060808301516129d6608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e0830152610100830151610100830152610120830151612a1d6101208401826001600160a01b03169052565b5061014092830151919092015290565b5f5f5f5f60808587031215612a40575f5ffd5b845160208601519094506fffffffffffffffffffffffffffffffff81168114612a67575f5ffd5b6040860151606090960151949790965092505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f82825180855260208501945060208160051b830101602085015f5b83811015612af957601f19858403018852612ae3838351612a7d565b6020988901989093509190910190600101612ac7565b50909695505050505050565b60208152612b1f6020820183516001600160a01b03169052565b602082015160408201525f6040830151612b4460608401826001600160a01b03169052565b5060608301516001600160a01b03811660808401525060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e083015260e0830151612ba461010084018261ffff169052565b50610100830151610140610120840152612bc2610160840182612a7d565b9050610120840151601f1984830301610140850152612be18282612aab565b95945050505050565b602081525f825160806020840152612c0560a0840182612a7d565b90506001600160a01b03602085015116604084015260408401516060840152606084015160808401528091505092915050565b5f60208284031215612c48575f5ffd5b81516121168161263c565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183021692508183048114821517612cc957612cc96127a8565b505092915050565b5f7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff831680612cfe57612cfe6127ec565b807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff84160491505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffdfea2646970667358221220b6957769e4ed73306e92d1d21c46e064c19f4b42fc19ecde2de13291a17d9a5164736f6c634300081c0033