-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpresale.json
More file actions
609 lines (609 loc) · 69.6 KB
/
presale.json
File metadata and controls
609 lines (609 loc) · 69.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
{
"_format": "hh-sol-artifact-1",
"contractName": "Presale",
"sourceName": "contracts/Presale.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_ndgToken",
"type": "address"
},
{
"internalType": "address",
"name": "_priceFeed",
"type": "address"
},
{
"internalType": "uint256",
"name": "_minUsd18",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_maxUsd18",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bool",
"name": "paused",
"type": "bool"
}
],
"name": "Paused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "aggregator",
"type": "address"
}
],
"name": "PriceFeedChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "buyer",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "payToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "payAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "ndgAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "usdValue18",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"name": "Purchased",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "accepted",
"type": "bool"
}
],
"name": "StablecoinToggled",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tierIndex",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "priceUsd18",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "capUsd18",
"type": "uint256"
}
],
"name": "TierAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Withdrawn",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "acceptedStable",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "priceUsd18",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "capUsd18",
"type": "uint256"
}
],
"name": "addTier",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "buyWithBNB",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "buyWithToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "contributionUsd18",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getStableList",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "idx",
"type": "uint256"
}
],
"name": "getTier",
"outputs": [
{
"internalType": "uint256",
"name": "priceUsd18",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "capUsd18",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "soldUsd18",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maxContributionUsd18",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "minContributionUsd18",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ndgToken",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_paused",
"type": "bool"
}
],
"name": "pauseSale",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "priceFeed",
"outputs": [
{
"internalType": "contract AggregatorV3Interface",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "minUsd18",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxUsd18",
"type": "uint256"
}
],
"name": "setContributionLimits",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "aggregator",
"type": "address"
}
],
"name": "setPriceFeed",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "pricesUsd18",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "capsUsd18",
"type": "uint256[]"
}
],
"name": "setTiers",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "stableList",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "tiers",
"outputs": [
{
"internalType": "uint256",
"name": "priceUsd18",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "capUsd18",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "soldUsd18",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "tiersCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "bool",
"name": "accept",
"type": "bool"
}
],
"name": "toggleStablecoin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "totalRemainingUsd18",
"outputs": [
{
"internalType": "uint256",
"name": "rem",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSoldUsd18",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x60a06040523480156200001157600080fd5b5060405162003b2038038062003b208339818101604052810190620000379190620002ce565b620000576200004b6200015d60201b60201c565b6200016560201b60201c565b60018081905550600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603620000d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000c790620003a1565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050620003c3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200025b826200022e565b9050919050565b6200026d816200024e565b81146200027957600080fd5b50565b6000815190506200028d8162000262565b92915050565b6000819050919050565b620002a88162000293565b8114620002b457600080fd5b50565b600081519050620002c8816200029d565b92915050565b60008060008060808587031215620002eb57620002ea62000229565b5b6000620002fb878288016200027c565b94505060206200030e878288016200027c565b93505060406200032187828801620002b7565b92505060606200033487828801620002b7565b91505092959194509250565b600082825260208201905092915050565b7f4e4447207a65726f000000000000000000000000000000000000000000000000600082015250565b60006200038960088362000340565b9150620003968262000351565b602082019050919050565b60006020820190508181036000830152620003bc816200037a565b9050919050565b608051613733620003ed60003960008181610ab50152818161175f015261189901526137336000f3fe6080604052600436106101855760003560e01c8063715018a6116100d1578063c67e04d81161008a578063df1a05c311610064578063df1a05c314610554578063e746a1d21461057f578063f2fde38b146105bc578063f89efe93146105e557610196565b8063c67e04d8146104d7578063ca0496ac14610500578063d9caed121461052b57610196565b8063715018a6146103d9578063724e78da146103f0578063741bef1a1461041957806382dd87b8146104445780638da5cb5b14610481578063bc9f63a1146104ac57610196565b80634072e46d1161013e57806356714cf91161011857806356714cf9146103315780635c975abb1461035c5780636c445af5146103875780636e33a831146103b057610196565b80634072e46d1461029e57806345350759146102c95780634f062c5a146102f257610196565b8063039af9eb1461019b5780630cfed2a2146101da5780631a585358146102035780631b8ebc3c1461024057806320f1fc611461026957806339ce44f41461027357610196565b36610196576101943334610610565b005b600080fd5b3480156101a757600080fd5b506101c260048036038101906101bd9190612089565b6106d2565b6040516101d1939291906120c5565b60405180910390f35b3480156101e657600080fd5b5061020160048036038101906101fc9190612134565b61070c565b005b34801561020f57600080fd5b5061022a600480360381019061022591906121bf565b610768565b60405161023791906121ec565b60405180910390f35b34801561024c57600080fd5b506102676004803603810190610262919061226c565b610780565b005b61027161090b565b005b34801561027f57600080fd5b50610288610917565b60405161029591906121ec565b60405180910390f35b3480156102aa57600080fd5b506102b361091d565b6040516102c091906121ec565b60405180910390f35b3480156102d557600080fd5b506102f060048036038101906102eb91906122ed565b610923565b005b3480156102fe57600080fd5b5061031960048036038101906103149190612089565b610a24565b604051610328939291906120c5565b60405180910390f35b34801561033d57600080fd5b50610346610ab3565b604051610353919061238c565b60405180910390f35b34801561036857600080fd5b50610371610ad7565b60405161037e91906123b6565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a991906123d1565b610aea565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190612411565b610d16565b005b3480156103e557600080fd5b506103ee610e90565b005b3480156103fc57600080fd5b50610417600480360381019061041291906121bf565b610ea4565b005b34801561042557600080fd5b5061042e610f33565b60405161043b9190612472565b60405180910390f35b34801561045057600080fd5b5061046b600480360381019061046691906121bf565b610f59565b60405161047891906123b6565b60405180910390f35b34801561048d57600080fd5b50610496610f79565b6040516104a3919061249c565b60405180910390f35b3480156104b857600080fd5b506104c1610fa2565b6040516104ce91906121ec565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f991906122ed565b610faf565b005b34801561050c57600080fd5b50610515610fc9565b6040516105229190612575565b60405180910390f35b34801561053757600080fd5b50610552600480360381019061054d9190612597565b611057565b005b34801561056057600080fd5b5061056961124a565b60405161057691906121ec565b60405180910390f35b34801561058b57600080fd5b506105a660048036038101906105a19190612089565b611250565b6040516105b3919061249c565b60405180910390f35b3480156105c857600080fd5b506105e360048036038101906105de91906121bf565b61128f565b005b3480156105f157600080fd5b506105fa611312565b60405161060791906121ec565b60405180910390f35b6106186113f4565b600260149054906101000a900460ff1615610668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065f90612647565b60405180910390fd5b600081116106ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a2906126b3565b60405180910390fd5b60006106b682611443565b90506106c583600084846114a5565b506106ce611952565b5050565b600381815481106106e257600080fd5b90600052602060002090600302016000915090508060000154908060010154908060020154905083565b61071461195b565b80600260146101000a81548160ff0219169083151502179055507f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd28160405161075d91906123b6565b60405180910390a150565b60066020528060005260406000206000915090505481565b61078861195b565b8181905084849050146107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c79061271f565b60405180910390fd5b600360006107de9190611ff6565b60005b84849050811015610904576003604051806060016040528087878581811061080c5761080b61273f565b5b90506020020135815260200185858581811061082b5761082a61273f565b5b905060200201358152602001600081525090806001815401808255809150506001900390600052602060002090600302016000909190919091506000820151816000015560208201518160010155604082015181600201555050807f8a68dd5ddbfcc5467b08bb78844d64853315ada46e7fcfe61e44f1a011ccc0d28686848181106108ba576108b961273f565b5b905060200201358585858181106108d4576108d361273f565b5b905060200201356040516108e992919061276e565b60405180910390a280806108fc906127c6565b9150506107e1565b5050505050565b6109153334610610565b565b60095481565b60075481565b61092b61195b565b6000821161096e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109659061285a565b60405180910390fd5b6003604051806060016040528084815260200183815260200160008152509080600181540180825580915050600190039060005260206000209060030201600090919091909150600082015181600001556020820151816001015560408201518160020155505060016003805490506109e7919061287a565b7f8a68dd5ddbfcc5467b08bb78844d64853315ada46e7fcfe61e44f1a011ccc0d28383604051610a1892919061276e565b60405180910390a25050565b60008060006003805490508410610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906128fa565b60405180910390fd5b600060038581548110610a8657610a8561273f565b5b90600052602060002090600302019050806000015481600101548260020154935093509350509193909250565b7f000000000000000000000000000000000000000000000000000000000000000081565b600260149054906101000a900460ff1681565b610af261195b565b808015610b495750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610c0e576001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cc4565b80158015610c655750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610cc3576000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b8173ffffffffffffffffffffffffffffffffffffffff167fdfd2dc1569d89c1a0e7a6b6d40d4109255212c7da991da1f0a8d0fe1c862d87582604051610d0a91906123b6565b60405180910390a25050565b610d1e6113f4565b600260149054906101000a900460ff1615610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6590612647565b60405180910390fd5b60008111610db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da890612966565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e34906129d2565b60405180910390fd5b610e6a3330838573ffffffffffffffffffffffffffffffffffffffff166119d9909392919063ffffffff16565b6000610e7582611a62565b9050610e83338484846114a5565b50610e8c611952565b5050565b610e9861195b565b610ea26000611a6c565b565b610eac61195b565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f70880247142cf113e15f57599afcb48f4cdd196159d882cda54475da68ea996160405160405180910390a250565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600380549050905090565b610fb761195b565b81600781905550806008819055505050565b6060600580548060200260200160405190810160405280929190818152602001828054801561104d57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611003575b5050505050905090565b61105f61195b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c590612a3e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b45760008273ffffffffffffffffffffffffffffffffffffffff168260405161112890612a8f565b60006040518083038185875af1925050503d8060008114611165576040519150601f19603f3d011682016040523d82523d6000602084013e61116a565b606091505b50509050806111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a590612af0565b60405180910390fd5b506111e0565b6111df82828573ffffffffffffffffffffffffffffffffffffffff16611b309092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb8360405161123d91906121ec565b60405180910390a3505050565b60085481565b6005818154811061126057600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61129761195b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd90612b82565b60405180910390fd5b61130f81611a6c565b50565b600080600090505b6003805490508110156113f0576003818154811061133b5761133a61273f565b5b906000526020600020906003020160020154600382815481106113615761136061273f565b5b90600052602060002090600302016001015411156113dd576003818154811061138d5761138c61273f565b5b906000526020600020906003020160020154600382815481106113b3576113b261273f565b5b9060005260206000209060030201600101546113cf919061287a565b826113da9190612ba2565b91505b80806113e8906127c6565b91505061131a565b5090565b600260015403611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090612c22565b60405180910390fd5b6002600181905550565b6000806000611450611bb6565b9150915060008160126114639190612c4f565b600a61146f9190612db7565b8361147a9190612e02565b9050670de0b6b3a764000081866114919190612e02565b61149b9190612e73565b9350505050919050565b6000600380549050116114ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e490612ef0565b60405180910390fd5b60008111611530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152790612f5c565b60405180910390fd5b600081600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461157d9190612ba2565b90506007548110156115c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bb90612fc8565b60405180910390fd5b600854811115611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090613034565b60405180910390fd5b60008290506000805b600380549050811080156116265750600083115b15611717576000600382815481106116415761164061273f565b5b90600052602060002090600302019050600081600201548260010154111561167a5781600201548260010154611677919061287a565b90505b60008103611689575050611704565b600081861115611699578161169b565b855b905060006116ad828560000154611d30565b905080866116bb9190612ba2565b9550818460020160008282546116d19190612ba2565b9250508190555081876116e4919061287a565b965081600960008282546116f89190612ba2565b92505081905550505050505b808061170f906127c6565b915050611612565b506000821461175b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611752906130a0565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117b6919061249c565b602060405180830381865afa1580156117d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f791906130d5565b90508181101561183c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118339061314e565b60405180910390fd5b84600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461188b9190612ba2565b925050819055506118dd88837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611b309092919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fd67ebb720e4f9789f32f7cb2c71ad8e5bf9e6aa4793028ee0bad71ecb43db4ae88858942604051611940949392919061316e565b60405180910390a35050505050505050565b60018081905550565b611963611d59565b73ffffffffffffffffffffffffffffffffffffffff16611981610f79565b73ffffffffffffffffffffffffffffffffffffffff16146119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ce906131ff565b60405180910390fd5b565b611a5c846323b872dd60e01b8585856040516024016119fa9392919061321f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611d61565b50505050565b6000819050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611bb18363a9059cbb60e01b8484604051602401611b4f929190613256565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611d61565b505050565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4c91906132f7565b50505091505060008113611c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8c906133be565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d26919061340a565b9150809250509091565b600081670de0b6b3a764000084611d479190612e02565b611d519190612e73565b905092915050565b600033905090565b6000611dc3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611e299092919063ffffffff16565b9050600081511480611de5575080806020019051810190611de4919061344c565b5b611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b906134eb565b60405180910390fd5b505050565b6060611e388484600085611e41565b90509392505050565b606082471015611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d9061357d565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611eaf9190613603565b60006040518083038185875af1925050503d8060008114611eec576040519150601f19603f3d011682016040523d82523d6000602084013e611ef1565b606091505b5091509150611f0287838387611f0e565b92505050949350505050565b60608315611f70576000835103611f6857611f2885611f83565b611f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5e90613666565b60405180910390fd5b5b829050611f7b565b611f7a8383611fa6565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611fb95781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fed91906136db565b60405180910390fd5b5080546000825560030290600052602060002090810190612017919061201a565b50565b5b8082111561204557600080820160009055600182016000905560028201600090555060030161201b565b5090565b600080fd5b600080fd5b6000819050919050565b61206681612053565b811461207157600080fd5b50565b6000813590506120838161205d565b92915050565b60006020828403121561209f5761209e612049565b5b60006120ad84828501612074565b91505092915050565b6120bf81612053565b82525050565b60006060820190506120da60008301866120b6565b6120e760208301856120b6565b6120f460408301846120b6565b949350505050565b60008115159050919050565b612111816120fc565b811461211c57600080fd5b50565b60008135905061212e81612108565b92915050565b60006020828403121561214a57612149612049565b5b60006121588482850161211f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061218c82612161565b9050919050565b61219c81612181565b81146121a757600080fd5b50565b6000813590506121b981612193565b92915050565b6000602082840312156121d5576121d4612049565b5b60006121e3848285016121aa565b91505092915050565b600060208201905061220160008301846120b6565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261222c5761222b612207565b5b8235905067ffffffffffffffff8111156122495761224861220c565b5b60208301915083602082028301111561226557612264612211565b5b9250929050565b6000806000806040858703121561228657612285612049565b5b600085013567ffffffffffffffff8111156122a4576122a361204e565b5b6122b087828801612216565b9450945050602085013567ffffffffffffffff8111156122d3576122d261204e565b5b6122df87828801612216565b925092505092959194509250565b6000806040838503121561230457612303612049565b5b600061231285828601612074565b925050602061232385828601612074565b9150509250929050565b6000819050919050565b600061235261234d61234884612161565b61232d565b612161565b9050919050565b600061236482612337565b9050919050565b600061237682612359565b9050919050565b6123868161236b565b82525050565b60006020820190506123a1600083018461237d565b92915050565b6123b0816120fc565b82525050565b60006020820190506123cb60008301846123a7565b92915050565b600080604083850312156123e8576123e7612049565b5b60006123f6858286016121aa565b92505060206124078582860161211f565b9150509250929050565b6000806040838503121561242857612427612049565b5b6000612436858286016121aa565b925050602061244785828601612074565b9150509250929050565b600061245c82612359565b9050919050565b61246c81612451565b82525050565b60006020820190506124876000830184612463565b92915050565b61249681612181565b82525050565b60006020820190506124b1600083018461248d565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124ec81612181565b82525050565b60006124fe83836124e3565b60208301905092915050565b6000602082019050919050565b6000612522826124b7565b61252c81856124c2565b9350612537836124d3565b8060005b8381101561256857815161254f88826124f2565b975061255a8361250a565b92505060018101905061253b565b5085935050505092915050565b6000602082019050818103600083015261258f8184612517565b905092915050565b6000806000606084860312156125b0576125af612049565b5b60006125be868287016121aa565b93505060206125cf868287016121aa565b92505060406125e086828701612074565b9150509250925092565b600082825260208201905092915050565b7f7061757365640000000000000000000000000000000000000000000000000000600082015250565b60006126316006836125ea565b915061263c826125fb565b602082019050919050565b6000602082019050818103600083015261266081612624565b9050919050565b7f7a65726f20424e42000000000000000000000000000000000000000000000000600082015250565b600061269d6008836125ea565b91506126a882612667565b602082019050919050565b600060208201905081810360008301526126cc81612690565b9050919050565b7f6c656e677468206d69736d617463680000000000000000000000000000000000600082015250565b6000612709600f836125ea565b9150612714826126d3565b602082019050919050565b60006020820190508181036000830152612738816126fc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060408201905061278360008301856120b6565b61279060208301846120b6565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127d182612053565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361280357612802612797565b5b600182019050919050565b7f7072696365203000000000000000000000000000000000000000000000000000600082015250565b60006128446007836125ea565b915061284f8261280e565b602082019050919050565b6000602082019050818103600083015261287381612837565b9050919050565b600061288582612053565b915061289083612053565b92508282039050818111156128a8576128a7612797565b5b92915050565b7f6964780000000000000000000000000000000000000000000000000000000000600082015250565b60006128e46003836125ea565b91506128ef826128ae565b602082019050919050565b60006020820190508181036000830152612913816128d7565b9050919050565b7f7a65726f20616d6f756e74000000000000000000000000000000000000000000600082015250565b6000612950600b836125ea565b915061295b8261291a565b602082019050919050565b6000602082019050818103600083015261297f81612943565b9050919050565b7f746f6b656e206e6f742061636365707465640000000000000000000000000000600082015250565b60006129bc6012836125ea565b91506129c782612986565b602082019050919050565b600060208201905081810360008301526129eb816129af565b9050919050565b7f746f207a65726f00000000000000000000000000000000000000000000000000600082015250565b6000612a286007836125ea565b9150612a33826129f2565b602082019050919050565b60006020820190508181036000830152612a5781612a1b565b9050919050565b600081905092915050565b50565b6000612a79600083612a5e565b9150612a8482612a69565b600082019050919050565b6000612a9a82612a6c565b9150819050919050565b7f424e42207472616e73666572206661696c656400000000000000000000000000600082015250565b6000612ada6013836125ea565b9150612ae582612aa4565b602082019050919050565b60006020820190508181036000830152612b0981612acd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b6c6026836125ea565b9150612b7782612b10565b604082019050919050565b60006020820190508181036000830152612b9b81612b5f565b9050919050565b6000612bad82612053565b9150612bb883612053565b9250828201905080821115612bd057612bcf612797565b5b92915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612c0c601f836125ea565b9150612c1782612bd6565b602082019050919050565b60006020820190508181036000830152612c3b81612bff565b9050919050565b600060ff82169050919050565b6000612c5a82612c42565b9150612c6583612c42565b9250828203905060ff811115612c7e57612c7d612797565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115612cdb57808604811115612cb757612cb6612797565b5b6001851615612cc65780820291505b8081029050612cd485612c84565b9450612c9b565b94509492505050565b600082612cf45760019050612db0565b81612d025760009050612db0565b8160018114612d185760028114612d2257612d51565b6001915050612db0565b60ff841115612d3457612d33612797565b5b8360020a915084821115612d4b57612d4a612797565b5b50612db0565b5060208310610133831016604e8410600b8410161715612d865782820a905083811115612d8157612d80612797565b5b612db0565b612d938484846001612c91565b92509050818404811115612daa57612da9612797565b5b81810290505b9392505050565b6000612dc282612053565b9150612dcd83612c42565b9250612dfa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ce4565b905092915050565b6000612e0d82612053565b9150612e1883612053565b9250828202612e2681612053565b91508282048414831517612e3d57612e3c612797565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e7e82612053565b9150612e8983612053565b925082612e9957612e98612e44565b5b828204905092915050565b7f6e6f207469657273000000000000000000000000000000000000000000000000600082015250565b6000612eda6008836125ea565b9150612ee582612ea4565b602082019050919050565b60006020820190508181036000830152612f0981612ecd565b9050919050565b7f7a65726f20555344000000000000000000000000000000000000000000000000600082015250565b6000612f466008836125ea565b9150612f5182612f10565b602082019050919050565b60006020820190508181036000830152612f7581612f39565b9050919050565b7f62656c6f77206d696e0000000000000000000000000000000000000000000000600082015250565b6000612fb26009836125ea565b9150612fbd82612f7c565b602082019050919050565b60006020820190508181036000830152612fe181612fa5565b9050919050565b7f61626f7665206d61780000000000000000000000000000000000000000000000600082015250565b600061301e6009836125ea565b915061302982612fe8565b602082019050919050565b6000602082019050818103600083015261304d81613011565b9050919050565b7f6578636565647320746f74616c20636170000000000000000000000000000000600082015250565b600061308a6011836125ea565b915061309582613054565b602082019050919050565b600060208201905081810360008301526130b98161307d565b9050919050565b6000815190506130cf8161205d565b92915050565b6000602082840312156130eb576130ea612049565b5b60006130f9848285016130c0565b91505092915050565b7f696e73756666696369656e74204e444700000000000000000000000000000000600082015250565b60006131386010836125ea565b915061314382613102565b602082019050919050565b600060208201905081810360008301526131678161312b565b9050919050565b600060808201905061318360008301876120b6565b61319060208301866120b6565b61319d60408301856120b6565b6131aa60608301846120b6565b95945050505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131e96020836125ea565b91506131f4826131b3565b602082019050919050565b60006020820190508181036000830152613218816131dc565b9050919050565b6000606082019050613234600083018661248d565b613241602083018561248d565b61324e60408301846120b6565b949350505050565b600060408201905061326b600083018561248d565b61327860208301846120b6565b9392505050565b600069ffffffffffffffffffff82169050919050565b61329e8161327f565b81146132a957600080fd5b50565b6000815190506132bb81613295565b92915050565b6000819050919050565b6132d4816132c1565b81146132df57600080fd5b50565b6000815190506132f1816132cb565b92915050565b600080600080600060a0868803121561331357613312612049565b5b6000613321888289016132ac565b9550506020613332888289016132e2565b9450506040613343888289016130c0565b9350506060613354888289016130c0565b9250506080613365888289016132ac565b9150509295509295909350565b7f696e76616c6964206f7261636c6520616e737765720000000000000000000000600082015250565b60006133a86015836125ea565b91506133b382613372565b602082019050919050565b600060208201905081810360008301526133d78161339b565b9050919050565b6133e781612c42565b81146133f257600080fd5b50565b600081519050613404816133de565b92915050565b6000602082840312156134205761341f612049565b5b600061342e848285016133f5565b91505092915050565b60008151905061344681612108565b92915050565b60006020828403121561346257613461612049565b5b600061347084828501613437565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006134d5602a836125ea565b91506134e082613479565b604082019050919050565b60006020820190508181036000830152613504816134c8565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006135676026836125ea565b91506135728261350b565b604082019050919050565b600060208201905081810360008301526135968161355a565b9050919050565b600081519050919050565b60005b838110156135c65780820151818401526020810190506135ab565b60008484015250505050565b60006135dd8261359d565b6135e78185612a5e565b93506135f78185602086016135a8565b80840191505092915050565b600061360f82846135d2565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000613650601d836125ea565b915061365b8261361a565b602082019050919050565b6000602082019050818103600083015261367f81613643565b9050919050565b600081519050919050565b6000601f19601f8301169050919050565b60006136ad82613686565b6136b781856125ea565b93506136c78185602086016135a8565b6136d081613691565b840191505092915050565b600060208201905081810360008301526136f581846136a2565b90509291505056fea2646970667358221220b06daed1fe51a1699f55aa5c1cc371d8d184bb8cb2812a8eada4c7c296d2f4f964736f6c63430008110033",
"deployedBytecode": "0x6080604052600436106101855760003560e01c8063715018a6116100d1578063c67e04d81161008a578063df1a05c311610064578063df1a05c314610554578063e746a1d21461057f578063f2fde38b146105bc578063f89efe93146105e557610196565b8063c67e04d8146104d7578063ca0496ac14610500578063d9caed121461052b57610196565b8063715018a6146103d9578063724e78da146103f0578063741bef1a1461041957806382dd87b8146104445780638da5cb5b14610481578063bc9f63a1146104ac57610196565b80634072e46d1161013e57806356714cf91161011857806356714cf9146103315780635c975abb1461035c5780636c445af5146103875780636e33a831146103b057610196565b80634072e46d1461029e57806345350759146102c95780634f062c5a146102f257610196565b8063039af9eb1461019b5780630cfed2a2146101da5780631a585358146102035780631b8ebc3c1461024057806320f1fc611461026957806339ce44f41461027357610196565b36610196576101943334610610565b005b600080fd5b3480156101a757600080fd5b506101c260048036038101906101bd9190612089565b6106d2565b6040516101d1939291906120c5565b60405180910390f35b3480156101e657600080fd5b5061020160048036038101906101fc9190612134565b61070c565b005b34801561020f57600080fd5b5061022a600480360381019061022591906121bf565b610768565b60405161023791906121ec565b60405180910390f35b34801561024c57600080fd5b506102676004803603810190610262919061226c565b610780565b005b61027161090b565b005b34801561027f57600080fd5b50610288610917565b60405161029591906121ec565b60405180910390f35b3480156102aa57600080fd5b506102b361091d565b6040516102c091906121ec565b60405180910390f35b3480156102d557600080fd5b506102f060048036038101906102eb91906122ed565b610923565b005b3480156102fe57600080fd5b5061031960048036038101906103149190612089565b610a24565b604051610328939291906120c5565b60405180910390f35b34801561033d57600080fd5b50610346610ab3565b604051610353919061238c565b60405180910390f35b34801561036857600080fd5b50610371610ad7565b60405161037e91906123b6565b60405180910390f35b34801561039357600080fd5b506103ae60048036038101906103a991906123d1565b610aea565b005b3480156103bc57600080fd5b506103d760048036038101906103d29190612411565b610d16565b005b3480156103e557600080fd5b506103ee610e90565b005b3480156103fc57600080fd5b50610417600480360381019061041291906121bf565b610ea4565b005b34801561042557600080fd5b5061042e610f33565b60405161043b9190612472565b60405180910390f35b34801561045057600080fd5b5061046b600480360381019061046691906121bf565b610f59565b60405161047891906123b6565b60405180910390f35b34801561048d57600080fd5b50610496610f79565b6040516104a3919061249c565b60405180910390f35b3480156104b857600080fd5b506104c1610fa2565b6040516104ce91906121ec565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f991906122ed565b610faf565b005b34801561050c57600080fd5b50610515610fc9565b6040516105229190612575565b60405180910390f35b34801561053757600080fd5b50610552600480360381019061054d9190612597565b611057565b005b34801561056057600080fd5b5061056961124a565b60405161057691906121ec565b60405180910390f35b34801561058b57600080fd5b506105a660048036038101906105a19190612089565b611250565b6040516105b3919061249c565b60405180910390f35b3480156105c857600080fd5b506105e360048036038101906105de91906121bf565b61128f565b005b3480156105f157600080fd5b506105fa611312565b60405161060791906121ec565b60405180910390f35b6106186113f4565b600260149054906101000a900460ff1615610668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065f90612647565b60405180910390fd5b600081116106ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a2906126b3565b60405180910390fd5b60006106b682611443565b90506106c583600084846114a5565b506106ce611952565b5050565b600381815481106106e257600080fd5b90600052602060002090600302016000915090508060000154908060010154908060020154905083565b61071461195b565b80600260146101000a81548160ff0219169083151502179055507f0e2fb031ee032dc02d8011dc50b816eb450cf856abd8261680dac74f72165bd28160405161075d91906123b6565b60405180910390a150565b60066020528060005260406000206000915090505481565b61078861195b565b8181905084849050146107d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c79061271f565b60405180910390fd5b600360006107de9190611ff6565b60005b84849050811015610904576003604051806060016040528087878581811061080c5761080b61273f565b5b90506020020135815260200185858581811061082b5761082a61273f565b5b905060200201358152602001600081525090806001815401808255809150506001900390600052602060002090600302016000909190919091506000820151816000015560208201518160010155604082015181600201555050807f8a68dd5ddbfcc5467b08bb78844d64853315ada46e7fcfe61e44f1a011ccc0d28686848181106108ba576108b961273f565b5b905060200201358585858181106108d4576108d361273f565b5b905060200201356040516108e992919061276e565b60405180910390a280806108fc906127c6565b9150506107e1565b5050505050565b6109153334610610565b565b60095481565b60075481565b61092b61195b565b6000821161096e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109659061285a565b60405180910390fd5b6003604051806060016040528084815260200183815260200160008152509080600181540180825580915050600190039060005260206000209060030201600090919091909150600082015181600001556020820151816001015560408201518160020155505060016003805490506109e7919061287a565b7f8a68dd5ddbfcc5467b08bb78844d64853315ada46e7fcfe61e44f1a011ccc0d28383604051610a1892919061276e565b60405180910390a25050565b60008060006003805490508410610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a67906128fa565b60405180910390fd5b600060038581548110610a8657610a8561273f565b5b90600052602060002090600302019050806000015481600101548260020154935093509350509193909250565b7f000000000000000000000000000000000000000000000000000000000000000081565b600260149054906101000a900460ff1681565b610af261195b565b808015610b495750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610c0e576001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cc4565b80158015610c655750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15610cc3576000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b8173ffffffffffffffffffffffffffffffffffffffff167fdfd2dc1569d89c1a0e7a6b6d40d4109255212c7da991da1f0a8d0fe1c862d87582604051610d0a91906123b6565b60405180910390a25050565b610d1e6113f4565b600260149054906101000a900460ff1615610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6590612647565b60405180910390fd5b60008111610db1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da890612966565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e34906129d2565b60405180910390fd5b610e6a3330838573ffffffffffffffffffffffffffffffffffffffff166119d9909392919063ffffffff16565b6000610e7582611a62565b9050610e83338484846114a5565b50610e8c611952565b5050565b610e9861195b565b610ea26000611a6c565b565b610eac61195b565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f70880247142cf113e15f57599afcb48f4cdd196159d882cda54475da68ea996160405160405180910390a250565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600380549050905090565b610fb761195b565b81600781905550806008819055505050565b6060600580548060200260200160405190810160405280929190818152602001828054801561104d57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611003575b5050505050905090565b61105f61195b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c590612a3e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b45760008273ffffffffffffffffffffffffffffffffffffffff168260405161112890612a8f565b60006040518083038185875af1925050503d8060008114611165576040519150601f19603f3d011682016040523d82523d6000602084013e61116a565b606091505b50509050806111ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a590612af0565b60405180910390fd5b506111e0565b6111df82828573ffffffffffffffffffffffffffffffffffffffff16611b309092919063ffffffff16565b5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb8360405161123d91906121ec565b60405180910390a3505050565b60085481565b6005818154811061126057600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61129761195b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611306576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fd90612b82565b60405180910390fd5b61130f81611a6c565b50565b600080600090505b6003805490508110156113f0576003818154811061133b5761133a61273f565b5b906000526020600020906003020160020154600382815481106113615761136061273f565b5b90600052602060002090600302016001015411156113dd576003818154811061138d5761138c61273f565b5b906000526020600020906003020160020154600382815481106113b3576113b261273f565b5b9060005260206000209060030201600101546113cf919061287a565b826113da9190612ba2565b91505b80806113e8906127c6565b91505061131a565b5090565b600260015403611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090612c22565b60405180910390fd5b6002600181905550565b6000806000611450611bb6565b9150915060008160126114639190612c4f565b600a61146f9190612db7565b8361147a9190612e02565b9050670de0b6b3a764000081866114919190612e02565b61149b9190612e73565b9350505050919050565b6000600380549050116114ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e490612ef0565b60405180910390fd5b60008111611530576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152790612f5c565b60405180910390fd5b600081600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461157d9190612ba2565b90506007548110156115c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bb90612fc8565b60405180910390fd5b600854811115611609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160090613034565b60405180910390fd5b60008290506000805b600380549050811080156116265750600083115b15611717576000600382815481106116415761164061273f565b5b90600052602060002090600302019050600081600201548260010154111561167a5781600201548260010154611677919061287a565b90505b60008103611689575050611704565b600081861115611699578161169b565b855b905060006116ad828560000154611d30565b905080866116bb9190612ba2565b9550818460020160008282546116d19190612ba2565b9250508190555081876116e4919061287a565b965081600960008282546116f89190612ba2565b92505081905550505050505b808061170f906127c6565b915050611612565b506000821461175b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611752906130a0565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117b6919061249c565b602060405180830381865afa1580156117d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f791906130d5565b90508181101561183c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118339061314e565b60405180910390fd5b84600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461188b9190612ba2565b925050819055506118dd88837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611b309092919063ffffffff16565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fd67ebb720e4f9789f32f7cb2c71ad8e5bf9e6aa4793028ee0bad71ecb43db4ae88858942604051611940949392919061316e565b60405180910390a35050505050505050565b60018081905550565b611963611d59565b73ffffffffffffffffffffffffffffffffffffffff16611981610f79565b73ffffffffffffffffffffffffffffffffffffffff16146119d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ce906131ff565b60405180910390fd5b565b611a5c846323b872dd60e01b8585856040516024016119fa9392919061321f565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611d61565b50505050565b6000819050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611bb18363a9059cbb60e01b8484604051602401611b4f929190613256565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611d61565b505050565b6000806000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4c91906132f7565b50505091505060008113611c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8c906133be565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d26919061340a565b9150809250509091565b600081670de0b6b3a764000084611d479190612e02565b611d519190612e73565b905092915050565b600033905090565b6000611dc3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611e299092919063ffffffff16565b9050600081511480611de5575080806020019051810190611de4919061344c565b5b611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b906134eb565b60405180910390fd5b505050565b6060611e388484600085611e41565b90509392505050565b606082471015611e86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7d9061357d565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611eaf9190613603565b60006040518083038185875af1925050503d8060008114611eec576040519150601f19603f3d011682016040523d82523d6000602084013e611ef1565b606091505b5091509150611f0287838387611f0e565b92505050949350505050565b60608315611f70576000835103611f6857611f2885611f83565b611f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5e90613666565b60405180910390fd5b5b829050611f7b565b611f7a8383611fa6565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600082511115611fb95781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fed91906136db565b60405180910390fd5b5080546000825560030290600052602060002090810190612017919061201a565b50565b5b8082111561204557600080820160009055600182016000905560028201600090555060030161201b565b5090565b600080fd5b600080fd5b6000819050919050565b61206681612053565b811461207157600080fd5b50565b6000813590506120838161205d565b92915050565b60006020828403121561209f5761209e612049565b5b60006120ad84828501612074565b91505092915050565b6120bf81612053565b82525050565b60006060820190506120da60008301866120b6565b6120e760208301856120b6565b6120f460408301846120b6565b949350505050565b60008115159050919050565b612111816120fc565b811461211c57600080fd5b50565b60008135905061212e81612108565b92915050565b60006020828403121561214a57612149612049565b5b60006121588482850161211f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061218c82612161565b9050919050565b61219c81612181565b81146121a757600080fd5b50565b6000813590506121b981612193565b92915050565b6000602082840312156121d5576121d4612049565b5b60006121e3848285016121aa565b91505092915050565b600060208201905061220160008301846120b6565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261222c5761222b612207565b5b8235905067ffffffffffffffff8111156122495761224861220c565b5b60208301915083602082028301111561226557612264612211565b5b9250929050565b6000806000806040858703121561228657612285612049565b5b600085013567ffffffffffffffff8111156122a4576122a361204e565b5b6122b087828801612216565b9450945050602085013567ffffffffffffffff8111156122d3576122d261204e565b5b6122df87828801612216565b925092505092959194509250565b6000806040838503121561230457612303612049565b5b600061231285828601612074565b925050602061232385828601612074565b9150509250929050565b6000819050919050565b600061235261234d61234884612161565b61232d565b612161565b9050919050565b600061236482612337565b9050919050565b600061237682612359565b9050919050565b6123868161236b565b82525050565b60006020820190506123a1600083018461237d565b92915050565b6123b0816120fc565b82525050565b60006020820190506123cb60008301846123a7565b92915050565b600080604083850312156123e8576123e7612049565b5b60006123f6858286016121aa565b92505060206124078582860161211f565b9150509250929050565b6000806040838503121561242857612427612049565b5b6000612436858286016121aa565b925050602061244785828601612074565b9150509250929050565b600061245c82612359565b9050919050565b61246c81612451565b82525050565b60006020820190506124876000830184612463565b92915050565b61249681612181565b82525050565b60006020820190506124b1600083018461248d565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6124ec81612181565b82525050565b60006124fe83836124e3565b60208301905092915050565b6000602082019050919050565b6000612522826124b7565b61252c81856124c2565b9350612537836124d3565b8060005b8381101561256857815161254f88826124f2565b975061255a8361250a565b92505060018101905061253b565b5085935050505092915050565b6000602082019050818103600083015261258f8184612517565b905092915050565b6000806000606084860312156125b0576125af612049565b5b60006125be868287016121aa565b93505060206125cf868287016121aa565b92505060406125e086828701612074565b9150509250925092565b600082825260208201905092915050565b7f7061757365640000000000000000000000000000000000000000000000000000600082015250565b60006126316006836125ea565b915061263c826125fb565b602082019050919050565b6000602082019050818103600083015261266081612624565b9050919050565b7f7a65726f20424e42000000000000000000000000000000000000000000000000600082015250565b600061269d6008836125ea565b91506126a882612667565b602082019050919050565b600060208201905081810360008301526126cc81612690565b9050919050565b7f6c656e677468206d69736d617463680000000000000000000000000000000000600082015250565b6000612709600f836125ea565b9150612714826126d3565b602082019050919050565b60006020820190508181036000830152612738816126fc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060408201905061278360008301856120b6565b61279060208301846120b6565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127d182612053565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361280357612802612797565b5b600182019050919050565b7f7072696365203000000000000000000000000000000000000000000000000000600082015250565b60006128446007836125ea565b915061284f8261280e565b602082019050919050565b6000602082019050818103600083015261287381612837565b9050919050565b600061288582612053565b915061289083612053565b92508282039050818111156128a8576128a7612797565b5b92915050565b7f6964780000000000000000000000000000000000000000000000000000000000600082015250565b60006128e46003836125ea565b91506128ef826128ae565b602082019050919050565b60006020820190508181036000830152612913816128d7565b9050919050565b7f7a65726f20616d6f756e74000000000000000000000000000000000000000000600082015250565b6000612950600b836125ea565b915061295b8261291a565b602082019050919050565b6000602082019050818103600083015261297f81612943565b9050919050565b7f746f6b656e206e6f742061636365707465640000000000000000000000000000600082015250565b60006129bc6012836125ea565b91506129c782612986565b602082019050919050565b600060208201905081810360008301526129eb816129af565b9050919050565b7f746f207a65726f00000000000000000000000000000000000000000000000000600082015250565b6000612a286007836125ea565b9150612a33826129f2565b602082019050919050565b60006020820190508181036000830152612a5781612a1b565b9050919050565b600081905092915050565b50565b6000612a79600083612a5e565b9150612a8482612a69565b600082019050919050565b6000612a9a82612a6c565b9150819050919050565b7f424e42207472616e73666572206661696c656400000000000000000000000000600082015250565b6000612ada6013836125ea565b9150612ae582612aa4565b602082019050919050565b60006020820190508181036000830152612b0981612acd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b6c6026836125ea565b9150612b7782612b10565b604082019050919050565b60006020820190508181036000830152612b9b81612b5f565b9050919050565b6000612bad82612053565b9150612bb883612053565b9250828201905080821115612bd057612bcf612797565b5b92915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612c0c601f836125ea565b9150612c1782612bd6565b602082019050919050565b60006020820190508181036000830152612c3b81612bff565b9050919050565b600060ff82169050919050565b6000612c5a82612c42565b9150612c6583612c42565b9250828203905060ff811115612c7e57612c7d612797565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115612cdb57808604811115612cb757612cb6612797565b5b6001851615612cc65780820291505b8081029050612cd485612c84565b9450612c9b565b94509492505050565b600082612cf45760019050612db0565b81612d025760009050612db0565b8160018114612d185760028114612d2257612d51565b6001915050612db0565b60ff841115612d3457612d33612797565b5b8360020a915084821115612d4b57612d4a612797565b5b50612db0565b5060208310610133831016604e8410600b8410161715612d865782820a905083811115612d8157612d80612797565b5b612db0565b612d938484846001612c91565b92509050818404811115612daa57612da9612797565b5b81810290505b9392505050565b6000612dc282612053565b9150612dcd83612c42565b9250612dfa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612ce4565b905092915050565b6000612e0d82612053565b9150612e1883612053565b9250828202612e2681612053565b91508282048414831517612e3d57612e3c612797565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e7e82612053565b9150612e8983612053565b925082612e9957612e98612e44565b5b828204905092915050565b7f6e6f207469657273000000000000000000000000000000000000000000000000600082015250565b6000612eda6008836125ea565b9150612ee582612ea4565b602082019050919050565b60006020820190508181036000830152612f0981612ecd565b9050919050565b7f7a65726f20555344000000000000000000000000000000000000000000000000600082015250565b6000612f466008836125ea565b9150612f5182612f10565b602082019050919050565b60006020820190508181036000830152612f7581612f39565b9050919050565b7f62656c6f77206d696e0000000000000000000000000000000000000000000000600082015250565b6000612fb26009836125ea565b9150612fbd82612f7c565b602082019050919050565b60006020820190508181036000830152612fe181612fa5565b9050919050565b7f61626f7665206d61780000000000000000000000000000000000000000000000600082015250565b600061301e6009836125ea565b915061302982612fe8565b602082019050919050565b6000602082019050818103600083015261304d81613011565b9050919050565b7f6578636565647320746f74616c20636170000000000000000000000000000000600082015250565b600061308a6011836125ea565b915061309582613054565b602082019050919050565b600060208201905081810360008301526130b98161307d565b9050919050565b6000815190506130cf8161205d565b92915050565b6000602082840312156130eb576130ea612049565b5b60006130f9848285016130c0565b91505092915050565b7f696e73756666696369656e74204e444700000000000000000000000000000000600082015250565b60006131386010836125ea565b915061314382613102565b602082019050919050565b600060208201905081810360008301526131678161312b565b9050919050565b600060808201905061318360008301876120b6565b61319060208301866120b6565b61319d60408301856120b6565b6131aa60608301846120b6565b95945050505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131e96020836125ea565b91506131f4826131b3565b602082019050919050565b60006020820190508181036000830152613218816131dc565b9050919050565b6000606082019050613234600083018661248d565b613241602083018561248d565b61324e60408301846120b6565b949350505050565b600060408201905061326b600083018561248d565b61327860208301846120b6565b9392505050565b600069ffffffffffffffffffff82169050919050565b61329e8161327f565b81146132a957600080fd5b50565b6000815190506132bb81613295565b92915050565b6000819050919050565b6132d4816132c1565b81146132df57600080fd5b50565b6000815190506132f1816132cb565b92915050565b600080600080600060a0868803121561331357613312612049565b5b6000613321888289016132ac565b9550506020613332888289016132e2565b9450506040613343888289016130c0565b9350506060613354888289016130c0565b9250506080613365888289016132ac565b9150509295509295909350565b7f696e76616c6964206f7261636c6520616e737765720000000000000000000000600082015250565b60006133a86015836125ea565b91506133b382613372565b602082019050919050565b600060208201905081810360008301526133d78161339b565b9050919050565b6133e781612c42565b81146133f257600080fd5b50565b600081519050613404816133de565b92915050565b6000602082840312156134205761341f612049565b5b600061342e848285016133f5565b91505092915050565b60008151905061344681612108565b92915050565b60006020828403121561346257613461612049565b5b600061347084828501613437565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006134d5602a836125ea565b91506134e082613479565b604082019050919050565b60006020820190508181036000830152613504816134c8565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b60006135676026836125ea565b91506135728261350b565b604082019050919050565b600060208201905081810360008301526135968161355a565b9050919050565b600081519050919050565b60005b838110156135c65780820151818401526020810190506135ab565b60008484015250505050565b60006135dd8261359d565b6135e78185612a5e565b93506135f78185602086016135a8565b80840191505092915050565b600061360f82846135d2565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b6000613650601d836125ea565b915061365b8261361a565b602082019050919050565b6000602082019050818103600083015261367f81613643565b9050919050565b600081519050919050565b6000601f19601f8301169050919050565b60006136ad82613686565b6136b781856125ea565b93506136c78185602086016135a8565b6136d081613691565b840191505092915050565b600060208201905081810360008301526136f581846136a2565b90509291505056fea2646970667358221220b06daed1fe51a1699f55aa5c1cc371d8d184bb8cb2812a8eada4c7c296d2f4f964736f6c63430008110033",
"linkReferences": {},
"deployedLinkReferences": {}
}