0 txs
1 call
constructor
constructor(address initialOwner, address _auctioneer, address _permit2, address _stablecoin, address _collateralToken, address _cancelAuthoritiesManager)
functions
auctioneer
viewfunction auctioneer() view returns (address)
cancelAuthoritiesManager
viewfunction cancelAuthoritiesManager() view returns (address)
collateralToken
viewfunction collateralToken() view returns (address)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
lockedStablecoins
viewfunction lockedStablecoins(bytes32) view returns (uint256)
orderData
viewfunction orderData(bytes32 orderHash) view returns (tuple)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
permit2
viewfunction permit2() view returns (address)
stablecoin
viewfunction stablecoin() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
cancelOrder
nonpayablefunction cancelOrder(tuple orderInfo)
claimTokens
nonpayablefunction claimTokens(tuple orderInfo, tuple successConfirmation, bytes successConfirmationSignature, address recoverTokensReceiver)
createOrder
nonpayablefunction createOrder(tuple orderInfo)
renounceOwnership
nonpayablefunction renounceOwnership()
setAuctioneer
nonpayablefunction setAuctioneer(address newAuctioneer)
startOrderExecution
nonpayablefunction startOrderExecution(tuple orderInfo, bytes userSignature, tuple solverPermission, bytes auctioneerSignature)
startOrderExecutionWithSwap
nonpayablefunction startOrderExecutionWithSwap(tuple orderInfo, bytes userSignature, tuple solverPermission, bytes auctioneerSignature, address swapper, bytes swapData)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
AuctioneerSet
event AuctioneerSet(address newAuctioneer)
DcaOrderSuccessfullyFulfilled
event DcaOrderSuccessfullyFulfilled(bytes32 indexed orderHash)
EIP712DomainChanged
event EIP712DomainChanged()
ExecutionStart
event ExecutionStart(bytes32 indexed orderHash, address indexed solver, uint24 intervalNumber, uint32 deadline, uint128 protocolFee, uint128 collateralAmount)
FailedIntervalExecution
event FailedIntervalExecution(bytes32 indexed orderHash, uint24 intervalNumber, uint24 intervalIndex)
NewOrder
event NewOrder(bytes32 indexed orderHash, address indexed user, address tokenIn, uint32 startTime, uint32 deadline, uint24 totalIntervals, uint32 intervalDuration, uint128 amountInPerInterval, uint128 minStablecoinsAmountPerInterval, bytes32 executionDetailsHash, uint256 nonce)
OrderCancelledByUser
event OrderCancelledByUser(bytes32 indexed orderHash)
OrderIntervalSuccessfullyFulfilled
event OrderIntervalSuccessfullyFulfilled(bytes32 indexed orderHash, address indexed solver, uint24 intervalNumber, address recoverTokensReceiver)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
ProtocolFeesCollected
event ProtocolFeesCollected(address feeReceiver, uint256 amount)
SwappedToStablecoins
event SwappedToStablecoins(bytes32 indexed orderHash, uint24 intervalNumber, uint256 stablecoinsAmount)
TokensAreFullyRecovered
event TokensAreFullyRecovered(bytes32 indexed orderHash)
errors
AlreadyInitialized
error AlreadyInitialized()
AlreadySwapped
error AlreadySwapped()
BelowMinStablecoinsAmount
error BelowMinStablecoinsAmount(uint256)
CantStartOrderExecutionDuringThisInterval
error CantStartOrderExecutionDuringThisInterval()
FeeOnTransferTokensNotSupported
error FeeOnTransferTokensNotSupported()
IntervalWasAlreadyClaimed
error IntervalWasAlreadyClaimed()
InvalidAddress
error InvalidAddress()
InvalidAuctioneerSignature
error InvalidAuctioneerSignature()
InvalidIntervalDuration
error InvalidIntervalDuration()
InvalidOrder
error InvalidOrder()
InvalidPermission
error InvalidPermission()
InvalidShortString
error InvalidShortString()
InvalidSignature
error InvalidSignature()
InvalidSolverDeadline
error InvalidSolverDeadline()
InvalidSuccessConfirmation
error InvalidSuccessConfirmation()
NoReentrancy
error NoReentrancy()
NotAllowed
error NotAllowed()
NotAUserOrCancelAuthority
error NotAUserOrCancelAuthority()
NotSolver
error NotSolver()
NotUser
error NotUser()
OrderIsBeingProcessed
error OrderIsBeingProcessed()
OrderIsNotActive
error OrderIsNotActive()
OverdueDeadline
error OverdueDeadline()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
StringTooLong
error StringTooLong(string str)
SwapIsNotAllowed
error SwapIsNotAllowed()
creation bytecode
0x6101e060405234801561001157600080fd5b506040516156c23803806156c283398101604081905261003091610393565b604080518082018252601081526f14dbdd5c98d950da185a5b91dd585c9960821b602080830191909152825180840190935260018352603160f81b908301529086886001600160a01b0381166100a157604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6100aa816102a1565b506001600160a01b0381166100d25760405163e6c4247b60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b03929092169190911790556100fd8260036102bd565b6101205261010c8160046102bd565b61014052815160208084019190912060e052815190820120610100524660a05261019960e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526001600160a01b03831615806101bf57506001600160a01b038216155b806101d157506001600160a01b038616155b806101e357506001600160a01b038416155b156102015760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b03838116610180528281166101a0528481166101605260405163a04770f760e01b81523060048201529082169063a04770f790602401602060405180830381865afa15801561025b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027f919061041a565b1561028957600080fd5b6001600160a01b03166101c052506106129350505050565b600180546001600160a01b03191690556102ba816102f0565b50565b60006020835110156102d9576102d283610340565b90506102ea565b816102e484826104e2565b5060ff90505b92915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080829050601f8151111561036b578260405163305a27a960e01b815260040161009891906105a0565b8051610376826105ee565b179392505050565b6001600160a01b03811681146102ba57600080fd5b60008060008060008060c087890312156103ac57600080fd5b86516103b78161037e565b60208801519096506103c88161037e565b60408801519095506103d98161037e565b60608801519094506103ea8161037e565b60808801519093506103fb8161037e565b60a088015190925061040c8161037e565b809150509295509295509295565b60006020828403121561042c57600080fd5b8151801515811461043c57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061046d57607f821691505b60208210810361048d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156104dd57806000526020600020601f840160051c810160208510156104ba5750805b601f840160051c820191505b818110156104da57600081556001016104c6565b50505b505050565b81516001600160401b038111156104fb576104fb610443565b61050f816105098454610459565b84610493565b6020601f821160018114610543576000831561052b5750848201515b600019600385901b1c1916600184901b1784556104da565b600084815260208120601f198516915b828110156105735787850151825560209485019460019092019101610553565b50848210156105915786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b602081526000825180602084015260005b818110156105ce57602081860181015160408684010152016105b1565b506000604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561048d5760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051614fe46106de6000396000818161048301526113690152600081816102a201528181611761015281816121960152818161258f0152612ee70152600081816104c8015281816108720152818161093801528181610a07015261291b0152600081816101a101526133b50152600061297b015260006129490152600061406f0152600061404701526000613fa201526000613fcc01526000613ff60152614fe46000f3fe608060405234801561001057600080fd5b506004361061014f5760003560e01c806384b0196e116100cd578063e19bc33f11610081578063e9cbd82211610066578063e9cbd822146104c3578063f26426a6146104ea578063f2fde38b146104fd57600080fd5b8063e19bc33f1461047e578063e30c3978146104a557600080fd5b8063a78872c5116100b2578063a78872c51461028a578063b2016bd41461029d578063c4cd9ed3146102c457600080fd5b806384b0196e146102515780638da5cb5b1461026c57600080fd5b80635e63c57f11610124578063715018a611610109578063715018a61461022e57806379ba5097146102365780637b89c1d71461023e57600080fd5b80635e63c57f146101fb5780635ec2c7bf1461020e57600080fd5b80626973b814610154578062ede7e41461018757806312261ee71461019c5780632699fea0146101e8575b600080fd5b6101746101623660046140c0565b60066020526000908152604090205481565b6040519081526020015b60405180910390f35b61019a61019536600461410b565b610510565b005b6101c37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161017e565b61019a6101f636600461418a565b6105de565b61019a61020936600461426f565b610b53565b6002546101c39073ffffffffffffffffffffffffffffffffffffffff1681565b61019a61126d565b61019a611281565b61019a61024c36600461426f565b6112f8565b6102596118b0565b60405161017e97969594939291906142fa565b60005473ffffffffffffffffffffffffffffffffffffffff166101c3565b61019a6102983660046143bb565b611912565b6101c37f000000000000000000000000000000000000000000000000000000000000000081565b6104716102d23660046140c0565b604080516101008082018352600080835260208084018290528385018290526060808501839052608080860184905260a080870185905260c080880186905260e088018690528986526005855294889020885195860189525460ff811686526fffffffffffffffffffffffffffffffff878204168686015263ffffffff7101000000000000000000000000000000000082048116878b015275010000000000000000000000000000000000000000008204169386019390935262ffffff79010000000000000000000000000000000000000000000000000084048116928601929092527c010000000000000000000000000000000000000000000000000000000090920416908301528451928301855281516001908116151584528251811c81161515918401919091528151939491939183019160021c161515815260200182602001516fffffffffffffffffffffffffffffffff168152602001826040015163ffffffff168152602001826060015163ffffffff168152602001826080015162ffffff1681526020018260a0015162ffffff16815250915050919050565b60405161017e9190614458565b6101c37f000000000000000000000000000000000000000000000000000000000000000081565b60015473ffffffffffffffffffffffffffffffffffffffff166101c3565b6101c37f000000000000000000000000000000000000000000000000000000000000000081565b61019a6104f8366004614507565b611a62565b61019a61050b36600461410b565b611d50565b610518611e00565b73ffffffffffffffffffffffffffffffffffffffff8116610565576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f4ee0985a129917c72eab0afe7ec6060bf6c6e0796bedc42de903d9dbbadfc51d9060200160405180910390a150565b60006105f76105f2368c90038c018c614647565b611e53565b600081815260056020908152604091829020825160c081018452905460ff811682526fffffffffffffffffffffffffffffffff6101008204169282019290925263ffffffff71010000000000000000000000000000000000830481169382019390935275010000000000000000000000000000000000000000008204909216606083015262ffffff7901000000000000000000000000000000000000000000000000008204811660808401527c010000000000000000000000000000000000000000000000000000000082041660a083015291925090600190811c161561070a576040517f8f61709900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610718828c8a8a8a86611f79565b805160021c60011615610757576040517f757d07f700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61076760e0890160c08a01614726565b61079d576040517f07365cfc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107af6101208c016101008d01614743565b6fffffffffffffffffffffffffffffffff166107d26101008a0160e08b01614743565b6fffffffffffffffffffffffffffffffff16101561081c576040517f868a64de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805161082b9060ff1660041790565b60ff16815261084182828d8d8d8d60018c6122f2565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156108ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f2919061475e565b90508573ffffffffffffffffffffffffffffffffffffffff1663778922688d6020016020810190610923919061410b565b8e60e00160208101906109369190614743565b7f00000000000000000000000000000000000000000000000000000000000000008d60e001602081019061096a9190614743565b8a8a6040518763ffffffff1660e01b815260040161098d969594939291906147c0565b600060405180830381600087803b1580156109a757600080fd5b505af11580156109bb573d6000803e3d6000fd5b50506040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526000925083915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a72919061475e565b610a7c9190614877565b9050610a8f6101008b0160e08c01614743565b6fffffffffffffffffffffffffffffffff16811015610ae2576040517f8d56ec22000000000000000000000000000000000000000000000000000000008152600481018290526024015b60405180910390fd5b6000848152600660205260409020819055608083015184907ffb8087611589a3c5360970dbf024c7b0ffcb96a491b677829bd033be3d1903f590610b2790600161488a565b6040805162ffffff9092168252602082018590520160405180910390a250505050505050505050505050565b6000610b676105f236849003840184614647565b600081815260056020908152604091829020825160c081018452905460ff811682526fffffffffffffffffffffffffffffffff6101008204169282019290925263ffffffff71010000000000000000000000000000000000830481169382019390935275010000000000000000000000000000000000000000008204909216606083015262ffffff7901000000000000000000000000000000000000000000000000008204811660808401527c010000000000000000000000000000000000000000000000000000000082041660a08301529192509060011615610c77576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b46610c85602085018561410b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ce9576040517f7aafae9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610cf960608501604086016148a5565b63ffffffff1681141580610d2d5750610d19610100850160e08601614743565b6fffffffffffffffffffffffffffffffff16155b80610d4c57506002610d4560c0860160a087016148c0565b62ffffff16105b80610db95750610d6260a08501608086016148a5565b63ffffffff16610d7860e0860160c087016148a5565b610d8860c0870160a088016148c0565b62ffffff16610d9791906148db565b610da760808701606088016148a5565b610db191906148fa565b63ffffffff16115b15610df0576040517faf61069300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42610e0160a08601608087016148a5565b63ffffffff1611610e3e576040517fa99f132a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e4e60e0850160c086016148a5565b63ffffffff16600003610e8d576040517fb534741d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610e9f60c0860160a087016148c0565b62ffffff16610eb5610100870160e08801614743565b610ebf9190614916565b6fffffffffffffffffffffffffffffffff1690506000610ee5604087016020880161410b565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015610f51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f75919061475e565b9050610fab333084610f8d60408b0160208c0161410b565b73ffffffffffffffffffffffffffffffffffffffff1692919061269f565b6000610fbd604088016020890161410b565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff91909116906370a0823190602401602060405180830381865afa158015611029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104d919061475e565b90508261105a8383614877565b1015611092576040517fe1628f7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060c001604052806110ae876000015160ff1660011790565b60ff90811682526000602080840182905260408085018390526060808601849052608080870185905260a09687018590528d8552600584529382902087518154948901519389015192890151958901519890970151969095167fffffffffffffffffffffffffffffff0000000000000000000000000000000000909316929092176101006fffffffffffffffffffffffffffffffff90921691909102177fffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffff167101000000000000000000000000000000000063ffffffff928316027fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff161775010000000000000000000000000000000000000000009190921602177fff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff1679010000000000000000000000000000000000000000000000000062ffffff948516027fff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff16177c01000000000000000000000000000000000000000000000000000000009390921692909202179055611264868861272e565b50505050505050565b611275611e00565b61127f6000612874565b565b600154339073ffffffffffffffffffffffffffffffffffffffff1681146112ec576040517f118cdaa700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82166004820152602401610ad9565b6112f581612874565b50565b611305602082018261410b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156113eb57506040517fa04770f70000000000000000000000000000000000000000000000000000000081523360048201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063a04770f790602401602060405180830381865afa1580156113c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e99190614941565b155b15611422576040517f3b5d3a2e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006114366105f236849003840184614647565b600081815260056020908152604091829020825160c081018452905460ff811682526fffffffffffffffffffffffffffffffff6101008204169282019290925263ffffffff71010000000000000000000000000000000000830481169382019390935275010000000000000000000000000000000000000000008204909216606083015262ffffff7901000000000000000000000000000000000000000000000000008204811660808401527c010000000000000000000000000000000000000000000000000000000082041660a083015291925090600116158061154657508051600190811c168015611546575061153560c0840160a085016148c0565b62ffffff16816080015162ffffff16145b1561157d576040517f8f61709900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805161158c9060ff1660021790565b600083815260056020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff939093169290921790915560808201516115e060c0860160a087016148c0565b6115ea919061495e565b6040830151835162ffffff9290921692504263ffffffff909116101590600090600190811c168015611639575061162760c0870160a088016148c0565b62ffffff16846080015162ffffff1614155b90508180156116455750805b1561167c576040517fa5445e8f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801561168757600192505b818015611692575080155b156116a9576116a2600184614877565b92506117ca565b6116b960c0870160a088016148c0565b6000868152600560209081526040909120805462ffffff93909316790100000000000000000000000000000000000000000000000000027fffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffff909316929092179091558401516fffffffffffffffffffffffffffffffff161561179a5761179a611745602088018861410b565b602086015173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691906fffffffffffffffffffffffffffffffff166128a5565b835160021c600116156117ca576117b2600184614877565b92506117ca856117c5602089018961410b565b6128e8565b60006117dd610100880160e08901614743565b6117f9906fffffffffffffffffffffffffffffffff1685614979565b9050801561183f5761183f611811602089018961410b565b8261182260408b0160208c0161410b565b73ffffffffffffffffffffffffffffffffffffffff1691906128a5565b8451600190811c166118775760405186907ff1122a55049cac4b6fb786a4e5e82db7ceb712dd52fe67e22a8de56069d2999590600090a25b826112645760405186907f1bafeefb747f0c12e25d9d80cecafc04efcac9bf573e4843c03933eb2eea2a4890600090a250505050505050565b6000606080600080600060606118c4612942565b6118cc612974565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b60006119266105f236899003890189614647565b600081815260056020908152604091829020825160c081018452905460ff811682526fffffffffffffffffffffffffffffffff6101008204169282019290925263ffffffff71010000000000000000000000000000000000830481169382019390935275010000000000000000000000000000000000000000008204909216606083015262ffffff7901000000000000000000000000000000000000000000000000008204811660808401527c010000000000000000000000000000000000000000000000000000000082041660a083015291925090600190811c1615611a39576040517f8f61709900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a47828987878786611f79565b611a5882828a8a8a8a6000806122f2565b5050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116611aaf576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611ac36105f236889003880188614647565b600081815260056020908152604091829020825160c081018452905460ff811682526fffffffffffffffffffffffffffffffff6101008204169282019290925263ffffffff7101000000000000000000000000000000000083048116938201939093527501000000000000000000000000000000000000000000820490921660608084019190915262ffffff790100000000000000000000000000000000000000000000000000830481166080808601919091527c01000000000000000000000000000000000000000000000000000000009093041660a08401529293509091611bb191880190880161410b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c15576040517fc139eabd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611c20886129a1565b9050863583141580611c4a5750611c3d60608801604089016148c0565b62ffffff168162ffffff16105b15611c81576040517f636b27ae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c9160408801602089016148c0565b62ffffff1682608001516001611ca7919061488a565b62ffffff1614611ce3576040517fbc461ef100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611cee8787876129d1565b611d24576040517f070f548200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a5883611d3860608a0160408b016148c0565b8a85611d4a60808d0160608e0161410b565b89612a69565b611d58611e00565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155611dbb60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b60005473ffffffffffffffffffffffffffffffffffffffff16331461127f576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610ad9565b6000604051602001611e6490614990565b60405160208183030381529060405280519060200120826000015183602001518460400151856060015186608001518760a001518860c001518960e001518a61010001518b61012001518c6101400151604051602001611f5c9c9b9a999897969594939291909b8c5273ffffffffffffffffffffffffffffffffffffffff9a8b1660208d01529890991660408b015263ffffffff96871660608b015294861660808a015292851660a089015262ffffff9190911660c088015290921660e08601526fffffffffffffffffffffffffffffffff918216610100860152166101208401526101408301919091526101608201526101800190565b604051602081830303815290604052805190602001209050919050565b611f84848484612f21565b611fba576040517f070f548200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b608081015162ffffff1615801590611ff957506000611fe16101408601610120870161410b565b73ffffffffffffffffffffffffffffffffffffffff16145b80612022575060a081015162ffffff1661201b610120860161010087016148c0565b62ffffff16105b15612059576040517f868a64de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015163ffffffff16158015908161209a575060006120826101408701610120880161410b565b73ffffffffffffffffffffffffffffffffffffffff16145b156120a557506122ea565b5060006120b1866129a1565b905062ffffff81166120cb610120870161010088016148c0565b62ffffff161015806120eb57508062ffffff168260a0015162ffffff1610155b15612122576040517faee5e47000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612136610120870161010088016148c0565b62ffffff168360a0015162ffffff1614905080156122985760208301516fffffffffffffffffffffffffffffffff16156121cf576121cf61217a602089018961410b565b602085015173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001691906fffffffffffffffffffffffffffffffff166128a5565b825160021c600116156122935760006121f288856060015163ffffffff16612f30565b90508062ffffff168362ffffff16111561229157600184608001818151612219919061488a565b62ffffff16905250835160fb168452612239896117c560208b018b61410b565b61224b6105f2368a90038a018a614647565b60808501516040805162ffffff928316815291841660208301527f844c9c96529bacbb10eee246bd9452d36efffdb1d0c2eeab05c0721d43ef31c9910160405180910390a25b505b611a58565b611a586122ad6105f2368a90038a018a614647565b6122bf61012089016101008a016148c0565b89866122d36101408c016101208d0161410b565b6122e56101408d016101208e0161410b565b612a69565b505050505050565b6122fe8689858a612f62565b6040518060c0016040528061231a896000015160ff1660011790565b60ff1681526020016123326080860160608701614743565b6fffffffffffffffffffffffffffffffff16815260200161235b610160860161014087016148a5565b63ffffffff1681526020014263ffffffff168152602001886080015162ffffff1681526020018860a0015162ffffff16815250600560008a815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060408201518160000160116101000a81548163ffffffff021916908363ffffffff16021790555060608201518160000160156101000a81548163ffffffff021916908363ffffffff16021790555060808201518160000160196101000a81548162ffffff021916908362ffffff16021790555060a082015181600001601c6101000a81548162ffffff021916908362ffffff16021790555090505042876060015163ffffffff16036124df576040517f583fe88600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b86516001166124ff576124f58686868b306132f8565b6124ff888761272e565b811561253c5761253c8161251a610100890160e08a01614743565b6fffffffffffffffffffffffffffffffff1661182260408a0160208b0161410b565b61254c6080840160608501614743565b6fffffffffffffffffffffffffffffffff16156125c9576125c933306125786080870160608801614743565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169291906fffffffffffffffffffffffffffffffff1661269f565b6125d960a0840160808501614743565b6fffffffffffffffffffffffffffffffff1615612696576126143361260460c0860160a0870161410b565b61257860a0870160808801614743565b7fd72df92d2a1deb61bf4978dfd140c21dcb0a449bd22cb16af2cd7a853d25052661264560c0850160a0860161410b565b61265560a0860160808701614743565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526fffffffffffffffffffffffffffffffff90911660208301520160405180910390a15b611a5883613610565b60405173ffffffffffffffffffffffffffffffffffffffff84811660248301528381166044830152606482018390526127289186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506136e2565b50505050565b61273b602082018261410b565b73ffffffffffffffffffffffffffffffffffffffff16827fa2e2b4ef099d9abd35ad56ef479a02c214b5b2ca6667e7e103cb791b89f4b882612783604085016020860161410b565b61279360808601606087016148a5565b6127a360a08701608088016148a5565b6127b360c0880160a089016148c0565b6127c360e0890160c08a016148a5565b6127d46101008a0160e08b01614743565b6127e66101208b016101008c01614743565b6040805173ffffffffffffffffffffffffffffffffffffffff909816885263ffffffff96871660208901529486169487019490945262ffffff90921660608601529290921660808401526fffffffffffffffffffffffffffffffff91821660a08401521660c08201526101208086013560e08301526101408601356101008301520160405180910390a35050565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556112f581613786565b60405173ffffffffffffffffffffffffffffffffffffffff8381166024830152604482018390526128e391859182169063a9059cbb906064016126e1565b505050565b6000828152600660205260408120805491905580156128e3576128e373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001683836128a5565b606061296f7f000000000000000000000000000000000000000000000000000000000000000060036137fb565b905090565b606061296f7f000000000000000000000000000000000000000000000000000000000000000060046137fb565b60006129cb6129b660808401606085016148a5565b6129c660e0850160c086016148a5565b6138a6565b92915050565b600080612a1c6129e0866138b3565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613a2f92505050565b509091505073ffffffffffffffffffffffffffffffffffffffff811615801590612a60575060025473ffffffffffffffffffffffffffffffffffffffff8281169116145b95945050505050565b8462ffffff168360a0015162ffffff1610612ab0576040517fbc461ef100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82516001161580612aec57508251600190811c168015612aec5750612adb60c0850160a086016148c0565b62ffffff16836080015162ffffff16145b15612b23576040517f8f61709900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825160009060021c60011690508273ffffffffffffffffffffffffffffffffffffffff16877f928d463a5aa8abdd8664f3f26e205ff32717c976d957c1c4e02635c78223da0e86608001516001612b7a919061488a565b6040805162ffffff909216825273ffffffffffffffffffffffffffffffffffffffff871660208301520160405180910390a38351600190811c1615612bd857612bc960c0860160a087016148c0565b62ffffff166080850152612bf4565b600184608001818151612beb919061488a565b62ffffff169052505b62ffffff861660a0850152835160fb1660ff168452612c1960c0860160a087016148c0565b62ffffff16846080015162ffffff1603612c6d578351612c3c9060ff1660021790565b60ff16845260405187907f4142b076724d4009f5a0d566e1d246c57e1b417a32283b72b792c389dc9f101b90600090a25b8562ffffff16612c8786866040015163ffffffff16612f30565b62ffffff161115612ce457600162ffffff8716612caa60e0880160c089016148a5565b612cb491906148db565b612cc460808801606089016148a5565b612cce91906148fa565b612cd89190614b91565b63ffffffff1660408501525b6040518060c00160405280856000015160ff16815260200160006fffffffffffffffffffffffffffffffff168152602001856040015163ffffffff168152602001856060015163ffffffff168152602001856080015162ffffff1681526020018560a0015162ffffff168152506005600089815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060408201518160000160116101000a81548163ffffffff021916908363ffffffff16021790555060608201518160000160156101000a81548163ffffffff021916908363ffffffff16021790555060808201518160000160196101000a81548162ffffff021916908362ffffff16021790555060a082015181600001601c6101000a81548162ffffff021916908362ffffff1602179055509050508015612e7457612e6f87836128e8565b612eab565b612eab82612e89610100880160e08901614743565b6fffffffffffffffffffffffffffffffff166118226040890160208a0161410b565b60208401516fffffffffffffffffffffffffffffffff16156112645760208401516112649073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169085906fffffffffffffffffffffffffffffffff166128a5565b600080612a1c6129e086613a7c565b6000612f5b612f4560808501606086016148a5565b612f5560e0860160c087016148a5565b84613c0e565b9392505050565b46612f7360608601604087016148a5565b63ffffffff1681141580612fa75750612f93610100860160e08701614743565b6fffffffffffffffffffffffffffffffff16155b80612fc657506002612fbf60c0870160a088016148c0565b62ffffff16105b806130335750612fdc60a08601608087016148a5565b63ffffffff16612ff260e0870160c088016148a5565b61300260c0880160a089016148c0565b62ffffff1661301191906148db565b61302160808801606089016148a5565b61302b91906148fa565b63ffffffff16115b1561306a576040517faf61069300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516001168015613085575042826040015163ffffffff1610155b156130bc576040517fa5445e8f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b426130cd60a08701608088016148a5565b63ffffffff161161310a576040517fa99f132a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61311a60e0860160c087016148a5565b63ffffffff16600003613159576040517fb534741d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613166602084018461410b565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146131ca576040517fc139eabd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6131da60a08601608087016148a5565b63ffffffff166131f2610160850161014086016148a5565b63ffffffff161061322f576040517f87e08d4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42613242610160850161014086016148a5565b63ffffffff161161327f576040517fa99f132a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8383602001351415806132ba5750608082015161329d90600161488a565b62ffffff166132b260608501604086016148c0565b62ffffff1614155b156132f1576040517f868a64de00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b600061330a604087016020880161410b565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015291909116906370a0823190602401602060405180830381865afa158015613378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061339c919061475e565b905073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663137c29fe6133f16133ec368a90038a018a614647565b613c4e565b61340a85613404368c90038c018c614647565b90613d07565b61341760208b018b61410b565b8760405160200161342790614990565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815260608301909152602e808352909190614f81602083013960405160200161347a929190614bad565b6040516020818303038152906040528b8b6040518863ffffffff1660e01b81526004016134ad9796959493929190614c08565b600060405180830381600087803b1580156134c757600080fd5b505af11580156134db573d6000803e3d6000fd5b50600092506134f3915050604088016020890161410b565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015291909116906370a0823190602401602060405180830381865afa158015613561573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613585919061475e565b9050600061359960c0890160a08a016148c0565b62ffffff166135af6101008a0160e08b01614743565b6135b99190614916565b6fffffffffffffffffffffffffffffffff169050806135d88484614877565b1015611a58576040517fe1628f7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61361d602082018261410b565b73ffffffffffffffffffffffffffffffffffffffff1660208201357f7ff8529bb78e1d9e687e59a83511e62c706d3074227318c758da4a582d93276361366960608501604086016148c0565b61367b610160860161014087016148a5565b61368b60a0870160808801614743565b61369b6080880160608901614743565b6040805162ffffff95909516855263ffffffff9390931660208501526fffffffffffffffffffffffffffffffff91821684840152166060830152519081900360800190a350565b600080602060008451602086016000885af180613705576040513d6000823e3d81fd5b50506000513d9150811561371d578060011415613737565b73ffffffffffffffffffffffffffffffffffffffff84163b155b15612728576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610ad9565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060ff83146138155761380e83613d79565b90506129cb565b81805461382190614cd1565b80601f016020809104026020016040519081016040528092919081815260200182805461384d90614cd1565b801561389a5780601f1061386f5761010080835404028352916020019161389a565b820191906000526020600020905b81548152906001019060200180831161387d57829003601f168201915b505050505090506129cb565b6000612f5b838342613c0e565b60006129cb604051602001613983907f44636153756363657373436f6e6669726d6174696f6e2800000000000000000081527f62797465733332206f72646572486173682c000000000000000000000000000060178201527f75696e74323420696e74657276616c4e756d6265722c0000000000000000000060298201527f75696e74323420696e74657276616c496e6465782c0000000000000000000000603f8201527f6164647265737320736f6c766572290000000000000000000000000000000000605482015260630190565b6040516020818303038152906040528051906020012083600001358460200160208101906139b191906148c0565b6139c160608701604088016148c0565b6139d1608088016060890161410b565b60408051602081019690965285019390935262ffffff918216606085015216608083015273ffffffffffffffffffffffffffffffffffffffff1660a082015260c0015b60405160208183030381529060405280519060200120613db8565b60008060008351604103613a695760208401516040850151606086015160001a613a5b88828585613e00565b955095509550505050613a75565b50508151600091506002905b9250925092565b60006129cb604051602001613a9090614d1e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209182012090613ad39085018561410b565b6020850135613ae860608701604088016148c0565b613af86080880160608901614743565b613b0860a0890160808a01614743565b613b1860c08a0160a08b0161410b565b613b2860e08b0160c08c01614726565b613b396101008c0160e08d01614743565b613b4b6101208d016101008e016148c0565b613b5d6101408e016101208f0161410b565b8d610140016020810190613b7191906148a5565b60408051602081019d909d5273ffffffffffffffffffffffffffffffffffffffff9b8c16908d015260608c019990995262ffffff97881660808c01526fffffffffffffffffffffffffffffffff96871660a08c015294861660c08b015292881660e08a0152901515610100890152909216610120870152911661014085015290911661016083015263ffffffff166101808201526101a001613a14565b6000613c3b8363ffffffff168563ffffffff1684613c2c9190614877565b613c369190614f45565b613efa565b613c4690600161488a565b949350505050565b6040805160a081018252600060608201818152608083018290528252602082018190529181019190915260008260a0015162ffffff168360e00151613c939190614916565b6fffffffffffffffffffffffffffffffff16905060405180606001604052806040518060400160405280866020015173ffffffffffffffffffffffffffffffffffffffff1681526020018481525081526020018461014001518152602001846080015163ffffffff16815250915050919050565b604080518082019091526000808252602082015260008360a0015162ffffff168460e00151613d369190614916565b6040805180820190915273ffffffffffffffffffffffffffffffffffffffff90941684526fffffffffffffffffffffffffffffffff166020840152509092915050565b60606000613d8683613f47565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b60006129cb613dc5613f88565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613e3b5750600091506003905082613ef0565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613e8f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116613ee657506000925060019150829050613ef0565b9250600091508190505b9450945094915050565b600062ffffff821115613f43576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526018600482015260248101839052604401610ad9565b5090565b600060ff8216601f8111156129cb576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015613fee57507f000000000000000000000000000000000000000000000000000000000000000046145b1561401857507f000000000000000000000000000000000000000000000000000000000000000090565b61296f604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6000602082840312156140d257600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff811681146112f557600080fd5b8035614106816140d9565b919050565b60006020828403121561411d57600080fd5b8135612f5b816140d9565b6000610160828403121561413b57600080fd5b50919050565b60008083601f84011261415357600080fd5b50813567ffffffffffffffff81111561416b57600080fd5b60208301915083602082850101111561418357600080fd5b9250929050565b60008060008060008060008060006103408a8c0312156141a957600080fd5b6141b38b8b614128565b98506101608a013567ffffffffffffffff8111156141d057600080fd5b6141dc8c828d01614141565b90995097506141f190508b6101808c01614128565b95506102e08a013567ffffffffffffffff81111561420e57600080fd5b61421a8c828d01614141565b9096509450506103008a013561422f816140d9565b92506103208a013567ffffffffffffffff81111561424c57600080fd5b6142588c828d01614141565b915080935050809150509295985092959850929598565b6000610160828403121561428257600080fd5b612f5b8383614128565b60005b838110156142a757818101518382015260200161428f565b50506000910152565b600081518084526142c881602086016020860161428c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e06020820152600061433560e08301896142b0565b828103604084015261434781896142b0565b6060840188905273ffffffffffffffffffffffffffffffffffffffff8716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b818110156143aa57835183526020938401939092019160010161438c565b50909b9a5050505050505050505050565b60008060008060008061030087890312156143d557600080fd5b6143df8888614128565b955061016087013567ffffffffffffffff8111156143fc57600080fd5b61440889828a01614141565b909650945061441d9050886101808901614128565b92506102e087013567ffffffffffffffff81111561443a57600080fd5b61444689828a01614141565b979a9699509497509295939492505050565b60006101008201905082511515825260208301511515602083015260408301511515604083015260608301516144a260608401826fffffffffffffffffffffffffffffffff169052565b5060808301516144ba608084018263ffffffff169052565b5060a08301516144d260a084018263ffffffff169052565b5060c08301516144e960c084018262ffffff169052565b5060e083015161450060e084018262ffffff169052565b5092915050565b600080600080600085870361022081121561452157600080fd5b61452b8888614128565b955060807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffea08201121561455d57600080fd5b50610160860193506101e086013567ffffffffffffffff81111561458057600080fd5b61458c88828901614141565b9094509250506102008601356145a1816140d9565b809150509295509295909350565b604051610160810167ffffffffffffffff811182821017156145fa577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803563ffffffff8116811461410657600080fd5b803562ffffff8116811461410657600080fd5b80356fffffffffffffffffffffffffffffffff8116811461410657600080fd5b600061016082840312801561465b57600080fd5b506146646145af565b61466d836140fb565b815261467b602084016140fb565b602082015261468c60408401614600565b604082015261469d60608401614600565b60608201526146ae60808401614600565b60808201526146bf60a08401614614565b60a08201526146d060c08401614600565b60c08201526146e160e08401614627565b60e08201526146f36101008401614627565b6101008201526101208381013590820152610140928301359281019290925250919050565b80151581146112f557600080fd5b60006020828403121561473857600080fd5b8135612f5b81614718565b60006020828403121561475557600080fd5b612f5b82614627565b60006020828403121561477057600080fd5b5051919050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b73ffffffffffffffffffffffffffffffffffffffff871681526fffffffffffffffffffffffffffffffff8616602082015273ffffffffffffffffffffffffffffffffffffffff851660408201526fffffffffffffffffffffffffffffffff8416606082015260a06080820152600061483c60a083018486614777565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156129cb576129cb614848565b62ffffff81811683821601908111156129cb576129cb614848565b6000602082840312156148b757600080fd5b612f5b82614600565b6000602082840312156148d257600080fd5b612f5b82614614565b63ffffffff818116838216029081169081811461450057614500614848565b63ffffffff81811683821601908111156129cb576129cb614848565b6fffffffffffffffffffffffffffffffff818116838216029081169081811461450057614500614848565b60006020828403121561495357600080fd5b8151612f5b81614718565b62ffffff82811682821603908111156129cb576129cb614848565b80820281158282048414176129cb576129cb614848565b7f4463614f72646572496e666f280000000000000000000000000000000000000081527f6164647265737320757365722c00000000000000000000000000000000000000600d8201527f6164647265737320746f6b656e496e2c00000000000000000000000000000000601a8201527f75696e74333220737263436861696e49642c0000000000000000000000000000602a8201527f75696e74333220737461727454696d652c000000000000000000000000000000603c8201527f75696e74333220646561646c696e652c00000000000000000000000000000000604d8201527f75696e74323420746f74616c496e74657276616c732c00000000000000000000605d8201527f75696e74333220696e74657276616c4475726174696f6e2c000000000000000060738201527f75696e7431323820616d6f756e74496e506572496e74657276616c2c00000000608b8201527f75696e74313238206d696e537461626c65636f696e73416d6f756e745065724960a782019081527f6e74657276616c2c00000000000000000000000000000000000000000000000060c783015260009060cf8301613c46614b68827f6279746573333220657865637574696f6e44657461696c73486173682c0000008152601d0190565b7f75696e74323536206e6f6e6365290000000000000000000000000000000000008152600e0190565b63ffffffff82811682821603908111156129cb576129cb614848565b7f4463614f72646572496e666f207769746e657373290000000000000000000000815260008351614be581601585016020880161428c565b835190830190614bfc81601584016020880161428c565b01601501949350505050565b614c33818951805173ffffffffffffffffffffffffffffffffffffffff168252602090810151910152565b6020880151604082015260408801516060820152614c746080820188805173ffffffffffffffffffffffffffffffffffffffff168252602090810151910152565b73ffffffffffffffffffffffffffffffffffffffff861660c08201528460e08201526101406101008201526000614caf6101408301866142b0565b828103610120840152614cc3818587614777565b9a9950505050505050505050565b600181811c90821680614ce557607f821691505b60208210810361413b577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f446361536f75726365436861696e536f6c7665725065726d697373696f6e280081527f6164647265737320736f6c7665722c0000000000000000000000000000000000601f8201527f62797465733332206f72646572486173682c0000000000000000000000000000602e8201527f75696e74323420696e74657276616c4e756d626572546f457865637574652c0060408201527f75696e7431323820636f6c6c61746572616c416d6f756e742c00000000000000605f8201527f75696e743132382070726f746f636f6c4665652c00000000000000000000000060788201527f616464726573732070726f746f636f6c46656552656365697665722c00000000608c8201527f626f6f6c20616c6c6f77537761702c000000000000000000000000000000000060a88201527f75696e74313238206d696e537461626c65636f696e73416d6f756e742c00000060b78201527f75696e7432342070726576696f75734578656375746564496e74657276616c4960d482019081527f6e6465782c00000000000000000000000000000000000000000000000000000060f483015260009060f98301613c46614f1c827f616464726573732070726576696f75734578656375746564496e74657276616c81527f536f6c7665722c00000000000000000000000000000000000000000000000000602082015260270190565b7f75696e74333220646561646c696e652900000000000000000000000000000000815260100190565b600082614f7b577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fe546f6b656e5065726d697373696f6e73286164647265737320746f6b656e2c75696e7432353620616d6f756e7429a2646970667358221220a0bcf7ed8d0fa356a435ea395edfdee559f8913d5d6ff833b9c4aa010c6e69ab64736f6c634300081c0033000000000000000000000000d8655d1154a74748ac48f673264efba5c369f4bd00000000000000000000000055ff31601c08fd06bc3563949a9216ed517a1654000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000002f1efa96673802bdb068139305dc6da1997fcd58