@lukso/lsp23-contracts 0.15.0 → 0.15.1

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.
@@ -1,716 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "UniversalProfilePostDeploymentModule",
4
- "sourceName": "contracts/modules/UniversalProfilePostDeploymentModule.sol",
5
- "abi": [
6
- {
7
- "inputs": [],
8
- "stateMutability": "nonpayable",
9
- "type": "constructor"
10
- },
11
- {
12
- "inputs": [],
13
- "name": "ERC725X_ContractDeploymentFailed",
14
- "type": "error"
15
- },
16
- {
17
- "inputs": [],
18
- "name": "ERC725X_CreateOperationsRequireEmptyRecipientAddress",
19
- "type": "error"
20
- },
21
- {
22
- "inputs": [],
23
- "name": "ERC725X_ExecuteParametersEmptyArray",
24
- "type": "error"
25
- },
26
- {
27
- "inputs": [],
28
- "name": "ERC725X_ExecuteParametersLengthMismatch",
29
- "type": "error"
30
- },
31
- {
32
- "inputs": [
33
- {
34
- "internalType": "uint256",
35
- "name": "balance",
36
- "type": "uint256"
37
- },
38
- {
39
- "internalType": "uint256",
40
- "name": "value",
41
- "type": "uint256"
42
- }
43
- ],
44
- "name": "ERC725X_InsufficientBalance",
45
- "type": "error"
46
- },
47
- {
48
- "inputs": [],
49
- "name": "ERC725X_MsgValueDisallowedInDelegateCall",
50
- "type": "error"
51
- },
52
- {
53
- "inputs": [],
54
- "name": "ERC725X_MsgValueDisallowedInStaticCall",
55
- "type": "error"
56
- },
57
- {
58
- "inputs": [],
59
- "name": "ERC725X_NoContractBytecodeProvided",
60
- "type": "error"
61
- },
62
- {
63
- "inputs": [
64
- {
65
- "internalType": "uint256",
66
- "name": "operationTypeProvided",
67
- "type": "uint256"
68
- }
69
- ],
70
- "name": "ERC725X_UnknownOperationType",
71
- "type": "error"
72
- },
73
- {
74
- "inputs": [],
75
- "name": "ERC725Y_DataKeysValuesEmptyArray",
76
- "type": "error"
77
- },
78
- {
79
- "inputs": [],
80
- "name": "ERC725Y_DataKeysValuesLengthMismatch",
81
- "type": "error"
82
- },
83
- {
84
- "inputs": [
85
- {
86
- "internalType": "address",
87
- "name": "caller",
88
- "type": "address"
89
- }
90
- ],
91
- "name": "LSP14CallerNotPendingOwner",
92
- "type": "error"
93
- },
94
- {
95
- "inputs": [],
96
- "name": "LSP14CannotTransferOwnershipToSelf",
97
- "type": "error"
98
- },
99
- {
100
- "inputs": [],
101
- "name": "LSP14MustAcceptOwnershipInSeparateTransaction",
102
- "type": "error"
103
- },
104
- {
105
- "inputs": [
106
- {
107
- "internalType": "uint256",
108
- "name": "renounceOwnershipStart",
109
- "type": "uint256"
110
- },
111
- {
112
- "internalType": "uint256",
113
- "name": "renounceOwnershipEnd",
114
- "type": "uint256"
115
- }
116
- ],
117
- "name": "LSP14NotInRenounceOwnershipInterval",
118
- "type": "error"
119
- },
120
- {
121
- "inputs": [
122
- {
123
- "internalType": "bool",
124
- "name": "postCall",
125
- "type": "bool"
126
- },
127
- {
128
- "internalType": "bytes4",
129
- "name": "returnedStatus",
130
- "type": "bytes4"
131
- }
132
- ],
133
- "name": "LSP20CallVerificationFailed",
134
- "type": "error"
135
- },
136
- {
137
- "inputs": [
138
- {
139
- "internalType": "bool",
140
- "name": "postCall",
141
- "type": "bool"
142
- }
143
- ],
144
- "name": "LSP20CallingVerifierFailed",
145
- "type": "error"
146
- },
147
- {
148
- "inputs": [
149
- {
150
- "internalType": "address",
151
- "name": "logicVerifier",
152
- "type": "address"
153
- }
154
- ],
155
- "name": "LSP20EOACannotVerifyCall",
156
- "type": "error"
157
- },
158
- {
159
- "inputs": [
160
- {
161
- "internalType": "bytes4",
162
- "name": "functionSelector",
163
- "type": "bytes4"
164
- }
165
- ],
166
- "name": "NoExtensionFoundForFunctionSelector",
167
- "type": "error"
168
- },
169
- {
170
- "anonymous": false,
171
- "inputs": [
172
- {
173
- "indexed": true,
174
- "internalType": "uint256",
175
- "name": "operationType",
176
- "type": "uint256"
177
- },
178
- {
179
- "indexed": true,
180
- "internalType": "address",
181
- "name": "contractAddress",
182
- "type": "address"
183
- },
184
- {
185
- "indexed": false,
186
- "internalType": "uint256",
187
- "name": "value",
188
- "type": "uint256"
189
- },
190
- {
191
- "indexed": true,
192
- "internalType": "bytes32",
193
- "name": "salt",
194
- "type": "bytes32"
195
- }
196
- ],
197
- "name": "ContractCreated",
198
- "type": "event"
199
- },
200
- {
201
- "anonymous": false,
202
- "inputs": [
203
- {
204
- "indexed": true,
205
- "internalType": "bytes32",
206
- "name": "dataKey",
207
- "type": "bytes32"
208
- },
209
- {
210
- "indexed": false,
211
- "internalType": "bytes",
212
- "name": "dataValue",
213
- "type": "bytes"
214
- }
215
- ],
216
- "name": "DataChanged",
217
- "type": "event"
218
- },
219
- {
220
- "anonymous": false,
221
- "inputs": [
222
- {
223
- "indexed": true,
224
- "internalType": "uint256",
225
- "name": "operationType",
226
- "type": "uint256"
227
- },
228
- {
229
- "indexed": true,
230
- "internalType": "address",
231
- "name": "target",
232
- "type": "address"
233
- },
234
- {
235
- "indexed": false,
236
- "internalType": "uint256",
237
- "name": "value",
238
- "type": "uint256"
239
- },
240
- {
241
- "indexed": true,
242
- "internalType": "bytes4",
243
- "name": "selector",
244
- "type": "bytes4"
245
- }
246
- ],
247
- "name": "Executed",
248
- "type": "event"
249
- },
250
- {
251
- "anonymous": false,
252
- "inputs": [],
253
- "name": "OwnershipRenounced",
254
- "type": "event"
255
- },
256
- {
257
- "anonymous": false,
258
- "inputs": [
259
- {
260
- "indexed": true,
261
- "internalType": "address",
262
- "name": "previousOwner",
263
- "type": "address"
264
- },
265
- {
266
- "indexed": true,
267
- "internalType": "address",
268
- "name": "newOwner",
269
- "type": "address"
270
- }
271
- ],
272
- "name": "OwnershipTransferStarted",
273
- "type": "event"
274
- },
275
- {
276
- "anonymous": false,
277
- "inputs": [
278
- {
279
- "indexed": true,
280
- "internalType": "address",
281
- "name": "previousOwner",
282
- "type": "address"
283
- },
284
- {
285
- "indexed": true,
286
- "internalType": "address",
287
- "name": "newOwner",
288
- "type": "address"
289
- }
290
- ],
291
- "name": "OwnershipTransferred",
292
- "type": "event"
293
- },
294
- {
295
- "anonymous": false,
296
- "inputs": [],
297
- "name": "RenounceOwnershipStarted",
298
- "type": "event"
299
- },
300
- {
301
- "anonymous": false,
302
- "inputs": [
303
- {
304
- "indexed": true,
305
- "internalType": "address",
306
- "name": "from",
307
- "type": "address"
308
- },
309
- {
310
- "indexed": true,
311
- "internalType": "uint256",
312
- "name": "value",
313
- "type": "uint256"
314
- },
315
- {
316
- "indexed": true,
317
- "internalType": "bytes32",
318
- "name": "typeId",
319
- "type": "bytes32"
320
- },
321
- {
322
- "indexed": false,
323
- "internalType": "bytes",
324
- "name": "receivedData",
325
- "type": "bytes"
326
- },
327
- {
328
- "indexed": false,
329
- "internalType": "bytes",
330
- "name": "returnedValue",
331
- "type": "bytes"
332
- }
333
- ],
334
- "name": "UniversalReceiver",
335
- "type": "event"
336
- },
337
- {
338
- "stateMutability": "payable",
339
- "type": "fallback"
340
- },
341
- {
342
- "inputs": [],
343
- "name": "RENOUNCE_OWNERSHIP_CONFIRMATION_DELAY",
344
- "outputs": [
345
- {
346
- "internalType": "uint256",
347
- "name": "",
348
- "type": "uint256"
349
- }
350
- ],
351
- "stateMutability": "view",
352
- "type": "function"
353
- },
354
- {
355
- "inputs": [],
356
- "name": "RENOUNCE_OWNERSHIP_CONFIRMATION_PERIOD",
357
- "outputs": [
358
- {
359
- "internalType": "uint256",
360
- "name": "",
361
- "type": "uint256"
362
- }
363
- ],
364
- "stateMutability": "view",
365
- "type": "function"
366
- },
367
- {
368
- "inputs": [],
369
- "name": "VERSION",
370
- "outputs": [
371
- {
372
- "internalType": "string",
373
- "name": "",
374
- "type": "string"
375
- }
376
- ],
377
- "stateMutability": "view",
378
- "type": "function"
379
- },
380
- {
381
- "inputs": [],
382
- "name": "acceptOwnership",
383
- "outputs": [],
384
- "stateMutability": "nonpayable",
385
- "type": "function"
386
- },
387
- {
388
- "inputs": [
389
- {
390
- "internalType": "bytes[]",
391
- "name": "data",
392
- "type": "bytes[]"
393
- }
394
- ],
395
- "name": "batchCalls",
396
- "outputs": [
397
- {
398
- "internalType": "bytes[]",
399
- "name": "results",
400
- "type": "bytes[]"
401
- }
402
- ],
403
- "stateMutability": "nonpayable",
404
- "type": "function"
405
- },
406
- {
407
- "inputs": [
408
- {
409
- "internalType": "uint256",
410
- "name": "operationType",
411
- "type": "uint256"
412
- },
413
- {
414
- "internalType": "address",
415
- "name": "target",
416
- "type": "address"
417
- },
418
- {
419
- "internalType": "uint256",
420
- "name": "value",
421
- "type": "uint256"
422
- },
423
- {
424
- "internalType": "bytes",
425
- "name": "data",
426
- "type": "bytes"
427
- }
428
- ],
429
- "name": "execute",
430
- "outputs": [
431
- {
432
- "internalType": "bytes",
433
- "name": "",
434
- "type": "bytes"
435
- }
436
- ],
437
- "stateMutability": "payable",
438
- "type": "function"
439
- },
440
- {
441
- "inputs": [
442
- {
443
- "internalType": "uint256[]",
444
- "name": "operationsType",
445
- "type": "uint256[]"
446
- },
447
- {
448
- "internalType": "address[]",
449
- "name": "targets",
450
- "type": "address[]"
451
- },
452
- {
453
- "internalType": "uint256[]",
454
- "name": "values",
455
- "type": "uint256[]"
456
- },
457
- {
458
- "internalType": "bytes[]",
459
- "name": "datas",
460
- "type": "bytes[]"
461
- }
462
- ],
463
- "name": "executeBatch",
464
- "outputs": [
465
- {
466
- "internalType": "bytes[]",
467
- "name": "",
468
- "type": "bytes[]"
469
- }
470
- ],
471
- "stateMutability": "payable",
472
- "type": "function"
473
- },
474
- {
475
- "inputs": [
476
- {
477
- "internalType": "address",
478
- "name": "universalProfile",
479
- "type": "address"
480
- },
481
- {
482
- "internalType": "address",
483
- "name": "keyManager",
484
- "type": "address"
485
- },
486
- {
487
- "internalType": "bytes",
488
- "name": "setDataBatchBytes",
489
- "type": "bytes"
490
- }
491
- ],
492
- "name": "executePostDeployment",
493
- "outputs": [],
494
- "stateMutability": "nonpayable",
495
- "type": "function"
496
- },
497
- {
498
- "inputs": [
499
- {
500
- "internalType": "bytes32",
501
- "name": "dataKey",
502
- "type": "bytes32"
503
- }
504
- ],
505
- "name": "getData",
506
- "outputs": [
507
- {
508
- "internalType": "bytes",
509
- "name": "dataValue",
510
- "type": "bytes"
511
- }
512
- ],
513
- "stateMutability": "view",
514
- "type": "function"
515
- },
516
- {
517
- "inputs": [
518
- {
519
- "internalType": "bytes32[]",
520
- "name": "dataKeys",
521
- "type": "bytes32[]"
522
- }
523
- ],
524
- "name": "getDataBatch",
525
- "outputs": [
526
- {
527
- "internalType": "bytes[]",
528
- "name": "dataValues",
529
- "type": "bytes[]"
530
- }
531
- ],
532
- "stateMutability": "view",
533
- "type": "function"
534
- },
535
- {
536
- "inputs": [
537
- {
538
- "internalType": "bytes32",
539
- "name": "dataHash",
540
- "type": "bytes32"
541
- },
542
- {
543
- "internalType": "bytes",
544
- "name": "signature",
545
- "type": "bytes"
546
- }
547
- ],
548
- "name": "isValidSignature",
549
- "outputs": [
550
- {
551
- "internalType": "bytes4",
552
- "name": "returnedStatus",
553
- "type": "bytes4"
554
- }
555
- ],
556
- "stateMutability": "view",
557
- "type": "function"
558
- },
559
- {
560
- "inputs": [],
561
- "name": "owner",
562
- "outputs": [
563
- {
564
- "internalType": "address",
565
- "name": "",
566
- "type": "address"
567
- }
568
- ],
569
- "stateMutability": "view",
570
- "type": "function"
571
- },
572
- {
573
- "inputs": [],
574
- "name": "pendingOwner",
575
- "outputs": [
576
- {
577
- "internalType": "address",
578
- "name": "",
579
- "type": "address"
580
- }
581
- ],
582
- "stateMutability": "view",
583
- "type": "function"
584
- },
585
- {
586
- "inputs": [],
587
- "name": "renounceOwnership",
588
- "outputs": [],
589
- "stateMutability": "nonpayable",
590
- "type": "function"
591
- },
592
- {
593
- "inputs": [
594
- {
595
- "internalType": "bytes32",
596
- "name": "dataKey",
597
- "type": "bytes32"
598
- },
599
- {
600
- "internalType": "bytes",
601
- "name": "dataValue",
602
- "type": "bytes"
603
- }
604
- ],
605
- "name": "setData",
606
- "outputs": [],
607
- "stateMutability": "payable",
608
- "type": "function"
609
- },
610
- {
611
- "inputs": [
612
- {
613
- "internalType": "bytes32[]",
614
- "name": "dataKeys",
615
- "type": "bytes32[]"
616
- },
617
- {
618
- "internalType": "bytes[]",
619
- "name": "dataValues",
620
- "type": "bytes[]"
621
- },
622
- {
623
- "internalType": "address",
624
- "name": "newOwner",
625
- "type": "address"
626
- }
627
- ],
628
- "name": "setDataAndTransferOwnership",
629
- "outputs": [],
630
- "stateMutability": "payable",
631
- "type": "function"
632
- },
633
- {
634
- "inputs": [
635
- {
636
- "internalType": "bytes32[]",
637
- "name": "dataKeys",
638
- "type": "bytes32[]"
639
- },
640
- {
641
- "internalType": "bytes[]",
642
- "name": "dataValues",
643
- "type": "bytes[]"
644
- }
645
- ],
646
- "name": "setDataBatch",
647
- "outputs": [],
648
- "stateMutability": "payable",
649
- "type": "function"
650
- },
651
- {
652
- "inputs": [
653
- {
654
- "internalType": "bytes4",
655
- "name": "interfaceId",
656
- "type": "bytes4"
657
- }
658
- ],
659
- "name": "supportsInterface",
660
- "outputs": [
661
- {
662
- "internalType": "bool",
663
- "name": "",
664
- "type": "bool"
665
- }
666
- ],
667
- "stateMutability": "view",
668
- "type": "function"
669
- },
670
- {
671
- "inputs": [
672
- {
673
- "internalType": "address",
674
- "name": "pendingNewOwner",
675
- "type": "address"
676
- }
677
- ],
678
- "name": "transferOwnership",
679
- "outputs": [],
680
- "stateMutability": "nonpayable",
681
- "type": "function"
682
- },
683
- {
684
- "inputs": [
685
- {
686
- "internalType": "bytes32",
687
- "name": "typeId",
688
- "type": "bytes32"
689
- },
690
- {
691
- "internalType": "bytes",
692
- "name": "receivedData",
693
- "type": "bytes"
694
- }
695
- ],
696
- "name": "universalReceiver",
697
- "outputs": [
698
- {
699
- "internalType": "bytes",
700
- "name": "returnedValues",
701
- "type": "bytes"
702
- }
703
- ],
704
- "stateMutability": "payable",
705
- "type": "function"
706
- },
707
- {
708
- "stateMutability": "payable",
709
- "type": "receive"
710
- }
711
- ],
712
- "bytecode": "0x60806040523480156200001157600080fd5b5060008034156200009c577f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b34336001600160a01b03167f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c260405162000093906040808252600090820181905260606020830181905282015260800190565b60405180910390a45b620000b2816200010260201b6200194b1760201c565b506040805180820190915260048152635ef83ad960e01b6020820152620000fb907feafec4d89fa9619884b600005ef83ad9559033e6e941db7d7c495acdce6163479062000170565b506200038a565b6000546001600160a01b038281169116146200016d57600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0383161790555b50565b60008281526001602052604090206200018a82826200026e565b50817fece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b282604051620001bd91906200033a565b60405180910390a25050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001f457607f821691505b6020821081036200021557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026957600081815260208120601f850160051c81016020861015620002445750805b601f850160051c820191505b81811015620002655782815560010162000250565b5050505b505050565b81516001600160401b038111156200028a576200028a620001c9565b620002a2816200029b8454620001df565b846200021b565b602080601f831160018114620002da5760008415620002c15750858301515b600019600386901b1c1916600185901b17855562000265565b600085815260208120601f198616915b828110156200030b57888601518255948401946001909101908401620002ea565b50858210156200032a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083528351808285015260005b8181101562000369578581018301518582016040015282016200034b565b506000604082860101526040601f19601f8301168501019250505092915050565b613b59806200039a6000396000f3fe6080604052600436106101635760003560e01c8063715018a6116100c0578063dedff9c611610074578063ead3fbdf11610059578063ead3fbdf14610254578063f2fde38b1461046b578063ffa1ad741461048b576101ae565b8063dedff9c61461042d578063e30c39781461044d576101ae565b80637f23690c116100a55780637f23690c146103d55780638da5cb5b146103e8578063979024211461041a576101ae565b8063715018a6146103ab57806379ba5097146103c0576101ae565b806344c028fe1161011757806354f6127f116100fc57806354f6127f146103585780636963d438146103785780636bb56a1414610398576101ae565b806344c028fe146103255780634f04d60a14610345576101ae565b80631626ba7e116101485780631626ba7e146102ac57806328c4d14e146102e55780633185845214610305576101ae565b806301bfba611461025457806301ffc9a71461027c576101ae565b366101ae5734156101ac576101aa7f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b604051806020016040528060008152506104d4565b505b005b6000366060600482101561023c573415610227576102257f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104d492505050565b505b50604080516020810190915260008152610249565b61024683836107aa565b90505b915050805190602001f35b34801561026057600080fd5b5061026960c881565b6040519081526020015b60405180910390f35b34801561028857600080fd5b5061029c610297366004612f1c565b610986565b6040519015158152602001610273565b3480156102b857600080fd5b506102cc6102c7366004612ffe565b610a71565b6040516001600160e01b03199091168152602001610273565b3480156102f157600080fd5b506101ac61030036600461305c565b610c23565b6103186103133660046131f4565b610d14565b604051610273919061339e565b6103386103333660046133b1565b610e20565b6040516102739190613406565b6101ac610353366004613419565b610f03565b34801561036457600080fd5b5061033861037336600461348d565b61102e565b34801561038457600080fd5b506103186103933660046134a6565b611039565b6103386103a6366004612ffe565b6104d4565b3480156103b757600080fd5b506101ac611195565b3480156103cc57600080fd5b506101ac6112df565b6101ac6103e3366004612ffe565b611465565b3480156103f457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610273565b6101ac61042836600461351b565b611548565b34801561043957600080fd5b50610318610448366004613575565b6116f4565b34801561045957600080fd5b506003546001600160a01b0316610402565b34801561047757600080fd5b506101ac6104863660046135aa565b61179f565b34801561049757600080fd5b506103386040518060400160405280600681526020017f302e31352e30000000000000000000000000000000000000000000000000000081525081565b6060341580159061050557507f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d8314155b156105705761056e7f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b6000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104d492505050565b505b600061059b7f0cfc51aec37c55a4d0b1a65c6255c4bf2fbdf6277f3cc0730c45b828b6db8b476119b9565b90506060601482511061064c5760006105b3836135c5565b60601c90506105c981635122dded60e11b611a5b565b1561064a57604051635122dded60e11b81526001600160a01b0382169063a245bbda9061060090339034908b908b90600401613601565b6000604051808303816000875af115801561061f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610647919081019061362f565b91505b505b60006106787f0cfc51aec37c55a4d0b10000000000000000000000000000000000000000000087611ae4565b90506000610685826119b9565b90506060601482511061073657600061069d836135c5565b60601c90506106b381635122dded60e11b611a5b565b1561073457604051635122dded60e11b81526001600160a01b0382169063a245bbda906106ea90339034908e908e90600401613601565b6000604051808303816000875af1158015610709573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610731919081019061362f565b91505b505b838160405160200161074992919061369d565b60405160208183030381529060405295508734336001600160a01b03167f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c28a8a60405161079792919061369d565b60405180910390a4505050505092915050565b60606000806107c46000356001600160e01b031916611b4d565b91509150346000141580156107d7575080155b156108415761083f7f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104d492505050565b505b6000356001600160e01b03191615801561086257506001600160a01b038216155b15610880576040518060200160405280600081525092505050610980565b6001600160a01b0382166108d3576040517fbb370b2b0000000000000000000000000000000000000000000000000000000081526001600160e01b03196000351660048201526024015b60405180910390fd5b600080836001600160a01b0316836108ec5760006108ee565b345b8888333460405160200161090594939291906136c2565b60408051601f198184030181529082905261091f916136f2565b60006040518083038185875af1925050503d806000811461095c576040519150601f19603f3d011682016040523d82523d6000602084013e610961565b606091505b5091509150811561097757935061098092505050565b80518060208301fd5b92915050565b60006001600160e01b03198216630b135d3f60e11b14806109d057506001600160e01b031982167f24871b3d00000000000000000000000000000000000000000000000000000000145b806109eb57506001600160e01b03198216631aed5a8560e21b145b80610a1f57506001600160e01b031982167f94be599900000000000000000000000000000000000000000000000000000000145b80610a5357506001600160e01b031982167f1a0eb6a500000000000000000000000000000000000000000000000000000000145b80610a625750610a6282611c44565b80610980575061098082611c82565b600080610a866000546001600160a01b031690565b90506001600160a01b0381163b15610ba357600080826001600160a01b0316631626ba7e60e01b8787604051602401610ac092919061370e565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610afe91906136f2565b600060405180830381855afa9150503d8060008114610b39576040519150601f19603f3d011682016040523d82523d6000602084013e610b3e565b606091505b50915091506000828015610b53575081516020145b8015610b7a57508151630b135d3f60e11b90610b789084016020908101908501613727565b145b905080610b8f576001600160e01b0319610b98565b630b135d3f60e11b5b945050505050610980565b600080610bb08686611cc0565b90925090506000816004811115610bc957610bc9613740565b14610be257506001600160e01b03199250610980915050565b826001600160a01b0316826001600160a01b031614610c09576001600160e01b0319610c12565b630b135d3f60e11b5b9350505050610980565b5092915050565b600080610c328385018561351b565b91509150856001600160a01b03166344c028fe600430600086868b604051602401610c5f93929190613756565b60408051601f198184030181529181526020820180516001600160e01b03167f4f04d60a000000000000000000000000000000000000000000000000000000001790525160e086901b6001600160e01b0319168152610cc494939291906004016137be565b6000604051808303816000875af1158015610ce3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d0b919081019061362f565b50505050505050565b60603415610d9f576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f1981840301815290829052610d96916137ec565b60405180910390a45b6000546001600160a01b031633819003610dc757610dbf86868686611d05565b915050610e18565b6000610dd282611e95565b90506000610de288888888611d05565b90508115610e1357610e138382604051602001610dff919061339e565b604051602081830303815290604052612061565b925050505b949350505050565b60603415610eab576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f1981840301815290829052610ea2916137ec565b60405180910390a45b6000546001600160a01b031633819003610ecb57610dbf86868686612197565b6000610ed682611e95565b90506000610ee688888888612197565b90508115610e1357610e138382604051602001610dff9190613406565b6000546001600160a01b03163314610fcf5760405162461bcd60e51b815260206004820152606860248201527f556e6976657273616c50726f66696c65496e6974506f73744465706c6f796d6560448201527f6e744d6f64756c653a2073657444617461416e645472616e736665724f776e6560648201527f7273686970206f6e6c7920616c6c6f776564207468726f7567682064656c656760848201527f6174652063616c6c00000000000000000000000000000000000000000000000060a482015260c4016108ca565b60005b835181101561101f57611017848281518110610ff057610ff0613816565b602002602001015184838151811061100a5761100a613816565b60200260200101516122ed565b600101610fd2565b506110298161194b565b505050565b6060610980826119b9565b60608167ffffffffffffffff81111561105457611054612f39565b60405190808252806020026020018201604052801561108757816020015b60608152602001906001900390816110725790505b50905060005b82811015610c1c57600080308686858181106110ab576110ab613816565b90506020028101906110bd919061382c565b6040516110cb929190613873565b600060405180830381855af49150503d8060008114611106576040519150601f19603f3d011682016040523d82523d6000602084013e61110b565b606091505b50915091508161116d578051156111255780518082602001fd5b60405162461bcd60e51b815260206004820152601960248201527f4c5350303a20626174636843616c6c732072657665727465640000000000000060448201526064016108ca565b8084848151811061118057611180613816565b6020908102919091010152505060010161108d565b6000546001600160a01b031633819003611238576000546001600160a01b03166111bd612342565b6000546001600160a01b031661123457604080516001600160a01b0384166020820152600091810191909152611234907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f814906060015b60408051601f198184030181529190526001600160a01b038416919061244e565b5050565b600061124382611e95565b905060006112596000546001600160a01b031690565b9050611263612342565b6000546001600160a01b03166112bd57604080516001600160a01b03851660208201526000918101919091526112bd907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f81490606001611213565b8115611029576110298360405180602001604052806000815250612061565b50565b600354600160a01b900460ff1615611323576040517f5758dd0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546003546001600160a01b039182169291169033821461136e5761134982611e95565b90506113548261194b565b600380546001600160a01b03191690556000600255611376565b6113766124e2565b604080516001600160a01b0380861660208301528416918101919091526113de907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f814906060015b60408051601f198184030181529190526001600160a01b038616919061244e565b604080516001600160a01b038086166020830152841691810191909152611446907fceca317f109c43507871523e82dc2a3cc64dfa18f12da0b6db14f6e23f995538906060015b60408051601f198184030181529190526001600160a01b038516919061244e565b8015611029576110298260405180602001604052806000815250612061565b34156114ee576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f19818403018152908290526114e5916137ec565b60405180910390a45b6000546001600160a01b03163381900361150c5761102983836122ed565b600061151782611e95565b905061152384846122ed565b8015611542576115428260405180602001604052806000815250612061565b50505050565b34156115d1576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f19818403018152908290526115c8916137ec565b60405180910390a45b805182511461160c576040517f3bcc897900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8151600003611647576040517f97da5f9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546001600160a01b0316338190036116845760005b83518110156115425761167c848281518110610ff057610ff0613816565b60010161165e565b600061168f82611e95565b905060005b84518110156116d4576116cc8582815181106116b2576116b2613816565b602002602001015185838151811061100a5761100a613816565b600101611694565b508015611542576115428260405180602001604052806000815250612061565b6060815167ffffffffffffffff81111561171057611710612f39565b60405190808252806020026020018201604052801561174357816020015b606081526020019060019003908161172e5790505b50905060005b82518110156117995761177483828151811061176757611767613816565b60200260200101516119b9565b82828151811061178657611786613816565b6020908102919091010152600101611749565b50919050565b6000546001600160a01b03163381900361186b576003805460ff60a01b1916600160a01b1790556117cf82612548565b816001600160a01b0316816001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a3604080516001600160a01b03808416602083015284169181019190915261185a907fe17117c9d2665d1dbeb479ed8058bbebde3c50ac50e2e65619f60006caac692690606001611425565b6003805460ff60a01b191690555050565b600061187682611e95565b6003805460ff60a01b1916600160a01b179055905061189483612548565b826001600160a01b0316826001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a3604080516001600160a01b03808516602083015285169181019190915261191f907fe17117c9d2665d1dbeb479ed8058bbebde3c50ac50e2e65619f60006caac6926906060016113bd565b6003805460ff60a01b191690558015611029576110298260405180602001604052806000815250612061565b6000546001600160a01b038281169116146112dc57600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0383166001600160a01b031990911617905550565b60008181526001602052604090208054606091906119d690613883565b80601f0160208091040260200160405190810160405280929190818152602001828054611a0290613883565b8015611a4f5780601f10611a2457610100808354040283529160200191611a4f565b820191906000526020600020905b815481529060010190602001808311611a3257829003601f168201915b50505050509050919050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015611acd575060208210155b8015611ad95750600081115b979650505050505050565b604080517fffffffffffffffffffff00000000000000000000000000000000000000000000841660208201526000602a82018190526bffffffffffffffffffffffff198416602c83015291829101604051602081830303815290604052905080610e18906138b7565b60008080611b857fcee78b4094da86011096000000000000000000000000000000000000000000006001600160e01b03198616611ae4565b90506000611b92826119b9565b9050601481511015611bab575060009485945092505050565b8051601503611c2c5780601481518110611bc757611bc7613816565b01602001517fff00000000000000000000000000000000000000000000000000000000000000167f010000000000000000000000000000000000000000000000000000000000000003611c2c57611c1d816135c5565b60601c95600195509350505050565b611c35816135c5565b60601c95600095509350505050565b60006001600160e01b031982167fa918fa6b0000000000000000000000000000000000000000000000000000000014806109805750610980826125b1565b600080611c956301ffc9a760e01b611b4d565b5090506001600160a01b038116611caf5750600092915050565b611cb98184611a5b565b9392505050565b6000808251604103611cf65760208301516040840151606085015160001a611cea878285856125ef565b94509450505050611cfe565b506000905060025b9250929050565b606083518551141580611d26575082518451141580611d2657508151835114155b15611d5d576040517f3ff55f4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8451600003611d98576040517fe9ad2b5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000855167ffffffffffffffff811115611db457611db4612f39565b604051908082528060200260200182016040528015611de757816020015b6060815260200190600190039081611dd25790505b50905060005b8651811015611e8b57611e66878281518110611e0b57611e0b613816565b6020026020010151878381518110611e2557611e25613816565b6020026020010151878481518110611e3f57611e3f613816565b6020026020010151878581518110611e5957611e59613816565b6020026020010151612197565b828281518110611e7857611e78613816565b6020908102919091010152600101611ded565b5095945050505050565b6000816001600160a01b03163b600003611ee6576040517f0c3923010000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016108ca565b6040517fde928f140000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063de928f1490611f3690339030908290349060009036906004016138db565b6020604051808303816000875af1925050508015611f71575060408051601f3d908101601f19168201909252611f6e91810190613938565b60015b611fb0573d808015611f9f576040519150601f19603f3d011682016040523d82523d6000602084013e611fa4565b606091505b506117996000826126b3565b7fffffff000000000000000000000000000000000000000000000000000000000081167fde928f00000000000000000000000000000000000000000000000000000000001461202557604051639d6741e360e01b8152600060048201526001600160e01b0319821660248201526044016108ca565b8060031a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b14915050919050565b919050565b816001600160a01b031663d3fc45d33330333460003660405160200161208c96959493929190613955565b60405160208183030381529060405280519060200120836040518363ffffffff1660e01b81526004016120c092919061370e565b6020604051808303816000875af19250505080156120fb575060408051601f3d908101601f191682019092526120f891810190613938565b60015b61213a573d808015612129576040519150601f19603f3d011682016040523d82523d6000602084013e61212e565b606091505b506110296001826126b3565b6001600160e01b031981167fd3fc45d3000000000000000000000000000000000000000000000000000000001461102957604051639d6741e360e01b8152600160048201526001600160e01b0319821660248201526044016108ca565b6060846121b0576121a98484846126f9565b9050610e18565b600185036121ea576001600160a01b038416156121e057604051631820c12560e11b815260040160405180910390fd5b6121a9838361282a565b60028503612224576001600160a01b0384161561221a57604051631820c12560e11b815260040160405180910390fd5b6121a98383612944565b6003850361226e578215612264576040517f72f2bc6a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6121a98483612a2e565b600485036122b85782156122ae576040517f5ac8313500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6121a98483612b32565b6040517f7583b3bc000000000000000000000000000000000000000000000000000000008152600481018690526024016108ca565b600082815260016020526040902061230582826139f3565b50817fece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b2826040516123369190613406565b60405180910390a25050565b60025443906000906123569060c890613ac9565b9050600061236560c883613ac9565b9050808311806123755750600254155b156123bd576002839055600380546001600160a01b03191690556040517f81b7f830f1f0084db6497c486cbe6974c86488dcc4e3738eab94ab6d6b1653e790600090a1505050565b81831015612401576040517f1b08094200000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016108ca565b61240b600061194b565b60006002819055600380546001600160a01b03191690556040517fd1f66c3d2bc1993a86be5e3d33709d98f0442381befcedd29f578b9b2506b1ce9190a1505050565b6124686001600160a01b038416631aed5a8560e21b611a5b565b1561102957604051631aed5a8560e21b81526001600160a01b03841690636bb56a149061249b908590859060040161370e565b6000604051808303816000875af11580156124ba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611542919081019061362f565b6003546001600160a01b03163314612528576040517f451e45280000000000000000000000000000000000000000000000000000000081523360048201526024016108ca565b6125313361194b565b600380546001600160a01b03191690556000600255565b306001600160a01b0382160361258a576040517fe052a6f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b03929092169190911790556000600255565b60006001600160e01b031982167f629aa694000000000000000000000000000000000000000000000000000000001480610980575061098082612be3565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561262657506000905060036126aa565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561267a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166126a3576000600192509250506126aa565b9150600090505b94509492505050565b8051156126c35780518082602001fd5b6040517f8c6a8ae300000000000000000000000000000000000000000000000000000000815282151560048201526024016108ca565b606082471015612725576040516301bf351f60e31b8152476004820152602481018490526044016108ca565b61272e82613adc565b6001600160e01b031916846001600160a01b031660007f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e8660405161277591815260200190565b60405180910390a4600080856001600160a01b0316858560405161279991906136f2565b60006040518083038185875af1925050503d80600081146127d6576040519150601f19603f3d011682016040523d82523d6000602084013e6127db565b606091505b509150915061282082826040518060400160405280601681526020017f455243373235583a20556e6b6e6f776e204572726f7200000000000000000000815250612c31565b9695505050505050565b606082471015612856576040516301bf351f60e31b8152476004820152602481018490526044016108ca565b81516000036128785760405163b81cd8d960e01b815260040160405180910390fd5b600082516020840185f090506001600160a01b0381166128c4576040517f0b07489b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000801b816001600160a01b031660017fa1fb700aaee2ae4a2ff6f91ce7eba292f89c2f5488b8ec4c5c5c8150692595c38760405161290591815260200190565b60405180910390a46040516bffffffffffffffffffffffff19606083901b16602082015260340160405160208183030381529060405291505092915050565b606081516000036129685760405163b81cd8d960e01b815260040160405180910390fd5b6000612981836020855161297c9190613b10565b612c4a565b9050600061299e846000602087516129999190613b10565b612cb0565b905060006129ad868484612dd8565b905082816001600160a01b031660027fa1fb700aaee2ae4a2ff6f91ce7eba292f89c2f5488b8ec4c5c5c8150692595c3896040516129ed91815260200190565b60405180910390a46040516bffffffffffffffffffffffff19606083901b166020820152603401604051602081830303815290604052935050505092915050565b6060612a3982613adc565b6001600160e01b031916836001600160a01b031660037f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e6000604051612a8191815260200190565b60405180910390a4600080846001600160a01b031684604051612aa491906136f2565b600060405180830381855afa9150503d8060008114612adf576040519150601f19603f3d011682016040523d82523d6000602084013e612ae4565b606091505b5091509150612b2982826040518060400160405280601681526020017f455243373235583a20556e6b6e6f776e204572726f7200000000000000000000815250612c31565b95945050505050565b6060612b3d82613adc565b6001600160e01b031916836001600160a01b031660047f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e6000604051612b8591815260200190565b60405180910390a4600080846001600160a01b031684604051612ba891906136f2565b600060405180830381855af49150503d8060008114612adf576040519150601f19603f3d011682016040523d82523d6000602084013e612ae4565b60006001600160e01b031982167f7545acac00000000000000000000000000000000000000000000000000000000148061098057506301ffc9a760e01b6001600160e01b0319831614610980565b60608315612c40575081611cb9565b611cb98383612edc565b6000612c57826020613ac9565b83511015612ca75760405162461bcd60e51b815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e6473000000000000000000000060448201526064016108ca565b50016020015190565b606081612cbe81601f613ac9565b1015612d0c5760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016108ca565b612d168284613ac9565b84511015612d665760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e647300000000000000000000000000000060448201526064016108ca565b606082158015612d855760405191506000825260208201604052612dcf565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612dbe578051835260209283019201612da6565b5050858452601f01601f1916604052505b50949350505050565b600083471015612e2a5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016108ca565b8151600003612e7b5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016108ca565b8282516020840186f590506001600160a01b038116611cb95760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016108ca565b815115612eec5781518083602001fd5b8060405162461bcd60e51b81526004016108ca9190613406565b6001600160e01b0319811681146112dc57600080fd5b600060208284031215612f2e57600080fd5b8135611cb981612f06565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612f7857612f78612f39565b604052919050565b600067ffffffffffffffff821115612f9a57612f9a612f39565b50601f01601f191660200190565b600082601f830112612fb957600080fd5b8135612fcc612fc782612f80565b612f4f565b818152846020838601011115612fe157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561301157600080fd5b82359150602083013567ffffffffffffffff81111561302f57600080fd5b61303b85828601612fa8565b9150509250929050565b80356001600160a01b038116811461205c57600080fd5b6000806000806060858703121561307257600080fd5b61307b85613045565b935061308960208601613045565b9250604085013567ffffffffffffffff808211156130a657600080fd5b818701915087601f8301126130ba57600080fd5b8135818111156130c957600080fd5b8860208285010111156130db57600080fd5b95989497505060200194505050565b600067ffffffffffffffff82111561310457613104612f39565b5060051b60200190565b600082601f83011261311f57600080fd5b8135602061312f612fc7836130ea565b82815260059290921b8401810191818101908684111561314e57600080fd5b8286015b848110156131695780358352918301918301613152565b509695505050505050565b600082601f83011261318557600080fd5b81356020613195612fc7836130ea565b82815260059290921b840181019181810190868411156131b457600080fd5b8286015b8481101561316957803567ffffffffffffffff8111156131d85760008081fd5b6131e68986838b0101612fa8565b8452509183019183016131b8565b6000806000806080858703121561320a57600080fd5b843567ffffffffffffffff8082111561322257600080fd5b61322e8883890161310e565b955060209150818701358181111561324557600080fd5b8701601f8101891361325657600080fd5b8035613264612fc7826130ea565b81815260059190911b8201840190848101908b83111561328357600080fd5b928501925b828410156132a85761329984613045565b82529285019290850190613288565b975050505060408701359150808211156132c157600080fd5b6132cd8883890161310e565b935060608701359150808211156132e357600080fd5b506132f087828801613174565b91505092959194509250565b60005b838110156133175781810151838201526020016132ff565b50506000910152565b600081518084526133388160208601602086016132fc565b601f01601f19169290920160200192915050565b6000815180845260208085019450848260051b860182860160005b8581101561339157838303895261337f838351613320565b98850198925090840190600101613367565b5090979650505050505050565b602081526000611cb9602083018461334c565b600080600080608085870312156133c757600080fd5b843593506133d760208601613045565b925060408501359150606085013567ffffffffffffffff8111156133fa57600080fd5b6132f087828801612fa8565b602081526000611cb96020830184613320565b60008060006060848603121561342e57600080fd5b833567ffffffffffffffff8082111561344657600080fd5b6134528783880161310e565b9450602086013591508082111561346857600080fd5b5061347586828701613174565b92505061348460408501613045565b90509250925092565b60006020828403121561349f57600080fd5b5035919050565b600080602083850312156134b957600080fd5b823567ffffffffffffffff808211156134d157600080fd5b818501915085601f8301126134e557600080fd5b8135818111156134f457600080fd5b8660208260051b850101111561350957600080fd5b60209290920196919550909350505050565b6000806040838503121561352e57600080fd5b823567ffffffffffffffff8082111561354657600080fd5b6135528683870161310e565b9350602085013591508082111561356857600080fd5b5061303b85828601613174565b60006020828403121561358757600080fd5b813567ffffffffffffffff81111561359e57600080fd5b610e188482850161310e565b6000602082840312156135bc57600080fd5b611cb982613045565b805160208201516bffffffffffffffffffffffff1980821692919060148310156135f95780818460140360031b1b83161693505b505050919050565b6001600160a01b03851681528360208201528260408201526080606082015260006128206080830184613320565b60006020828403121561364157600080fd5b815167ffffffffffffffff81111561365857600080fd5b8201601f8101841361366957600080fd5b8051613677612fc782612f80565b81815285602083850101111561368c57600080fd5b612b298260208301602086016132fc565b6040815260006136b06040830185613320565b8281036020840152612b298185613320565b8385823760609290921b6bffffffffffffffffffffffff1916919092019081526014810191909152603401919050565b600082516137048184602087016132fc565b9190910192915050565b828152604060208201526000610e186040830184613320565b60006020828403121561373957600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b606080825284519082018190526000906020906080840190828801845b8281101561378f57815184529284019290840190600101613773565b505050838103828501526137a3818761334c565b925050506001600160a01b0383166040830152949350505050565b8481526001600160a01b03841660208201528260408201526080606082015260006128206080830184613320565b6040815260006137ff6040830184613320565b828103602093840152600081529190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261384357600080fd5b83018035915067ffffffffffffffff82111561385e57600080fd5b602001915036819003821315611cfe57600080fd5b8183823760009101908152919050565b600181811c9082168061389757607f821691505b60208210810361179957634e487b7160e01b600052602260045260246000fd5b805160208083015191908110156117995760001960209190910360031b1b16919050565b60006001600160a01b038089168352808816602084015280871660408401525084606083015260a060808301528260a0830152828460c0840137600060c0848401015260c0601f19601f8501168301019050979650505050505050565b60006020828403121561394a57600080fd5b8151611cb981612f06565b60006bffffffffffffffffffffffff19808960601b168352808860601b166014840152808760601b1660288401525084603c8301528284605c8401375060009101605c0190815295945050505050565b601f82111561102957600081815260208120601f850160051c810160208610156139cc5750805b601f850160051c820191505b818110156139eb578281556001016139d8565b505050505050565b815167ffffffffffffffff811115613a0d57613a0d612f39565b613a2181613a1b8454613883565b846139a5565b602080601f831160018114613a565760008415613a3e5750858301515b600019600386901b1c1916600185901b1785556139eb565b600085815260208120601f198616915b82811015613a8557888601518255948401946001909101908401613a66565b5085821015613aa35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082018082111561098057610980613ab3565b6000815160208301516001600160e01b0319808216935060048310156135f95760049290920360031b82901b161692915050565b8181038181111561098057610980613ab356fea2646970667358221220da14b9f5e9d81ca7bcb73a59530318b890c9dba4a160c98a46bbea2d2a6692bb64736f6c63430008110033",
713
- "deployedBytecode": "0x6080604052600436106101635760003560e01c8063715018a6116100c0578063dedff9c611610074578063ead3fbdf11610059578063ead3fbdf14610254578063f2fde38b1461046b578063ffa1ad741461048b576101ae565b8063dedff9c61461042d578063e30c39781461044d576101ae565b80637f23690c116100a55780637f23690c146103d55780638da5cb5b146103e8578063979024211461041a576101ae565b8063715018a6146103ab57806379ba5097146103c0576101ae565b806344c028fe1161011757806354f6127f116100fc57806354f6127f146103585780636963d438146103785780636bb56a1414610398576101ae565b806344c028fe146103255780634f04d60a14610345576101ae565b80631626ba7e116101485780631626ba7e146102ac57806328c4d14e146102e55780633185845214610305576101ae565b806301bfba611461025457806301ffc9a71461027c576101ae565b366101ae5734156101ac576101aa7f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b604051806020016040528060008152506104d4565b505b005b6000366060600482101561023c573415610227576102257f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104d492505050565b505b50604080516020810190915260008152610249565b61024683836107aa565b90505b915050805190602001f35b34801561026057600080fd5b5061026960c881565b6040519081526020015b60405180910390f35b34801561028857600080fd5b5061029c610297366004612f1c565b610986565b6040519015158152602001610273565b3480156102b857600080fd5b506102cc6102c7366004612ffe565b610a71565b6040516001600160e01b03199091168152602001610273565b3480156102f157600080fd5b506101ac61030036600461305c565b610c23565b6103186103133660046131f4565b610d14565b604051610273919061339e565b6103386103333660046133b1565b610e20565b6040516102739190613406565b6101ac610353366004613419565b610f03565b34801561036457600080fd5b5061033861037336600461348d565b61102e565b34801561038457600080fd5b506103186103933660046134a6565b611039565b6103386103a6366004612ffe565b6104d4565b3480156103b757600080fd5b506101ac611195565b3480156103cc57600080fd5b506101ac6112df565b6101ac6103e3366004612ffe565b611465565b3480156103f457600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610273565b6101ac61042836600461351b565b611548565b34801561043957600080fd5b50610318610448366004613575565b6116f4565b34801561045957600080fd5b506003546001600160a01b0316610402565b34801561047757600080fd5b506101ac6104863660046135aa565b61179f565b34801561049757600080fd5b506103386040518060400160405280600681526020017f302e31352e30000000000000000000000000000000000000000000000000000081525081565b6060341580159061050557507f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d8314155b156105705761056e7f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b6000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104d492505050565b505b600061059b7f0cfc51aec37c55a4d0b1a65c6255c4bf2fbdf6277f3cc0730c45b828b6db8b476119b9565b90506060601482511061064c5760006105b3836135c5565b60601c90506105c981635122dded60e11b611a5b565b1561064a57604051635122dded60e11b81526001600160a01b0382169063a245bbda9061060090339034908b908b90600401613601565b6000604051808303816000875af115801561061f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610647919081019061362f565b91505b505b60006106787f0cfc51aec37c55a4d0b10000000000000000000000000000000000000000000087611ae4565b90506000610685826119b9565b90506060601482511061073657600061069d836135c5565b60601c90506106b381635122dded60e11b611a5b565b1561073457604051635122dded60e11b81526001600160a01b0382169063a245bbda906106ea90339034908e908e90600401613601565b6000604051808303816000875af1158015610709573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610731919081019061362f565b91505b505b838160405160200161074992919061369d565b60405160208183030381529060405295508734336001600160a01b03167f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c28a8a60405161079792919061369d565b60405180910390a4505050505092915050565b60606000806107c46000356001600160e01b031916611b4d565b91509150346000141580156107d7575080155b156108415761083f7f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104d492505050565b505b6000356001600160e01b03191615801561086257506001600160a01b038216155b15610880576040518060200160405280600081525092505050610980565b6001600160a01b0382166108d3576040517fbb370b2b0000000000000000000000000000000000000000000000000000000081526001600160e01b03196000351660048201526024015b60405180910390fd5b600080836001600160a01b0316836108ec5760006108ee565b345b8888333460405160200161090594939291906136c2565b60408051601f198184030181529082905261091f916136f2565b60006040518083038185875af1925050503d806000811461095c576040519150601f19603f3d011682016040523d82523d6000602084013e610961565b606091505b5091509150811561097757935061098092505050565b80518060208301fd5b92915050565b60006001600160e01b03198216630b135d3f60e11b14806109d057506001600160e01b031982167f24871b3d00000000000000000000000000000000000000000000000000000000145b806109eb57506001600160e01b03198216631aed5a8560e21b145b80610a1f57506001600160e01b031982167f94be599900000000000000000000000000000000000000000000000000000000145b80610a5357506001600160e01b031982167f1a0eb6a500000000000000000000000000000000000000000000000000000000145b80610a625750610a6282611c44565b80610980575061098082611c82565b600080610a866000546001600160a01b031690565b90506001600160a01b0381163b15610ba357600080826001600160a01b0316631626ba7e60e01b8787604051602401610ac092919061370e565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610afe91906136f2565b600060405180830381855afa9150503d8060008114610b39576040519150601f19603f3d011682016040523d82523d6000602084013e610b3e565b606091505b50915091506000828015610b53575081516020145b8015610b7a57508151630b135d3f60e11b90610b789084016020908101908501613727565b145b905080610b8f576001600160e01b0319610b98565b630b135d3f60e11b5b945050505050610980565b600080610bb08686611cc0565b90925090506000816004811115610bc957610bc9613740565b14610be257506001600160e01b03199250610980915050565b826001600160a01b0316826001600160a01b031614610c09576001600160e01b0319610c12565b630b135d3f60e11b5b9350505050610980565b5092915050565b600080610c328385018561351b565b91509150856001600160a01b03166344c028fe600430600086868b604051602401610c5f93929190613756565b60408051601f198184030181529181526020820180516001600160e01b03167f4f04d60a000000000000000000000000000000000000000000000000000000001790525160e086901b6001600160e01b0319168152610cc494939291906004016137be565b6000604051808303816000875af1158015610ce3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d0b919081019061362f565b50505050505050565b60603415610d9f576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f1981840301815290829052610d96916137ec565b60405180910390a45b6000546001600160a01b031633819003610dc757610dbf86868686611d05565b915050610e18565b6000610dd282611e95565b90506000610de288888888611d05565b90508115610e1357610e138382604051602001610dff919061339e565b604051602081830303815290604052612061565b925050505b949350505050565b60603415610eab576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f1981840301815290829052610ea2916137ec565b60405180910390a45b6000546001600160a01b031633819003610ecb57610dbf86868686612197565b6000610ed682611e95565b90506000610ee688888888612197565b90508115610e1357610e138382604051602001610dff9190613406565b6000546001600160a01b03163314610fcf5760405162461bcd60e51b815260206004820152606860248201527f556e6976657273616c50726f66696c65496e6974506f73744465706c6f796d6560448201527f6e744d6f64756c653a2073657444617461416e645472616e736665724f776e6560648201527f7273686970206f6e6c7920616c6c6f776564207468726f7567682064656c656760848201527f6174652063616c6c00000000000000000000000000000000000000000000000060a482015260c4016108ca565b60005b835181101561101f57611017848281518110610ff057610ff0613816565b602002602001015184838151811061100a5761100a613816565b60200260200101516122ed565b600101610fd2565b506110298161194b565b505050565b6060610980826119b9565b60608167ffffffffffffffff81111561105457611054612f39565b60405190808252806020026020018201604052801561108757816020015b60608152602001906001900390816110725790505b50905060005b82811015610c1c57600080308686858181106110ab576110ab613816565b90506020028101906110bd919061382c565b6040516110cb929190613873565b600060405180830381855af49150503d8060008114611106576040519150601f19603f3d011682016040523d82523d6000602084013e61110b565b606091505b50915091508161116d578051156111255780518082602001fd5b60405162461bcd60e51b815260206004820152601960248201527f4c5350303a20626174636843616c6c732072657665727465640000000000000060448201526064016108ca565b8084848151811061118057611180613816565b6020908102919091010152505060010161108d565b6000546001600160a01b031633819003611238576000546001600160a01b03166111bd612342565b6000546001600160a01b031661123457604080516001600160a01b0384166020820152600091810191909152611234907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f814906060015b60408051601f198184030181529190526001600160a01b038416919061244e565b5050565b600061124382611e95565b905060006112596000546001600160a01b031690565b9050611263612342565b6000546001600160a01b03166112bd57604080516001600160a01b03851660208201526000918101919091526112bd907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f81490606001611213565b8115611029576110298360405180602001604052806000815250612061565b50565b600354600160a01b900460ff1615611323576040517f5758dd0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546003546001600160a01b039182169291169033821461136e5761134982611e95565b90506113548261194b565b600380546001600160a01b03191690556000600255611376565b6113766124e2565b604080516001600160a01b0380861660208301528416918101919091526113de907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f814906060015b60408051601f198184030181529190526001600160a01b038616919061244e565b604080516001600160a01b038086166020830152841691810191909152611446907fceca317f109c43507871523e82dc2a3cc64dfa18f12da0b6db14f6e23f995538906060015b60408051601f198184030181529190526001600160a01b038516919061244e565b8015611029576110298260405180602001604052806000815250612061565b34156114ee576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f19818403018152908290526114e5916137ec565b60405180910390a45b6000546001600160a01b03163381900361150c5761102983836122ed565b600061151782611e95565b905061152384846122ed565b8015611542576115428260405180602001604052806000815250612061565b50505050565b34156115d1576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f19818403018152908290526115c8916137ec565b60405180910390a45b805182511461160c576040517f3bcc897900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8151600003611647576040517f97da5f9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546001600160a01b0316338190036116845760005b83518110156115425761167c848281518110610ff057610ff0613816565b60010161165e565b600061168f82611e95565b905060005b84518110156116d4576116cc8582815181106116b2576116b2613816565b602002602001015185838151811061100a5761100a613816565b600101611694565b508015611542576115428260405180602001604052806000815250612061565b6060815167ffffffffffffffff81111561171057611710612f39565b60405190808252806020026020018201604052801561174357816020015b606081526020019060019003908161172e5790505b50905060005b82518110156117995761177483828151811061176757611767613816565b60200260200101516119b9565b82828151811061178657611786613816565b6020908102919091010152600101611749565b50919050565b6000546001600160a01b03163381900361186b576003805460ff60a01b1916600160a01b1790556117cf82612548565b816001600160a01b0316816001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a3604080516001600160a01b03808416602083015284169181019190915261185a907fe17117c9d2665d1dbeb479ed8058bbebde3c50ac50e2e65619f60006caac692690606001611425565b6003805460ff60a01b191690555050565b600061187682611e95565b6003805460ff60a01b1916600160a01b179055905061189483612548565b826001600160a01b0316826001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a3604080516001600160a01b03808516602083015285169181019190915261191f907fe17117c9d2665d1dbeb479ed8058bbebde3c50ac50e2e65619f60006caac6926906060016113bd565b6003805460ff60a01b191690558015611029576110298260405180602001604052806000815250612061565b6000546001600160a01b038281169116146112dc57600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0383166001600160a01b031990911617905550565b60008181526001602052604090208054606091906119d690613883565b80601f0160208091040260200160405190810160405280929190818152602001828054611a0290613883565b8015611a4f5780601f10611a2457610100808354040283529160200191611a4f565b820191906000526020600020905b815481529060010190602001808311611a3257829003601f168201915b50505050509050919050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015611acd575060208210155b8015611ad95750600081115b979650505050505050565b604080517fffffffffffffffffffff00000000000000000000000000000000000000000000841660208201526000602a82018190526bffffffffffffffffffffffff198416602c83015291829101604051602081830303815290604052905080610e18906138b7565b60008080611b857fcee78b4094da86011096000000000000000000000000000000000000000000006001600160e01b03198616611ae4565b90506000611b92826119b9565b9050601481511015611bab575060009485945092505050565b8051601503611c2c5780601481518110611bc757611bc7613816565b01602001517fff00000000000000000000000000000000000000000000000000000000000000167f010000000000000000000000000000000000000000000000000000000000000003611c2c57611c1d816135c5565b60601c95600195509350505050565b611c35816135c5565b60601c95600095509350505050565b60006001600160e01b031982167fa918fa6b0000000000000000000000000000000000000000000000000000000014806109805750610980826125b1565b600080611c956301ffc9a760e01b611b4d565b5090506001600160a01b038116611caf5750600092915050565b611cb98184611a5b565b9392505050565b6000808251604103611cf65760208301516040840151606085015160001a611cea878285856125ef565b94509450505050611cfe565b506000905060025b9250929050565b606083518551141580611d26575082518451141580611d2657508151835114155b15611d5d576040517f3ff55f4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8451600003611d98576040517fe9ad2b5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000855167ffffffffffffffff811115611db457611db4612f39565b604051908082528060200260200182016040528015611de757816020015b6060815260200190600190039081611dd25790505b50905060005b8651811015611e8b57611e66878281518110611e0b57611e0b613816565b6020026020010151878381518110611e2557611e25613816565b6020026020010151878481518110611e3f57611e3f613816565b6020026020010151878581518110611e5957611e59613816565b6020026020010151612197565b828281518110611e7857611e78613816565b6020908102919091010152600101611ded565b5095945050505050565b6000816001600160a01b03163b600003611ee6576040517f0c3923010000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016108ca565b6040517fde928f140000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063de928f1490611f3690339030908290349060009036906004016138db565b6020604051808303816000875af1925050508015611f71575060408051601f3d908101601f19168201909252611f6e91810190613938565b60015b611fb0573d808015611f9f576040519150601f19603f3d011682016040523d82523d6000602084013e611fa4565b606091505b506117996000826126b3565b7fffffff000000000000000000000000000000000000000000000000000000000081167fde928f00000000000000000000000000000000000000000000000000000000001461202557604051639d6741e360e01b8152600060048201526001600160e01b0319821660248201526044016108ca565b8060031a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b14915050919050565b919050565b816001600160a01b031663d3fc45d33330333460003660405160200161208c96959493929190613955565b60405160208183030381529060405280519060200120836040518363ffffffff1660e01b81526004016120c092919061370e565b6020604051808303816000875af19250505080156120fb575060408051601f3d908101601f191682019092526120f891810190613938565b60015b61213a573d808015612129576040519150601f19603f3d011682016040523d82523d6000602084013e61212e565b606091505b506110296001826126b3565b6001600160e01b031981167fd3fc45d3000000000000000000000000000000000000000000000000000000001461102957604051639d6741e360e01b8152600160048201526001600160e01b0319821660248201526044016108ca565b6060846121b0576121a98484846126f9565b9050610e18565b600185036121ea576001600160a01b038416156121e057604051631820c12560e11b815260040160405180910390fd5b6121a9838361282a565b60028503612224576001600160a01b0384161561221a57604051631820c12560e11b815260040160405180910390fd5b6121a98383612944565b6003850361226e578215612264576040517f72f2bc6a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6121a98483612a2e565b600485036122b85782156122ae576040517f5ac8313500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6121a98483612b32565b6040517f7583b3bc000000000000000000000000000000000000000000000000000000008152600481018690526024016108ca565b600082815260016020526040902061230582826139f3565b50817fece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b2826040516123369190613406565b60405180910390a25050565b60025443906000906123569060c890613ac9565b9050600061236560c883613ac9565b9050808311806123755750600254155b156123bd576002839055600380546001600160a01b03191690556040517f81b7f830f1f0084db6497c486cbe6974c86488dcc4e3738eab94ab6d6b1653e790600090a1505050565b81831015612401576040517f1b08094200000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016108ca565b61240b600061194b565b60006002819055600380546001600160a01b03191690556040517fd1f66c3d2bc1993a86be5e3d33709d98f0442381befcedd29f578b9b2506b1ce9190a1505050565b6124686001600160a01b038416631aed5a8560e21b611a5b565b1561102957604051631aed5a8560e21b81526001600160a01b03841690636bb56a149061249b908590859060040161370e565b6000604051808303816000875af11580156124ba573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611542919081019061362f565b6003546001600160a01b03163314612528576040517f451e45280000000000000000000000000000000000000000000000000000000081523360048201526024016108ca565b6125313361194b565b600380546001600160a01b03191690556000600255565b306001600160a01b0382160361258a576040517fe052a6f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b03929092169190911790556000600255565b60006001600160e01b031982167f629aa694000000000000000000000000000000000000000000000000000000001480610980575061098082612be3565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561262657506000905060036126aa565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561267a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166126a3576000600192509250506126aa565b9150600090505b94509492505050565b8051156126c35780518082602001fd5b6040517f8c6a8ae300000000000000000000000000000000000000000000000000000000815282151560048201526024016108ca565b606082471015612725576040516301bf351f60e31b8152476004820152602481018490526044016108ca565b61272e82613adc565b6001600160e01b031916846001600160a01b031660007f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e8660405161277591815260200190565b60405180910390a4600080856001600160a01b0316858560405161279991906136f2565b60006040518083038185875af1925050503d80600081146127d6576040519150601f19603f3d011682016040523d82523d6000602084013e6127db565b606091505b509150915061282082826040518060400160405280601681526020017f455243373235583a20556e6b6e6f776e204572726f7200000000000000000000815250612c31565b9695505050505050565b606082471015612856576040516301bf351f60e31b8152476004820152602481018490526044016108ca565b81516000036128785760405163b81cd8d960e01b815260040160405180910390fd5b600082516020840185f090506001600160a01b0381166128c4576040517f0b07489b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000801b816001600160a01b031660017fa1fb700aaee2ae4a2ff6f91ce7eba292f89c2f5488b8ec4c5c5c8150692595c38760405161290591815260200190565b60405180910390a46040516bffffffffffffffffffffffff19606083901b16602082015260340160405160208183030381529060405291505092915050565b606081516000036129685760405163b81cd8d960e01b815260040160405180910390fd5b6000612981836020855161297c9190613b10565b612c4a565b9050600061299e846000602087516129999190613b10565b612cb0565b905060006129ad868484612dd8565b905082816001600160a01b031660027fa1fb700aaee2ae4a2ff6f91ce7eba292f89c2f5488b8ec4c5c5c8150692595c3896040516129ed91815260200190565b60405180910390a46040516bffffffffffffffffffffffff19606083901b166020820152603401604051602081830303815290604052935050505092915050565b6060612a3982613adc565b6001600160e01b031916836001600160a01b031660037f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e6000604051612a8191815260200190565b60405180910390a4600080846001600160a01b031684604051612aa491906136f2565b600060405180830381855afa9150503d8060008114612adf576040519150601f19603f3d011682016040523d82523d6000602084013e612ae4565b606091505b5091509150612b2982826040518060400160405280601681526020017f455243373235583a20556e6b6e6f776e204572726f7200000000000000000000815250612c31565b95945050505050565b6060612b3d82613adc565b6001600160e01b031916836001600160a01b031660047f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e6000604051612b8591815260200190565b60405180910390a4600080846001600160a01b031684604051612ba891906136f2565b600060405180830381855af49150503d8060008114612adf576040519150601f19603f3d011682016040523d82523d6000602084013e612ae4565b60006001600160e01b031982167f7545acac00000000000000000000000000000000000000000000000000000000148061098057506301ffc9a760e01b6001600160e01b0319831614610980565b60608315612c40575081611cb9565b611cb98383612edc565b6000612c57826020613ac9565b83511015612ca75760405162461bcd60e51b815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e6473000000000000000000000060448201526064016108ca565b50016020015190565b606081612cbe81601f613ac9565b1015612d0c5760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016108ca565b612d168284613ac9565b84511015612d665760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e647300000000000000000000000000000060448201526064016108ca565b606082158015612d855760405191506000825260208201604052612dcf565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612dbe578051835260209283019201612da6565b5050858452601f01601f1916604052505b50949350505050565b600083471015612e2a5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016108ca565b8151600003612e7b5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016108ca565b8282516020840186f590506001600160a01b038116611cb95760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016108ca565b815115612eec5781518083602001fd5b8060405162461bcd60e51b81526004016108ca9190613406565b6001600160e01b0319811681146112dc57600080fd5b600060208284031215612f2e57600080fd5b8135611cb981612f06565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612f7857612f78612f39565b604052919050565b600067ffffffffffffffff821115612f9a57612f9a612f39565b50601f01601f191660200190565b600082601f830112612fb957600080fd5b8135612fcc612fc782612f80565b612f4f565b818152846020838601011115612fe157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561301157600080fd5b82359150602083013567ffffffffffffffff81111561302f57600080fd5b61303b85828601612fa8565b9150509250929050565b80356001600160a01b038116811461205c57600080fd5b6000806000806060858703121561307257600080fd5b61307b85613045565b935061308960208601613045565b9250604085013567ffffffffffffffff808211156130a657600080fd5b818701915087601f8301126130ba57600080fd5b8135818111156130c957600080fd5b8860208285010111156130db57600080fd5b95989497505060200194505050565b600067ffffffffffffffff82111561310457613104612f39565b5060051b60200190565b600082601f83011261311f57600080fd5b8135602061312f612fc7836130ea565b82815260059290921b8401810191818101908684111561314e57600080fd5b8286015b848110156131695780358352918301918301613152565b509695505050505050565b600082601f83011261318557600080fd5b81356020613195612fc7836130ea565b82815260059290921b840181019181810190868411156131b457600080fd5b8286015b8481101561316957803567ffffffffffffffff8111156131d85760008081fd5b6131e68986838b0101612fa8565b8452509183019183016131b8565b6000806000806080858703121561320a57600080fd5b843567ffffffffffffffff8082111561322257600080fd5b61322e8883890161310e565b955060209150818701358181111561324557600080fd5b8701601f8101891361325657600080fd5b8035613264612fc7826130ea565b81815260059190911b8201840190848101908b83111561328357600080fd5b928501925b828410156132a85761329984613045565b82529285019290850190613288565b975050505060408701359150808211156132c157600080fd5b6132cd8883890161310e565b935060608701359150808211156132e357600080fd5b506132f087828801613174565b91505092959194509250565b60005b838110156133175781810151838201526020016132ff565b50506000910152565b600081518084526133388160208601602086016132fc565b601f01601f19169290920160200192915050565b6000815180845260208085019450848260051b860182860160005b8581101561339157838303895261337f838351613320565b98850198925090840190600101613367565b5090979650505050505050565b602081526000611cb9602083018461334c565b600080600080608085870312156133c757600080fd5b843593506133d760208601613045565b925060408501359150606085013567ffffffffffffffff8111156133fa57600080fd5b6132f087828801612fa8565b602081526000611cb96020830184613320565b60008060006060848603121561342e57600080fd5b833567ffffffffffffffff8082111561344657600080fd5b6134528783880161310e565b9450602086013591508082111561346857600080fd5b5061347586828701613174565b92505061348460408501613045565b90509250925092565b60006020828403121561349f57600080fd5b5035919050565b600080602083850312156134b957600080fd5b823567ffffffffffffffff808211156134d157600080fd5b818501915085601f8301126134e557600080fd5b8135818111156134f457600080fd5b8660208260051b850101111561350957600080fd5b60209290920196919550909350505050565b6000806040838503121561352e57600080fd5b823567ffffffffffffffff8082111561354657600080fd5b6135528683870161310e565b9350602085013591508082111561356857600080fd5b5061303b85828601613174565b60006020828403121561358757600080fd5b813567ffffffffffffffff81111561359e57600080fd5b610e188482850161310e565b6000602082840312156135bc57600080fd5b611cb982613045565b805160208201516bffffffffffffffffffffffff1980821692919060148310156135f95780818460140360031b1b83161693505b505050919050565b6001600160a01b03851681528360208201528260408201526080606082015260006128206080830184613320565b60006020828403121561364157600080fd5b815167ffffffffffffffff81111561365857600080fd5b8201601f8101841361366957600080fd5b8051613677612fc782612f80565b81815285602083850101111561368c57600080fd5b612b298260208301602086016132fc565b6040815260006136b06040830185613320565b8281036020840152612b298185613320565b8385823760609290921b6bffffffffffffffffffffffff1916919092019081526014810191909152603401919050565b600082516137048184602087016132fc565b9190910192915050565b828152604060208201526000610e186040830184613320565b60006020828403121561373957600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b606080825284519082018190526000906020906080840190828801845b8281101561378f57815184529284019290840190600101613773565b505050838103828501526137a3818761334c565b925050506001600160a01b0383166040830152949350505050565b8481526001600160a01b03841660208201528260408201526080606082015260006128206080830184613320565b6040815260006137ff6040830184613320565b828103602093840152600081529190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261384357600080fd5b83018035915067ffffffffffffffff82111561385e57600080fd5b602001915036819003821315611cfe57600080fd5b8183823760009101908152919050565b600181811c9082168061389757607f821691505b60208210810361179957634e487b7160e01b600052602260045260246000fd5b805160208083015191908110156117995760001960209190910360031b1b16919050565b60006001600160a01b038089168352808816602084015280871660408401525084606083015260a060808301528260a0830152828460c0840137600060c0848401015260c0601f19601f8501168301019050979650505050505050565b60006020828403121561394a57600080fd5b8151611cb981612f06565b60006bffffffffffffffffffffffff19808960601b168352808860601b166014840152808760601b1660288401525084603c8301528284605c8401375060009101605c0190815295945050505050565b601f82111561102957600081815260208120601f850160051c810160208610156139cc5750805b601f850160051c820191505b818110156139eb578281556001016139d8565b505050505050565b815167ffffffffffffffff811115613a0d57613a0d612f39565b613a2181613a1b8454613883565b846139a5565b602080601f831160018114613a565760008415613a3e5750858301515b600019600386901b1c1916600185901b1785556139eb565b600085815260208120601f198616915b82811015613a8557888601518255948401946001909101908401613a66565b5085821015613aa35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8082018082111561098057610980613ab3565b6000815160208301516001600160e01b0319808216935060048310156135f95760049290920360031b82901b161692915050565b8181038181111561098057610980613ab356fea2646970667358221220da14b9f5e9d81ca7bcb73a59530318b890c9dba4a160c98a46bbea2d2a6692bb64736f6c63430008110033",
714
- "linkReferences": {},
715
- "deployedLinkReferences": {}
716
- }