forked from balancer/balancer-deployments
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBalancerQueries.json
318 lines (318 loc) · 31.2 KB
/
BalancerQueries.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
{
"_format": "hh-sol-artifact-1",
"contractName": "BalancerQueries",
"sourceName": "contracts/BalancerQueries.sol",
"abi": [
{
"inputs": [
{
"internalType": "contract IVault",
"name": "_vault",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "enum IVault.SwapKind",
"name": "kind",
"type": "uint8"
},
{
"components": [
{
"internalType": "bytes32",
"name": "poolId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "assetInIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "assetOutIndex",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "userData",
"type": "bytes"
}
],
"internalType": "struct IVault.BatchSwapStep[]",
"name": "swaps",
"type": "tuple[]"
},
{
"internalType": "contract IAsset[]",
"name": "assets",
"type": "address[]"
},
{
"components": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "bool",
"name": "fromInternalBalance",
"type": "bool"
},
{
"internalType": "address payable",
"name": "recipient",
"type": "address"
},
{
"internalType": "bool",
"name": "toInternalBalance",
"type": "bool"
}
],
"internalType": "struct IVault.FundManagement",
"name": "funds",
"type": "tuple"
}
],
"name": "queryBatchSwap",
"outputs": [
{
"internalType": "int256[]",
"name": "assetDeltas",
"type": "int256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "poolId",
"type": "bytes32"
},
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"components": [
{
"internalType": "contract IAsset[]",
"name": "assets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "minAmountsOut",
"type": "uint256[]"
},
{
"internalType": "bytes",
"name": "userData",
"type": "bytes"
},
{
"internalType": "bool",
"name": "toInternalBalance",
"type": "bool"
}
],
"internalType": "struct IVault.ExitPoolRequest",
"name": "request",
"type": "tuple"
}
],
"name": "queryExit",
"outputs": [
{
"internalType": "uint256",
"name": "bptIn",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "amountsOut",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "poolId",
"type": "bytes32"
},
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"components": [
{
"internalType": "contract IAsset[]",
"name": "assets",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "maxAmountsIn",
"type": "uint256[]"
},
{
"internalType": "bytes",
"name": "userData",
"type": "bytes"
},
{
"internalType": "bool",
"name": "fromInternalBalance",
"type": "bool"
}
],
"internalType": "struct IVault.JoinPoolRequest",
"name": "request",
"type": "tuple"
}
],
"name": "queryJoin",
"outputs": [
{
"internalType": "uint256",
"name": "bptOut",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "amountsIn",
"type": "uint256[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "bytes32",
"name": "poolId",
"type": "bytes32"
},
{
"internalType": "enum IVault.SwapKind",
"name": "kind",
"type": "uint8"
},
{
"internalType": "contract IAsset",
"name": "assetIn",
"type": "address"
},
{
"internalType": "contract IAsset",
"name": "assetOut",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "userData",
"type": "bytes"
}
],
"internalType": "struct IVault.SingleSwap",
"name": "singleSwap",
"type": "tuple"
},
{
"components": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "bool",
"name": "fromInternalBalance",
"type": "bool"
},
{
"internalType": "address payable",
"name": "recipient",
"type": "address"
},
{
"internalType": "bool",
"name": "toInternalBalance",
"type": "bool"
}
],
"internalType": "struct IVault.FundManagement",
"name": "funds",
"type": "tuple"
}
],
"name": "querySwap",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "vault",
"outputs": [
{
"internalType": "contract IVault",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60c06040523480156200001157600080fd5b5060405162001844380380620018448339810160408190526200003491620000c9565b806001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200006e57600080fd5b505afa15801562000083573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000a99190620000c9565b6001600160601b0319606091821b811660805291901b1660a05262000108565b600060208284031215620000db578081fd5b8151620000e881620000ef565b9392505050565b6001600160a01b03811681146200010557600080fd5b50565b60805160601c60a05160601c6116ef620001556000398061010652806101c9528061039c528061045f5280610693528061080b52806108a75280610919525080610bbd52506116ef6000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063e969f6b311610050578063e969f6b3146100a9578063f84d066e146100c9578063fbfa77cf146100e957610067565b80639ebbf05d1461006c578063c7b2c52c14610096575b600080fd5b61007f61007a366004611072565b6100fe565b60405161008d929190611622565b60405180910390f35b61007f6100a4366004611072565b610394565b6100bc6100b7366004611235565b610564565b60405161008d91906114ae565b6100dc6100d73660046110ff565b6107cb565b60405161008d919061146a565b6100f16108a5565b60405161008d9190611522565b6000606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f6c00927886040518263ffffffff1660e01b815260040161015d91906114ae565b604080518083038186803b15801561017457600080fd5b505afa158015610188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ac9190610eda565b509050606060006101c18987600001516108c9565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d2946c2b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561022d57600080fd5b505afa158015610241573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061026591906110dc565b90508373ffffffffffffffffffffffffffffffffffffffff166387ec68178b8b8b87878773ffffffffffffffffffffffffffffffffffffffff166355c676286040518163ffffffff1660e01b815260040160206040518083038186803b1580156102ce57600080fd5b505afa1580156102e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030691906112ff565b8e604001516040518863ffffffff1660e01b815260040161032d97969594939291906114b7565b600060405180830381600087803b15801561034757600080fd5b505af115801561035b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103839190810190611317565b909b909a5098505050505050505050565b6000606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f6c00927886040518263ffffffff1660e01b81526004016103f391906114ae565b604080518083038186803b15801561040a57600080fd5b505afa15801561041e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104429190610eda565b509050606060006104578987600001516108c9565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d2946c2b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104c357600080fd5b505afa1580156104d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fb91906110dc565b90508373ffffffffffffffffffffffffffffffffffffffff16636028bfd48b8b8b87878773ffffffffffffffffffffffffffffffffffffffff166355c676286040518163ffffffff1660e01b815260040160206040518083038186803b1580156102ce57600080fd5b604080516002808252606080830184526000939092919060208301908036833701905050905083604001518160008151811061059c57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508360600151816001815181106105e857fe5b73ffffffffffffffffffffffffffffffffffffffff9290921660209283029190910190910152604080516001808252818301909252606091816020015b61062d610bdf565b8152602001906001900390816106255790505090506040518060a00160405280866000015181526020016000815260200160018152602001866080015181526020018660a001518152508160008151811061068457fe5b602002602001018190525060607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f84d066e87602001518486896040518563ffffffff1660e01b81526004016106f49493929190611543565b600060405180830381600087803b15801561070e57600080fd5b505af1158015610722573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261074a9190810190610fe2565b905060008660200151600181111561075e57fe5b14156107aa5761078860008260018151811061077657fe5b602002602001015113156103e7610a3d565b8060018151811061079557fe5b602002602001015160000393505050506107c5565b806000815181106107b757fe5b602002602001015193505050505b92915050565b6040517ff84d066e00000000000000000000000000000000000000000000000000000000815260609073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063f84d066e90610846908890889088908890600401611543565b600060405180830381600087803b15801561086057600080fd5b505af1158015610874573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089c9190810190610fe2565b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060006060806108d985610a4f565b6040517ff94d466800000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063f94d46689061094e9089906004016114ae565b60006040518083038186803b15801561096657600080fd5b505afa15801561097a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109a29190810190610f16565b825184519297509095509193506109b99190610aff565b60005b8251811015610a335760008382815181106109d357fe5b60200260200101519050610a2a8383815181106109ec57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610208610a3d565b506001016109bc565b5050509250929050565b81610a4b57610a4b81610b0c565b5050565b606080825167ffffffffffffffff81118015610a6a57600080fd5b50604051908082528060200260200182016040528015610a94578160200160208202803683370190505b50905060005b8351811015610af857610abf848281518110610ab257fe5b6020026020010151610b79565b828281518110610acb57fe5b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101610a9a565b5092915050565b610a4b8183146067610a3d565b7f08c379a0000000000000000000000000000000000000000000000000000000006000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fd5b6000610b8482610b9e565b610b9657610b9182610bb8565b6107c5565b6107c5610bbb565b73ffffffffffffffffffffffffffffffffffffffff161590565b90565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040518060a0016040528060008019168152602001600081526020016000815260200160008152602001606081525090565b600082601f830112610c21578081fd5b8135610c34610c2f8261166a565b611643565b818152915060208083019084810181840286018201871015610c5557600080fd5b60005b84811015610c7d578135610c6b81611697565b84529282019290820190600101610c58565b505050505092915050565b600082601f830112610c98578081fd5b8135610ca6610c2f8261166a565b818152915060208083019084810181840286018201871015610cc757600080fd5b60005b84811015610c7d57813584529282019290820190600101610cca565b600082601f830112610cf6578081fd5b8151610d04610c2f8261166a565b818152915060208083019084810181840286018201871015610d2557600080fd5b60005b84811015610c7d57815184529282019290820190600101610d28565b803580151581146107c557600080fd5b600082601f830112610d64578081fd5b813567ffffffffffffffff811115610d7a578182fd5b610d8d6020601f19601f84011601611643565b9150808252836020828501011115610da457600080fd5b8060208401602084013760009082016020015292915050565b80356107c581611697565b8035600281106107c557600080fd5b600060808284031215610de8578081fd5b610df26080611643565b9050813567ffffffffffffffff80821115610e0c57600080fd5b610e1885838601610c11565b83526020840135915080821115610e2e57600080fd5b610e3a85838601610c88565b60208401526040840135915080821115610e5357600080fd5b50610e6084828501610d54565b604083015250610e738360608401610d44565b606082015292915050565b600060808284031215610e8f578081fd5b610e996080611643565b90508135610ea681611697565b8152610eb58360208401610d44565b60208201526040820135610ec881611697565b6040820152610e738360608401610d44565b60008060408385031215610eec578182fd5b8251610ef781611697565b602084015190925060038110610f0b578182fd5b809150509250929050565b600080600060608486031215610f2a578081fd5b835167ffffffffffffffff80821115610f41578283fd5b818601915086601f830112610f54578283fd5b8151610f62610c2f8261166a565b80828252602080830192508086018b828387028901011115610f82578788fd5b8796505b84871015610fad578051610f9981611697565b845260019690960195928101928101610f86565b508901519097509350505080821115610fc4578283fd5b50610fd186828701610ce6565b925050604084015190509250925092565b60006020808385031215610ff4578182fd5b825167ffffffffffffffff81111561100a578283fd5b8301601f8101851361101a578283fd5b8051611028610c2f8261166a565b8181528381019083850185840285018601891015611044578687fd5b8694505b83851015611066578051835260019490940193918501918501611048565b50979650505050505050565b60008060008060808587031215611087578182fd5b84359350602085013561109981611697565b925060408501356110a981611697565b9150606085013567ffffffffffffffff8111156110c4578182fd5b6110d087828801610dd7565b91505092959194509250565b6000602082840312156110ed578081fd5b81516110f881611697565b9392505050565b60008060008060e08587031215611114578182fd5b61111e8686610dc8565b9350602085013567ffffffffffffffff8082111561113a578384fd5b818701915087601f83011261114d578384fd5b61115a610c2f833561166a565b82358152602080820191908401865b85358110156111f4578135860160a0601f19828f03011215611189578889fd5b61119360a0611643565b6020820135815260408201356020820152606082013560408201526080820135606082015260a0820135878111156111c9578a8bfd5b6111d88f602083860101610d54565b6080830152508552506020938401939190910190600101611169565b509096505050604087013591508082111561120d578384fd5b5061121a87828801610c11565b92505061122a8660608701610e7e565b905092959194509250565b60008060a08385031215611247578182fd5b823567ffffffffffffffff8082111561125e578384fd5b9084019060c08287031215611271578384fd5b61127b60c0611643565b8235815261128c8760208501610dc8565b6020820152604083013561129f81611697565b60408201526112b18760608501610dbd565b60608201526080830135608082015260a0830135828111156112d1578586fd5b6112dd88828601610d54565b60a0830152508094505050506112f68460208501610e7e565b90509250929050565b600060208284031215611310578081fd5b5051919050565b60008060408385031215611329578182fd5b82519150602083015167ffffffffffffffff811115611346578182fd5b61135285828601610ce6565b9150509250929050565b6000815180845260208085019450808401835b838110156113a157815173ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161136f565b509495945050505050565b6000815180845260208085019450808401835b838110156113a1578151875295820195908201906001016113bf565b60008151808452815b81811015611400576020818501810151868301820152016113e4565b818111156114115782602083870101525b50601f01601f19169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b6020808252825182820181905260009190848201906040850190845b818110156114a257835183529284019291840191600101611486565b50909695505050505050565b90815260200190565b600088825273ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525060e060608301526114f660e08301876113ac565b8560808401528460a084015282810360c084015261151481856113db565b9a9950505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600060e082016115528761168a565b868352602060e08185015281875180845261010093508386019150838382028701019350828901855b828110156115fb578786037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000184528151805187528581015186880152604080820151908801526060808201519088015260809081015160a0918801829052906115e7818901836113db565b97505050928401929084019060010161157b565b50505050508281036040840152611612818661135c565b91505061089c6060830184611426565b60008382526040602083015261163b60408301846113ac565b949350505050565b60405181810167ffffffffffffffff8111828210171561166257600080fd5b604052919050565b600067ffffffffffffffff821115611680578081fd5b5060209081020190565b6002811061169457fe5b50565b73ffffffffffffffffffffffffffffffffffffffff8116811461169457600080fdfea26469706673582212207e1e917863f9f7dc841fb54e83125d1b7e455ab10a76af98d72aaf0a1494cfb264736f6c63430007010033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100675760003560e01c8063e969f6b311610050578063e969f6b3146100a9578063f84d066e146100c9578063fbfa77cf146100e957610067565b80639ebbf05d1461006c578063c7b2c52c14610096575b600080fd5b61007f61007a366004611072565b6100fe565b60405161008d929190611622565b60405180910390f35b61007f6100a4366004611072565b610394565b6100bc6100b7366004611235565b610564565b60405161008d91906114ae565b6100dc6100d73660046110ff565b6107cb565b60405161008d919061146a565b6100f16108a5565b60405161008d9190611522565b6000606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f6c00927886040518263ffffffff1660e01b815260040161015d91906114ae565b604080518083038186803b15801561017457600080fd5b505afa158015610188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ac9190610eda565b509050606060006101c18987600001516108c9565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d2946c2b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561022d57600080fd5b505afa158015610241573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061026591906110dc565b90508373ffffffffffffffffffffffffffffffffffffffff166387ec68178b8b8b87878773ffffffffffffffffffffffffffffffffffffffff166355c676286040518163ffffffff1660e01b815260040160206040518083038186803b1580156102ce57600080fd5b505afa1580156102e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030691906112ff565b8e604001516040518863ffffffff1660e01b815260040161032d97969594939291906114b7565b600060405180830381600087803b15801561034757600080fd5b505af115801561035b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103839190810190611317565b909b909a5098505050505050505050565b6000606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f6c00927886040518263ffffffff1660e01b81526004016103f391906114ae565b604080518083038186803b15801561040a57600080fd5b505afa15801561041e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104429190610eda565b509050606060006104578987600001516108c9565b9150915060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d2946c2b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104c357600080fd5b505afa1580156104d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fb91906110dc565b90508373ffffffffffffffffffffffffffffffffffffffff16636028bfd48b8b8b87878773ffffffffffffffffffffffffffffffffffffffff166355c676286040518163ffffffff1660e01b815260040160206040518083038186803b1580156102ce57600080fd5b604080516002808252606080830184526000939092919060208301908036833701905050905083604001518160008151811061059c57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508360600151816001815181106105e857fe5b73ffffffffffffffffffffffffffffffffffffffff9290921660209283029190910190910152604080516001808252818301909252606091816020015b61062d610bdf565b8152602001906001900390816106255790505090506040518060a00160405280866000015181526020016000815260200160018152602001866080015181526020018660a001518152508160008151811061068457fe5b602002602001018190525060607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f84d066e87602001518486896040518563ffffffff1660e01b81526004016106f49493929190611543565b600060405180830381600087803b15801561070e57600080fd5b505af1158015610722573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261074a9190810190610fe2565b905060008660200151600181111561075e57fe5b14156107aa5761078860008260018151811061077657fe5b602002602001015113156103e7610a3d565b8060018151811061079557fe5b602002602001015160000393505050506107c5565b806000815181106107b757fe5b602002602001015193505050505b92915050565b6040517ff84d066e00000000000000000000000000000000000000000000000000000000815260609073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063f84d066e90610846908890889088908890600401611543565b600060405180830381600087803b15801561086057600080fd5b505af1158015610874573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261089c9190810190610fe2565b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060006060806108d985610a4f565b6040517ff94d466800000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063f94d46689061094e9089906004016114ae565b60006040518083038186803b15801561096657600080fd5b505afa15801561097a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109a29190810190610f16565b825184519297509095509193506109b99190610aff565b60005b8251811015610a335760008382815181106109d357fe5b60200260200101519050610a2a8383815181106109ec57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610208610a3d565b506001016109bc565b5050509250929050565b81610a4b57610a4b81610b0c565b5050565b606080825167ffffffffffffffff81118015610a6a57600080fd5b50604051908082528060200260200182016040528015610a94578160200160208202803683370190505b50905060005b8351811015610af857610abf848281518110610ab257fe5b6020026020010151610b79565b828281518110610acb57fe5b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101610a9a565b5092915050565b610a4b8183146067610a3d565b7f08c379a0000000000000000000000000000000000000000000000000000000006000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fd5b6000610b8482610b9e565b610b9657610b9182610bb8565b6107c5565b6107c5610bbb565b73ffffffffffffffffffffffffffffffffffffffff161590565b90565b7f000000000000000000000000000000000000000000000000000000000000000090565b6040518060a0016040528060008019168152602001600081526020016000815260200160008152602001606081525090565b600082601f830112610c21578081fd5b8135610c34610c2f8261166a565b611643565b818152915060208083019084810181840286018201871015610c5557600080fd5b60005b84811015610c7d578135610c6b81611697565b84529282019290820190600101610c58565b505050505092915050565b600082601f830112610c98578081fd5b8135610ca6610c2f8261166a565b818152915060208083019084810181840286018201871015610cc757600080fd5b60005b84811015610c7d57813584529282019290820190600101610cca565b600082601f830112610cf6578081fd5b8151610d04610c2f8261166a565b818152915060208083019084810181840286018201871015610d2557600080fd5b60005b84811015610c7d57815184529282019290820190600101610d28565b803580151581146107c557600080fd5b600082601f830112610d64578081fd5b813567ffffffffffffffff811115610d7a578182fd5b610d8d6020601f19601f84011601611643565b9150808252836020828501011115610da457600080fd5b8060208401602084013760009082016020015292915050565b80356107c581611697565b8035600281106107c557600080fd5b600060808284031215610de8578081fd5b610df26080611643565b9050813567ffffffffffffffff80821115610e0c57600080fd5b610e1885838601610c11565b83526020840135915080821115610e2e57600080fd5b610e3a85838601610c88565b60208401526040840135915080821115610e5357600080fd5b50610e6084828501610d54565b604083015250610e738360608401610d44565b606082015292915050565b600060808284031215610e8f578081fd5b610e996080611643565b90508135610ea681611697565b8152610eb58360208401610d44565b60208201526040820135610ec881611697565b6040820152610e738360608401610d44565b60008060408385031215610eec578182fd5b8251610ef781611697565b602084015190925060038110610f0b578182fd5b809150509250929050565b600080600060608486031215610f2a578081fd5b835167ffffffffffffffff80821115610f41578283fd5b818601915086601f830112610f54578283fd5b8151610f62610c2f8261166a565b80828252602080830192508086018b828387028901011115610f82578788fd5b8796505b84871015610fad578051610f9981611697565b845260019690960195928101928101610f86565b508901519097509350505080821115610fc4578283fd5b50610fd186828701610ce6565b925050604084015190509250925092565b60006020808385031215610ff4578182fd5b825167ffffffffffffffff81111561100a578283fd5b8301601f8101851361101a578283fd5b8051611028610c2f8261166a565b8181528381019083850185840285018601891015611044578687fd5b8694505b83851015611066578051835260019490940193918501918501611048565b50979650505050505050565b60008060008060808587031215611087578182fd5b84359350602085013561109981611697565b925060408501356110a981611697565b9150606085013567ffffffffffffffff8111156110c4578182fd5b6110d087828801610dd7565b91505092959194509250565b6000602082840312156110ed578081fd5b81516110f881611697565b9392505050565b60008060008060e08587031215611114578182fd5b61111e8686610dc8565b9350602085013567ffffffffffffffff8082111561113a578384fd5b818701915087601f83011261114d578384fd5b61115a610c2f833561166a565b82358152602080820191908401865b85358110156111f4578135860160a0601f19828f03011215611189578889fd5b61119360a0611643565b6020820135815260408201356020820152606082013560408201526080820135606082015260a0820135878111156111c9578a8bfd5b6111d88f602083860101610d54565b6080830152508552506020938401939190910190600101611169565b509096505050604087013591508082111561120d578384fd5b5061121a87828801610c11565b92505061122a8660608701610e7e565b905092959194509250565b60008060a08385031215611247578182fd5b823567ffffffffffffffff8082111561125e578384fd5b9084019060c08287031215611271578384fd5b61127b60c0611643565b8235815261128c8760208501610dc8565b6020820152604083013561129f81611697565b60408201526112b18760608501610dbd565b60608201526080830135608082015260a0830135828111156112d1578586fd5b6112dd88828601610d54565b60a0830152508094505050506112f68460208501610e7e565b90509250929050565b600060208284031215611310578081fd5b5051919050565b60008060408385031215611329578182fd5b82519150602083015167ffffffffffffffff811115611346578182fd5b61135285828601610ce6565b9150509250929050565b6000815180845260208085019450808401835b838110156113a157815173ffffffffffffffffffffffffffffffffffffffff168752958201959082019060010161136f565b509495945050505050565b6000815180845260208085019450808401835b838110156113a1578151875295820195908201906001016113bf565b60008151808452815b81811015611400576020818501810151868301820152016113e4565b818111156114115782602083870101525b50601f01601f19169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff808251168352602082015115156020840152806040830151166040840152506060810151151560608301525050565b6020808252825182820181905260009190848201906040850190845b818110156114a257835183529284019291840191600101611486565b50909695505050505050565b90815260200190565b600088825273ffffffffffffffffffffffffffffffffffffffff808916602084015280881660408401525060e060608301526114f660e08301876113ac565b8560808401528460a084015282810360c084015261151481856113db565b9a9950505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600060e082016115528761168a565b868352602060e08185015281875180845261010093508386019150838382028701019350828901855b828110156115fb578786037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000184528151805187528581015186880152604080820151908801526060808201519088015260809081015160a0918801829052906115e7818901836113db565b97505050928401929084019060010161157b565b50505050508281036040840152611612818661135c565b91505061089c6060830184611426565b60008382526040602083015261163b60408301846113ac565b949350505050565b60405181810167ffffffffffffffff8111828210171561166257600080fd5b604052919050565b600067ffffffffffffffff821115611680578081fd5b5060209081020190565b6002811061169457fe5b50565b73ffffffffffffffffffffffffffffffffffffffff8116811461169457600080fdfea26469706673582212207e1e917863f9f7dc841fb54e83125d1b7e455ab10a76af98d72aaf0a1494cfb264736f6c63430007010033",
"linkReferences": {},
"deployedLinkReferences": {}
}