0 txs
1 call
constructor
constructor(address _initialOwner, address _initialPauser, address _native)
functions
calculateDebtReceiveApproval
viewfunction calculateDebtReceiveApproval(address _flashFrom, uint256 _flashAmount) view returns (uint256 debtReceiveApproval)
calculateLeverageFee
viewfunction calculateLeverageFee(uint256 _amount) view returns (uint256 leverageFeeAmount)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
FEE_PRECISION
viewfunction FEE_PRECISION() view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
getRoleMembers
viewfunction getRoleMembers(bytes32 role) view returns (address[])
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
LEVERAGE_IMPLEMENTATION
viewfunction LEVERAGE_IMPLEMENTATION() view returns (address)
leverageFee
viewfunction leverageFee() view returns (uint256)
MAX_LEVERAGE_FEE
viewfunction MAX_LEVERAGE_FEE() view returns (uint256)
OWNER_ROLE
viewfunction OWNER_ROLE() view returns (bytes32)
paused
viewfunction paused() view returns (bool)
PAUSER_ADMIN_ROLE
viewfunction PAUSER_ADMIN_ROLE() view returns (bytes32)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
predictUserLeverageContract
viewfunction predictUserLeverageContract(address _user) view returns (address leverageContract)
revenueReceiver
viewfunction revenueReceiver() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
userLeverageContract
viewfunction userLeverageContract(address user) view returns (address leverageContract)
closeLeveragePosition
nonpayablefunction closeLeveragePosition(bytes _swapArgs, tuple _closeLeverageArgs)
closeLeveragePositionPermit
nonpayablefunction closeLeveragePositionPermit(bytes _swapArgs, tuple _closeLeverageArgs, tuple _withdrawAllowance)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
openLeveragePosition
payablefunction openLeveragePosition(tuple _flashArgs, bytes _swapArgs, tuple _depositArgs) payable
openLeveragePositionPermit
nonpayablefunction openLeveragePositionPermit(tuple _flashArgs, bytes _swapArgs, tuple _depositArgs, tuple _depositAllowance)
pause
nonpayablefunction pause()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setLeverageFee
nonpayablefunction setLeverageFee(uint256 _fee)
setRevenueReceiver
nonpayablefunction setRevenueReceiver(address _receiver)
unpause
nonpayablefunction unpause()
events
LeverageContractCreated
event LeverageContractCreated(address indexed user, address indexed leverageContract)
LeverageFeeChanged
event LeverageFeeChanged(uint256 leverageFee)
Paused
event Paused(address account)
RevenueReceiverChanged
event RevenueReceiverChanged(address indexed receiver)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Unpaused
event Unpaused(address account)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
FailedDeployment
error FailedDeployment()
FeeDidNotChanged
error FeeDidNotChanged()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
InvalidFee
error InvalidFee()
ReceiverDidNotChanged
error ReceiverDidNotChanged()
ReceiverZero
error ReceiverZero()
creation bytecode
0x60a060405234801561000f575f5ffd5b50604051614f7f380380614f7f83398101604081905261002e9161028e565b6002805460ff1916905561005c5f516020614f5f5f395f51905f525f516020614f3f5f395f51905f526100eb565b6100665f84610135565b5061007e5f516020614f5f5f395f51905f5283610135565b506100965f516020614f3f5f395f51905f5284610135565b5030816040516100a590610266565b6001600160a01b03928316815291166020820152604001604051809103905ff0801580156100d5573d5f5f3e3d5ffd5b506001600160a01b0316608052506102ce915050565b5f82815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b5f80610141848461016b565b90508015610162575f8481526001602052604090206101609084610212565b505b90505b92915050565b5f828152602081815260408083206001600160a01b038516845290915281205460ff1661020b575f838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556101c33390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4506001610165565b505f610165565b5f610162836001600160a01b0384165f81815260018301602052604081205461020b57508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610165565b6131c080611d7f83390190565b80516001600160a01b0381168114610289575f5ffd5b919050565b5f5f5f606084860312156102a0575f5ffd5b6102a984610273565b92506102b760208501610273565b91506102c560408501610273565b90509250925092565b608051611a8b6102f45f395f81816104c101528181610a2d0152610df80152611a8b5ff3fe6080604052600436106101d0575f3560e01c8063936a13fe116100fd578063d547741f11610092578063ee8b380911610062578063ee8b380914610550578063f00fe0161461056f578063f088aa73146105a3578063fab7c409146105b8575f5ffd5b8063d547741f146104e3578063e58378bb146103f5578063e63a391f14610502578063e63ab1e91461051d575f5ffd5b8063ae52e04a116100cd578063ae52e04a14610453578063c1a793e014610472578063ca15c87314610491578063d490c8ca146104b0575f5ffd5b8063936a13fe146103d6578063a217fddf146103f5578063a3246ad314610408578063a687d49d14610434575f5ffd5b80634ffadff411610173578063852293ea11610143578063852293ea146103475780638cc267d2146103665780639010d07c1461038057806391d14854146103b7575f5ffd5b80634ffadff4146102ea5780635c975abb146103095780635d0c6930146103205780638456cb5914610333575f5ffd5b80632f2ff15d116101ae5780632f2ff15d1461027757806336568abe146102985780633f4ba83a146102b75780634f6dc09e146102cb575f5ffd5b806301ffc9a7146101d4578063248a9ca31461020857806325a0047314610244575b5f5ffd5b3480156101df575f5ffd5b506101f36101ee3660046113e9565b6105d7565b60405190151581526020015b60405180910390f35b348015610213575f5ffd5b50610236610222366004611410565b5f9081526020819052604090206001015490565b6040519081526020016101ff565b34801561024f575f5ffd5b506102367fe0e65c783ac33ff1c5ccf4399c9185066773921d6f8d050bf80781603021f09781565b348015610282575f5ffd5b5061029661029136600461143b565b610601565b005b3480156102a3575f5ffd5b506102966102b236600461143b565b61062b565b3480156102c2575f5ffd5b50610296610663565b3480156102d6575f5ffd5b506102966102e5366004611469565b610698565b3480156102f5575f5ffd5b506102966103043660046114e9565b610741565b348015610314575f5ffd5b5060025460ff166101f3565b61029661032e36600461155d565b6107bd565b34801561033e575f5ffd5b5061029661083a565b348015610352575f5ffd5b506102366103613660046115b5565b61086c565b348015610371575f5ffd5b5061023666b1a2bc2ec5000081565b34801561038b575f5ffd5b5061039f61039a3660046115df565b6109c6565b6040516001600160a01b0390911681526020016101ff565b3480156103c2575f5ffd5b506101f36103d136600461143b565b6109e4565b3480156103e1575f5ffd5b5061039f6103f0366004611469565b610a0c565b348015610400575f5ffd5b506102365f81565b348015610413575f5ffd5b50610427610422366004611410565b610a9c565b6040516101ff91906115ff565b34801561043f575f5ffd5b5061029661044e36600461164a565b610ab5565b34801561045e575f5ffd5b5060045461039f906001600160a01b031681565b34801561047d575f5ffd5b5061023661048c366004611410565b610b2e565b34801561049c575f5ffd5b506102366104ab366004611410565b610b6b565b3480156104bb575f5ffd5b5061039f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ee575f5ffd5b506102966104fd36600461143b565b610b81565b34801561050d575f5ffd5b50610236670de0b6b3a764000081565b348015610528575f5ffd5b506102367f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b34801561055b575f5ffd5b5061029661056a36600461169b565b610ba5565b34801561057a575f5ffd5b5061039f610589366004611469565b60056020525f90815260409020546001600160a01b031681565b3480156105ae575f5ffd5b5061023660035481565b3480156105c3575f5ffd5b506102966105d2366004611410565b610c06565b5f6001600160e01b03198216635a05180f60e01b14806105fb57506105fb82610cbe565b92915050565b5f8281526020819052604090206001015461061b81610cf2565b6106258383610cfc565b50505050565b6001600160a01b03811633146106545760405163334bd91960e11b815260040160405180910390fd5b61065e8282610d2f565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61068d81610cf2565b610695610d5a565b50565b5f6106a281610cf2565b6004546001600160a01b038084169116036106d05760405163045be8db60e31b815260040160405180910390fd5b6001600160a01b0382166106f75760405163220a42fb60e11b815260040160405180910390fd5b600480546001600160a01b0319166001600160a01b0384169081179091556040517f52b259f049e62561a54b2a991347b9fc60fe163d8ca148d83ecc5e89cf2e9a56905f90a25050565b610749610dac565b5f610752610dd2565b604051636115a29f60e01b81529091506001600160a01b03821690636115a29f9061078990339089908990899089906004016117fb565b5f604051808303815f87803b1580156107a0575f5ffd5b505af11580156107b2573d5f5f3e3d5ffd5b505050505050505050565b6107c5610dac565b5f6107ce610dd2565b9050806001600160a01b03166365fd7c8f3433888888886040518763ffffffff1660e01b8152600401610805959493929190611893565b5f604051808303818588803b15801561081c575f5ffd5b505af115801561082e573d5f5f3e3d5ffd5b50505050505050505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61086481610cf2565b610695610e87565b5f5f836001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ce91906118d1565b604051633676633960e21b81526001600160a01b038083166004830152602482018690529192505f9186169063d9d98ce490604401602060405180830381865afa15801561091e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061094291906118ec565b61094c9085611917565b604051635d4086af60e01b81529091506001600160a01b03861690635d4086af9061097e90849060029060040161192a565b602060405180830381865afa158015610999573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bd91906118ec565b95945050505050565b5f8281526001602052604081206109dd9083610ec4565b9392505050565b5f918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6040513060388201526f5af43d82803e903d91602b57fd5bf3ff60248201527f00000000000000000000000000000000000000000000000000000000000000006014820152733d602d80600a3d3981f3363d3d373d3d3d363d7381526bffffffffffffffffffffffff19606083901b1660588201526037600c820120607882015260556043909101205f906105fb565b5f8181526001602052604090206060906105fb90610ecf565b610abd610dac565b5f610ac6610dd2565b60405163a9a7855f60e01b81529091506001600160a01b0382169063a9a7855f90610afb90339088908890889060040161194e565b5f604051808303815f87803b158015610b12575f5ffd5b505af1158015610b24573d5f5f3e3d5ffd5b5050505050505050565b6003545f90808203610b4257505f92915050565b610b578382670de0b6b3a76400006001610edb565b9150815f03610b6557600191505b50919050565b5f8181526001602052604081206105fb90610f1d565b5f82815260208190526040902060010154610b9b81610cf2565b6106258383610d2f565b610bad610dac565b5f610bb6610dd2565b604051637046240760e11b81529091506001600160a01b0382169063e08c480e90610bef9033908a908a908a908a908a90600401611981565b5f604051808303815f87803b15801561081c575f5ffd5b5f610c1081610cf2565b6004546001600160a01b0316610c395760405163220a42fb60e11b815260040160405180910390fd5b8160035403610c5b576040516341cadab560e01b815260040160405180910390fd5b66b1a2bc2ec500008210610c82576040516358d620b360e01b815260040160405180910390fd5b60038290556040518281527fa2a1c3487ac8d2713d66becf0a4401fbb3181d84471f17bf16626589bb87ee569060200160405180910390a15050565b5f6001600160e01b03198216637965db0b60e01b14806105fb57506301ffc9a760e01b6001600160e01b03198316146105fb565b6106958133610f26565b5f5f610d088484610f68565b905080156109dd575f848152600160205260409020610d279084610ff7565b509392505050565b5f5f610d3b848461100b565b905080156109dd575f848152600160205260409020610d279084611074565b610d62611088565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60025460ff1615610dd05760405163d93c066560e01b815260040160405180910390fd5b565b335f908152600560205260409020546001600160a01b03168015610df35790565b610e2f7f00000000000000000000000000000000000000000000000000000000000000003360601b6bffffffffffffffffffffffff19166110ab565b335f8181526005602052604080822080546001600160a01b0319166001600160a01b0386169081179091559051939450927fac32498cf97ec4b941d0442df1edb1bdb5ae774a3afae0d714fbe32e44753ed99190a390565b610e8f610dac565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610d8f3390565b5f6109dd83836110b7565b60605f6109dd836110dd565b5f610f08610ee883611136565b8015610f0357505f8480610efe57610efe6119d9565b868809115b151590565b610f13868686611162565b6109bd9190611917565b5f6105fb825490565b610f3082826109e4565b610f645760405163e2517d3f60e01b81526001600160a01b0382166004820152602481018390526044015b60405180910390fd5b5050565b5f610f7383836109e4565b610ff0575f838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055610fa83390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016105fb565b505f6105fb565b5f6109dd836001600160a01b03841661121f565b5f61101683836109e4565b15610ff0575f838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016105fb565b5f6109dd836001600160a01b038416611264565b60025460ff16610dd057604051638dfc202b60e01b815260040160405180910390fd5b5f6109dd83835f611347565b5f825f0182815481106110cc576110cc6119ed565b905f5260205f200154905092915050565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561112a57602002820191905f5260205f20905b815481526020019060010190808311611116575b50505050509050919050565b5f600282600381111561114b5761114b61174b565b6111559190611a01565b60ff166001149050919050565b5f838302815f1985870982811083820303915050805f036111965783828161118c5761118c6119d9565b04925050506109dd565b8084116111b4576111b484156111ad5760116113d8565b60126113d8565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f818152600183016020526040812054610ff057508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556105fb565b5f818152600183016020526040812054801561133e575f611286600183611a2e565b85549091505f9061129990600190611a2e565b90508082146112f8575f865f0182815481106112b7576112b76119ed565b905f5260205f200154905080875f0184815481106112d7576112d76119ed565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061130957611309611a41565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506105fb565b5f9150506105fb565b5f814710156113725760405163cf47918160e01b815247600482015260248101839052604401610f5b565b6e5af43d82803e903d91602b57fd5bf360205283601152763d602d80600a3d3981f3363d3d373d3d3d363d730000008460881c175f52826037600984f590506001600160a01b0381166109dd5760405163b06ebf3d60e01b815260040160405180910390fd5b634e487b715f52806020526024601cfd5b5f602082840312156113f9575f5ffd5b81356001600160e01b0319811681146109dd575f5ffd5b5f60208284031215611420575f5ffd5b5035919050565b6001600160a01b0381168114610695575f5ffd5b5f5f6040838503121561144c575f5ffd5b82359150602083013561145e81611427565b809150509250929050565b5f60208284031215611479575f5ffd5b81356109dd81611427565b5f5f83601f840112611494575f5ffd5b50813567ffffffffffffffff8111156114ab575f5ffd5b6020830191508360208285010111156114c2575f5ffd5b9250929050565b5f60608284031215610b65575f5ffd5b5f60a08284031215610b65575f5ffd5b5f5f5f5f61012085870312156114fd575f5ffd5b843567ffffffffffffffff811115611513575f5ffd5b61151f87828801611484565b9095509350611533905086602087016114c9565b915061154286608087016114d9565b905092959194509250565b5f60408284031215610b65575f5ffd5b5f5f5f5f60c08587031215611570575f5ffd5b61157a868661154d565b9350604085013567ffffffffffffffff811115611595575f5ffd5b6115a187828801611484565b9094509250611542905086606087016114c9565b5f5f604083850312156115c6575f5ffd5b82356115d181611427565b946020939093013593505050565b5f5f604083850312156115f0575f5ffd5b50508035926020909101359150565b602080825282518282018190525f918401906040840190835b8181101561163f5783516001600160a01b0316835260209384019390920191600101611618565b509095945050505050565b5f5f5f6080848603121561165c575f5ffd5b833567ffffffffffffffff811115611672575f5ffd5b61167e86828701611484565b9094509250611692905085602086016114c9565b90509250925092565b5f5f5f5f5f61016086880312156116b0575f5ffd5b6116ba878761154d565b9450604086013567ffffffffffffffff8111156116d5575f5ffd5b6116e188828901611484565b90955093506116f5905087606088016114c9565b91506117048760c088016114d9565b90509295509295909350565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b803560028110611746575f5ffd5b919050565b634e487b7160e01b5f52602160045260245ffd5b6002811061176f5761176f61174b565b9052565b803561177e81611427565b6001600160a01b03168252602081013561179781611427565b6001600160a01b031660208301526117b160408201611738565b61065e604084018261175f565b8035825260208082013590830152604081013560ff81168082146117e0575f5ffd5b60408401525060608181013590830152608090810135910152565b6001600160a01b0386168152610140602082018190525f906118209083018688611710565b905061182f6040830185611773565b61183c60a08301846117be565b9695505050505050565b803561185181611427565b6001600160a01b03168252602090810135910152565b803561187281611427565b6001600160a01b03168252602081810135908301526117b160408201611738565b6001600160a01b03861681526118ac6020820186611846565b60e060608201525f6118c260e083018587611710565b905061183c6080830184611867565b5f602082840312156118e1575f5ffd5b81516109dd81611427565b5f602082840312156118fc575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156105fb576105fb611903565b82815260408101600383106119415761194161174b565b8260208301529392505050565b6001600160a01b038516815260a0602082018190525f906119729083018587611710565b90506109bd6040830184611773565b6001600160a01b038716815261199a6020820187611846565b61018060608201525f6119b261018083018688611710565b90506119c16080830185611867565b6119ce60e08301846117be565b979650505050505050565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60ff831680611a1f57634e487b7160e01b5f52601260045260245ffd5b8060ff84160691505092915050565b818103818111156105fb576105fb611903565b634e487b7160e01b5f52603160045260245ffdfea26469706673582212200a96b60d1c9f9a28a79c7334219ad53b56279dc3c1fe49f02a8890601107338a64736f6c634300081c003360e060405234801561000f575f5ffd5b506040516131c03803806131c083398101604081905261002e916100cb565b6001600160a01b038083166080528190811661005d57604051633ce3edfd60e01b815260040160405180910390fd5b6001600160a01b031660a052604051610075906100a3565b604051809103905ff08015801561008e573d5f5f3e3d5ffd5b506001600160a01b031660c052506100fc9050565b6107a180612a1f83390190565b80516001600160a01b03811681146100c6575f5ffd5b919050565b5f5f604083850312156100dc575f5ffd5b6100e5836100b0565b91506100f3602084016100b0565b90509250929050565b60805160a05160c0516128bb6101645f395f818160cf0152818161179801526117d401525f818161014c0152611cb201525f818161017f01528181610296015281816105820152818161088e01528181610c5801528181610f47015261190101526128bb5ff3fe608060405260043610610099575f3560e01c80636115a29f116100625780636115a29f146101a157806365fd7c8f146101c0578063a9a7855f146101d3578063d7c17d32146101f2578063e08c480e14610206578063f1ae885614610225575f5ffd5b8062ae3bf81461009d578063110e10f5146100be57806323e30c8b1461010e57806331f7d9641461013b57806332fe7b261461016e575b5f5ffd5b3480156100a8575f5ffd5b506100bc6100b7366004611ea2565b610246565b005b3480156100c9575f5ffd5b506100f17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610119575f5ffd5b5061012d610128366004611f01565b610429565b604051908152602001610105565b348015610146575f5ffd5b506100f17f000000000000000000000000000000000000000000000000000000000000000081565b348015610179575f5ffd5b506100f17f000000000000000000000000000000000000000000000000000000000000000081565b3480156101ac575f5ffd5b506100bc6101bb366004611f9d565b61053c565b6100bc6101ce366004612022565b610577565b3480156101de575f5ffd5b506100bc6101ed36600461208a565b610883565b3480156101fd575f5ffd5b506100bc610c08565b348015610211575f5ffd5b506100bc6102203660046120ed565b610dbf565b348015610230575f5ffd5b50610239610e53565b60405161010591906121a0565b60ff5f5c161561026957604051633ee5aeb560e01b815260040160405180910390fd5b60015f805c60ff19168217905d506040516349b509ff60e11b815233600482015230906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063936a13fe90602401602060405180830381865afa1580156102db573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102ff91906121b2565b6001600160a01b0316146103265760405163b46716cd60e01b815260040160405180910390fd5b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa15801561036a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038e91906121cd565b905081816103c05760405163a4dfec7160e01b81526001600160a01b0390911660048201526024015b60405180910390fd5b50336103d66001600160a01b0384168284610e6f565b826001600160a01b03167f68f67de89e96b13a3ea058af5fd44cc125efceb528482d539c7b43db2faa066e8360405161041191815260200190565b60405180910390a2505f905060ff19815c16815d5050565b5f60025c6001600160a01b03163314610455576040516301176be360e51b815260040160405180910390fd5b600160ff600160a01b60015c04166002811115610474576104746121e4565b0361048a5761048585858585610ed3565b6104d4565b600260ff600160a01b60015c041660028111156104a9576104a96121e4565b036104bb576104858686868686611164565b60405163211bf9ef60e21b815260040160405180910390fd5b6104fe6001600160a01b0360025c166104ed868861220c565b6001600160a01b0389169190611482565b5f6002805c6001600160a01b031916905d507f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd9979650505050505050565b6105648561054f368490038401846122ad565b61055f6040860160208701611ea2565b611517565b61057085858585610883565b5050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105c057604051639e41bdd760e01b815260040160405180910390fd5b60ff5f5c16156105e357604051633ee5aeb560e01b815260040160405180910390fd5b60015f805c60ff19168217905d50846105ff6020830183611ea2565b600161060e6020880188611ea2565b806002805c6001600160a01b0319166001600160a01b03831617905d5081600160ff60a01b19815c16600160a01b83600281111561064e5761064e6121e4565b0217905d50835f60016101000a815c816001600160a01b0302191690836001600160a01b03160217905d50826001600160a01b03166379502c556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d991906121b2565b6001805c6001600160a01b0319166001600160a01b03831617905d50348060035d506107086020890189611ea2565b6001600160a01b0316635cffe9de3061072460208c018c611ea2565b6001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561075f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078391906121b2565b8b602001358b8b8b60405160200161079d93929190612365565b6040516020818303038152906040526040518563ffffffff1660e01b81526004016107cb94939291906123c4565b6020604051808303815f875af11580156107e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061080b91906123f6565b610828576040516301fabd5b60e71b815260040160405180910390fd5b5f6002805c6001600160a01b031916905d505f6001805c60ff60a01b1916905d505f610100600160a81b0319815c16815d505f6001805c6001600160a01b031916905d505f93505050815c60ff19169050815d505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108cc57604051639e41bdd760e01b815260040160405180910390fd5b60ff5f5c16156108ef57604051633ee5aeb560e01b815260040160405180910390fd5b60015f805c60ff19168217905d508361090e6040830160208401611ea2565b600261091d6020850185611ea2565b806002805c6001600160a01b0319166001600160a01b03831617905d5081600160ff60a01b19815c16600160a01b83600281111561095d5761095d6121e4565b0217905d50835f60016101000a815c816001600160a01b0302191690836001600160a01b03160217905d50826001600160a01b03166379502c556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109e891906121b2565b6001805c6001600160a01b0319166001600160a01b03831617905d50610a116020860186611ea2565b6001600160a01b0316635cffe9de30610a2d6020890189611ea2565b6001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a68573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8c91906121b2565b610aa4610a9f60408b0160208c01611ea2565b6115b3565b604051635f30114960e01b81526001600160a01b038e811660048301529190911690635f30114990602401602060405180830381865afa158015610aea573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0e91906121cd565b8b8b8b604051602001610b2393929190612415565b6040516020818303038152906040526040518563ffffffff1660e01b8152600401610b5194939291906123c4565b6020604051808303815f875af1158015610b6d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9191906123f6565b610bae576040516301fabd5b60e71b815260040160405180910390fd5b5f6002805c6001600160a01b031916905d505f6001805c60ff60a01b1916905d505f610100600160a81b0319815c16815d505f6001805c6001600160a01b031916905d505f93505050815c60ff19169050815d5050505050565b60ff5f5c1615610c2b57604051633ee5aeb560e01b815260040160405180910390fd5b60015f805c60ff19168217905d506040516349b509ff60e11b815233600482015230906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063936a13fe90602401602060405180830381865afa158015610c9d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc191906121b2565b6001600160a01b031614610ce85760405163b46716cd60e01b815260040160405180910390fd5b475f81610d145760405163a4dfec7160e01b81526001600160a01b0390911660048201526024016103b7565b506040515f90339083908381818185875af1925050503d805f8114610d54576040519150601f19603f3d011682016040523d82523d5f602084013e610d59565b606091505b5050905080610d7b57604051630c08bcb960e21b815260040160405180910390fd5b6040518281525f907f68f67de89e96b13a3ea058af5fd44cc125efceb528482d539c7b43db2faa066e9060200160405180910390a2505f905060ff19815c16815d50565b610e3e86610dd2368490038401846122ad565b610ddf6020860186611ea2565b6001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e1a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055f91906121b2565b610e4b8686868686610577565b505050505050565b60405180606001604052806038815260200161284e6038913981565b6040516001600160a01b03838116602483015260448201839052610ece91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611699565b505050565b610ef3604080516060810182525f80825260208201819052909182015290565b5f6060610f02848601866124e8565b93509050610f1081886116fa565b9150505f818360200151610f24919061220c565b60405163060d3c9f60e51b8152600481018290529091505f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c1a793e090602401602060405180830381865afa158015610f8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fb091906121cd565b9050610fbc818361256e565b91505f845f01516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ffe573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061102291906121b2565b905061102f858483611854565b5f61103c865f01516115b3565b90506001600160a01b03811663d51641846110578b8d61220c565b60405160e083901b6001600160e01b031916815260048101919091523060248201526101005f5c046001600160a01b031660448201526064016020604051808303815f875af11580156110ac573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d091906121cd565b505060208501516001600160a01b036101005f5c0416907ff18030b7a463dc538970cd78fddc6f7046cfd4fc8bd4384144d29c15ed7bbab890868c876111168e8361220c565b604080519586526020860194909452928401919091526060830152608082015260a0810185905260c081018b905260e00160405180910390a261115981836118f6565b505050505050505050565b5f8061117283850185612581565b915091505f61118482602001516115b3565b905061119a6001600160a01b0389168289611482565b806001600160a01b031663e36754eb6111b283611994565b60405160e083901b6001600160e01b031916815260048101919091526101005f5c046001600160a01b031660248201526044016020604051808303815f875af1158015611201573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061122591906121cd565b505f61123083611a7d565b602084015160408086015190516306d29bb360e51b81529293505f926001600160a01b039283169263da537660926112789287923092610100895c0490911691600401612600565b6020604051808303815f875af1158015611294573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b891906121cd565b90505f6112c586836116fa565b90505f6112d28a8c61220c565b9050808210156112f55760405163f538c00760e01b815260040160405180910390fd5b5f611300828461256e565b604080518e8152602081018e9052908101859052606081018690529091506101005f5c046001600160a01b0316907ff59a5048755853e275aa7b0a7c402a10078f1d3d98657c90dfd06f581683dc779060800160405180910390a2801561137d5761137d6001600160a01b038e8116906101005f5c041683610e6f565b5f87602001516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113be573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113e291906121b2565b6040516370a0823160e01b81523060048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa158015611429573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061144d91906121cd565b90508015611471576114716001600160a01b03838116906101005f5c041683610e6f565b505050505050505050505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526114d38482611bbe565b611511576040516001600160a01b0384811660248301525f604483015261150791869182169063095ea7b390606401610e9c565b6115118482611699565b50505050565b8151602083015160408085015160608601516080870151925163d505accf60e01b81526001600160a01b0389811660048301523060248301526044820196909652606481019490945260ff909116608484015260a483015260c48201529082169063d505accf9060e4015f604051808303815f87803b158015611598575f5ffd5b505af19250505080156115a9575060015b15610ece57505050565b6040805163aecc90cb60e01b815281515f92839283926001600160a01b0360015c169263aecc90cb92600480820193918290030181865afa1580156115fa573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061161e919061262b565b91509150816001600160a01b0316846001600160a01b031614806116535750806001600160a01b0316846001600160a01b0316145b611670576040516306cc02d160e01b815260040160405180910390fd5b836001600160a01b0316826001600160a01b03161461168f5781611691565b805b949350505050565b5f6116ad6001600160a01b03841683611c5b565b905080515f141580156116d15750808060200190518101906116cf91906123f6565b155b15610ece57604051635274afe760e01b81526001600160a01b03841660048201526024016103b7565b5f5f838060200190518101906117109190612663565b60208101516040516370a0823160e01b81523060048201529192505f916001600160a01b03909116906370a0823190602401602060405180830381865afa15801561175d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178191906121cd565b60208301519091506117bd906001600160a01b03167f000000000000000000000000000000000000000000000000000000000000000083610e6f565b604051630a70b70160e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906329c2dc049061180b9085908890600401612757565b6020604051808303815f875af1158015611827573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061184b91906121cd565b95945050505050565b611862818460200151611c68565b8251611879906001600160a01b0383169084611482565b8251604080850151905163b7ec8d4b60e01b81526001600160a01b039283169263b7ec8d4b926118b69287926101005f5c041691906004016127ca565b6020604051808303815f875af11580156118d2573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061151191906121cd565b8015611990576119907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ae52e04a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561195b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061197f91906121b2565b6001600160a01b0384169083610e6f565b5050565b604051630483b24f60e41b81526001600160a01b0382811660048301525f91829160015c169063483b24f090602401606060405180830381865afa1580156119de573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a0291906127ed565b6040516370a0823160e01b81526001600160a01b036101005f5c048116600483015291945090841692506370a0823191506024015b602060405180830381865afa158015611a52573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a7691906121cd565b9392505050565b5f600182604001516001811115611a9657611a966121e4565b03611b145760208201516040516370a0823160e01b81526001600160a01b036101005f5c0481166004830152909116906370a0823190602401602060405180830381865afa158015611aea573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b0e91906121cd565b92915050565b6020820151604051630483b24f60e41b81526001600160a01b0391821660048201525f9160015c169063483b24f090602401606060405180830381865afa158015611b61573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8591906127ed565b50506040516370a0823160e01b81526001600160a01b036101005f5c0481166004830152919250908216906370a0823190602401611a37565b5f5f5f846001600160a01b031684604051611bd99190612837565b5f604051808303815f865af19150503d805f8114611c12576040519150601f19603f3d011682016040523d82523d5f602084013e611c17565b606091505b5091509150818015611c41575080511580611c41575080806020019051810190611c4191906123f6565b801561184b5750505050506001600160a01b03163b151590565b6060611a7683835f611d2d565b60035c5f03611c8e576119906001600160a01b03838116906101005f5c04163084611dcd565b8060035c14611cb0576040516337a515db60e21b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db060035c6040518263ffffffff1660e01b81526004015f604051808303818588803b158015611d0b575f5ffd5b505af1158015611d1d573d5f5f3e3d5ffd5b50505050505f600381905d505050565b606081471015611d595760405163cf47918160e01b8152476004820152602481018390526044016103b7565b5f5f856001600160a01b03168486604051611d749190612837565b5f6040518083038185875af1925050503d805f8114611dae576040519150601f19603f3d011682016040523d82523d5f602084013e611db3565b606091505b5091509150611dc3868383611e06565b9695505050505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526115119186918216906323b872dd90608401610e9c565b606082611e1b57611e1682611e62565b611a76565b8151158015611e3257506001600160a01b0384163b155b15611e5b57604051639996b31560e01b81526001600160a01b03851660048201526024016103b7565b5080611a76565b805115611e725780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b0381168114611e8b575f5ffd5b5f60208284031215611eb2575f5ffd5b8135611a7681611e8e565b5f5f83601f840112611ecd575f5ffd5b5081356001600160401b03811115611ee3575f5ffd5b602083019150836020828501011115611efa575f5ffd5b9250929050565b5f5f5f5f5f5f60a08789031215611f16575f5ffd5b8635611f2181611e8e565b95506020870135611f3181611e8e565b9450604087013593506060870135925060808701356001600160401b03811115611f59575f5ffd5b611f6589828a01611ebd565b979a9699509497509295939492505050565b5f60608284031215611f87575f5ffd5b50919050565b5f60a08284031215611f87575f5ffd5b5f5f5f5f5f6101408688031215611fb2575f5ffd5b8535611fbd81611e8e565b945060208601356001600160401b03811115611fd7575f5ffd5b611fe388828901611ebd565b9095509350611ff790508760408801611f77565b91506120068760a08801611f8d565b90509295509295909350565b5f60408284031215611f87575f5ffd5b5f5f5f5f5f60e08688031215612036575f5ffd5b853561204181611e8e565b94506120508760208801612012565b935060608601356001600160401b0381111561206a575f5ffd5b61207688828901611ebd565b909450925061200690508760808801611f77565b5f5f5f5f60a0858703121561209d575f5ffd5b84356120a881611e8e565b935060208501356001600160401b038111156120c2575f5ffd5b6120ce87828801611ebd565b90945092506120e290508660408701611f77565b905092959194509250565b5f5f5f5f5f5f6101808789031215612103575f5ffd5b863561210e81611e8e565b955061211d8860208901612012565b945060608701356001600160401b03811115612137575f5ffd5b61214389828a01611ebd565b909550935061215790508860808901611f77565b91506121668860e08901611f8d565b90509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f611a766020830184612172565b5f602082840312156121c2575f5ffd5b8151611a7681611e8e565b5f602082840312156121dd575f5ffd5b5051919050565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115611b0e57611b0e6121f8565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b03811182821017156122555761225561221f565b60405290565b604051606081016001600160401b03811182821017156122555761225561221f565b604051601f8201601f191681016001600160401b03811182821017156122a5576122a561221f565b604052919050565b5f60a08284031280156122be575f5ffd5b506122c7612233565b8235815260208084013590820152604083013560ff811681146122e8575f5ffd5b6040820152606083810135908201526080928301359281019290925250919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b803560028110612340575f5ffd5b919050565b6002811061236157634e487b7160e01b5f52602160045260245ffd5b9052565b608081525f61237860808301858761230a565b9050823561238581611e8e565b6001600160a01b03166020838101919091528301356040808401919091526123ae908401612332565b6123bb6060840182612345565b50949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90611dc390830184612172565b5f60208284031215612406575f5ffd5b81518015158114611a76575f5ffd5b608081525f61242860808301858761230a565b9050823561243581611e8e565b6001600160a01b031660208381019190915283013561245381611e8e565b6001600160a01b03166040838101919091526123ae908401612332565b5f6001600160401b038211156124885761248861221f565b50601f01601f191660200190565b5f82601f8301126124a5575f5ffd5b81356124b86124b382612470565b61227d565b8181528460208386010111156124cc575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f82840360808112156124fa575f5ffd5b83356001600160401b0381111561250f575f5ffd5b61251b86828701612496565b9350506060601f198201121561252f575f5ffd5b5061253861225b565b602084013561254681611e8e565b81526040840135602082015261255e60608501612332565b6040820152809150509250929050565b81810381811115611b0e57611b0e6121f8565b5f5f8284036080811215612593575f5ffd5b83356001600160401b038111156125a8575f5ffd5b6125b486828701612496565b9350506060601f19820112156125c8575f5ffd5b506125d161225b565b60208401356125df81611e8e565b815260408401356125ef81611e8e565b602082015261255e60608501612332565b8481526001600160a01b038481166020830152831660408201526080810161184b6060830184612345565b5f5f6040838503121561263c575f5ffd5b825161264781611e8e565b602084015190925061265881611e8e565b809150509250929050565b5f60208284031215612673575f5ffd5b81516001600160401b03811115612688575f5ffd5b820160a08185031215612699575f5ffd5b6126a1612233565b81516126ac81611e8e565b815260208201516126bc81611e8e565b602082015260408201516126cf81611e8e565b604082015260608201516126e281611e8e565b606082015260808201516001600160401b038111156126ff575f5ffd5b80830192505084601f830112612713575f5ffd5b81516127216124b382612470565b818152866020838601011115612735575f5ffd5b8160208501602083015e5f918101602001919091526080820152949350505050565b6040815260018060a01b03835116604082015260018060a01b03602084015116606082015260018060a01b03604084015116608082015260018060a01b0360608401511660a08201525f608084015160a060c08401526127ba60e0840182612172565b9150508260208301529392505050565b8381526001600160a01b0383166020820152606081016116916040830184612345565b5f5f5f606084860312156127ff575f5ffd5b835161280a81611e8e565b602085015190935061281b81611e8e565b604085015190925061282c81611e8e565b809150509250925092565b5f82518060208501845e5f92019182525091905056fe4c6576657261676520776974682073696c6f20666c6173686c6f616e20616e6420307820286f7220636f6d70617469626c65292073776170a264697066735822122097a202a7af3001754402d79a4cdff4281be06c554d6ed87c0d90c4a01c7bf1c664736f6c634300081c00336080604052348015600e575f5ffd5b506107858061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c806329c2dc041461002d575b5f5ffd5b61004061003b3660046105f3565b610052565b60405190815260200160405180910390f35b81515f906001600160a01b031661007c576040516301fa152160e31b815260040160405180910390fd5b6100a283606001518385602001516001600160a01b03166101609092919063ffffffff16565b5f5f845f01516001600160a01b031685608001516040516100c39190610703565b5f604051808303815f865af19150503d805f81146100fc576040519150601f19603f3d011682016040523d82523d5f602084013e610101565b606091505b50915091508161011b5761011b8162e902f160e21b610223565b610128856040015161023f565b9250825f0361014a57604051631125efa160e21b815260040160405180910390fd5b610157856020015161023f565b50505092915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526101b184826102c8565b61021d576040516001600160a01b0384811660248301525f604483015261021391869182169063095ea7b3906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610369565b61021d8482610369565b50505050565b81511561023257815182602001fd5b61023b816103d4565b5050565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610283573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a79190610719565b905080156102c3576102c36001600160a01b0383163383610405565b919050565b5f5f5f846001600160a01b0316846040516102e39190610703565b5f604051808303815f865af19150503d805f811461031c576040519150601f19603f3d011682016040523d82523d5f602084013e610321565b606091505b509150915081801561034b57508051158061034b57508080602001905181019061034b9190610730565b801561036057505f856001600160a01b03163b115b95945050505050565b5f61037d6001600160a01b03841683610436565b905080515f141580156103a157508080602001905181019061039f9190610730565b155b156103cf57604051635274afe760e01b81526001600160a01b03841660048201526024015b60405180910390fd5b505050565b6040805160048152602481019091526020810180516001600160e01b03166001600160e01b03198416178152815190fd5b6040516001600160a01b038381166024830152604482018390526103cf91859182169063a9059cbb906064016101e1565b606061044383835f61044a565b9392505050565b6060814710156104765760405163cf47918160e01b8152476004820152602481018390526044016103c6565b5f5f856001600160a01b031684866040516104919190610703565b5f6040518083038185875af1925050503d805f81146104cb576040519150601f19603f3d011682016040523d82523d5f602084013e6104d0565b606091505b50915091506104e08683836104ea565b9695505050505050565b6060826104ff576104fa82610546565b610443565b815115801561051657506001600160a01b0384163b155b1561053f57604051639996b31560e01b81526001600160a01b03851660048201526024016103c6565b5080610443565b8051156105565780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b60405160a0810167ffffffffffffffff811182821017156105a6576105a661056f565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156105d5576105d561056f565b604052919050565b80356001600160a01b03811681146102c3575f5ffd5b5f5f60408385031215610604575f5ffd5b823567ffffffffffffffff81111561061a575f5ffd5b830160a0818603121561062b575f5ffd5b610633610583565b61063c826105dd565b815261064a602083016105dd565b602082015261065b604083016105dd565b604082015261066c606083016105dd565b6060820152608082013567ffffffffffffffff81111561068a575f5ffd5b80830192505085601f83011261069e575f5ffd5b813567ffffffffffffffff8111156106b8576106b861056f565b6106cb601f8201601f19166020016105ac565b8181528760208386010111156106df575f5ffd5b816020850160208301375f6020928201830152608083015290969401359450505050565b5f82518060208501845e5f920191825250919050565b5f60208284031215610729575f5ffd5b5051919050565b5f60208284031215610740575f5ffd5b81518015158114610443575f5ffdfea26469706673582212209635c15127a4837f74d90b5654cad37454758be949556ae356c18a683fc597e164736f6c634300081c0033e0e65c783ac33ff1c5ccf4399c9185066773921d6f8d050bf80781603021f09765d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a000000000000000000000000e8e8041cb5e3158a0829a19e014ca1cf91098554000000000000000000000000e8e8041cb5e3158a0829a19e014ca1cf91098554000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2