@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,742 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "UniversalProfileInitPostDeploymentModule",
4
- "sourceName": "contracts/modules/UniversalProfileInitPostDeploymentModule.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
- {
254
- "indexed": false,
255
- "internalType": "uint8",
256
- "name": "version",
257
- "type": "uint8"
258
- }
259
- ],
260
- "name": "Initialized",
261
- "type": "event"
262
- },
263
- {
264
- "anonymous": false,
265
- "inputs": [],
266
- "name": "OwnershipRenounced",
267
- "type": "event"
268
- },
269
- {
270
- "anonymous": false,
271
- "inputs": [
272
- {
273
- "indexed": true,
274
- "internalType": "address",
275
- "name": "previousOwner",
276
- "type": "address"
277
- },
278
- {
279
- "indexed": true,
280
- "internalType": "address",
281
- "name": "newOwner",
282
- "type": "address"
283
- }
284
- ],
285
- "name": "OwnershipTransferStarted",
286
- "type": "event"
287
- },
288
- {
289
- "anonymous": false,
290
- "inputs": [
291
- {
292
- "indexed": true,
293
- "internalType": "address",
294
- "name": "previousOwner",
295
- "type": "address"
296
- },
297
- {
298
- "indexed": true,
299
- "internalType": "address",
300
- "name": "newOwner",
301
- "type": "address"
302
- }
303
- ],
304
- "name": "OwnershipTransferred",
305
- "type": "event"
306
- },
307
- {
308
- "anonymous": false,
309
- "inputs": [],
310
- "name": "RenounceOwnershipStarted",
311
- "type": "event"
312
- },
313
- {
314
- "anonymous": false,
315
- "inputs": [
316
- {
317
- "indexed": true,
318
- "internalType": "address",
319
- "name": "from",
320
- "type": "address"
321
- },
322
- {
323
- "indexed": true,
324
- "internalType": "uint256",
325
- "name": "value",
326
- "type": "uint256"
327
- },
328
- {
329
- "indexed": true,
330
- "internalType": "bytes32",
331
- "name": "typeId",
332
- "type": "bytes32"
333
- },
334
- {
335
- "indexed": false,
336
- "internalType": "bytes",
337
- "name": "receivedData",
338
- "type": "bytes"
339
- },
340
- {
341
- "indexed": false,
342
- "internalType": "bytes",
343
- "name": "returnedValue",
344
- "type": "bytes"
345
- }
346
- ],
347
- "name": "UniversalReceiver",
348
- "type": "event"
349
- },
350
- {
351
- "stateMutability": "payable",
352
- "type": "fallback"
353
- },
354
- {
355
- "inputs": [],
356
- "name": "RENOUNCE_OWNERSHIP_CONFIRMATION_DELAY",
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": "RENOUNCE_OWNERSHIP_CONFIRMATION_PERIOD",
370
- "outputs": [
371
- {
372
- "internalType": "uint256",
373
- "name": "",
374
- "type": "uint256"
375
- }
376
- ],
377
- "stateMutability": "view",
378
- "type": "function"
379
- },
380
- {
381
- "inputs": [],
382
- "name": "VERSION",
383
- "outputs": [
384
- {
385
- "internalType": "string",
386
- "name": "",
387
- "type": "string"
388
- }
389
- ],
390
- "stateMutability": "view",
391
- "type": "function"
392
- },
393
- {
394
- "inputs": [],
395
- "name": "acceptOwnership",
396
- "outputs": [],
397
- "stateMutability": "nonpayable",
398
- "type": "function"
399
- },
400
- {
401
- "inputs": [
402
- {
403
- "internalType": "bytes[]",
404
- "name": "data",
405
- "type": "bytes[]"
406
- }
407
- ],
408
- "name": "batchCalls",
409
- "outputs": [
410
- {
411
- "internalType": "bytes[]",
412
- "name": "results",
413
- "type": "bytes[]"
414
- }
415
- ],
416
- "stateMutability": "nonpayable",
417
- "type": "function"
418
- },
419
- {
420
- "inputs": [
421
- {
422
- "internalType": "uint256",
423
- "name": "operationType",
424
- "type": "uint256"
425
- },
426
- {
427
- "internalType": "address",
428
- "name": "target",
429
- "type": "address"
430
- },
431
- {
432
- "internalType": "uint256",
433
- "name": "value",
434
- "type": "uint256"
435
- },
436
- {
437
- "internalType": "bytes",
438
- "name": "data",
439
- "type": "bytes"
440
- }
441
- ],
442
- "name": "execute",
443
- "outputs": [
444
- {
445
- "internalType": "bytes",
446
- "name": "",
447
- "type": "bytes"
448
- }
449
- ],
450
- "stateMutability": "payable",
451
- "type": "function"
452
- },
453
- {
454
- "inputs": [
455
- {
456
- "internalType": "uint256[]",
457
- "name": "operationsType",
458
- "type": "uint256[]"
459
- },
460
- {
461
- "internalType": "address[]",
462
- "name": "targets",
463
- "type": "address[]"
464
- },
465
- {
466
- "internalType": "uint256[]",
467
- "name": "values",
468
- "type": "uint256[]"
469
- },
470
- {
471
- "internalType": "bytes[]",
472
- "name": "datas",
473
- "type": "bytes[]"
474
- }
475
- ],
476
- "name": "executeBatch",
477
- "outputs": [
478
- {
479
- "internalType": "bytes[]",
480
- "name": "",
481
- "type": "bytes[]"
482
- }
483
- ],
484
- "stateMutability": "payable",
485
- "type": "function"
486
- },
487
- {
488
- "inputs": [
489
- {
490
- "internalType": "address",
491
- "name": "universalProfile",
492
- "type": "address"
493
- },
494
- {
495
- "internalType": "address",
496
- "name": "keyManager",
497
- "type": "address"
498
- },
499
- {
500
- "internalType": "bytes",
501
- "name": "setDataBatchBytes",
502
- "type": "bytes"
503
- }
504
- ],
505
- "name": "executePostDeployment",
506
- "outputs": [],
507
- "stateMutability": "nonpayable",
508
- "type": "function"
509
- },
510
- {
511
- "inputs": [
512
- {
513
- "internalType": "bytes32",
514
- "name": "dataKey",
515
- "type": "bytes32"
516
- }
517
- ],
518
- "name": "getData",
519
- "outputs": [
520
- {
521
- "internalType": "bytes",
522
- "name": "dataValue",
523
- "type": "bytes"
524
- }
525
- ],
526
- "stateMutability": "view",
527
- "type": "function"
528
- },
529
- {
530
- "inputs": [
531
- {
532
- "internalType": "bytes32[]",
533
- "name": "dataKeys",
534
- "type": "bytes32[]"
535
- }
536
- ],
537
- "name": "getDataBatch",
538
- "outputs": [
539
- {
540
- "internalType": "bytes[]",
541
- "name": "dataValues",
542
- "type": "bytes[]"
543
- }
544
- ],
545
- "stateMutability": "view",
546
- "type": "function"
547
- },
548
- {
549
- "inputs": [
550
- {
551
- "internalType": "address",
552
- "name": "initialOwner",
553
- "type": "address"
554
- }
555
- ],
556
- "name": "initialize",
557
- "outputs": [],
558
- "stateMutability": "payable",
559
- "type": "function"
560
- },
561
- {
562
- "inputs": [
563
- {
564
- "internalType": "bytes32",
565
- "name": "dataHash",
566
- "type": "bytes32"
567
- },
568
- {
569
- "internalType": "bytes",
570
- "name": "signature",
571
- "type": "bytes"
572
- }
573
- ],
574
- "name": "isValidSignature",
575
- "outputs": [
576
- {
577
- "internalType": "bytes4",
578
- "name": "returnedStatus",
579
- "type": "bytes4"
580
- }
581
- ],
582
- "stateMutability": "view",
583
- "type": "function"
584
- },
585
- {
586
- "inputs": [],
587
- "name": "owner",
588
- "outputs": [
589
- {
590
- "internalType": "address",
591
- "name": "",
592
- "type": "address"
593
- }
594
- ],
595
- "stateMutability": "view",
596
- "type": "function"
597
- },
598
- {
599
- "inputs": [],
600
- "name": "pendingOwner",
601
- "outputs": [
602
- {
603
- "internalType": "address",
604
- "name": "",
605
- "type": "address"
606
- }
607
- ],
608
- "stateMutability": "view",
609
- "type": "function"
610
- },
611
- {
612
- "inputs": [],
613
- "name": "renounceOwnership",
614
- "outputs": [],
615
- "stateMutability": "nonpayable",
616
- "type": "function"
617
- },
618
- {
619
- "inputs": [
620
- {
621
- "internalType": "bytes32",
622
- "name": "dataKey",
623
- "type": "bytes32"
624
- },
625
- {
626
- "internalType": "bytes",
627
- "name": "dataValue",
628
- "type": "bytes"
629
- }
630
- ],
631
- "name": "setData",
632
- "outputs": [],
633
- "stateMutability": "payable",
634
- "type": "function"
635
- },
636
- {
637
- "inputs": [
638
- {
639
- "internalType": "bytes32[]",
640
- "name": "dataKeys",
641
- "type": "bytes32[]"
642
- },
643
- {
644
- "internalType": "bytes[]",
645
- "name": "dataValues",
646
- "type": "bytes[]"
647
- },
648
- {
649
- "internalType": "address",
650
- "name": "newOwner",
651
- "type": "address"
652
- }
653
- ],
654
- "name": "setDataAndTransferOwnership",
655
- "outputs": [],
656
- "stateMutability": "payable",
657
- "type": "function"
658
- },
659
- {
660
- "inputs": [
661
- {
662
- "internalType": "bytes32[]",
663
- "name": "dataKeys",
664
- "type": "bytes32[]"
665
- },
666
- {
667
- "internalType": "bytes[]",
668
- "name": "dataValues",
669
- "type": "bytes[]"
670
- }
671
- ],
672
- "name": "setDataBatch",
673
- "outputs": [],
674
- "stateMutability": "payable",
675
- "type": "function"
676
- },
677
- {
678
- "inputs": [
679
- {
680
- "internalType": "bytes4",
681
- "name": "interfaceId",
682
- "type": "bytes4"
683
- }
684
- ],
685
- "name": "supportsInterface",
686
- "outputs": [
687
- {
688
- "internalType": "bool",
689
- "name": "",
690
- "type": "bool"
691
- }
692
- ],
693
- "stateMutability": "view",
694
- "type": "function"
695
- },
696
- {
697
- "inputs": [
698
- {
699
- "internalType": "address",
700
- "name": "pendingNewOwner",
701
- "type": "address"
702
- }
703
- ],
704
- "name": "transferOwnership",
705
- "outputs": [],
706
- "stateMutability": "nonpayable",
707
- "type": "function"
708
- },
709
- {
710
- "inputs": [
711
- {
712
- "internalType": "bytes32",
713
- "name": "typeId",
714
- "type": "bytes32"
715
- },
716
- {
717
- "internalType": "bytes",
718
- "name": "receivedData",
719
- "type": "bytes"
720
- }
721
- ],
722
- "name": "universalReceiver",
723
- "outputs": [
724
- {
725
- "internalType": "bytes",
726
- "name": "returnedValues",
727
- "type": "bytes"
728
- }
729
- ],
730
- "stateMutability": "payable",
731
- "type": "function"
732
- },
733
- {
734
- "stateMutability": "payable",
735
- "type": "receive"
736
- }
737
- ],
738
- "bytecode": "0x60806040523480156200001157600080fd5b506200001c6200002c565b620000266200002c565b620000ed565b600054610100900460ff1615620000995760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000eb576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b613ee780620000fd6000396000f3fe60806040526004361061016e5760003560e01c8063715018a6116100cb578063c4d66de81161007f578063ead3fbdf11610059578063ead3fbdf1461025f578063f2fde38b1461048f578063ffa1ad74146104af576101b9565b8063c4d66de81461043e578063dedff9c614610451578063e30c397814610471576101b9565b80637f23690c116100b05780637f23690c146103e05780638da5cb5b146103f3578063979024211461042b576101b9565b8063715018a6146103b657806379ba5097146103cb576101b9565b806344c028fe1161012257806354f6127f1161010757806354f6127f146103635780636963d438146103835780636bb56a14146103a3576101b9565b806344c028fe146103305780634f04d60a14610350576101b9565b80631626ba7e116101535780631626ba7e146102b757806328c4d14e146102f05780633185845214610310576101b9565b806301bfba611461025f57806301ffc9a714610287576101b9565b366101b95734156101b7576101b57f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b604051806020016040528060008152506104f8565b505b005b60003660606004821015610247573415610232576102307f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104f892505050565b505b50604080516020810190915260008152610254565b61025183836107ce565b90505b915050805190602001f35b34801561026b57600080fd5b5061027460c881565b6040519081526020015b60405180910390f35b34801561029357600080fd5b506102a76102a23660046132a7565b6109aa565b604051901515815260200161027e565b3480156102c357600080fd5b506102d76102d2366004613389565b610a95565b6040516001600160e01b0319909116815260200161027e565b3480156102fc57600080fd5b506101b761030b3660046133e7565b610c3a565b61032361031e36600461357f565b610d2b565b60405161027e919061372c565b61034361033e36600461373f565b610e3d565b60405161027e9190613794565b6101b761035e3660046137a7565b610f26565b34801561036f57600080fd5b5061034361037e36600461381b565b611069565b34801561038f57600080fd5b5061032361039e366004613834565b611074565b6103436103b1366004613389565b6104f8565b3480156103c257600080fd5b506101b76111d0565b3480156103d757600080fd5b506101b7611339565b6101b76103ee366004613389565b6114c5565b3480156103ff57600080fd5b506000546201000090046001600160a01b03165b6040516001600160a01b03909116815260200161027e565b6101b76104393660046138a9565b6115ae565b6101b761044c366004613903565b611760565b34801561045d57600080fd5b5061032361046c36600461391e565b611881565b34801561047d57600080fd5b506003546001600160a01b0316610413565b34801561049b57600080fd5b506101b76104aa366004613903565b61192c565b3480156104bb57600080fd5b506103436040518060400160405280600681526020017f302e31352e30000000000000000000000000000000000000000000000000000081525081565b6060341580159061052957507f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d8314155b15610594576105927f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b6000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104f892505050565b505b60006105bf7f0cfc51aec37c55a4d0b1a65c6255c4bf2fbdf6277f3cc0730c45b828b6db8b47611ade565b9050606060148251106106705760006105d783613953565b60601c90506105ed81635122dded60e11b611b80565b1561066e57604051635122dded60e11b81526001600160a01b0382169063a245bbda9061062490339034908b908b9060040161398f565b6000604051808303816000875af1158015610643573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261066b91908101906139bd565b91505b505b600061069c7f0cfc51aec37c55a4d0b10000000000000000000000000000000000000000000087611c09565b905060006106a982611ade565b90506060601482511061075a5760006106c183613953565b60601c90506106d781635122dded60e11b611b80565b1561075857604051635122dded60e11b81526001600160a01b0382169063a245bbda9061070e90339034908e908e9060040161398f565b6000604051808303816000875af115801561072d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261075591908101906139bd565b91505b505b838160405160200161076d929190613a2b565b60405160208183030381529060405295508734336001600160a01b03167f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c28a8a6040516107bb929190613a2b565b60405180910390a4505050505092915050565b60606000806107e86000356001600160e01b031916611c72565b91509150346000141580156107fb575080155b15610865576108637f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104f892505050565b505b6000356001600160e01b03191615801561088657506001600160a01b038216155b156108a45760405180602001604052806000815250925050506109a4565b6001600160a01b0382166108f7576040517fbb370b2b0000000000000000000000000000000000000000000000000000000081526001600160e01b03196000351660048201526024015b60405180910390fd5b600080836001600160a01b031683610910576000610912565b345b888833346040516020016109299493929190613a50565b60408051601f198184030181529082905261094391613a80565b60006040518083038185875af1925050503d8060008114610980576040519150601f19603f3d011682016040523d82523d6000602084013e610985565b606091505b5091509150811561099b5793506109a492505050565b80518060208301fd5b92915050565b60006001600160e01b03198216630b135d3f60e11b14806109f457506001600160e01b031982167f24871b3d00000000000000000000000000000000000000000000000000000000145b80610a0f57506001600160e01b03198216631aed5a8560e21b145b80610a4357506001600160e01b031982167f94be599900000000000000000000000000000000000000000000000000000000145b80610a7757506001600160e01b031982167f1a0eb6a500000000000000000000000000000000000000000000000000000000145b80610a865750610a8682611d69565b806109a457506109a482611da7565b600080546201000090046001600160a01b0316803b15610bba57600080826001600160a01b0316631626ba7e60e01b8787604051602401610ad7929190613a9c565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610b159190613a80565b600060405180830381855afa9150503d8060008114610b50576040519150601f19603f3d011682016040523d82523d6000602084013e610b55565b606091505b50915091506000828015610b6a575081516020145b8015610b9157508151630b135d3f60e11b90610b8f9084016020908101908501613ab5565b145b905080610ba6576001600160e01b0319610baf565b630b135d3f60e11b5b9450505050506109a4565b600080610bc78686611de5565b90925090506000816004811115610be057610be0613ace565b14610bf957506001600160e01b031992506109a4915050565b826001600160a01b0316826001600160a01b031614610c20576001600160e01b0319610c29565b630b135d3f60e11b5b93505050506109a4565b5092915050565b600080610c49838501856138a9565b91509150856001600160a01b03166344c028fe600430600086868b604051602401610c7693929190613ae4565b60408051601f198184030181529181526020820180516001600160e01b03167f4f04d60a000000000000000000000000000000000000000000000000000000001790525160e086901b6001600160e01b0319168152610cdb9493929190600401613b4c565b6000604051808303816000875af1158015610cfa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2291908101906139bd565b50505050505050565b60603415610db6576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f1981840301815290829052610dad91613b7a565b60405180910390a45b6000546201000090046001600160a01b031633819003610de457610ddc86868686611e2a565b915050610e35565b6000610def82611fba565b90506000610dff88888888611e2a565b90508115610e3057610e308382604051602001610e1c919061372c565b604051602081830303815290604052612186565b925050505b949350505050565b60603415610ec8576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f1981840301815290829052610ebf91613b7a565b60405180910390a45b6000546201000090046001600160a01b031633819003610eee57610ddc868686866122bc565b6000610ef982611fba565b90506000610f09888888886122bc565b90508115610e3057610e308382604051602001610e1c9190613794565b6000546201000090046001600160a01b03166001600160a01b0316336001600160a01b03161461100a5760405162461bcd60e51b815260206004820152606860248201527f556e6976657273616c50726f66696c65496e6974506f73744465706c6f796d6560448201527f6e744d6f64756c653a2073657444617461416e645472616e736665724f776e6560648201527f7273686970206f6e6c7920616c6c6f776564207468726f7567682064656c656760848201527f6174652063616c6c00000000000000000000000000000000000000000000000060a482015260c4016108ee565b60005b835181101561105a5761105284828151811061102b5761102b613ba4565b602002602001015184838151811061104557611045613ba4565b6020026020010151612412565b60010161100d565b5061106481612467565b505050565b60606109a482611ade565b60608167ffffffffffffffff81111561108f5761108f6132c4565b6040519080825280602002602001820160405280156110c257816020015b60608152602001906001900390816110ad5790505b50905060005b82811015610c3357600080308686858181106110e6576110e6613ba4565b90506020028101906110f89190613bba565b604051611106929190613c01565b600060405180830381855af49150503d8060008114611141576040519150601f19603f3d011682016040523d82523d6000602084013e611146565b606091505b5091509150816111a8578051156111605780518082602001fd5b60405162461bcd60e51b815260206004820152601960248201527f4c5350303a20626174636843616c6c732072657665727465640000000000000060448201526064016108ee565b808484815181106111bb576111bb613ba4565b602090810291909101015250506001016110c8565b6000546201000090046001600160a01b031633819003611285576000546201000090046001600160a01b03166112046124fe565b6000546201000090046001600160a01b031661128157604080516001600160a01b0384166020820152600091810191909152611281907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f814906060015b60408051601f198184030181529190526001600160a01b038416919061260a565b5050565b600061129082611fba565b905060006112ad6000546001600160a01b03620100009091041690565b90506112b76124fe565b6000546201000090046001600160a01b031661131757604080516001600160a01b0385166020820152600091810191909152611317907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f81490606001611260565b8115611064576110648360405180602001604052806000815250612186565b50565b600354600160a01b900460ff161561137d576040517f5758dd0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546003546001600160a01b03620100009092048216929116903382146113ce576113a982611fba565b90506113b482612467565b600380546001600160a01b031916905560006002556113d6565b6113d661269e565b604080516001600160a01b03808616602083015284169181019190915261143e907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f814906060015b60408051601f198184030181529190526001600160a01b038616919061260a565b604080516001600160a01b0380861660208301528416918101919091526114a6907fceca317f109c43507871523e82dc2a3cc64dfa18f12da0b6db14f6e23f995538906060015b60408051601f198184030181529190526001600160a01b038516919061260a565b8015611064576110648260405180602001604052806000815250612186565b341561154e576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f198184030181529082905261154591613b7a565b60405180910390a45b6000546201000090046001600160a01b031633819003611572576110648383612412565b600061157d82611fba565b90506115898484612412565b80156115a8576115a88260405180602001604052806000815250612186565b50505050565b3415611637576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f198184030181529082905261162e91613b7a565b60405180910390a45b8051825114611672576040517f3bcc897900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516000036116ad576040517f97da5f9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546201000090046001600160a01b0316338190036116f05760005b83518110156115a8576116e884828151811061102b5761102b613ba4565b6001016116ca565b60006116fb82611fba565b905060005b84518110156117405761173885828151811061171e5761171e613ba4565b602002602001015185838151811061104557611045613ba4565b600101611700565b5080156115a8576115a88260405180602001604052806000815250612186565b600054610100900460ff16158080156117805750600054600160ff909116105b8061179a5750303b15801561179a575060005460ff166001145b61180c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108ee565b6000805460ff19166001179055801561182f576000805461ff0019166101001790555b61183882612704565b8015611281576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6060815167ffffffffffffffff81111561189d5761189d6132c4565b6040519080825280602002602001820160405280156118d057816020015b60608152602001906001900390816118bb5790505b50905060005b8251811015611926576119018382815181106118f4576118f4613ba4565b6020026020010151611ade565b82828151811061191357611913613ba4565b60209081029190910101526001016118d6565b50919050565b6000546201000090046001600160a01b0316338190036119fe576003805460ff60a01b1916600160a01b179055611962826127da565b816001600160a01b0316816001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a3604080516001600160a01b0380841660208301528416918101919091526119ed907fe17117c9d2665d1dbeb479ed8058bbebde3c50ac50e2e65619f60006caac692690606001611485565b6003805460ff60a01b191690555050565b6000611a0982611fba565b6003805460ff60a01b1916600160a01b1790559050611a27836127da565b826001600160a01b0316826001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a3604080516001600160a01b038085166020830152851691810191909152611ab2907fe17117c9d2665d1dbeb479ed8058bbebde3c50ac50e2e65619f60006caac69269060600161141d565b6003805460ff60a01b191690558015611064576110648260405180602001604052806000815250612186565b6000818152600160205260409020805460609190611afb90613c11565b80601f0160208091040260200160405190810160405280929190818152602001828054611b2790613c11565b8015611b745780601f10611b4957610100808354040283529160200191611b74565b820191906000526020600020905b815481529060010190602001808311611b5757829003601f168201915b50505050509050919050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015611bf2575060208210155b8015611bfe5750600081115b979650505050505050565b604080517fffffffffffffffffffff00000000000000000000000000000000000000000000841660208201526000602a82018190526bffffffffffffffffffffffff198416602c83015291829101604051602081830303815290604052905080610e3590613c45565b60008080611caa7fcee78b4094da86011096000000000000000000000000000000000000000000006001600160e01b03198616611c09565b90506000611cb782611ade565b9050601481511015611cd0575060009485945092505050565b8051601503611d515780601481518110611cec57611cec613ba4565b01602001517fff00000000000000000000000000000000000000000000000000000000000000167f010000000000000000000000000000000000000000000000000000000000000003611d5157611d4281613953565b60601c95600195509350505050565b611d5a81613953565b60601c95600095509350505050565b60006001600160e01b031982167fa918fa6b0000000000000000000000000000000000000000000000000000000014806109a457506109a482612843565b600080611dba6301ffc9a760e01b611c72565b5090506001600160a01b038116611dd45750600092915050565b611dde8184611b80565b9392505050565b6000808251604103611e1b5760208301516040840151606085015160001a611e0f87828585612881565b94509450505050611e23565b506000905060025b9250929050565b606083518551141580611e4b575082518451141580611e4b57508151835114155b15611e82576040517f3ff55f4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8451600003611ebd576040517fe9ad2b5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000855167ffffffffffffffff811115611ed957611ed96132c4565b604051908082528060200260200182016040528015611f0c57816020015b6060815260200190600190039081611ef75790505b50905060005b8651811015611fb057611f8b878281518110611f3057611f30613ba4565b6020026020010151878381518110611f4a57611f4a613ba4565b6020026020010151878481518110611f6457611f64613ba4565b6020026020010151878581518110611f7e57611f7e613ba4565b60200260200101516122bc565b828281518110611f9d57611f9d613ba4565b6020908102919091010152600101611f12565b5095945050505050565b6000816001600160a01b03163b60000361200b576040517f0c3923010000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016108ee565b6040517fde928f140000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063de928f149061205b9033903090829034906000903690600401613c69565b6020604051808303816000875af1925050508015612096575060408051601f3d908101601f1916820190925261209391810190613cc6565b60015b6120d5573d8080156120c4576040519150601f19603f3d011682016040523d82523d6000602084013e6120c9565b606091505b50611926600082612945565b7fffffff000000000000000000000000000000000000000000000000000000000081167fde928f00000000000000000000000000000000000000000000000000000000001461214a57604051639d6741e360e01b8152600060048201526001600160e01b0319821660248201526044016108ee565b8060031a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b14915050919050565b919050565b816001600160a01b031663d3fc45d3333033346000366040516020016121b196959493929190613ce3565b60405160208183030381529060405280519060200120836040518363ffffffff1660e01b81526004016121e5929190613a9c565b6020604051808303816000875af1925050508015612220575060408051601f3d908101601f1916820190925261221d91810190613cc6565b60015b61225f573d80801561224e576040519150601f19603f3d011682016040523d82523d6000602084013e612253565b606091505b50611064600182612945565b6001600160e01b031981167fd3fc45d3000000000000000000000000000000000000000000000000000000001461106457604051639d6741e360e01b8152600160048201526001600160e01b0319821660248201526044016108ee565b6060846122d5576122ce84848461298b565b9050610e35565b6001850361230f576001600160a01b0384161561230557604051631820c12560e11b815260040160405180910390fd5b6122ce8383612abc565b60028503612349576001600160a01b0384161561233f57604051631820c12560e11b815260040160405180910390fd5b6122ce8383612bd6565b60038503612393578215612389576040517f72f2bc6a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122ce8483612cc0565b600485036123dd5782156123d3576040517f5ac8313500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122ce8483612dc4565b6040517f7583b3bc000000000000000000000000000000000000000000000000000000008152600481018690526024016108ee565b600082815260016020526040902061242a8282613d81565b50817fece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b28260405161245b9190613794565b60405180910390a25050565b6000546001600160a01b0382811662010000909204161461133657600080546040516001600160a01b03808516936201000090930416917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03831662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff90911617905550565b60025443906000906125129060c890613e57565b9050600061252160c883613e57565b9050808311806125315750600254155b15612579576002839055600380546001600160a01b03191690556040517f81b7f830f1f0084db6497c486cbe6974c86488dcc4e3738eab94ab6d6b1653e790600090a1505050565b818310156125bd576040517f1b08094200000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016108ee565b6125c76000612467565b60006002819055600380546001600160a01b03191690556040517fd1f66c3d2bc1993a86be5e3d33709d98f0442381befcedd29f578b9b2506b1ce9190a1505050565b6126246001600160a01b038416631aed5a8560e21b611b80565b1561106457604051631aed5a8560e21b81526001600160a01b03841690636bb56a14906126579085908590600401613a9c565b6000604051808303816000875af1158015612676573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115a891908101906139bd565b6003546001600160a01b031633146126e4576040517f451e45280000000000000000000000000000000000000000000000000000000081523360048201526024016108ee565b6126ed33612467565b600380546001600160a01b03191690556000600255565b600054610100900460ff1661276f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016108ee565b61277881612e75565b6113367feafec4d89fa9619884b600005ef83ad9559033e6e941db7d7c495acdce61634760001b6040518060400160405280600481526020017f5ef83ad900000000000000000000000000000000000000000000000000000000815250612412565b306001600160a01b0382160361281c576040517fe052a6f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b03929092169190911790556000600255565b60006001600160e01b031982167f629aa6940000000000000000000000000000000000000000000000000000000014806109a457506109a482612f6e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156128b8575060009050600361293c565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561290c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166129355760006001925092505061293c565b9150600090505b94509492505050565b8051156129555780518082602001fd5b6040517f8c6a8ae300000000000000000000000000000000000000000000000000000000815282151560048201526024016108ee565b6060824710156129b7576040516301bf351f60e31b8152476004820152602481018490526044016108ee565b6129c082613e6a565b6001600160e01b031916846001600160a01b031660007f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e86604051612a0791815260200190565b60405180910390a4600080856001600160a01b03168585604051612a2b9190613a80565b60006040518083038185875af1925050503d8060008114612a68576040519150601f19603f3d011682016040523d82523d6000602084013e612a6d565b606091505b5091509150612ab282826040518060400160405280601681526020017f455243373235583a20556e6b6e6f776e204572726f7200000000000000000000815250612fbc565b9695505050505050565b606082471015612ae8576040516301bf351f60e31b8152476004820152602481018490526044016108ee565b8151600003612b0a5760405163b81cd8d960e01b815260040160405180910390fd5b600082516020840185f090506001600160a01b038116612b56576040517f0b07489b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000801b816001600160a01b031660017fa1fb700aaee2ae4a2ff6f91ce7eba292f89c2f5488b8ec4c5c5c8150692595c387604051612b9791815260200190565b60405180910390a46040516bffffffffffffffffffffffff19606083901b16602082015260340160405160208183030381529060405291505092915050565b60608151600003612bfa5760405163b81cd8d960e01b815260040160405180910390fd5b6000612c138360208551612c0e9190613e9e565b612fd5565b90506000612c3084600060208751612c2b9190613e9e565b61303b565b90506000612c3f868484613163565b905082816001600160a01b031660027fa1fb700aaee2ae4a2ff6f91ce7eba292f89c2f5488b8ec4c5c5c8150692595c389604051612c7f91815260200190565b60405180910390a46040516bffffffffffffffffffffffff19606083901b166020820152603401604051602081830303815290604052935050505092915050565b6060612ccb82613e6a565b6001600160e01b031916836001600160a01b031660037f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e6000604051612d1391815260200190565b60405180910390a4600080846001600160a01b031684604051612d369190613a80565b600060405180830381855afa9150503d8060008114612d71576040519150601f19603f3d011682016040523d82523d6000602084013e612d76565b606091505b5091509150612dbb82826040518060400160405280601681526020017f455243373235583a20556e6b6e6f776e204572726f7200000000000000000000815250612fbc565b95945050505050565b6060612dcf82613e6a565b6001600160e01b031916836001600160a01b031660047f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e6000604051612e1791815260200190565b60405180910390a4600080846001600160a01b031684604051612e3a9190613a80565b600060405180830381855af49150503d8060008114612d71576040519150601f19603f3d011682016040523d82523d6000602084013e612d76565b600054610100900460ff16612ee05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016108ee565b3415612f65577f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b34336001600160a01b03167f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c2604051612f5c906040808252600090820181905260606020830181905282015260800190565b60405180910390a45b61133681612467565b60006001600160e01b031982167f7545acac0000000000000000000000000000000000000000000000000000000014806109a457506301ffc9a760e01b6001600160e01b03198316146109a4565b60608315612fcb575081611dde565b611dde8383613267565b6000612fe2826020613e57565b835110156130325760405162461bcd60e51b815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e6473000000000000000000000060448201526064016108ee565b50016020015190565b60608161304981601f613e57565b10156130975760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016108ee565b6130a18284613e57565b845110156130f15760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e647300000000000000000000000000000060448201526064016108ee565b606082158015613110576040519150600082526020820160405261315a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015613149578051835260209283019201613131565b5050858452601f01601f1916604052505b50949350505050565b6000834710156131b55760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016108ee565b81516000036132065760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016108ee565b8282516020840186f590506001600160a01b038116611dde5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016108ee565b8151156132775781518083602001fd5b8060405162461bcd60e51b81526004016108ee9190613794565b6001600160e01b03198116811461133657600080fd5b6000602082840312156132b957600080fd5b8135611dde81613291565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613303576133036132c4565b604052919050565b600067ffffffffffffffff821115613325576133256132c4565b50601f01601f191660200190565b600082601f83011261334457600080fd5b81356133576133528261330b565b6132da565b81815284602083860101111561336c57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561339c57600080fd5b82359150602083013567ffffffffffffffff8111156133ba57600080fd5b6133c685828601613333565b9150509250929050565b80356001600160a01b038116811461218157600080fd5b600080600080606085870312156133fd57600080fd5b613406856133d0565b9350613414602086016133d0565b9250604085013567ffffffffffffffff8082111561343157600080fd5b818701915087601f83011261344557600080fd5b81358181111561345457600080fd5b88602082850101111561346657600080fd5b95989497505060200194505050565b600067ffffffffffffffff82111561348f5761348f6132c4565b5060051b60200190565b600082601f8301126134aa57600080fd5b813560206134ba61335283613475565b82815260059290921b840181019181810190868411156134d957600080fd5b8286015b848110156134f457803583529183019183016134dd565b509695505050505050565b600082601f83011261351057600080fd5b8135602061352061335283613475565b82815260059290921b8401810191818101908684111561353f57600080fd5b8286015b848110156134f457803567ffffffffffffffff8111156135635760008081fd5b6135718986838b0101613333565b845250918301918301613543565b6000806000806080858703121561359557600080fd5b843567ffffffffffffffff808211156135ad57600080fd5b6135b988838901613499565b95506020915081870135818111156135d057600080fd5b8701601f810189136135e157600080fd5b80356135ef61335282613475565b81815260059190911b8201840190848101908b83111561360e57600080fd5b928501925b8284101561363357613624846133d0565b82529285019290850190613613565b9750505050604087013591508082111561364c57600080fd5b61365888838901613499565b9350606087013591508082111561366e57600080fd5b5061367b878288016134ff565b91505092959194509250565b60005b838110156136a257818101518382015260200161368a565b50506000910152565b600081518084526136c3816020860160208601613687565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b8581101561371f57828403895261370d8483516136ab565b988501989350908401906001016136f5565b5091979650505050505050565b602081526000611dde60208301846136d7565b6000806000806080858703121561375557600080fd5b84359350613765602086016133d0565b925060408501359150606085013567ffffffffffffffff81111561378857600080fd5b61367b87828801613333565b602081526000611dde60208301846136ab565b6000806000606084860312156137bc57600080fd5b833567ffffffffffffffff808211156137d457600080fd5b6137e087838801613499565b945060208601359150808211156137f657600080fd5b50613803868287016134ff565b925050613812604085016133d0565b90509250925092565b60006020828403121561382d57600080fd5b5035919050565b6000806020838503121561384757600080fd5b823567ffffffffffffffff8082111561385f57600080fd5b818501915085601f83011261387357600080fd5b81358181111561388257600080fd5b8660208260051b850101111561389757600080fd5b60209290920196919550909350505050565b600080604083850312156138bc57600080fd5b823567ffffffffffffffff808211156138d457600080fd5b6138e086838701613499565b935060208501359150808211156138f657600080fd5b506133c6858286016134ff565b60006020828403121561391557600080fd5b611dde826133d0565b60006020828403121561393057600080fd5b813567ffffffffffffffff81111561394757600080fd5b610e3584828501613499565b805160208201516bffffffffffffffffffffffff1980821692919060148310156139875780818460140360031b1b83161693505b505050919050565b6001600160a01b0385168152836020820152826040820152608060608201526000612ab260808301846136ab565b6000602082840312156139cf57600080fd5b815167ffffffffffffffff8111156139e657600080fd5b8201601f810184136139f757600080fd5b8051613a056133528261330b565b818152856020838501011115613a1a57600080fd5b612dbb826020830160208601613687565b604081526000613a3e60408301856136ab565b8281036020840152612dbb81856136ab565b8385823760609290921b6bffffffffffffffffffffffff1916919092019081526014810191909152603401919050565b60008251613a92818460208701613687565b9190910192915050565b828152604060208201526000610e3560408301846136ab565b600060208284031215613ac757600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b606080825284519082018190526000906020906080840190828801845b82811015613b1d57815184529284019290840190600101613b01565b50505083810382850152613b3181876136d7565b925050506001600160a01b0383166040830152949350505050565b8481526001600160a01b0384166020820152826040820152608060608201526000612ab260808301846136ab565b604081526000613b8d60408301846136ab565b828103602093840152600081529190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112613bd157600080fd5b83018035915067ffffffffffffffff821115613bec57600080fd5b602001915036819003821315611e2357600080fd5b8183823760009101908152919050565b600181811c90821680613c2557607f821691505b60208210810361192657634e487b7160e01b600052602260045260246000fd5b805160208083015191908110156119265760001960209190910360031b1b16919050565b60006001600160a01b038089168352808816602084015280871660408401525084606083015260a060808301528260a0830152828460c0840137600060c0848401015260c0601f19601f8501168301019050979650505050505050565b600060208284031215613cd857600080fd5b8151611dde81613291565b60006bffffffffffffffffffffffff19808960601b168352808860601b166014840152808760601b1660288401525084603c8301528284605c8401375060009101605c0190815295945050505050565b601f82111561106457600081815260208120601f850160051c81016020861015613d5a5750805b601f850160051c820191505b81811015613d7957828155600101613d66565b505050505050565b815167ffffffffffffffff811115613d9b57613d9b6132c4565b613daf81613da98454613c11565b84613d33565b602080601f831160018114613de45760008415613dcc5750858301515b600019600386901b1c1916600185901b178555613d79565b600085815260208120601f198616915b82811015613e1357888601518255948401946001909101908401613df4565b5085821015613e315787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b808201808211156109a4576109a4613e41565b6000815160208301516001600160e01b0319808216935060048310156139875760049290920360031b82901b161692915050565b818103818111156109a4576109a4613e4156fea2646970667358221220540a69164037b2c57d072a469ce283af9b6eef3b24fb30009736a4625ac21dca64736f6c63430008110033",
739
- "deployedBytecode": "0x60806040526004361061016e5760003560e01c8063715018a6116100cb578063c4d66de81161007f578063ead3fbdf11610059578063ead3fbdf1461025f578063f2fde38b1461048f578063ffa1ad74146104af576101b9565b8063c4d66de81461043e578063dedff9c614610451578063e30c397814610471576101b9565b80637f23690c116100b05780637f23690c146103e05780638da5cb5b146103f3578063979024211461042b576101b9565b8063715018a6146103b657806379ba5097146103cb576101b9565b806344c028fe1161012257806354f6127f1161010757806354f6127f146103635780636963d438146103835780636bb56a14146103a3576101b9565b806344c028fe146103305780634f04d60a14610350576101b9565b80631626ba7e116101535780631626ba7e146102b757806328c4d14e146102f05780633185845214610310576101b9565b806301bfba611461025f57806301ffc9a714610287576101b9565b366101b95734156101b7576101b57f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b604051806020016040528060008152506104f8565b505b005b60003660606004821015610247573415610232576102307f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104f892505050565b505b50604080516020810190915260008152610254565b61025183836107ce565b90505b915050805190602001f35b34801561026b57600080fd5b5061027460c881565b6040519081526020015b60405180910390f35b34801561029357600080fd5b506102a76102a23660046132a7565b6109aa565b604051901515815260200161027e565b3480156102c357600080fd5b506102d76102d2366004613389565b610a95565b6040516001600160e01b0319909116815260200161027e565b3480156102fc57600080fd5b506101b761030b3660046133e7565b610c3a565b61032361031e36600461357f565b610d2b565b60405161027e919061372c565b61034361033e36600461373f565b610e3d565b60405161027e9190613794565b6101b761035e3660046137a7565b610f26565b34801561036f57600080fd5b5061034361037e36600461381b565b611069565b34801561038f57600080fd5b5061032361039e366004613834565b611074565b6103436103b1366004613389565b6104f8565b3480156103c257600080fd5b506101b76111d0565b3480156103d757600080fd5b506101b7611339565b6101b76103ee366004613389565b6114c5565b3480156103ff57600080fd5b506000546201000090046001600160a01b03165b6040516001600160a01b03909116815260200161027e565b6101b76104393660046138a9565b6115ae565b6101b761044c366004613903565b611760565b34801561045d57600080fd5b5061032361046c36600461391e565b611881565b34801561047d57600080fd5b506003546001600160a01b0316610413565b34801561049b57600080fd5b506101b76104aa366004613903565b61192c565b3480156104bb57600080fd5b506103436040518060400160405280600681526020017f302e31352e30000000000000000000000000000000000000000000000000000081525081565b6060341580159061052957507f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d8314155b15610594576105927f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b6000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104f892505050565b505b60006105bf7f0cfc51aec37c55a4d0b1a65c6255c4bf2fbdf6277f3cc0730c45b828b6db8b47611ade565b9050606060148251106106705760006105d783613953565b60601c90506105ed81635122dded60e11b611b80565b1561066e57604051635122dded60e11b81526001600160a01b0382169063a245bbda9061062490339034908b908b9060040161398f565b6000604051808303816000875af1158015610643573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261066b91908101906139bd565b91505b505b600061069c7f0cfc51aec37c55a4d0b10000000000000000000000000000000000000000000087611c09565b905060006106a982611ade565b90506060601482511061075a5760006106c183613953565b60601c90506106d781635122dded60e11b611b80565b1561075857604051635122dded60e11b81526001600160a01b0382169063a245bbda9061070e90339034908e908e9060040161398f565b6000604051808303816000875af115801561072d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261075591908101906139bd565b91505b505b838160405160200161076d929190613a2b565b60405160208183030381529060405295508734336001600160a01b03167f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c28a8a6040516107bb929190613a2b565b60405180910390a4505050505092915050565b60606000806107e86000356001600160e01b031916611c72565b91509150346000141580156107fb575080155b15610865576108637f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104f892505050565b505b6000356001600160e01b03191615801561088657506001600160a01b038216155b156108a45760405180602001604052806000815250925050506109a4565b6001600160a01b0382166108f7576040517fbb370b2b0000000000000000000000000000000000000000000000000000000081526001600160e01b03196000351660048201526024015b60405180910390fd5b600080836001600160a01b031683610910576000610912565b345b888833346040516020016109299493929190613a50565b60408051601f198184030181529082905261094391613a80565b60006040518083038185875af1925050503d8060008114610980576040519150601f19603f3d011682016040523d82523d6000602084013e610985565b606091505b5091509150811561099b5793506109a492505050565b80518060208301fd5b92915050565b60006001600160e01b03198216630b135d3f60e11b14806109f457506001600160e01b031982167f24871b3d00000000000000000000000000000000000000000000000000000000145b80610a0f57506001600160e01b03198216631aed5a8560e21b145b80610a4357506001600160e01b031982167f94be599900000000000000000000000000000000000000000000000000000000145b80610a7757506001600160e01b031982167f1a0eb6a500000000000000000000000000000000000000000000000000000000145b80610a865750610a8682611d69565b806109a457506109a482611da7565b600080546201000090046001600160a01b0316803b15610bba57600080826001600160a01b0316631626ba7e60e01b8787604051602401610ad7929190613a9c565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610b159190613a80565b600060405180830381855afa9150503d8060008114610b50576040519150601f19603f3d011682016040523d82523d6000602084013e610b55565b606091505b50915091506000828015610b6a575081516020145b8015610b9157508151630b135d3f60e11b90610b8f9084016020908101908501613ab5565b145b905080610ba6576001600160e01b0319610baf565b630b135d3f60e11b5b9450505050506109a4565b600080610bc78686611de5565b90925090506000816004811115610be057610be0613ace565b14610bf957506001600160e01b031992506109a4915050565b826001600160a01b0316826001600160a01b031614610c20576001600160e01b0319610c29565b630b135d3f60e11b5b93505050506109a4565b5092915050565b600080610c49838501856138a9565b91509150856001600160a01b03166344c028fe600430600086868b604051602401610c7693929190613ae4565b60408051601f198184030181529181526020820180516001600160e01b03167f4f04d60a000000000000000000000000000000000000000000000000000000001790525160e086901b6001600160e01b0319168152610cdb9493929190600401613b4c565b6000604051808303816000875af1158015610cfa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2291908101906139bd565b50505050505050565b60603415610db6576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f1981840301815290829052610dad91613b7a565b60405180910390a45b6000546201000090046001600160a01b031633819003610de457610ddc86868686611e2a565b915050610e35565b6000610def82611fba565b90506000610dff88888888611e2a565b90508115610e3057610e308382604051602001610e1c919061372c565b604051602081830303815290604052612186565b925050505b949350505050565b60603415610ec8576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f1981840301815290829052610ebf91613b7a565b60405180910390a45b6000546201000090046001600160a01b031633819003610eee57610ddc868686866122bc565b6000610ef982611fba565b90506000610f09888888886122bc565b90508115610e3057610e308382604051602001610e1c9190613794565b6000546201000090046001600160a01b03166001600160a01b0316336001600160a01b03161461100a5760405162461bcd60e51b815260206004820152606860248201527f556e6976657273616c50726f66696c65496e6974506f73744465706c6f796d6560448201527f6e744d6f64756c653a2073657444617461416e645472616e736665724f776e6560648201527f7273686970206f6e6c7920616c6c6f776564207468726f7567682064656c656760848201527f6174652063616c6c00000000000000000000000000000000000000000000000060a482015260c4016108ee565b60005b835181101561105a5761105284828151811061102b5761102b613ba4565b602002602001015184838151811061104557611045613ba4565b6020026020010151612412565b60010161100d565b5061106481612467565b505050565b60606109a482611ade565b60608167ffffffffffffffff81111561108f5761108f6132c4565b6040519080825280602002602001820160405280156110c257816020015b60608152602001906001900390816110ad5790505b50905060005b82811015610c3357600080308686858181106110e6576110e6613ba4565b90506020028101906110f89190613bba565b604051611106929190613c01565b600060405180830381855af49150503d8060008114611141576040519150601f19603f3d011682016040523d82523d6000602084013e611146565b606091505b5091509150816111a8578051156111605780518082602001fd5b60405162461bcd60e51b815260206004820152601960248201527f4c5350303a20626174636843616c6c732072657665727465640000000000000060448201526064016108ee565b808484815181106111bb576111bb613ba4565b602090810291909101015250506001016110c8565b6000546201000090046001600160a01b031633819003611285576000546201000090046001600160a01b03166112046124fe565b6000546201000090046001600160a01b031661128157604080516001600160a01b0384166020820152600091810191909152611281907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f814906060015b60408051601f198184030181529190526001600160a01b038416919061260a565b5050565b600061129082611fba565b905060006112ad6000546001600160a01b03620100009091041690565b90506112b76124fe565b6000546201000090046001600160a01b031661131757604080516001600160a01b0385166020820152600091810191909152611317907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f81490606001611260565b8115611064576110648360405180602001604052806000815250612186565b50565b600354600160a01b900460ff161561137d576040517f5758dd0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546003546001600160a01b03620100009092048216929116903382146113ce576113a982611fba565b90506113b482612467565b600380546001600160a01b031916905560006002556113d6565b6113d661269e565b604080516001600160a01b03808616602083015284169181019190915261143e907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f814906060015b60408051601f198184030181529190526001600160a01b038616919061260a565b604080516001600160a01b0380861660208301528416918101919091526114a6907fceca317f109c43507871523e82dc2a3cc64dfa18f12da0b6db14f6e23f995538906060015b60408051601f198184030181529190526001600160a01b038516919061260a565b8015611064576110648260405180602001604052806000815250612186565b341561154e576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f198184030181529082905261154591613b7a565b60405180910390a45b6000546201000090046001600160a01b031633819003611572576110648383612412565b600061157d82611fba565b90506115898484612412565b80156115a8576115a88260405180602001604052806000815250612186565b50505050565b3415611637576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f198184030181529082905261162e91613b7a565b60405180910390a45b8051825114611672576040517f3bcc897900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81516000036116ad576040517f97da5f9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546201000090046001600160a01b0316338190036116f05760005b83518110156115a8576116e884828151811061102b5761102b613ba4565b6001016116ca565b60006116fb82611fba565b905060005b84518110156117405761173885828151811061171e5761171e613ba4565b602002602001015185838151811061104557611045613ba4565b600101611700565b5080156115a8576115a88260405180602001604052806000815250612186565b600054610100900460ff16158080156117805750600054600160ff909116105b8061179a5750303b15801561179a575060005460ff166001145b61180c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016108ee565b6000805460ff19166001179055801561182f576000805461ff0019166101001790555b61183882612704565b8015611281576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6060815167ffffffffffffffff81111561189d5761189d6132c4565b6040519080825280602002602001820160405280156118d057816020015b60608152602001906001900390816118bb5790505b50905060005b8251811015611926576119018382815181106118f4576118f4613ba4565b6020026020010151611ade565b82828151811061191357611913613ba4565b60209081029190910101526001016118d6565b50919050565b6000546201000090046001600160a01b0316338190036119fe576003805460ff60a01b1916600160a01b179055611962826127da565b816001600160a01b0316816001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a3604080516001600160a01b0380841660208301528416918101919091526119ed907fe17117c9d2665d1dbeb479ed8058bbebde3c50ac50e2e65619f60006caac692690606001611485565b6003805460ff60a01b191690555050565b6000611a0982611fba565b6003805460ff60a01b1916600160a01b1790559050611a27836127da565b826001600160a01b0316826001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a3604080516001600160a01b038085166020830152851691810191909152611ab2907fe17117c9d2665d1dbeb479ed8058bbebde3c50ac50e2e65619f60006caac69269060600161141d565b6003805460ff60a01b191690558015611064576110648260405180602001604052806000815250612186565b6000818152600160205260409020805460609190611afb90613c11565b80601f0160208091040260200160405190810160405280929190818152602001828054611b2790613c11565b8015611b745780601f10611b4957610100808354040283529160200191611b74565b820191906000526020600020905b815481529060010190602001808311611b5757829003601f168201915b50505050509050919050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015611bf2575060208210155b8015611bfe5750600081115b979650505050505050565b604080517fffffffffffffffffffff00000000000000000000000000000000000000000000841660208201526000602a82018190526bffffffffffffffffffffffff198416602c83015291829101604051602081830303815290604052905080610e3590613c45565b60008080611caa7fcee78b4094da86011096000000000000000000000000000000000000000000006001600160e01b03198616611c09565b90506000611cb782611ade565b9050601481511015611cd0575060009485945092505050565b8051601503611d515780601481518110611cec57611cec613ba4565b01602001517fff00000000000000000000000000000000000000000000000000000000000000167f010000000000000000000000000000000000000000000000000000000000000003611d5157611d4281613953565b60601c95600195509350505050565b611d5a81613953565b60601c95600095509350505050565b60006001600160e01b031982167fa918fa6b0000000000000000000000000000000000000000000000000000000014806109a457506109a482612843565b600080611dba6301ffc9a760e01b611c72565b5090506001600160a01b038116611dd45750600092915050565b611dde8184611b80565b9392505050565b6000808251604103611e1b5760208301516040840151606085015160001a611e0f87828585612881565b94509450505050611e23565b506000905060025b9250929050565b606083518551141580611e4b575082518451141580611e4b57508151835114155b15611e82576040517f3ff55f4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8451600003611ebd576040517fe9ad2b5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000855167ffffffffffffffff811115611ed957611ed96132c4565b604051908082528060200260200182016040528015611f0c57816020015b6060815260200190600190039081611ef75790505b50905060005b8651811015611fb057611f8b878281518110611f3057611f30613ba4565b6020026020010151878381518110611f4a57611f4a613ba4565b6020026020010151878481518110611f6457611f64613ba4565b6020026020010151878581518110611f7e57611f7e613ba4565b60200260200101516122bc565b828281518110611f9d57611f9d613ba4565b6020908102919091010152600101611f12565b5095945050505050565b6000816001600160a01b03163b60000361200b576040517f0c3923010000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016108ee565b6040517fde928f140000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063de928f149061205b9033903090829034906000903690600401613c69565b6020604051808303816000875af1925050508015612096575060408051601f3d908101601f1916820190925261209391810190613cc6565b60015b6120d5573d8080156120c4576040519150601f19603f3d011682016040523d82523d6000602084013e6120c9565b606091505b50611926600082612945565b7fffffff000000000000000000000000000000000000000000000000000000000081167fde928f00000000000000000000000000000000000000000000000000000000001461214a57604051639d6741e360e01b8152600060048201526001600160e01b0319821660248201526044016108ee565b8060031a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b14915050919050565b919050565b816001600160a01b031663d3fc45d3333033346000366040516020016121b196959493929190613ce3565b60405160208183030381529060405280519060200120836040518363ffffffff1660e01b81526004016121e5929190613a9c565b6020604051808303816000875af1925050508015612220575060408051601f3d908101601f1916820190925261221d91810190613cc6565b60015b61225f573d80801561224e576040519150601f19603f3d011682016040523d82523d6000602084013e612253565b606091505b50611064600182612945565b6001600160e01b031981167fd3fc45d3000000000000000000000000000000000000000000000000000000001461106457604051639d6741e360e01b8152600160048201526001600160e01b0319821660248201526044016108ee565b6060846122d5576122ce84848461298b565b9050610e35565b6001850361230f576001600160a01b0384161561230557604051631820c12560e11b815260040160405180910390fd5b6122ce8383612abc565b60028503612349576001600160a01b0384161561233f57604051631820c12560e11b815260040160405180910390fd5b6122ce8383612bd6565b60038503612393578215612389576040517f72f2bc6a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122ce8483612cc0565b600485036123dd5782156123d3576040517f5ac8313500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122ce8483612dc4565b6040517f7583b3bc000000000000000000000000000000000000000000000000000000008152600481018690526024016108ee565b600082815260016020526040902061242a8282613d81565b50817fece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b28260405161245b9190613794565b60405180910390a25050565b6000546001600160a01b0382811662010000909204161461133657600080546040516001600160a01b03808516936201000090930416917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03831662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff90911617905550565b60025443906000906125129060c890613e57565b9050600061252160c883613e57565b9050808311806125315750600254155b15612579576002839055600380546001600160a01b03191690556040517f81b7f830f1f0084db6497c486cbe6974c86488dcc4e3738eab94ab6d6b1653e790600090a1505050565b818310156125bd576040517f1b08094200000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016108ee565b6125c76000612467565b60006002819055600380546001600160a01b03191690556040517fd1f66c3d2bc1993a86be5e3d33709d98f0442381befcedd29f578b9b2506b1ce9190a1505050565b6126246001600160a01b038416631aed5a8560e21b611b80565b1561106457604051631aed5a8560e21b81526001600160a01b03841690636bb56a14906126579085908590600401613a9c565b6000604051808303816000875af1158015612676573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115a891908101906139bd565b6003546001600160a01b031633146126e4576040517f451e45280000000000000000000000000000000000000000000000000000000081523360048201526024016108ee565b6126ed33612467565b600380546001600160a01b03191690556000600255565b600054610100900460ff1661276f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016108ee565b61277881612e75565b6113367feafec4d89fa9619884b600005ef83ad9559033e6e941db7d7c495acdce61634760001b6040518060400160405280600481526020017f5ef83ad900000000000000000000000000000000000000000000000000000000815250612412565b306001600160a01b0382160361281c576040517fe052a6f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b03929092169190911790556000600255565b60006001600160e01b031982167f629aa6940000000000000000000000000000000000000000000000000000000014806109a457506109a482612f6e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156128b8575060009050600361293c565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561290c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166129355760006001925092505061293c565b9150600090505b94509492505050565b8051156129555780518082602001fd5b6040517f8c6a8ae300000000000000000000000000000000000000000000000000000000815282151560048201526024016108ee565b6060824710156129b7576040516301bf351f60e31b8152476004820152602481018490526044016108ee565b6129c082613e6a565b6001600160e01b031916846001600160a01b031660007f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e86604051612a0791815260200190565b60405180910390a4600080856001600160a01b03168585604051612a2b9190613a80565b60006040518083038185875af1925050503d8060008114612a68576040519150601f19603f3d011682016040523d82523d6000602084013e612a6d565b606091505b5091509150612ab282826040518060400160405280601681526020017f455243373235583a20556e6b6e6f776e204572726f7200000000000000000000815250612fbc565b9695505050505050565b606082471015612ae8576040516301bf351f60e31b8152476004820152602481018490526044016108ee565b8151600003612b0a5760405163b81cd8d960e01b815260040160405180910390fd5b600082516020840185f090506001600160a01b038116612b56576040517f0b07489b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000801b816001600160a01b031660017fa1fb700aaee2ae4a2ff6f91ce7eba292f89c2f5488b8ec4c5c5c8150692595c387604051612b9791815260200190565b60405180910390a46040516bffffffffffffffffffffffff19606083901b16602082015260340160405160208183030381529060405291505092915050565b60608151600003612bfa5760405163b81cd8d960e01b815260040160405180910390fd5b6000612c138360208551612c0e9190613e9e565b612fd5565b90506000612c3084600060208751612c2b9190613e9e565b61303b565b90506000612c3f868484613163565b905082816001600160a01b031660027fa1fb700aaee2ae4a2ff6f91ce7eba292f89c2f5488b8ec4c5c5c8150692595c389604051612c7f91815260200190565b60405180910390a46040516bffffffffffffffffffffffff19606083901b166020820152603401604051602081830303815290604052935050505092915050565b6060612ccb82613e6a565b6001600160e01b031916836001600160a01b031660037f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e6000604051612d1391815260200190565b60405180910390a4600080846001600160a01b031684604051612d369190613a80565b600060405180830381855afa9150503d8060008114612d71576040519150601f19603f3d011682016040523d82523d6000602084013e612d76565b606091505b5091509150612dbb82826040518060400160405280601681526020017f455243373235583a20556e6b6e6f776e204572726f7200000000000000000000815250612fbc565b95945050505050565b6060612dcf82613e6a565b6001600160e01b031916836001600160a01b031660047f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e6000604051612e1791815260200190565b60405180910390a4600080846001600160a01b031684604051612e3a9190613a80565b600060405180830381855af49150503d8060008114612d71576040519150601f19603f3d011682016040523d82523d6000602084013e612d76565b600054610100900460ff16612ee05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016108ee565b3415612f65577f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b34336001600160a01b03167f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c2604051612f5c906040808252600090820181905260606020830181905282015260800190565b60405180910390a45b61133681612467565b60006001600160e01b031982167f7545acac0000000000000000000000000000000000000000000000000000000014806109a457506301ffc9a760e01b6001600160e01b03198316146109a4565b60608315612fcb575081611dde565b611dde8383613267565b6000612fe2826020613e57565b835110156130325760405162461bcd60e51b815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e6473000000000000000000000060448201526064016108ee565b50016020015190565b60608161304981601f613e57565b10156130975760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016108ee565b6130a18284613e57565b845110156130f15760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e647300000000000000000000000000000060448201526064016108ee565b606082158015613110576040519150600082526020820160405261315a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015613149578051835260209283019201613131565b5050858452601f01601f1916604052505b50949350505050565b6000834710156131b55760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e636500000060448201526064016108ee565b81516000036132065760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f60448201526064016108ee565b8282516020840186f590506001600160a01b038116611dde5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f790000000000000060448201526064016108ee565b8151156132775781518083602001fd5b8060405162461bcd60e51b81526004016108ee9190613794565b6001600160e01b03198116811461133657600080fd5b6000602082840312156132b957600080fd5b8135611dde81613291565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715613303576133036132c4565b604052919050565b600067ffffffffffffffff821115613325576133256132c4565b50601f01601f191660200190565b600082601f83011261334457600080fd5b81356133576133528261330b565b6132da565b81815284602083860101111561336c57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561339c57600080fd5b82359150602083013567ffffffffffffffff8111156133ba57600080fd5b6133c685828601613333565b9150509250929050565b80356001600160a01b038116811461218157600080fd5b600080600080606085870312156133fd57600080fd5b613406856133d0565b9350613414602086016133d0565b9250604085013567ffffffffffffffff8082111561343157600080fd5b818701915087601f83011261344557600080fd5b81358181111561345457600080fd5b88602082850101111561346657600080fd5b95989497505060200194505050565b600067ffffffffffffffff82111561348f5761348f6132c4565b5060051b60200190565b600082601f8301126134aa57600080fd5b813560206134ba61335283613475565b82815260059290921b840181019181810190868411156134d957600080fd5b8286015b848110156134f457803583529183019183016134dd565b509695505050505050565b600082601f83011261351057600080fd5b8135602061352061335283613475565b82815260059290921b8401810191818101908684111561353f57600080fd5b8286015b848110156134f457803567ffffffffffffffff8111156135635760008081fd5b6135718986838b0101613333565b845250918301918301613543565b6000806000806080858703121561359557600080fd5b843567ffffffffffffffff808211156135ad57600080fd5b6135b988838901613499565b95506020915081870135818111156135d057600080fd5b8701601f810189136135e157600080fd5b80356135ef61335282613475565b81815260059190911b8201840190848101908b83111561360e57600080fd5b928501925b8284101561363357613624846133d0565b82529285019290850190613613565b9750505050604087013591508082111561364c57600080fd5b61365888838901613499565b9350606087013591508082111561366e57600080fd5b5061367b878288016134ff565b91505092959194509250565b60005b838110156136a257818101518382015260200161368a565b50506000910152565b600081518084526136c3816020860160208601613687565b601f01601f19169290920160200192915050565b600081518084526020808501808196508360051b8101915082860160005b8581101561371f57828403895261370d8483516136ab565b988501989350908401906001016136f5565b5091979650505050505050565b602081526000611dde60208301846136d7565b6000806000806080858703121561375557600080fd5b84359350613765602086016133d0565b925060408501359150606085013567ffffffffffffffff81111561378857600080fd5b61367b87828801613333565b602081526000611dde60208301846136ab565b6000806000606084860312156137bc57600080fd5b833567ffffffffffffffff808211156137d457600080fd5b6137e087838801613499565b945060208601359150808211156137f657600080fd5b50613803868287016134ff565b925050613812604085016133d0565b90509250925092565b60006020828403121561382d57600080fd5b5035919050565b6000806020838503121561384757600080fd5b823567ffffffffffffffff8082111561385f57600080fd5b818501915085601f83011261387357600080fd5b81358181111561388257600080fd5b8660208260051b850101111561389757600080fd5b60209290920196919550909350505050565b600080604083850312156138bc57600080fd5b823567ffffffffffffffff808211156138d457600080fd5b6138e086838701613499565b935060208501359150808211156138f657600080fd5b506133c6858286016134ff565b60006020828403121561391557600080fd5b611dde826133d0565b60006020828403121561393057600080fd5b813567ffffffffffffffff81111561394757600080fd5b610e3584828501613499565b805160208201516bffffffffffffffffffffffff1980821692919060148310156139875780818460140360031b1b83161693505b505050919050565b6001600160a01b0385168152836020820152826040820152608060608201526000612ab260808301846136ab565b6000602082840312156139cf57600080fd5b815167ffffffffffffffff8111156139e657600080fd5b8201601f810184136139f757600080fd5b8051613a056133528261330b565b818152856020838501011115613a1a57600080fd5b612dbb826020830160208601613687565b604081526000613a3e60408301856136ab565b8281036020840152612dbb81856136ab565b8385823760609290921b6bffffffffffffffffffffffff1916919092019081526014810191909152603401919050565b60008251613a92818460208701613687565b9190910192915050565b828152604060208201526000610e3560408301846136ab565b600060208284031215613ac757600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b606080825284519082018190526000906020906080840190828801845b82811015613b1d57815184529284019290840190600101613b01565b50505083810382850152613b3181876136d7565b925050506001600160a01b0383166040830152949350505050565b8481526001600160a01b0384166020820152826040820152608060608201526000612ab260808301846136ab565b604081526000613b8d60408301846136ab565b828103602093840152600081529190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112613bd157600080fd5b83018035915067ffffffffffffffff821115613bec57600080fd5b602001915036819003821315611e2357600080fd5b8183823760009101908152919050565b600181811c90821680613c2557607f821691505b60208210810361192657634e487b7160e01b600052602260045260246000fd5b805160208083015191908110156119265760001960209190910360031b1b16919050565b60006001600160a01b038089168352808816602084015280871660408401525084606083015260a060808301528260a0830152828460c0840137600060c0848401015260c0601f19601f8501168301019050979650505050505050565b600060208284031215613cd857600080fd5b8151611dde81613291565b60006bffffffffffffffffffffffff19808960601b168352808860601b166014840152808760601b1660288401525084603c8301528284605c8401375060009101605c0190815295945050505050565b601f82111561106457600081815260208120601f850160051c81016020861015613d5a5750805b601f850160051c820191505b81811015613d7957828155600101613d66565b505050505050565b815167ffffffffffffffff811115613d9b57613d9b6132c4565b613daf81613da98454613c11565b84613d33565b602080601f831160018114613de45760008415613dcc5750858301515b600019600386901b1c1916600185901b178555613d79565b600085815260208120601f198616915b82811015613e1357888601518255948401946001909101908401613df4565b5085821015613e315787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b808201808211156109a4576109a4613e41565b6000815160208301516001600160e01b0319808216935060048310156139875760049290920360031b82901b161692915050565b818103818111156109a4576109a4613e4156fea2646970667358221220540a69164037b2c57d072a469ce283af9b6eef3b24fb30009736a4625ac21dca64736f6c63430008110033",
740
- "linkReferences": {},
741
- "deployedLinkReferences": {}
742
- }