@oceanprotocol/lib 0.20.2 → 1.0.0-next.0

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 (136) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +1 -1
  3. package/artifacts/ERC721Factory.sol/ERC721Factory.json +1164 -0
  4. package/artifacts/addresses/address.json +21 -0
  5. package/artifacts/communityFee/OPFCommunityFeeCollector.sol/OPFCommunityFeeCollector.json +116 -0
  6. package/artifacts/pools/FactoryRouter.sol/FactoryRouter.json +1086 -0
  7. package/artifacts/pools/balancer/BPool.sol/BPool.json +1744 -0
  8. package/artifacts/pools/dispenser/Dispenser.sol/Dispenser.json +358 -0
  9. package/artifacts/pools/fixedRate/FixedRateExchange.sol/FixedRateExchange.json +917 -0
  10. package/artifacts/pools/ssContracts/SideStaking.sol/SideStaking.json +428 -0
  11. package/artifacts/templates/ERC20Template.sol/ERC20Template.json +1382 -0
  12. package/artifacts/templates/ERC20TemplateEnterprise.sol/ERC20TemplateEnterprise.json +1530 -0
  13. package/artifacts/templates/ERC721Template.sol/ERC721Template.json +1534 -0
  14. package/artifacts/utils/mock/MockERC20.sol/MockERC20.json +302 -0
  15. package/artifacts/utils/mock/MockERC20Decimals.sol/MockERC20Decimals.json +302 -0
  16. package/dist/node/lib.js +1 -1
  17. package/dist/node/lib.js.map +1 -1
  18. package/dist/node/lib.module.js +1 -1
  19. package/dist/node/lib.module.js.map +1 -1
  20. package/dist/node/lib.umd.js +1 -1
  21. package/dist/node/lib.umd.js.map +1 -1
  22. package/dist/node/src/@types/Asset.d.ts +36 -0
  23. package/dist/node/{ocean/interfaces → src/@types}/Compute.d.ts +13 -12
  24. package/dist/node/src/@types/DDO/Credentials.d.ts +8 -0
  25. package/dist/node/src/@types/DDO/DDO.d.ts +15 -0
  26. package/dist/node/src/@types/DDO/Event.d.ts +7 -0
  27. package/dist/node/src/@types/DDO/Metadata.d.ts +38 -0
  28. package/dist/node/src/@types/DDO/Service.d.ts +28 -0
  29. package/dist/node/src/@types/FileMetadata.d.ts +8 -0
  30. package/dist/node/src/@types/Provider.d.ts +15 -0
  31. package/dist/node/src/@types/index.d.ts +8 -0
  32. package/dist/node/src/aquarius/Aquarius.d.ts +10 -0
  33. package/dist/node/src/aquarius/index.d.ts +1 -0
  34. package/dist/node/src/factories/NFTFactory.d.ts +70 -0
  35. package/dist/node/src/factories/index.d.ts +1 -0
  36. package/dist/node/src/index.d.ts +8 -0
  37. package/dist/node/src/interfaces/DispenserInterface.d.ts +7 -0
  38. package/dist/node/src/interfaces/Erc20Interface.d.ts +11 -0
  39. package/dist/node/src/interfaces/FixedRateInterface.d.ts +19 -0
  40. package/dist/node/src/interfaces/PoolInterface.d.ts +36 -0
  41. package/dist/node/src/interfaces/RouterInterface.d.ts +12 -0
  42. package/dist/node/src/interfaces/index.d.ts +5 -0
  43. package/dist/node/{models → src/models}/Config.d.ts +10 -7
  44. package/dist/node/src/models/index.d.ts +1 -0
  45. package/dist/node/src/pools/Router.d.ts +46 -0
  46. package/dist/node/src/pools/balancer/Pool.d.ts +73 -0
  47. package/dist/node/src/pools/balancer/index.d.ts +1 -0
  48. package/dist/node/src/pools/dispenser/Dispenser.d.ts +37 -0
  49. package/dist/node/src/pools/dispenser/index.d.ts +1 -0
  50. package/dist/node/src/pools/fixedRate/FixedRateExchange.d.ts +95 -0
  51. package/dist/node/src/pools/fixedRate/index.d.ts +1 -0
  52. package/dist/node/src/pools/index.d.ts +3 -0
  53. package/dist/node/src/pools/ssContracts/SideStaking.d.ts +28 -0
  54. package/dist/node/src/pools/ssContracts/index.d.ts +1 -0
  55. package/dist/node/src/provider/Provider.d.ts +31 -0
  56. package/dist/node/src/provider/index.d.ts +1 -0
  57. package/dist/node/src/tokens/Datatoken.d.ts +77 -0
  58. package/dist/node/src/tokens/NFT.d.ts +57 -0
  59. package/dist/node/src/tokens/index.d.ts +2 -0
  60. package/dist/node/src/utils/ConfigHelper.d.ts +6 -0
  61. package/dist/node/src/utils/Constants.d.ts +1 -0
  62. package/dist/node/src/utils/ContractParams.d.ts +4 -0
  63. package/dist/node/src/utils/ConversionTypeHelper.d.ts +3 -0
  64. package/dist/node/{utils/Datatokens.d.ts → src/utils/DatatokenName.d.ts} +1 -1
  65. package/dist/node/src/utils/DdoHelpers.d.ts +2 -0
  66. package/dist/node/src/utils/FetchHelper.d.ts +5 -0
  67. package/dist/node/src/utils/GasUtils.d.ts +2 -0
  68. package/dist/node/{utils → src/utils}/Logger.d.ts +0 -0
  69. package/dist/node/src/utils/SignatureUtils.d.ts +8 -0
  70. package/dist/node/src/utils/index.d.ts +9 -0
  71. package/docs/beginners_guide.md +2 -2
  72. package/docs/quickstart_simple.md +2 -2
  73. package/package.json +27 -23
  74. package/dist/node/Instantiable.abstract.d.ts +0 -25
  75. package/dist/node/balancer/OceanPool.d.ts +0 -95
  76. package/dist/node/balancer/Pool.d.ts +0 -56
  77. package/dist/node/balancer/PoolFactory.d.ts +0 -15
  78. package/dist/node/datatokens/ContractEvent.d.ts +0 -19
  79. package/dist/node/datatokens/ContractHandler.d.ts +0 -12
  80. package/dist/node/datatokens/Datatokens.d.ts +0 -44
  81. package/dist/node/datatokens/EventHandler.d.ts +0 -19
  82. package/dist/node/datatokens/Network.d.ts +0 -5
  83. package/dist/node/datatokens/Web3Provider.d.ts +0 -5
  84. package/dist/node/datatokens/contracts/ContractBase.d.ts +0 -27
  85. package/dist/node/ddo/DDO.d.ts +0 -36
  86. package/dist/node/ddo/interfaces/AdditionalInformation.d.ts +0 -16
  87. package/dist/node/ddo/interfaces/Authentication.d.ts +0 -4
  88. package/dist/node/ddo/interfaces/BestPrice.d.ts +0 -10
  89. package/dist/node/ddo/interfaces/Consumable.d.ts +0 -5
  90. package/dist/node/ddo/interfaces/Credentials.d.ts +0 -9
  91. package/dist/node/ddo/interfaces/Curation.d.ts +0 -6
  92. package/dist/node/ddo/interfaces/DataTokenInfo.d.ts +0 -10
  93. package/dist/node/ddo/interfaces/EditableMetadata.d.ts +0 -9
  94. package/dist/node/ddo/interfaces/EditableMetadataLinks.d.ts +0 -5
  95. package/dist/node/ddo/interfaces/Event.d.ts +0 -7
  96. package/dist/node/ddo/interfaces/File.d.ts +0 -13
  97. package/dist/node/ddo/interfaces/Metadata.d.ts +0 -15
  98. package/dist/node/ddo/interfaces/MetadataAlgorithm.d.ts +0 -12
  99. package/dist/node/ddo/interfaces/MetadataMain.d.ts +0 -12
  100. package/dist/node/ddo/interfaces/Proof.d.ts +0 -6
  101. package/dist/node/ddo/interfaces/PublicKey.d.ts +0 -8
  102. package/dist/node/ddo/interfaces/PurgatoryData.d.ts +0 -4
  103. package/dist/node/ddo/interfaces/Service.d.ts +0 -99
  104. package/dist/node/ddo/interfaces/ServicePrices.d.ts +0 -4
  105. package/dist/node/ddo/interfaces/Status.d.ts +0 -5
  106. package/dist/node/ddo/interfaces/index.d.ts +0 -17
  107. package/dist/node/dispenser/Dispenser.d.ts +0 -44
  108. package/dist/node/exchange/FixedRateExchange.d.ts +0 -59
  109. package/dist/node/index.d.ts +0 -1
  110. package/dist/node/lib.d.ts +0 -15
  111. package/dist/node/metadatacache/MetadataCache.d.ts +0 -41
  112. package/dist/node/metadatacache/OnChainMetaData.d.ts +0 -31
  113. package/dist/node/ocean/Account.d.ts +0 -16
  114. package/dist/node/ocean/Accounts.d.ts +0 -9
  115. package/dist/node/ocean/Assets.d.ts +0 -56
  116. package/dist/node/ocean/AssetsCredential.d.ts +0 -6
  117. package/dist/node/ocean/Compute.d.ts +0 -75
  118. package/dist/node/ocean/DID.d.ts +0 -8
  119. package/dist/node/ocean/EventAccessControl.d.ts +0 -9
  120. package/dist/node/ocean/Ocean.d.ts +0 -34
  121. package/dist/node/ocean/OceanAuth.d.ts +0 -15
  122. package/dist/node/ocean/Versions.d.ts +0 -25
  123. package/dist/node/ocean/utils/SignatureUtils.d.ts +0 -13
  124. package/dist/node/ocean/utils/Utils.d.ts +0 -8
  125. package/dist/node/ocean/utils/WebServiceConnector.d.ts +0 -16
  126. package/dist/node/provider/Provider.d.ts +0 -56
  127. package/dist/node/utils/AssetResolverHelper.d.ts +0 -8
  128. package/dist/node/utils/ConfigHelper.d.ts +0 -17
  129. package/dist/node/utils/ContractUtils.d.ts +0 -5
  130. package/dist/node/utils/ConversionTypeHelpers.d.ts +0 -8
  131. package/dist/node/utils/GeneratorHelpers.d.ts +0 -1
  132. package/dist/node/utils/PromiseResolver.d.ts +0 -3
  133. package/dist/node/utils/SubscribableObserver.d.ts +0 -12
  134. package/dist/node/utils/SubscribablePromise.d.ts +0 -14
  135. package/dist/node/utils/Timeout.d.ts +0 -1
  136. package/dist/node/utils/index.d.ts +0 -9
