0 txs
1 call
constructor
No constructor.
functions
getAccountOrders
viewfunction getAccountOrders(DataStore dataStore, address account, uint256 start, uint256 end) view returns (tuple[])
getAdlState
viewfunction getAdlState(DataStore dataStore, address market, bool isLong, tuple prices) view returns (uint256, bool, int256, uint256)
getBaseFundingValues
viewfunction getBaseFundingValues(DataStore dataStore, tuple market) view returns (tuple)
getMarketInfo
viewfunction getMarketInfo(DataStore dataStore, tuple prices, address marketKey) view returns (tuple)
getMarketInfoList
viewfunction getMarketInfoList(DataStore dataStore, tuple[] marketPricesList, uint256 start, uint256 end) view returns (tuple[])
getMarkets
viewfunction getMarkets(DataStore dataStore, uint256 start, uint256 end) view returns (tuple[])
getOrder
viewfunction getOrder(DataStore dataStore, bytes32 key) view returns (tuple)
events
No events.
errors
PRBMath__MulDivFixedPointOverflow
error PRBMath__MulDivFixedPointOverflow(uint256 prod1)
PRBMathUD60x18__Exp2InputTooBig
error PRBMathUD60x18__Exp2InputTooBig(uint256 x)
PRBMathUD60x18__LogInputTooSmall
error PRBMathUD60x18__LogInputTooSmall(uint256 x)
UnableToGetBorrowingFactorEmptyPoolUsd
error UnableToGetBorrowingFactorEmptyPoolUsd()
UnableToGetFundingFactorEmptyOpenInterest
error UnableToGetFundingFactorEmptyOpenInterest()
creation bytecode
0x614e8d610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100775760003560e01c806310366e351461007c5780631d81085c146100a5578063619c4ddb146100d8578063818ee976146100f85780639b43e9fc14610118578063b69bee4614610138578063c65da80014610158575b600080fd5b61008f61008a366004613fbd565b610178565b60405161009c919061409b565b60405180910390f35b6100b86100b3366004614177565b610272565b60408051948552921515602085015291830152606082015260800161009c565b6100eb6100e63660046141d3565b61037d565b60405161009c919061430d565b61010b61010636600461433f565b61050e565b60405161009c9190614406565b61012b61012636600461444a565b6105fd565b60405161009c919061447f565b61014b6101463660046144c2565b61073f565b60405161009c9190614754565b61016b6101663660046147d0565b61088a565b60405161009c91906147fc565b610180613c7b565b610188613c7b565b61019d84846000015185604001516001610910565b81515152825160608401516101b59186916001610910565b81515160200152825160408401516101d09186916000610910565b81516020015152825160608401516101eb9186916000610910565b81516020908101510152825160408401516102099186916001610994565b60208201515152825160608401516102249186916001610994565b602080830151510152825160408401516102419186916000610994565b6020808301510151528251606084015161025e9186916000610994565b602080830151810151015290505b92915050565b60008060008060006102858989896109b0565b905060007393e3ae5ba6f5b6685a03c8f45b61034580b5b9e5635d95a47e8b8b6040518363ffffffff1660e01b81526004016102c292919061480f565b608060405180830381865af41580156102df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103039190614834565b905060008060006103668d858c8e60405160200161034b9060208082526016908201527513505617d4139317d19050d513d497d193d497d0511360521b604082015260600190565b60405160208183030381529060405280519060200120610a2a565b969f919e509c50949a509398505050505050505050565b610385613ca0565b60405163a8d8fff560e01b815260009073441e058004487b364eda07145fb9c0245fc892d19063a8d8fff5906103c1908890879060040161480f565b608060405180830381865af41580156103de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104029190614834565b905060006104138683876001610a7e565b905060006104248784886000610a7e565b905060006104328885610178565b9050600061044189868a610d54565b9050600061044f8a876110f8565b905060008a6001600160a01b0316637ae1cfca61046f896000015161114c565b6040518263ffffffff1660e01b815260040161048d91815260200190565b602060405180830381865afa1580156104aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ce919061489d565b6040805160e0810182529889526020890197909752958701949094526060860192909252608085015260a084015250151560c082015290505b9392505050565b6060600061051d8685856111cf565b9050600081516001600160401b0381111561053a5761053a613f09565b60405190808252806020026020018201604052801561057357816020015b610560613ca0565b8152602001906001900390816105585790505b50905060005b82518110156105f0576000878281518110610596576105966148ba565b6020026020010151905060008483815181106105b4576105b46148ba565b602002602001015190506105c98a838361037d565b8484815181106105db576105db6148ba565b60209081029190910101525050600101610579565b509150505b949350505050565b6060600061060c8585856111cf565b9050600081516001600160401b0381111561062957610629613f09565b60405190808252806020026020018201604052801561066257816020015b61064f613cf5565b8152602001906001900390816106475790505b50905060005b8251811015610735576000838281518110610685576106856148ba565b60200260200101519050600073441e058004487b364eda07145fb9c0245fc892d163a8d8fff58a846040518363ffffffff1660e01b81526004016106ca92919061480f565b608060405180830381865af41580156106e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070b9190614834565b905080848481518110610720576107206148ba565b60209081029190910101525050600101610668565b5095945050505050565b6060600061074f86868686611294565b9050600081516001600160401b0381111561076c5761076c613f09565b6040519080825280602002602001820160405280156107a557816020015b610792613d1c565b81526020019060019003908161078a5790505b50905060005b82518110156105f05760008382815181106107c8576107c86148ba565b60200260200101519050604051806040016040528082815260200173c7911480a797941e54d7c70c65467a7c04989fcd63fdfc26f38c856040518363ffffffff1660e01b815260040161081c9291906148d0565b600060405180830381865af4158015610839573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108619190810190614add565b815250838381518110610876576108766148ba565b6020908102919091010152506001016107ab565b610892613d32565b60405163fdfc26f360e01b815273c7911480a797941e54d7c70c65467a7c04989fcd9063fdfc26f3906108cb90869086906004016148d0565b600060405180830381865af41580156108e8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105079190810190614add565b6000846001600160a01b031663bd02d0f561092c868686611320565b6040518263ffffffff1660e01b815260040161094a91815260200190565b602060405180830381865afa158015610967573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098b9190614c49565b95945050505050565b6000846001600160a01b031663bd02d0f561092c8686866113c1565b6000836001600160a01b031663bd02d0f56109cb858561140e565b6040518263ffffffff1660e01b81526004016109e991815260200190565b602060405180830381865afa158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f59190614c49565b600080600080610a3e898989896001611495565b90506000610a528a878b600001518a6114e5565b905060008083138015610a6c575081610a6a84611501565b115b9b929a50909850909650505050505050565b600080610a8d8686868661155c565b905080600003610aa15760009150506105f5565b6000866001600160a01b0316637ae1cfca604051602001610aff9060208082526023908201527f534b49505f424f52524f57494e475f4645455f464f525f534d414c4c45525f5360408201526249444560e81b606082015260800190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401610b3391815260200190565b602060405180830381865afa158015610b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b74919061489d565b90508015610c92576000876001600160a01b0316637ae1cfca604051602001610b9c90614c62565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401610bd091815260200190565b602060405180830381865afa158015610bed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c11919061489d565b90506000610c2f898984610c288b600001516115a2565b60016115c4565b90506000610c4d8a8a85610c468c600001516115a2565b60006115c4565b9050868015610c5b57508082105b15610c6e576000955050505050506105f5565b86158015610c7b57508181105b15610c8e576000955050505050506105f5565b5050505b6000610ca2888888886000611628565b905080600003610cc557604051630d5f5aef60e31b815260040160405180910390fd5b6000610cd6898960000151886116a1565b90508015610cf757610cec8989888786866116bc565b9450505050506105f5565b6000610d088a8a600001518961186b565b90506000610d168683611886565b90506000610d2482866118e5565b90506000610d378d8d600001518c6118f3565b9050610d43828261190e565b9d9c50505050505050505050505050565b610d5c613e1c565b610d64613e1c565b610d6c613e46565b6000610d8086604001518760600151611927565b9050610d988787600001518860400151600185611956565b8251515285516060870151610db1918991600185611956565b8251516020015285516040870151610dcd918991600085611956565b8251602001515285516060870151610de9918991600085611956565b8251602090810151810191909152825151908101519051610e0a9190614cbf565b6020808401919091528251810151908101519051610e289190614cbf565b604083015260208201511580610e4057506040820151155b15610e5057829350505050610507565b610e5e8787600001516119dc565b60608301528451610e809088908890610e76906115a2565b8560600151611a74565b604086015215158085526020850191909152610ea0578160400151610ea6565b81602001515b6080830181905260208401516060840151610eca9291610ec591614cd2565b61190e565b60a08301819052610edc908290614cff565b60a0830152825115610f2d5760a0820151825151516020840151610f0192919061226a565b60c083015260a082015182515160209081015190840151610f2392919061226a565b60e0830152610f73565b60a0820151825160200151516040840151610f4992919061226a565b60c083015260a0820151825160209081015101516040840151610f6d92919061226a565b60e08301525b8251156110315760c0820151825151516020808801510151610f989291906001612277565b6060840151515260e0820151825151602090810151604088015190910151610fc39291906001612277565b8360600151600001516020018181525050610ff18260c0015183604001518760200151602001516000612277565b836080015160200151600001818152505061101f8260e0015183604001518760400151602001516000612277565b608084015160209081015101526110ed565b6110568260c00151836000015160200151600001518760200151602001516001612277565b836060015160200151600001818152505061108c8260e00151836000015160200151602001518760400151602001516001612277565b83606001516020015160200181815250506110ba8260c0015183602001518760200151602001516000612277565b6080840151515260e08201516020808401516040880151909101516110e29291906000612277565b608084015151602001525b509095945050505050565b611100613e91565b6000806111118585600001516122df565b92509250506000611126868660200151612477565b604080516060810182529586526020860194909452928401929092525090949350505050565b6000604051602001611184906020808252601290820152711254d7d3505492d15517d11254d05093115160721b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b038416908201526060015b604051602081830303815290604052805190602001209050919050565b6060836001600160a01b031663e7e4148e60405160200161120f906020808252600b908201526a13505492d15517d31254d560aa1b604082015260600190565b60408051601f198184030181529082905280516020909101206001600160e01b031960e084901b16825260048201526024810186905260448101859052606401600060405180830381865afa15801561126c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105f59190810190614d13565b6060846001600160a01b031663f069052a6112ae8661258d565b6040516001600160e01b031960e084901b16815260048101919091526024810186905260448101859052606401600060405180830381865afa1580156112f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261098b9190810190614d47565b6000604051602001611361906020808252601b908201527a46554e44494e475f4645455f414d4f554e545f5045525f53495a4560281b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b038087169183019190915284166060820152821515608082015260a0015b6040516020818303038152906040528051906020012090509392505050565b60006040516020016113619060208082526021908201527f434c41494d41424c455f46554e44494e475f414d4f554e545f5045525f53495a6040820152604560f81b606082015260800190565b6000604051602001611441906020808252600d908201526c1310551154d517d0511317d055609a1b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b0385169082015282151560608201526080015b60405160208183030381529060405280519060200120905092915050565b6000806114a6878787878715611628565b9050806000036114ba57600091505061098b565b60006114cd8888886000015188886125c5565b90506114d98183612651565b98975050505050505050565b6000846001600160a01b031663bd02d0f561092c868686612690565b6000808212156115585760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f73697469766560448201526064015b60405180910390fd5b5090565b600080821561158d576000611572878786612704565b8551602001519091506115859082614cd2565b91505061098b565b611598868685612762565b9695505050505050565b60006002826000015183602001516115ba9190614cbf565b61026c9190614cff565b6000806115d986604001518760600151611927565b905060006115f48888600001518489898c604001518a6127a9565b9050600061160f898960000151858a8a8d606001518b6127a9565b905061161b8183614cbf565b9998505050505050505050565b6000808361163a578560600151611640565b85604001515b9050600061164f8888846127e1565b90506000841561167d578561166c57866040015160200151611676565b8660200151602001515b9050611697565b8561168d57604087015151611694565b6020870151515b90505b61161b8183614cd2565b6000836001600160a01b031663bd02d0f56109cb858561287f565b6000806116cc88888888886128b9565b90506000886001600160a01b031663bd02d0f56116ed8a600001518a6128e7565b6040518263ffffffff1660e01b815260040161170b91815260200190565b602060405180830381865afa158015611728573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174c9190614c49565b9050600061175a838361190e565b9050848311801561177657508468327cb2734119d3b7a9601e1b115b1561161b5760006117878685614d7b565b905060008b6001600160a01b031663bd02d0f56117a88d600001518d612922565b6040518263ffffffff1660e01b81526004016117c691815260200190565b602060405180830381865afa1580156117e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118079190614c49565b90506000848211156118205761181d8583614d7b565b90505b60006118388968327cb2734119d3b7a9601e1b614d7b565b9050806118458584614cd2565b61184f9190614cff565b6118599086614cbf565b9e9d5050505050505050505050505050565b6000836001600160a01b031663bd02d0f56109cb8585612972565b600068327cb2734119d3b7a9601e1b8310156118a45750600061026c565b68327cb2734119d3b7a9601e1b82036118be57508161026c565b60006118da6118cc856129b1565b6118d5856129b1565b6129c2565b90506105f581612a04565b600061050783836000612a15565b6000836001600160a01b031663bd02d0f56109cb8585612a64565b6000610507838368327cb2734119d3b7a9601e1b61226a565b6000816001600160a01b0316836001600160a01b03161461194957600161194c565b60025b60ff169392505050565b600081866001600160a01b031663bd02d0f5611973888888612a9a565b6040518263ffffffff1660e01b815260040161199191815260200190565b602060405180830381865afa1580156119ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d29190614c49565b6115989190614cff565b600080836001600160a01b031663bd02d0f56119f785612acd565b6040518263ffffffff1660e01b8152600401611a1591815260200190565b602060405180830381865afa158015611a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a569190614c49565b905080600003611a6a57600091505061026c565b6105f58142614d7b565b6000806000611acf604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000886001600160a01b0316637ae1cfca604051602001611aef90614c62565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401611b2391815260200190565b602060405180830381865afa158015611b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b64919061489d565b90506000611b768a8a848b60016115c4565b90506000611b888b8b858c60006115c4565b9050611b948282612b05565b8452611ba08183614cbf565b846020018181525050611be26040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8b6001600160a01b031663bd02d0f5611bfe8d60000151612b27565b6040518263ffffffff1660e01b8152600401611c1c91815260200190565b602060405180830381865afa158015611c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5d9190614c49565b60408201528451158015611c7357506040810151155b15611c8e576000600160009750975097505050505050612260565b8460200151600003611cb3576040516311423d9560e01b815260040160405180910390fd5b611cc18c8c60000151612b75565b606086018190528551611cd391611886565b608086018190526020860151611ce991906118e5565b60a08601526040810151600003611dc157611d088c8c60000151612bee565b60408601528a516000906001600160a01b038e169063bd02d0f590611d2c90612c08565b6040518263ffffffff1660e01b8152600401611d4a91815260200190565b602060405180830381865afa158015611d67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8b9190614c49565b90506000611da18760a00151886040015161190e565b905081811115611dae5750805b9850505010935060009250612260915050565b611dcf8c8c60000151612c4b565b60c08601819052611ddf90612c65565b60e08601528a516001600160a01b038d169063bd02d0f590611e0090612c78565b6040518263ffffffff1660e01b8152600401611e1e91815260200190565b602060405180830381865afa158015611e3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5f9190614c49565b81528a516001600160a01b038d169063bd02d0f590611e7d90612cba565b6040518263ffffffff1660e01b8152600401611e9b91815260200190565b602060405180830381865afa158015611eb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611edc9190614c49565b602082015260c08501516101008601819052600090819081128015611f0057508385115b80611f19575060008760c00151128015611f1957508484115b90508015611f5157825160a08801511115611f375760019150611f56565b82602001518760a001511015611f4c57600291505b611f56565b600191505b6001826002811115611f6a57611f6a61454d565b03611fcc576000611f7a8c612cfd565b611f94611f8f8a60a00151876040015161190e565b612cfd565b611f9e9190614d8e565b905084861015611fb457611fb181614dbe565b90505b808860c00151611fc49190614dda565b610100890152505b6002826002811115611fe057611fe061454d565b148015611ff0575060e087015115155b15612101578d6001600160a01b031663bd02d0f56120118f60000151612d67565b6040518263ffffffff1660e01b815260040161202f91815260200190565b602060405180830381865afa15801561204c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120709190614c49565b60608401819052600090612085908d90614cd2565b9050808860e00151116120b95761209f8860e00151612cfd565b8860c001516120ae9190614e02565b6101008901526120ff565b60006120c88960e00151612cfd565b8960c001516120d79190614e02565b9050806120ed838b60e00151611f8f9190614d7b565b6120f79190614d8e565b6101008a0152505b505b8d6001600160a01b031663bd02d0f561211d8f60000151612db5565b6040518263ffffffff1660e01b815260040161213b91815260200190565b602060405180830381865afa158015612158573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217c9190614c49565b60808401528c516001600160a01b038f169063bd02d0f59061219d90612c08565b6040518263ffffffff1660e01b81526004016121bb91815260200190565b602060405180830381865afa1580156121d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121fc9190614c49565b60a0840181905261010088015161221591600090612df8565b6101008801819052608084015160a0850151612232929190612df8565b610120880181905261224390612c65565b600088610120015113886101000151995099509950505050505050505b9450945094915050565b60006105f5848484612e58565b6000841580612284575083155b15612291575060006105f5565b60006122bb866122b466038d7ea4c6800068327cb2734119d3b7a9601e1b614cd2565b8786612f42565b905082156122d5576122cd8185612f69565b9150506105f5565b6122cd8482614cff565b600080600080856001600160a01b031663a6ed563e6122fd87612f8c565b6040518263ffffffff1660e01b815260040161231b91815260200190565b602060405180830381865afa158015612338573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235c9190614c49565b90508061237457600080600093509350935050612470565b6001866001600160a01b031663bd02d0f5612390846001612fc3565b6040518263ffffffff1660e01b81526004016123ae91815260200190565b602060405180830381865afa1580156123cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ef9190614c49565b876001600160a01b031663bd02d0f5612409856000612fc3565b6040518263ffffffff1660e01b815260040161242791815260200190565b602060405180830381865afa158015612444573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124689190614c49565b935093509350505b9250925092565b6000806000846001600160a01b031663a6ed563e61249486613035565b6040518263ffffffff1660e01b81526004016124b291815260200190565b602060405180830381865afa1580156124cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f39190614c49565b905080612507576000809250925050612586565b6001856001600160a01b031663dc97d9626125218461306b565b6040518263ffffffff1660e01b815260040161253f91815260200190565b602060405180830381865afa15801561255c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125809190614c49565b92509250505b9250929050565b6000604051602001611184906020808252601290820152711050d0d3d5539517d3d491115497d31254d560721b604082015260600190565b6000806125d6611f8f888887612762565b905060006125e5888887612704565b90508115806125f2575080155b156126025760009250505061098b565b600061260f8787876130d7565b90506000612620611f8f8385614cd2565b9050600087612638576126338286614e30565b612642565b6126428583614e30565b9b9a5050505050505050505050565b60008061266661266085612c65565b846118e5565b9050600084136126875761267981612cfd565b61268290614dbe565b6105f5565b6105f581612cfd565b60006040516020016126c4906020808252600e908201526d26a0ac2fa827262fa320a1aa27a960911b604082015260600190565b60408051601f1981840301815282825280516020918201209083015281018590526001600160a01b0384166060820152821515608082015260a0016113a2565b60008061271984604001518560600151611927565b905060006127328686600001518760400151878661310e565b9050600061274b8787600001518860600151888761310e565b90506127578183614cbf565b979650505050505050565b60008061277784604001518560600151611927565b9050600061279086866000015187604001518786611956565b9050600061274b87876000015188606001518887611956565b600084156127d45760006127c0898986868b61310e565b90506127cc8582614cd2565b915050612757565b6114d9888885858a611956565b6000806127f684604001518560600151611927565b905080856001600160a01b031663bd02d0f561281687600001518761312b565b6040518263ffffffff1660e01b815260040161283491815260200190565b602060405180830381865afa158015612851573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128759190614c49565b61098b9190614cff565b60006040516020016114419060208082526014908201527327a82a24a6a0a62faaa9a0a3a2afa320a1aa27a960611b604082015260600190565b6000806128cb87876000015187613199565b905060006128d9848361190e565b9050600061161b86836118e5565b6000604051602001611441906020808252601590820152742120a9a2afa127a92927aba4a723afa320a1aa27a960591b604082015260600190565b60006040516020016114419060208082526024908201527f41424f56455f4f5054494d414c5f55534147455f424f52524f57494e475f464160408201526321aa27a960e11b606082015260800190565b6000604051602001611441906020808252601990820152782127a92927aba4a723afa2ac2827a722a72a2fa320a1aa27a960391b604082015260600190565b600061026c64e8d4a5100083614cff565b6000826000036129ea5781156129d95760006129e3565b670de0b6b3a76400005b905061026c565b6105076129ff6129f9856131b4565b8461326a565b613276565b600061026c64e8d4a5100083614cd2565b600083600003612a2757506000610507565b8115612a4d57612a468468327cb2734119d3b7a9601e1b8560016132bc565b9050610507565b6105f58468327cb2734119d3b7a9601e1b85612e58565b60006040516020016114419060208082526010908201526f2127a92927aba4a723afa320a1aa27a960811b604082015260600190565b6000604051602001611361906020808252600d908201526c13d4115397d2539511549154d5609a1b604082015260600190565b60006040516020016111849060208082526012908201527111955391125391d7d554111055115117d05560721b604082015260600190565b6000818311612b1d57612b188383614d7b565b610507565b6105078284614d7b565b60006040516020016111849060208082526022908201527f46554e44494e475f494e4352454153455f464143544f525f5045525f5345434f604082015261139160f21b606082015260800190565b6000826001600160a01b031663bd02d0f5612b8f8461330d565b6040518263ffffffff1660e01b8152600401612bad91815260200190565b602060405180830381865afa158015612bca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105079190614c49565b6000826001600160a01b031663bd02d0f5612b8f8461334a565b6000604051602001611184906020808252601d908201527f4d41585f46554e44494e475f464143544f525f5045525f5345434f4e44000000604082015260600190565b6000826001600160a01b031663dc97d962612b8f8461337e565b600080821215611558578160000361026c565b6000604051602001611184906020808252601c908201527b5448524553484f4c445f464f525f535441424c455f46554e44494e4760201b604082015260600190565b6000604051602001611184906020808252601e908201527f5448524553484f4c445f464f525f44454352454153455f46554e44494e470000604082015260600190565b60006001600160ff1b038211156115585760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161154f565b60006040516020016111849060208082526022908201527f46554e44494e475f44454352454153455f464143544f525f5045525f5345434f604082015261139160f21b606082015260800190565b6000604051602001611184906020808252601d908201527f4d494e5f46554e44494e475f464143544f525f5045525f5345434f4e44000000604082015260600190565b600080612e0485612c65565b905083811015612e115750825b82811115612e1c5750815b60008515612e3f57612e30611f8f87612c65565b612e3a9087614e02565b612e42565b60015b905080612e4e83612cfd565b6115989190614d8e565b6000808060001985870985870292508281108382030391505080600003612e9257838281612e8857612e88614ce9565b0492505050610507565b808411612ed95760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b604482015260640161154f565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b60008115612f5e57612f5785858560016132bc565b90506105f5565b61098b858585612e58565b6000816001612f788286614cbf565b612f829190614d7b565b6105079190614cff565b6000604051602001611184906020808252601190820152701592549515505317d3505492d15517d251607a1b604082015260600190565b6000604051602001613004906020808252601b908201527a5649525455414c5f494e56454e544f52595f464f525f535741505360281b604082015260600190565b60408051601f1981840301815282825280516020918201209083015281018490528215156060820152608001611477565b60006040516020016111849060208082526010908201526f1592549515505317d513d2d15397d25160821b604082015260600190565b60006040516020016130ae906020808252601f908201527f5649525455414c5f494e56454e544f52595f464f525f504f534954494f4e5300604082015260600190565b60408051601f1981840301815282825280516020918201209083015281018390526060016111b2565b600082156130f657816130eb578351612a46565b506020830151610507565b816131055783602001516105f5565b50509051919050565b600081866001600160a01b031663bd02d0f56119738888886133c1565b600060405160200161315c906020808252600b908201526a1413d3d317d05353d5539560aa1b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b038086169183019190915283166060820152608001611477565b6000836001600160a01b031663bd02d0f56109cb85856133fe565b6000670de0b6b3a76400008210156131e257604051633621413760e21b81526004810183905260240161154f565b60006131f7670de0b6b3a76400008404613440565b670de0b6b3a764000081029250905082811c670de0b6b3a763ffff198101613220575050919050565b6706f05b59d3b200005b801561326257670de0b6b3a7640000828002049150671bc16d674ec80000821061325a579283019260019190911c905b60011c61322a565b505050919050565b60006105078383613523565b6000680a688906bd8b00000082106132a457604051634a4f26f160e01b81526004810183905260240161154f565b670de0b6b3a7640000604083901b04610507816135e9565b6000806132ca868686612e58565b905060018360028111156132e0576132e061454d565b1480156132fd5750600084806132f8576132f8614ce9565b868809115b1561098b57611598600182614cbf565b600060405160200161118490602080825260179082015276232aa72224a723afa2ac2827a722a72a2fa320a1aa27a960491b604082015260600190565b6000604051602001611184906020808252600e908201526d232aa72224a723afa320a1aa27a960911b604082015260600190565b6000604051602001611184906020808252601f908201527f53415645445f46554e44494e475f464143544f525f5045525f5345434f4e4400604082015260600190565b6000604051602001611361906020808252601790820152764f50454e5f494e5445524553545f494e5f544f4b454e5360481b604082015260600190565b6000604051602001611441906020808252601c908201527b27a822a72fa4a72a22a922a9aa2fa922a9a2a92b22afa320a1aa27a960211b604082015260600190565b6000600160801b821061346057608091821c9161345d9082614cbf565b90505b600160401b821061347e57604091821c9161347b9082614cbf565b90505b600160201b821061349c57602091821c916134999082614cbf565b90505b6201000082106134b957601091821c916134b69082614cbf565b90505b61010082106134d557600891821c916134d29082614cbf565b90505b601082106134f057600491821c916134ed9082614cbf565b90505b6004821061350b57600291821c916135089082614cbf565b90505b6002821061351e5761026c600182614cbf565b919050565b60008080600019848609848602925082811083820303915050670de0b6b3a764000081106135675760405163698d9a0160e11b81526004810182905260240161154f565b600080670de0b6b3a764000086880991506706f05b59d3b1ffff82119050826000036135a55780670de0b6b3a764000085040194505050505061026c565b620400008285030493909111909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690201905092915050565b600160bf1b6001603f1b8216156136095768016a09e667f3bcc9090260401c5b6001603e1b821615613624576801306fe0a31b7152df0260401c5b6001603d1b82161561363f576801172b83c7d517adce0260401c5b6001603c1b82161561365a5768010b5586cf9890f62a0260401c5b6001603b1b821615613675576801059b0d31585743ae0260401c5b6001603a1b82161561369057680102c9a3e778060ee70260401c5b600160391b8216156136ab5768010163da9fb33356d80260401c5b600160381b8216156136c657680100b1afa5abcbed610260401c5b600160371b8216156136e15768010058c86da1c09ea20260401c5b600160361b8216156136fc576801002c605e2e8cec500260401c5b600160351b82161561371757680100162f3904051fa10260401c5b600160341b821615613732576801000b175effdc76ba0260401c5b600160331b82161561374d57680100058ba01fb9f96d0260401c5b600160321b8216156137685768010002c5cc37da94920260401c5b600160311b821615613783576801000162e525ee05470260401c5b600160301b82161561379e5768010000b17255775c040260401c5b6001602f1b8216156137b9576801000058b91b5bc9ae0260401c5b6001602e1b8216156137d457680100002c5c89d5ec6d0260401c5b6001602d1b8216156137ef5768010000162e43f4f8310260401c5b6001602c1b82161561380a57680100000b1721bcfc9a0260401c5b6001602b1b8216156138255768010000058b90cf1e6e0260401c5b6001602a1b821615613840576801000002c5c863b73f0260401c5b600160291b82161561385b57680100000162e430e5a20260401c5b600160281b821615613876576801000000b1721835510260401c5b600160271b82161561389157680100000058b90c0b490260401c5b600160261b8216156138ac5768010000002c5c8601cc0260401c5b600160251b8216156138c7576801000000162e42fff00260401c5b600160241b8216156138e25768010000000b17217fbb0260401c5b600160231b8216156138fd576801000000058b90bfce0260401c5b600160221b82161561391857680100000002c5c85fe30260401c5b600160211b8216156139335768010000000162e42ff10260401c5b600160201b82161561394e57680100000000b17217f80260401c5b63800000008216156139695768010000000058b90bfc0260401c5b6340000000821615613984576801000000002c5c85fe0260401c5b632000000082161561399f57680100000000162e42ff0260401c5b63100000008216156139ba576801000000000b17217f0260401c5b63080000008216156139d557680100000000058b90c00260401c5b63040000008216156139f05768010000000002c5c8600260401c5b6302000000821615613a0b576801000000000162e4300260401c5b6301000000821615613a265768010000000000b172180260401c5b62800000821615613a40576801000000000058b90c0260401c5b62400000821615613a5a57680100000000002c5c860260401c5b62200000821615613a745768010000000000162e430260401c5b62100000821615613a8e57680100000000000b17210260401c5b62080000821615613aa85768010000000000058b910260401c5b62040000821615613ac2576801000000000002c5c80260401c5b62020000821615613adc57680100000000000162e40260401c5b62010000821615613af55761b172600160401b010260401c5b618000821615613b0d576158b9600160401b010260401c5b614000821615613b2557612c5d600160401b010260401c5b612000821615613b3d5761162e600160401b010260401c5b611000821615613b5557610b17600160401b010260401c5b610800821615613b6d5761058c600160401b010260401c5b610400821615613b85576102c6600160401b010260401c5b610200821615613b9d57610163600160401b010260401c5b610100821615613bb45760b1600160401b010260401c5b6080821615613bca576059600160401b010260401c5b6040821615613be057602c600160401b010260401c5b6020821615613bf6576016600160401b010260401c5b6010821615613c0c57600b600160401b010260401c5b6008821615613c22576006600160401b010260401c5b6004821615613c38576003600160401b010260401c5b6002821615613c4e576001600160401b010260401c5b6001821615613c64576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b6040518060400160405280613c8e613eb2565b8152602001613c9b613eb2565b905290565b6040518060e00160405280613cb3613cf5565b81526020016000815260200160008152602001613cce613c7b565b8152602001613cdb613e1c565b8152602001613ce8613e91565b8152600060209091015290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b604080518082019091526000815260208101613c9b5b60408051610180810190915260006080820181815260a0830182905260c0830182905260e08301829052610100830182905261012083018290526101408301919091526060610160830152815260208101613de8604080516101808101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8152604080516080810182526000808252602082810182905292820181905260608201529101908152602001606081525090565b6040518060a001604052806000151581526020016000815260200160008152602001613c8e613eb2565b604051806101000160405280613e5a613eb2565b8152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b60408051608081018252600091810182815260608201929092529081908152602001613c9b604051806040016040528060008152602001600081525090565b6001600160a01b0381168114613f0657600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715613f4157613f41613f09565b60405290565b60405161018081016001600160401b0381118282101715613f4157613f41613f09565b60405161010081016001600160401b0381118282101715613f4157613f41613f09565b604051601f8201601f191681016001600160401b0381118282101715613fb557613fb5613f09565b604052919050565b60008082840360a0811215613fd157600080fd5b8335613fdc81613ef1565b92506080601f1982011215613ff057600080fd5b50613ff9613f1f565b602084013561400781613ef1565b8152604084013561401781613ef1565b6020820152606084013561402a81613ef1565b6040820152608084013561403d81613ef1565b6060820152919491935090915050565b61406282825180518252602090810151910152565b602090810151805160408401520151606090910152565b505050565b61408982825161404d565b6020810151614079608084018261404d565b610100810161026c828461407e565b8015158114613f0657600080fd5b6000604082840312156140ca57600080fd5b604080519081016001600160401b03811182821017156140ec576140ec613f09565b604052823581526020928301359281019290925250919050565b600060c0828403121561411857600080fd5b604051606081016001600160401b038111828210171561413a5761413a613f09565b60405290508061414a84846140b8565b815261415984604085016140b8565b602082015261416b84608085016140b8565b60408201525092915050565b600080600080610120858703121561418e57600080fd5b843561419981613ef1565b935060208501356141a981613ef1565b925060408501356141b9816140aa565b91506141c88660608701614106565b905092959194509250565b600080600061010084860312156141e957600080fd5b83356141f481613ef1565b92506142038560208601614106565b915060e084013561421381613ef1565b809150509250925092565b6001600160a01b03169052565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260609182015116910152565b61426982825161422b565b60208101516080830152604081015160a0830152606081015161428f60c084018261407e565b506080810151805115156101c084015260208101516101e0840152604081015161020084015260608101516142c861022085018261404d565b50608001516142db6102a084018261404d565b5060a0810151805161032084015260208101516103408401526040015161036083015260c00151151561038090910152565b6103a0810161026c828461425e565b60006001600160401b0382111561433557614335613f09565b5060051b60200190565b6000806000806080858703121561435557600080fd5b843561436081613ef1565b935060208501356001600160401b0381111561437b57600080fd5b8501601f8101871361438c57600080fd5b803561439f61439a8261431c565b613f8d565b80828252602082019150602060c084028501019250898311156143c157600080fd5b6020840193505b828410156143ed576143da8a85614106565b825260208201915060c0840193506143c8565b9699969850505050604085013594606001359392505050565b602080825282518282018190526000918401906040840190835b818110156110ed5761443383855161425e565b602093909301926103a09290920191600101614420565b60008060006060848603121561445f57600080fd5b833561446a81613ef1565b95602085013595506040909401359392505050565b602080825282518282018190526000918401906040840190835b818110156110ed576144ac83855161422b565b6020939093019260809290920191600101614499565b600080600080608085870312156144d857600080fd5b84356144e381613ef1565b935060208501356144f381613ef1565b93969395505050506040820135916060013590565b600081518084526020840193506020830160005b828110156145435781516001600160a01b031686526020958601959091019060010161451c565b5093949350505050565b634e487b7160e01b600052602160045260246000fd5b600981106145735761457361454d565b9052565b600381106145735761457361454d565b614592828251614563565b60208101516145a46020840182614577565b5060408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008101516101008301526101208101516101208301526101408101516101408301526101608101516101608301525050565b600081518084526020840193506020830160005b82811015614543578151865260209586019590910190600101614629565b805161024080845281516001600160a01b039081169185019190915260208201511661026084015260408101516000919061468661028086018261421e565b50606081015161469a6102a086018261421e565b5060808101516146ae6102c086018261421e565b5060a08101516146c26102e086018261421e565b5060c08101516146d661030086018261421e565b5060e001516101006103208501526146f2610340850182614508565b905060208301516147066020860182614587565b50604083810151805115156101a0870152602081015115156101c08701529081015115156101e0860152606090810151151561020086015283015184820361022086015261098b8282614615565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b828110156147c457603f1987860301845281518051865260208101519050604060208701526147ae6040870182614647565b955050602093840193919091019060010161477c565b50929695505050505050565b600080604083850312156147e357600080fd5b82356147ee81613ef1565b946020939093013593505050565b6020815260006105076020830184614647565b6001600160a01b0392831681529116602082015260400190565b805161351e81613ef1565b6000608082840312801561484757600080fd5b50614850613f1f565b825161485b81613ef1565b8152602083015161486b81613ef1565b6020820152604083015161487e81613ef1565b6040820152606083015161489181613ef1565b60608201529392505050565b6000602082840312156148af57600080fd5b8151610507816140aa565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03929092168252602082015260400190565b600082601f8301126148fa57600080fd5b815161490861439a8261431c565b8082825260208201915060208360051b86010192508583111561492a57600080fd5b602085015b8381101561073557805161494281613ef1565b83526020928301920161492f565b80516009811061351e57600080fd5b80516003811061351e57600080fd5b6000610180828403121561498157600080fd5b614989613f47565b905061499482614950565b81526149a26020830161495f565b602082015260408281015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e080830151908201526101008083015190820152610120808301519082015261014080830151908201526101609182015191810191909152919050565b600060808284031215614a2957600080fd5b614a31613f1f565b90508151614a3e816140aa565b81526020820151614a4e816140aa565b60208201526040820151614a61816140aa565b60408201526060820151614a74816140aa565b606082015292915050565b600082601f830112614a9057600080fd5b8151614a9e61439a8261431c565b8082825260208201915060208360051b860101925085831115614ac057600080fd5b602085015b83811015610735578051835260209283019201614ac5565b600060208284031215614aef57600080fd5b81516001600160401b03811115614b0557600080fd5b82016102408185031215614b1857600080fd5b614b20613f1f565b81516001600160401b03811115614b3657600080fd5b82016101008187031215614b4957600080fd5b614b51613f6a565b614b5a82614829565b8152614b6860208301614829565b6020820152614b7960408301614829565b6040820152614b8a60608301614829565b6060820152614b9b60808301614829565b6080820152614bac60a08301614829565b60a0820152614bbd60c08301614829565b60c082015260e08201516001600160401b03811115614bdb57600080fd5b614be7888285016148e9565b60e083015250825250614bfd856020840161496e565b6020820152614c10856101a08401614a17565b60408201526102208201516001600160401b03811115614c2f57600080fd5b614c3b86828501614a7f565b606083015250949350505050565b600060208284031215614c5b57600080fd5b5051919050565b60208082526027908201527f5553455f4f50454e5f494e5445524553545f494e5f544f4b454e535f464f525f60408201526642414c414e434560c81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561026c5761026c614ca9565b808202811582820484141761026c5761026c614ca9565b634e487b7160e01b600052601260045260246000fd5b600082614d0e57614d0e614ce9565b500490565b600060208284031215614d2557600080fd5b81516001600160401b03811115614d3b57600080fd5b6105f5848285016148e9565b600060208284031215614d5957600080fd5b81516001600160401b03811115614d6f57600080fd5b6105f584828501614a7f565b8181038181111561026c5761026c614ca9565b80820260008212600160ff1b84141615614daa57614daa614ca9565b818105831482151761026c5761026c614ca9565b6000600160ff1b8201614dd357614dd3614ca9565b5060000390565b8082018281126000831280158216821582161715614dfa57614dfa614ca9565b505092915050565b600082614e1157614e11614ce9565b600160ff1b821460001984141615614e2b57614e2b614ca9565b500590565b8181036000831280158383131683831282161715614e5057614e50614ca9565b509291505056fea26469706673582212207ef14a0f96422e804c078b69fee915eac55007261a08a2b2914c6e7c5c1dd09764736f6c634300081d0033