0 txs
1 call
constructor
No constructor.
functions
calcGaugePointsWithParams
viewfunction calcGaugePointsWithParams(address token, uint256 percentOfDepositedBdv) view returns (uint256)
getAverageGrownStalkPerBdv
viewfunction getAverageGrownStalkPerBdv() view returns (uint256)
getAverageGrownStalkPerBdvPerSeason
viewfunction getAverageGrownStalkPerBdvPerSeason() view returns (uint128)
getBeanGaugePointsPerBdv
viewfunction getBeanGaugePointsPerBdv() view returns (uint256)
getBeanToMaxLpGpPerBdvRatio
viewfunction getBeanToMaxLpGpPerBdvRatio() view returns (uint256)
getBeanToMaxLpGpPerBdvRatioScaled
viewfunction getBeanToMaxLpGpPerBdvRatioScaled() view returns (uint256)
getDeltaPodDemand
viewfunction getDeltaPodDemand() view returns (uint256)
getGaugePoints
viewfunction getGaugePoints(address token) view returns (uint256)
getGaugePointsPerBdvForToken
viewfunction getGaugePointsPerBdvForToken(address token) view returns (uint256)
getGaugePointsPerBdvForWell
viewfunction getGaugePointsPerBdvForWell(address well) view returns (uint256)
getGaugePointsWithParams
viewfunction getGaugePointsWithParams(address token) view returns (uint256)
getGrownStalkIssuedPerGp
viewfunction getGrownStalkIssuedPerGp() view returns (uint256)
getGrownStalkIssuedPerSeason
viewfunction getGrownStalkIssuedPerSeason() view returns (uint256)
getLargestGpPerBdv
viewfunction getLargestGpPerBdv() view returns (uint256)
getLiquidityToSupplyRatio
viewfunction getLiquidityToSupplyRatio() view returns (uint256)
getMaxTotalGaugePoints
viewfunction getMaxTotalGaugePoints() view returns (uint256)
getPodRate
viewfunction getPodRate(uint256 fieldId) view returns (uint256)
getSeedGauge
viewfunction getSeedGauge() view returns (tuple)
getTotalBdv
viewfunction getTotalBdv() view returns (uint256 totalBdv)
events
No events.
errors
SafeCastOverflowedIntDowncast
error SafeCastOverflowedIntDowncast(uint8 bits, int256 value)
T
error T()
creation bytecode
0x6080604052348015600f57600080fd5b506141a68061001f6000396000f3fe608060405234801561001057600080fd5b50600436106101115760003560e01c80636af8e5a4116100ad578063b2b0556d11610071578063b2b0556d14610214578063cb2d0a3c14610227578063cc88d4f91461022f578063eb0e121514610247578063f98da2de1461026257600080fd5b80636af8e5a4146101a05780636bbf3305146101b55780637046c9a6146101bd5780637ba6cbf8146101d057806393523425146101d857600080fd5b80631124214514610116578063141933bf1461013c578063383f170f1461014f5780633b0ceb3014610157578063505391591461016d578063648878521461017557806364b3496b14610188578063673c75f01461019057806369aa7e0214610198575b600080fd5b6101296101243660046135d0565b61026a565b6040519081526020015b60405180910390f35b61012961014a366004613601565b610310565b6101296107ed565b60e75461010090046001600160801b0316610129565b6101296108c7565b610129610183366004613601565b6108d6565b61012961090b565b610129610948565b610129610967565b6101a8610999565b604051610133919061361e565b610129610a1f565b6101296101cb36600461368f565b610a7d565b610129610dcb565b6101296101e6366004613601565b6001600160a01b0316600090815260c86020526040902060010154600160281b90046001600160801b031690565b610129610222366004613601565b610dd5565b610129610eba565b60e654600160801b90046001600160801b0316610129565b60e6546040516001600160801b039091168152602001610133565b610129610f44565b600154604080516318160ddd60e01b8152905160009283926001600160a01b03909116916318160ddd916004808201926020929091908290030181865afa1580156102b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102dd91906136bb565b60008481526020805260409020600281015490549192506103089161030291906136ea565b8261103d565b519392505050565b60008061031b611073565b905060008060d45461033d906103389063ffffffff166001613713565b611178565b600281111561034e5761034e6136fd565b0361035b5750600061035f565b5060015b60008060005b84518110156104d657600060ca81866002811115610385576103856136fd565b6002811115610396576103966136fd565b815260200190815260200160002060008784815181106103b8576103b8613737565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000160109054906101000a90046001600160801b03166001600160801b0316905061046981610463600060010160c30160030160008a878151811061042857610428613737565b6020908102919091018101516001600160a01b03168252810191909152604001600020548790600160801b90046001600160801b0316611196565b90611196565b93506104cb600060010160c301600401600088858151811061048d5761048d613737565b6020908102919091018101516001600160a01b03168252810191909152604001600020600101548490600160a81b90046001600160401b0316611196565b925050600101610365565b506001600160a01b038616600090815260c76020526040812054600160801b90046001600160801b03169061051984610513846305f5e1006111a9565b906111b5565b6001600160a01b03808a16600090815260c86020908152604080832081516101608101835281546001600160e01b031960e082811b8216845264ffffffffff6401000000008404168488015265ffffffffffff600160481b8404168487015263ffffffff600160781b840416606080860191909152600160981b8404600b0b6080808701919091526001600160f81b0319600160f81b90950460f890811b861660a08801526001880154600481900b60c08901526001600160801b03600160281b820416858901526001600160401b03600160a81b90910416610100880152885191820189526002880180549c8d168352600160a01b8d0490941b90941698810198909852600160c01b90990490911b9091169385019390935260038201805497985094969095919461012087019493928401916106569061374d565b80601f01602080910402602001604051908101604052809291908181526020018280546106829061374d565b80156106cf5780601f106106a4576101008083540402835291602001916106cf565b820191906000526020600020905b8154815290600101906020018083116106b257829003601f168201915b505050919092525050508152604080516080810182526004840180546001600160a01b0381168352600160a01b810460e01b6001600160e01b031916602080850191909152600160c01b90910460f81b6001600160f81b03191693830193909352600585018054939094019391929091606084019161074d9061374d565b80601f01602080910402602001604051908101604052809291908181526020018280546107799061374d565b80156107c65780601f1061079b576101008083540402835291602001916107c6565b820191906000526020600020905b8154815290600101906020018083116107a957829003601f168201915b5050505050815250508152505090506107e08183866111c1565b9998505050505050505050565b6000806107f8611073565b90506000805b825181101561086a5782516108609060c79060009086908590811061082557610825613737565b6020908102919091018101516001600160a01b03168252810191909152604001600020548390600160801b90046001600160801b0316611196565b91506001016107fe565b506001546001600160a01b0316600090815260c760205260409020546108c090620f424090610513906108ae908590600160801b90046001600160801b0316611196565b60e6546001600160801b0316906111a9565b9250505090565b60006108d1611310565b905090565b6001546000906001600160a01b03908116908316036108fd576108f7610967565b92915050565b6108f782610dd5565b919050565b60006109236040518060200160405280600081525090565b60065461093f90600160801b90046001600160801b0316611397565b50505192915050565b60e6546000906108d190600160801b90046001600160801b0316611590565b600080610972610948565b905061099368056bc75e2d631000006105138361098d610a1f565b906111a9565b91505090565b6109a161357d565b6040805160a08101825260e680546001600160801b038082168452600160801b9091048116602084015260e75460ff8116151584860152610100900416606083015282516080808201948590529293919284019160e89060049082845b8154815260200190600101908083116109fe57505050505081525050905090565b6000806000610a2c611073565b905060005b8151811015610a75576000610a5e838381518110610a5157610a51613737565b6020026020010151610dd5565b905083811115610a6c578093505b50600101610a31565b509092915050565b600080610a88611073565b90506000805b8251811015610afd578251610af39060c890600090869085908110610ab557610ab5613737565b6020908102919091018101516001600160a01b03168252810191909152604001600020600101548390600160a81b90046001600160401b0316611196565b9150600101610a8e565b506001600160a01b03808616600090815260c8602090815260409182902082516101608101845281546001600160e01b031960e082811b8216845264ffffffffff6401000000008404168487015265ffffffffffff600160481b8404168488015263ffffffff600160781b840416606080860191909152600160981b8404600b0b6080808701919091526001600160f81b0319600160f81b90950460f890811b861660a08801526001880154600481900b60c08901526001600160801b03600160281b820416858901526001600160401b03600160a81b9091041661010088015289519182018a526002880180549b8c168352600160a01b8c0490941b90941697810197909752600160c01b90980490911b90911694840194909452600382018054610dc296929593946101208701949093909290840191610c3e9061374d565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6a9061374d565b8015610cb75780601f10610c8c57610100808354040283529160200191610cb7565b820191906000526020600020905b815481529060010190602001808311610c9a57829003601f168201915b505050919092525050508152604080516080810182526004840180546001600160a01b0381168352600160a01b810460e01b6001600160e01b031916602080850191909152600160c01b90910460f81b6001600160f81b031916938301939093526005850180549390940193919290916060840191610d359061374d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d619061374d565b8015610dae5780601f10610d8357610100808354040283529160200191610dae565b820191906000526020600020905b815481529060010190602001808311610d9157829003601f168201915b5050505050815250508152505085836111c1565b95945050505050565b60006108d16115f2565b6001600160a01b038116600090815260c8602052604081205460e01b6001600160e01b03191663c84c772760e01b03610e77576001600160a01b038216600090815260c8602090815260408083206001015460c7909252822054600160281b9091046001600160801b0390811692600160801b9092041690819003610e5e575060009392505050565b610e6f8161051384620f42406111a9565b949350505050565b60405162461bcd60e51b8152602060048201526013602482015272151bdad95b881b9bdd081cdd5c1c1bdc9d1959606a1b60448201526064015b60405180910390fd5b600154604080516318160ddd60e01b8152905160009283926001600160a01b03909116916318160ddd916004808201926020929091908290030181865afa158015610f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2d91906136bb565b90506000610f3a82611632565b5050519392505050565b600080610f4f611073565b90506000805b8251811015610fc4578251610fba9060c890600090869085908110610f7c57610f7c613737565b6020908102919091018101516001600160a01b03168252810191909152604001600020600101548390600160281b90046001600160801b0316611196565b9150600101610f55565b506000610fcf6107ed565b6001546001600160a01b0316600090815260c7602052604090205490915061101d9061101690620f42409061051390600160801b90046001600160801b031661098d610967565b8390611196565b91506110358261051383670de0b6b3a76400006111a9565b935050505090565b604080516020810190915260008152604051806020016040528061106a85670de0b6b3a7640000866117de565b90529392505050565b60c95460609060009081816001600160401b0381111561109557611095613787565b6040519080825280602002602001820160405280156110be578160200160208202803683370190505b50935060005b8281101561116e5760c984018054829081106110e2576110e2613737565b600091825260209091200154600160a81b900460ff16156111665760c9840180548290811061111357611113613737565b6000918252602090912001546001600160a01b031685836111338161379d565b94508151811061114557611145613737565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6001016110c4565b5080845250505090565b6000611183826117ee565b61118e5760016108f7565b600092915050565b60006111a282846137b6565b9392505050565b60006111a282846137c9565b60006111a282846137f6565b610120830151516000906001600160a01b0381166111dc5750305b610120850151602001516001600160e01b031981166111ff57506335eddfa960e21b5b6000846305f5e1008861010001516001600160401b031661122091906137c9565b61122a91906137f6565b9050600080846001600160a01b0316848a60e00151858b8d61012001516060015160405160240161125e949392919061385a565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161129c9190613887565b600060405180830381855afa9150503d80600081146112d7576040519150601f19603f3d011682016040523d82523d6000602084013e6112dc565b606091505b509150915081611300578860e001516001600160801b0316955050505050506111a2565b6020015198975050505050505050565b600080600061131d611817565b905060005b8151811015611391576113878360010160c301600301600084848151811061134c5761134c613737565b6020908102919091018101516001600160a01b03168252810191909152604001600020548590600160801b90046001600160801b0316611196565b9350600101611322565b50505090565b604080516020810190915260008082528060e1816113b36118d1565b9050808610156113e3576113c561193d565b91549194505063ffffffff600160a01b909104811692509050611589565b81546113f99087906001600160801b031661195b565b945061140a600163ffffffff6138a3565b825463ffffffff918216600160a01b909104909116101561157357611434600163ffffffff6138a3565b825463ffffffff918216600160801b909104909116101580611466575081546104b0600160a01b90910463ffffffff16105b806114be5750815461012c600160801b90910463ffffffff161180156114be575081546114a79063ffffffff600160801b90910481169061012c906119a416565b825463ffffffff918216600160a01b909104909116105b156114db576114d4670de0b6b3a76400006119b0565b9450611573565b81546114fb9063ffffffff600160801b90910481169061012c906119e516565b825463ffffffff918216600160a01b9091049091161161157357611548611541604080516020808201835260009091528151908101909152670de0b6b3a7640000815290565b86906119f1565b1561157357604080516020808201835260009091528151908101909152670de0b6b3a7640000815294505b505463ffffffff600160a01b9091048116925090505b9193909250565b60f35460d4546000918291600160801b900460ff16156115c25750610101810154600160801b90046001600160801b03165b60f28201546000906115d59083906136ea565b9050610dc28261046368056bc75e2d6310000061051389866111a9565b60008060006115ff611310565b9050806000036116125760009250505090565b60c48201546108c0906402540be4009061162c90846111b5565b90611a05565b604080516020810190915260008152600080836000036116635761165461193d565b60006001925092509250611589565b600061166d611073565b905060606000806000805b8551811015611793576116a386828151811061169657611696613737565b6020026020010151611a11565b9450846000815181106116b8576116b8613737565b602002602001015160001480156116e95750846001815181106116dd576116dd613737565b60200260200101516000145b61178b57600061171287838151811061170457611704613737565b602002602001015187611a49565b90508060000361172157600197505b611753670de0b6b3a76400006105138361098d8b878151811061174657611746613737565b6020026020010151611b7f565b92508383111561177d5782935086828151811061177257611772613737565b602002602001015198505b6117878584611196565b9450505b600101611678565b50826000036117b8576117a461193d565b600060019750975097505050505050611589565b6117d06117ca8464e8d4a510006111b5565b8a61103d565b975050505050509193909250565b6000610e6f8261051386866111a9565b600061180563ffffffff80841690600290611d6316565b63ffffffff161561118e5760016108f7565b60c954606090600090806001600160401b0381111561183857611838613787565b604051908082528060200260200182016040528015611861578160200160208202803683370190505b50925060005b818110156113915760c9830180548290811061188557611885613737565b60009182526020909120015484516001600160a01b03909116908590839081106118b1576118b1613737565b6001600160a01b0390921660209283029190910190910152600101611867565b600a5460009081906001600160801b031681620f42406118f361c350846137c9565b6118fd91906137f6565b6302faf0801161192657620f424061191761c350846137c9565b61192191906137f6565b61192c565b6302faf0805b9050808210156111a2575092915050565b60408051602080820183526000918290528251908101909252815290565b604080516020810190915260008152826000036119815761197a61193d565b90506108f7565b8160000361199a5761197a670de0b6b3a76400006119b0565b6111a2838361103d565b60006111a282846138a3565b6040805160208101909152600081526040805160208101909152806119dd84670de0b6b3a76400006111a9565b905292915050565b60006111a28284613713565b60006119fd8383611d6f565b159392505050565b60006111a282846136ea565b6060611a1c82611da1565b905080600081518110611a3157611a31613737565b6020026020010151600103610906576108f782611e5f565b6001600160a01b0382166000908152601f6020526040812054600080611a6e86611fd6565b915091506001831115611abd57611ab383610513670de0b6b3a7640000888581518110611a9d57611a9d613737565b60200260200101516111a990919063ffffffff16565b93505050506108f7565b82600003611ad157600093505050506108f7565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3591906138c0565b9050611b74611b4582600a6139bf565b61051364e8d4a5100061098d8a8781518110611b6357611b63613737565b602002602001015161098d896120fc565b979650505050505050565b6001600160a01b03818116600090815260c86020908152604080832081516080810183526004820180549687168252600160a01b870460e01b6001600160e01b03191694820194909452600160c01b90950460f81b6001600160f81b03191691850191909152600501805492938493849391926060840191611c009061374d565b80601f0160208091040260200160405190810160405280929190818152602001828054611c2c9061374d565b8015611c795780601f10611c4e57610100808354040283529160200191611c79565b820191906000526020600020905b815481529060010190602001808311611c5c57829003601f168201915b5050509190925250508151919250506001600160a01b038116611c995750305b600080826001600160a01b031684602001518560600151604051602401611cc091906139ce565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611cfe9190613887565b600060405180830381855afa9150503d8060008114611d39576040519150601f19603f3d011682016040523d82523d6000602084013e611d3e565b606091505b509150915081611d55575060009695505050505050565b602001519695505050505050565b60006111a282846139e1565b805182516000919003611d84575060016108f7565b8151835111611d94576000611d97565b60025b60ff169392505050565b604080516002808252606082810184529260009291906020830190803683375050506001600160a01b0384166000908152601e8301602052604081205482519294506001600160801b031691849190611dfc57611dfc613737565b6020908102919091018101919091526001600160a01b0384166000908152601e830190915260409020548251600160801b9091046001600160801b03169083906001908110611e4d57611e4d613737565b60200260200101818152505050919050565b6060600080836001600160a01b031663a1d89d966040518163ffffffff1660e01b8152600401600060405180830381865afa158015611ea2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611eca9190810190613ae2565b905080600081518110611edf57611edf613737565b6020026020010151600001516001600160a01b031663d393b27a8584600101601c016000886001600160a01b03166001600160a01b031681526020019081526020016000208560010160d3016003015485600081518110611f4257611f42613737565b6020026020010151602001516040518563ffffffff1660e01b8152600401611f6d9493929190613bde565b600060405180830381865afa925050508015611fab57506040513d6000823e601f3d908101601f19168201604052611fa89190810190613cc6565b60015b611fcd5760408051600280825260608201835290916020830190803683370190505b50949350505050565b600080806000846001600160a01b0316639d63848a6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561201a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120429190810190613d81565b905060005b81518110156120ba57600183015482516001600160a01b039091169083908390811061207557612075613737565b60200260200101516001600160a01b0316146120b25781818151811061209d5761209d613737565b60200260200101518194509450505050915091565b600101612047565b5060405162461bcd60e51b81526020600482015260166024820152752634b12bb2b6361d1034b73b30b634b2103bb2b6361d60511b6044820152606401610eb1565b60006108f7826000806111a2836000846000610e6f84848460008080806001600160a01b0387811660009081526022830160209081526040808320815160808101835281549586168152600160a01b860460e01b6001600160e01b03191693810193909352600160c01b90940460f81b6001600160f81b03191690820152600183018054949550919390929160608401916121969061374d565b80601f01602080910402602001604051908101604052809291908181526020018280546121c29061374d565b801561220f5780601f106121e45761010080835404028352916020019161220f565b820191906000526020600020905b8154815290600101906020018083116121f257829003601f168201915b5050509190925250505060408101519091506001600160f81b0319908116016122635761225a8160000151826060015180602001905181019061225291906136bb565b88888861275e565b92505050610e6f565b60408101516001600160f81b031916607f60f91b0161263e57600081600001516001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e49190613e0f565b9050876001600160a01b0316816001600160a01b0316036123685781600001516001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123659190613e0f565b90505b6124028615612377578661237b565b6103845b83518a848b15612395576123908c600a613e2c565b61278f565b8c6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f791906138c0565b61239090600a6139bf565b6001600160a01b0382811660009081526022860160209081526040808320815160808101835281549586168152600160a01b860460e01b6001600160e01b03191693810193909352600160c01b90940460f81b6001600160f81b031916908201526001830180549498509193909291606084019161247f9061374d565b80601f01602080910402602001604051908101604052809291908181526020018280546124ab9061374d565b80156124f85780601f106124cd576101008083540402835291602001916124f8565b820191906000526020600020905b8154815290600101906020018083116124db57829003601f168201915b50505050508152505090506000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612543573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061256791906138c0565b60ff16905060006125a48360000151846060015180602001905181019061258e91906136bb565b8c1561259a578461259c565b8c5b8c600061275e565b905089156126305787156125de57866125be8b600a613e2c565b6125cd9064e8d4a510006137c9565b6125d791906137f6565b9650612604565b866125ea8b600a613e2c565b6125f790620f42406137c9565b61260191906137f6565b96505b61260f82600a613e2c565b61261982896137c9565b61262391906137f6565b9650505050505050610e6f565b620f424061261982896137c9565b80516001600160a01b031661265857600092505050610e6f565b6060810151841561268c5781606001518560405160200161267a929190613e38565b60405160208183030381529060405290505b60008083600001516001600160a01b031684602001518a8a866040516024016126b793929190613e60565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516126f59190613887565b600060405180830381855afa9150503d8060008114612730576040519150601f19603f3d011682016040523d82523d6000602084013e612735565b606091505b50915091508161274d57600095505050505050610e6f565b602001519998505050505050505050565b6000808311612778576127738686868561294d565b612785565b6127858686868686612ad5565b9695505050505050565b600080600061279e8789612dd5565b91509150816127b257600092505050610dc2565b6127be81858888612fa3565b92506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612800573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282491906138c0565b60ff1690506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061288d91906138c0565b60ff169050600061289e8284613e7f565b9050806000036128d6576128b383600a613e2c565b6128c0620f4240886137c9565b6128ca91906137f6565b95505050505050610dc2565b60008113156128fb576128ea81600a613e2c565b6128f490876137c9565b955061291c565b61290481613e9f565b61290f90600a613e2c565b61291990876137f6565b95505b61292783600a613e2c565b612934620f4240886137c9565b61293e91906137f6565b9b9a5050505050505050505050565b6000808590506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156129af575060408051601f3d908101601f191682019092526129ac918101906138c0565b60015b6129be57600092505050610e6f565b9050816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa925050508015612a1a575060408051601f3d908101601f19168201909252612a1791810190613ed2565b60015b612a2957600092505050610e6f565b846001600160501b0316600003612a4a576000975050505050505050610e6f565b612a568285428e61309f565b15612a6b576000975050505050505050610e6f565b8915612aa8578815612a8557612a828a60066137b6565b99505b612aa184612a9660ff89168d6137b6565b61051390600a613e2c565b9750612ac6565b612ac3612ab687600a6139bf565b61051386620f42406111a9565b97505b50505050505050949350505050565b600080866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612b32575060408051601f3d908101601f19168201909252612b2f918101906138c0565b60015b612b40576000915050610dc2565b9050866001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa925050508015612b9c575060408051601f3d908101601f19168201909252612b9991810190613ed2565b60015b612baa576000915050610dc2565b846001600160501b0316600003612bca5760009650505050505050610dc2565b612bd68285428e61309f565b15612bea5760009650505050505050610dc2565b612c0e60405180606001604052806000815260200160008152602001600081525090565b612c18428b611a05565b60208201528815612c3157612c2e8b60066137b6565b9a505b80602001518311612c7c578a15612c6157612c5385612a9660ff8a168e6137b6565b975050505050505050610dc2565b612c53612c6f88600a6139bf565b61051387620f42406111a9565b4260408201525b8060200151831115612d39578a15612cbb5784612ca360ff89168d6137b6565b612cae90600a613e2c565b612cb891906137f6565b94505b612ce7612cdf612cd8858460400151611a0590919063ffffffff16565b87906111a9565b825190611196565b8152612cf4600187613f22565b604082018490529550612d078d876130ee565b8094508196505050612d1f838683604001518f61309f565b15612d34576000975050505050505050610dc2565b612c83565b8a15612d655784612d4d60ff89168d6137b6565b612d5890600a613e2c565b612d6291906137f6565b94505b612d86612cdf612cd883602001518460400151611a0590919063ffffffff16565b81528a15612da1578051612d9a908b6111b5565b9750612dc5565b612dc28a610513612db38a600a6139bf565b845161051390620f42406111a9565b97505b5050505050505095945050505050565b6000808263ffffffff16600003612e135760405162461bcd60e51b8152602060048201526002602482015261042560f41b6044820152606401610eb1565b6040805160028082526060820183526000926020830190803683370190505090508381600081518110612e4857612e48613737565b602002602001019063ffffffff16908163ffffffff1681525050600081600181518110612e7757612e77613737565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526001600160a01b0386169063883bdbfd90612eb8908490600401613f42565b600060405180830381865afa925050508015612ef657506040513d6000823e601f3d908101601f19168201604052612ef39190810190613fff565b60015b15612f9b57600082600081518110612f1057612f10613737565b602002602001015183600181518110612f2b57612f2b613737565b6020026020010151612f3d91906140c0565b9050612f5a612f5263ffffffff8916836140ed565b60060b613183565b945060008160060b128015612f805750612f7a63ffffffff88168261412b565b60060b15155b15612f935784612f8f8161414d565b9550505b600195505050505b509250929050565b600080612faf866131b2565b90506001600160801b036001600160a01b03821611613035576000612fdd6001600160a01b038316806137c9565b9050836001600160a01b0316856001600160a01b03161061301557613010600160c01b876001600160801b0316836134cb565b61302d565b61302d81876001600160801b0316600160c01b6134cb565b925050611fcd565b600061304f6001600160a01b03831680600160401b6134cb565b9050836001600160a01b0316856001600160a01b03161061308757613082600160801b876001600160801b0316836134cb565b611b74565b611b7481876001600160801b0316600160801b6134cb565b60008415806130ad57508285115b156130ba57506001610e6f565b816130c58487611a05565b11156130d357506001610e6f565b600084136130e357506001610e6f565b506000949350505050565b604051639a6fc8f560e01b81526001600160501b038216600482015260009081906001600160a01b03851690639a6fc8f59060240160a060405180830381865afa92505050801561315c575060408051601f3d908101601f1916820190925261315991810190613ed2565b60015b61316d57506000199050600061317c565b5091945090925061317c915050565b9250929050565b80600281900b81146109065760405163327269a760e01b81526018600482015260248101839052604401610eb1565b60008060008360020b126131c9578260020b6131d1565b8260020b6000035b9050620d89e88111156131f7576040516315e4079d60e11b815260040160405180910390fd5b60008160011660000361320e57600160801b613220565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b03169050600282161561324a576ffff97272373d413259a46990580e213a0260801c5b6004821615613269576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615613288576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156132a7576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156132c6576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156132e5576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615613304576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615613324576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615613344576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615613364576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615613384576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156133a4576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156133c4576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156133e4576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615613404576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615613425576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615613445576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615613464576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615613481576b048a170391f7dc42444e8fa20260801c5b60008460020b13156134a257806000198161349e5761349e6137e0565b0490505b6401000000008106156134b65760016134b9565b60005b60ff16602082901c0192505050919050565b600080806000198587098587029250828110838203039150508060000361350457600084116134f957600080fd5b5082900490506111a2565b80841161351057600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6040805160a0810182526000808252602082018190529181018290526060810191909152608081016135ad6135b2565b905290565b60405180608001604052806004906020820280368337509192915050565b6000602082840312156135e257600080fd5b5035919050565b6001600160a01b03811681146135fe57600080fd5b50565b60006020828403121561361357600080fd5b81356111a2816135e9565b60006101008201905060018060801b038084511683526020816020860151166020850152604085015115156040850152816060860151166060850152608085015191506080840160005b600481101561368557835182529282019290820190600101613668565b5050505092915050565b600080604083850312156136a257600080fd5b82356136ad816135e9565b946020939093013593505050565b6000602082840312156136cd57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156108f7576108f76136d4565b634e487b7160e01b600052602160045260246000fd5b63ffffffff818116838216019080821115613730576137306136d4565b5092915050565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061376157607f821691505b60208210810361378157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6000600182016137af576137af6136d4565b5060010190565b808201808211156108f7576108f76136d4565b80820281158282048414176108f7576108f76136d4565b634e487b7160e01b600052601260045260246000fd5b600082613805576138056137e0565b500490565b60005b8381101561382557818101518382015260200161380d565b50506000910152565b6000815180845261384681602086016020860161380a565b601f01601f19169290920160200192915050565b60018060801b0385168152836020820152826040820152608060608201526000612785608083018461382e565b6000825161389981846020870161380a565b9190910192915050565b63ffffffff828116828216039080821115613730576137306136d4565b6000602082840312156138d257600080fd5b815160ff811681146111a257600080fd5b600181815b80851115612f9b578160001904821115613904576139046136d4565b8085161561391157918102915b93841c93908002906138e8565b60008261392d575060016108f7565b8161393a575060006108f7565b8160018114613950576002811461395a57613976565b60019150506108f7565b60ff84111561396b5761396b6136d4565b50506001821b6108f7565b5060208310610133831016604e8410600b8410161715613999575081810a6108f7565b6139a383836138e3565b80600019048211156139b7576139b76136d4565b029392505050565b60006111a260ff84168361391e565b6020815260006111a2602083018461382e565b600063ffffffff808416806139f8576139f86137e0565b92169190910692915050565b604080519081016001600160401b0381118282101715613a2657613a26613787565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613a5457613a54613787565b604052919050565b60006001600160401b03821115613a7557613a75613787565b5060051b60200190565b600082601f830112613a9057600080fd5b81516001600160401b03811115613aa957613aa9613787565b613abc601f8201601f1916602001613a2c565b818152846020838601011115613ad157600080fd5b610e6f82602083016020870161380a565b60006020808385031215613af557600080fd5b82516001600160401b0380821115613b0c57600080fd5b818501915085601f830112613b2057600080fd5b8151613b33613b2e82613a5c565b613a2c565b81815260059190911b83018401908481019088831115613b5257600080fd5b8585015b83811015613bd157805185811115613b6e5760008081fd5b86016040818c03601f1901811315613b865760008081fd5b613b8e613a04565b89830151613b9b816135e9565b8152908201519087821115613bb05760008081fd5b613bbe8d8b84860101613a7f565b818b015285525050918601918601613b56565b5098975050505050505050565b60018060a01b03851681526000602060806020840152600086548160018260011c91506001831680613c1157607f831692505b602083108103613c2f57634e487b7160e01b85526022600452602485fd5b6080880183905260a08801818015613c4e5760018114613c6457613c8f565b60ff198616825284151560051b82019650613c8f565b60008d81526020902060005b86811015613c8957815484820152908501908901613c70565b83019750505b505050505050613ca8604085018764ffffffffff169052565b8381036060850152613cba818661382e565b98975050505050505050565b60008060408385031215613cd957600080fd5b82516001600160401b0380821115613cf057600080fd5b818501915085601f830112613d0457600080fd5b81516020613d14613b2e83613a5c565b82815260059290921b84018101918181019089841115613d3357600080fd5b948201945b83861015613d5157855182529482019490820190613d38565b91880151919650909350505080821115613d6a57600080fd5b50613d7785828601613a7f565b9150509250929050565b60006020808385031215613d9457600080fd5b82516001600160401b03811115613daa57600080fd5b8301601f81018513613dbb57600080fd5b8051613dc9613b2e82613a5c565b81815260059190911b82018301908381019087831115613de857600080fd5b928401925b82841015611b74578351613e00816135e9565b82529284019290840190613ded565b600060208284031215613e2157600080fd5b81516111a2816135e9565b60006111a2838361391e565b60008351613e4a81846020880161380a565b92151560f81b9190920190815260010192915050565b838152826020820152606060408201526000610dc2606083018461382e565b8181036000831280158383131683831282161715613730576137306136d4565b6000600160ff1b8201613eb457613eb46136d4565b5060000390565b80516001600160501b038116811461090657600080fd5b600080600080600060a08688031215613eea57600080fd5b613ef386613ebb565b9450602086015193506040860151925060608601519150613f1660808701613ebb565b90509295509295909350565b6001600160501b03828116828216039080821115613730576137306136d4565b6020808252825182820181905260009190848201906040850190845b81811015613f8057835163ffffffff1683529284019291840191600101613f5e565b50909695505050505050565b600082601f830112613f9d57600080fd5b81516020613fad613b2e83613a5c565b8083825260208201915060208460051b870101935086841115613fcf57600080fd5b602086015b84811015613ff4578051613fe7816135e9565b8352918301918301613fd4565b509695505050505050565b6000806040838503121561401257600080fd5b82516001600160401b038082111561402957600080fd5b818501915085601f83011261403d57600080fd5b8151602061404d613b2e83613a5c565b82815260059290921b8401810191818101908984111561406c57600080fd5b948201945b8386101561409a5785518060060b811461408b5760008081fd5b82529482019490820190614071565b918801519196509093505050808211156140b357600080fd5b50613d7785828601613f8c565b600682810b9082900b03667fffffffffffff198112667fffffffffffff821317156108f7576108f76136d4565b60008160060b8360060b80614104576141046137e0565b667fffffffffffff19821460001982141615614122576141226136d4565b90059392505050565b60008260060b8061413e5761413e6137e0565b808360060b0791505092915050565b60008160020b627fffff198103614166576141666136d4565b600019019291505056fea26469706673582212200a3d4e44448ae0622beb91c890ee84e57c82ec85a2116164475fd961f6d03d4364736f6c63430008190033