@ensuro/core 2.8.1 → 2.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/build/contracts/AccessManager.sol/AccessManager.json +618 -0
  2. package/build/contracts/ERC4626AssetManager.sol/ERC4626AssetManager.json +238 -0
  3. package/build/contracts/ERC4626PlusVaultAssetManager.sol/ERC4626PlusVaultAssetManager.json +269 -0
  4. package/build/contracts/EToken.sol/EToken.json +1287 -0
  5. package/build/contracts/LPManualWhitelist.sol/LPManualWhitelist.json +657 -0
  6. package/build/contracts/LiquidityThresholdAssetManager.sol/LiquidityThresholdAssetManager.json +222 -0
  7. package/build/contracts/Policy.sol/Policy.json +10 -0
  8. package/build/contracts/PolicyPool.sol/PolicyPool.json +1775 -0
  9. package/build/contracts/PolicyPoolComponent.sol/PolicyPoolComponent.json +342 -0
  10. package/build/contracts/PremiumsAccount.sol/PremiumsAccount.json +1142 -0
  11. package/build/contracts/Reserve.sol/Reserve.json +413 -0
  12. package/build/contracts/RiskModule.sol/RiskModule.json +589 -0
  13. package/build/contracts/SignedBucketRiskModule.sol/SignedBucketRiskModule.json +1251 -0
  14. package/build/contracts/SignedQuoteRiskModule.sol/SignedQuoteRiskModule.json +1145 -0
  15. package/build/contracts/TimeScaled.sol/TimeScaled.json +10 -0
  16. package/build/contracts/TrustfulRiskModule.sol/TrustfulRiskModule.json +1143 -0
  17. package/build/contracts/dependencies/WadRayMath.sol/WadRayMath.json +10 -0
  18. package/build/contracts/interfaces/IAccessManager.sol/IAccessManager.json +343 -0
  19. package/build/contracts/interfaces/IAssetManager.sol/IAssetManager.json +128 -0
  20. package/build/contracts/interfaces/IEToken.sol/IEToken.json +460 -0
  21. package/build/contracts/interfaces/ILPWhitelist.sol/ILPWhitelist.json +103 -0
  22. package/build/contracts/interfaces/IPolicyHolder.sol/IPolicyHolder.json +108 -0
  23. package/build/contracts/interfaces/IPolicyHolderV2.sol/IPolicyHolderV2.json +142 -0
  24. package/build/contracts/interfaces/IPolicyPool.sol/IPolicyPool.json +820 -0
  25. package/build/contracts/interfaces/IPolicyPoolComponent.sol/IPolicyPoolComponent.json +43 -0
  26. package/build/contracts/interfaces/IPremiumsAccount.sol/IPremiumsAccount.json +477 -0
  27. package/build/contracts/interfaces/IRiskModule.sol/IRiskModule.json +165 -0
  28. package/build/contracts/migration/LPManualWhitelistV20.sol/LPManualWhitelistV20.json +491 -0
  29. package/build/contracts/migration/LPManualWhitelistV20Upgraded.sol/LPManualWhitelistV20Upgraded.json +502 -0
  30. package/build/contracts/mocks/FixedRateVault.sol/FixedRateVault.json +736 -0
  31. package/build/contracts/mocks/ForwardProxy.sol/ForwardProxy.json +43 -0
  32. package/build/contracts/mocks/IMintableERC20.sol/IMintableERC20.json +47 -0
  33. package/build/contracts/mocks/InterfaceIdCalculator.sol/InterfaceIdCalculator.json +193 -0
  34. package/build/contracts/mocks/PolicyHolderMock.sol/PolicyHolderMock.json +457 -0
  35. package/build/contracts/mocks/PolicyPoolComponentMock.sol/PolicyPoolComponentMock.json +54 -0
  36. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMock.json +929 -0
  37. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMockForward.json +92 -0
  38. package/build/contracts/mocks/RiskModuleMock.sol/RiskModuleMock.json +1316 -0
  39. package/build/contracts/mocks/TestCurrency.sol/TestCurrency.json +343 -0
  40. package/build/contracts/mocks/TestNFT.sol/TestNFT.json +388 -0
  41. package/contracts/ERC4626AssetManager.sol +6 -5
  42. package/contracts/ERC4626PlusVaultAssetManager.sol +105 -0
  43. package/js/deploy.js +6 -25
  44. package/package.json +3 -5
