0 txs
0 calls
constructor
constructor()
functions
abroadMax
viewfunction abroadMax() view returns (uint256)
abroadMin
viewfunction abroadMin() view returns (uint256)
blockGetter
viewfunction blockGetter() view returns (address)
buyFee
viewfunction buyFee() view returns (uint256)
buyFeeDenominator
viewfunction buyFeeDenominator() view returns (uint256)
compensateLoss
viewfunction compensateLoss() view returns (uint256)
compensateLossDenominator
viewfunction compensateLossDenominator() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
FISK_FACTOR_DM
viewfunction FISK_FACTOR_DM() view returns (uint256)
FREE_RIDER_ROLE
viewfunction FREE_RIDER_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
insurance
viewfunction insurance() view returns (address)
lastBlockNumber
viewfunction lastBlockNumber() view returns (uint256)
LIQ_DELTA_DM
viewfunction LIQ_DELTA_DM() view returns (uint256)
mark2market
viewfunction mark2market() view returns (address)
nextPayoutTime
viewfunction nextPayoutTime() view returns (uint256)
oracleLoss
viewfunction oracleLoss() view returns (uint256)
oracleLossDenominator
viewfunction oracleLossDenominator() view returns (uint256)
paused
viewfunction paused() view returns (bool)
payoutListener
viewfunction payoutListener() view returns (address)
payoutPeriod
viewfunction payoutPeriod() view returns (uint256)
payoutTimeRange
viewfunction payoutTimeRange() view returns (uint256)
PORTFOLIO_AGENT_ROLE
viewfunction PORTFOLIO_AGENT_ROLE() view returns (bytes32)
portfolioManager
viewfunction portfolioManager() view returns (address)
profitRecipient
viewfunction profitRecipient() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
redeemFee
viewfunction redeemFee() view returns (uint256)
redeemFeeDenominator
viewfunction redeemFeeDenominator() view returns (uint256)
roleManager
viewfunction roleManager() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
UNIT_ROLE
viewfunction UNIT_ROLE() view returns (bytes32)
usdc
viewfunction usdc() view returns (address)
usdPlus
viewfunction usdPlus() view returns (address)
buy
nonpayablefunction buy(address _asset, uint256 _amount) returns (uint256)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize()
mint
nonpayablefunction mint(tuple params) returns (uint256)
negativeRebase
nonpayablefunction negativeRebase(uint256 newLiquidityIndex)
pause
nonpayablefunction pause()
payout
nonpayablefunction payout(bool simulate, tuple swapData) returns (int256 swapAmount)
redeem
nonpayablefunction redeem(address _asset, uint256 _amount) returns (uint256)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setAbroad
nonpayablefunction setAbroad(uint256 _min, uint256 _max)
setBlockGetter
nonpayablefunction setBlockGetter(address _blockGetter)
setBuyFee
nonpayablefunction setBuyFee(uint256 _fee, uint256 _feeDenominator)
setCompensateLoss
nonpayablefunction setCompensateLoss(uint256 _compensateLoss, uint256 _denominator)
setInsurance
nonpayablefunction setInsurance(address _insurance)
setMark2Market
nonpayablefunction setMark2Market(address _mark2market)
setOracleLoss
nonpayablefunction setOracleLoss(uint256 _oracleLoss, uint256 _denominator)
setPayoutListener
nonpayablefunction setPayoutListener(address _payoutListener)
setPayoutTimes
nonpayablefunction setPayoutTimes(uint256 _nextPayoutTime, uint256 _payoutPeriod, uint256 _payoutTimeRange)
setPortfolioManager
nonpayablefunction setPortfolioManager(address _portfolioManager)
setProfitRecipient
nonpayablefunction setProfitRecipient(address _profitRecipient)
setRedeemFee
nonpayablefunction setRedeemFee(uint256 _fee, uint256 _feeDenominator)
setRoleManager
nonpayablefunction setRoleManager(address _roleManager)
setTokens
nonpayablefunction setTokens(address _usdPlus, address _asset)
unpause
nonpayablefunction unpause()
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Abroad
event Abroad(uint256 min, uint256 max)
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
BlockGetterUpdated
event BlockGetterUpdated(address blockGetter)
BuyFeeUpdated
event BuyFeeUpdated(uint256 fee, uint256 feeDenominator)
CompensateLossUpdate
event CompensateLossUpdate(uint256 compensateLoss, uint256 denominator)
EventExchange
event EventExchange(string label, uint256 amount, uint256 fee, address sender, string referral)
Initialized
event Initialized(uint8 version)
InsuranceUpdated
event InsuranceUpdated(address insurance)
Mark2MarketUpdated
event Mark2MarketUpdated(address mark2market)
NextPayoutTime
event NextPayoutTime(uint256 nextPayoutTime)
OnNotEnoughLimitRedeemed
event OnNotEnoughLimitRedeemed(address token, uint256 amount)
OracleLossUpdate
event OracleLossUpdate(uint256 oracleLoss, uint256 denominator)
PaidBuyFee
event PaidBuyFee(uint256 amount, uint256 feeAmount)
PaidRedeemFee
event PaidRedeemFee(uint256 amount, uint256 feeAmount)
Paused
event Paused(address account)
PayoutAbroad
event PayoutAbroad(uint256 delta, uint256 deltaUsdPlus)
PayoutEvent
event PayoutEvent(uint256 profit, uint256 newLiquidityIndex, uint256 excessProfit, uint256 insurancePremium, uint256 insuranceLoss)
PayoutListenerUpdated
event PayoutListenerUpdated(address payoutListener)
PayoutTimesUpdated
event PayoutTimesUpdated(uint256 nextPayoutTime, uint256 payoutPeriod, uint256 payoutTimeRange)
PortfolioManagerUpdated
event PortfolioManagerUpdated(address portfolioManager)
ProfitRecipientUpdated
event ProfitRecipientUpdated(address recipient)
RedeemFeeUpdated
event RedeemFeeUpdated(uint256 fee, uint256 feeDenominator)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleManagerUpdated
event RoleManagerUpdated(address roleManager)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TokensUpdated
event TokensUpdated(address usdPlus, address asset)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
errors
No errors.
creation bytecode
0x60a0604052306080523480156200001557600080fd5b50600054610100900460ff1615808015620000375750600054600160ff909116105b8062000067575062000054306200014160201b6200338d1760201c565b15801562000067575060005460ff166001145b620000cf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000f3576000805461ff0019166101001790555b80156200013a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000150565b6001600160a01b03163b151590565b6080516151f8620001886000396000818161140a0152818161144a015281816116cf0152818161170f015261266f01526151f86000f3fe6080604052600436106103a15760003560e01c80636d8ebaa8116101e7578063a440b21a1161010d578063cecbbc07116100a0578063f1d588c51161006f578063f1d588c514610a69578063f3869e8d14610a89578063f695169314610aa9578063fb0ecfa414610aca57600080fd5b8063cecbbc0714610a04578063d31a193414610a1b578063d547741f14610a32578063e3d9fc2814610a5257600080fd5b8063c12e90e9116100dc578063c12e90e914610996578063cbc7854e146109ad578063cce7ec13146109cd578063ce1aa76b146109ed57600080fd5b8063a440b21a14610916578063a4bb42a114610936578063bc56bebf14610956578063bd2160c21461097657600080fd5b806389cf320411610185578063965fa21e11610154578063965fa21e146108b35780639cca16d8146108ca5780639d70c129146108ea578063a217fddf1461090157600080fd5b806389cf3204146108325780638c754ef11461085357806391d14854146108735780639629300c1461089357600080fd5b80637c5261d8116101c15780637c5261d8146107d05780637e2bad1e146107e75780638129fc1c146108085780638456cb591461081d57600080fd5b80636d8ebaa81461076e5780637559c32914610785578063771d147e146107b957600080fd5b806337044771116102cc578063514e460a1161026a5780635dbd733a116102395780635dbd733a146106f4578063620b75df1461071657806362f09895146107375780636cd7751f1461074e57600080fd5b8063514e460a1461068657806351b4925c146106a757806352d1902d146106c75780635c975abb146106dc57600080fd5b806347062402116102a657806347062402146106085780634795084f1461061f578063497d91921461063f5780634f1ef2861461067357600080fd5b806337044771146105b25780633e413bee146105d25780633f4ba83a146105f357600080fd5b806325990d63116103445780632f2ff15d116103135780632f2ff15d14610531578063302056031461055157806336568abe146105725780633659cfe61461059257600080fd5b806325990d63146104c15780632b78fe78146104d85780632c117347146104ef5780632d8cc0041461051157600080fd5b8063182531f811610380578063182531f8146104395780631e9a69501461045a578063248a9ca31461047a5780632552317c146104aa57600080fd5b8062435da5146103a657806301ffc9a7146103e45780631346c9e714610414575b600080fd5b3480156103b257600080fd5b50610143546103c7906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103f057600080fd5b506104046103ff3660046147d8565b610aea565b60405190151581526020016103db565b34801561042057600080fd5b5061042b6101405481565b6040519081526020016103db565b34801561044557600080fd5b50610138546103c7906001600160a01b031681565b34801561046657600080fd5b5061042b610475366004614819565b610b21565b34801561048657600080fd5b5061042b610495366004614843565b60009081526065602052604090206001015490565b3480156104b657600080fd5b5061042b6101395481565b3480156104cd57600080fd5b5061042b61013f5481565b3480156104e457600080fd5b5061042b61013a5481565b3480156104fb57600080fd5b5061050f61050a366004614843565b610f96565b005b34801561051d57600080fd5b5061050f61052c36600461485c565b611256565b34801561053d57600080fd5b5061050f61054c36600461487e565b61135d565b34801561055d57600080fd5b50610142546103c7906001600160a01b031681565b34801561057e57600080fd5b5061050f61058d36600461487e565b611382565b34801561059e57600080fd5b5061050f6105ad3660046148aa565b611400565b3480156105be57600080fd5b5061050f6105cd3660046148aa565b6114df565b3480156105de57600080fd5b5061012e546103c7906001600160a01b031681565b3480156105ff57600080fd5b5061050f611582565b34801561061457600080fd5b5061042b6101315481565b34801561062b57600080fd5b5061050f61063a3660046148aa565b611629565b34801561064b57600080fd5b5061042b7fede8101501d89b9894e78e4f219420b6ddb840e8e75dde35741a0745408476d781565b61050f610681366004614968565b6116c5565b34801561069257600080fd5b5061012d546103c7906001600160a01b031681565b3480156106b357600080fd5b5061042b6106c23660046149c4565b611791565b3480156106d357600080fd5b5061042b612662565b3480156106e857600080fd5b5060fb5460ff16610404565b34801561070057600080fd5b5061042b60008051602061515c83398151915281565b34801561072257600080fd5b5061012f546103c7906001600160a01b031681565b34801561074357600080fd5b5061042b6101325481565b34801561075a57600080fd5b5061050f6107693660046148aa565b612715565b34801561077a57600080fd5b5061042b6101355481565b34801561079157600080fd5b5061042b7f262f8dca0440d5010bae937fe18daeae459dacb80622baddc3b4f10759ac952a81565b3480156107c557600080fd5b5061042b620186a081565b3480156107dc57600080fd5b5061042b61013b5481565b3480156107f357600080fd5b50610141546103c7906001600160a01b031681565b34801561081457600080fd5b5061050f6127b1565b34801561082957600080fd5b5061050f612926565b34801561083e57600080fd5b5061013c546103c7906001600160a01b031681565b34801561085f57600080fd5b5061050f61086e3660046148aa565b6129cb565b34801561087f57600080fd5b5061040461088e36600461487e565b612a41565b34801561089f57600080fd5b5061042b6108ae366004614a88565b612a6c565b3480156108bf57600080fd5b5061042b6101335481565b3480156108d657600080fd5b5061050f6108e536600461485c565b612ad7565b3480156108f657600080fd5b5061042b61013e5481565b34801561090d57600080fd5b5061042b600081565b34801561092257600080fd5b5061050f6109313660046148aa565b612bb6565b34801561094257600080fd5b5061050f6109513660046148aa565b612c52565b34801561096257600080fd5b5061050f61097136600461485c565b612cc8565b34801561098257600080fd5b5061050f61099136600461485c565b612dc7565b3480156109a257600080fd5b5061042b6101345481565b3480156109b957600080fd5b5061050f6109c8366004614ac3565b612ec6565b3480156109d957600080fd5b5061042b6109e8366004614819565b612fa2565b3480156109f957600080fd5b5061042b6101365481565b348015610a1057600080fd5b5061042b6101375481565b348015610a2757600080fd5b5061042b620f424081565b348015610a3e57600080fd5b5061050f610a4d36600461487e565b612fcd565b348015610a5e57600080fd5b5061042b61013d5481565b348015610a7557600080fd5b5061050f610a843660046148aa565b612ff2565b348015610a9557600080fd5b5061050f610aa4366004614aed565b61308e565b348015610ab557600080fd5b50610130546103c7906001600160a01b031681565b348015610ad657600080fd5b5061050f610ae536600461485c565b61328e565b60006001600160e01b03198216637965db0b60e01b1480610b1b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610b2b61339c565b61012e546001600160a01b03848116911614610b8e5760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c7920617373657420617661696c61626c6520666f722072656465656d0060448201526064015b60405180910390fd5b60008211610bd75760405162461bcd60e51b8152602060048201526016602482015275416d6f756e74206f66205553442b206973207a65726f60501b6044820152606401610b85565b61012d546040516370a0823160e01b815233600482015283916001600160a01b0316906370a0823190602401602060405180830381865afa158015610c20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c449190614b19565b1015610c925760405162461bcd60e51b815260206004820152601b60248201527f4e6f7420656e6f75676820746f6b656e7320746f2072656465656d00000000006044820152606401610b85565b6000610c9d836133e2565b905060008111610ce95760405162461bcd60e51b8152602060048201526017602482015276416d6f756e74206f66206173736574206973207a65726f60481b6044820152606401610b85565b600080610cf7836000613539565b61012f54604051632e1a7d4d60e01b8152600481018490529194509192506000916001600160a01b031690632e1a7d4d9060240160408051808303816000875af1158015610d49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6d9190614b32565b915050610d798161363e565b61012d54604051632770a7eb60e21b8152336004820152602481018890526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b158015610dc657600080fd5b505af1158015610dda573d6000803e3d6000fd5b505061012e546040516370a0823160e01b81523060048201528593506001600160a01b0390911691506370a0823190602401602060405180830381865afa158015610e29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4d9190614b19565b1015610ea75760405162461bcd60e51b8152602060048201526024808201527f4e6f7420656e6f75676820666f72207472616e736665722072656465656d416d6044820152631bdd5b9d60e21b6064820152608401610b85565b61012e5460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610ef9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1d9190614b62565b506040805160a08082526006908201526572656465656d60d01b60c08201526020810184905290810184905233606082015260e0608082018190526000908201527f5215f03b099407f64e52d76ef2416a46b32915d572e87db5d40282538ed36484906101000160405180910390a15095945050505050565b610fa1600033612a41565b610fbd5760405162461bcd60e51b8152600401610b8590614b7f565b61012d54604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015611008573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102c9190614b19565b905060006110b061013060009054906101000a90046001600160a01b03166001600160a01b031663890a8c4f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611087573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ab9190614b19565b6137c5565b90508082116110f05760405162461bcd60e51b815260206004820152600c60248201526b39bab838363c901f103730bb60a11b6044820152606401610b85565b8260000361117a5761012d546040805163b1bf962d60e01b81529051611177926001600160a01b03169163b1bf962d9160048083019260209291908290030181865afa158015611144573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111689190614b19565b6111718361390a565b90613949565b92505b61012d5460405163b2be259160e01b8152600481018590526001600160a01b039091169063b2be259190602401600060405180830381600087803b1580156111c157600080fd5b505af11580156111d5573d6000803e3d6000fd5b5050610138546001600160a01b03161591506112519050576101385461012d54604051636e28e3d560e01b81526001600160a01b039182166004820152911690636e28e3d590602401600060405180830381600087803b15801561123857600080fd5b505af115801561124c573d6000803e3d6000fd5b505050505b505050565b61014354604051632474521560e21b815260008051602061515c83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa1580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d79190614b62565b6112f35760405162461bcd60e51b8152600401610b8590614bad565b806000036113135760405162461bcd60e51b8152600401610b8590614be4565b61013d82905561013e81905560408051838152602081018390527ffd477784a91e10a1a8ac1832d94895eef49a29940452ad3635cc3e8eab77e4b791015b60405180910390a15050565b60008281526065602052604090206001015461137881613a30565b6112518383613a3a565b6001600160a01b03811633146113f25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610b85565b6113fc8282613ac0565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114485760405162461bcd60e51b8152600401610b8590614c1b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661149160008051602061517c833981519152546001600160a01b031690565b6001600160a01b0316146114b75760405162461bcd60e51b8152600401610b8590614c67565b6114c081613b27565b604080516000808252602082019092526114dc91839190613b32565b50565b6114ea600033612a41565b6115065760405162461bcd60e51b8152600401610b8590614b7f565b6001600160a01b03811661152c5760405162461bcd60e51b8152600401610b8590614cb3565b61013080546001600160a01b0319166001600160a01b0383169081179091556040519081527f2387291c358bb5414b9fdcdfeb40efddb696908065a6533e47bf60b395f7dcfd906020015b60405180910390a150565b61014354604051632474521560e21b815260008051602061515c83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa1580156115df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116039190614b62565b61161f5760405162461bcd60e51b8152600401610b8590614bad565b611627613c9d565b565b611634600033612a41565b6116505760405162461bcd60e51b8152600401610b8590614b7f565b6001600160a01b0381166116765760405162461bcd60e51b8152600401610b8590614cb3565b61014180546001600160a01b0319166001600160a01b0383169081179091556040519081527f97519908572e1d17b754081a3fd2ac67644cf8cda617d672983db516e2308e7c90602001611577565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361170d5760405162461bcd60e51b8152600401610b8590614c1b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661175660008051602061517c833981519152546001600160a01b031690565b6001600160a01b03161461177c5760405162461bcd60e51b8152600401610b8590614c67565b61178582613b27565b6113fc82826001613b32565b600061179b61339c565b61014354604051632474521560e21b81527fede8101501d89b9894e78e4f219420b6ddb840e8e75dde35741a0745408476d760048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa15801561180a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182e9190614b62565b61186f5760405162461bcd60e51b815260206004820152601260248201527114995cdd1c9a58dd1959081d1bc8155b9a5d60721b6044820152606401610b85565b61013554610137546118819042614d00565b101561188f57506000610b1b565b61012f60009054906101000a90046001600160a01b03166001600160a01b031663c6bbf4cb6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156118e057600080fd5b505af11580156118f4573d6000803e3d6000fd5b50505050600061012d60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561194e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119729190614b19565b9050600081905060006119d261013060009054906101000a90046001600160a01b03166001600160a01b031663890a8c4f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611087573d6000803e3d6000fd5b9050600080600080600085881115611ba7576119ee8689614d13565b9250600061013e5461013d548a611a059190614d26565b611a0f9190614d3d565b9050808411611a4d5760405162461bcd60e51b815260206004820152600a6024820152694f7261636c654c6f737360b01b6044820152606401610b85565b6101405461013f54611a5f908b614d26565b611a699190614d3d565b611a739085614d00565b9350611a7e846133e2565b93508b15611a9f57611a8f84614d5f565b9950505050505050505050610b1b565b60408b015115611ba15761013c60009054906101000a90046001600160a01b03166001600160a01b031663645a5a978c8661012f60009054906101000a90046001600160a01b03166040518463ffffffff1660e01b8152600401611b0593929190614e0a565b600060405180830381600087803b158015611b1f57600080fd5b505af1158015611b33573d6000803e3d6000fd5b5050505061012f60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db06040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611b8857600080fd5b505af1158015611b9c573d6000803e3d6000fd5b505050505b506120fc565b611c49620186a061012f60009054906101000a90046001600160a01b03166001600160a01b0316634953bd076040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c269190614b19565b611c308b8a614d13565b611c3a9190614d26565b611c449190614d3d565b6133e2565b93508a15611c61578398505050505050505050610b1b565b600084118015611c74575060408a015115155b15611ddf5761012f54604051632e1a7d4d60e01b8152600481018690526001600160a01b0390911690632e1a7d4d9060240160408051808303816000875af1158015611cc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce89190614b32565b505061012e5461013c5460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810187905291169063a9059cbb906044016020604051808303816000875af1158015611d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d659190614b62565b5061013c546040516324ff1cad60e11b81526001600160a01b03909116906349fe395a90611d97908d90600401614e3d565b600060405180830381600087803b158015611db157600080fd5b505af1158015611dc5573d6000803e3d6000fd5b50505050611dd2846137c5565b611ddc9087614d13565b95505b61012d546040805163b1bf962d60e01b81529051611e58926001600160a01b03169163b1bf962d9160048083019260209291908290030181865afa158015611e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4f9190614b19565b6111718861390a565b915061012d60009054906101000a90046001600160a01b03166001600160a01b031663bbf44f336040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ed29190614b19565b611edf620f424084614d26565b611ee99190614d3d565b90508061013b5410156120fc5761012d546040805163bbf44f3360e01b815290516000926001600160a01b03169163bbf44f339160048083019260209291908290030181865afa158015611f41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f659190614b19565b90506000620f42408261013b54611f7c9190614d26565b611f869190614d3d565b90506000611f97826111718b61390a565b9050600061012d60009054906101000a90046001600160a01b03166001600160a01b031663b1bf962d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120139190614b19565b61201d9083614d13565b905061203161202c8286613cef565b613d55565b610141549099506001600160a01b031661208d5760405162461bcd60e51b815260206004820152601f60248201527f70726f666974526563697069656e742061646472657373206973207a65726f006044820152606401610b85565b61012d54610141546040516340c10f1960e01b81526001600160a01b039182166004820152602481018c90529116906340c10f1990604401600060405180830381600087803b1580156120df57600080fd5b505af11580156120f3573d6000803e3d6000fd5b50505050505050505b61012d60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612150573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121749190614b19565b97506121cd61013060009054906101000a90046001600160a01b03166001600160a01b031663890a8c4f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611087573d6000803e3d6000fd5b955061222661012d60009054906101000a90046001600160a01b03166001600160a01b031663b1bf962d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e2b573d6000803e3d6000fd5b915061012d60009054906101000a90046001600160a01b03166001600160a01b031663bbf44f336040518163ffffffff1660e01b8152600401602060405180830381865afa15801561227c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a09190614b19565b6122ad620f424084614d26565b6122b79190614d3d565b905060006122c58988614d13565b90506000866122d4838b614d00565b6122de9190614d00565b610138549091506001600160a01b031615612357576101385461012d54604051634e9f8ce360e11b81526001600160a01b039182166004820152911690639d3f19c690602401600060405180830381600087803b15801561233e57600080fd5b505af1158015612352573d6000803e3d6000fd5b505050505b61012d5460405163b2be259160e01b8152600481018690526001600160a01b039091169063b2be259190602401600060405180830381600087803b15801561239e57600080fd5b505af11580156123b2573d6000803e3d6000fd5b505050508761012d60009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561240b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061242f9190614b19565b1461246b5760405162461bcd60e51b815260206004820152600c60248201526b3a37ba30b610109e903730bb60a11b6044820152606401610b85565b61012d54604080516318160ddd60e01b8152905183926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa1580156124b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124d99190614b19565b1461251a5760405162461bcd60e51b81526020600482015260116024820152701d1bdd185b08084f48195e1c1958dd1959607a1b6044820152606401610b85565b610138546001600160a01b031615612590576101385461012d54604051636e28e3d560e01b81526001600160a01b039182166004820152911690636e28e3d590602401600060405180830381600087803b15801561257757600080fd5b505af115801561258b573d6000803e3d6000fd5b505050505b604080518381526020810186905290810188905260608101879052608081018690527f8dd3783ac3ed2cabfce0fa4347c2cab93b8273171a7e30b28a83147b099c40389060a00160405180910390a15b61013754610135546125f29190614d13565b421061261357610136546101355461260a9190614d00565b610135556125e0565b7f6654b7187a0560c4c326844142156c2adf52738d0a615487e0e2a5cd9823c2c46101355460405161264791815260200190565b60405180910390a15060009c9b505050505050505050505050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146127025760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610b85565b5060008051602061517c83398151915290565b612720600033612a41565b61273c5760405162461bcd60e51b8152600401610b8590614b7f565b6001600160a01b0381166127625760405162461bcd60e51b8152600401610b8590614cb3565b61013c80546001600160a01b0319166001600160a01b0383169081179091556040519081527f85a0f0b1d49c1f8eb76d236b1f5cdbb4acb94862ea575640d7399ae8530b076090602001611577565b600054610100900460ff16158080156127d15750600054600160ff909116105b806127eb5750303b1580156127eb575060005460ff166001145b61284e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610b85565b6000805460ff191660011790558015612871576000805461ff0019166101001790555b612879613dd5565b612881613dfc565b612889613dd5565b612894600033613a3a565b6028610131819055620186a0610132819055610133919091556101348190556361959780610135556201518061013681905561013755620f42a461013a55620f439e61013b5561013e8190556101405580156114dc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611577565b61014354604051632474521560e21b815260008051602061515c83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa158015612983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a79190614b62565b6129c35760405162461bcd60e51b8152600401610b8590614bad565b611627613e2b565b6129d6600033612a41565b6129f25760405162461bcd60e51b8152600401610b8590614b7f565b61014280546001600160a01b0319166001600160a01b0383169081179091556040519081527f2836b367ff6dd5ad0072110d2cabfe7150e1dd4e4571aefaacb20936a2fa2d6a90602001611577565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000612a7661339c565b610b1b612a8660208401846148aa565b6020840135612a986040860186614e50565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613e6892505050565b919050565b61014354604051632474521560e21b815260008051602061515c83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa158015612b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b589190614b62565b612b745760405162461bcd60e51b8152600401610b8590614bad565b61013a82905561013b81905560408051838152602081018390527f164d29c07aa1410447214bda4ceeae682b23796531b6b4d1d674f72953aa7f659101611351565b612bc1600033612a41565b612bdd5760405162461bcd60e51b8152600401610b8590614b7f565b6001600160a01b038116612c035760405162461bcd60e51b8152600401610b8590614cb3565b61012f80546001600160a01b0319166001600160a01b0383169081179091556040519081527ff7b449fcd5cfb7379dcd34cb69428dd9f882033b15be33d83b42d91daa28eeb790602001611577565b612c5d600033612a41565b612c795760405162461bcd60e51b8152600401610b8590614b7f565b61013880546001600160a01b0319166001600160a01b0383169081179091556040519081527fc388495b5a8a549e1885691ef3b8b1cb2b97a91365bbc9f26f488d28caaab84d90602001611577565b61014354604051632474521560e21b815260008051602061515c83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa158015612d25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d499190614b62565b612d655760405162461bcd60e51b8152600401610b8590614bad565b80600003612d855760405162461bcd60e51b8152600401610b8590614be4565b61013382905561013481905560408051838152602081018390527f9fb7dbd1f2c1bd33dd68f78a38f699ff1ca487d7a7211ecc7df31d919f52043d9101611351565b61014354604051632474521560e21b815260008051602061515c83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa158015612e24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e489190614b62565b612e645760405162461bcd60e51b8152600401610b8590614bad565b80600003612e845760405162461bcd60e51b8152600401610b8590614be4565b61013f82905561014081905560408051838152602081018390527f40406e80205f7a30d291067fc0c9c2b1c8715c2e7e8941c5d49feb4dc64f049b9101611351565b612ed1600033612a41565b612eed5760405162461bcd60e51b8152600401610b8590614b7f565b6001600160a01b038216612f135760405162461bcd60e51b8152600401610b8590614cb3565b6001600160a01b038116612f395760405162461bcd60e51b8152600401610b8590614cb3565b61012d80546001600160a01b038481166001600160a01b0319928316811790935561012e80549185169190921681179091556040805192835260208301919091527fdcc6331013de89f8c595d5328f0a724194f113cb6f8f2a707b3dff6de13f0d179101611351565b6000612fac61339c565b612fc6838360405180602001604052806000815250613e68565b9392505050565b600082815260656020526040902060010154612fe881613a30565b6112518383613ac0565b612ffd600033612a41565b6130195760405162461bcd60e51b8152600401610b8590614b7f565b6001600160a01b03811661303f5760405162461bcd60e51b8152600401610b8590614cb3565b61014380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5a7ef52f6714a981ffe676ce3c4a14db59929bd3f8ca82bb6cf9e230fa8a50c990602001611577565b61014354604051632474521560e21b815260008051602061515c83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa1580156130eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061310f9190614b62565b61312b5760405162461bcd60e51b8152600401610b8590614bad565b8260000361317b5760405162461bcd60e51b815260206004820181905260248201527f5a65726f205f6e6578745061796f757454696d65206e6f7420616c6c6f7765646044820152606401610b85565b816000036131cb5760405162461bcd60e51b815260206004820152601e60248201527f5a65726f205f7061796f7574506572696f64206e6f7420616c6c6f77656400006044820152606401610b85565b8083116132365760405162461bcd60e51b815260206004820152603360248201527f5f6e6578745061796f757454696d652073686f7564206265206d6f7265207468604482015272616e205f7061796f757454696d6552616e676560681b6064820152608401610b85565b61013583905561013682905561013781905560408051848152602081018490529081018290527f182705f356ea3bbbd12c7b4761586a554d391a7703345f81166bbe3f946444999060600160405180910390a1505050565b61014354604051632474521560e21b815260008051602061515c83398151915260048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa1580156132eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330f9190614b62565b61332b5760405162461bcd60e51b8152600401610b8590614bad565b8060000361334b5760405162461bcd60e51b8152600401610b8590614be4565b61013182905561013281905560408051838152602081018390527f28e297c7c282931a994191b735b01eaf17558295f761512a7047f4e1b8dc3b0b9101611351565b6001600160a01b03163b151590565b60fb5460ff16156116275760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610b85565b60008061012e60009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613439573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061345d9190614e97565b60ff169050600061012d60009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134dc9190614e97565b60ff1690508082111561350f576134f38183614d13565b6134fe90600a614f9e565b6135089085614d26565b9350613531565b6135198282614d13565b61352490600a614f9e565b61352e9085614d3d565b93505b509192915050565b60008060008361354c5761013354613551565b610131545b90506000846135635761013454613568565b610132545b61014354604051632474521560e21b81527f262f8dca0440d5010bae937fe18daeae459dacb80622baddc3b4f10759ac952a600482015233602482015291925060009182916001600160a01b0316906391d1485490604401602060405180830381865afa1580156135dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136019190614b62565b61362d5782613610858a614d26565b61361a9190614d3d565b91506136268289614d13565b9050613630565b50865b9450925050505b9250929050565b610142546000906001600160a01b0316156136d25761014260009054906101000a90046001600160a01b03166001600160a01b031663f2c9ecd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156136a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136cb9190614b19565b90506136d5565b50435b61014354604051632474521560e21b81527f262f8dca0440d5010bae937fe18daeae459dacb80622baddc3b4f10759ac952a60048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa158015613744573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137689190614b62565b1580156137725750815b156137be578061013954106137be5760405162461bcd60e51b81526020600482015260126024820152714f6e6c79206f6e636520696e20626c6f636b60701b6044820152606401610b85565b6101395550565b60008061012e60009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561381c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138409190614e97565b60ff169050600061012d60009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561389b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138bf9190614e97565b60ff169050808211156138eb576138d68183614d13565b6138e190600a614f9e565b6135089085614d3d565b6138f58282614d13565b61390090600a614f9e565b61352e9085614d26565b60008061391b633b9aca0084614d26565b90508261392c633b9aca0083614d3d565b14610b1b5760405162461bcd60e51b8152600401610b8590614faa565b60008160000361399b5760405162461bcd60e51b815260206004820152601c60248201527f4572726f72732e4d4154485f4449564953494f4e5f42595f5a45524f000000006044820152606401610b85565b826000036139ab57506000610b1b565b60006139b8600284614d3d565b90506b033b2e3c9fd0803ce80000006139d382600019614d13565b6139dd9190614d3d565b8411156139fc5760405162461bcd60e51b8152600401610b8590614faa565b8281613a146b033b2e3c9fd0803ce800000087614d26565b613a1e9190614d00565b613a289190614d3d565b949350505050565b6114dc813361431c565b613a448282612a41565b6113fc5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055613a7c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b613aca8282612a41565b156113fc5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006113fc81613a30565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613b655761125183614375565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613bbf575060408051601f3d908101601f19168201909252613bbc91810190614b19565b60015b613c225760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610b85565b60008051602061517c8339815191528114613c915760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610b85565b50611251838383614411565b613ca561443c565b60fb805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6000821580613cfc575081155b15613d0957506000610b1b565b613d1582600019614d3d565b831115613d345760405162461bcd60e51b8152600401610b8590614faa565b6b033b2e3c9fd0803ce8000000613d4b8385614d26565b612fc69190614d3d565b600080613d676002633b9aca00614d3d565b90506000613d758483614d00565b905081811015613dc75760405162461bcd60e51b815260206004820152601d60248201527f4572726f72732e4d4154485f4144444954494f4e5f4f564552464c4f570000006044820152606401610b85565b613a28633b9aca0082614d3d565b600054610100900460ff166116275760405162461bcd60e51b8152600401610b8590614fed565b600054610100900460ff16613e235760405162461bcd60e51b8152600401610b8590614fed565b611627614485565b613e3361339c565b60fb805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613cd23390565b61012e546000906001600160a01b03858116911614613ec95760405162461bcd60e51b815260206004820152601c60248201527f4f6e6c7920617373657420617661696c61626c6520666f7220627579000000006044820152606401610b85565b61012e546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015613f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f379190614b19565b905083811015613f895760405162461bcd60e51b815260206004820152601860248201527f4e6f7420656e6f75676820746f6b656e7320746f2062757900000000000000006044820152606401610b85565b60008411613fd35760405162461bcd60e51b8152602060048201526017602482015276416d6f756e74206f66206173736574206973207a65726f60481b6044820152606401610b85565b6000613fde856137c5565b9050600081116140295760405162461bcd60e51b8152602060048201526016602482015275416d6f756e74206f66205553442b206973207a65726f60501b6044820152606401610b85565b61012e5461012f546040516370a0823160e01b81526001600160a01b039182166004820152600092889216906370a0823190602401602060405180830381865afa15801561407b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061409f9190614b19565b6140a99190614d00565b61012e5461012f546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018a905292935016906323b872dd906064016020604051808303816000875af1158015614108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061412c9190614b62565b5061012e5461012f546040516370a0823160e01b81526001600160a01b039182166004820152839291909116906370a0823190602401602060405180830381865afa15801561417f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141a39190614b19565b146141e75760405162461bcd60e51b81526020600482015260146024820152731c1b4818985b185b98d948084f481d185c99d95d60621b6044820152606401610b85565b61012f60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561423857600080fd5b505af115801561424c573d6000803e3d6000fd5b5050505061425a600061363e565b600080614268846001613539565b61012d546040516340c10f1960e01b8152336004820152602481018490529194509192506001600160a01b03909116906340c10f1990604401600060405180830381600087803b1580156142bb57600080fd5b505af11580156142cf573d6000803e3d6000fd5b505050507f5215f03b099407f64e52d76ef2416a46b32915d572e87db5d40282538ed364848183338a6040516143089493929190615038565b60405180910390a198975050505050505050565b6143268282612a41565b6113fc57614333816144b8565b61433e8360206144ca565b60405160200161434f92919061508a565b60408051601f198184030181529082905262461bcd60e51b8252610b85916004016150ff565b6001600160a01b0381163b6143e25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610b85565b60008051602061517c83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61441a83614666565b6000825111806144275750805b156112515761443683836146a6565b50505050565b60fb5460ff166116275760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610b85565b600054610100900460ff166144ac5760405162461bcd60e51b8152600401610b8590614fed565b60fb805460ff19169055565b6060610b1b6001600160a01b03831660145b606060006144d9836002614d26565b6144e4906002614d00565b67ffffffffffffffff8111156144fc576144fc6148c5565b6040519080825280601f01601f191660200182016040528015614526576020820181803683370190505b509050600360fc1b8160008151811061454157614541615112565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061457057614570615112565b60200101906001600160f81b031916908160001a9053506000614594846002614d26565b61459f906001614d00565b90505b6001811115614617576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106145d3576145d3615112565b1a60f81b8282815181106145e9576145e9615112565b60200101906001600160f81b031916908160001a90535060049490941c9361461081615128565b90506145a2565b508315612fc65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610b85565b61466f81614375565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b61470e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610b85565b600080846001600160a01b031684604051614729919061513f565b600060405180830381855af49150503d8060008114614764576040519150601f19603f3d011682016040523d82523d6000602084013e614769565b606091505b5091509150614791828260405180606001604052806027815260200161519c6027913961479a565b95945050505050565b606083156147a9575081612fc6565b612fc683838151156147be5781518083602001fd5b8060405162461bcd60e51b8152600401610b8591906150ff565b6000602082840312156147ea57600080fd5b81356001600160e01b031981168114612fc657600080fd5b80356001600160a01b0381168114612ad257600080fd5b6000806040838503121561482c57600080fd5b61483583614802565b946020939093013593505050565b60006020828403121561485557600080fd5b5035919050565b6000806040838503121561486f57600080fd5b50508035926020909101359150565b6000806040838503121561489157600080fd5b823591506148a160208401614802565b90509250929050565b6000602082840312156148bc57600080fd5b612fc682614802565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126148ec57600080fd5b813567ffffffffffffffff80821115614907576149076148c5565b604051601f8301601f19908116603f0116810190828211818310171561492f5761492f6148c5565b8160405283815286602085880101111561494857600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561497b57600080fd5b61498483614802565b9150602083013567ffffffffffffffff8111156149a057600080fd5b6149ac858286016148db565b9150509250929050565b80151581146114dc57600080fd5b600080604083850312156149d757600080fd5b82356149e2816149b6565b9150602083013567ffffffffffffffff808211156149ff57600080fd5b9084019060808287031215614a1357600080fd5b604051608081018181108382111715614a2e57614a2e6148c5565b604052614a3a83614802565b8152614a4860208401614802565b602082015260408301356040820152606083013582811115614a6957600080fd5b614a75888286016148db565b6060830152508093505050509250929050565b600060208284031215614a9a57600080fd5b813567ffffffffffffffff811115614ab157600080fd5b820160608185031215612fc657600080fd5b60008060408385031215614ad657600080fd5b614adf83614802565b91506148a160208401614802565b600080600060608486031215614b0257600080fd5b505081359360208301359350604090920135919050565b600060208284031215614b2b57600080fd5b5051919050565b60008060408385031215614b4557600080fd5b825191506020830151614b57816149b6565b809150509250929050565b600060208284031215614b7457600080fd5b8151612fc6816149b6565b6020808252601490820152735265737472696374656420746f2061646d696e7360601b604082015260600190565b6020808252601d908201527f5265737472696374656420746f20506f7274666f6c696f204167656e74000000604082015260600190565b6020808252601c908201527f5a65726f2064656e6f6d696e61746f72206e6f7420616c6c6f77656400000000604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526018908201527f5a65726f2061646472657373206e6f7420616c6c6f7765640000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b1b57610b1b614cea565b81810381811115610b1b57610b1b614cea565b8082028115828204841417610b1b57610b1b614cea565b600082614d5a57634e487b7160e01b600052601260045260246000fd5b500490565b6000600160ff1b8201614d7457614d74614cea565b5060000390565b60005b83811015614d96578181015183820152602001614d7e565b50506000910152565b60008151808452614db7816020860160208601614d7b565b601f01601f19169290920160200192915050565b600060018060a01b038083511684528060208401511660208501525060408201516040840152606082015160806060850152613a286080850182614d9f565b606081526000614e1d6060830186614dcb565b6020830194909452506001600160a01b0391909116604090910152919050565b602081526000612fc66020830184614dcb565b6000808335601e19843603018112614e6757600080fd5b83018035915067ffffffffffffffff821115614e8257600080fd5b60200191503681900382131561363757600080fd5b600060208284031215614ea957600080fd5b815160ff81168114612fc657600080fd5b600181815b80851115614ef5578160001904821115614edb57614edb614cea565b80851615614ee857918102915b93841c9390800290614ebf565b509250929050565b600082614f0c57506001610b1b565b81614f1957506000610b1b565b8160018114614f2f5760028114614f3957614f55565b6001915050610b1b565b60ff841115614f4a57614f4a614cea565b50506001821b610b1b565b5060208310610133831016604e8410600b8410161715614f78575081810a610b1b565b614f828383614eba565b8060001904821115614f9657614f96614cea565b029392505050565b6000612fc68383614efd565b60208082526023908201527f4572726f72732e4d4154485f4d554c5449504c49434154494f4e5f4f564552466040820152624c4f5760e81b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60a08152600460a0820152631b5a5b9d60e21b60c082015284602082015283604082015260018060a01b038316606082015260e06080820152600061508060e0830184614d9f565b9695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516150c2816017850160208801614d7b565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516150f3816028840160208801614d7b565b01602801949350505050565b602081526000612fc66020830184614d9f565b634e487b7160e01b600052603260045260246000fd5b60008161513757615137614cea565b506000190190565b60008251615151818460208701614d7b565b919091019291505056fed67ad422505496469a1adf6cdf9e5ee92ac5d33992843c9ecc4b2f6d6cde9137360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220b6088cba1ab48c78564c368b2b6348999ab7ffc19fe9d4c1c9385f62dfb67a5564736f6c63430008110033