@coset-dev/contracts 1.0.1 → 1.0.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 (54) hide show
  1. package/dist/Oracle.d.ts +210 -0
  2. package/dist/OracleFactory.d.ts +313 -0
  3. package/dist/OracleUtils.d.ts +20 -0
  4. package/dist/cjs/ethers-contracts/Oracle.js +2 -0
  5. package/dist/cjs/ethers-contracts/Oracle.js.map +7 -0
  6. package/dist/cjs/ethers-contracts/OracleFactory.js +2 -0
  7. package/dist/cjs/ethers-contracts/OracleFactory.js.map +7 -0
  8. package/dist/cjs/ethers-contracts/OracleUtils.js +2 -0
  9. package/dist/cjs/ethers-contracts/OracleUtils.js.map +7 -0
  10. package/dist/cjs/ethers-contracts/common.js +2 -0
  11. package/dist/cjs/ethers-contracts/common.js.map +7 -0
  12. package/dist/cjs/ethers-contracts/factories/OracleFactory__factory.js +2 -0
  13. package/dist/cjs/ethers-contracts/factories/OracleFactory__factory.js.map +7 -0
  14. package/dist/cjs/ethers-contracts/factories/OracleUtils__factory.js +2 -0
  15. package/dist/cjs/ethers-contracts/factories/OracleUtils__factory.js.map +7 -0
  16. package/dist/cjs/ethers-contracts/factories/Oracle__factory.js +2 -0
  17. package/dist/cjs/ethers-contracts/factories/Oracle__factory.js.map +7 -0
  18. package/dist/cjs/ethers-contracts/factories/index.js +2 -0
  19. package/dist/cjs/ethers-contracts/factories/index.js.map +7 -0
  20. package/dist/cjs/ethers-contracts/index.js +2 -0
  21. package/dist/cjs/ethers-contracts/index.js.map +7 -0
  22. package/dist/common.d.ts +46 -0
  23. package/dist/esm/ethers-contracts/Oracle.js +2 -0
  24. package/dist/esm/ethers-contracts/Oracle.js.map +7 -0
  25. package/dist/esm/ethers-contracts/OracleFactory.js +2 -0
  26. package/dist/esm/ethers-contracts/OracleFactory.js.map +7 -0
  27. package/dist/esm/ethers-contracts/OracleUtils.js +1 -0
  28. package/dist/esm/ethers-contracts/OracleUtils.js.map +7 -0
  29. package/dist/esm/ethers-contracts/common.js +1 -0
  30. package/dist/esm/ethers-contracts/common.js.map +7 -0
  31. package/dist/esm/ethers-contracts/factories/OracleFactory__factory.js +2 -0
  32. package/dist/esm/ethers-contracts/factories/OracleFactory__factory.js.map +7 -0
  33. package/dist/esm/ethers-contracts/factories/OracleUtils__factory.js +2 -0
  34. package/dist/esm/ethers-contracts/factories/OracleUtils__factory.js.map +7 -0
  35. package/dist/esm/ethers-contracts/factories/Oracle__factory.js +2 -0
  36. package/dist/esm/ethers-contracts/factories/Oracle__factory.js.map +7 -0
  37. package/dist/esm/ethers-contracts/factories/index.js +2 -0
  38. package/dist/esm/ethers-contracts/factories/index.js.map +7 -0
  39. package/dist/esm/ethers-contracts/index.js +2 -0
  40. package/dist/esm/ethers-contracts/index.js.map +7 -0
  41. package/dist/factories/OracleFactory__factory.d.ts +421 -0
  42. package/dist/factories/OracleUtils__factory.d.ts +108 -0
  43. package/dist/factories/Oracle__factory.d.ts +323 -0
  44. package/{types/ethers-contracts/factories/index.ts → dist/factories/index.d.ts} +1 -4
  45. package/{types/ethers-contracts/index.ts → dist/index.d.ts} +1 -4
  46. package/package.json +42 -18
  47. package/types/ethers-contracts/Oracle.ts +0 -306
  48. package/types/ethers-contracts/OracleFactory.ts +0 -363
  49. package/types/ethers-contracts/OracleUtils.ts +0 -64
  50. package/types/ethers-contracts/common.ts +0 -92
  51. package/types/ethers-contracts/factories/OracleFactory__factory.ts +0 -578
  52. package/types/ethers-contracts/factories/OracleUtils__factory.ts +0 -170
  53. package/types/ethers-contracts/factories/Oracle__factory.ts +0 -449
  54. /package/{types/ethers-contracts → dist}/hardhat.d.ts +0 -0