@@ -0,0 +1,1086 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "FactoryRouter",
4
+ "sourceName": "contracts/pools/FactoryRouter.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_routerOwner",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_oceanToken",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_bpoolTemplate",
21
+ "type": "address"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_opfCollector",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "internalType": "address[]",
30
+ "name": "_preCreatedPools",
31
+ "type": "address[]"
32
+ }
33
+ ],
34
+ "stateMutability": "nonpayable",
35
+ "type": "constructor"
36
+ },
37
+ {
38
+ "anonymous": false,
39
+ "inputs": [
40
+ {
41
+ "indexed": true,
42
+ "internalType": "address",
43
+ "name": "newBPoolAddress",
44
+ "type": "address"
45
+ },
46
+ {
47
+ "indexed": true,
48
+ "internalType": "address",
49
+ "name": "registeredBy",
50
+ "type": "address"
51
+ },
52
+ {
53
+ "indexed": true,
54
+ "internalType": "address",
55
+ "name": "datatokenAddress",
56
+ "type": "address"
57
+ },
58
+ {
59
+ "indexed": false,
60
+ "internalType": "address",
61
+ "name": "basetokenAddress",
62
+ "type": "address"
63
+ },
64
+ {
65
+ "indexed": false,
66
+ "internalType": "address",
67
+ "name": "bpoolTemplateAddress",
68
+ "type": "address"
69
+ },
70
+ {
71
+ "indexed": false,
72
+ "internalType": "address",
73
+ "name": "ssAddress",
74
+ "type": "address"
75
+ }
76
+ ],
77
+ "name": "BPoolCreated",
78
+ "type": "event"
79
+ },
80
+ {
81
+ "anonymous": false,
82
+ "inputs": [
83
+ {
84
+ "indexed": true,
85
+ "internalType": "address",
86
+ "name": "caller",
87
+ "type": "address"
88
+ },
89
+ {
90
+ "indexed": true,
91
+ "internalType": "address",
92
+ "name": "contractAddress",
93
+ "type": "address"
94
+ }
95
+ ],
96
+ "name": "DispenserContractAdded",
97
+ "type": "event"
98
+ },
99
+ {
100
+ "anonymous": false,
101
+ "inputs": [
102
+ {
103
+ "indexed": true,
104
+ "internalType": "address",
105
+ "name": "caller",
106
+ "type": "address"
107
+ },
108
+ {
109
+ "indexed": true,
110
+ "internalType": "address",
111
+ "name": "contractAddress",
112
+ "type": "address"
113
+ }
114
+ ],
115
+ "name": "DispenserContractRemoved",
116
+ "type": "event"
117
+ },
118
+ {
119
+ "anonymous": false,
120
+ "inputs": [
121
+ {
122
+ "indexed": true,
123
+ "internalType": "address",
124
+ "name": "caller",
125
+ "type": "address"
126
+ },
127
+ {
128
+ "indexed": true,
129
+ "internalType": "address",
130
+ "name": "contractAddress",
131
+ "type": "address"
132
+ }
133
+ ],
134
+ "name": "FactoryContractChanged",
135
+ "type": "event"
136
+ },
137
+ {
138
+ "anonymous": false,
139
+ "inputs": [
140
+ {
141
+ "indexed": true,
142
+ "internalType": "address",
143
+ "name": "caller",
144
+ "type": "address"
145
+ },
146
+ {
147
+ "indexed": true,
148
+ "internalType": "address",
149
+ "name": "contractAddress",
150
+ "type": "address"
151
+ }
152
+ ],
153
+ "name": "FixedRateContractAdded",
154
+ "type": "event"
155
+ },
156
+ {
157
+ "anonymous": false,
158
+ "inputs": [
159
+ {
160
+ "indexed": true,
161
+ "internalType": "address",
162
+ "name": "caller",
163
+ "type": "address"
164
+ },
165
+ {
166
+ "indexed": true,
167
+ "internalType": "address",
168
+ "name": "contractAddress",
169
+ "type": "address"
170
+ }
171
+ ],
172
+ "name": "FixedRateContractRemoved",
173
+ "type": "event"
174
+ },
175
+ {
176
+ "anonymous": false,
177
+ "inputs": [
178
+ {
179
+ "indexed": false,
180
+ "internalType": "address",
181
+ "name": "instance",
182
+ "type": "address"
183
+ }
184
+ ],
185
+ "name": "InstanceDeployed",
186
+ "type": "event"
187
+ },
188
+ {
189
+ "anonymous": false,
190
+ "inputs": [
191
+ {
192
+ "indexed": true,
193
+ "internalType": "address",
194
+ "name": "poolAddress",
195
+ "type": "address"
196
+ },
197
+ {
198
+ "indexed": false,
199
+ "internalType": "bool",
200
+ "name": "isOcean",
201
+ "type": "bool"
202
+ }
203
+ ],
204
+ "name": "NewPool",
205
+ "type": "event"
206
+ },
207
+ {
208
+ "anonymous": false,
209
+ "inputs": [
210
+ {
211
+ "indexed": true,
212
+ "internalType": "address",
213
+ "name": "caller",
214
+ "type": "address"
215
+ },
216
+ {
217
+ "indexed": false,
218
+ "internalType": "uint256",
219
+ "name": "newFee",
220
+ "type": "uint256"
221
+ }
222
+ ],
223
+ "name": "OPFFeeChanged",
224
+ "type": "event"
225
+ },
226
+ {
227
+ "anonymous": false,
228
+ "inputs": [
229
+ {
230
+ "indexed": true,
231
+ "internalType": "address",
232
+ "name": "caller",
233
+ "type": "address"
234
+ },
235
+ {
236
+ "indexed": true,
237
+ "internalType": "address",
238
+ "name": "contractAddress",
239
+ "type": "address"
240
+ }
241
+ ],
242
+ "name": "PoolTemplateAdded",
243
+ "type": "event"
244
+ },
245
+ {
246
+ "anonymous": false,
247
+ "inputs": [
248
+ {
249
+ "indexed": true,
250
+ "internalType": "address",
251
+ "name": "caller",
252
+ "type": "address"
253
+ },
254
+ {
255
+ "indexed": true,
256
+ "internalType": "address",
257
+ "name": "contractAddress",
258
+ "type": "address"
259
+ }
260
+ ],
261
+ "name": "PoolTemplateRemoved",
262
+ "type": "event"
263
+ },
264
+ {
265
+ "anonymous": false,
266
+ "inputs": [
267
+ {
268
+ "indexed": true,
269
+ "internalType": "address",
270
+ "name": "caller",
271
+ "type": "address"
272
+ },
273
+ {
274
+ "indexed": true,
275
+ "internalType": "address",
276
+ "name": "newRouter",
277
+ "type": "address"
278
+ }
279
+ ],
280
+ "name": "RouterChanged",
281
+ "type": "event"
282
+ },
283
+ {
284
+ "anonymous": false,
285
+ "inputs": [
286
+ {
287
+ "indexed": true,
288
+ "internalType": "address",
289
+ "name": "caller",
290
+ "type": "address"
291
+ },
292
+ {
293
+ "indexed": true,
294
+ "internalType": "address",
295
+ "name": "contractAddress",
296
+ "type": "address"
297
+ }
298
+ ],
299
+ "name": "SSContractAdded",
300
+ "type": "event"
301
+ },
302
+ {
303
+ "anonymous": false,
304
+ "inputs": [
305
+ {
306
+ "indexed": true,
307
+ "internalType": "address",
308
+ "name": "caller",
309
+ "type": "address"
310
+ },
311
+ {
312
+ "indexed": true,
313
+ "internalType": "address",
314
+ "name": "contractAddress",
315
+ "type": "address"
316
+ }
317
+ ],
318
+ "name": "SSContractRemoved",
319
+ "type": "event"
320
+ },
321
+ {
322
+ "anonymous": false,
323
+ "inputs": [
324
+ {
325
+ "indexed": true,
326
+ "internalType": "address",
327
+ "name": "caller",
328
+ "type": "address"
329
+ },
330
+ {
331
+ "indexed": true,
332
+ "internalType": "address",
333
+ "name": "token",
334
+ "type": "address"
335
+ }
336
+ ],
337
+ "name": "TokenAdded",
338
+ "type": "event"
339
+ },
340
+ {
341
+ "anonymous": false,
342
+ "inputs": [
343
+ {
344
+ "indexed": true,
345
+ "internalType": "address",
346
+ "name": "caller",
347
+ "type": "address"
348
+ },
349
+ {
350
+ "indexed": true,
351
+ "internalType": "address",
352
+ "name": "token",
353
+ "type": "address"
354
+ }
355
+ ],
356
+ "name": "TokenRemoved",
357
+ "type": "event"
358
+ },
359
+ {
360
+ "inputs": [],
361
+ "name": "BONE",
362
+ "outputs": [
363
+ {
364
+ "internalType": "uint256",
365
+ "name": "",
366
+ "type": "uint256"
367
+ }
368
+ ],
369
+ "stateMutability": "view",
370
+ "type": "function"
371
+ },
372
+ {
373
+ "inputs": [],
374
+ "name": "BPOW_PRECISION",
375
+ "outputs": [
376
+ {
377
+ "internalType": "uint256",
378
+ "name": "",
379
+ "type": "uint256"
380
+ }
381
+ ],
382
+ "stateMutability": "view",
383
+ "type": "function"
384
+ },
385
+ {
386
+ "inputs": [],
387
+ "name": "EXIT_FEE",
388
+ "outputs": [
389
+ {
390
+ "internalType": "uint256",
391
+ "name": "",
392
+ "type": "uint256"
393
+ }
394
+ ],
395
+ "stateMutability": "view",
396
+ "type": "function"
397
+ },
398
+ {
399
+ "inputs": [],
400
+ "name": "INIT_POOL_SUPPLY",
401
+ "outputs": [
402
+ {
403
+ "internalType": "uint256",
404
+ "name": "",
405
+ "type": "uint256"
406
+ }
407
+ ],
408
+ "stateMutability": "view",
409
+ "type": "function"
410
+ },
411
+ {
412
+ "inputs": [],
413
+ "name": "MAX_BOUND_TOKENS",
414
+ "outputs": [
415
+ {
416
+ "internalType": "uint256",
417
+ "name": "",
418
+ "type": "uint256"
419
+ }
420
+ ],
421
+ "stateMutability": "view",
422
+ "type": "function"
423
+ },
424
+ {
425
+ "inputs": [],
426
+ "name": "MAX_BPOW_BASE",
427
+ "outputs": [
428
+ {
429
+ "internalType": "uint256",
430
+ "name": "",
431
+ "type": "uint256"
432
+ }
433
+ ],
434
+ "stateMutability": "view",
435
+ "type": "function"
436
+ },
437
+ {
438
+ "inputs": [],
439
+ "name": "MAX_FEE",
440
+ "outputs": [
441
+ {
442
+ "internalType": "uint256",
443
+ "name": "",
444
+ "type": "uint256"
445
+ }
446
+ ],
447
+ "stateMutability": "view",
448
+ "type": "function"
449
+ },
450
+ {
451
+ "inputs": [],
452
+ "name": "MAX_IN_RATIO",
453
+ "outputs": [
454
+ {
455
+ "internalType": "uint256",
456
+ "name": "",
457
+ "type": "uint256"
458
+ }
459
+ ],
460
+ "stateMutability": "view",
461
+ "type": "function"
462
+ },
463
+ {
464
+ "inputs": [],
465
+ "name": "MAX_OUT_RATIO",
466
+ "outputs": [
467
+ {
468
+ "internalType": "uint256",
469
+ "name": "",
470
+ "type": "uint256"
471
+ }
472
+ ],
473
+ "stateMutability": "view",
474
+ "type": "function"
475
+ },
476
+ {
477
+ "inputs": [],
478
+ "name": "MAX_TOTAL_WEIGHT",
479
+ "outputs": [
480
+ {
481
+ "internalType": "uint256",
482
+ "name": "",
483
+ "type": "uint256"
484
+ }
485
+ ],
486
+ "stateMutability": "view",
487
+ "type": "function"
488
+ },
489
+ {
490
+ "inputs": [],
491
+ "name": "MAX_WEIGHT",
492
+ "outputs": [
493
+ {
494
+ "internalType": "uint256",
495
+ "name": "",
496
+ "type": "uint256"
497
+ }
498
+ ],
499
+ "stateMutability": "view",
500
+ "type": "function"
501
+ },
502
+ {
503
+ "inputs": [],
504
+ "name": "MIN_BALANCE",
505
+ "outputs": [
506
+ {
507
+ "internalType": "uint256",
508
+ "name": "",
509
+ "type": "uint256"
510
+ }
511
+ ],
512
+ "stateMutability": "view",
513
+ "type": "function"
514
+ },
515
+ {
516
+ "inputs": [],
517
+ "name": "MIN_BOUND_TOKENS",
518
+ "outputs": [
519
+ {
520
+ "internalType": "uint256",
521
+ "name": "",
522
+ "type": "uint256"
523
+ }
524
+ ],
525
+ "stateMutability": "view",
526
+ "type": "function"
527
+ },
528
+ {
529
+ "inputs": [],
530
+ "name": "MIN_BPOW_BASE",
531
+ "outputs": [
532
+ {
533
+ "internalType": "uint256",
534
+ "name": "",
535
+ "type": "uint256"
536
+ }
537
+ ],
538
+ "stateMutability": "view",
539
+ "type": "function"
540
+ },
541
+ {
542
+ "inputs": [],
543
+ "name": "MIN_FEE",
544
+ "outputs": [
545
+ {
546
+ "internalType": "uint256",
547
+ "name": "",
548
+ "type": "uint256"
549
+ }
550
+ ],
551
+ "stateMutability": "view",
552
+ "type": "function"
553
+ },
554
+ {
555
+ "inputs": [],
556
+ "name": "MIN_WEIGHT",
557
+ "outputs": [
558
+ {
559
+ "internalType": "uint256",
560
+ "name": "",
561
+ "type": "uint256"
562
+ }
563
+ ],
564
+ "stateMutability": "view",
565
+ "type": "function"
566
+ },
567
+ {
568
+ "inputs": [
569
+ {
570
+ "internalType": "address",
571
+ "name": "_dispenser",
572
+ "type": "address"
573
+ }
574
+ ],
575
+ "name": "addDispenserContract",
576
+ "outputs": [],
577
+ "stateMutability": "nonpayable",
578
+ "type": "function"
579
+ },
580
+ {
581
+ "inputs": [
582
+ {
583
+ "internalType": "address",
584
+ "name": "_factory",
585
+ "type": "address"
586
+ }
587
+ ],
588
+ "name": "addFactory",
589
+ "outputs": [],
590
+ "stateMutability": "nonpayable",
591
+ "type": "function"
592
+ },
593
+ {
594
+ "inputs": [
595
+ {
596
+ "internalType": "address",
597
+ "name": "_fixedRate",
598
+ "type": "address"
599
+ }
600
+ ],
601
+ "name": "addFixedRateContract",
602
+ "outputs": [],
603
+ "stateMutability": "nonpayable",
604
+ "type": "function"
605
+ },
606
+ {
607
+ "inputs": [
608
+ {
609
+ "internalType": "address",
610
+ "name": "oceanTokenAddress",
611
+ "type": "address"
612
+ }
613
+ ],
614
+ "name": "addOceanToken",
615
+ "outputs": [],
616
+ "stateMutability": "nonpayable",
617
+ "type": "function"
618
+ },
619
+ {
620
+ "inputs": [
621
+ {
622
+ "internalType": "address",
623
+ "name": "poolTemplate",
624
+ "type": "address"
625
+ }
626
+ ],
627
+ "name": "addPoolTemplate",
628
+ "outputs": [],
629
+ "stateMutability": "nonpayable",
630
+ "type": "function"
631
+ },
632
+ {
633
+ "inputs": [
634
+ {
635
+ "internalType": "address",
636
+ "name": "_ssContract",
637
+ "type": "address"
638
+ }
639
+ ],
640
+ "name": "addSSContract",
641
+ "outputs": [],
642
+ "stateMutability": "nonpayable",
643
+ "type": "function"
644
+ },
645
+ {
646
+ "inputs": [
647
+ {
648
+ "components": [
649
+ {
650
+ "internalType": "bytes32",
651
+ "name": "exchangeIds",
652
+ "type": "bytes32"
653
+ },
654
+ {
655
+ "internalType": "address",
656
+ "name": "source",
657
+ "type": "address"
658
+ },
659
+ {
660
+ "internalType": "enum FactoryRouter.operationType",
661
+ "name": "operation",
662
+ "type": "uint8"
663
+ },
664
+ {
665
+ "internalType": "address",
666
+ "name": "tokenIn",
667
+ "type": "address"
668
+ },
669
+ {
670
+ "internalType": "uint256",
671
+ "name": "amountsIn",
672
+ "type": "uint256"
673
+ },
674
+ {
675
+ "internalType": "address",
676
+ "name": "tokenOut",
677
+ "type": "address"
678
+ },
679
+ {
680
+ "internalType": "uint256",
681
+ "name": "amountsOut",
682
+ "type": "uint256"
683
+ },
684
+ {
685
+ "internalType": "uint256",
686
+ "name": "maxPrice",
687
+ "type": "uint256"
688
+ },
689
+ {
690
+ "internalType": "uint256",
691
+ "name": "swapMarketFee",
692
+ "type": "uint256"
693
+ },
694
+ {
695
+ "internalType": "address",
696
+ "name": "marketFeeAddress",
697
+ "type": "address"
698
+ }
699
+ ],
700
+ "internalType": "struct FactoryRouter.Operations[]",
701
+ "name": "_operations",
702
+ "type": "tuple[]"
703
+ }
704
+ ],
705
+ "name": "buyDTBatch",
706
+ "outputs": [],
707
+ "stateMutability": "nonpayable",
708
+ "type": "function"
709
+ },
710
+ {
711
+ "inputs": [
712
+ {
713
+ "internalType": "address",
714
+ "name": "_routerOwner",
715
+ "type": "address"
716
+ }
717
+ ],
718
+ "name": "changeRouterOwner",
719
+ "outputs": [],
720
+ "stateMutability": "nonpayable",
721
+ "type": "function"
722
+ },
723
+ {
724
+ "inputs": [
725
+ {
726
+ "internalType": "address",
727
+ "name": "_dispenser",
728
+ "type": "address"
729
+ },
730
+ {
731
+ "internalType": "address",
732
+ "name": "datatoken",
733
+ "type": "address"
734
+ },
735
+ {
736
+ "internalType": "uint256",
737
+ "name": "maxTokens",
738
+ "type": "uint256"
739
+ },
740
+ {
741
+ "internalType": "uint256",
742
+ "name": "maxBalance",
743
+ "type": "uint256"
744
+ },
745
+ {
746
+ "internalType": "address",
747
+ "name": "owner",
748
+ "type": "address"
749
+ },
750
+ {
751
+ "internalType": "address",
752
+ "name": "allowedSwapper",
753
+ "type": "address"
754
+ }
755
+ ],
756
+ "name": "deployDispenser",
757
+ "outputs": [],
758
+ "stateMutability": "nonpayable",
759
+ "type": "function"
760
+ },
761
+ {
762
+ "inputs": [
763
+ {
764
+ "internalType": "address",
765
+ "name": "fixedPriceAddress",
766
+ "type": "address"
767
+ },
768
+ {
769
+ "internalType": "address[]",
770
+ "name": "addresses",
771
+ "type": "address[]"
772
+ },
773
+ {
774
+ "internalType": "uint256[]",
775
+ "name": "uints",
776
+ "type": "uint256[]"
777
+ }
778
+ ],
779
+ "name": "deployFixedRate",
780
+ "outputs": [
781
+ {
782
+ "internalType": "bytes32",
783
+ "name": "exchangeId",
784
+ "type": "bytes32"
785
+ }
786
+ ],
787
+ "stateMutability": "nonpayable",
788
+ "type": "function"
789
+ },
790
+ {
791
+ "inputs": [
792
+ {
793
+ "internalType": "address[2]",
794
+ "name": "tokens",
795
+ "type": "address[2]"
796
+ },
797
+ {
798
+ "internalType": "uint256[]",
799
+ "name": "ssParams",
800
+ "type": "uint256[]"
801
+ },
802
+ {
803
+ "internalType": "uint256[]",
804
+ "name": "swapFees",
805
+ "type": "uint256[]"
806
+ },
807
+ {
808
+ "internalType": "address[]",
809
+ "name": "addresses",
810
+ "type": "address[]"
811
+ }
812
+ ],
813
+ "name": "deployPool",
814
+ "outputs": [
815
+ {
816
+ "internalType": "address",
817
+ "name": "",
818
+ "type": "address"
819
+ }
820
+ ],
821
+ "stateMutability": "nonpayable",
822
+ "type": "function"
823
+ },
824
+ {
825
+ "inputs": [
826
+ {
827
+ "internalType": "address",
828
+ "name": "",
829
+ "type": "address"
830
+ }
831
+ ],
832
+ "name": "dispenser",
833
+ "outputs": [
834
+ {
835
+ "internalType": "bool",
836
+ "name": "",
837
+ "type": "bool"
838
+ }
839
+ ],
840
+ "stateMutability": "view",
841
+ "type": "function"
842
+ },
843
+ {
844
+ "inputs": [],
845
+ "name": "factory",
846
+ "outputs": [
847
+ {
848
+ "internalType": "address",
849
+ "name": "",
850
+ "type": "address"
851
+ }
852
+ ],
853
+ "stateMutability": "view",
854
+ "type": "function"
855
+ },
856
+ {
857
+ "inputs": [
858
+ {
859
+ "internalType": "address",
860
+ "name": "",
861
+ "type": "address"
862
+ }
863
+ ],
864
+ "name": "fixedPrice",
865
+ "outputs": [
866
+ {
867
+ "internalType": "bool",
868
+ "name": "",
869
+ "type": "bool"
870
+ }
871
+ ],
872
+ "stateMutability": "view",
873
+ "type": "function"
874
+ },
875
+ {
876
+ "inputs": [],
877
+ "name": "fixedRate",
878
+ "outputs": [
879
+ {
880
+ "internalType": "address",
881
+ "name": "",
882
+ "type": "address"
883
+ }
884
+ ],
885
+ "stateMutability": "view",
886
+ "type": "function"
887
+ },
888
+ {
889
+ "inputs": [
890
+ {
891
+ "internalType": "address",
892
+ "name": "baseToken",
893
+ "type": "address"
894
+ }
895
+ ],
896
+ "name": "getOPFFee",
897
+ "outputs": [
898
+ {
899
+ "internalType": "uint256",
900
+ "name": "",
901
+ "type": "uint256"
902
+ }
903
+ ],
904
+ "stateMutability": "view",
905
+ "type": "function"
906
+ },
907
+ {
908
+ "inputs": [
909
+ {
910
+ "internalType": "address",
911
+ "name": "poolTemplate",
912
+ "type": "address"
913
+ }
914
+ ],
915
+ "name": "isPoolTemplate",
916
+ "outputs": [
917
+ {
918
+ "internalType": "bool",
919
+ "name": "",
920
+ "type": "bool"
921
+ }
922
+ ],
923
+ "stateMutability": "view",
924
+ "type": "function"
925
+ },
926
+ {
927
+ "inputs": [
928
+ {
929
+ "internalType": "address",
930
+ "name": "",
931
+ "type": "address"
932
+ }
933
+ ],
934
+ "name": "oceanTokens",
935
+ "outputs": [
936
+ {
937
+ "internalType": "bool",
938
+ "name": "",
939
+ "type": "bool"
940
+ }
941
+ ],
942
+ "stateMutability": "view",
943
+ "type": "function"
944
+ },
945
+ {
946
+ "inputs": [],
947
+ "name": "opfCollector",
948
+ "outputs": [
949
+ {
950
+ "internalType": "address",
951
+ "name": "",
952
+ "type": "address"
953
+ }
954
+ ],
955
+ "stateMutability": "view",
956
+ "type": "function"
957
+ },
958
+ {
959
+ "inputs": [
960
+ {
961
+ "internalType": "address",
962
+ "name": "_dispenser",
963
+ "type": "address"
964
+ }
965
+ ],
966
+ "name": "removeDispenserContract",
967
+ "outputs": [],
968
+ "stateMutability": "nonpayable",
969
+ "type": "function"
970
+ },
971
+ {
972
+ "inputs": [
973
+ {
974
+ "internalType": "address",
975
+ "name": "_fixedRate",
976
+ "type": "address"
977
+ }
978
+ ],
979
+ "name": "removeFixedRateContract",
980
+ "outputs": [],
981
+ "stateMutability": "nonpayable",
982
+ "type": "function"
983
+ },
984
+ {
985
+ "inputs": [
986
+ {
987
+ "internalType": "address",
988
+ "name": "oceanTokenAddress",
989
+ "type": "address"
990
+ }
991
+ ],
992
+ "name": "removeOceanToken",
993
+ "outputs": [],
994
+ "stateMutability": "nonpayable",
995
+ "type": "function"
996
+ },
997
+ {
998
+ "inputs": [
999
+ {
1000
+ "internalType": "address",
1001
+ "name": "poolTemplate",
1002
+ "type": "address"
1003
+ }
1004
+ ],
1005
+ "name": "removePoolTemplate",
1006
+ "outputs": [],
1007
+ "stateMutability": "nonpayable",
1008
+ "type": "function"
1009
+ },
1010
+ {
1011
+ "inputs": [
1012
+ {
1013
+ "internalType": "address",
1014
+ "name": "_ssContract",
1015
+ "type": "address"
1016
+ }
1017
+ ],
1018
+ "name": "removeSSContract",
1019
+ "outputs": [],
1020
+ "stateMutability": "nonpayable",
1021
+ "type": "function"
1022
+ },
1023
+ {
1024
+ "inputs": [],
1025
+ "name": "routerOwner",
1026
+ "outputs": [
1027
+ {
1028
+ "internalType": "address",
1029
+ "name": "",
1030
+ "type": "address"
1031
+ }
1032
+ ],
1033
+ "stateMutability": "view",
1034
+ "type": "function"
1035
+ },
1036
+ {
1037
+ "inputs": [
1038
+ {
1039
+ "internalType": "address",
1040
+ "name": "",
1041
+ "type": "address"
1042
+ }
1043
+ ],
1044
+ "name": "ssContracts",
1045
+ "outputs": [
1046
+ {
1047
+ "internalType": "bool",
1048
+ "name": "",
1049
+ "type": "bool"
1050
+ }
1051
+ ],
1052
+ "stateMutability": "view",
1053
+ "type": "function"
1054
+ },
1055
+ {
1056
+ "inputs": [],
1057
+ "name": "swapOceanFee",
1058
+ "outputs": [
1059
+ {
1060
+ "internalType": "uint256",
1061
+ "name": "",
1062
+ "type": "uint256"
1063
+ }
1064
+ ],
1065
+ "stateMutability": "view",
1066
+ "type": "function"
1067
+ },
1068
+ {
1069
+ "inputs": [
1070
+ {
1071
+ "internalType": "uint256",
1072
+ "name": "_newSwapOceanFee",
1073
+ "type": "uint256"
1074
+ }
1075
+ ],
1076
+ "name": "updateOPFFee",
1077
+ "outputs": [],
1078
+ "stateMutability": "nonpayable",
1079
+ "type": "function"
1080
+ }
1081
+ ],
1082
+ "bytecode": "0x608060405266038d7ea4c680006005553480156200001c57600080fd5b506040516200369a3803806200369a8339810160408190526200003f91620003bc565b8282826001600160a01b038316620000b45760405162461bcd60e51b815260206004820152602d60248201527f42466163746f72793a20696e76616c69642062706f6f6c2074656d706c61746560448201526c207a65726f206164647265737360981b60648201526084015b60405180910390fd5b6001600160a01b0382166200010c5760405162461bcd60e51b815260206004820152601660248201527f42466163746f72793a207a65726f2061646472657373000000000000000000006044820152606401620000ab565b600080546001600160a01b0319166001600160a01b03841617905562000153836001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b805115620002025760005b8151811015620002005760006001600160a01b0316336001600160a01b0316838381518110620001925762000192620004dc565b602090810291909101810151604080516000808252938101849052908101929092526001600160a01b0316907fbb6121447d29a04cc37bfd93cdf6a9dd08229f2d941116c1528f04698c4e790e9060600160405180910390a480620001f781620004f2565b9150506200015e565b505b5050506001600160a01b038516620002695760405162461bcd60e51b815260206004820152602360248201527f466163746f7279526f757465723a20496e76616c696420726f75746572206f776044820152623732b960e91b6064820152608401620000ab565b6001600160a01b038216620002cd5760405162461bcd60e51b815260206004820152602360248201527f466163746f7279526f757465723a20496e76616c6964206f7066436f6c6c65636044820152623a37b960e91b6064820152608401620000ab565b6001600160a01b038416620003385760405162461bcd60e51b815260206004820152602a60248201527f466163746f7279526f757465723a20496e76616c6964204f6365616e20546f6b604482015269656e206164647265737360b01b6064820152608401620000ab565b50600280546001600160a01b03199081166001600160a01b039687161790915560008054909116918516919091178155919092168152600660205260409020805460ff19166001179055506200051c565b80516001600160a01b0381168114620003a157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a08688031215620003d557600080fd5b620003e08662000389565b94506020620003f181880162000389565b9450620004016040880162000389565b9350620004116060880162000389565b60808801519093506001600160401b03808211156200042f57600080fd5b818901915089601f8301126200044457600080fd5b815181811115620004595762000459620003a6565b8060051b604051601f19603f83011681018181108582111715620004815762000481620003a6565b60405291825284820192508381018501918c831115620004a057600080fd5b938501935b82851015620004c957620004b98562000389565b84529385019392850192620004a5565b8096505050505050509295509295909350565b634e487b7160e01b600052603260045260246000fd5b60006000198214156200051557634e487b7160e01b600052601160045260246000fd5b5060010190565b61316e806200052c6000396000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c8063b19aaac611610151578063d86850cc116100c3578063e525f99c11610087578063e525f99c14610511578063ec09302114610524578063ecdda5881461052c578063ee3bc6351461053f578063ee661f6714610552578063f8154aee1461057557600080fd5b8063d86850cc146104bf578063de9a95a7146104e2578063e183fb3f146104f5578063e193faad146104fe578063e4a28a521461028e57600080fd5b8063c07c00fe11610115578063c07c00fe14610452578063c1c436a51461047e578063c36596a6146102d7578063c45a015514610491578063c6580d12146104a4578063d629a00a146104ac57600080fd5b8063b19aaac614610427578063b7b800a41461041f578063ba019dab1461043a578063bc063e1a14610442578063bc694ea21461044a57600080fd5b8063802d1422116101ea578063992e2a92116101ae578063992e2a92146103bb5780639cdfa6ad146103c35780639f2c010a146103d65780639f587d4d146103e9578063a28f78f11461040c578063b0e0d1361461041f57600080fd5b8063802d14221461035a57806382449375146103855780638552730a14610398578063867378c5146103ab5780639381cd2b146103b357600080fd5b8063218b53821161023c578063218b5382146102d757806329ce1ec5146102e657806347e14094146102f95780636c9fb6121461030c57806376c7a3c71461031f57806379463a0e1461032757600080fd5b80630318ad661461027957806309a3bbe41461028e57806316592614146102a957806316d9cb3d146102bc578063189d00ca146102cf575b600080fd5b61028c610287366004612844565b610588565b005b61029661062e565b6040519081526020015b60405180910390f35b61028c6102b7366004612844565b610644565b61028c6102ca366004612844565b6106de565b61029661077b565b610296670de0b6b3a764000081565b61028c6102f4366004612844565b610792565b61028c610307366004612844565b6108bd565b61028c61031a366004612844565b610957565b6102966109f4565b61034a610335366004612844565b60066020526000908152604090205460ff1681565b60405190151581526020016102a0565b60045461036d906001600160a01b031681565b6040516001600160a01b0390911681526020016102a0565b6102966103933660046128ad565b610a09565b60025461036d906001600160a01b031681565b610296610b8e565b610296610ba5565b610296610bb8565b61028c6103d1366004612844565b610bd6565b61028c6103e4366004612844565b610c70565b61034a6103f7366004612844565b60086020526000908152604090205460ff1681565b60005461036d906001600160a01b031681565b610296600281565b61028c610435366004612844565b610d0a565b610296600181565b610296610d98565b610296610dab565b61034a610460366004612844565b6001600160a01b031660009081526001602052604090205460ff1690565b61028c61048c366004612930565b610dca565b60035461036d906001600160a01b031681565b610296600081565b61028c6104ba366004612949565b610e31565b61034a6104cd366004612844565b60096020526000908152604090205460ff1681565b61028c6104f0366004612844565b610fb4565b61029660055481565b61028c61050c366004612844565b611051565b61028c61051f366004612844565b6110d9565b6102966111a5565b61028c61053a3660046129b9565b6111b8565b61036d61054d366004612a2f565b611cc4565b61034a610560366004612844565b60076020526000908152604090205460ff1681565b610296610583366004612844565b6120bc565b6002546001600160a01b031633146105bb5760405162461bcd60e51b81526004016105b290612adf565b60405180910390fd5b6001600160a01b0381166105e15760405162461bcd60e51b81526004016105b290612b0f565b6001600160a01b038116600081815260066020526040808220805460ff191660011790555133917fdffbd9ded1c09446f09377de547142dcce7dc541c8b0b028142b1eba7026b9e791a350565b610641670de0b6b3a76400006032612b6f565b81565b6002546001600160a01b0316331461066e5760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b0381166106945760405162461bcd60e51b81526004016105b290612b8e565b6001600160a01b038116600081815260096020526040808220805460ff191690555133917f63fe522dcdc5f006279afe8840a87398bb3d0dbb906b848866195859621908b391a350565b6002546001600160a01b031633146107085760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b03811661072e5760405162461bcd60e51b81526004016105b290612bd7565b6001600160a01b038116600081815260086020526040808220805460ff191660011790555133917f45ccb9b9d6b112eb7a38daf6a23bda8b4c8449d5cf64a034975a5beb8cdd37b391a350565b6106416402540be400670de0b6b3a7640000612c20565b6002546001600160a01b031633146107bc5760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b0381166108225760405162461bcd60e51b815260206004820152602760248201527f466163746f7279526f757465723a20496e76616c6964205f666163746f7279206044820152666164647265737360c81b60648201526084016105b2565b6003546001600160a01b0316156108715760405162461bcd60e51b8152602060048201526013602482015272119050d513d49648105314915051164814d155606a1b60448201526064016105b2565b600380546001600160a01b0319166001600160a01b03831690811790915560405133907f1f869f1ddaa0e2e3652252b3394c05c805f54a0d5f7fb6975f785ae4f91e587190600090a350565b6002546001600160a01b031633146108e75760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b03811661090d5760405162461bcd60e51b81526004016105b290612c42565b6001600160a01b038116600081815260076020526040808220805460ff191690555133917f7df5d17d768be6563796784637c80bc9204e2af0bc4ba8630f5aa2fed96ea48791a350565b6002546001600160a01b031633146109815760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b0381166109a75760405162461bcd60e51b81526004016105b290612c42565b6001600160a01b038116600081815260076020526040808220805460ff191660011790555133917fcef3ce01f85c030161b431114e41e463297b68f169c1013c526b1cbc5747e54491a350565b610641620f4240670de0b6b3a7640000612c20565b60035460405163226e761560e01b81523360048201526000916001600160a01b03169063226e761590602401602060405180830381865afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190612c9c565b610a925760405162461bcd60e51b81526004016105b290612cb7565b6001600160a01b03861660009081526008602052604090205460ff16610b0d5760405162461bcd60e51b815260206004820152602a60248201527f464143544f525920524f555445523a20496e76616c696420466978656450726960448201526918d950dbdb9d1c9858dd60b21b60648201526084016105b2565b60405163012c327560e01b81526001600160a01b0387169063012c327590610b419033908990899089908990600401612d02565b6020604051808303816000875af1158015610b60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b849190612d91565b9695505050505050565b61064164e8d4a51000670de0b6b3a7640000612c20565b610641670de0b6b3a76400006064612b6f565b610bcb6003670de0b6b3a7640000612c20565b610641906001612daa565b6002546001600160a01b03163314610c005760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b038116610c265760405162461bcd60e51b81526004016105b290612b0f565b6001600160a01b038116600081815260066020526040808220805460ff191690555133917fbbe55b1ff108e23e5ff1a6f5d36946eec15ec0ca0ded2bfed4cdcf697ca9046091a350565b6002546001600160a01b03163314610c9a5760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b038116610cc05760405162461bcd60e51b81526004016105b290612bd7565b6001600160a01b038116600081815260086020526040808220805460ff191690555133917ff1ec0697329a2e8de8cf055335547acc40fbace8712fc77aeea1ea2afbcf7e3b91a350565b6002546001600160a01b03163314610d345760405162461bcd60e51b81526004016105b290612adf565b610d5f816001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6040516001600160a01b0382169033907fc3674c32cbec94fe266aab7ef71f65b9bf77e1ed501d4f2bece8752f5352e9ac90600090a350565b610641600a670de0b6b3a7640000612c20565b6001610dc0670de0b6b3a76400006002612b6f565b6106419190612dc2565b6002546001600160a01b03163314610df45760405162461bcd60e51b81526004016105b290612adf565b600581905560405181815233907faacba7241fc949e401522d9591e2686bc54ecd5c340c571e85c45fdb57dc87389060200160405180910390a250565b60035460405163226e761560e01b81523360048201526001600160a01b039091169063226e761590602401602060405180830381865afa158015610e79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9d9190612c9c565b610eb95760405162461bcd60e51b81526004016105b290612cb7565b6001600160a01b03861660009081526009602052604090205460ff16610f335760405162461bcd60e51b815260206004820152602960248201527f464143544f525920524f555445523a20496e76616c69642044697370656e73656044820152681c90dbdb9d1c9858dd60ba1b60648201526084016105b2565b6040516324ce291760e01b81526001600160a01b0386811660048301526024820186905260448201859052838116606483015282811660848301528716906324ce29179060a401600060405180830381600087803b158015610f9457600080fd5b505af1158015610fa8573d6000803e3d6000fd5b50505050505050505050565b6002546001600160a01b03163314610fde5760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b0381166110045760405162461bcd60e51b81526004016105b290612b8e565b6001600160a01b038116600081815260096020526040808220805460ff191660011790555133917f78be9d87a7b2c8707b044dbf5b04c3f747b692c55ec34dcd1d7357736478789c91a350565b6002546001600160a01b0316331461107b5760405162461bcd60e51b81526004016105b290612adf565b6110a0816001600160a01b03166000908152600160205260409020805460ff19169055565b6040516001600160a01b0382169033907fc73fd5d40669565e257cbcd153784617ef26acfcc9fead31e68c0dce3ce82fb290600090a350565b6002546001600160a01b031633146111035760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b0381166111595760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206e657720726f75746572206f776e6572000000000000000060448201526064016105b2565b600280546001600160a01b0319166001600160a01b03831690811790915560405133907fc736654a613824c69968e0ec25ac1a428ccd49e15c28e97b5dfd2c6059757e2a90600090a350565b6106416002670de0b6b3a7640000612c20565b60328111156112145760405162461bcd60e51b815260206004820152602260248201527f466163746f7279526f757465723a20546f6f204d616e79204f7065726174696f6044820152616e7360f01b60648201526084016105b2565b60005b81811015611cbf576000604051806060016040528085858581811061123e5761123e612dd9565b9050610140020160600160208101906112579190612844565b6001600160a01b0316815260200185858581811061127757611277612dd9565b9050610140020160a00160208101906112909190612844565b6001600160a01b031681526020018585858181106112b0576112b0612dd9565b905061014002016101200160208101906112ca9190612844565b6001600160a01b03166001600160a01b031681525090506000604051806080016040528086868681811061130057611300612dd9565b9050610140020160800135815260200186868681811061132257611322612dd9565b9050610140020160c00135815260200186868681811061134457611344612dd9565b9050610140020160e00135815260200186868681811061136657611366612dd9565b90506101400201610100013581525090506000600381111561138a5761138a612def565b85858581811061139c5761139c612dd9565b9050610140020160400160208101906113b59190612e05565b60038111156113c6576113c6612def565b14156115955761142a33308787878181106113e3576113e3612dd9565b905061014002016080013588888881811061140057611400612dd9565b9050610140020160600160208101906114199190612844565b6001600160a01b03169291906120f2565b6114b085858581811061143f5761143f612dd9565b9050610140020160200160208101906114589190612844565b86868681811061146a5761146a612dd9565b905061014002016080013587878781811061148757611487612dd9565b9050610140020160600160208101906114a09190612844565b6001600160a01b03169190612163565b60008585858181106114c4576114c4612dd9565b9050610140020160200160208101906114dd9190612844565b6001600160a01b031663c421a3fc84846040518363ffffffff1660e01b815260040161150a929190612e26565b60408051808303816000875af1158015611528573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154c9190612e8b565b50905061158f338288888881811061156657611566612dd9565b9050610140020160a001602081019061157f9190612844565b6001600160a01b03169190612215565b50611caa565b60018585858181106115a9576115a9612dd9565b9050610140020160400160208101906115c29190612e05565b60038111156115d3576115d3612def565b141561184e5760008585858181106115ed576115ed612dd9565b9050610140020160200160208101906116069190612844565b6001600160a01b031663caa0114887878781811061162657611626612dd9565b90506101400201606001602081019061163f9190612844565b88888881811061165157611651612dd9565b9050610140020160a001602081019061166a9190612844565b89898981811061167c5761167c612dd9565b9050610140020160c001358a8a8a81811061169957611699612dd9565b6040516001600160e01b031960e089901b1681526001600160a01b0396871660048201529590941660248601525060448401919091526101006101409092020101356064820152608401602060405180830381865afa158015611700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117249190612d91565b905061173e33308389898981811061140057611400612dd9565b61177f86868681811061175357611753612dd9565b90506101400201602001602081019061176c9190612844565b8288888881811061148757611487612dd9565b85858581811061179157611791612dd9565b9050610140020160200160208101906117aa9190612844565b6001600160a01b031663c98a59cf84846040518363ffffffff1660e01b81526004016117d7929190612e26565b60408051808303816000875af11580156117f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118199190612e8b565b505061158f3387878781811061183157611831612dd9565b9050610140020160c0013588888881811061156657611566612dd9565b600285858581811061186257611862612dd9565b90506101400201604001602081019061187b9190612e05565b600381111561188c5761188c612def565b1415611bc15760008585858181106118a6576118a6612dd9565b9050610140020160200160208101906118bf9190612844565b6001600160a01b0316634c87087d8787878181106118df576118df612dd9565b90506101400201600001356040518263ffffffff1660e01b815260040161190891815260200190565b61018060405180830381865afa158015611926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194a9190612eaf565b50505050505050505050915050600086868681811061196b5761196b612dd9565b9050610140020160200160208101906119849190612844565b6001600160a01b031663c99733a78888888181106119a4576119a4612dd9565b90506101400201600001358989898181106119c1576119c1612dd9565b9050610140020160c001356040518363ffffffff1660e01b81526004016119f2929190918252602082015260400190565b608060405180830381865afa158015611a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a339190612f63565b5050509050611a503330838a8a8a81811061140057611400612dd9565b611a91878787818110611a6557611a65612dd9565b905061014002016020016020810190611a7e9190612844565b8289898981811061148757611487612dd9565b868686818110611aa357611aa3612dd9565b905061014002016020016020810190611abc9190612844565b6001600160a01b031663825b5cd6888888818110611adc57611adc612dd9565b9050610140020160000135898989818110611af957611af9612dd9565b9050610140020160c001358a8a8a818110611b1657611b16612dd9565b6040516001600160e01b031960e088901b168152600481019590955260248501939093525060806101409092020101356044820152606401600060405180830381600087803b158015611b6857600080fd5b505af1158015611b7c573d6000803e3d6000fd5b50505050611bba33888888818110611b9657611b96612dd9565b9050610140020160c00135846001600160a01b03166122159092919063ffffffff16565b5050611caa565b848484818110611bd357611bd3612dd9565b905061014002016020016020810190611bec9190612844565b6001600160a01b0316631d746d83868686818110611c0c57611c0c612dd9565b9050610140020160a0016020810190611c259190612844565b878787818110611c3757611c37612dd9565b60405160e086901b6001600160e01b03191681526001600160a01b03949094166004850152610140029190910160c00135602483015250336044820152606401600060405180830381600087803b158015611c9157600080fd5b505af1158015611ca5573d6000803e3d6000fd5b505050505b50508080611cb790612f99565b915050611217565b505050565b60035460405163226e761560e01b81523360048201526000916001600160a01b03169063226e761590602401602060405180830381865afa158015611d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d319190612c9c565b611d4d5760405162461bcd60e51b81526004016105b290612cb7565b6007600084846000818110611d6457611d64612dd9565b9050602002016020810190611d799190612844565b6001600160a01b0316815260208101919091526040016000205460ff16611ded5760405162461bcd60e51b815260206004820152602260248201527f464143544f525920524f555445523a20696e76616c6964207373436f6e74726160448201526118dd60f21b60648201526084016105b2565b600087876001818110611e0257611e02612dd9565b9050602002013511611e475760405162461bcd60e51b815260206004820152600e60248201526d57726f6e6720646563696d616c7360901b60448201526064016105b2565b6000611e5960408a0160208b01612844565b9050611ee284846002818110611e7157611e71612dd9565b9050602002016020810190611e869190612844565b85856000818110611e9957611e99612dd9565b9050602002016020810190611eae9190612844565b8a8a6004818110611ec157611ec1612dd9565b90506020020135846001600160a01b03166120f2909392919063ffffffff16565b604080518082018252600091611fa591908c90600290839083908082843760009201919091525050604080516020808e0282810182019093528d82529092508d918d9182919085019084908082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b91829185019084908082843760009201919091525061224592505050565b90506001600160a01b038116611ff55760405162461bcd60e51b8152602060048201526015602482015274119052531151081513c81111541313d6481413d3d3605a1b60448201526064016105b2565b6006600061200960408d0160208e01612844565b6001600160a01b0316815260208101919091526040016000205460ff161561206f57604051600181526001600160a01b038216907f90279d7790471e260411db76079630dfaa838fc987d29ae7aa7dc1bcd773ef2e9060200160405180910390a26120af565b604051600081526001600160a01b038216907f90279d7790471e260411db76079630dfaa838fc987d29ae7aa7dc1bcd773ef2e9060200160405180910390a25b9998505050505050505050565b6001600160a01b03811660009081526006602052604081205460ff16156120e557506000919050565b505060055490565b919050565b6040516001600160a01b038085166024830152831660448201526064810182905261215d9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612550565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156121b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d89190612d91565b6121e29190612daa565b6040516001600160a01b03851660248201526044810182905290915061215d90859063095ea7b360e01b90606401612126565b6040516001600160a01b038316602482015260448101829052611cbf90849063a9059cbb60e01b90606401612126565b6000600160008360058151811061225e5761225e612dd9565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166122d15760405162461bcd60e51b815260206004820152601d60248201527f42466163746f72793a2057726f6e6720506f6f6c2054656d706c61746500000060448201526064016105b2565b60006040518060400160405280846004815181106122f1576122f1612dd9565b6020908102919091018101516001600160a01b03908116835260005416910152835190915061233a908490600590811061232d5761232d612dd9565b6020026020010151612622565b91506001600160a01b03821661239e5760405162461bcd60e51b8152602060048201526024808201527f42466163746f72793a20696e76616c69642062706f6f6c207a65726f206164646044820152637265737360e01b60648201526084016105b2565b6000829050806001600160a01b031663c070a6d8856000815181106123c5576123c5612dd9565b602002602001015130886000808d896040518863ffffffff1660e01b81526004016123f6979695949392919061301b565b6020604051808303816000875af1158015612415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124399190612c9c565b61247c5760405162461bcd60e51b815260206004820152601460248201527311549497d253925512505312569157d09413d3d360621b60448201526064016105b2565b8360008151811061248f5761248f612dd9565b60200260200101516001600160a01b03166353f0c3b4886000600281106124b8576124b8612dd9565b6020020151896001602002015186886003815181106124d9576124d9612dd9565b60200260200101518b6040518663ffffffff1660e01b8152600401612502959493929190613081565b6020604051808303816000875af1158015612521573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125459190612c9c565b505050949350505050565b60006125a5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126b29092919063ffffffff16565b805190915015611cbf57808060200190518101906125c39190612c9c565b611cbf5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105b2565b6000808260601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f06040516001600160a01b03821681529093507f117c72e6c25f0a072e36e148df71468ce2f3dbe7defec5b2c257a6e3eb65278c915060200160405180910390a150919050565b60606126c184846000856126cb565b90505b9392505050565b60608247101561272c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105b2565b843b61277a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105b2565b600080866001600160a01b0316858760405161279691906130e9565b60006040518083038185875af1925050503d80600081146127d3576040519150601f19603f3d011682016040523d82523d6000602084013e6127d8565b606091505b50915091506127e88282866127f3565b979650505050505050565b606083156128025750816126c4565b8251156128125782518084602001fd5b8160405162461bcd60e51b81526004016105b29190613105565b6001600160a01b038116811461284157600080fd5b50565b60006020828403121561285657600080fd5b81356126c48161282c565b60008083601f84011261287357600080fd5b50813567ffffffffffffffff81111561288b57600080fd5b6020830191508360208260051b85010111156128a657600080fd5b9250929050565b6000806000806000606086880312156128c557600080fd5b85356128d08161282c565b9450602086013567ffffffffffffffff808211156128ed57600080fd5b6128f989838a01612861565b9096509450604088013591508082111561291257600080fd5b5061291f88828901612861565b969995985093965092949392505050565b60006020828403121561294257600080fd5b5035919050565b60008060008060008060c0878903121561296257600080fd5b863561296d8161282c565b9550602087013561297d8161282c565b94506040870135935060608701359250608087013561299b8161282c565b915060a08701356129ab8161282c565b809150509295509295509295565b600080602083850312156129cc57600080fd5b823567ffffffffffffffff808211156129e457600080fd5b818501915085601f8301126129f857600080fd5b813581811115612a0757600080fd5b86602061014083028501011115612a1d57600080fd5b60209290920196919550909350505050565b600080600080600080600060a0888a031215612a4a57600080fd5b6040880189811115612a5b57600080fd5b8897503567ffffffffffffffff80821115612a7557600080fd5b612a818b838c01612861565b909850965060608a0135915080821115612a9a57600080fd5b612aa68b838c01612861565b909650945060808a0135915080821115612abf57600080fd5b50612acc8a828b01612861565b989b979a50959850939692959293505050565b60208082526016908201527527b1b2b0b72937baba32b91d102727aa1027aba722a960511b604082015260600190565b6020808252602a908201527f466163746f7279526f757465723a20496e76616c6964204f6365616e20546f6b604082015269656e206164647265737360b01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612b8957612b89612b59565b500290565b60208082526029908201527f466163746f7279526f757465723a20496e76616c6964205f64697370656e736560408201526872206164647265737360b81b606082015260800190565b60208082526029908201527f466163746f7279526f757465723a20496e76616c6964205f666978656452617460408201526865206164647265737360b81b606082015260800190565b600082612c3d57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602a908201527f466163746f7279526f757465723a20496e76616c6964205f7373436f6e7472616040820152696374206164647265737360b01b606082015260800190565b805180151581146120ed57600080fd5b600060208284031215612cae57600080fd5b6126c482612c8c565b6020808252602b908201527f464143544f525920524f555445523a204e4f54204f524947494e414c2045524360408201526a32302054454d504c41544560a81b606082015260800190565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b89811015612d51578435612d3d8161282c565b841682529382019390820190600101612d2a565b5085810360408701528681526001600160fb1b03871115612d7157600080fd5b8660051b9350838883830137600093010191825250979650505050505050565b600060208284031215612da357600080fd5b5051919050565b60008219821115612dbd57612dbd612b59565b500190565b600082821015612dd457612dd4612b59565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b600060208284031215612e1757600080fd5b8135600481106126c457600080fd5b60e08101818460005b6003811015612e575781516001600160a01b0316835260209283019290910190600101612e2f565b505050606082018360005b6004811015612e81578151835260209283019290910190600101612e62565b5050509392505050565b60008060408385031215612e9e57600080fd5b505080516020909101519092909150565b6000806000806000806000806000806000806101808d8f031215612ed257600080fd5b8c51612edd8161282c565b60208e0151909c50612eee8161282c565b60408e015160608f0151919c509a50612f068161282c565b60808e015160a08f0151919a5098509650612f2360c08e01612c8c565b955060e08d015194506101008d015193506101208d015192506101408d01519150612f516101608e01612c8c565b90509295989b509295989b509295989b565b60008060008060808587031215612f7957600080fd5b505082516020840151604085015160609095015191969095509092509050565b6000600019821415612fad57612fad612b59565b5060010190565b600081518084526020808501945080840160005b83811015612fe457815187529582019590820190600101612fc8565b509495945050505050565b8060005b600281101561215d5781516001600160a01b0316845260209384019390910190600101612ff3565b6001600160a01b038881168252871660208201526101206040820181905260009061304883820189612fb4565b9150508515156060830152841515608083015261306860a0830185612fef565b61307560e0830184612fef565b98975050505050505050565b6001600160a01b038681168252858116602083015284811660408301528316606082015260a0608082018190526000906127e890830184612fb4565b60005b838110156130d85781810151838201526020016130c0565b8381111561215d5750506000910152565b600082516130fb8184602087016130bd565b9190910192915050565b60208152600082518060208401526131248160408501602087016130bd565b601f01601f1916919091016040019291505056fea2646970667358221220ce2d7833bf1f1217d379dd680ba9e505dd815bfe88070670cc4e0ea6b50384eb64736f6c634300080a0033",
1083
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102745760003560e01c8063b19aaac611610151578063d86850cc116100c3578063e525f99c11610087578063e525f99c14610511578063ec09302114610524578063ecdda5881461052c578063ee3bc6351461053f578063ee661f6714610552578063f8154aee1461057557600080fd5b8063d86850cc146104bf578063de9a95a7146104e2578063e183fb3f146104f5578063e193faad146104fe578063e4a28a521461028e57600080fd5b8063c07c00fe11610115578063c07c00fe14610452578063c1c436a51461047e578063c36596a6146102d7578063c45a015514610491578063c6580d12146104a4578063d629a00a146104ac57600080fd5b8063b19aaac614610427578063b7b800a41461041f578063ba019dab1461043a578063bc063e1a14610442578063bc694ea21461044a57600080fd5b8063802d1422116101ea578063992e2a92116101ae578063992e2a92146103bb5780639cdfa6ad146103c35780639f2c010a146103d65780639f587d4d146103e9578063a28f78f11461040c578063b0e0d1361461041f57600080fd5b8063802d14221461035a57806382449375146103855780638552730a14610398578063867378c5146103ab5780639381cd2b146103b357600080fd5b8063218b53821161023c578063218b5382146102d757806329ce1ec5146102e657806347e14094146102f95780636c9fb6121461030c57806376c7a3c71461031f57806379463a0e1461032757600080fd5b80630318ad661461027957806309a3bbe41461028e57806316592614146102a957806316d9cb3d146102bc578063189d00ca146102cf575b600080fd5b61028c610287366004612844565b610588565b005b61029661062e565b6040519081526020015b60405180910390f35b61028c6102b7366004612844565b610644565b61028c6102ca366004612844565b6106de565b61029661077b565b610296670de0b6b3a764000081565b61028c6102f4366004612844565b610792565b61028c610307366004612844565b6108bd565b61028c61031a366004612844565b610957565b6102966109f4565b61034a610335366004612844565b60066020526000908152604090205460ff1681565b60405190151581526020016102a0565b60045461036d906001600160a01b031681565b6040516001600160a01b0390911681526020016102a0565b6102966103933660046128ad565b610a09565b60025461036d906001600160a01b031681565b610296610b8e565b610296610ba5565b610296610bb8565b61028c6103d1366004612844565b610bd6565b61028c6103e4366004612844565b610c70565b61034a6103f7366004612844565b60086020526000908152604090205460ff1681565b60005461036d906001600160a01b031681565b610296600281565b61028c610435366004612844565b610d0a565b610296600181565b610296610d98565b610296610dab565b61034a610460366004612844565b6001600160a01b031660009081526001602052604090205460ff1690565b61028c61048c366004612930565b610dca565b60035461036d906001600160a01b031681565b610296600081565b61028c6104ba366004612949565b610e31565b61034a6104cd366004612844565b60096020526000908152604090205460ff1681565b61028c6104f0366004612844565b610fb4565b61029660055481565b61028c61050c366004612844565b611051565b61028c61051f366004612844565b6110d9565b6102966111a5565b61028c61053a3660046129b9565b6111b8565b61036d61054d366004612a2f565b611cc4565b61034a610560366004612844565b60076020526000908152604090205460ff1681565b610296610583366004612844565b6120bc565b6002546001600160a01b031633146105bb5760405162461bcd60e51b81526004016105b290612adf565b60405180910390fd5b6001600160a01b0381166105e15760405162461bcd60e51b81526004016105b290612b0f565b6001600160a01b038116600081815260066020526040808220805460ff191660011790555133917fdffbd9ded1c09446f09377de547142dcce7dc541c8b0b028142b1eba7026b9e791a350565b610641670de0b6b3a76400006032612b6f565b81565b6002546001600160a01b0316331461066e5760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b0381166106945760405162461bcd60e51b81526004016105b290612b8e565b6001600160a01b038116600081815260096020526040808220805460ff191690555133917f63fe522dcdc5f006279afe8840a87398bb3d0dbb906b848866195859621908b391a350565b6002546001600160a01b031633146107085760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b03811661072e5760405162461bcd60e51b81526004016105b290612bd7565b6001600160a01b038116600081815260086020526040808220805460ff191660011790555133917f45ccb9b9d6b112eb7a38daf6a23bda8b4c8449d5cf64a034975a5beb8cdd37b391a350565b6106416402540be400670de0b6b3a7640000612c20565b6002546001600160a01b031633146107bc5760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b0381166108225760405162461bcd60e51b815260206004820152602760248201527f466163746f7279526f757465723a20496e76616c6964205f666163746f7279206044820152666164647265737360c81b60648201526084016105b2565b6003546001600160a01b0316156108715760405162461bcd60e51b8152602060048201526013602482015272119050d513d49648105314915051164814d155606a1b60448201526064016105b2565b600380546001600160a01b0319166001600160a01b03831690811790915560405133907f1f869f1ddaa0e2e3652252b3394c05c805f54a0d5f7fb6975f785ae4f91e587190600090a350565b6002546001600160a01b031633146108e75760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b03811661090d5760405162461bcd60e51b81526004016105b290612c42565b6001600160a01b038116600081815260076020526040808220805460ff191690555133917f7df5d17d768be6563796784637c80bc9204e2af0bc4ba8630f5aa2fed96ea48791a350565b6002546001600160a01b031633146109815760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b0381166109a75760405162461bcd60e51b81526004016105b290612c42565b6001600160a01b038116600081815260076020526040808220805460ff191660011790555133917fcef3ce01f85c030161b431114e41e463297b68f169c1013c526b1cbc5747e54491a350565b610641620f4240670de0b6b3a7640000612c20565b60035460405163226e761560e01b81523360048201526000916001600160a01b03169063226e761590602401602060405180830381865afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190612c9c565b610a925760405162461bcd60e51b81526004016105b290612cb7565b6001600160a01b03861660009081526008602052604090205460ff16610b0d5760405162461bcd60e51b815260206004820152602a60248201527f464143544f525920524f555445523a20496e76616c696420466978656450726960448201526918d950dbdb9d1c9858dd60b21b60648201526084016105b2565b60405163012c327560e01b81526001600160a01b0387169063012c327590610b419033908990899089908990600401612d02565b6020604051808303816000875af1158015610b60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b849190612d91565b9695505050505050565b61064164e8d4a51000670de0b6b3a7640000612c20565b610641670de0b6b3a76400006064612b6f565b610bcb6003670de0b6b3a7640000612c20565b610641906001612daa565b6002546001600160a01b03163314610c005760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b038116610c265760405162461bcd60e51b81526004016105b290612b0f565b6001600160a01b038116600081815260066020526040808220805460ff191690555133917fbbe55b1ff108e23e5ff1a6f5d36946eec15ec0ca0ded2bfed4cdcf697ca9046091a350565b6002546001600160a01b03163314610c9a5760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b038116610cc05760405162461bcd60e51b81526004016105b290612bd7565b6001600160a01b038116600081815260086020526040808220805460ff191690555133917ff1ec0697329a2e8de8cf055335547acc40fbace8712fc77aeea1ea2afbcf7e3b91a350565b6002546001600160a01b03163314610d345760405162461bcd60e51b81526004016105b290612adf565b610d5f816001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6040516001600160a01b0382169033907fc3674c32cbec94fe266aab7ef71f65b9bf77e1ed501d4f2bece8752f5352e9ac90600090a350565b610641600a670de0b6b3a7640000612c20565b6001610dc0670de0b6b3a76400006002612b6f565b6106419190612dc2565b6002546001600160a01b03163314610df45760405162461bcd60e51b81526004016105b290612adf565b600581905560405181815233907faacba7241fc949e401522d9591e2686bc54ecd5c340c571e85c45fdb57dc87389060200160405180910390a250565b60035460405163226e761560e01b81523360048201526001600160a01b039091169063226e761590602401602060405180830381865afa158015610e79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9d9190612c9c565b610eb95760405162461bcd60e51b81526004016105b290612cb7565b6001600160a01b03861660009081526009602052604090205460ff16610f335760405162461bcd60e51b815260206004820152602960248201527f464143544f525920524f555445523a20496e76616c69642044697370656e73656044820152681c90dbdb9d1c9858dd60ba1b60648201526084016105b2565b6040516324ce291760e01b81526001600160a01b0386811660048301526024820186905260448201859052838116606483015282811660848301528716906324ce29179060a401600060405180830381600087803b158015610f9457600080fd5b505af1158015610fa8573d6000803e3d6000fd5b50505050505050505050565b6002546001600160a01b03163314610fde5760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b0381166110045760405162461bcd60e51b81526004016105b290612b8e565b6001600160a01b038116600081815260096020526040808220805460ff191660011790555133917f78be9d87a7b2c8707b044dbf5b04c3f747b692c55ec34dcd1d7357736478789c91a350565b6002546001600160a01b0316331461107b5760405162461bcd60e51b81526004016105b290612adf565b6110a0816001600160a01b03166000908152600160205260409020805460ff19169055565b6040516001600160a01b0382169033907fc73fd5d40669565e257cbcd153784617ef26acfcc9fead31e68c0dce3ce82fb290600090a350565b6002546001600160a01b031633146111035760405162461bcd60e51b81526004016105b290612adf565b6001600160a01b0381166111595760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206e657720726f75746572206f776e6572000000000000000060448201526064016105b2565b600280546001600160a01b0319166001600160a01b03831690811790915560405133907fc736654a613824c69968e0ec25ac1a428ccd49e15c28e97b5dfd2c6059757e2a90600090a350565b6106416002670de0b6b3a7640000612c20565b60328111156112145760405162461bcd60e51b815260206004820152602260248201527f466163746f7279526f757465723a20546f6f204d616e79204f7065726174696f6044820152616e7360f01b60648201526084016105b2565b60005b81811015611cbf576000604051806060016040528085858581811061123e5761123e612dd9565b9050610140020160600160208101906112579190612844565b6001600160a01b0316815260200185858581811061127757611277612dd9565b9050610140020160a00160208101906112909190612844565b6001600160a01b031681526020018585858181106112b0576112b0612dd9565b905061014002016101200160208101906112ca9190612844565b6001600160a01b03166001600160a01b031681525090506000604051806080016040528086868681811061130057611300612dd9565b9050610140020160800135815260200186868681811061132257611322612dd9565b9050610140020160c00135815260200186868681811061134457611344612dd9565b9050610140020160e00135815260200186868681811061136657611366612dd9565b90506101400201610100013581525090506000600381111561138a5761138a612def565b85858581811061139c5761139c612dd9565b9050610140020160400160208101906113b59190612e05565b60038111156113c6576113c6612def565b14156115955761142a33308787878181106113e3576113e3612dd9565b905061014002016080013588888881811061140057611400612dd9565b9050610140020160600160208101906114199190612844565b6001600160a01b03169291906120f2565b6114b085858581811061143f5761143f612dd9565b9050610140020160200160208101906114589190612844565b86868681811061146a5761146a612dd9565b905061014002016080013587878781811061148757611487612dd9565b9050610140020160600160208101906114a09190612844565b6001600160a01b03169190612163565b60008585858181106114c4576114c4612dd9565b9050610140020160200160208101906114dd9190612844565b6001600160a01b031663c421a3fc84846040518363ffffffff1660e01b815260040161150a929190612e26565b60408051808303816000875af1158015611528573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154c9190612e8b565b50905061158f338288888881811061156657611566612dd9565b9050610140020160a001602081019061157f9190612844565b6001600160a01b03169190612215565b50611caa565b60018585858181106115a9576115a9612dd9565b9050610140020160400160208101906115c29190612e05565b60038111156115d3576115d3612def565b141561184e5760008585858181106115ed576115ed612dd9565b9050610140020160200160208101906116069190612844565b6001600160a01b031663caa0114887878781811061162657611626612dd9565b90506101400201606001602081019061163f9190612844565b88888881811061165157611651612dd9565b9050610140020160a001602081019061166a9190612844565b89898981811061167c5761167c612dd9565b9050610140020160c001358a8a8a81811061169957611699612dd9565b6040516001600160e01b031960e089901b1681526001600160a01b0396871660048201529590941660248601525060448401919091526101006101409092020101356064820152608401602060405180830381865afa158015611700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117249190612d91565b905061173e33308389898981811061140057611400612dd9565b61177f86868681811061175357611753612dd9565b90506101400201602001602081019061176c9190612844565b8288888881811061148757611487612dd9565b85858581811061179157611791612dd9565b9050610140020160200160208101906117aa9190612844565b6001600160a01b031663c98a59cf84846040518363ffffffff1660e01b81526004016117d7929190612e26565b60408051808303816000875af11580156117f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118199190612e8b565b505061158f3387878781811061183157611831612dd9565b9050610140020160c0013588888881811061156657611566612dd9565b600285858581811061186257611862612dd9565b90506101400201604001602081019061187b9190612e05565b600381111561188c5761188c612def565b1415611bc15760008585858181106118a6576118a6612dd9565b9050610140020160200160208101906118bf9190612844565b6001600160a01b0316634c87087d8787878181106118df576118df612dd9565b90506101400201600001356040518263ffffffff1660e01b815260040161190891815260200190565b61018060405180830381865afa158015611926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194a9190612eaf565b50505050505050505050915050600086868681811061196b5761196b612dd9565b9050610140020160200160208101906119849190612844565b6001600160a01b031663c99733a78888888181106119a4576119a4612dd9565b90506101400201600001358989898181106119c1576119c1612dd9565b9050610140020160c001356040518363ffffffff1660e01b81526004016119f2929190918252602082015260400190565b608060405180830381865afa158015611a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a339190612f63565b5050509050611a503330838a8a8a81811061140057611400612dd9565b611a91878787818110611a6557611a65612dd9565b905061014002016020016020810190611a7e9190612844565b8289898981811061148757611487612dd9565b868686818110611aa357611aa3612dd9565b905061014002016020016020810190611abc9190612844565b6001600160a01b031663825b5cd6888888818110611adc57611adc612dd9565b9050610140020160000135898989818110611af957611af9612dd9565b9050610140020160c001358a8a8a818110611b1657611b16612dd9565b6040516001600160e01b031960e088901b168152600481019590955260248501939093525060806101409092020101356044820152606401600060405180830381600087803b158015611b6857600080fd5b505af1158015611b7c573d6000803e3d6000fd5b50505050611bba33888888818110611b9657611b96612dd9565b9050610140020160c00135846001600160a01b03166122159092919063ffffffff16565b5050611caa565b848484818110611bd357611bd3612dd9565b905061014002016020016020810190611bec9190612844565b6001600160a01b0316631d746d83868686818110611c0c57611c0c612dd9565b9050610140020160a0016020810190611c259190612844565b878787818110611c3757611c37612dd9565b60405160e086901b6001600160e01b03191681526001600160a01b03949094166004850152610140029190910160c00135602483015250336044820152606401600060405180830381600087803b158015611c9157600080fd5b505af1158015611ca5573d6000803e3d6000fd5b505050505b50508080611cb790612f99565b915050611217565b505050565b60035460405163226e761560e01b81523360048201526000916001600160a01b03169063226e761590602401602060405180830381865afa158015611d0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d319190612c9c565b611d4d5760405162461bcd60e51b81526004016105b290612cb7565b6007600084846000818110611d6457611d64612dd9565b9050602002016020810190611d799190612844565b6001600160a01b0316815260208101919091526040016000205460ff16611ded5760405162461bcd60e51b815260206004820152602260248201527f464143544f525920524f555445523a20696e76616c6964207373436f6e74726160448201526118dd60f21b60648201526084016105b2565b600087876001818110611e0257611e02612dd9565b9050602002013511611e475760405162461bcd60e51b815260206004820152600e60248201526d57726f6e6720646563696d616c7360901b60448201526064016105b2565b6000611e5960408a0160208b01612844565b9050611ee284846002818110611e7157611e71612dd9565b9050602002016020810190611e869190612844565b85856000818110611e9957611e99612dd9565b9050602002016020810190611eae9190612844565b8a8a6004818110611ec157611ec1612dd9565b90506020020135846001600160a01b03166120f2909392919063ffffffff16565b604080518082018252600091611fa591908c90600290839083908082843760009201919091525050604080516020808e0282810182019093528d82529092508d918d9182919085019084908082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b91829185019084908082843760009201919091525061224592505050565b90506001600160a01b038116611ff55760405162461bcd60e51b8152602060048201526015602482015274119052531151081513c81111541313d6481413d3d3605a1b60448201526064016105b2565b6006600061200960408d0160208e01612844565b6001600160a01b0316815260208101919091526040016000205460ff161561206f57604051600181526001600160a01b038216907f90279d7790471e260411db76079630dfaa838fc987d29ae7aa7dc1bcd773ef2e9060200160405180910390a26120af565b604051600081526001600160a01b038216907f90279d7790471e260411db76079630dfaa838fc987d29ae7aa7dc1bcd773ef2e9060200160405180910390a25b9998505050505050505050565b6001600160a01b03811660009081526006602052604081205460ff16156120e557506000919050565b505060055490565b919050565b6040516001600160a01b038085166024830152831660448201526064810182905261215d9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612550565b50505050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156121b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121d89190612d91565b6121e29190612daa565b6040516001600160a01b03851660248201526044810182905290915061215d90859063095ea7b360e01b90606401612126565b6040516001600160a01b038316602482015260448101829052611cbf90849063a9059cbb60e01b90606401612126565b6000600160008360058151811061225e5761225e612dd9565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff166122d15760405162461bcd60e51b815260206004820152601d60248201527f42466163746f72793a2057726f6e6720506f6f6c2054656d706c61746500000060448201526064016105b2565b60006040518060400160405280846004815181106122f1576122f1612dd9565b6020908102919091018101516001600160a01b03908116835260005416910152835190915061233a908490600590811061232d5761232d612dd9565b6020026020010151612622565b91506001600160a01b03821661239e5760405162461bcd60e51b8152602060048201526024808201527f42466163746f72793a20696e76616c69642062706f6f6c207a65726f206164646044820152637265737360e01b60648201526084016105b2565b6000829050806001600160a01b031663c070a6d8856000815181106123c5576123c5612dd9565b602002602001015130886000808d896040518863ffffffff1660e01b81526004016123f6979695949392919061301b565b6020604051808303816000875af1158015612415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124399190612c9c565b61247c5760405162461bcd60e51b815260206004820152601460248201527311549497d253925512505312569157d09413d3d360621b60448201526064016105b2565b8360008151811061248f5761248f612dd9565b60200260200101516001600160a01b03166353f0c3b4886000600281106124b8576124b8612dd9565b6020020151896001602002015186886003815181106124d9576124d9612dd9565b60200260200101518b6040518663ffffffff1660e01b8152600401612502959493929190613081565b6020604051808303816000875af1158015612521573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125459190612c9c565b505050949350505050565b60006125a5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126b29092919063ffffffff16565b805190915015611cbf57808060200190518101906125c39190612c9c565b611cbf5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105b2565b6000808260601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f06040516001600160a01b03821681529093507f117c72e6c25f0a072e36e148df71468ce2f3dbe7defec5b2c257a6e3eb65278c915060200160405180910390a150919050565b60606126c184846000856126cb565b90505b9392505050565b60608247101561272c5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105b2565b843b61277a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105b2565b600080866001600160a01b0316858760405161279691906130e9565b60006040518083038185875af1925050503d80600081146127d3576040519150601f19603f3d011682016040523d82523d6000602084013e6127d8565b606091505b50915091506127e88282866127f3565b979650505050505050565b606083156128025750816126c4565b8251156128125782518084602001fd5b8160405162461bcd60e51b81526004016105b29190613105565b6001600160a01b038116811461284157600080fd5b50565b60006020828403121561285657600080fd5b81356126c48161282c565b60008083601f84011261287357600080fd5b50813567ffffffffffffffff81111561288b57600080fd5b6020830191508360208260051b85010111156128a657600080fd5b9250929050565b6000806000806000606086880312156128c557600080fd5b85356128d08161282c565b9450602086013567ffffffffffffffff808211156128ed57600080fd5b6128f989838a01612861565b9096509450604088013591508082111561291257600080fd5b5061291f88828901612861565b969995985093965092949392505050565b60006020828403121561294257600080fd5b5035919050565b60008060008060008060c0878903121561296257600080fd5b863561296d8161282c565b9550602087013561297d8161282c565b94506040870135935060608701359250608087013561299b8161282c565b915060a08701356129ab8161282c565b809150509295509295509295565b600080602083850312156129cc57600080fd5b823567ffffffffffffffff808211156129e457600080fd5b818501915085601f8301126129f857600080fd5b813581811115612a0757600080fd5b86602061014083028501011115612a1d57600080fd5b60209290920196919550909350505050565b600080600080600080600060a0888a031215612a4a57600080fd5b6040880189811115612a5b57600080fd5b8897503567ffffffffffffffff80821115612a7557600080fd5b612a818b838c01612861565b909850965060608a0135915080821115612a9a57600080fd5b612aa68b838c01612861565b909650945060808a0135915080821115612abf57600080fd5b50612acc8a828b01612861565b989b979a50959850939692959293505050565b60208082526016908201527527b1b2b0b72937baba32b91d102727aa1027aba722a960511b604082015260600190565b6020808252602a908201527f466163746f7279526f757465723a20496e76616c6964204f6365616e20546f6b604082015269656e206164647265737360b01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612b8957612b89612b59565b500290565b60208082526029908201527f466163746f7279526f757465723a20496e76616c6964205f64697370656e736560408201526872206164647265737360b81b606082015260800190565b60208082526029908201527f466163746f7279526f757465723a20496e76616c6964205f666978656452617460408201526865206164647265737360b81b606082015260800190565b600082612c3d57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602a908201527f466163746f7279526f757465723a20496e76616c6964205f7373436f6e7472616040820152696374206164647265737360b01b606082015260800190565b805180151581146120ed57600080fd5b600060208284031215612cae57600080fd5b6126c482612c8c565b6020808252602b908201527f464143544f525920524f555445523a204e4f54204f524947494e414c2045524360408201526a32302054454d504c41544560a81b606082015260800190565b6001600160a01b03868116825260606020808401829052908301869052600091879160808501845b89811015612d51578435612d3d8161282c565b841682529382019390820190600101612d2a565b5085810360408701528681526001600160fb1b03871115612d7157600080fd5b8660051b9350838883830137600093010191825250979650505050505050565b600060208284031215612da357600080fd5b5051919050565b60008219821115612dbd57612dbd612b59565b500190565b600082821015612dd457612dd4612b59565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b600060208284031215612e1757600080fd5b8135600481106126c457600080fd5b60e08101818460005b6003811015612e575781516001600160a01b0316835260209283019290910190600101612e2f565b505050606082018360005b6004811015612e81578151835260209283019290910190600101612e62565b5050509392505050565b60008060408385031215612e9e57600080fd5b505080516020909101519092909150565b6000806000806000806000806000806000806101808d8f031215612ed257600080fd5b8c51612edd8161282c565b60208e0151909c50612eee8161282c565b60408e015160608f0151919c509a50612f068161282c565b60808e015160a08f0151919a5098509650612f2360c08e01612c8c565b955060e08d015194506101008d015193506101208d015192506101408d01519150612f516101608e01612c8c565b90509295989b509295989b509295989b565b60008060008060808587031215612f7957600080fd5b505082516020840151604085015160609095015191969095509092509050565b6000600019821415612fad57612fad612b59565b5060010190565b600081518084526020808501945080840160005b83811015612fe457815187529582019590820190600101612fc8565b509495945050505050565b8060005b600281101561215d5781516001600160a01b0316845260209384019390910190600101612ff3565b6001600160a01b038881168252871660208201526101206040820181905260009061304883820189612fb4565b9150508515156060830152841515608083015261306860a0830185612fef565b61307560e0830184612fef565b98975050505050505050565b6001600160a01b038681168252858116602083015284811660408301528316606082015260a0608082018190526000906127e890830184612fb4565b60005b838110156130d85781810151838201526020016130c0565b8381111561215d5750506000910152565b600082516130fb8184602087016130bd565b9190910192915050565b60208152600082518060208401526131248160408501602087016130bd565b601f01601f1916919091016040019291505056fea2646970667358221220ce2d7833bf1f1217d379dd680ba9e505dd815bfe88070670cc4e0ea6b50384eb64736f6c634300080a0033",
1084
+ "linkReferences": {},
1085
+ "deployedLinkReferences": {}
1086
+ }