@@ -0,0 +1,238 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ERC4626AssetManager",
4
+ "sourceName": "contracts/ERC4626AssetManager.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "contract IERC20Metadata",
10
+ "name": "asset_",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "contract IERC4626",
15
+ "name": "vault_",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "anonymous": false,
24
+ "inputs": [
25
+ {
26
+ "indexed": false,
27
+ "internalType": "int256",
28
+ "name": "earnings",
29
+ "type": "int256"
30
+ }
31
+ ],
32
+ "name": "EarningsRecorded",
33
+ "type": "event"
34
+ },
35
+ {
36
+ "anonymous": false,
37
+ "inputs": [
38
+ {
39
+ "indexed": true,
40
+ "internalType": "enum IAccessManager.GovernanceActions",
41
+ "name": "action",
42
+ "type": "uint8"
43
+ },
44
+ {
45
+ "indexed": false,
46
+ "internalType": "uint256",
47
+ "name": "value",
48
+ "type": "uint256"
49
+ }
50
+ ],
51
+ "name": "GovernanceAction",
52
+ "type": "event"
53
+ },
54
+ {
55
+ "anonymous": false,
56
+ "inputs": [
57
+ {
58
+ "indexed": false,
59
+ "internalType": "uint256",
60
+ "name": "amount",
61
+ "type": "uint256"
62
+ }
63
+ ],
64
+ "name": "MoneyDeinvested",
65
+ "type": "event"
66
+ },
67
+ {
68
+ "anonymous": false,
69
+ "inputs": [
70
+ {
71
+ "indexed": false,
72
+ "internalType": "uint256",
73
+ "name": "amount",
74
+ "type": "uint256"
75
+ }
76
+ ],
77
+ "name": "MoneyInvested",
78
+ "type": "event"
79
+ },
80
+ {
81
+ "inputs": [],
82
+ "name": "connect",
83
+ "outputs": [],
84
+ "stateMutability": "nonpayable",
85
+ "type": "function"
86
+ },
87
+ {
88
+ "inputs": [],
89
+ "name": "deinvestAll",
90
+ "outputs": [
91
+ {
92
+ "internalType": "int256",
93
+ "name": "earnings",
94
+ "type": "int256"
95
+ }
96
+ ],
97
+ "stateMutability": "nonpayable",
98
+ "type": "function"
99
+ },
100
+ {
101
+ "inputs": [],
102
+ "name": "getInvestmentValue",
103
+ "outputs": [
104
+ {
105
+ "internalType": "uint256",
106
+ "name": "",
107
+ "type": "uint256"
108
+ }
109
+ ],
110
+ "stateMutability": "view",
111
+ "type": "function"
112
+ },
113
+ {
114
+ "inputs": [],
115
+ "name": "liquidityMax",
116
+ "outputs": [
117
+ {
118
+ "internalType": "uint256",
119
+ "name": "",
120
+ "type": "uint256"
121
+ }
122
+ ],
123
+ "stateMutability": "view",
124
+ "type": "function"
125
+ },
126
+ {
127
+ "inputs": [],
128
+ "name": "liquidityMiddle",
129
+ "outputs": [
130
+ {
131
+ "internalType": "uint256",
132
+ "name": "",
133
+ "type": "uint256"
134
+ }
135
+ ],
136
+ "stateMutability": "view",
137
+ "type": "function"
138
+ },
139
+ {
140
+ "inputs": [],
141
+ "name": "liquidityMin",
142
+ "outputs": [
143
+ {
144
+ "internalType": "uint256",
145
+ "name": "",
146
+ "type": "uint256"
147
+ }
148
+ ],
149
+ "stateMutability": "view",
150
+ "type": "function"
151
+ },
152
+ {
153
+ "inputs": [],
154
+ "name": "rebalance",
155
+ "outputs": [],
156
+ "stateMutability": "nonpayable",
157
+ "type": "function"
158
+ },
159
+ {
160
+ "inputs": [],
161
+ "name": "recordEarnings",
162
+ "outputs": [
163
+ {
164
+ "internalType": "int256",
165
+ "name": "",
166
+ "type": "int256"
167
+ }
168
+ ],
169
+ "stateMutability": "nonpayable",
170
+ "type": "function"
171
+ },
172
+ {
173
+ "inputs": [
174
+ {
175
+ "internalType": "uint256",
176
+ "name": "paymentAmount",
177
+ "type": "uint256"
178
+ }
179
+ ],
180
+ "name": "refillWallet",
181
+ "outputs": [
182
+ {
183
+ "internalType": "uint256",
184
+ "name": "deinvest",
185
+ "type": "uint256"
186
+ }
187
+ ],
188
+ "stateMutability": "nonpayable",
189
+ "type": "function"
190
+ },
191
+ {
192
+ "inputs": [
193
+ {
194
+ "internalType": "uint256",
195
+ "name": "min",
196
+ "type": "uint256"
197
+ },
198
+ {
199
+ "internalType": "uint256",
200
+ "name": "middle",
201
+ "type": "uint256"
202
+ },
203
+ {
204
+ "internalType": "uint256",
205
+ "name": "max",
206
+ "type": "uint256"
207
+ }
208
+ ],
209
+ "name": "setLiquidityThresholds",
210
+ "outputs": [],
211
+ "stateMutability": "nonpayable",
212
+ "type": "function"
213
+ },
214
+ {
215
+ "inputs": [
216
+ {
217
+ "internalType": "bytes4",
218
+ "name": "interfaceId",
219
+ "type": "bytes4"
220
+ }
221
+ ],
222
+ "name": "supportsInterface",
223
+ "outputs": [
224
+ {
225
+ "internalType": "bool",
226
+ "name": "",
227
+ "type": "bool"
228
+ }
229
+ ],
230
+ "stateMutability": "view",
231
+ "type": "function"
232
+ }
233
+ ],
234
+ "bytecode": "0x60c06040523480156200001157600080fd5b506040516200187a3803806200187a833981016040819052620000349162000248565b816001600160a01b038116620000b75760405162461bcd60e51b815260206004820152603c60248201527f4c69717569646974795468726573686f6c6441737365744d616e616765723a2060448201527f61737365742063616e6e6f74206265207a65726f20616464726573730000000060648201526084015b60405180910390fd5b6001600160a01b0390811660805281166200012f5760405162461bcd60e51b815260206004820152603160248201527f4552433436323641737365744d616e616765723a207661756c742063616e6e6f60448201527074206265207a65726f206164647265737360781b6064820152608401620000ae565b806001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200016e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000194919062000287565b6001600160a01b0316826001600160a01b0316146200021c5760405162461bcd60e51b815260206004820152603360248201527f4552433436323641737365744d616e616765723a207661756c74206d7573742060448201527f68617665207468652073616d65206173736574000000000000000000000000006064820152608401620000ae565b6001600160a01b031660a05250620002ae565b6001600160a01b03811681146200024557600080fd5b50565b600080604083850312156200025c57600080fd5b825162000269816200022f565b60208401519092506200027c816200022f565b809150509250929050565b6000602082840312156200029a57600080fd5b8151620002a7816200022f565b9392505050565b60805160a05161154b6200032f6000396000818161069e015281816109f001528181610ac201528181610e330152610f370152600081816101680152818161025b01528181610356015281816104ad015281816105cf015281816108380152818161092601528181610a2001528181610c460152610f88015261154b6000f3fe608060405234801561001057600080fd5b50600436106100a85760003560e01c80634eb978a4116100715780634eb978a41461011b5780637d7c2a1c146101235780638d7ddd901461012b578063948cb71914610133578063cec16f3f1461013b578063f9c4fd1b1461014357600080fd5b8062a9bb8d146100ad57806301ffc9a7146100c25780631014a0c2146100ea5780633b6612c81461010b5780634dd93bd314610113575b600080fd5b6100c06100bb36600461121f565b61014b565b005b6100d56100d036600461124b565b610454565b60405190151581526020015b60405180910390f35b6100fd6100f8366004611275565b61048b565b6040519081526020016100e1565b6100fd6105cb565b6100fd610686565b6100fd610778565b6100c0610820565b6100fd610922565b6100c06109d1565b6100fd610a8d565b6100fd610c42565b6000805160206114f6833981519152600019841461024d576102027f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e8919061128e565b6101f390600a6113ab565b6101fd90866113ba565b610cf9565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198314610348576102f07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102db919061128e565b6102e690600a6113ab565b6101fd90856113ba565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198214610446576103eb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d6919061128e565b6103e190600a6113ab565b6101fd90846113ba565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5061044f610d62565b505050565b60006001600160e01b031982166301ffc9a760e01b148061048557506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156104f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051891906113dc565b90508281106105845760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b600061058e610686565b905081610599610c42565b6105a390866113f5565b6105ad9190611408565b9250808311156105bb578092505b6105c483610e07565b5050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561062b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064f919061128e565b61065a90600a6113ab565b6000805160206114f6833981519152546106819190600160401b900463ffffffff1661141b565b905090565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a9082906370a0823190602401602060405180830381865afa1580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071991906113dc565b6040518263ffffffff1660e01b815260040161073791815260200190565b602060405180830381865afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068191906113dc565b600080610783610686565b6000805160206114f68339815191528054919250906000906107b590600160601b90046001600160801b03168461143a565b90506107c083610ea9565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab91906113dc565b90506108b56105cb565b8111156108d9576108d66108c7610c42565b6108d19083611408565b610f12565b50565b6108e1610922565b8110156108d657600061090d6108f5610686565b836108fe610c42565b6109089190611408565b610f6e565b9050801561091e5761091e81610e07565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610982573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a6919061128e565b6109b190600a6113ab565b6000805160206114f683398151915254610681919063ffffffff1661141b565b6109d9610f86565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015610a69573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d69190611461565b6000806000805160206114f68339815191526040516370a0823160e01b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3591906113dc565b6040516001600160e01b031960e084901b1681526004810191909152306024820181905260448201526064016020604051808303816000875af1158015610b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba491906113dc565b8254909150610bc390600160601b90046001600160801b03168261143a565b8254600160601b600160e01b03191683556040518281529093507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c659060200160405180910390a16040518381527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a1505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc6919061128e565b610cd190600a6113ab565b6000805160206114f6833981519152546106819190640100000000900463ffffffff1661141b565b600063ffffffff821115610d5e5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161057b565b5090565b6000805160206114f6833981519152805463ffffffff64010000000082048116911611801590610daa5750805463ffffffff600160401b820481166401000000009092041611155b6108d65760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b606482015260840161057b565b610e10816110d9565b604051632d182be560e21b815260048101829052306024820181905260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b460af94906064015b6020604051808303816000875af1158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091e91906113dc565b60006001600160801b03821115610d5e5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161057b565b610f1b81611190565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610e66565b6000818310610f7d5781610f7f565b825b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110129190611498565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110739190611498565b6001600160a01b0316146110ba5760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b604482015260640161057b565b6000805160206114f683398151915280546001600160e01b0319169055565b6000805160206114f6833981519152805461110d9061110890600160601b90046001600160801b031684610f6e565b610ea9565b81548290600c9061112f908490600160601b90046001600160801b03166114b5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c658260405161118491815260200190565b60405180910390a15050565b6000805160206114f68339815191526111a882610ea9565b81548290600c906111ca908490600160601b90046001600160801b03166114d5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf48260405161118491815260200190565b60008060006060848603121561123457600080fd5b505081359360208301359350604090920135919050565b60006020828403121561125d57600080fd5b81356001600160e01b031981168114610f7f57600080fd5b60006020828403121561128757600080fd5b5035919050565b6000602082840312156112a057600080fd5b815160ff81168114610f7f57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156113025781600019048211156112e8576112e86112b1565b808516156112f557918102915b93841c93908002906112cc565b509250929050565b60008261131957506001610485565b8161132657506000610485565b816001811461133c576002811461134657611362565b6001915050610485565b60ff841115611357576113576112b1565b50506001821b610485565b5060208310610133831016604e8410600b8410161715611385575081810a610485565b61138f83836112c7565b80600019048211156113a3576113a36112b1565b029392505050565b6000610f7f60ff84168361130a565b6000826113d757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156113ee57600080fd5b5051919050565b80820180821115610485576104856112b1565b81810381811115610485576104856112b1565b6000816000190483118215151615611435576114356112b1565b500290565b818103600083128015838313168383128216171561145a5761145a6112b1565b5092915050565b60006020828403121561147357600080fd5b81518015158114610f7f57600080fd5b6001600160a01b03811681146108d657600080fd5b6000602082840312156114aa57600080fd5b8151610f7f81611483565b6001600160801b0382811682821603908082111561145a5761145a6112b1565b6001600160801b0381811683821601908082111561145a5761145a6112b156fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a2646970667358221220c0f7479c854afdf2fdacbce81339b25d1c74a74dc59352bacf482b5bea403a3e64736f6c63430008100033",
235
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a85760003560e01c80634eb978a4116100715780634eb978a41461011b5780637d7c2a1c146101235780638d7ddd901461012b578063948cb71914610133578063cec16f3f1461013b578063f9c4fd1b1461014357600080fd5b8062a9bb8d146100ad57806301ffc9a7146100c25780631014a0c2146100ea5780633b6612c81461010b5780634dd93bd314610113575b600080fd5b6100c06100bb36600461121f565b61014b565b005b6100d56100d036600461124b565b610454565b60405190151581526020015b60405180910390f35b6100fd6100f8366004611275565b61048b565b6040519081526020016100e1565b6100fd6105cb565b6100fd610686565b6100fd610778565b6100c0610820565b6100fd610922565b6100c06109d1565b6100fd610a8d565b6100fd610c42565b6000805160206114f6833981519152600019841461024d576102027f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e8919061128e565b6101f390600a6113ab565b6101fd90866113ba565b610cf9565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198314610348576102f07f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102db919061128e565b6102e690600a6113ab565b6101fd90856113ba565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198214610446576103eb7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d6919061128e565b6103e190600a6113ab565b6101fd90846113ba565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5061044f610d62565b505050565b60006001600160e01b031982166301ffc9a760e01b148061048557506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156104f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051891906113dc565b90508281106105845760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b600061058e610686565b905081610599610c42565b6105a390866113f5565b6105ad9190611408565b9250808311156105bb578092505b6105c483610e07565b5050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561062b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064f919061128e565b61065a90600a6113ab565b6000805160206114f6833981519152546106819190600160401b900463ffffffff1661141b565b905090565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a9082906370a0823190602401602060405180830381865afa1580156106f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071991906113dc565b6040518263ffffffff1660e01b815260040161073791815260200190565b602060405180830381865afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068191906113dc565b600080610783610686565b6000805160206114f68339815191528054919250906000906107b590600160601b90046001600160801b03168461143a565b90506107c083610ea9565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab91906113dc565b90506108b56105cb565b8111156108d9576108d66108c7610c42565b6108d19083611408565b610f12565b50565b6108e1610922565b8110156108d657600061090d6108f5610686565b836108fe610c42565b6109089190611408565b610f6e565b9050801561091e5761091e81610e07565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610982573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a6919061128e565b6109b190600a6113ab565b6000805160206114f683398151915254610681919063ffffffff1661141b565b6109d9610f86565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044016020604051808303816000875af1158015610a69573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d69190611461565b6000806000805160206114f68339815191526040516370a0823160e01b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3591906113dc565b6040516001600160e01b031960e084901b1681526004810191909152306024820181905260448201526064016020604051808303816000875af1158015610b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba491906113dc565b8254909150610bc390600160601b90046001600160801b03168261143a565b8254600160601b600160e01b03191683556040518281529093507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c659060200160405180910390a16040518381527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a1505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc6919061128e565b610cd190600a6113ab565b6000805160206114f6833981519152546106819190640100000000900463ffffffff1661141b565b600063ffffffff821115610d5e5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b606482015260840161057b565b5090565b6000805160206114f6833981519152805463ffffffff64010000000082048116911611801590610daa5750805463ffffffff600160401b820481166401000000009092041611155b6108d65760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b606482015260840161057b565b610e10816110d9565b604051632d182be560e21b815260048101829052306024820181905260448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b460af94906064015b6020604051808303816000875af1158015610e85573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091e91906113dc565b60006001600160801b03821115610d5e5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161057b565b610f1b81611190565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610e66565b6000818310610f7d5781610f7f565b825b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110129190611498565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561104f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110739190611498565b6001600160a01b0316146110ba5760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b604482015260640161057b565b6000805160206114f683398151915280546001600160e01b0319169055565b6000805160206114f6833981519152805461110d9061110890600160601b90046001600160801b031684610f6e565b610ea9565b81548290600c9061112f908490600160601b90046001600160801b03166114b5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c658260405161118491815260200190565b60405180910390a15050565b6000805160206114f68339815191526111a882610ea9565b81548290600c906111ca908490600160601b90046001600160801b03166114d5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf48260405161118491815260200190565b60008060006060848603121561123457600080fd5b505081359360208301359350604090920135919050565b60006020828403121561125d57600080fd5b81356001600160e01b031981168114610f7f57600080fd5b60006020828403121561128757600080fd5b5035919050565b6000602082840312156112a057600080fd5b815160ff81168114610f7f57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156113025781600019048211156112e8576112e86112b1565b808516156112f557918102915b93841c93908002906112cc565b509250929050565b60008261131957506001610485565b8161132657506000610485565b816001811461133c576002811461134657611362565b6001915050610485565b60ff841115611357576113576112b1565b50506001821b610485565b5060208310610133831016604e8410600b8410161715611385575081810a610485565b61138f83836112c7565b80600019048211156113a3576113a36112b1565b029392505050565b6000610f7f60ff84168361130a565b6000826113d757634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156113ee57600080fd5b5051919050565b80820180821115610485576104856112b1565b81810381811115610485576104856112b1565b6000816000190483118215151615611435576114356112b1565b500290565b818103600083128015838313168383128216171561145a5761145a6112b1565b5092915050565b60006020828403121561147357600080fd5b81518015158114610f7f57600080fd5b6001600160a01b03811681146108d657600080fd5b6000602082840312156114aa57600080fd5b8151610f7f81611483565b6001600160801b0382811682821603908082111561145a5761145a6112b1565b6001600160801b0381811683821601908082111561145a5761145a6112b156fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a2646970667358221220c0f7479c854afdf2fdacbce81339b25d1c74a74dc59352bacf482b5bea403a3e64736f6c63430008100033",
236
+ "linkReferences": {},
237
+ "deployedLinkReferences": {}
238
+ }
@@ -0,0 +1,269 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ERC4626PlusVaultAssetManager",
4
+ "sourceName": "contracts/ERC4626PlusVaultAssetManager.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "contract IERC20Metadata",
10
+ "name": "asset_",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "contract IERC4626",
15
+ "name": "vault_",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "contract IERC4626",
20
+ "name": "discretionaryVault_",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "anonymous": false,
29
+ "inputs": [
30
+ {
31
+ "indexed": false,
32
+ "internalType": "int256",
33
+ "name": "earnings",
34
+ "type": "int256"
35
+ }
36
+ ],
37
+ "name": "EarningsRecorded",
38
+ "type": "event"
39
+ },
40
+ {
41
+ "anonymous": false,
42
+ "inputs": [
43
+ {
44
+ "indexed": true,
45
+ "internalType": "enum IAccessManager.GovernanceActions",
46
+ "name": "action",
47
+ "type": "uint8"
48
+ },
49
+ {
50
+ "indexed": false,
51
+ "internalType": "uint256",
52
+ "name": "value",
53
+ "type": "uint256"
54
+ }
55
+ ],
56
+ "name": "GovernanceAction",
57
+ "type": "event"
58
+ },
59
+ {
60
+ "anonymous": false,
61
+ "inputs": [
62
+ {
63
+ "indexed": false,
64
+ "internalType": "uint256",
65
+ "name": "amount",
66
+ "type": "uint256"
67
+ }
68
+ ],
69
+ "name": "MoneyDeinvested",
70
+ "type": "event"
71
+ },
72
+ {
73
+ "anonymous": false,
74
+ "inputs": [
75
+ {
76
+ "indexed": false,
77
+ "internalType": "uint256",
78
+ "name": "amount",
79
+ "type": "uint256"
80
+ }
81
+ ],
82
+ "name": "MoneyInvested",
83
+ "type": "event"
84
+ },
85
+ {
86
+ "inputs": [],
87
+ "name": "connect",
88
+ "outputs": [],
89
+ "stateMutability": "nonpayable",
90
+ "type": "function"
91
+ },
92
+ {
93
+ "inputs": [],
94
+ "name": "deinvestAll",
95
+ "outputs": [
96
+ {
97
+ "internalType": "int256",
98
+ "name": "earnings",
99
+ "type": "int256"
100
+ }
101
+ ],
102
+ "stateMutability": "nonpayable",
103
+ "type": "function"
104
+ },
105
+ {
106
+ "inputs": [
107
+ {
108
+ "internalType": "uint256",
109
+ "name": "amount",
110
+ "type": "uint256"
111
+ }
112
+ ],
113
+ "name": "discretionaryToVault",
114
+ "outputs": [],
115
+ "stateMutability": "nonpayable",
116
+ "type": "function"
117
+ },
118
+ {
119
+ "inputs": [],
120
+ "name": "getInvestmentValue",
121
+ "outputs": [
122
+ {
123
+ "internalType": "uint256",
124
+ "name": "",
125
+ "type": "uint256"
126
+ }
127
+ ],
128
+ "stateMutability": "view",
129
+ "type": "function"
130
+ },
131
+ {
132
+ "inputs": [],
133
+ "name": "liquidityMax",
134
+ "outputs": [
135
+ {
136
+ "internalType": "uint256",
137
+ "name": "",
138
+ "type": "uint256"
139
+ }
140
+ ],
141
+ "stateMutability": "view",
142
+ "type": "function"
143
+ },
144
+ {
145
+ "inputs": [],
146
+ "name": "liquidityMiddle",
147
+ "outputs": [
148
+ {
149
+ "internalType": "uint256",
150
+ "name": "",
151
+ "type": "uint256"
152
+ }
153
+ ],
154
+ "stateMutability": "view",
155
+ "type": "function"
156
+ },
157
+ {
158
+ "inputs": [],
159
+ "name": "liquidityMin",
160
+ "outputs": [
161
+ {
162
+ "internalType": "uint256",
163
+ "name": "",
164
+ "type": "uint256"
165
+ }
166
+ ],
167
+ "stateMutability": "view",
168
+ "type": "function"
169
+ },
170
+ {
171
+ "inputs": [],
172
+ "name": "rebalance",
173
+ "outputs": [],
174
+ "stateMutability": "nonpayable",
175
+ "type": "function"
176
+ },
177
+ {
178
+ "inputs": [],
179
+ "name": "recordEarnings",
180
+ "outputs": [
181
+ {
182
+ "internalType": "int256",
183
+ "name": "",
184
+ "type": "int256"
185
+ }
186
+ ],
187
+ "stateMutability": "nonpayable",
188
+ "type": "function"
189
+ },
190
+ {
191
+ "inputs": [
192
+ {
193
+ "internalType": "uint256",
194
+ "name": "paymentAmount",
195
+ "type": "uint256"
196
+ }
197
+ ],
198
+ "name": "refillWallet",
199
+ "outputs": [
200
+ {
201
+ "internalType": "uint256",
202
+ "name": "deinvest",
203
+ "type": "uint256"
204
+ }
205
+ ],
206
+ "stateMutability": "nonpayable",
207
+ "type": "function"
208
+ },
209
+ {
210
+ "inputs": [
211
+ {
212
+ "internalType": "uint256",
213
+ "name": "min",
214
+ "type": "uint256"
215
+ },
216
+ {
217
+ "internalType": "uint256",
218
+ "name": "middle",
219
+ "type": "uint256"
220
+ },
221
+ {
222
+ "internalType": "uint256",
223
+ "name": "max",
224
+ "type": "uint256"
225
+ }
226
+ ],
227
+ "name": "setLiquidityThresholds",
228
+ "outputs": [],
229
+ "stateMutability": "nonpayable",
230
+ "type": "function"
231
+ },
232
+ {
233
+ "inputs": [
234
+ {
235
+ "internalType": "bytes4",
236
+ "name": "interfaceId",
237
+ "type": "bytes4"
238
+ }
239
+ ],
240
+ "name": "supportsInterface",
241
+ "outputs": [
242
+ {
243
+ "internalType": "bool",
244
+ "name": "",
245
+ "type": "bool"
246
+ }
247
+ ],
248
+ "stateMutability": "view",
249
+ "type": "function"
250
+ },
251
+ {
252
+ "inputs": [
253
+ {
254
+ "internalType": "uint256",
255
+ "name": "amount",
256
+ "type": "uint256"
257
+ }
258
+ ],
259
+ "name": "vaultToDiscretionary",
260
+ "outputs": [],
261
+ "stateMutability": "nonpayable",
262
+ "type": "function"
263
+ }
264
+ ],
265
+ "bytecode": "0x60e06040523480156200001157600080fd5b506040516200222438038062002224833981016040819052620000349162000415565b8282816001600160a01b038116620000b95760405162461bcd60e51b815260206004820152603c60248201527f4c69717569646974795468726573686f6c6441737365744d616e616765723a2060448201527f61737365742063616e6e6f74206265207a65726f20616464726573730000000060648201526084015b60405180910390fd5b6001600160a01b039081166080528116620001315760405162461bcd60e51b815260206004820152603160248201527f4552433436323641737365744d616e616765723a207661756c742063616e6e6f60448201527074206265207a65726f206164647265737360781b6064820152608401620000b0565b806001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000170573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000196919062000469565b6001600160a01b0316826001600160a01b0316146200021e5760405162461bcd60e51b815260206004820152603360248201527f4552433436323641737365744d616e616765723a207661756c74206d7573742060448201527f68617665207468652073616d65206173736574000000000000000000000000006064820152608401620000b0565b6001600160a01b0390811660a05282169050620002935760405162461bcd60e51b815260206004820152603a60248201526000805160206200220483398151915260448201527f756c742063616e6e6f74206265207a65726f20616464726573730000000000006064820152608401620000b0565b806001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f8919062000469565b6001600160a01b0316836001600160a01b0316146200036f5760405162461bcd60e51b815260206004820152603c60248201526000805160206200220483398151915260448201527f756c74206d7573742068617665207468652073616d65206173736574000000006064820152608401620000b0565b806001600160a01b0316826001600160a01b031603620003e75760405162461bcd60e51b815260206004820152603660248201526000805160206200220483398151915260448201527f756c7473206d75737420626520646966666572656e74000000000000000000006064820152608401620000b0565b6001600160a01b031660c05250620004909050565b6001600160a01b03811681146200041257600080fd5b50565b6000806000606084860312156200042b57600080fd5b83516200043881620003fc565b60208501519093506200044b81620003fc565b60408501519092506200045e81620003fc565b809150509250925092565b6000602082840312156200047c57600080fd5b81516200048981620003fc565b9392505050565b60805160a05160c051611c956200056f600039600081816106f2015281816107ee0152818161090801528181610c4d01528181610d9101528181610f5d01528181610ff2015261143501526000818161088b0152818161093101528181610b2701528181610bb401528181610e64015281816113140152818161139e015281816115e401526116520152600081816101b4015281816102a7015281816103a2015281816104f90152818161061b01528181610a1f01528181610cc701528181610dc1015281816111240152818161168201526117f90152611c956000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80634eb978a41161008c5780638d7ddd90116100665780638d7ddd9014610177578063948cb7191461017f578063cec16f3f14610187578063f9c4fd1b1461018f57600080fd5b80634eb978a4146101545780637d7c2a1c1461015c5780638831c06e1461016457600080fd5b8062a9bb8d146100d357806301ffc9a7146100e85780631014a0c2146101105780633b6612c8146101315780633db77cb8146101395780634dd93bd31461014c575b600080fd5b6100e66100e136600461194a565b610197565b005b6100fb6100f6366004611976565b6104a0565b60405190151581526020015b60405180910390f35b61012361011e3660046119a0565b6104d7565b604051908152602001610107565b610123610617565b6100e66101473660046119a0565b6106d2565b610123610901565b61012361095f565b6100e6610a07565b6100e66101723660046119a0565b610b09565b610123610cc3565b6100e6610d72565b610123610e2f565b610123611120565b600080516020611c4083398151915260001984146102995761024e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023491906119b9565b61023f90600a611ad6565b6102499086611ae5565b6111d7565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b60001983146103945761033c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610303573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032791906119b9565b61033290600a611ad6565b6102499085611ae5565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198214610492576104377f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042291906119b9565b61042d90600a611ad6565b6102499084611ae5565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5061049b611240565b505050565b60006001600160e01b031982166301ffc9a760e01b14806104d157506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610540573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105649190611b07565b90508281106105d05760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b60006105da610901565b9050816105e5611120565b6105ef9086611b20565b6105f99190611b33565b925080831115610607578092505b610610836112e5565b5050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b91906119b9565b6106a690600a611ad6565b600080516020611c40833981519152546106cd9190600160401b900463ffffffff16611b46565b905090565b600060001982036107d757604051636c82bbbf60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ba08765290829063d905777e90602401602060405180830381865afa158015610749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076d9190611b07565b30306040518463ffffffff1660e01b815260040161078d93929190611b65565b6020604051808303816000875af11580156107ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d09190611b07565b905061086f565b604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af949061082790859030908190600401611b65565b6020604051808303816000875af1158015610846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086a9190611b07565b508190505b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044015b6020604051808303816000875af11580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049b9190611b07565b600061092c7f0000000000000000000000000000000000000000000000000000000000000000611484565b6109557f0000000000000000000000000000000000000000000000000000000000000000611484565b6106cd9190611b20565b60008061096a610901565b600080516020611c4083398151915280549192509060009061099c90600160601b90046001600160801b031684611b84565b90506109a783611556565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a929190611b07565b9050610a9c610617565b811115610ac057610abd610aae611120565b610ab89083611b33565b6115bf565b50565b610ac8610cc3565b811015610abd576000610af4610adc610901565b83610ae5611120565b610aef9190611b33565b61161b565b90508015610b0557610b05816112e5565b5050565b6000198103610b9d5760405163ce96cb7760e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ce96cb7790602401602060405180830381865afa158015610b76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9a9190611b07565b90505b604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af9490610bed90849030908190600401611b65565b6020604051808303816000875af1158015610c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c309190611b07565b50604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044015b6020604051808303816000875af1158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611b07565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4791906119b9565b610d5290600a611ad6565b600080516020611c40833981519152546106cd919063ffffffff16611b46565b610d7a611633565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044015b6020604051808303816000875af1158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190611bab565b600080600080516020611c408339815191526040516370a0823160e01b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610eb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed79190611b07565b30306040518463ffffffff1660e01b8152600401610ef793929190611b65565b6020604051808303816000875af1158015610f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3a9190611b07565b604051636c82bbbf60e11b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d905777e90602401602060405180830381865afa158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc89190611b07565b9050600081600003610fdb57600061106e565b604051635d043b2960e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529061102b90859030908190600401611b65565b6020604051808303816000875af115801561104a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106e9190611b07565b8454909150600160601b90046001600160801b031661108d8285611b20565b6110979190611b84565b8454600160601b600160e01b031916855594507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c656110d58483611b20565b60405190815260200160405180910390a16040518581527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a15050505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a491906119b9565b6111af90600a611ad6565b600080516020611c40833981519152546106cd9190640100000000900463ffffffff16611b46565b600063ffffffff82111561123c5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016105c7565b5090565b600080516020611c40833981519152805463ffffffff640100000000820481169116118015906112885750805463ffffffff600160401b820481166401000000009092041611155b610abd5760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b60648201526084016105c7565b6112ee816116b1565b60405163ce96cb7760e01b815230600482015260009061137f9083906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ce96cb7790602401602060405180830381865afa15801561135b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aef9190611b07565b9050801561141c57604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af94906113d790849030908190600401611b65565b6020604051808303816000875af11580156113f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141a9190611b07565b505b6114268183611b33565b15610b05576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663b460af946114648385611b33565b30306040518463ffffffff1660e01b81526004016108be93929190611b65565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906307a2d13a9082906370a0823190602401602060405180830381865afa1580156114d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f79190611b07565b6040518263ffffffff1660e01b815260040161151591815260200190565b602060405180830381865afa158015611532573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d19190611b07565b60006001600160801b0382111561123c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016105c7565b6115c881611768565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610c80565b600081831061162a578161162c565b825b9392505050565b61163b6117f7565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401610dec565b600080516020611c4083398151915280546116e5906116e090600160601b90046001600160801b03168461161b565b611556565b81548290600c90611707908490600160601b90046001600160801b0316611bcd565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c658260405161175c91815260200190565b60405180910390a15050565b600080516020611c4083398151915261178082611556565b81548290600c906117a2908490600160601b90046001600160801b0316611bed565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf48260405161175c91815260200190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa15801561185f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118839190611c22565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e49190611c22565b6001600160a01b03161461192b5760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b60448201526064016105c7565b600080516020611c4083398151915280546001600160e01b0319169055565b60008060006060848603121561195f57600080fd5b505081359360208301359350604090920135919050565b60006020828403121561198857600080fd5b81356001600160e01b03198116811461162c57600080fd5b6000602082840312156119b257600080fd5b5035919050565b6000602082840312156119cb57600080fd5b815160ff8116811461162c57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a2d578160001904821115611a1357611a136119dc565b80851615611a2057918102915b93841c93908002906119f7565b509250929050565b600082611a44575060016104d1565b81611a51575060006104d1565b8160018114611a675760028114611a7157611a8d565b60019150506104d1565b60ff841115611a8257611a826119dc565b50506001821b6104d1565b5060208310610133831016604e8410600b8410161715611ab0575081810a6104d1565b611aba83836119f2565b8060001904821115611ace57611ace6119dc565b029392505050565b600061162c60ff841683611a35565b600082611b0257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b1957600080fd5b5051919050565b808201808211156104d1576104d16119dc565b818103818111156104d1576104d16119dc565b6000816000190483118215151615611b6057611b606119dc565b500290565b9283526001600160a01b03918216602084015216604082015260600190565b8181036000831280158383131683831282161715611ba457611ba46119dc565b5092915050565b600060208284031215611bbd57600080fd5b8151801515811461162c57600080fd5b6001600160801b03828116828216039080821115611ba457611ba46119dc565b6001600160801b03818116838216019080821115611ba457611ba46119dc565b6001600160a01b0381168114610abd57600080fd5b600060208284031215611c3457600080fd5b815161162c81611c0d56fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a2646970667358221220ed83f68147792d5e060d3d630c126909bdd66d5acb458d2f2a96907fd7065be464736f6c6343000810003345524334363236506c75735661756c7441737365744d616e616765723a207661",
266
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ce5760003560e01c80634eb978a41161008c5780638d7ddd90116100665780638d7ddd9014610177578063948cb7191461017f578063cec16f3f14610187578063f9c4fd1b1461018f57600080fd5b80634eb978a4146101545780637d7c2a1c1461015c5780638831c06e1461016457600080fd5b8062a9bb8d146100d357806301ffc9a7146100e85780631014a0c2146101105780633b6612c8146101315780633db77cb8146101395780634dd93bd31461014c575b600080fd5b6100e66100e136600461194a565b610197565b005b6100fb6100f6366004611976565b6104a0565b60405190151581526020015b60405180910390f35b61012361011e3660046119a0565b6104d7565b604051908152602001610107565b610123610617565b6100e66101473660046119a0565b6106d2565b610123610901565b61012361095f565b6100e6610a07565b6100e66101723660046119a0565b610b09565b610123610cc3565b6100e6610d72565b610123610e2f565b610123611120565b600080516020611c4083398151915260001984146102995761024e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610210573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023491906119b9565b61023f90600a611ad6565b6102499086611ae5565b6111d7565b815463ffffffff191663ffffffff9190911617815560266040518581527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b60001983146103945761033c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610303573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032791906119b9565b61033290600a611ad6565b6102499085611ae5565b815463ffffffff919091166401000000000267ffffffff000000001990911617815560276040518481527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b6000198214610492576104377f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042291906119b9565b61042d90600a611ad6565b6102499084611ae5565b815463ffffffff91909116600160401b026bffffffff00000000000000001990911617815560286040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a25b5061049b611240565b505050565b60006001600160e01b031982166301ffc9a760e01b14806104d157506001600160e01b03198216631e670a9760e21b145b92915050565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610540573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105649190611b07565b90508281106105d05760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b60648201526084015b60405180910390fd5b60006105da610901565b9050816105e5611120565b6105ef9086611b20565b6105f99190611b33565b925080831115610607578092505b610610836112e5565b5050919050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610677573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069b91906119b9565b6106a690600a611ad6565b600080516020611c40833981519152546106cd9190600160401b900463ffffffff16611b46565b905090565b600060001982036107d757604051636c82bbbf60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ba08765290829063d905777e90602401602060405180830381865afa158015610749573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076d9190611b07565b30306040518463ffffffff1660e01b815260040161078d93929190611b65565b6020604051808303816000875af11580156107ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d09190611b07565b905061086f565b604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af949061082790859030908190600401611b65565b6020604051808303816000875af1158015610846573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086a9190611b07565b508190505b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044015b6020604051808303816000875af11580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049b9190611b07565b600061092c7f0000000000000000000000000000000000000000000000000000000000000000611484565b6109557f0000000000000000000000000000000000000000000000000000000000000000611484565b6106cd9190611b20565b60008061096a610901565b600080516020611c4083398151915280549192509060009061099c90600160601b90046001600160801b031684611b84565b90506109a783611556565b82546001600160801b0391909116600160601b02600160601b600160e01b03199091161782556040518181527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a19392505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a929190611b07565b9050610a9c610617565b811115610ac057610abd610aae611120565b610ab89083611b33565b6115bf565b50565b610ac8610cc3565b811015610abd576000610af4610adc610901565b83610ae5611120565b610aef9190611b33565b61161b565b90508015610b0557610b05816112e5565b5050565b6000198103610b9d5760405163ce96cb7760e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ce96cb7790602401602060405180830381865afa158015610b76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9a9190611b07565b90505b604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af9490610bed90849030908190600401611b65565b6020604051808303816000875af1158015610c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c309190611b07565b50604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044015b6020604051808303816000875af1158015610c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b059190611b07565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4791906119b9565b610d5290600a611ad6565b600080516020611c40833981519152546106cd919063ffffffff16611b46565b610d7a611633565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906044015b6020604051808303816000875af1158015610e0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190611bab565b600080600080516020611c408339815191526040516370a0823160e01b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529082906370a0823190602401602060405180830381865afa158015610eb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed79190611b07565b30306040518463ffffffff1660e01b8152600401610ef793929190611b65565b6020604051808303816000875af1158015610f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3a9190611b07565b604051636c82bbbf60e11b81523060048201529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d905777e90602401602060405180830381865afa158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc89190611b07565b9050600081600003610fdb57600061106e565b604051635d043b2960e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ba0876529061102b90859030908190600401611b65565b6020604051808303816000875af115801561104a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106e9190611b07565b8454909150600160601b90046001600160801b031661108d8285611b20565b6110979190611b84565b8454600160601b600160e01b031916855594507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c656110d58483611b20565b60405190815260200160405180910390a16040518581527f731c439c5bae15be1344eec709967e046b4f7d3f7e37abeffc5247f448fa18bf9060200160405180910390a15050505090565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a491906119b9565b6111af90600a611ad6565b600080516020611c40833981519152546106cd9190640100000000900463ffffffff16611b46565b600063ffffffff82111561123c5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016105c7565b5090565b600080516020611c40833981519152805463ffffffff640100000000820481169116118015906112885750805463ffffffff600160401b820481166401000000009092041611155b610abd5760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b60648201526084016105c7565b6112ee816116b1565b60405163ce96cb7760e01b815230600482015260009061137f9083906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ce96cb7790602401602060405180830381865afa15801561135b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aef9190611b07565b9050801561141c57604051632d182be560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b460af94906113d790849030908190600401611b65565b6020604051808303816000875af11580156113f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141a9190611b07565b505b6114268183611b33565b15610b05576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663b460af946114648385611b33565b30306040518463ffffffff1660e01b81526004016108be93929190611b65565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906307a2d13a9082906370a0823190602401602060405180830381865afa1580156114d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f79190611b07565b6040518263ffffffff1660e01b815260040161151591815260200190565b602060405180830381865afa158015611532573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d19190611b07565b60006001600160801b0382111561123c5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016105c7565b6115c881611768565b604051636e553f6560e01b8152600481018290523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f6590604401610c80565b600081831061162a578161162c565b825b9392505050565b61163b6117f7565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401610dec565b600080516020611c4083398151915280546116e5906116e090600160601b90046001600160801b03168461161b565b611556565b81548290600c90611707908490600160601b90046001600160801b0316611bcd565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c658260405161175c91815260200190565b60405180910390a15050565b600080516020611c4083398151915261178082611556565b81548290600c906117a2908490600160601b90046001600160801b0316611bed565b92506101000a8154816001600160801b0302191690836001600160801b031602179055507f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf48260405161175c91815260200190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316306001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa15801561185f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118839190611c22565b6001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e49190611c22565b6001600160a01b03161461192b5760405162461bcd60e51b815260206004820152600e60248201526d082e6e6cae840dad2e6dac2e8c6d60931b60448201526064016105c7565b600080516020611c4083398151915280546001600160e01b0319169055565b60008060006060848603121561195f57600080fd5b505081359360208301359350604090920135919050565b60006020828403121561198857600080fd5b81356001600160e01b03198116811461162c57600080fd5b6000602082840312156119b257600080fd5b5035919050565b6000602082840312156119cb57600080fd5b815160ff8116811461162c57600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a2d578160001904821115611a1357611a136119dc565b80851615611a2057918102915b93841c93908002906119f7565b509250929050565b600082611a44575060016104d1565b81611a51575060006104d1565b8160018114611a675760028114611a7157611a8d565b60019150506104d1565b60ff841115611a8257611a826119dc565b50506001821b6104d1565b5060208310610133831016604e8410600b8410161715611ab0575081810a6104d1565b611aba83836119f2565b8060001904821115611ace57611ace6119dc565b029392505050565b600061162c60ff841683611a35565b600082611b0257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b1957600080fd5b5051919050565b808201808211156104d1576104d16119dc565b818103818111156104d1576104d16119dc565b6000816000190483118215151615611b6057611b606119dc565b500290565b9283526001600160a01b03918216602084015216604082015260600190565b8181036000831280158383131683831282161715611ba457611ba46119dc565b5092915050565b600060208284031215611bbd57600080fd5b8151801515811461162c57600080fd5b6001600160801b03828116828216039080821115611ba457611ba46119dc565b6001600160801b03818116838216019080821115611ba457611ba46119dc565b6001600160a01b0381168114610abd57600080fd5b600060208284031215611c3457600080fd5b815161162c81611c0d56fe2285f21cf946f4f139f84d60d1bd42e41b7cecbb3685384f294f426ac09f5f46a2646970667358221220ed83f68147792d5e060d3d630c126909bdd66d5acb458d2f2a96907fd7065be464736f6c63430008100033",
267
+ "linkReferences": {},
268
+ "deployedLinkReferences": {}
269
+ }