@@ -1,578 +0,0 @@
1
- /* Autogenerated file. Do not edit manually. */
2
- /* tslint:disable */
3
- /* eslint-disable */
4
- import type { Addressable } from "ethers";
5
- import { Contract, ContractFactory, ContractTransactionResponse, Interface } from "ethers"
6
- import type { Signer, AddressLike, ContractDeployTransaction, ContractRunner } from "ethers"
7
- import type { NonPayableOverrides } from "../common.js"
8
- import type { OracleFactory, OracleFactoryInterface } from "../OracleFactory.js";
9
-
10
- const _abi = [
11
- {
12
- "inputs": [
13
- {
14
- "internalType": "address payable",
15
- "name": "_owner",
16
- "type": "address"
17
- }
18
- ],
19
- "stateMutability": "nonpayable",
20
- "type": "constructor"
21
- },
22
- {
23
- "inputs": [],
24
- "name": "AmountTransferFailed",
25
- "type": "error"
26
- },
27
- {
28
- "inputs": [
29
- {
30
- "internalType": "uint256",
31
- "name": "required",
32
- "type": "uint256"
33
- },
34
- {
35
- "internalType": "uint256",
36
- "name": "provided",
37
- "type": "uint256"
38
- }
39
- ],
40
- "name": "ExcessivePayment",
41
- "type": "error"
42
- },
43
- {
44
- "inputs": [
45
- {
46
- "internalType": "uint256",
47
- "name": "required",
48
- "type": "uint256"
49
- },
50
- {
51
- "internalType": "uint256",
52
- "name": "provided",
53
- "type": "uint256"
54
- }
55
- ],
56
- "name": "InsufficientPayment",
57
- "type": "error"
58
- },
59
- {
60
- "inputs": [],
61
- "name": "NoStatusChange",
62
- "type": "error"
63
- },
64
- {
65
- "inputs": [
66
- {
67
- "internalType": "address",
68
- "name": "oracleAddress",
69
- "type": "address"
70
- }
71
- ],
72
- "name": "OracleIsNotExist",
73
- "type": "error"
74
- },
75
- {
76
- "inputs": [
77
- {
78
- "internalType": "address",
79
- "name": "owner",
80
- "type": "address"
81
- }
82
- ],
83
- "name": "OwnableInvalidOwner",
84
- "type": "error"
85
- },
86
- {
87
- "inputs": [
88
- {
89
- "internalType": "address",
90
- "name": "account",
91
- "type": "address"
92
- }
93
- ],
94
- "name": "OwnableUnauthorizedAccount",
95
- "type": "error"
96
- },
97
- {
98
- "inputs": [],
99
- "name": "ReentrancyGuardReentrantCall",
100
- "type": "error"
101
- },
102
- {
103
- "inputs": [],
104
- "name": "ZeroAddressProvided",
105
- "type": "error"
106
- },
107
- {
108
- "inputs": [],
109
- "name": "ZeroAmountProvided",
110
- "type": "error"
111
- },
112
- {
113
- "anonymous": false,
114
- "inputs": [
115
- {
116
- "indexed": true,
117
- "internalType": "address",
118
- "name": "oracleAddress",
119
- "type": "address"
120
- },
121
- {
122
- "indexed": true,
123
- "internalType": "address",
124
- "name": "provider",
125
- "type": "address"
126
- },
127
- {
128
- "indexed": false,
129
- "internalType": "uint256",
130
- "name": "timestamp",
131
- "type": "uint256"
132
- }
133
- ],
134
- "name": "OracleDeployed",
135
- "type": "event"
136
- },
137
- {
138
- "anonymous": false,
139
- "inputs": [
140
- {
141
- "indexed": true,
142
- "internalType": "address",
143
- "name": "oracleAddress",
144
- "type": "address"
145
- },
146
- {
147
- "indexed": true,
148
- "internalType": "address",
149
- "name": "provider",
150
- "type": "address"
151
- },
152
- {
153
- "indexed": false,
154
- "internalType": "bool",
155
- "name": "newOracleStatus",
156
- "type": "bool"
157
- },
158
- {
159
- "indexed": false,
160
- "internalType": "uint256",
161
- "name": "timestamp",
162
- "type": "uint256"
163
- }
164
- ],
165
- "name": "OracleStatusChanged",
166
- "type": "event"
167
- },
168
- {
169
- "anonymous": false,
170
- "inputs": [
171
- {
172
- "indexed": true,
173
- "internalType": "address",
174
- "name": "previousOwner",
175
- "type": "address"
176
- },
177
- {
178
- "indexed": true,
179
- "internalType": "address",
180
- "name": "newOwner",
181
- "type": "address"
182
- }
183
- ],
184
- "name": "OwnershipTransferred",
185
- "type": "event"
186
- },
187
- {
188
- "inputs": [],
189
- "name": "activeOracleCount",
190
- "outputs": [
191
- {
192
- "internalType": "uint256",
193
- "name": "",
194
- "type": "uint256"
195
- }
196
- ],
197
- "stateMutability": "view",
198
- "type": "function"
199
- },
200
- {
201
- "inputs": [],
202
- "name": "config",
203
- "outputs": [
204
- {
205
- "internalType": "uint128",
206
- "name": "oracleDeployPrice",
207
- "type": "uint128"
208
- },
209
- {
210
- "internalType": "uint8",
211
- "name": "oracleFactoryShare",
212
- "type": "uint8"
213
- }
214
- ],
215
- "stateMutability": "view",
216
- "type": "function"
217
- },
218
- {
219
- "inputs": [
220
- {
221
- "internalType": "uint256",
222
- "name": "_recommendedUpdateDuration",
223
- "type": "uint256"
224
- },
225
- {
226
- "internalType": "uint256",
227
- "name": "_dataUpdatePrice",
228
- "type": "uint256"
229
- },
230
- {
231
- "internalType": "bytes",
232
- "name": "_initialData",
233
- "type": "bytes"
234
- }
235
- ],
236
- "name": "deployOracle",
237
- "outputs": [],
238
- "stateMutability": "payable",
239
- "type": "function"
240
- },
241
- {
242
- "inputs": [],
243
- "name": "getAllOracles",
244
- "outputs": [
245
- {
246
- "internalType": "address[]",
247
- "name": "",
248
- "type": "address[]"
249
- }
250
- ],
251
- "stateMutability": "view",
252
- "type": "function"
253
- },
254
- {
255
- "inputs": [
256
- {
257
- "internalType": "uint256",
258
- "name": "offset",
259
- "type": "uint256"
260
- },
261
- {
262
- "internalType": "uint256",
263
- "name": "limit",
264
- "type": "uint256"
265
- }
266
- ],
267
- "name": "getAllOracles",
268
- "outputs": [
269
- {
270
- "internalType": "address[]",
271
- "name": "",
272
- "type": "address[]"
273
- },
274
- {
275
- "internalType": "uint256",
276
- "name": "total",
277
- "type": "uint256"
278
- }
279
- ],
280
- "stateMutability": "view",
281
- "type": "function"
282
- },
283
- {
284
- "inputs": [
285
- {
286
- "internalType": "address",
287
- "name": "oracleAddress",
288
- "type": "address"
289
- }
290
- ],
291
- "name": "getOracleInfo",
292
- "outputs": [
293
- {
294
- "internalType": "address",
295
- "name": "provider",
296
- "type": "address"
297
- },
298
- {
299
- "internalType": "uint64",
300
- "name": "createdAt",
301
- "type": "uint64"
302
- },
303
- {
304
- "internalType": "bool",
305
- "name": "isActive",
306
- "type": "bool"
307
- }
308
- ],
309
- "stateMutability": "view",
310
- "type": "function"
311
- },
312
- {
313
- "inputs": [
314
- {
315
- "internalType": "address",
316
- "name": "provider",
317
- "type": "address"
318
- },
319
- {
320
- "internalType": "uint256",
321
- "name": "offset",
322
- "type": "uint256"
323
- },
324
- {
325
- "internalType": "uint256",
326
- "name": "limit",
327
- "type": "uint256"
328
- }
329
- ],
330
- "name": "getProviderOracles",
331
- "outputs": [
332
- {
333
- "internalType": "address[]",
334
- "name": "",
335
- "type": "address[]"
336
- },
337
- {
338
- "internalType": "uint256",
339
- "name": "total",
340
- "type": "uint256"
341
- }
342
- ],
343
- "stateMutability": "view",
344
- "type": "function"
345
- },
346
- {
347
- "inputs": [
348
- {
349
- "internalType": "address",
350
- "name": "provider",
351
- "type": "address"
352
- }
353
- ],
354
- "name": "getProviderOracles",
355
- "outputs": [
356
- {
357
- "internalType": "address[]",
358
- "name": "",
359
- "type": "address[]"
360
- }
361
- ],
362
- "stateMutability": "view",
363
- "type": "function"
364
- },
365
- {
366
- "inputs": [
367
- {
368
- "internalType": "uint256",
369
- "name": "",
370
- "type": "uint256"
371
- }
372
- ],
373
- "name": "oracleList",
374
- "outputs": [
375
- {
376
- "internalType": "address",
377
- "name": "",
378
- "type": "address"
379
- }
380
- ],
381
- "stateMutability": "view",
382
- "type": "function"
383
- },
384
- {
385
- "inputs": [
386
- {
387
- "internalType": "address",
388
- "name": "",
389
- "type": "address"
390
- }
391
- ],
392
- "name": "oracles",
393
- "outputs": [
394
- {
395
- "internalType": "address",
396
- "name": "provider",
397
- "type": "address"
398
- },
399
- {
400
- "internalType": "uint64",
401
- "name": "createdAt",
402
- "type": "uint64"
403
- },
404
- {
405
- "internalType": "bool",
406
- "name": "isActive",
407
- "type": "bool"
408
- }
409
- ],
410
- "stateMutability": "view",
411
- "type": "function"
412
- },
413
- {
414
- "inputs": [],
415
- "name": "owner",
416
- "outputs": [
417
- {
418
- "internalType": "address",
419
- "name": "",
420
- "type": "address"
421
- }
422
- ],
423
- "stateMutability": "view",
424
- "type": "function"
425
- },
426
- {
427
- "inputs": [
428
- {
429
- "internalType": "address",
430
- "name": "",
431
- "type": "address"
432
- },
433
- {
434
- "internalType": "uint256",
435
- "name": "",
436
- "type": "uint256"
437
- }
438
- ],
439
- "name": "providerOracles",
440
- "outputs": [
441
- {
442
- "internalType": "address",
443
- "name": "",
444
- "type": "address"
445
- }
446
- ],
447
- "stateMutability": "view",
448
- "type": "function"
449
- },
450
- {
451
- "inputs": [],
452
- "name": "renounceOwnership",
453
- "outputs": [],
454
- "stateMutability": "nonpayable",
455
- "type": "function"
456
- },
457
- {
458
- "inputs": [
459
- {
460
- "internalType": "address",
461
- "name": "oracleAddress",
462
- "type": "address"
463
- },
464
- {
465
- "internalType": "uint256",
466
- "name": "_dataUpdatePrice",
467
- "type": "uint256"
468
- }
469
- ],
470
- "name": "setOracleDataUpdatePrice",
471
- "outputs": [],
472
- "stateMutability": "nonpayable",
473
- "type": "function"
474
- },
475
- {
476
- "inputs": [
477
- {
478
- "internalType": "address",
479
- "name": "oracleAddress",
480
- "type": "address"
481
- },
482
- {
483
- "internalType": "bool",
484
- "name": "_isActive",
485
- "type": "bool"
486
- }
487
- ],
488
- "name": "setOracleStatus",
489
- "outputs": [],
490
- "stateMutability": "nonpayable",
491
- "type": "function"
492
- },
493
- {
494
- "inputs": [
495
- {
496
- "internalType": "address",
497
- "name": "newOwner",
498
- "type": "address"
499
- }
500
- ],
501
- "name": "transferOwnership",
502
- "outputs": [],
503
- "stateMutability": "nonpayable",
504
- "type": "function"
505
- },
506
- {
507
- "inputs": [
508
- {
509
- "internalType": "uint128",
510
- "name": "_oracleDeployPrice",
511
- "type": "uint128"
512
- },
513
- {
514
- "internalType": "uint8",
515
- "name": "_oracleFactoryShare",
516
- "type": "uint8"
517
- }
518
- ],
519
- "name": "updateConfig",
520
- "outputs": [],
521
- "stateMutability": "nonpayable",
522
- "type": "function"
523
- },
524
- {
525
- "stateMutability": "payable",
526
- "type": "receive"
527
- }
528
- ] as const;
529
-
530
- const _bytecode = "0x608060405234801561000f575f5ffd5b506040516147d03803806147d083398181016040528101906100319190610271565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009991906102bc565b60405180910390fd5b6100b18161015260201b60201c565b5060018081905550604051806040016040528066b1a2bc2ec500006fffffffffffffffffffffffffffffffff168152602001601460ff1681525060025f820151815f015f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506020820151815f0160106101000a81548160ff021916908360ff160217905550905050506102d5565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61024082610217565b9050919050565b61025081610236565b811461025a575f5ffd5b50565b5f8151905061026b81610247565b92915050565b5f6020828403121561028657610285610213565b5b5f6102938482850161025d565b91505092915050565b5f6102a682610217565b9050919050565b6102b68161029c565b82525050565b5f6020820190506102cf5f8301846102ad565b92915050565b6144ee806102e25f395ff3fe608060405260043610610101575f3560e01c806379502c5511610094578063b6ad659211610063578063b6ad659214610363578063bca86af81461038b578063bfdb6b04146103b5578063ed128a10146103f3578063f2fde38b1461041b5761011a565b806379502c55146102935780638da5cb5b146102be578063979c6167146102e8578063addd5099146103255761011a565b80636269cf8a116100d05780636269cf8a146101da57806365a6bb2914610217578063715018a6146102415780637907fdca146102575761011a565b80631ae11e261461011e578063239aad0d14610146578063565a21c5146101825780635ccba2aa1461019e5761011a565b3661011a575f3411156101185761011734610443565b5b005b5f5ffd5b348015610129575f5ffd5b50610144600480360381019061013f91906119b4565b6104d1565b005b348015610151575f5ffd5b5061016c60048036038101906101679190611a25565b6107fa565b6040516101799190611a5f565b60405180910390f35b61019c60048036038101906101979190611ad9565b610835565b005b3480156101a9575f5ffd5b506101c460048036038101906101bf9190611b4a565b610c4c565b6040516101d19190611a5f565b60405180910390f35b3480156101e5575f5ffd5b5061020060048036038101906101fb9190611b88565b610c94565b60405161020e929190611c9e565b60405180910390f35b348015610222575f5ffd5b5061022b610e6a565b6040516102389190611ccc565b60405180910390f35b34801561024c575f5ffd5b50610255610ef5565b005b348015610262575f5ffd5b5061027d60048036038101906102789190611cec565b610f08565b60405161028a9190611ccc565b60405180910390f35b34801561029e575f5ffd5b506102a7610fd0565b6040516102b5929190611d5c565b60405180910390f35b3480156102c9575f5ffd5b506102d2611008565b6040516102df9190611a5f565b60405180910390f35b3480156102f3575f5ffd5b5061030e60048036038101906103099190611d83565b61102f565b60405161031c929190611c9e565b60405180910390f35b348015610330575f5ffd5b5061034b60048036038101906103469190611cec565b6111c4565b60405161035a93929190611df2565b60405180910390f35b34801561036e575f5ffd5b5061038960048036038101906103849190611e7b565b611228565b005b348015610396575f5ffd5b5061039f61128b565b6040516103ac9190611eb9565b60405180910390f35b3480156103c0575f5ffd5b506103db60048036038101906103d69190611cec565b611291565b6040516103ea93929190611df2565b60405180910390f35b3480156103fe575f5ffd5b5061041960048036038101906104149190611b4a565b61146a565b005b348015610426575f5ffd5b50610441600480360381019061043c9190611cec565b6115ac565b005b5f6002826104519190611f2c565b905061049081733f2e72283f1e29b7cb4402511c41b60fb4900b5773ffffffffffffffffffffffffffffffffffffffff1661163090919063ffffffff16565b6104cd8173f0b5563971c60d2dc4407d1d85c9c3d2fc06726e73ffffffffffffffffffffffffffffffffffffffff1661163090919063ffffffff16565b5050565b6104d9611772565b815f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036105a857806040517f0be91a0600000000000000000000000000000000000000000000000000000000815260040161059f9190611a5f565b60405180910390fd5b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01601c9054906101000a900460ff169050821515811515146107c2578260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01601c6101000a81548160ff0219169083151502179055508261067a5760045f81548092919061067190611f5c565b91905055610691565b60045f81548092919061068c90611f83565b919050555b508373ffffffffffffffffffffffffffffffffffffffff16634d4061ec846040518263ffffffff1660e01b81526004016106cb9190611fca565b5f604051808303815f87803b1580156106e2575f5ffd5b505af11580156106f4573d5f5f3e3d5ffd5b5050505060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f3208d6325311d4e408c9c30106ec97bd8847ae44431db95b71a86ce6a2a256ca85426040516107b5929190611fe3565b60405180910390a36107f4565b6040517fe79eac9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60038181548110610809575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61083d6117f9565b60025f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff163410156108d45760025f015f9054906101000a90046fffffffffffffffffffffffffffffffff16346040517fb99e2ab70000000000000000000000000000000000000000000000000000000081526004016108cb929190612043565b60405180910390fd5b60025f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1634111561096b5760025f015f9054906101000a90046fffffffffffffffffffffffffffffffff16346040517f08aed925000000000000000000000000000000000000000000000000000000008152600401610962929190612043565b60405180910390fd5b5f3390505f85858585853060405161098290611910565b610991969594939291906120c4565b604051809103905ff0801580156109aa573d5f5f3e3d5ffd5b50905060405180606001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681526020016001151581525060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151815f0160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506040820151815f01601c6101000a81548160ff02191690831515021790555090505060045f815480929190610ace90611f83565b9190505550600381908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bd734610443565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f342b198a542ed04a4a3ad77cc9d0aa89ce1e4991f0154c69f0da1f551c1ec57e42604051610c349190611eb9565b60405180910390a35050610c4661183f565b50505050565b6006602052815f5260405f208181548110610c65575f80fd5b905f5260205f20015f915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60605f5f60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905080805490509150818510610d36575f67ffffffffffffffff811115610cff57610cfe61211e565b5b604051908082528060200260200182016040528015610d2d5781602001602082028036833780820191505090505b50925050610e62565b5f8486610d43919061214b565b905082811115610d51578290505b5f8682610d5e919061217e565b90505f8167ffffffffffffffff811115610d7b57610d7a61211e565b5b604051908082528060200260200182016040528015610da95781602001602082028036833780820191505090505b5090505f5f90505b82811015610e595784818a610dc6919061214b565b81548110610dd757610dd66121b1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110610e1257610e116121b1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610db1565b50809550505050505b935093915050565b60606003805480602002602001604051908101604052809291908181526020018280548015610eeb57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610ea2575b5050505050905090565b610efd611772565b610f065f611848565b565b606060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480602002602001604051908101604052809291908181526020018280548015610fc457602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f7b575b50505050509050919050565b6002805f015f9054906101000a90046fffffffffffffffffffffffffffffffff1690805f0160109054906101000a900460ff16905082565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60605f6003805490509050808410611091575f67ffffffffffffffff81111561105b5761105a61211e565b5b6040519080825280602002602001820160405280156110895781602001602082028036833780820191505090505b5091506111bd565b5f838561109e919061214b565b9050818111156110ac578190505b5f85826110b9919061217e565b90505f8167ffffffffffffffff8111156110d6576110d561211e565b5b6040519080825280602002602001820160405280156111045781602001602082028036833780820191505090505b5090505f5f90505b828110156111b55760038189611122919061214b565b81548110611133576111326121b1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682828151811061116e5761116d6121b1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061110c565b508094505050505b9250929050565b6005602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690805f0160149054906101000a900467ffffffffffffffff1690805f01601c9054906101000a900460ff16905083565b611230611772565b8160025f015f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508060025f0160106101000a81548160ff021916908360ff1602179055505050565b60045481565b5f5f5f835f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361136357806040517f0be91a0600000000000000000000000000000000000000000000000000000000815260040161135a9190611a5f565b60405180910390fd5b5f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060600160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020015f820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020015f8201601c9054906101000a900460ff1615151515815250509050805f01518160200151826040015194509450945050509193909250565b611472611772565b815f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361154157806040517f0be91a060000000000000000000000000000000000000000000000000000000081526004016115389190611a5f565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663118d9330836040518263ffffffff1660e01b815260040161157a9190611eb9565b5f604051808303815f87803b158015611591575f5ffd5b505af11580156115a3573d5f5f3e3d5ffd5b50505050505050565b6115b4611772565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611624575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161161b9190611a5f565b60405180910390fd5b61162d81611848565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611695576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81036116ce576040517f8b12710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516116f39061220b565b5f6040518083038185875af1925050503d805f811461172d576040519150601f19603f3d011682016040523d82523d5f602084013e611732565b606091505b505090508061176d576040517f3d56f70700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b61177a611909565b73ffffffffffffffffffffffffffffffffffffffff16611798611008565b73ffffffffffffffffffffffffffffffffffffffff16146117f7576117bb611909565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117ee9190611a5f565b60405180910390fd5b565b600260015403611835576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60018081905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b6122998061222083390190565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61194e82611925565b9050919050565b61195e81611944565b8114611968575f5ffd5b50565b5f8135905061197981611955565b92915050565b5f8115159050919050565b6119938161197f565b811461199d575f5ffd5b50565b5f813590506119ae8161198a565b92915050565b5f5f604083850312156119ca576119c961191d565b5b5f6119d78582860161196b565b92505060206119e8858286016119a0565b9150509250929050565b5f819050919050565b611a04816119f2565b8114611a0e575f5ffd5b50565b5f81359050611a1f816119fb565b92915050565b5f60208284031215611a3a57611a3961191d565b5b5f611a4784828501611a11565b91505092915050565b611a5981611944565b82525050565b5f602082019050611a725f830184611a50565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112611a9957611a98611a78565b5b8235905067ffffffffffffffff811115611ab657611ab5611a7c565b5b602083019150836001820283011115611ad257611ad1611a80565b5b9250929050565b5f5f5f5f60608587031215611af157611af061191d565b5b5f611afe87828801611a11565b9450506020611b0f87828801611a11565b935050604085013567ffffffffffffffff811115611b3057611b2f611921565b5b611b3c87828801611a84565b925092505092959194509250565b5f5f60408385031215611b6057611b5f61191d565b5b5f611b6d8582860161196b565b9250506020611b7e85828601611a11565b9150509250929050565b5f5f5f60608486031215611b9f57611b9e61191d565b5b5f611bac8682870161196b565b9350506020611bbd86828701611a11565b9250506040611bce86828701611a11565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611c0a81611944565b82525050565b5f611c1b8383611c01565b60208301905092915050565b5f602082019050919050565b5f611c3d82611bd8565b611c478185611be2565b9350611c5283611bf2565b805f5b83811015611c82578151611c698882611c10565b9750611c7483611c27565b925050600181019050611c55565b5085935050505092915050565b611c98816119f2565b82525050565b5f6040820190508181035f830152611cb68185611c33565b9050611cc56020830184611c8f565b9392505050565b5f6020820190508181035f830152611ce48184611c33565b905092915050565b5f60208284031215611d0157611d0061191d565b5b5f611d0e8482850161196b565b91505092915050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b611d3b81611d17565b82525050565b5f60ff82169050919050565b611d5681611d41565b82525050565b5f604082019050611d6f5f830185611d32565b611d7c6020830184611d4d565b9392505050565b5f5f60408385031215611d9957611d9861191d565b5b5f611da685828601611a11565b9250506020611db785828601611a11565b9150509250929050565b5f67ffffffffffffffff82169050919050565b611ddd81611dc1565b82525050565b611dec8161197f565b82525050565b5f606082019050611e055f830186611a50565b611e126020830185611dd4565b611e1f6040830184611de3565b949350505050565b611e3081611d17565b8114611e3a575f5ffd5b50565b5f81359050611e4b81611e27565b92915050565b611e5a81611d41565b8114611e64575f5ffd5b50565b5f81359050611e7581611e51565b92915050565b5f5f60408385031215611e9157611e9061191d565b5b5f611e9e85828601611e3d565b9250506020611eaf85828601611e67565b9150509250929050565b5f602082019050611ecc5f830184611c8f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f36826119f2565b9150611f41836119f2565b925082611f5157611f50611ed2565b5b828204905092915050565b5f611f66826119f2565b91505f8203611f7857611f77611eff565b5b600182039050919050565b5f611f8d826119f2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611fbf57611fbe611eff565b5b600182019050919050565b5f602082019050611fdd5f830184611de3565b92915050565b5f604082019050611ff65f830185611de3565b6120036020830184611c8f565b9392505050565b5f819050919050565b5f61202d61202861202384611d17565b61200a565b6119f2565b9050919050565b61203d81612013565b82525050565b5f6040820190506120565f830185612034565b6120636020830184611c8f565b9392505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6120a3838561206a565b93506120b083858461207a565b6120b983612088565b840190509392505050565b5f60a0820190506120d75f830189611c8f565b6120e46020830188611c8f565b81810360408301526120f7818688612098565b90506121066060830185611a50565b6121136080830184611a50565b979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f612155826119f2565b9150612160836119f2565b925082820190508082111561217857612177611eff565b5b92915050565b5f612188826119f2565b9150612193836119f2565b92508282039050818111156121ab576121aa611eff565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b50565b5f6121f65f836121de565b9150612201826121e8565b5f82019050919050565b5f612215826121eb565b915081905091905056fe60c06040526001805f6101000a81548160ff021916908315150217905550348015610028575f5ffd5b50604051612299380380612299833981810160405281019061004a919061052f565b60015f819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806100b657505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156100ed576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff163b1461013d576040517f7305bdbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361018d576040517f14b9535000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505083600381905550426004819055508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508460058190555061021c8360045461022660201b60201c565b50505050506109ff565b5f825103610260576040517f23e6b99500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611400825111156102ad5781516114006040517f711f64300000000000000000000000000000000000000000000000000000000081526004016102a49291906105d1565b60405180910390fd5b604051806040016040528083815260200182815250600660ce54606481106102d8576102d76105f8565b5b600202015f820151815f0190816102ef919061082c565b50602082015181600101559050506064600160ce5461030e9190610928565b6103189190610988565b60ce81905550606460cf5410156103415760cf5f81548092919061033b906109b8565b91905055505b8160029081610350919061082c565b505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61037881610366565b8114610382575f5ffd5b50565b5f815190506103938161036f565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103e7826103a1565b810181811067ffffffffffffffff82111715610406576104056103b1565b5b80604052505050565b5f610418610355565b905061042482826103de565b919050565b5f67ffffffffffffffff821115610443576104426103b1565b5b61044c826103a1565b9050602081019050919050565b8281835e5f83830152505050565b5f61047961047484610429565b61040f565b9050828152602081018484840111156104955761049461039d565b5b6104a0848285610459565b509392505050565b5f82601f8301126104bc576104bb610399565b5b81516104cc848260208601610467565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104fe826104d5565b9050919050565b61050e816104f4565b8114610518575f5ffd5b50565b5f8151905061052981610505565b92915050565b5f5f5f5f5f60a086880312156105485761054761035e565b5b5f61055588828901610385565b955050602061056688828901610385565b945050604086015167ffffffffffffffff81111561058757610586610362565b5b610593888289016104a8565b93505060606105a48882890161051b565b92505060806105b58882890161051b565b9150509295509295909350565b6105cb81610366565b82525050565b5f6040820190506105e45f8301856105c2565b6105f160208301846105c2565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061067357607f821691505b6020821081036106865761068561062f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106ad565b6106f286836106ad565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61072d61072861072384610366565b61070a565b610366565b9050919050565b5f819050919050565b61074683610713565b61075a61075282610734565b8484546106b9565b825550505050565b5f5f905090565b610771610762565b61077c81848461073d565b505050565b5b8181101561079f576107945f82610769565b600181019050610782565b5050565b601f8211156107e4576107b58161068c565b6107be8461069e565b810160208510156107cd578190505b6107e16107d98561069e565b830182610781565b50505b505050565b5f82821c905092915050565b5f6108045f19846008026107e9565b1980831691505092915050565b5f61081c83836107f5565b9150826002028217905092915050565b61083582610625565b67ffffffffffffffff81111561084e5761084d6103b1565b5b610858825461065c565b6108638282856107a3565b5f60209050601f831160018114610894575f8415610882578287015190505b61088c8582610811565b8655506108f3565b601f1984166108a28661068c565b5f5b828110156108c9578489015182556001820191506020850194506020810190506108a4565b868310156108e657848901516108e2601f8916826107f5565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61093282610366565b915061093d83610366565b9250828201905080821115610955576109546108fb565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61099282610366565b915061099d83610366565b9250826109ad576109ac61095b565b5b828206905092915050565b5f6109c282610366565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036109f4576109f36108fb565b5b600182019050919050565b60805160a051611848610a515f395f81816103bb0152818161054f01528181610853015281816109ec0152610a7a01525f818161039701528181610529015281816106f101526107cd01526118485ff3fe6080604052600436106100f2575f3560e01c80633bc5de3011610089578063a7a38f0b11610058578063a7a38f0b146102ea578063b334b63414610327578063bb4013d31461034f578063c45a01551461036b576100f2565b80633bc5de3014610244578063483d45bd1461026e5780634d4061ec146102985780639c5f9481146102c0576100f2565b806322fce66f116100c557806322fce66f1461019c5780632c20dc89146101c65780632fbf8d2a146101f05780633a9c9ffc1461021a576100f2565b8063085d4883146100f6578063118d93301461012057806314bcec9f1461014857806322f3e2d414610172575b5f5ffd5b348015610101575f5ffd5b5061010a610395565b6040516101179190610e70565b60405180910390f35b34801561012b575f5ffd5b5061014660048036038101906101419190610ec4565b6103b9565b005b348015610153575f5ffd5b5061015c610448565b6040516101699190610efe565b60405180910390f35b34801561017d575f5ffd5b5061018661044e565b6040516101939190610f31565b60405180910390f35b3480156101a7575f5ffd5b506101b0610460565b6040516101bd9190610efe565b60405180910390f35b3480156101d1575f5ffd5b506101da610466565b6040516101e79190610efe565b60405180910390f35b3480156101fb575f5ffd5b5061020461046c565b6040516102119190610efe565b60405180910390f35b348015610225575f5ffd5b5061022e610472565b60405161023b9190610efe565b60405180910390f35b34801561024f575f5ffd5b50610258610478565b6040516102659190610fba565b60405180910390f35b348015610279575f5ffd5b50610282610526565b60405161028f9190610e70565b60405180910390f35b3480156102a3575f5ffd5b506102be60048036038101906102b99190611004565b61054d565b005b3480156102cb575f5ffd5b506102d46105ee565b6040516102e19190610fba565b60405180910390f35b3480156102f5575f5ffd5b50610310600480360381019061030b9190610ec4565b610642565b60405161031e92919061102f565b60405180910390f35b348015610332575f5ffd5b5061034d60048036038101906103489190610ec4565b6106ef565b005b610369600480360381019061036491906110be565b61077e565b005b348015610376575f5ffd5b5061037f610a78565b60405161038c9190611164565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461043e576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060038190555050565b60045481565b60015f9054906101000a900460ff1681565b61140081565b60035481565b60055481565b60cf5481565b606060015f9054906101000a900460ff166104bf576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554600454426104d091906111aa565b1115610519576004546005546040517f72fc46a70000000000000000000000000000000000000000000000000000000081526004016105109291906111dd565b60405180910390fd5b610521610a9c565b905090565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105d2576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060015f6101000a81548160ff02191690831515021790555050565b606060015f9054906101000a900460ff16610635576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61063d610a9c565b905090565b60068160648110610651575f80fd5b600202015f91509050805f01805461066890611231565b80601f016020809104026020016040519081016040528092919081815260200182805461069490611231565b80156106df5780601f106106b6576101008083540402835291602001916106df565b820191905f5260205f20905b8154815290600101906020018083116106c257829003601f168201915b5050505050908060010154905082565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610774576040517f7a4443f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060058190555050565b610786610b73565b60015f9054906101000a900460ff166107cb576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610850576040517f7a4443f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379502c556040518163ffffffff1660e01b81526004016040805180830381865afa1580156108b9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dd91906112dc565b60ff169150505f6064826003546108f4919061131a565b6108fe9190611388565b9050803410156109475780346040517fb99e2ab700000000000000000000000000000000000000000000000000000000815260040161093e9291906111dd565b60405180910390fd5b8034111561098e5780346040517f08aed9250000000000000000000000000000000000000000000000000000000081526004016109859291906111dd565b60405180910390fd5b5f429050806004819055506109e685858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505082610bb7565b610a2f827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610ce690919063ffffffff16565b7f60badeea04f31d7e2d2b86b618aaddc0a3239fa5b361b407b25d3f1615d577bf600282604051610a6192919061144b565b60405180910390a1505050610a74610e28565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60605f60028054610aac90611231565b905003610ae5576040517f779619da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028054610af290611231565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1e90611231565b8015610b695780601f10610b4057610100808354040283529160200191610b69565b820191905f5260205f20905b815481529060010190602001808311610b4c57829003601f168201915b5050505050905090565b60025f5403610bae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f81905550565b5f825103610bf1576040517f23e6b99500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61140082511115610c3e5781516114006040517f711f6430000000000000000000000000000000000000000000000000000000008152600401610c359291906111dd565b60405180910390fd5b604051806040016040528083815260200182815250600660ce5460648110610c6957610c68611479565b5b600202015f820151815f019081610c809190611658565b50602082015181600101559050506064600160ce54610c9f9190611727565b610ca9919061175a565b60ce81905550606460cf541015610cd25760cf5f815480929190610ccc9061178a565b91905055505b8160029081610ce19190611658565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d4b576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8103610d84576040517f8b12710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610da9906117fe565b5f6040518083038185875af1925050503d805f8114610de3576040519150601f19603f3d011682016040523d82523d5f602084013e610de8565b606091505b5050905080610e23576040517f3d56f70700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60015f81905550565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e5a82610e31565b9050919050565b610e6a81610e50565b82525050565b5f602082019050610e835f830184610e61565b92915050565b5f5ffd5b5f5ffd5b5f819050919050565b610ea381610e91565b8114610ead575f5ffd5b50565b5f81359050610ebe81610e9a565b92915050565b5f60208284031215610ed957610ed8610e89565b5b5f610ee684828501610eb0565b91505092915050565b610ef881610e91565b82525050565b5f602082019050610f115f830184610eef565b92915050565b5f8115159050919050565b610f2b81610f17565b82525050565b5f602082019050610f445f830184610f22565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610f8c82610f4a565b610f968185610f54565b9350610fa6818560208601610f64565b610faf81610f72565b840191505092915050565b5f6020820190508181035f830152610fd28184610f82565b905092915050565b610fe381610f17565b8114610fed575f5ffd5b50565b5f81359050610ffe81610fda565b92915050565b5f6020828403121561101957611018610e89565b5b5f61102684828501610ff0565b91505092915050565b5f6040820190508181035f8301526110478185610f82565b90506110566020830184610eef565b9392505050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261107e5761107d61105d565b5b8235905067ffffffffffffffff81111561109b5761109a611061565b5b6020830191508360018202830111156110b7576110b6611065565b5b9250929050565b5f5f602083850312156110d4576110d3610e89565b5b5f83013567ffffffffffffffff8111156110f1576110f0610e8d565b5b6110fd85828601611069565b92509250509250929050565b5f819050919050565b5f61112c61112761112284610e31565b611109565b610e31565b9050919050565b5f61113d82611112565b9050919050565b5f61114e82611133565b9050919050565b61115e81611144565b82525050565b5f6020820190506111775f830184611155565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6111b482610e91565b91506111bf83610e91565b92508282039050818111156111d7576111d661117d565b5b92915050565b5f6040820190506111f05f830185610eef565b6111fd6020830184610eef565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061124857607f821691505b60208210810361125b5761125a611204565b5b50919050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b61128581611261565b811461128f575f5ffd5b50565b5f815190506112a08161127c565b92915050565b5f60ff82169050919050565b6112bb816112a6565b81146112c5575f5ffd5b50565b5f815190506112d6816112b2565b92915050565b5f5f604083850312156112f2576112f1610e89565b5b5f6112ff85828601611292565b9250506020611310858286016112c8565b9150509250929050565b5f61132482610e91565b915061132f83610e91565b925082820261133d81610e91565b915082820484148315176113545761135361117d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61139282610e91565b915061139d83610e91565b9250826113ad576113ac61135b565b5b828204905092915050565b5f819050815f5260205f209050919050565b5f81546113d681611231565b6113e08186610f54565b9450600182165f81146113fa576001811461141057611442565b60ff198316865281151560200286019350611442565b611419856113b8565b5f5b8381101561143a5781548189015260018201915060208101905061141b565b808801955050505b50505092915050565b5f6040820190508181035f83015261146381856113ca565b90506114726020830184610eef565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261151d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826114e2565b61152786836114e2565b95508019841693508086168417925050509392505050565b5f61155961155461154f84610e91565b611109565b610e91565b9050919050565b5f819050919050565b6115728361153f565b61158661157e82611560565b8484546114ee565b825550505050565b5f5f905090565b61159d61158e565b6115a8818484611569565b505050565b5b818110156115cb576115c05f82611595565b6001810190506115ae565b5050565b601f821115611610576115e1816113b8565b6115ea846114d3565b810160208510156115f9578190505b61160d611605856114d3565b8301826115ad565b50505b505050565b5f82821c905092915050565b5f6116305f1984600802611615565b1980831691505092915050565b5f6116488383611621565b9150826002028217905092915050565b61166182610f4a565b67ffffffffffffffff81111561167a576116796114a6565b5b6116848254611231565b61168f8282856115cf565b5f60209050601f8311600181146116c0575f84156116ae578287015190505b6116b8858261163d565b86555061171f565b601f1984166116ce866113b8565b5f5b828110156116f5578489015182556001820191506020850194506020810190506116d0565b86831015611712578489015161170e601f891682611621565b8355505b6001600288020188555050505b505050505050565b5f61173182610e91565b915061173c83610e91565b92508282019050808211156117545761175361117d565b5b92915050565b5f61176482610e91565b915061176f83610e91565b92508261177f5761177e61135b565b5b828206905092915050565b5f61179482610e91565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117c6576117c561117d565b5b600182019050919050565b5f81905092915050565b50565b5f6117e95f836117d1565b91506117f4826117db565b5f82019050919050565b5f611808826117de565b915081905091905056fea264697066735822122014107d58dae22172c21d0f5e6e8da206265291680004b9ae5e495511e2e29e7764736f6c634300081e0033a26469706673582212204e0b3d702e3a92901379cd934b92b550c0cecdab4b8f6605bf4857640a76fbfe64736f6c634300081e0033";
531
-
532
-
533
- type OracleFactoryConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
534
-
535
- const isSuperArgs = (xs: OracleFactoryConstructorParams): xs is ConstructorParameters<typeof ContractFactory> =>
536
- xs.length > 1
537
-
538
-
539
- export class OracleFactory__factory extends ContractFactory {
540
-
541
- constructor(...args: OracleFactoryConstructorParams) {
542
- if (isSuperArgs(args)) {
543
- super(...args);
544
- } else {
545
- super(_abi, _bytecode, args[0]);
546
- }
547
-
548
- }
549
-
550
- override getDeployTransaction(_owner: AddressLike, overrides?: NonPayableOverrides & { from?: string }): Promise<ContractDeployTransaction> {
551
- return super.getDeployTransaction(_owner, overrides || {});
552
- };
553
- override deploy(_owner: AddressLike, overrides?: NonPayableOverrides & { from?: string }) {
554
- return super.deploy(_owner, overrides || {}) as Promise<OracleFactory & {
555
- deploymentTransaction(): ContractTransactionResponse;
556
- }>;
557
- }
558
- override connect(runner: ContractRunner | null): OracleFactory__factory {
559
- return super.connect(runner) as OracleFactory__factory;
560
- }
561
-
562
-
563
- static readonly bytecode = _bytecode;
564
- static readonly abi = _abi;
565
- static createInterface(): OracleFactoryInterface {
566
- return new Interface(_abi) as OracleFactoryInterface;
567
- }
568
-
569
- override attach(address: string | Addressable): OracleFactory {
570
- return super.attach(address) as OracleFactory;
571
- }
572
- static connect(address: string, runner?: ContractRunner | null): OracleFactory {
573
- return new Contract(address, _abi, runner) as unknown as OracleFactory;
574
- }
575
- }
576
-
577
-
578
-