@arcblock/erc721did-contract 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,725 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "ERC721DID",
4
- "sourceName": "src/ERC721DID.sol",
5
- "abi": [
6
- {
7
- "inputs": [],
8
- "stateMutability": "nonpayable",
9
- "type": "constructor"
10
- },
11
- {
12
- "anonymous": false,
13
- "inputs": [
14
- {
15
- "indexed": true,
16
- "internalType": "address",
17
- "name": "to",
18
- "type": "address"
19
- },
20
- {
21
- "indexed": true,
22
- "internalType": "uint256",
23
- "name": "tokenId",
24
- "type": "uint256"
25
- }
26
- ],
27
- "name": "Acquired",
28
- "type": "event"
29
- },
30
- {
31
- "anonymous": false,
32
- "inputs": [
33
- {
34
- "indexed": true,
35
- "internalType": "address",
36
- "name": "owner",
37
- "type": "address"
38
- },
39
- {
40
- "indexed": true,
41
- "internalType": "address",
42
- "name": "approved",
43
- "type": "address"
44
- },
45
- {
46
- "indexed": true,
47
- "internalType": "uint256",
48
- "name": "tokenId",
49
- "type": "uint256"
50
- }
51
- ],
52
- "name": "Approval",
53
- "type": "event"
54
- },
55
- {
56
- "anonymous": false,
57
- "inputs": [
58
- {
59
- "indexed": true,
60
- "internalType": "address",
61
- "name": "owner",
62
- "type": "address"
63
- },
64
- {
65
- "indexed": true,
66
- "internalType": "address",
67
- "name": "operator",
68
- "type": "address"
69
- },
70
- {
71
- "indexed": false,
72
- "internalType": "bool",
73
- "name": "approved",
74
- "type": "bool"
75
- }
76
- ],
77
- "name": "ApprovalForAll",
78
- "type": "event"
79
- },
80
- {
81
- "anonymous": false,
82
- "inputs": [
83
- {
84
- "indexed": false,
85
- "internalType": "uint8",
86
- "name": "version",
87
- "type": "uint8"
88
- }
89
- ],
90
- "name": "Initialized",
91
- "type": "event"
92
- },
93
- {
94
- "anonymous": false,
95
- "inputs": [
96
- {
97
- "indexed": false,
98
- "internalType": "address",
99
- "name": "userAddress",
100
- "type": "address"
101
- },
102
- {
103
- "indexed": false,
104
- "internalType": "address payable",
105
- "name": "relayerAddress",
106
- "type": "address"
107
- },
108
- {
109
- "indexed": false,
110
- "internalType": "bytes",
111
- "name": "functionSignature",
112
- "type": "bytes"
113
- }
114
- ],
115
- "name": "MetaTransactionExecuted",
116
- "type": "event"
117
- },
118
- {
119
- "anonymous": false,
120
- "inputs": [
121
- {
122
- "indexed": true,
123
- "internalType": "address",
124
- "name": "to",
125
- "type": "address"
126
- },
127
- {
128
- "indexed": true,
129
- "internalType": "uint256",
130
- "name": "tokenId",
131
- "type": "uint256"
132
- }
133
- ],
134
- "name": "Minted",
135
- "type": "event"
136
- },
137
- {
138
- "anonymous": false,
139
- "inputs": [
140
- {
141
- "indexed": true,
142
- "internalType": "address",
143
- "name": "previousOwner",
144
- "type": "address"
145
- },
146
- {
147
- "indexed": true,
148
- "internalType": "address",
149
- "name": "newOwner",
150
- "type": "address"
151
- }
152
- ],
153
- "name": "OwnershipTransferred",
154
- "type": "event"
155
- },
156
- {
157
- "anonymous": false,
158
- "inputs": [
159
- {
160
- "indexed": true,
161
- "internalType": "address",
162
- "name": "from",
163
- "type": "address"
164
- },
165
- {
166
- "indexed": true,
167
- "internalType": "address",
168
- "name": "to",
169
- "type": "address"
170
- },
171
- {
172
- "indexed": true,
173
- "internalType": "uint256",
174
- "name": "tokenId",
175
- "type": "uint256"
176
- }
177
- ],
178
- "name": "Transfer",
179
- "type": "event"
180
- },
181
- {
182
- "inputs": [],
183
- "name": "ERC712_VERSION",
184
- "outputs": [
185
- {
186
- "internalType": "string",
187
- "name": "",
188
- "type": "string"
189
- }
190
- ],
191
- "stateMutability": "view",
192
- "type": "function"
193
- },
194
- {
195
- "inputs": [
196
- {
197
- "internalType": "address",
198
- "name": "_to",
199
- "type": "address"
200
- }
201
- ],
202
- "name": "acquireAsset",
203
- "outputs": [],
204
- "stateMutability": "nonpayable",
205
- "type": "function"
206
- },
207
- {
208
- "inputs": [
209
- {
210
- "internalType": "address",
211
- "name": "to",
212
- "type": "address"
213
- },
214
- {
215
- "internalType": "uint256",
216
- "name": "tokenId",
217
- "type": "uint256"
218
- }
219
- ],
220
- "name": "approve",
221
- "outputs": [],
222
- "stateMutability": "nonpayable",
223
- "type": "function"
224
- },
225
- {
226
- "inputs": [
227
- {
228
- "internalType": "address",
229
- "name": "owner",
230
- "type": "address"
231
- }
232
- ],
233
- "name": "balanceOf",
234
- "outputs": [
235
- {
236
- "internalType": "uint256",
237
- "name": "",
238
- "type": "uint256"
239
- }
240
- ],
241
- "stateMutability": "view",
242
- "type": "function"
243
- },
244
- {
245
- "inputs": [],
246
- "name": "contractURI",
247
- "outputs": [
248
- {
249
- "internalType": "string",
250
- "name": "",
251
- "type": "string"
252
- }
253
- ],
254
- "stateMutability": "view",
255
- "type": "function"
256
- },
257
- {
258
- "inputs": [
259
- {
260
- "internalType": "address",
261
- "name": "userAddress",
262
- "type": "address"
263
- },
264
- {
265
- "internalType": "bytes",
266
- "name": "functionSignature",
267
- "type": "bytes"
268
- },
269
- {
270
- "internalType": "bytes32",
271
- "name": "sigR",
272
- "type": "bytes32"
273
- },
274
- {
275
- "internalType": "bytes32",
276
- "name": "sigS",
277
- "type": "bytes32"
278
- },
279
- {
280
- "internalType": "uint8",
281
- "name": "sigV",
282
- "type": "uint8"
283
- }
284
- ],
285
- "name": "executeMetaTransaction",
286
- "outputs": [
287
- {
288
- "internalType": "bytes",
289
- "name": "",
290
- "type": "bytes"
291
- }
292
- ],
293
- "stateMutability": "payable",
294
- "type": "function"
295
- },
296
- {
297
- "inputs": [
298
- {
299
- "internalType": "uint256",
300
- "name": "_tokenId",
301
- "type": "uint256"
302
- }
303
- ],
304
- "name": "formatTokenURIValue",
305
- "outputs": [
306
- {
307
- "internalType": "string",
308
- "name": "",
309
- "type": "string"
310
- }
311
- ],
312
- "stateMutability": "view",
313
- "type": "function"
314
- },
315
- {
316
- "inputs": [
317
- {
318
- "internalType": "uint256",
319
- "name": "tokenId",
320
- "type": "uint256"
321
- }
322
- ],
323
- "name": "getApproved",
324
- "outputs": [
325
- {
326
- "internalType": "address",
327
- "name": "",
328
- "type": "address"
329
- }
330
- ],
331
- "stateMutability": "view",
332
- "type": "function"
333
- },
334
- {
335
- "inputs": [],
336
- "name": "getChainId",
337
- "outputs": [
338
- {
339
- "internalType": "uint256",
340
- "name": "",
341
- "type": "uint256"
342
- }
343
- ],
344
- "stateMutability": "view",
345
- "type": "function"
346
- },
347
- {
348
- "inputs": [
349
- {
350
- "internalType": "uint256",
351
- "name": "_tokenId",
352
- "type": "uint256"
353
- }
354
- ],
355
- "name": "getDIDByTokenId",
356
- "outputs": [
357
- {
358
- "internalType": "string",
359
- "name": "",
360
- "type": "string"
361
- }
362
- ],
363
- "stateMutability": "view",
364
- "type": "function"
365
- },
366
- {
367
- "inputs": [],
368
- "name": "getDomainSeperator",
369
- "outputs": [
370
- {
371
- "internalType": "bytes32",
372
- "name": "",
373
- "type": "bytes32"
374
- }
375
- ],
376
- "stateMutability": "view",
377
- "type": "function"
378
- },
379
- {
380
- "inputs": [
381
- {
382
- "internalType": "address",
383
- "name": "user",
384
- "type": "address"
385
- }
386
- ],
387
- "name": "getNonce",
388
- "outputs": [
389
- {
390
- "internalType": "uint256",
391
- "name": "nonce",
392
- "type": "uint256"
393
- }
394
- ],
395
- "stateMutability": "view",
396
- "type": "function"
397
- },
398
- {
399
- "inputs": [],
400
- "name": "getTotalLimit",
401
- "outputs": [
402
- {
403
- "internalType": "uint256",
404
- "name": "",
405
- "type": "uint256"
406
- }
407
- ],
408
- "stateMutability": "view",
409
- "type": "function"
410
- },
411
- {
412
- "inputs": [
413
- {
414
- "internalType": "address",
415
- "name": "_proxyRegistryAddress",
416
- "type": "address"
417
- },
418
- {
419
- "internalType": "string",
420
- "name": "_baseImageURI",
421
- "type": "string"
422
- },
423
- {
424
- "internalType": "string",
425
- "name": "_contractName",
426
- "type": "string"
427
- },
428
- {
429
- "internalType": "string",
430
- "name": "_contractSymbol",
431
- "type": "string"
432
- },
433
- {
434
- "internalType": "string",
435
- "name": "_contractDescription",
436
- "type": "string"
437
- },
438
- {
439
- "internalType": "uint256",
440
- "name": "_totalLimit",
441
- "type": "uint256"
442
- }
443
- ],
444
- "name": "initialize",
445
- "outputs": [],
446
- "stateMutability": "nonpayable",
447
- "type": "function"
448
- },
449
- {
450
- "inputs": [
451
- {
452
- "internalType": "address",
453
- "name": "owner",
454
- "type": "address"
455
- },
456
- {
457
- "internalType": "address",
458
- "name": "operator",
459
- "type": "address"
460
- }
461
- ],
462
- "name": "isApprovedForAll",
463
- "outputs": [
464
- {
465
- "internalType": "bool",
466
- "name": "",
467
- "type": "bool"
468
- }
469
- ],
470
- "stateMutability": "view",
471
- "type": "function"
472
- },
473
- {
474
- "inputs": [
475
- {
476
- "internalType": "address",
477
- "name": "_to",
478
- "type": "address"
479
- }
480
- ],
481
- "name": "mintAsset",
482
- "outputs": [],
483
- "stateMutability": "nonpayable",
484
- "type": "function"
485
- },
486
- {
487
- "inputs": [],
488
- "name": "name",
489
- "outputs": [
490
- {
491
- "internalType": "string",
492
- "name": "",
493
- "type": "string"
494
- }
495
- ],
496
- "stateMutability": "view",
497
- "type": "function"
498
- },
499
- {
500
- "inputs": [],
501
- "name": "owner",
502
- "outputs": [
503
- {
504
- "internalType": "address",
505
- "name": "",
506
- "type": "address"
507
- }
508
- ],
509
- "stateMutability": "view",
510
- "type": "function"
511
- },
512
- {
513
- "inputs": [
514
- {
515
- "internalType": "uint256",
516
- "name": "tokenId",
517
- "type": "uint256"
518
- }
519
- ],
520
- "name": "ownerOf",
521
- "outputs": [
522
- {
523
- "internalType": "address",
524
- "name": "",
525
- "type": "address"
526
- }
527
- ],
528
- "stateMutability": "view",
529
- "type": "function"
530
- },
531
- {
532
- "inputs": [],
533
- "name": "renounceOwnership",
534
- "outputs": [],
535
- "stateMutability": "nonpayable",
536
- "type": "function"
537
- },
538
- {
539
- "inputs": [
540
- {
541
- "internalType": "address",
542
- "name": "from",
543
- "type": "address"
544
- },
545
- {
546
- "internalType": "address",
547
- "name": "to",
548
- "type": "address"
549
- },
550
- {
551
- "internalType": "uint256",
552
- "name": "tokenId",
553
- "type": "uint256"
554
- }
555
- ],
556
- "name": "safeTransferFrom",
557
- "outputs": [],
558
- "stateMutability": "nonpayable",
559
- "type": "function"
560
- },
561
- {
562
- "inputs": [
563
- {
564
- "internalType": "address",
565
- "name": "from",
566
- "type": "address"
567
- },
568
- {
569
- "internalType": "address",
570
- "name": "to",
571
- "type": "address"
572
- },
573
- {
574
- "internalType": "uint256",
575
- "name": "tokenId",
576
- "type": "uint256"
577
- },
578
- {
579
- "internalType": "bytes",
580
- "name": "data",
581
- "type": "bytes"
582
- }
583
- ],
584
- "name": "safeTransferFrom",
585
- "outputs": [],
586
- "stateMutability": "nonpayable",
587
- "type": "function"
588
- },
589
- {
590
- "inputs": [
591
- {
592
- "internalType": "address",
593
- "name": "operator",
594
- "type": "address"
595
- },
596
- {
597
- "internalType": "bool",
598
- "name": "approved",
599
- "type": "bool"
600
- }
601
- ],
602
- "name": "setApprovalForAll",
603
- "outputs": [],
604
- "stateMutability": "nonpayable",
605
- "type": "function"
606
- },
607
- {
608
- "inputs": [
609
- {
610
- "internalType": "uint256",
611
- "name": "_totalLimit",
612
- "type": "uint256"
613
- }
614
- ],
615
- "name": "setTotalLimit",
616
- "outputs": [],
617
- "stateMutability": "nonpayable",
618
- "type": "function"
619
- },
620
- {
621
- "inputs": [
622
- {
623
- "internalType": "bytes4",
624
- "name": "interfaceId",
625
- "type": "bytes4"
626
- }
627
- ],
628
- "name": "supportsInterface",
629
- "outputs": [
630
- {
631
- "internalType": "bool",
632
- "name": "",
633
- "type": "bool"
634
- }
635
- ],
636
- "stateMutability": "view",
637
- "type": "function"
638
- },
639
- {
640
- "inputs": [],
641
- "name": "symbol",
642
- "outputs": [
643
- {
644
- "internalType": "string",
645
- "name": "",
646
- "type": "string"
647
- }
648
- ],
649
- "stateMutability": "view",
650
- "type": "function"
651
- },
652
- {
653
- "inputs": [
654
- {
655
- "internalType": "uint256",
656
- "name": "_tokenId",
657
- "type": "uint256"
658
- }
659
- ],
660
- "name": "tokenURI",
661
- "outputs": [
662
- {
663
- "internalType": "string",
664
- "name": "",
665
- "type": "string"
666
- }
667
- ],
668
- "stateMutability": "view",
669
- "type": "function"
670
- },
671
- {
672
- "inputs": [],
673
- "name": "totalSupply",
674
- "outputs": [
675
- {
676
- "internalType": "uint256",
677
- "name": "",
678
- "type": "uint256"
679
- }
680
- ],
681
- "stateMutability": "view",
682
- "type": "function"
683
- },
684
- {
685
- "inputs": [
686
- {
687
- "internalType": "address",
688
- "name": "from",
689
- "type": "address"
690
- },
691
- {
692
- "internalType": "address",
693
- "name": "to",
694
- "type": "address"
695
- },
696
- {
697
- "internalType": "uint256",
698
- "name": "tokenId",
699
- "type": "uint256"
700
- }
701
- ],
702
- "name": "transferFrom",
703
- "outputs": [],
704
- "stateMutability": "nonpayable",
705
- "type": "function"
706
- },
707
- {
708
- "inputs": [
709
- {
710
- "internalType": "address",
711
- "name": "newOwner",
712
- "type": "address"
713
- }
714
- ],
715
- "name": "transferOwnership",
716
- "outputs": [],
717
- "stateMutability": "nonpayable",
718
- "type": "function"
719
- }
720
- ],
721
- "bytecode": "0x60806040526000600660006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600981526020017f45524337323144494400000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f41425400000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000b19291906200038f565b508060019080519060200190620000ca9291906200038f565b505050620000ed620000e16200011a60201b60201c565b6200013660201b60201c565b620000fd620001fc60201b60201c565b62000114600a620002c660201b620017fe1760201c565b62000588565b600062000131620002dc60201b620018141760201c565b905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600960159054906101000a900460ff16156200024f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002469062000477565b60405180910390fd5b60ff8016600960149054906101000a900460ff1660ff161015620002c45760ff600960146101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620002bb919062000499565b60405180910390a15b565b6001816000016000828254019250508190555050565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156200038857600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600080369050905073ffffffffffffffffffffffffffffffffffffffff8183015116925050506200038c565b3390505b90565b8280546200039d90620004d4565b90600052602060002090601f016020900481019282620003c157600085556200040d565b82601f10620003dc57805160ff19168380011785556200040d565b828001600101855582156200040d579182015b828111156200040c578251825591602001919060010190620003ef565b5b5090506200041c919062000420565b5090565b5b808211156200043b57600081600090555060010162000421565b5090565b60006200044e602783620004b6565b91506200045b8262000539565b604082019050919050565b6200047181620004c7565b82525050565b6000602082019050818103600083015262000492816200043f565b9050919050565b6000602082019050620004b0600083018462000466565b92915050565b600082825260208201905092915050565b600060ff82169050919050565b60006002820490506001821680620004ed57607f821691505b602082108114156200050457620005036200050a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b615e2e80620005986000396000f3fe6080604052600436106101cd5760003560e01c806370a08231116100f7578063a22cb46511610095578063e8a3d48511610064578063e8a3d485146106a1578063e985e9c5146106cc578063f2fde38b14610709578063fe9c9ff114610732576101cd565b8063a22cb465146105e7578063b88d4fde14610610578063c87b56dd14610639578063d8f9f12d14610676576101cd565b80638da5cb5b116100d15780638da5cb5b1461052b57806395d89b4114610556578063982d3ba014610581578063a1e5425e146105aa576101cd565b806370a082311461049a578063715018a6146104d75780637e032eb4146104ee576101cd565b806320379ee51161016f57806342842e0e1161013e57806342842e0e146103e257806342ab15861461040b5780636352211e146104345780636d10cd9c14610471576101cd565b806320379ee51461032657806323b872dd146103515780632d0335ab1461037a5780633408e470146103b7576101cd565b8063095ea7b3116101ab578063095ea7b3146102775780630c53c51c146102a05780630f7e5970146102d057806318160ddd146102fb576101cd565b806301ffc9a7146101d257806306fdde031461020f578063081812fc1461023a575b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f49190613ef8565b61075b565b6040516102069190614b34565b60405180910390f35b34801561021b57600080fd5b5061022461083d565b6040516102319190614c84565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c9190613f73565b6108cf565b60405161026e9190614a8f565b60405180910390f35b34801561028357600080fd5b5061029e60048036038101906102999190613ebc565b610915565b005b6102ba60048036038101906102b59190613d44565b610a2d565b6040516102c79190614c47565b60405180910390f35b3480156102dc57600080fd5b506102e5610c9f565b6040516102f29190614c84565b60405180910390f35b34801561030757600080fd5b50610310610cd8565b60405161031d9190614f46565b60405180910390f35b34801561033257600080fd5b5061033b610cf5565b6040516103489190614b4f565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190613c3e565b610cff565b005b34801561038657600080fd5b506103a1600480360381019061039c9190613bd9565b610d5f565b6040516103ae9190614f46565b60405180910390f35b3480156103c357600080fd5b506103cc610da8565b6040516103d99190614f46565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190613c3e565b610db5565b005b34801561041757600080fd5b50610432600480360381019061042d9190613bd9565b610dd5565b005b34801561044057600080fd5b5061045b60048036038101906104569190613f73565b610ea9565b6040516104689190614a8f565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190613f73565b610f30565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190613bd9565b610f42565b6040516104ce9190614f46565b60405180910390f35b3480156104e357600080fd5b506104ec610ffa565b005b3480156104fa57600080fd5b5061051560048036038101906105109190613f73565b61100e565b6040516105229190614c84565b60405180910390f35b34801561053757600080fd5b50610540611059565b60405161054d9190614a8f565b60405180910390f35b34801561056257600080fd5b5061056b611083565b6040516105789190614c84565b60405180910390f35b34801561058d57600080fd5b506105a860048036038101906105a39190613bd9565b611115565b005b3480156105b657600080fd5b506105d160048036038101906105cc9190613f73565b6111e1565b6040516105de9190614c84565b60405180910390f35b3480156105f357600080fd5b5061060e60048036038101906106099190613d08565b61135c565b005b34801561061c57600080fd5b5061063760048036038101906106329190613c8d565b611372565b005b34801561064557600080fd5b50610660600480360381019061065b9190613f73565b6113d4565b60405161066d9190614c84565b60405180910390f35b34801561068257600080fd5b5061068b61140d565b6040516106989190614f46565b60405180910390f35b3480156106ad57600080fd5b506106b6611417565b6040516106c39190614c84565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee9190613c02565b611475565b6040516107009190614b34565b60405180910390f35b34801561071557600080fd5b50610730600480360381019061072b9190613bd9565b611577565b005b34801561073e57600080fd5b5061075960048036038101906107549190613dd3565b6115fb565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061082657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108365750610835826118c5565b5b9050919050565b6060600d805461084c9061528d565b80601f01602080910402602001604051908101604052809291908181526020018280546108789061528d565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050905090565b60006108da8261192f565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061092082610ea9565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098890614ee6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109b061197a565b73ffffffffffffffffffffffffffffffffffffffff1614806109df57506109de816109d961197a565b611475565b5b610a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1590614f06565b60405180910390fd5b610a288383611989565b505050565b606060006040518060600160405280600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020018873ffffffffffffffffffffffffffffffffffffffff168152602001878152509050610ab08782878787611a42565b610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae690614ea6565b60405180910390fd5b610b426001600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b4b90919063ffffffff16565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b873388604051610bb893929190614aaa565b60405180910390a16000803073ffffffffffffffffffffffffffffffffffffffff16888a604051602001610bed929190614730565b604051602081830303815290604052604051610c099190614719565b6000604051808303816000865af19150503d8060008114610c46576040519150601f19603f3d011682016040523d82523d6000602084013e610c4b565b606091505b509150915081610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790614d26565b60405180910390fd5b80935050505095945050505050565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b60006001610ce6600a611b61565b610cf0919061512c565b905090565b6000600754905090565b610d10610d0a61197a565b82611b6f565b610d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4690614cc6565b60405180910390fd5b610d5a838383611c04565b505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000804690508091505090565b610dd083838360405180602001604052806000815250611372565b505050565b610ddd611efe565b6000610de9600a611b61565b90506000601254118015610dfe575060125481115b15610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3590614e26565b60405180910390fd5b6000610e4a600a611b61565b9050610e56600a6117fe565b610e608382611f7c565b808373ffffffffffffffffffffffffffffffffffffffff167f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe60405160405180910390a3505050565b600080610eb583611f9a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90614ec6565b60405180910390fd5b80915050919050565b610f38611efe565b8060128190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610faa90614e06565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611002611efe565b61100c6000611fd7565b565b6060600061101b836111e1565b9050600081600c836040516020016110359392919061497f565b6040516020818303038152906040529050611050848261209d565b92505050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060601080546110929061528d565b80601f01602080910402602001604051908101604052809291908181526020018280546110be9061528d565b801561110b5780601f106110e05761010080835404028352916020019161110b565b820191906000526020600020905b8154815290600101906020018083116110ee57829003601f168201915b5050505050905090565b6000611121600a611b61565b90506000601254118015611136575060125481115b15611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d90614e26565b60405180910390fd5b6000611182600a611b61565b905061118e600a6117fe565b6111988382611f7c565b808373ffffffffffffffffffffffffffffffffffffffff167ffaa12ddb40ba6ec53659ef184da2121c1c228dd2e760b3574db7feca61d99f9a60405160405180910390a3505050565b606060006111fe836040518060200160405280600081525061209d565b905060008160405160200161121391906147ad565b60405160208183030381529060405280519060200120905060006112598260405160200161124191906146fe565b604051602081830303815290604052600060146121ef565b905060006040518060400160405280600281526020017f18200000000000000000000000000000000000000000000000000000000000008152509050600081836040516020016112aa929190614758565b604051602081830303815290604052905060006112f082805190602001206040516020016112d891906146fe565b604051602081830303815290604052600060046121ef565b905060008385836040516020016113099392919061477c565b6040516020818303038152906040529050600061132582612398565b905060008160405160200161133a9190614a1e565b6040516020818303038152906040529050809950505050505050505050919050565b61136e61136761197a565b8383612919565b5050565b61138361137d61197a565b83611b6f565b6113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990614cc6565b60405180910390fd5b6113ce84848484612a86565b50505050565b60606113e76113e28361100e565b612ae2565b6040516020016113f79190614a40565b6040516020818303038152906040529050919050565b6000601254905090565b6060600061144d600d600e600f601160405160200161143994939291906148e9565b604051602081830303815290604052612ae2565b9050806040516020016114609190614a40565b60405160208183030381529060405291505090565b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663c4552791866040518263ffffffff1660e01b81526004016114ed9190614a8f565b60206040518083038186803b15801561150557600080fd5b505afa158015611519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153d9190613f4a565b73ffffffffffffffffffffffffffffffffffffffff161415611563576001915050611571565b61156d8484612c6c565b9150505b92915050565b61157f611efe565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e690614d06565b60405180910390fd5b6115f881611fd7565b50565b6000600960159054906101000a900460ff1615905080801561162f57506001600960149054906101000a900460ff1660ff16105b8061165e575061163e30612d00565b15801561165d57506001600960149054906101000a900460ff1660ff16145b5b61169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490614e46565b60405180910390fd5b6001600960146101000a81548160ff021916908360ff16021790555080156116db576001600960156101000a81548160ff0219169083151502179055505b86600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600c90805190602001906117329291906139be565b5084600d90805190602001906117499291906139be565b5083601090805190602001906117609291906139be565b5082600e90805190602001906117779291906139be565b508160128190555061178885612d23565b611792600a6117fe565b61179b87611fd7565b80156117f5576000600960156101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516117ec9190614c69565b60405180910390a15b50505050505050565b6001816000016000828254019250508190555050565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156118be57600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600080369050905073ffffffffffffffffffffffffffffffffffffffff8183015116925050506118c2565b3390505b90565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61193881612d9a565b611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e90614ec6565b60405180910390fd5b50565b6000611984611814565b905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166119fc83610ea9565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415611ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaa90614de6565b60405180910390fd5b6001611ac6611ac187612ddb565b612e43565b83868660405160008152602001604052604051611ae69493929190614c02565b6020604051602081039080840390855afa158015611b08573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905095945050505050565b60008183611b59919061504b565b905092915050565b600081600001549050919050565b600080611b7b83610ea9565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611bbd5750611bbc8185611475565b5b80611bfb57508373ffffffffffffffffffffffffffffffffffffffff16611be3846108cf565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611c2482610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7190614d46565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce190614d86565b60405180910390fd5b611cf78383836001612e7c565b8273ffffffffffffffffffffffffffffffffffffffff16611d1782610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6490614d46565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611ef98383836001612e82565b505050565b611f0661197a565b73ffffffffffffffffffffffffffffffffffffffff16611f24611059565b73ffffffffffffffffffffffffffffffffffffffff1614611f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7190614e86565b60405180910390fd5b565b611f96828260405180602001604052806000815250612e88565b5050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60606000600d6120ac85612ee3565b6040516020016120bd9291906147c4565b60405160208183030381529060405290506000600d6040516020016120e29190614a62565b6040516020818303038152906040529050600060405180602001604052806000815250905060006040518060400160405280601e81526020017f68747470733a2f2f666f72756d2e6f70656e7a657070656c696e2e636f6d00008152509050600061214c88612ee3565b9050600061215930613007565b905060006040518060200160405280600081525090506000895111156121b2576040518060400160405280600181526020017f2c0000000000000000000000000000000000000000000000000000000000000081525090505b868686868686868f6040516020016121d19897969594939291906147f3565b60405160208183030381529060405297505050505050505092915050565b6060835182846121ff919061504b565b1115612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790614dc6565b60405180910390fd5b60008267ffffffffffffffff811115612282577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156122b45781602001600182028036833780820191505090505b50905060005b8381101561238c578581866122cf919061504b565b81518110612306577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b82828151811061234a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080612384906152f0565b9150506122ba565b50809150509392505050565b606060008251905060005b818110801561241a5750600060f81b8482815181106123eb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b1561242c5780806001019150506123a3565b60016117e361209f838503028161246c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b04820101915060008267ffffffffffffffff8111156124b4577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156124e65781602001600182028036833780820191505090505b509050600080600060018603905060005b88518110156126ca5760018703925088818151811061253f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1693505b81831380612568575060008463ffffffff1614155b156126ba578483815181106125a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff166101000261ffff1684019350603a8463ffffffff1681612600577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0660f81b85848151811061263d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350603a8463ffffffff16816126a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b049350828060019003935050612553565b82915080806001019150506124f7565b5060008590505b86811080156127485750600060f81b858281518110612719577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b1561275a5780806001019150506126d1565b858103855103965060008767ffffffffffffffff8111156127a4577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156127d65781602001600182028036833780820191505090505b50905060005b88811015612908576000888483010390506040518060600160405280603a8152602001615dbf603a913988828151811061283f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1681518110612887577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b8383815181106128cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505080806001019150506127dc565b508098505050505050505050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297f90614da6565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612a799190614b34565b60405180910390a3505050565b612a91848484611c04565b612a9d84848484613034565b612adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad390614ce6565b60405180910390fd5b50505050565b6060600082511415612b0557604051806020016040528060008152509050612c67565b6000604051806060016040528060408152602001615d7f6040913990506000600360028551612b34919061504b565b612b3e91906150a1565b6004612b4a91906150d2565b67ffffffffffffffff811115612b89577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612bbb5781602001600182028036833780820191505090505b509050600182016020820185865187015b80821015612c27576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f8116850151845360018401935050612bcc565b5050600386510660018114612c435760028114612c5657612c5e565b603d6001830353603d6002830353612c5e565b603d60018303535b50505080925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600660009054906101000a900460ff1615612d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6a90614f26565b60405180910390fd5b612d7c816131cb565b6001600660006101000a81548160ff02191690831515021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff16612dbc83611f9a565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000604051806080016040528060438152602001615ced604391398051906020012082600001518360200151846040015180519060200120604051602001612e269493929190614bbd565b604051602081830303815290604052805190602001209050919050565b6000612e4d610cf5565b82604051602001612e5f9291906149e7565b604051602081830303815290604052805190602001209050919050565b50505050565b50505050565b612e92838361326f565b612e9f6000848484613034565b612ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed590614ce6565b60405180910390fd5b505050565b606060006001612ef28461348d565b01905060008167ffffffffffffffff811115612f37577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612f695781602001600182028036833780820191505090505b509050600082602001820190505b600115612ffc578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612fe6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0494506000851415612ff757612ffc565b612f77565b819350505050919050565b606061302d8273ffffffffffffffffffffffffffffffffffffffff16601460ff166136c4565b9050919050565b60006130558473ffffffffffffffffffffffffffffffffffffffff16612d00565b156131be578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261307e61197a565b8786866040518563ffffffff1660e01b81526004016130a09493929190614ae8565b602060405180830381600087803b1580156130ba57600080fd5b505af19250505080156130eb57506040513d601f19601f820116820180604052508101906130e89190613f21565b60015b61316e573d806000811461311b576040519150601f19603f3d011682016040523d82523d6000602084013e613120565b606091505b50600081511415613166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315d90614ce6565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506131c3565b600190505b949350505050565b6040518060800160405280604f8152602001615d30604f91398051906020012081805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012030613239610da8565b60001b604051602001613250959493929190614b6a565b6040516020818303038152906040528051906020012060078190555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156132df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132d690614e66565b60405180910390fd5b6132e881612d9a565b15613328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331f90614d66565b60405180910390fd5b613336600083836001612e7c565b61333f81612d9a565b1561337f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161337690614d66565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4613489600083836001612e82565b5050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613511577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381613507577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506040810190505b6d04ee2d6d415b85acef81000000008310613574576d04ee2d6d415b85acef8100000000838161356a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506020810190505b662386f26fc1000083106135c957662386f26fc1000083816135bf577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506010810190505b6305f5e1008310613618576305f5e100838161360e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506008810190505b6127108310613663576127108381613659577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506004810190505b606483106136ac57606483816136a2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506002810190505b600a83106136bb576001810190505b80915050919050565b6060600060028360026136d791906150d2565b6136e1919061504b565b67ffffffffffffffff811115613720577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156137525781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106137b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061383a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261387a91906150d2565b613884919061504b565b90505b6001811115613970577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106138ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b828281518110613929577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061396990615263565b9050613887565b50600084146139b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139ab90614ca6565b60405180910390fd5b8091505092915050565b8280546139ca9061528d565b90600052602060002090601f0160209004810192826139ec5760008555613a33565b82601f10613a0557805160ff1916838001178555613a33565b82800160010185558215613a33579182015b82811115613a32578251825591602001919060010190613a17565b5b509050613a409190613a44565b5090565b5b80821115613a5d576000816000905550600101613a45565b5090565b6000613a74613a6f84614f86565b614f61565b905082815260208101848484011115613a8c57600080fd5b613a97848285615221565b509392505050565b6000613ab2613aad84614fb7565b614f61565b905082815260208101848484011115613aca57600080fd5b613ad5848285615221565b509392505050565b600081359050613aec81615c4b565b92915050565b600081359050613b0181615c62565b92915050565b600081359050613b1681615c79565b92915050565b600081359050613b2b81615c90565b92915050565b600081519050613b4081615c90565b92915050565b600082601f830112613b5757600080fd5b8135613b67848260208601613a61565b91505092915050565b600081519050613b7f81615ca7565b92915050565b600082601f830112613b9657600080fd5b8135613ba6848260208601613a9f565b91505092915050565b600081359050613bbe81615cbe565b92915050565b600081359050613bd381615cd5565b92915050565b600060208284031215613beb57600080fd5b6000613bf984828501613add565b91505092915050565b60008060408385031215613c1557600080fd5b6000613c2385828601613add565b9250506020613c3485828601613add565b9150509250929050565b600080600060608486031215613c5357600080fd5b6000613c6186828701613add565b9350506020613c7286828701613add565b9250506040613c8386828701613baf565b9150509250925092565b60008060008060808587031215613ca357600080fd5b6000613cb187828801613add565b9450506020613cc287828801613add565b9350506040613cd387828801613baf565b925050606085013567ffffffffffffffff811115613cf057600080fd5b613cfc87828801613b46565b91505092959194509250565b60008060408385031215613d1b57600080fd5b6000613d2985828601613add565b9250506020613d3a85828601613af2565b9150509250929050565b600080600080600060a08688031215613d5c57600080fd5b6000613d6a88828901613add565b955050602086013567ffffffffffffffff811115613d8757600080fd5b613d9388828901613b46565b9450506040613da488828901613b07565b9350506060613db588828901613b07565b9250506080613dc688828901613bc4565b9150509295509295909350565b60008060008060008060c08789031215613dec57600080fd5b6000613dfa89828a01613add565b965050602087013567ffffffffffffffff811115613e1757600080fd5b613e2389828a01613b85565b955050604087013567ffffffffffffffff811115613e4057600080fd5b613e4c89828a01613b85565b945050606087013567ffffffffffffffff811115613e6957600080fd5b613e7589828a01613b85565b935050608087013567ffffffffffffffff811115613e9257600080fd5b613e9e89828a01613b85565b92505060a0613eaf89828a01613baf565b9150509295509295509295565b60008060408385031215613ecf57600080fd5b6000613edd85828601613add565b9250506020613eee85828601613baf565b9150509250929050565b600060208284031215613f0a57600080fd5b6000613f1884828501613b1c565b91505092915050565b600060208284031215613f3357600080fd5b6000613f4184828501613b31565b91505092915050565b600060208284031215613f5c57600080fd5b6000613f6a84828501613b70565b91505092915050565b600060208284031215613f8557600080fd5b6000613f9384828501613baf565b91505092915050565b613fa581615172565b82525050565b613fb481615160565b82525050565b613fcb613fc682615160565b615339565b82525050565b613fda81615184565b82525050565b613fe981615190565b82525050565b614000613ffb82615190565b61534b565b82525050565b600061401182614ffd565b61401b8185615013565b935061402b818560208601615230565b61403481615423565b840191505092915050565b600061404a82614ffd565b6140548185615024565b9350614064818560208601615230565b80840191505092915050565b6140798161520f565b82525050565b600061408a82615008565b614094818561502f565b93506140a4818560208601615230565b6140ad81615423565b840191505092915050565b60006140c382615008565b6140cd8185615040565b93506140dd818560208601615230565b80840191505092915050565b600081546140f68161528d565b6141008186615040565b9450600182166000811461411b576001811461412c5761415f565b60ff1983168652818601935061415f565b61413585614fe8565b60005b8381101561415757815481890152600182019150602081019050614138565b838801955050505b50505092915050565b600061417560208361502f565b915061418082615441565b602082019050919050565b6000614198602d8361502f565b91506141a38261546a565b604082019050919050565b60006141bb600983615040565b91506141c6826154b9565b600982019050919050565b60006141de601083615040565b91506141e9826154e2565b601082019050919050565b6000614201600783615040565b915061420c8261550b565b600782019050919050565b600061422460328361502f565b915061422f82615534565b604082019050919050565b6000614247600283615040565b915061425282615583565b600282019050919050565b600061426a60268361502f565b9150614275826155ac565b604082019050919050565b600061428d600283615040565b9150614298826155fb565b600282019050919050565b60006142b0601c8361502f565b91506142bb82615624565b602082019050919050565b60006142d360258361502f565b91506142de8261564d565b604082019050919050565b60006142f6600983615040565b91506143018261569c565b600982019050919050565b6000614319601c8361502f565b9150614324826156c5565b602082019050919050565b600061433c600283615040565b9150614347826156ee565b600282019050919050565b600061435f600183615040565b915061436a82615717565b600182019050919050565b600061438260248361502f565b915061438d82615740565b604082019050919050565b60006143a560198361502f565b91506143b08261578f565b602082019050919050565b60006143c860138361502f565b91506143d3826157b8565b602082019050919050565b60006143eb601183615040565b91506143f6826157e1565b601182019050919050565b600061440e60258361502f565b91506144198261580a565b604082019050919050565b600061443160298361502f565b915061443c82615859565b604082019050919050565b6000614454600683615040565b915061445f826158a8565b600682019050919050565b6000614477600183615040565b9150614482826158d1565b600182019050919050565b600061449a600183615040565b91506144a5826158fa565b600182019050919050565b60006144bd601183615040565b91506144c882615923565b601182019050919050565b60006144e060168361502f565b91506144eb8261594c565b602082019050919050565b6000614503600e83615040565b915061450e82615975565b600e82019050919050565b6000614526602e8361502f565b91506145318261599e565b604082019050919050565b6000614549600983615040565b9150614554826159ed565b600982019050919050565b600061456c60208361502f565b915061457782615a16565b602082019050919050565b600061458f600183615040565b915061459a82615a3f565b600182019050919050565b60006145b2601383615040565b91506145bd82615a68565b601382019050919050565b60006145d560208361502f565b91506145e082615a91565b602082019050919050565b60006145f860218361502f565b915061460382615aba565b604082019050919050565b600061461b60188361502f565b915061462682615b09565b602082019050919050565b600061463e60218361502f565b915061464982615b32565b604082019050919050565b6000614661601d83615040565b915061466c82615b81565b601d82019050919050565b6000614684603d8361502f565b915061468f82615baa565b604082019050919050565b60006146a7600e8361502f565b91506146b282615bf9565b602082019050919050565b60006146ca601183615040565b91506146d582615c22565b601182019050919050565b6146e9816151f8565b82525050565b6146f881615202565b82525050565b600061470a8284613fef565b60208201915081905092915050565b6000614725828461403f565b915081905092915050565b600061473c828561403f565b91506147488284613fba565b6014820191508190509392505050565b6000614764828561403f565b9150614770828461403f565b91508190509392505050565b6000614788828661403f565b9150614794828561403f565b91506147a0828461403f565b9150819050949350505050565b60006147b982846140b8565b915081905092915050565b60006147d082856140e9565b91506147db8261423a565b91506147e782846140b8565b91508190509392505050565b60006147fe826141ae565b915061480a828b6140b8565b9150614815826143de565b9150614821828a6140b8565b915061482c82614280565b9150614837826144f6565b915061484382896140b8565b915061484e82614280565b9150614859826141d1565b915061486582886140b8565b915061487082614280565b915061487b82614447565b915061488782876140b8565b915061489282614280565b915061489d826145a5565b91506148a982866140b8565b91506148b48261446a565b91506148c082856140b8565b91506148cc82846140b8565b91506148d782614582565b91508190509998505050505050505050565b60006148f4826141ae565b915061490082876140e9565b915061490b826143de565b915061491782866140e9565b915061492282614280565b915061492d8261453c565b915061493982856140e9565b915061494482614280565b915061494f826144b0565b915061495b82846140e9565b91506149668261446a565b915061497182614582565b915081905095945050505050565b600061498a826141f4565b915061499682866140b8565b91506149a182614280565b91506149ac8261453c565b91506149b882856140e9565b91506149c3826142e9565b91506149cf82846140b8565b91506149da8261446a565b9150819050949350505050565b60006149f28261432f565b91506149fe8285613fef565b602082019150614a0e8284613fef565b6020820191508190509392505050565b6000614a2982614352565b9150614a3582846140b8565b915081905092915050565b6000614a4b82614654565b9150614a5782846140b8565b915081905092915050565b6000614a6d826146bd565b9150614a7982846140e9565b9150614a848261448d565b915081905092915050565b6000602082019050614aa46000830184613fab565b92915050565b6000606082019050614abf6000830186613fab565b614acc6020830185613f9c565b8181036040830152614ade8184614006565b9050949350505050565b6000608082019050614afd6000830187613fab565b614b0a6020830186613fab565b614b1760408301856146e0565b8181036060830152614b298184614006565b905095945050505050565b6000602082019050614b496000830184613fd1565b92915050565b6000602082019050614b646000830184613fe0565b92915050565b600060a082019050614b7f6000830188613fe0565b614b8c6020830187613fe0565b614b996040830186613fe0565b614ba66060830185613fab565b614bb36080830184613fe0565b9695505050505050565b6000608082019050614bd26000830187613fe0565b614bdf60208301866146e0565b614bec6040830185613fab565b614bf96060830184613fe0565b95945050505050565b6000608082019050614c176000830187613fe0565b614c2460208301866146ef565b614c316040830185613fe0565b614c3e6060830184613fe0565b95945050505050565b60006020820190508181036000830152614c618184614006565b905092915050565b6000602082019050614c7e6000830184614070565b92915050565b60006020820190508181036000830152614c9e818461407f565b905092915050565b60006020820190508181036000830152614cbf81614168565b9050919050565b60006020820190508181036000830152614cdf8161418b565b9050919050565b60006020820190508181036000830152614cff81614217565b9050919050565b60006020820190508181036000830152614d1f8161425d565b9050919050565b60006020820190508181036000830152614d3f816142a3565b9050919050565b60006020820190508181036000830152614d5f816142c6565b9050919050565b60006020820190508181036000830152614d7f8161430c565b9050919050565b60006020820190508181036000830152614d9f81614375565b9050919050565b60006020820190508181036000830152614dbf81614398565b9050919050565b60006020820190508181036000830152614ddf816143bb565b9050919050565b60006020820190508181036000830152614dff81614401565b9050919050565b60006020820190508181036000830152614e1f81614424565b9050919050565b60006020820190508181036000830152614e3f816144d3565b9050919050565b60006020820190508181036000830152614e5f81614519565b9050919050565b60006020820190508181036000830152614e7f8161455f565b9050919050565b60006020820190508181036000830152614e9f816145c8565b9050919050565b60006020820190508181036000830152614ebf816145eb565b9050919050565b60006020820190508181036000830152614edf8161460e565b9050919050565b60006020820190508181036000830152614eff81614631565b9050919050565b60006020820190508181036000830152614f1f81614677565b9050919050565b60006020820190508181036000830152614f3f8161469a565b9050919050565b6000602082019050614f5b60008301846146e0565b92915050565b6000614f6b614f7c565b9050614f7782826152bf565b919050565b6000604051905090565b600067ffffffffffffffff821115614fa157614fa06153f4565b5b614faa82615423565b9050602081019050919050565b600067ffffffffffffffff821115614fd257614fd16153f4565b5b614fdb82615423565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000615056826151f8565b9150615061836151f8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561509657615095615367565b5b828201905092915050565b60006150ac826151f8565b91506150b7836151f8565b9250826150c7576150c6615396565b5b828204905092915050565b60006150dd826151f8565b91506150e8836151f8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561512157615120615367565b5b828202905092915050565b6000615137826151f8565b9150615142836151f8565b92508282101561515557615154615367565b5b828203905092915050565b600061516b826151d8565b9050919050565b600061517d826151d8565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006151d182615160565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061521a82615202565b9050919050565b82818337600083830152505050565b60005b8381101561524e578082015181840152602081019050615233565b8381111561525d576000848401525b50505050565b600061526e826151f8565b9150600082141561528257615281615367565b5b600182039050919050565b600060028204905060018216806152a557607f821691505b602082108114156152b9576152b86153c5565b5b50919050565b6152c882615423565b810181811067ffffffffffffffff821117156152e7576152e66153f4565b5b80604052505050565b60006152fb826151f8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561532e5761532d615367565b5b600182019050919050565b600061534482615355565b9050919050565b6000819050919050565b600061536082615434565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b7f7b226e616d65223a220000000000000000000000000000000000000000000000600082015250565b7f2265787465726e616c5f75726c223a2200000000000000000000000000000000600082015250565b7f22646964223a2200000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f2023000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b7f46756e6374696f6e2063616c6c206e6f74207375636365737366756c00000000600082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f3f617373657449643d0000000000000000000000000000000000000000000000600082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f7a00000000000000000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f496e76616c696420736c6963652072616e676500000000000000000000000000600082015250565b7f222c226465736372697074696f6e223a22000000000000000000000000000000600082015250565b7f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360008201527f49474e4552000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f22736e223a220000000000000000000000000000000000000000000000000000600082015250565b7f2200000000000000000000000000000000000000000000000000000000000000600082015250565b7f2e00000000000000000000000000000000000000000000000000000000000000600082015250565b7f2265787465726e616c5f6c696e6b223a22000000000000000000000000000000600082015250565b7f4d6178206d696e7420636f756e74207265616368656400000000000000000000600082015250565b7f2261747472696275746573223a22000000000000000000000000000000000000600082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f22696d616765223a220000000000000000000000000000000000000000000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f7d00000000000000000000000000000000000000000000000000000000000000600082015250565b7f22636f6e747261637441646472657373223a2200000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5369676e657220616e64207369676e617475726520646f206e6f74206d61746360008201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b7f616c726561647920696e69746564000000000000000000000000000000000000600082015250565b7f546869732069732061204e4654206f6620000000000000000000000000000000600082015250565b615c5481615160565b8114615c5f57600080fd5b50565b615c6b81615184565b8114615c7657600080fd5b50565b615c8281615190565b8114615c8d57600080fd5b50565b615c998161519a565b8114615ca457600080fd5b50565b615cb0816151c6565b8114615cbb57600080fd5b50565b615cc7816151f8565b8114615cd257600080fd5b50565b615cde81615202565b8114615ce957600080fd5b5056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c74294142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f31323334353637383941424344454647484a4b4c4d4e505152535455565758595a6162636465666768696a6b6d6e6f707172737475767778797aa2646970667358221220a03e2fbbfc53c2c6617535503b08a34b3af0a9e7a18dc0804d8b911dc7e9280164736f6c63430008040033",
722
- "deployedBytecode": "0x6080604052600436106101cd5760003560e01c806370a08231116100f7578063a22cb46511610095578063e8a3d48511610064578063e8a3d485146106a1578063e985e9c5146106cc578063f2fde38b14610709578063fe9c9ff114610732576101cd565b8063a22cb465146105e7578063b88d4fde14610610578063c87b56dd14610639578063d8f9f12d14610676576101cd565b80638da5cb5b116100d15780638da5cb5b1461052b57806395d89b4114610556578063982d3ba014610581578063a1e5425e146105aa576101cd565b806370a082311461049a578063715018a6146104d75780637e032eb4146104ee576101cd565b806320379ee51161016f57806342842e0e1161013e57806342842e0e146103e257806342ab15861461040b5780636352211e146104345780636d10cd9c14610471576101cd565b806320379ee51461032657806323b872dd146103515780632d0335ab1461037a5780633408e470146103b7576101cd565b8063095ea7b3116101ab578063095ea7b3146102775780630c53c51c146102a05780630f7e5970146102d057806318160ddd146102fb576101cd565b806301ffc9a7146101d257806306fdde031461020f578063081812fc1461023a575b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f49190613ef8565b61075b565b6040516102069190614b34565b60405180910390f35b34801561021b57600080fd5b5061022461083d565b6040516102319190614c84565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c9190613f73565b6108cf565b60405161026e9190614a8f565b60405180910390f35b34801561028357600080fd5b5061029e60048036038101906102999190613ebc565b610915565b005b6102ba60048036038101906102b59190613d44565b610a2d565b6040516102c79190614c47565b60405180910390f35b3480156102dc57600080fd5b506102e5610c9f565b6040516102f29190614c84565b60405180910390f35b34801561030757600080fd5b50610310610cd8565b60405161031d9190614f46565b60405180910390f35b34801561033257600080fd5b5061033b610cf5565b6040516103489190614b4f565b60405180910390f35b34801561035d57600080fd5b5061037860048036038101906103739190613c3e565b610cff565b005b34801561038657600080fd5b506103a1600480360381019061039c9190613bd9565b610d5f565b6040516103ae9190614f46565b60405180910390f35b3480156103c357600080fd5b506103cc610da8565b6040516103d99190614f46565b60405180910390f35b3480156103ee57600080fd5b5061040960048036038101906104049190613c3e565b610db5565b005b34801561041757600080fd5b50610432600480360381019061042d9190613bd9565b610dd5565b005b34801561044057600080fd5b5061045b60048036038101906104569190613f73565b610ea9565b6040516104689190614a8f565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190613f73565b610f30565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190613bd9565b610f42565b6040516104ce9190614f46565b60405180910390f35b3480156104e357600080fd5b506104ec610ffa565b005b3480156104fa57600080fd5b5061051560048036038101906105109190613f73565b61100e565b6040516105229190614c84565b60405180910390f35b34801561053757600080fd5b50610540611059565b60405161054d9190614a8f565b60405180910390f35b34801561056257600080fd5b5061056b611083565b6040516105789190614c84565b60405180910390f35b34801561058d57600080fd5b506105a860048036038101906105a39190613bd9565b611115565b005b3480156105b657600080fd5b506105d160048036038101906105cc9190613f73565b6111e1565b6040516105de9190614c84565b60405180910390f35b3480156105f357600080fd5b5061060e60048036038101906106099190613d08565b61135c565b005b34801561061c57600080fd5b5061063760048036038101906106329190613c8d565b611372565b005b34801561064557600080fd5b50610660600480360381019061065b9190613f73565b6113d4565b60405161066d9190614c84565b60405180910390f35b34801561068257600080fd5b5061068b61140d565b6040516106989190614f46565b60405180910390f35b3480156106ad57600080fd5b506106b6611417565b6040516106c39190614c84565b60405180910390f35b3480156106d857600080fd5b506106f360048036038101906106ee9190613c02565b611475565b6040516107009190614b34565b60405180910390f35b34801561071557600080fd5b50610730600480360381019061072b9190613bd9565b611577565b005b34801561073e57600080fd5b5061075960048036038101906107549190613dd3565b6115fb565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061082657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108365750610835826118c5565b5b9050919050565b6060600d805461084c9061528d565b80601f01602080910402602001604051908101604052809291908181526020018280546108789061528d565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050905090565b60006108da8261192f565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061092082610ea9565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098890614ee6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109b061197a565b73ffffffffffffffffffffffffffffffffffffffff1614806109df57506109de816109d961197a565b611475565b5b610a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1590614f06565b60405180910390fd5b610a288383611989565b505050565b606060006040518060600160405280600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481526020018873ffffffffffffffffffffffffffffffffffffffff168152602001878152509050610ab08782878787611a42565b610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae690614ea6565b60405180910390fd5b610b426001600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b4b90919063ffffffff16565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b873388604051610bb893929190614aaa565b60405180910390a16000803073ffffffffffffffffffffffffffffffffffffffff16888a604051602001610bed929190614730565b604051602081830303815290604052604051610c099190614719565b6000604051808303816000865af19150503d8060008114610c46576040519150601f19603f3d011682016040523d82523d6000602084013e610c4b565b606091505b509150915081610c90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8790614d26565b60405180910390fd5b80935050505095945050505050565b6040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525081565b60006001610ce6600a611b61565b610cf0919061512c565b905090565b6000600754905090565b610d10610d0a61197a565b82611b6f565b610d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4690614cc6565b60405180910390fd5b610d5a838383611c04565b505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000804690508091505090565b610dd083838360405180602001604052806000815250611372565b505050565b610ddd611efe565b6000610de9600a611b61565b90506000601254118015610dfe575060125481115b15610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3590614e26565b60405180910390fd5b6000610e4a600a611b61565b9050610e56600a6117fe565b610e608382611f7c565b808373ffffffffffffffffffffffffffffffffffffffff167f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe60405160405180910390a3505050565b600080610eb583611f9a565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1e90614ec6565b60405180910390fd5b80915050919050565b610f38611efe565b8060128190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610faa90614e06565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611002611efe565b61100c6000611fd7565b565b6060600061101b836111e1565b9050600081600c836040516020016110359392919061497f565b6040516020818303038152906040529050611050848261209d565b92505050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060601080546110929061528d565b80601f01602080910402602001604051908101604052809291908181526020018280546110be9061528d565b801561110b5780601f106110e05761010080835404028352916020019161110b565b820191906000526020600020905b8154815290600101906020018083116110ee57829003601f168201915b5050505050905090565b6000611121600a611b61565b90506000601254118015611136575060125481115b15611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d90614e26565b60405180910390fd5b6000611182600a611b61565b905061118e600a6117fe565b6111988382611f7c565b808373ffffffffffffffffffffffffffffffffffffffff167ffaa12ddb40ba6ec53659ef184da2121c1c228dd2e760b3574db7feca61d99f9a60405160405180910390a3505050565b606060006111fe836040518060200160405280600081525061209d565b905060008160405160200161121391906147ad565b60405160208183030381529060405280519060200120905060006112598260405160200161124191906146fe565b604051602081830303815290604052600060146121ef565b905060006040518060400160405280600281526020017f18200000000000000000000000000000000000000000000000000000000000008152509050600081836040516020016112aa929190614758565b604051602081830303815290604052905060006112f082805190602001206040516020016112d891906146fe565b604051602081830303815290604052600060046121ef565b905060008385836040516020016113099392919061477c565b6040516020818303038152906040529050600061132582612398565b905060008160405160200161133a9190614a1e565b6040516020818303038152906040529050809950505050505050505050919050565b61136e61136761197a565b8383612919565b5050565b61138361137d61197a565b83611b6f565b6113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990614cc6565b60405180910390fd5b6113ce84848484612a86565b50505050565b60606113e76113e28361100e565b612ae2565b6040516020016113f79190614a40565b6040516020818303038152906040529050919050565b6000601254905090565b6060600061144d600d600e600f601160405160200161143994939291906148e9565b604051602081830303815290604052612ae2565b9050806040516020016114609190614a40565b60405160208183030381529060405291505090565b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663c4552791866040518263ffffffff1660e01b81526004016114ed9190614a8f565b60206040518083038186803b15801561150557600080fd5b505afa158015611519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153d9190613f4a565b73ffffffffffffffffffffffffffffffffffffffff161415611563576001915050611571565b61156d8484612c6c565b9150505b92915050565b61157f611efe565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e690614d06565b60405180910390fd5b6115f881611fd7565b50565b6000600960159054906101000a900460ff1615905080801561162f57506001600960149054906101000a900460ff1660ff16105b8061165e575061163e30612d00565b15801561165d57506001600960149054906101000a900460ff1660ff16145b5b61169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490614e46565b60405180910390fd5b6001600960146101000a81548160ff021916908360ff16021790555080156116db576001600960156101000a81548160ff0219169083151502179055505b86600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600c90805190602001906117329291906139be565b5084600d90805190602001906117499291906139be565b5083601090805190602001906117609291906139be565b5082600e90805190602001906117779291906139be565b508160128190555061178885612d23565b611792600a6117fe565b61179b87611fd7565b80156117f5576000600960156101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860016040516117ec9190614c69565b60405180910390a15b50505050505050565b6001816000016000828254019250508190555050565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156118be57600080368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050600080369050905073ffffffffffffffffffffffffffffffffffffffff8183015116925050506118c2565b3390505b90565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61193881612d9a565b611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e90614ec6565b60405180910390fd5b50565b6000611984611814565b905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166119fc83610ea9565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415611ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaa90614de6565b60405180910390fd5b6001611ac6611ac187612ddb565b612e43565b83868660405160008152602001604052604051611ae69493929190614c02565b6020604051602081039080840390855afa158015611b08573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614905095945050505050565b60008183611b59919061504b565b905092915050565b600081600001549050919050565b600080611b7b83610ea9565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611bbd5750611bbc8185611475565b5b80611bfb57508373ffffffffffffffffffffffffffffffffffffffff16611be3846108cf565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611c2482610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7190614d46565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce190614d86565b60405180910390fd5b611cf78383836001612e7c565b8273ffffffffffffffffffffffffffffffffffffffff16611d1782610ea9565b73ffffffffffffffffffffffffffffffffffffffff1614611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6490614d46565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611ef98383836001612e82565b505050565b611f0661197a565b73ffffffffffffffffffffffffffffffffffffffff16611f24611059565b73ffffffffffffffffffffffffffffffffffffffff1614611f7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7190614e86565b60405180910390fd5b565b611f96828260405180602001604052806000815250612e88565b5050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60606000600d6120ac85612ee3565b6040516020016120bd9291906147c4565b60405160208183030381529060405290506000600d6040516020016120e29190614a62565b6040516020818303038152906040529050600060405180602001604052806000815250905060006040518060400160405280601e81526020017f68747470733a2f2f666f72756d2e6f70656e7a657070656c696e2e636f6d00008152509050600061214c88612ee3565b9050600061215930613007565b905060006040518060200160405280600081525090506000895111156121b2576040518060400160405280600181526020017f2c0000000000000000000000000000000000000000000000000000000000000081525090505b868686868686868f6040516020016121d19897969594939291906147f3565b60405160208183030381529060405297505050505050505092915050565b6060835182846121ff919061504b565b1115612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790614dc6565b60405180910390fd5b60008267ffffffffffffffff811115612282577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156122b45781602001600182028036833780820191505090505b50905060005b8381101561238c578581866122cf919061504b565b81518110612306577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b82828151811061234a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080612384906152f0565b9150506122ba565b50809150509392505050565b606060008251905060005b818110801561241a5750600060f81b8482815181106123eb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b1561242c5780806001019150506123a3565b60016117e361209f838503028161246c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b04820101915060008267ffffffffffffffff8111156124b4577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156124e65781602001600182028036833780820191505090505b509050600080600060018603905060005b88518110156126ca5760018703925088818151811061253f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1693505b81831380612568575060008463ffffffff1614155b156126ba578483815181106125a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff166101000261ffff1684019350603a8463ffffffff1681612600577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0660f81b85848151811061263d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350603a8463ffffffff16816126a9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b049350828060019003935050612553565b82915080806001019150506124f7565b5060008590505b86811080156127485750600060f81b858281518110612719577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b1561275a5780806001019150506126d1565b858103855103965060008767ffffffffffffffff8111156127a4577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156127d65781602001600182028036833780820191505090505b50905060005b88811015612908576000888483010390506040518060600160405280603a8152602001615dbf603a913988828151811061283f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1681518110612887577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b8383815181106128cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505080806001019150506127dc565b508098505050505050505050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297f90614da6565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612a799190614b34565b60405180910390a3505050565b612a91848484611c04565b612a9d84848484613034565b612adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ad390614ce6565b60405180910390fd5b50505050565b6060600082511415612b0557604051806020016040528060008152509050612c67565b6000604051806060016040528060408152602001615d7f6040913990506000600360028551612b34919061504b565b612b3e91906150a1565b6004612b4a91906150d2565b67ffffffffffffffff811115612b89577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612bbb5781602001600182028036833780820191505090505b509050600182016020820185865187015b80821015612c27576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f8116850151845360018401935050612bcc565b5050600386510660018114612c435760028114612c5657612c5e565b603d6001830353603d6002830353612c5e565b603d60018303535b50505080925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600660009054906101000a900460ff1615612d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6a90614f26565b60405180910390fd5b612d7c816131cb565b6001600660006101000a81548160ff02191690831515021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff16612dbc83611f9a565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000604051806080016040528060438152602001615ced604391398051906020012082600001518360200151846040015180519060200120604051602001612e269493929190614bbd565b604051602081830303815290604052805190602001209050919050565b6000612e4d610cf5565b82604051602001612e5f9291906149e7565b604051602081830303815290604052805190602001209050919050565b50505050565b50505050565b612e92838361326f565b612e9f6000848484613034565b612ede576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ed590614ce6565b60405180910390fd5b505050565b606060006001612ef28461348d565b01905060008167ffffffffffffffff811115612f37577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612f695781602001600182028036833780820191505090505b509050600082602001820190505b600115612ffc578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612fe6577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0494506000851415612ff757612ffc565b612f77565b819350505050919050565b606061302d8273ffffffffffffffffffffffffffffffffffffffff16601460ff166136c4565b9050919050565b60006130558473ffffffffffffffffffffffffffffffffffffffff16612d00565b156131be578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261307e61197a565b8786866040518563ffffffff1660e01b81526004016130a09493929190614ae8565b602060405180830381600087803b1580156130ba57600080fd5b505af19250505080156130eb57506040513d601f19601f820116820180604052508101906130e89190613f21565b60015b61316e573d806000811461311b576040519150601f19603f3d011682016040523d82523d6000602084013e613120565b606091505b50600081511415613166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315d90614ce6565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506131c3565b600190505b949350505050565b6040518060800160405280604f8152602001615d30604f91398051906020012081805190602001206040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152508051906020012030613239610da8565b60001b604051602001613250959493929190614b6a565b6040516020818303038152906040528051906020012060078190555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156132df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132d690614e66565b60405180910390fd5b6132e881612d9a565b15613328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331f90614d66565b60405180910390fd5b613336600083836001612e7c565b61333f81612d9a565b1561337f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161337690614d66565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4613489600083836001612e82565b5050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613511577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381613507577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506040810190505b6d04ee2d6d415b85acef81000000008310613574576d04ee2d6d415b85acef8100000000838161356a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506020810190505b662386f26fc1000083106135c957662386f26fc1000083816135bf577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506010810190505b6305f5e1008310613618576305f5e100838161360e577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506008810190505b6127108310613663576127108381613659577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506004810190505b606483106136ac57606483816136a2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b0492506002810190505b600a83106136bb576001810190505b80915050919050565b6060600060028360026136d791906150d2565b6136e1919061504b565b67ffffffffffffffff811115613720577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156137525781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106137b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061383a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261387a91906150d2565b613884919061504b565b90505b6001811115613970577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106138ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b828281518110613929577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061396990615263565b9050613887565b50600084146139b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139ab90614ca6565b60405180910390fd5b8091505092915050565b8280546139ca9061528d565b90600052602060002090601f0160209004810192826139ec5760008555613a33565b82601f10613a0557805160ff1916838001178555613a33565b82800160010185558215613a33579182015b82811115613a32578251825591602001919060010190613a17565b5b509050613a409190613a44565b5090565b5b80821115613a5d576000816000905550600101613a45565b5090565b6000613a74613a6f84614f86565b614f61565b905082815260208101848484011115613a8c57600080fd5b613a97848285615221565b509392505050565b6000613ab2613aad84614fb7565b614f61565b905082815260208101848484011115613aca57600080fd5b613ad5848285615221565b509392505050565b600081359050613aec81615c4b565b92915050565b600081359050613b0181615c62565b92915050565b600081359050613b1681615c79565b92915050565b600081359050613b2b81615c90565b92915050565b600081519050613b4081615c90565b92915050565b600082601f830112613b5757600080fd5b8135613b67848260208601613a61565b91505092915050565b600081519050613b7f81615ca7565b92915050565b600082601f830112613b9657600080fd5b8135613ba6848260208601613a9f565b91505092915050565b600081359050613bbe81615cbe565b92915050565b600081359050613bd381615cd5565b92915050565b600060208284031215613beb57600080fd5b6000613bf984828501613add565b91505092915050565b60008060408385031215613c1557600080fd5b6000613c2385828601613add565b9250506020613c3485828601613add565b9150509250929050565b600080600060608486031215613c5357600080fd5b6000613c6186828701613add565b9350506020613c7286828701613add565b9250506040613c8386828701613baf565b9150509250925092565b60008060008060808587031215613ca357600080fd5b6000613cb187828801613add565b9450506020613cc287828801613add565b9350506040613cd387828801613baf565b925050606085013567ffffffffffffffff811115613cf057600080fd5b613cfc87828801613b46565b91505092959194509250565b60008060408385031215613d1b57600080fd5b6000613d2985828601613add565b9250506020613d3a85828601613af2565b9150509250929050565b600080600080600060a08688031215613d5c57600080fd5b6000613d6a88828901613add565b955050602086013567ffffffffffffffff811115613d8757600080fd5b613d9388828901613b46565b9450506040613da488828901613b07565b9350506060613db588828901613b07565b9250506080613dc688828901613bc4565b9150509295509295909350565b60008060008060008060c08789031215613dec57600080fd5b6000613dfa89828a01613add565b965050602087013567ffffffffffffffff811115613e1757600080fd5b613e2389828a01613b85565b955050604087013567ffffffffffffffff811115613e4057600080fd5b613e4c89828a01613b85565b945050606087013567ffffffffffffffff811115613e6957600080fd5b613e7589828a01613b85565b935050608087013567ffffffffffffffff811115613e9257600080fd5b613e9e89828a01613b85565b92505060a0613eaf89828a01613baf565b9150509295509295509295565b60008060408385031215613ecf57600080fd5b6000613edd85828601613add565b9250506020613eee85828601613baf565b9150509250929050565b600060208284031215613f0a57600080fd5b6000613f1884828501613b1c565b91505092915050565b600060208284031215613f3357600080fd5b6000613f4184828501613b31565b91505092915050565b600060208284031215613f5c57600080fd5b6000613f6a84828501613b70565b91505092915050565b600060208284031215613f8557600080fd5b6000613f9384828501613baf565b91505092915050565b613fa581615172565b82525050565b613fb481615160565b82525050565b613fcb613fc682615160565b615339565b82525050565b613fda81615184565b82525050565b613fe981615190565b82525050565b614000613ffb82615190565b61534b565b82525050565b600061401182614ffd565b61401b8185615013565b935061402b818560208601615230565b61403481615423565b840191505092915050565b600061404a82614ffd565b6140548185615024565b9350614064818560208601615230565b80840191505092915050565b6140798161520f565b82525050565b600061408a82615008565b614094818561502f565b93506140a4818560208601615230565b6140ad81615423565b840191505092915050565b60006140c382615008565b6140cd8185615040565b93506140dd818560208601615230565b80840191505092915050565b600081546140f68161528d565b6141008186615040565b9450600182166000811461411b576001811461412c5761415f565b60ff1983168652818601935061415f565b61413585614fe8565b60005b8381101561415757815481890152600182019150602081019050614138565b838801955050505b50505092915050565b600061417560208361502f565b915061418082615441565b602082019050919050565b6000614198602d8361502f565b91506141a38261546a565b604082019050919050565b60006141bb600983615040565b91506141c6826154b9565b600982019050919050565b60006141de601083615040565b91506141e9826154e2565b601082019050919050565b6000614201600783615040565b915061420c8261550b565b600782019050919050565b600061422460328361502f565b915061422f82615534565b604082019050919050565b6000614247600283615040565b915061425282615583565b600282019050919050565b600061426a60268361502f565b9150614275826155ac565b604082019050919050565b600061428d600283615040565b9150614298826155fb565b600282019050919050565b60006142b0601c8361502f565b91506142bb82615624565b602082019050919050565b60006142d360258361502f565b91506142de8261564d565b604082019050919050565b60006142f6600983615040565b91506143018261569c565b600982019050919050565b6000614319601c8361502f565b9150614324826156c5565b602082019050919050565b600061433c600283615040565b9150614347826156ee565b600282019050919050565b600061435f600183615040565b915061436a82615717565b600182019050919050565b600061438260248361502f565b915061438d82615740565b604082019050919050565b60006143a560198361502f565b91506143b08261578f565b602082019050919050565b60006143c860138361502f565b91506143d3826157b8565b602082019050919050565b60006143eb601183615040565b91506143f6826157e1565b601182019050919050565b600061440e60258361502f565b91506144198261580a565b604082019050919050565b600061443160298361502f565b915061443c82615859565b604082019050919050565b6000614454600683615040565b915061445f826158a8565b600682019050919050565b6000614477600183615040565b9150614482826158d1565b600182019050919050565b600061449a600183615040565b91506144a5826158fa565b600182019050919050565b60006144bd601183615040565b91506144c882615923565b601182019050919050565b60006144e060168361502f565b91506144eb8261594c565b602082019050919050565b6000614503600e83615040565b915061450e82615975565b600e82019050919050565b6000614526602e8361502f565b91506145318261599e565b604082019050919050565b6000614549600983615040565b9150614554826159ed565b600982019050919050565b600061456c60208361502f565b915061457782615a16565b602082019050919050565b600061458f600183615040565b915061459a82615a3f565b600182019050919050565b60006145b2601383615040565b91506145bd82615a68565b601382019050919050565b60006145d560208361502f565b91506145e082615a91565b602082019050919050565b60006145f860218361502f565b915061460382615aba565b604082019050919050565b600061461b60188361502f565b915061462682615b09565b602082019050919050565b600061463e60218361502f565b915061464982615b32565b604082019050919050565b6000614661601d83615040565b915061466c82615b81565b601d82019050919050565b6000614684603d8361502f565b915061468f82615baa565b604082019050919050565b60006146a7600e8361502f565b91506146b282615bf9565b602082019050919050565b60006146ca601183615040565b91506146d582615c22565b601182019050919050565b6146e9816151f8565b82525050565b6146f881615202565b82525050565b600061470a8284613fef565b60208201915081905092915050565b6000614725828461403f565b915081905092915050565b600061473c828561403f565b91506147488284613fba565b6014820191508190509392505050565b6000614764828561403f565b9150614770828461403f565b91508190509392505050565b6000614788828661403f565b9150614794828561403f565b91506147a0828461403f565b9150819050949350505050565b60006147b982846140b8565b915081905092915050565b60006147d082856140e9565b91506147db8261423a565b91506147e782846140b8565b91508190509392505050565b60006147fe826141ae565b915061480a828b6140b8565b9150614815826143de565b9150614821828a6140b8565b915061482c82614280565b9150614837826144f6565b915061484382896140b8565b915061484e82614280565b9150614859826141d1565b915061486582886140b8565b915061487082614280565b915061487b82614447565b915061488782876140b8565b915061489282614280565b915061489d826145a5565b91506148a982866140b8565b91506148b48261446a565b91506148c082856140b8565b91506148cc82846140b8565b91506148d782614582565b91508190509998505050505050505050565b60006148f4826141ae565b915061490082876140e9565b915061490b826143de565b915061491782866140e9565b915061492282614280565b915061492d8261453c565b915061493982856140e9565b915061494482614280565b915061494f826144b0565b915061495b82846140e9565b91506149668261446a565b915061497182614582565b915081905095945050505050565b600061498a826141f4565b915061499682866140b8565b91506149a182614280565b91506149ac8261453c565b91506149b882856140e9565b91506149c3826142e9565b91506149cf82846140b8565b91506149da8261446a565b9150819050949350505050565b60006149f28261432f565b91506149fe8285613fef565b602082019150614a0e8284613fef565b6020820191508190509392505050565b6000614a2982614352565b9150614a3582846140b8565b915081905092915050565b6000614a4b82614654565b9150614a5782846140b8565b915081905092915050565b6000614a6d826146bd565b9150614a7982846140e9565b9150614a848261448d565b915081905092915050565b6000602082019050614aa46000830184613fab565b92915050565b6000606082019050614abf6000830186613fab565b614acc6020830185613f9c565b8181036040830152614ade8184614006565b9050949350505050565b6000608082019050614afd6000830187613fab565b614b0a6020830186613fab565b614b1760408301856146e0565b8181036060830152614b298184614006565b905095945050505050565b6000602082019050614b496000830184613fd1565b92915050565b6000602082019050614b646000830184613fe0565b92915050565b600060a082019050614b7f6000830188613fe0565b614b8c6020830187613fe0565b614b996040830186613fe0565b614ba66060830185613fab565b614bb36080830184613fe0565b9695505050505050565b6000608082019050614bd26000830187613fe0565b614bdf60208301866146e0565b614bec6040830185613fab565b614bf96060830184613fe0565b95945050505050565b6000608082019050614c176000830187613fe0565b614c2460208301866146ef565b614c316040830185613fe0565b614c3e6060830184613fe0565b95945050505050565b60006020820190508181036000830152614c618184614006565b905092915050565b6000602082019050614c7e6000830184614070565b92915050565b60006020820190508181036000830152614c9e818461407f565b905092915050565b60006020820190508181036000830152614cbf81614168565b9050919050565b60006020820190508181036000830152614cdf8161418b565b9050919050565b60006020820190508181036000830152614cff81614217565b9050919050565b60006020820190508181036000830152614d1f8161425d565b9050919050565b60006020820190508181036000830152614d3f816142a3565b9050919050565b60006020820190508181036000830152614d5f816142c6565b9050919050565b60006020820190508181036000830152614d7f8161430c565b9050919050565b60006020820190508181036000830152614d9f81614375565b9050919050565b60006020820190508181036000830152614dbf81614398565b9050919050565b60006020820190508181036000830152614ddf816143bb565b9050919050565b60006020820190508181036000830152614dff81614401565b9050919050565b60006020820190508181036000830152614e1f81614424565b9050919050565b60006020820190508181036000830152614e3f816144d3565b9050919050565b60006020820190508181036000830152614e5f81614519565b9050919050565b60006020820190508181036000830152614e7f8161455f565b9050919050565b60006020820190508181036000830152614e9f816145c8565b9050919050565b60006020820190508181036000830152614ebf816145eb565b9050919050565b60006020820190508181036000830152614edf8161460e565b9050919050565b60006020820190508181036000830152614eff81614631565b9050919050565b60006020820190508181036000830152614f1f81614677565b9050919050565b60006020820190508181036000830152614f3f8161469a565b9050919050565b6000602082019050614f5b60008301846146e0565b92915050565b6000614f6b614f7c565b9050614f7782826152bf565b919050565b6000604051905090565b600067ffffffffffffffff821115614fa157614fa06153f4565b5b614faa82615423565b9050602081019050919050565b600067ffffffffffffffff821115614fd257614fd16153f4565b5b614fdb82615423565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000615056826151f8565b9150615061836151f8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561509657615095615367565b5b828201905092915050565b60006150ac826151f8565b91506150b7836151f8565b9250826150c7576150c6615396565b5b828204905092915050565b60006150dd826151f8565b91506150e8836151f8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561512157615120615367565b5b828202905092915050565b6000615137826151f8565b9150615142836151f8565b92508282101561515557615154615367565b5b828203905092915050565b600061516b826151d8565b9050919050565b600061517d826151d8565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006151d182615160565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061521a82615202565b9050919050565b82818337600083830152505050565b60005b8381101561524e578082015181840152602081019050615233565b8381111561525d576000848401525b50505050565b600061526e826151f8565b9150600082141561528257615281615367565b5b600182039050919050565b600060028204905060018216806152a557607f821691505b602082108114156152b9576152b86153c5565b5b50919050565b6152c882615423565b810181811067ffffffffffffffff821117156152e7576152e66153f4565b5b80604052505050565b60006152fb826151f8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561532e5761532d615367565b5b600182019050919050565b600061534482615355565b9050919050565b6000819050919050565b600061536082615434565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b7f7b226e616d65223a220000000000000000000000000000000000000000000000600082015250565b7f2265787465726e616c5f75726c223a2200000000000000000000000000000000600082015250565b7f22646964223a2200000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f2023000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f222c000000000000000000000000000000000000000000000000000000000000600082015250565b7f46756e6374696f6e2063616c6c206e6f74207375636365737366756c00000000600082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f3f617373657449643d0000000000000000000000000000000000000000000000600082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f7a00000000000000000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f496e76616c696420736c6963652072616e676500000000000000000000000000600082015250565b7f222c226465736372697074696f6e223a22000000000000000000000000000000600082015250565b7f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360008201527f49474e4552000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f22736e223a220000000000000000000000000000000000000000000000000000600082015250565b7f2200000000000000000000000000000000000000000000000000000000000000600082015250565b7f2e00000000000000000000000000000000000000000000000000000000000000600082015250565b7f2265787465726e616c5f6c696e6b223a22000000000000000000000000000000600082015250565b7f4d6178206d696e7420636f756e74207265616368656400000000000000000000600082015250565b7f2261747472696275746573223a22000000000000000000000000000000000000600082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f22696d616765223a220000000000000000000000000000000000000000000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f7d00000000000000000000000000000000000000000000000000000000000000600082015250565b7f22636f6e747261637441646472657373223a2200000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5369676e657220616e64207369676e617475726520646f206e6f74206d61746360008201527f6800000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b7f616c726561647920696e69746564000000000000000000000000000000000000600082015250565b7f546869732069732061204e4654206f6620000000000000000000000000000000600082015250565b615c5481615160565b8114615c5f57600080fd5b50565b615c6b81615184565b8114615c7657600080fd5b50565b615c8281615190565b8114615c8d57600080fd5b50565b615c998161519a565b8114615ca457600080fd5b50565b615cb0816151c6565b8114615cbb57600080fd5b50565b615cc7816151f8565b8114615cd257600080fd5b50565b615cde81615202565b8114615ce957600080fd5b5056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c74294142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f31323334353637383941424344454647484a4b4c4d4e505152535455565758595a6162636465666768696a6b6d6e6f707172737475767778797aa2646970667358221220a03e2fbbfc53c2c6617535503b08a34b3af0a9e7a18dc0804d8b911dc7e9280164736f6c63430008040033",
723
- "linkReferences": {},
724
- "deployedLinkReferences": {}
725
- }