.
675 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Splitter [](https://arxiv.org/pdf/1905.02138.pdf) [](https://github.com/benedekrozemberczki/Splitter/archive/master.zip) [](https://twitter.com/intent/follow?screen_name=benrozemberczki)
2 | ======================
3 | A **PyTorch** implementation of **Splitter: Learning Node Representations that Capture Multiple Social Contexts (WWW 2019).**
4 |
5 |
6 |
7 |
8 | ### Abstract
9 |
10 | Recent interest in graph embedding methods has focused on learning a single representation for each node in the graph. But can nodes really be best described by a single vector representation? In this work, we propose a method for learning multiple representations of the nodes in a graph (e.g., the users of a social network). Based on a principled decomposition of the ego-network, each representation encodes the role of the node in a different local community in which the nodes participate. These representations allow for improved reconstruction of the nuanced relationships that occur in the graph a phenomenon that we illustrate through state-of-the-art results on link prediction tasks on a variety of graphs, reducing the error by up to 90%. In addition, we show that these embeddings allow for effective visual analysis of the learned community structure.
11 |
12 | This repository provides a PyTorch implementation of Splitter as described in the paper:
13 |
14 | > Splitter: Learning Node Representations that Capture Multiple Social Contexts.
15 | > Alessandro Epasto and Bryan Perozzi.
16 | > WWW, 2019.
17 | > [[Paper]](http://epasto.org/papers/www2019splitter.pdf)
18 |
19 |
20 | The original Tensorflow implementation is available [[here]](https://github.com/google-research/google-research/tree/master/graph_embedding/persona).
21 |
22 | ### Requirements
23 | The codebase is implemented in Python 3.5.2. package versions used for development are just below.
24 | ```
25 | networkx 1.11
26 | tqdm 4.28.1
27 | numpy 1.15.4
28 | pandas 0.23.4
29 | texttable 1.5.0
30 | scipy 1.1.0
31 | argparse 1.1.0
32 | torch 1.1.0
33 | gensim 3.6.0
34 | ```
35 | ### Datasets
36 |
37 | The code takes the **edge list** of the graph in a csv file. Every row indicates an edge between two nodes separated by a comma. The first row is a header. Nodes should be indexed starting with 0. A sample graph for `Cora` is included in the `input/` directory.
38 |
39 | ### Outputs
40 |
41 | The embeddings are saved in the `input/` directory. Each embedding has a header and a column with the node IDs. Finally, the node embedding is sorted by the node ID column.
42 |
43 | ### Options
44 |
45 | The training of a Splitter embedding is handled by the `src/main.py` script which provides the following command line arguments.
46 |
47 | #### Input and output options
48 | ```
49 | --edge-path STR Edge list csv. Default is `input/chameleon_edges.csv`.
50 | --embedding-output-path STR Embedding output csv. Default is `output/chameleon_embedding.csv`.
51 | --persona-output-path STR Persona mapping JSON. Default is `output/chameleon_personas.json`.
52 | ```
53 | #### Model options
54 | ```
55 | --seed INT Random seed. Default is 42.
56 | --number of walks INT Number of random walks per node. Default is 10.
57 | --window-size INT Skip-gram window size. Default is 5.
58 | --negative-samples INT Number of negative samples. Default is 5.
59 | --walk-length INT Random walk length. Default is 40.
60 | --lambd FLOAT Regularization parameter. Default is 0.1
61 | --dimensions INT Number of embedding dimensions. Default is 128.
62 | --workers INT Number of cores for pre-training. Default is 4.
63 | --learning-rate FLOAT SGD learning rate. Default is 0.025
64 | ```
65 |
66 |
67 | --------------------------------------------------------------------------------
68 |
69 |
70 | ### Examples
71 |
72 | The following commands learn an embedding and save it with the persona map. Training a model on the default dataset.
73 |
74 | ```
75 | python src/main.py
76 | ```
77 |
78 |
79 |
80 |
81 | Training a Splitter model with 32 dimensions.
82 | ```
83 | python src/main.py --dimensions 32
84 | ```
85 | Increasing the number of walks and the walk length.
86 | ```
87 | python src/main.py --number-of-walks 20 --walk-length 80
88 | ```
89 |
90 | --------------------------------------------------------------------------------
91 |
92 | **License**
93 |
94 | - [GNU License](https://github.com/benedekrozemberczki/Splitter/blob/master/LICENSE)
95 |
96 | --------------------------------------------------------------------------------
97 |
--------------------------------------------------------------------------------
/input/chameleon_target.csv:
--------------------------------------------------------------------------------
1 | id,target
2 | 0,171
3 | 1,8089
4 | 2,8568
5 | 3,47178
6 | 4,3634
7 | 5,215
8 | 6,1054
9 | 7,1106
10 | 8,109
11 | 9,3863
12 | 10,590
13 | 11,175
14 | 12,1399
15 | 13,39
16 | 14,444
17 | 15,64492
18 | 16,62284
19 | 17,154527
20 | 18,673
21 | 19,33
22 | 20,14480
23 | 21,176
24 | 22,1131
25 | 23,270
26 | 24,439
27 | 25,621
28 | 26,2211
29 | 27,11465
30 | 28,1308
31 | 29,2102
32 | 30,1461
33 | 31,322
34 | 32,1112
35 | 33,1106
36 | 34,14480
37 | 35,749
38 | 36,298200
39 | 37,276
40 | 38,550
41 | 39,13321
42 | 40,6503
43 | 41,121
44 | 42,33
45 | 43,14480
46 | 44,11495
47 | 45,17497
48 | 46,11852
49 | 47,3863
50 | 48,1054
51 | 49,3863
52 | 50,30954
53 | 51,550
54 | 52,6672
55 | 53,2828
56 | 54,6029
57 | 55,992
58 | 56,564
59 | 57,15764
60 | 58,6503
61 | 59,439
62 | 60,5755
63 | 61,33
64 | 62,844
65 | 63,2717
66 | 64,14480
67 | 65,439
68 | 66,54
69 | 67,2712
70 | 68,433
71 | 69,607
72 | 70,165
73 | 71,131
74 | 72,607
75 | 73,5164
76 | 74,14600
77 | 75,121
78 | 76,60667
79 | 77,2784
80 | 78,2756
81 | 79,121
82 | 80,31446
83 | 81,15196
84 | 82,760
85 | 83,321881
86 | 84,3651
87 | 85,2306
88 | 86,172
89 | 87,1668
90 | 88,5855
91 | 89,2201
92 | 90,50291
93 | 91,23383
94 | 92,882
95 | 93,1779
96 | 94,749
97 | 95,435
98 | 96,445
99 | 97,6700
100 | 98,607
101 | 99,3800
102 | 100,69062
103 | 101,121
104 | 102,1072
105 | 103,14480
106 | 104,88
107 | 105,329354
108 | 106,2237
109 | 107,5328
110 | 108,5749
111 | 109,464
112 | 110,145903
113 | 111,1199
114 | 112,607
115 | 113,238
116 | 114,44
117 | 115,6080
118 | 116,439
119 | 117,31
120 | 118,8568
121 | 119,62508
122 | 120,5307
123 | 121,296235
124 | 122,343
125 | 123,2754
126 | 124,31525
127 | 125,206753
128 | 126,1469
129 | 127,4453
130 | 128,59
131 | 129,239
132 | 130,778
133 | 131,30327
134 | 132,14480
135 | 133,433
136 | 134,121
137 | 135,3835
138 | 136,48979
139 | 137,904
140 | 138,243701
141 | 139,14480
142 | 140,4132
143 | 141,21845
144 | 142,3651
145 | 143,778
146 | 144,439
147 | 145,2716
148 | 146,42374
149 | 147,12481
150 | 148,16763
151 | 149,78503
152 | 150,772
153 | 151,2003
154 | 152,1712
155 | 153,1087
156 | 154,839
157 | 155,14480
158 | 156,14480
159 | 157,249
160 | 158,1461
161 | 159,992
162 | 160,4524
163 | 161,1430
164 | 162,4883
165 | 163,14480
166 | 164,218
167 | 165,69062
168 | 166,14480
169 | 167,4360
170 | 168,9009
171 | 169,11768
172 | 170,67
173 | 171,10051
174 | 172,3835
175 | 173,15196
176 | 174,1814
177 | 175,42374
178 | 176,2003
179 | 177,607
180 | 178,618
181 | 179,1399
182 | 180,772
183 | 181,11718
184 | 182,2651
185 | 183,30327
186 | 184,42
187 | 185,992
188 | 186,275
189 | 187,1374
190 | 188,185158
191 | 189,511
192 | 190,51748
193 | 191,385
194 | 192,33
195 | 193,28960
196 | 194,65
197 | 195,356
198 | 196,1127
199 | 197,4146
200 | 198,236
201 | 199,439
202 | 200,14480
203 | 201,14480
204 | 202,14480
205 | 203,1780
206 | 204,413
207 | 205,2741
208 | 206,439
209 | 207,39
210 | 208,167955
211 | 209,4220
212 | 210,13302
213 | 211,10672
214 | 212,719
215 | 213,439
216 | 214,296235
217 | 215,69
218 | 216,14480
219 | 217,11718
220 | 218,60667
221 | 219,22226
222 | 220,11382
223 | 221,1199
224 | 222,11495
225 | 223,1299
226 | 224,672
227 | 225,7599
228 | 226,291
229 | 227,7812
230 | 228,16086
231 | 229,2952
232 | 230,8568
233 | 231,439
234 | 232,20868
235 | 233,809
236 | 234,47178
237 | 235,322
238 | 236,10544
239 | 237,517
240 | 238,119647
241 | 239,95909
242 | 240,20868
243 | 241,719
244 | 242,11495
245 | 243,113157
246 | 244,12481
247 | 245,33
248 | 246,297
249 | 247,12486
250 | 248,15269
251 | 249,403
252 | 250,809
253 | 251,5643
254 | 252,618
255 | 253,2571
256 | 254,1267
257 | 255,35821
258 | 256,33
259 | 257,2003
260 | 258,30327
261 | 259,14480
262 | 260,6029
263 | 261,1054
264 | 262,961
265 | 263,29913
266 | 264,352
267 | 265,3521
268 | 266,97499
269 | 267,39
270 | 268,37706
271 | 269,2003
272 | 270,2349
273 | 271,433
274 | 272,36
275 | 273,155
276 | 274,1054
277 | 275,59
278 | 276,312
279 | 277,50666
280 | 278,11465
281 | 279,22971
282 | 280,50666
283 | 281,31446
284 | 282,69
285 | 283,14480
286 | 284,97499
287 | 285,146
288 | 286,98265
289 | 287,46
290 | 288,58
291 | 289,132
292 | 290,11469
293 | 291,607
294 | 292,607
295 | 293,42374
296 | 294,433
297 | 295,154527
298 | 296,302
299 | 297,1199
300 | 298,15196
301 | 299,445
302 | 300,618
303 | 301,62508
304 | 302,2046
305 | 303,14480
306 | 304,439
307 | 305,11718
308 | 306,31525
309 | 307,11718
310 | 308,920
311 | 309,5328
312 | 310,7847
313 | 311,618
314 | 312,16125
315 | 313,1054
316 | 314,1780
317 | 315,1430
318 | 316,11469
319 | 317,5397
320 | 318,253
321 | 319,2828
322 | 320,951
323 | 321,6685
324 | 322,291
325 | 323,6503
326 | 324,322
327 | 325,70
328 | 326,11718
329 | 327,139
330 | 328,2340
331 | 329,30327
332 | 330,5818
333 | 331,206753
334 | 332,11718
335 | 333,2555
336 | 334,121
337 | 335,721
338 | 336,2571
339 | 337,995
340 | 338,448
341 | 339,303
342 | 340,47293
343 | 341,607
344 | 342,121
345 | 343,4514
346 | 344,592
347 | 345,453
348 | 346,178682
349 | 347,618
350 | 348,283
351 | 349,7864
352 | 350,176
353 | 351,423
354 | 352,373
355 | 353,14329
356 | 354,9122
357 | 355,2251
358 | 356,834
359 | 357,13302
360 | 358,51748
361 | 359,59
362 | 360,1299
363 | 361,20868
364 | 362,10672
365 | 363,265
366 | 364,140
367 | 365,992
368 | 366,1091
369 | 367,426
370 | 368,2848
371 | 369,159
372 | 370,148
373 | 371,356
374 | 372,602
375 | 373,970
376 | 374,1377
377 | 375,775
378 | 376,992
379 | 377,2828
380 | 378,22
381 | 379,340
382 | 380,992
383 | 381,607
384 | 382,1537
385 | 383,56270
386 | 384,607
387 | 385,6520
388 | 386,296235
389 | 387,628
390 | 388,40350
391 | 389,2146
392 | 390,11469
393 | 391,474
394 | 392,6029
395 | 393,11353
396 | 394,16288
397 | 395,11465
398 | 396,882
399 | 397,22971
400 | 398,14480
401 | 399,778
402 | 400,453
403 | 401,15251
404 | 402,995
405 | 403,23383
406 | 404,11476
407 | 405,88
408 | 406,719
409 | 407,39
410 | 408,7714
411 | 409,33
412 | 410,439
413 | 411,329354
414 | 412,1384
415 | 413,1551
416 | 414,180
417 | 415,37311
418 | 416,80
419 | 417,1054
420 | 418,439
421 | 419,1069
422 | 420,8695
423 | 421,120484
424 | 422,866
425 | 423,9139
426 | 424,747
427 | 425,12481
428 | 426,464
429 | 427,256558
430 | 428,180
431 | 429,242
432 | 430,2426
433 | 431,377
434 | 432,44
435 | 433,29694
436 | 434,775
437 | 435,4294
438 | 436,1712
439 | 437,2551
440 | 438,2003
441 | 439,809
442 | 440,618
443 | 441,11495
444 | 442,4407
445 | 443,291
446 | 444,336
447 | 445,33
448 | 446,4220
449 | 447,329354
450 | 448,15764
451 | 449,49
452 | 450,2426
453 | 451,607
454 | 452,1054
455 | 453,13691
456 | 454,265
457 | 455,207
458 | 456,327
459 | 457,3863
460 | 458,11465
461 | 459,64
462 | 460,184
463 | 461,464
464 | 462,98265
465 | 463,1054
466 | 464,11465
467 | 465,1754
468 | 466,4728
469 | 467,39
470 | 468,1780
471 | 469,34
472 | 470,2330
473 | 471,45734
474 | 472,171
475 | 473,33
476 | 474,133
477 | 475,2712
478 | 476,85
479 | 477,439
480 | 478,168
481 | 479,2886
482 | 480,20656
483 | 481,698
484 | 482,265
485 | 483,80
486 | 484,11495
487 | 485,174
488 | 486,33
489 | 487,9730
490 | 488,811
491 | 489,698
492 | 490,29
493 | 491,298200
494 | 492,453
495 | 493,1054
496 | 494,595
497 | 495,19279
498 | 496,2948
499 | 497,1641
500 | 498,2395
501 | 499,14480
502 | 500,2003
503 | 501,121
504 | 502,14480
505 | 503,747
506 | 504,641
507 | 505,919
508 | 506,78503
509 | 507,16125
510 | 508,607
511 | 509,1082
512 | 510,10051
513 | 511,2709
514 | 512,12767
515 | 513,607
516 | 514,15763
517 | 515,1085
518 | 516,16086
519 | 517,3863
520 | 518,1712
521 | 519,50
522 | 520,1430
523 | 521,1054
524 | 522,369
525 | 523,1054
526 | 524,11718
527 | 525,121
528 | 526,97499
529 | 527,1996
530 | 528,775
531 | 529,8568
532 | 530,439
533 | 531,60667
534 | 532,121
535 | 533,42374
536 | 534,7080
537 | 535,27
538 | 536,1706
539 | 537,249
540 | 538,13922
541 | 539,2340
542 | 540,6269
543 | 541,17497
544 | 542,33
545 | 543,6480
546 | 544,140
547 | 545,14480
548 | 546,48
549 | 547,12486
550 | 548,618
551 | 549,7889
552 | 550,11469
553 | 551,3993
554 | 552,19045
555 | 553,1054
556 | 554,14480
557 | 555,31446
558 | 556,245091
559 | 557,11469
560 | 558,618
561 | 559,34
562 | 560,992
563 | 561,2952
564 | 562,384
565 | 563,1054
566 | 564,2003
567 | 565,4437
568 | 566,14480
569 | 567,8567
570 | 568,17229
571 | 569,113157
572 | 570,33
573 | 571,595
574 | 572,543
575 | 573,1054
576 | 574,7599
577 | 575,154527
578 | 576,5669
579 | 577,2551
580 | 578,20868
581 | 579,78503
582 | 580,274
583 | 581,1494
584 | 582,2678
585 | 583,121
586 | 584,5307
587 | 585,14714
588 | 586,439
589 | 587,749
590 | 588,464
591 | 589,56270
592 | 590,1054
593 | 591,45
594 | 592,4728
595 | 593,206753
596 | 594,14480
597 | 595,399
598 | 596,672
599 | 597,2003
600 | 598,618
601 | 599,121
602 | 600,699
603 | 601,5985
604 | 602,64492
605 | 603,31575
606 | 604,492
607 | 605,13057
608 | 606,2252
609 | 607,464
610 | 608,2237
611 | 609,64492
612 | 610,212549
613 | 611,33
614 | 612,174
615 | 613,172
616 | 614,69
617 | 615,1461
618 | 616,5463
619 | 617,439
620 | 618,721
621 | 619,296235
622 | 620,518
623 | 621,47019
624 | 622,27
625 | 623,524
626 | 624,2606
627 | 625,439
628 | 626,32
629 | 627,121
630 | 628,131
631 | 629,15764
632 | 630,38168
633 | 631,844
634 | 632,48
635 | 633,85
636 | 634,1780
637 | 635,2606
638 | 636,16288
639 | 637,2525
640 | 638,452
641 | 639,2003
642 | 640,550
643 | 641,2716
644 | 642,992
645 | 643,1789
646 | 644,433
647 | 645,31525
648 | 646,15196
649 | 647,5312
650 | 648,11718
651 | 649,152
652 | 650,1751
653 | 651,11465
654 | 652,24234
655 | 653,194
656 | 654,433
657 | 655,2222
658 | 656,7864
659 | 657,37311
660 | 658,267
661 | 659,33
662 | 660,5501
663 | 661,2678
664 | 662,537
665 | 663,11465
666 | 664,6029
667 | 665,3515
668 | 666,13993
669 | 667,121
670 | 668,389
671 | 669,16721
672 | 670,618
673 | 671,7539
674 | 672,618
675 | 673,14480
676 | 674,69
677 | 675,3173
678 | 676,1545
679 | 677,934
680 | 678,37
681 | 679,597
682 | 680,433
683 | 681,14480
684 | 682,14600
685 | 683,26
686 | 684,119
687 | 685,14480
688 | 686,33
689 | 687,42
690 | 688,121
691 | 689,41
692 | 690,11718
693 | 691,11469
694 | 692,15188
695 | 693,369
696 | 694,11495
697 | 695,16125
698 | 696,14480
699 | 697,622
700 | 698,992
701 | 699,234
702 | 700,31
703 | 701,6685
704 | 702,43
705 | 703,9742
706 | 704,1054
707 | 705,992
708 | 706,2237
709 | 707,31575
710 | 708,3993
711 | 709,12162
712 | 710,1198
713 | 711,68
714 | 712,1054
715 | 713,3173
716 | 714,121
717 | 715,14480
718 | 716,97499
719 | 717,203
720 | 718,439
721 | 719,184
722 | 720,28780
723 | 721,329354
724 | 722,607
725 | 723,6503
726 | 724,2551
727 | 725,377
728 | 726,4967
729 | 727,3138
730 | 728,5660
731 | 729,16125
732 | 730,15196
733 | 731,2717
734 | 732,121
735 | 733,98265
736 | 734,249
737 | 735,13321
738 | 736,1603
739 | 737,445
740 | 738,43
741 | 739,595
742 | 740,439
743 | 741,39
744 | 742,3835
745 | 743,433
746 | 744,324
747 | 745,373
748 | 746,2953
749 | 747,20868
750 | 748,8695
751 | 749,15196
752 | 750,1188
753 | 751,241
754 | 752,1054
755 | 753,167955
756 | 754,1603
757 | 755,755
758 | 756,747
759 | 757,809
760 | 758,4640
761 | 759,3223
762 | 760,9139
763 | 761,45645
764 | 762,439
765 | 763,68548
766 | 764,4967
767 | 765,439
768 | 766,2132
769 | 767,2430
770 | 768,133
771 | 769,95909
772 | 770,11465
773 | 771,1096
774 | 772,453
775 | 773,1054
776 | 774,13384
777 | 775,1800
778 | 776,185158
779 | 777,154527
780 | 778,15763
781 | 779,4553
782 | 780,1712
783 | 781,78503
784 | 782,28722
785 | 783,3316
786 | 784,249
787 | 785,607
788 | 786,11795
789 | 787,8568
790 | 788,830
791 | 789,121
792 | 790,33
793 | 791,4028
794 | 792,747
795 | 793,121
796 | 794,12767
797 | 795,8567
798 | 796,20868
799 | 797,1230
800 | 798,2306
801 | 799,3173
802 | 800,97499
803 | 801,1054
804 | 802,14480
805 | 803,747
806 | 804,615
807 | 805,14480
808 | 806,121
809 | 807,7599
810 | 808,167
811 | 809,30
812 | 810,1812
813 | 811,62508
814 | 812,14480
815 | 813,56
816 | 814,6030
817 | 815,377
818 | 816,74
819 | 817,13656
820 | 818,62508
821 | 819,747
822 | 820,2756
823 | 821,383
824 | 822,29053
825 | 823,121
826 | 824,14480
827 | 825,607
828 | 826,51
829 | 827,9484
830 | 828,11718
831 | 829,1029
832 | 830,121
833 | 831,992
834 | 832,4147
835 | 833,340
836 | 834,2368
837 | 835,2848
838 | 836,3210
839 | 837,4294
840 | 838,19069
841 | 839,15764
842 | 840,433
843 | 841,179
844 | 842,242
845 | 843,121
846 | 844,433
847 | 845,6029
848 | 846,464
849 | 847,16125
850 | 848,166
851 | 849,2368
852 | 850,68
853 | 851,33
854 | 852,1508
855 | 853,174
856 | 854,8568
857 | 855,71
858 | 856,1012
859 | 857,154527
860 | 858,1198
861 | 859,607
862 | 860,22898
863 | 861,2051
864 | 862,384
865 | 863,11469
866 | 864,33
867 | 865,31525
868 | 866,37
869 | 867,41746
870 | 868,3863
871 | 869,1812
872 | 870,11768
873 | 871,14480
874 | 872,778
875 | 873,78503
876 | 874,33
877 | 875,439
878 | 876,140
879 | 877,439
880 | 878,22898
881 | 879,2578
882 | 880,1241
883 | 881,3265
884 | 882,295
885 | 883,3142
886 | 884,14480
887 | 885,6775
888 | 886,7821
889 | 887,10768
890 | 888,691
891 | 889,6029
892 | 890,20551
893 | 891,5855
894 | 892,934
895 | 893,3454
896 | 894,811
897 | 895,4718
898 | 896,42813
899 | 897,116
900 | 898,2234
901 | 899,651
902 | 900,21426
903 | 901,91
904 | 902,11465
905 | 903,2395
906 | 904,16288
907 | 905,2551
908 | 906,43
909 | 907,618
910 | 908,190
911 | 909,10051
912 | 910,57
913 | 911,14480
914 | 912,2003
915 | 913,31
916 | 914,3049
917 | 915,13497
918 | 916,3521
919 | 917,15
920 | 918,3173
921 | 919,10672
922 | 920,11469
923 | 921,265
924 | 922,920
925 | 923,354
926 | 924,6108
927 | 925,778
928 | 926,276
929 | 927,296235
930 | 928,25701
931 | 929,11465
932 | 930,4724
933 | 931,2076
934 | 932,10768
935 | 933,1988
936 | 934,172
937 | 935,23509
938 | 936,19279
939 | 937,13922
940 | 938,13321
941 | 939,88
942 | 940,6029
943 | 941,453
944 | 942,15196
945 | 943,34
946 | 944,31390
947 | 945,1528
948 | 946,52727
949 | 947,79
950 | 948,9239
951 | 949,2741
952 | 950,453
953 | 951,3800
954 | 952,28722
955 | 953,439
956 | 954,57
957 | 955,36745
958 | 956,46961
959 | 957,1712
960 | 958,5818
961 | 959,70
962 | 960,12576
963 | 961,439
964 | 962,960
965 | 963,439
966 | 964,132
967 | 965,323
968 | 966,78503
969 | 967,31
970 | 968,14480
971 | 969,778
972 | 970,66
973 | 971,36745
974 | 972,445
975 | 973,45734
976 | 974,79
977 | 975,9516
978 | 976,11469
979 | 977,56
980 | 978,11495
981 | 979,1772
982 | 980,15764
983 | 981,11718
984 | 982,3173
985 | 983,439
986 | 984,13922
987 | 985,7539
988 | 986,2003
989 | 987,1812
990 | 988,1033
991 | 989,453
992 | 990,276
993 | 991,35
994 | 992,13827
995 | 993,13221
996 | 994,146
997 | 995,10051
998 | 996,5818
999 | 997,1054
1000 | 998,2003
1001 | 999,28
1002 | 1000,245091
1003 | 1001,11718
1004 | 1002,11469
1005 | 1003,433
1006 | 1004,1733
1007 | 1005,9164
1008 | 1006,1054
1009 | 1007,16125
1010 | 1008,39
1011 | 1009,1461
1012 | 1010,4718
1013 | 1011,5669
1014 | 1012,283
1015 | 1013,148
1016 | 1014,585
1017 | 1015,121
1018 | 1016,6994
1019 | 1017,13691
1020 | 1018,9122
1021 | 1019,2237
1022 | 1020,1659
1023 | 1021,82
1024 | 1022,14480
1025 | 1023,835
1026 | 1024,98265
1027 | 1025,6029
1028 | 1026,121
1029 | 1027,8535
1030 | 1028,1054
1031 | 1029,8568
1032 | 1030,2678
1033 | 1031,85983
1034 | 1032,42
1035 | 1033,4104
1036 | 1034,4360
1037 | 1035,15078
1038 | 1036,33
1039 | 1037,9742
1040 | 1038,69062
1041 | 1039,4544
1042 | 1040,10672
1043 | 1041,2003
1044 | 1042,1054
1045 | 1043,775
1046 | 1044,38
1047 | 1045,1378
1048 | 1046,38168
1049 | 1047,69062
1050 | 1048,14480
1051 | 1049,7080
1052 | 1050,121
1053 | 1051,33
1054 | 1052,1641
1055 | 1053,22971
1056 | 1054,444
1057 | 1055,992
1058 | 1056,11768
1059 | 1057,439
1060 | 1058,607
1061 | 1059,66
1062 | 1060,3173
1063 | 1061,231
1064 | 1062,72
1065 | 1063,164
1066 | 1064,22971
1067 | 1065,6029
1068 | 1066,2918
1069 | 1067,69062
1070 | 1068,579
1071 | 1069,33
1072 | 1070,1198
1073 | 1071,69062
1074 | 1072,485
1075 | 1073,4853
1076 | 1074,509
1077 | 1075,139
1078 | 1076,14480
1079 | 1077,56
1080 | 1078,17229
1081 | 1079,6029
1082 | 1080,6029
1083 | 1081,215
1084 | 1082,14480
1085 | 1083,6685
1086 | 1084,18766
1087 | 1085,1538
1088 | 1086,29109
1089 | 1087,3521
1090 | 1088,121
1091 | 1089,9122
1092 | 1090,3838
1093 | 1091,52727
1094 | 1092,321881
1095 | 1093,439
1096 | 1094,10199
1097 | 1095,904
1098 | 1096,56
1099 | 1097,30327
1100 | 1098,446
1101 | 1099,4731
1102 | 1100,1054
1103 | 1101,464
1104 | 1102,995
1105 | 1103,641
1106 | 1104,651
1107 | 1105,336
1108 | 1106,9312
1109 | 1107,11718
1110 | 1108,607
1111 | 1109,1641
1112 | 1110,121
1113 | 1111,4015
1114 | 1112,385
1115 | 1113,2513
1116 | 1114,18488
1117 | 1115,48
1118 | 1116,65323
1119 | 1117,6425
1120 | 1118,4350
1121 | 1119,14480
1122 | 1120,12486
1123 | 1121,276
1124 | 1122,5146
1125 | 1123,249
1126 | 1124,5451
1127 | 1125,377
1128 | 1126,69062
1129 | 1127,360
1130 | 1128,439
1131 | 1129,607
1132 | 1130,223
1133 | 1131,22971
1134 | 1132,38
1135 | 1133,3863
1136 | 1134,13922
1137 | 1135,249
1138 | 1136,239
1139 | 1137,309
1140 | 1138,996
1141 | 1139,2003
1142 | 1140,212549
1143 | 1141,3552
1144 | 1142,140
1145 | 1143,2848
1146 | 1144,1661
1147 | 1145,1710
1148 | 1146,11718
1149 | 1147,66
1150 | 1148,14480
1151 | 1149,3188
1152 | 1150,10051
1153 | 1151,19439
1154 | 1152,9023
1155 | 1153,8568
1156 | 1154,49
1157 | 1155,618
1158 | 1156,1907
1159 | 1157,439
1160 | 1158,15251
1161 | 1159,11469
1162 | 1160,69062
1163 | 1161,951
1164 | 1162,5546
1165 | 1163,1464
1166 | 1164,21505
1167 | 1165,830
1168 | 1166,904
1169 | 1167,30327
1170 | 1168,7622
1171 | 1169,16086
1172 | 1170,784
1173 | 1171,698
1174 | 1172,3173
1175 | 1173,294
1176 | 1174,5818
1177 | 1175,645
1178 | 1176,492
1179 | 1177,2294
1180 | 1178,11768
1181 | 1179,2051
1182 | 1180,15764
1183 | 1181,59
1184 | 1182,14480
1185 | 1183,12481
1186 | 1184,5522
1187 | 1185,13980
1188 | 1186,341
1189 | 1187,15269
1190 | 1188,29109
1191 | 1189,13321
1192 | 1190,992
1193 | 1191,52727
1194 | 1192,50666
1195 | 1193,607
1196 | 1194,105304
1197 | 1195,15764
1198 | 1196,1199
1199 | 1197,778
1200 | 1198,369
1201 | 1199,29053
1202 | 1200,486
1203 | 1201,47293
1204 | 1202,241
1205 | 1203,36268
1206 | 1204,3569
1207 | 1205,234304
1208 | 1206,28722
1209 | 1207,4437
1210 | 1208,1054
1211 | 1209,175
1212 | 1210,3863
1213 | 1211,11469
1214 | 1212,4147
1215 | 1213,17882
1216 | 1214,6503
1217 | 1215,163
1218 | 1216,69062
1219 | 1217,14480
1220 | 1218,82
1221 | 1219,139
1222 | 1220,9122
1223 | 1221,15500
1224 | 1222,3305
1225 | 1223,42813
1226 | 1224,276
1227 | 1225,1712
1228 | 1226,276
1229 | 1227,5603
1230 | 1228,14480
1231 | 1229,11465
1232 | 1230,7165
1233 | 1231,63
1234 | 1232,960
1235 | 1233,607
1236 | 1234,62
1237 | 1235,385
1238 | 1236,433
1239 | 1237,749
1240 | 1238,2948
1241 | 1239,747
1242 | 1240,685
1243 | 1241,12767
1244 | 1242,9742
1245 | 1243,1054
1246 | 1244,31525
1247 | 1245,11210
1248 | 1246,607
1249 | 1247,4986
1250 | 1248,123
1251 | 1249,8568
1252 | 1250,6029
1253 | 1251,1033
1254 | 1252,44
1255 | 1253,37706
1256 | 1254,622
1257 | 1255,166
1258 | 1256,329354
1259 | 1257,6882
1260 | 1258,439
1261 | 1259,123
1262 | 1260,1054
1263 | 1261,453
1264 | 1262,1144
1265 | 1263,3051
1266 | 1264,14480
1267 | 1265,5463
1268 | 1266,238
1269 | 1267,14480
1270 | 1268,315
1271 | 1269,12481
1272 | 1270,175
1273 | 1271,775
1274 | 1272,17229
1275 | 1273,1012
1276 | 1274,139
1277 | 1275,4342
1278 | 1276,7165
1279 | 1277,2149
1280 | 1278,20868
1281 | 1279,14480
1282 | 1280,6965
1283 | 1281,4350
1284 | 1282,7080
1285 | 1283,464
1286 | 1284,1641
1287 | 1285,2473
1288 | 1286,275
1289 | 1287,607
1290 | 1288,245091
1291 | 1289,672
1292 | 1290,10611
1293 | 1291,3800
1294 | 1292,607
1295 | 1293,31418
1296 | 1294,7300
1297 | 1295,867
1298 | 1296,7599
1299 | 1297,2366
1300 | 1298,97499
1301 | 1299,2753
1302 | 1300,2952
1303 | 1301,485
1304 | 1302,179
1305 | 1303,2222
1306 | 1304,2974
1307 | 1305,385
1308 | 1306,2555
1309 | 1307,131
1310 | 1308,20264
1311 | 1309,166
1312 | 1310,243
1313 | 1311,618
1314 | 1312,279
1315 | 1313,44
1316 | 1314,607
1317 | 1315,30
1318 | 1316,439
1319 | 1317,3863
1320 | 1318,445
1321 | 1319,439
1322 | 1320,354
1323 | 1321,248
1324 | 1322,20868
1325 | 1323,33
1326 | 1324,483
1327 | 1325,14480
1328 | 1326,1222
1329 | 1327,18657
1330 | 1328,607
1331 | 1329,119
1332 | 1330,1188
1333 | 1331,1780
1334 | 1332,36268
1335 | 1333,882
1336 | 1334,16721
1337 | 1335,747
1338 | 1336,14480
1339 | 1337,7080
1340 | 1338,28722
1341 | 1339,15763
1342 | 1340,6703
1343 | 1341,11745
1344 | 1342,305
1345 | 1343,42813
1346 | 1344,2285
1347 | 1345,56
1348 | 1346,48
1349 | 1347,1324
1350 | 1348,11718
1351 | 1349,811
1352 | 1350,39103
1353 | 1351,3090
1354 | 1352,121
1355 | 1353,1054
1356 | 1354,28282
1357 | 1355,859
1358 | 1356,3188
1359 | 1357,14329
1360 | 1358,809
1361 | 1359,99
1362 | 1360,6685
1363 | 1361,11465
1364 | 1362,13656
1365 | 1363,8568
1366 | 1364,373
1367 | 1365,433
1368 | 1366,618
1369 | 1367,50
1370 | 1368,14480
1371 | 1369,452
1372 | 1370,438
1373 | 1371,970
1374 | 1372,1916
1375 | 1373,3863
1376 | 1374,51748
1377 | 1375,2395
1378 | 1376,13057
1379 | 1377,74
1380 | 1378,14480
1381 | 1379,607
1382 | 1380,51748
1383 | 1381,6499
1384 | 1382,5818
1385 | 1383,1134
1386 | 1384,1641
1387 | 1385,607
1388 | 1386,859
1389 | 1387,141
1390 | 1388,45291
1391 | 1389,35821
1392 | 1390,520
1393 | 1391,75
1394 | 1392,5203
1395 | 1393,3173
1396 | 1394,685
1397 | 1395,747
1398 | 1396,52
1399 | 1397,1631
1400 | 1398,114
1401 | 1399,16086
1402 | 1400,58
1403 | 1401,4724
1404 | 1402,159
1405 | 1403,14714
1406 | 1404,172
1407 | 1405,5397
1408 | 1406,104
1409 | 1407,350
1410 | 1408,350
1411 | 1409,145
1412 | 1410,4436
1413 | 1411,30327
1414 | 1412,3388
1415 | 1413,33
1416 | 1414,10790
1417 | 1415,444
1418 | 1416,206753
1419 | 1417,50666
1420 | 1418,163
1421 | 1419,9030
1422 | 1420,121
1423 | 1421,11469
1424 | 1422,775
1425 | 1423,1199
1426 | 1424,389
1427 | 1425,452
1428 | 1426,2357
1429 | 1427,8935
1430 | 1428,377
1431 | 1429,65
1432 | 1430,1012
1433 | 1431,45291
1434 | 1432,1012
1435 | 1433,14480
1436 | 1434,12481
1437 | 1435,371
1438 | 1436,11718
1439 | 1437,439
1440 | 1438,11469
1441 | 1439,561
1442 | 1440,11469
1443 | 1441,33
1444 | 1442,37
1445 | 1443,6030
1446 | 1444,464
1447 | 1445,45291
1448 | 1446,607
1449 | 1447,32
1450 | 1448,8695
1451 | 1449,3863
1452 | 1450,809
1453 | 1451,707
1454 | 1452,474
1455 | 1453,439
1456 | 1454,1082
1457 | 1455,13321
1458 | 1456,637
1459 | 1457,29053
1460 | 1458,39
1461 | 1459,17351
1462 | 1460,14600
1463 | 1461,14480
1464 | 1462,621
1465 | 1463,2712
1466 | 1464,69062
1467 | 1465,453
1468 | 1466,1160
1469 | 1467,4553
1470 | 1468,433
1471 | 1469,152
1472 | 1470,14480
1473 | 1471,15843
1474 | 1472,249
1475 | 1473,849
1476 | 1474,1612
1477 | 1475,2395
1478 | 1476,8935
1479 | 1477,158
1480 | 1478,811
1481 | 1479,379
1482 | 1480,1733
1483 | 1481,14480
1484 | 1482,685
1485 | 1483,14480
1486 | 1484,2952
1487 | 1485,1378
1488 | 1486,14553
1489 | 1487,61
1490 | 1488,168
1491 | 1489,92184
1492 | 1490,252
1493 | 1491,3863
1494 | 1492,1267
1495 | 1493,236
1496 | 1494,439
1497 | 1495,167
1498 | 1496,2003
1499 | 1497,182
1500 | 1498,230815
1501 | 1499,3311
1502 | 1500,359
1503 | 1501,2368
1504 | 1502,445
1505 | 1503,8568
1506 | 1504,7714
1507 | 1505,4294
1508 | 1506,33
1509 | 1507,691
1510 | 1508,180
1511 | 1509,14480
1512 | 1510,29109
1513 | 1511,163
1514 | 1512,1399
1515 | 1513,1054
1516 | 1514,17229
1517 | 1515,62
1518 | 1516,4437
1519 | 1517,4728
1520 | 1518,70
1521 | 1519,33
1522 | 1520,1242
1523 | 1521,1054
1524 | 1522,8567
1525 | 1523,10672
1526 | 1524,453
1527 | 1525,16086
1528 | 1526,45291
1529 | 1527,3239
1530 | 1528,5824
1531 | 1529,126
1532 | 1530,651
1533 | 1531,618
1534 | 1532,8116
1535 | 1533,775
1536 | 1534,1198
1537 | 1535,7889
1538 | 1536,4360
1539 | 1537,6503
1540 | 1538,3051
1541 | 1539,183
1542 | 1540,14480
1543 | 1541,1054
1544 | 1542,69062
1545 | 1543,14553
1546 | 1544,1704
1547 | 1545,47178
1548 | 1546,2003
1549 | 1547,2828
1550 | 1548,3863
1551 | 1549,919
1552 | 1550,121
1553 | 1551,11718
1554 | 1552,859
1555 | 1553,99
1556 | 1554,379
1557 | 1555,30
1558 | 1556,2340
1559 | 1557,9821
1560 | 1558,566
1561 | 1559,97499
1562 | 1560,607
1563 | 1561,2294
1564 | 1562,33
1565 | 1563,17497
1566 | 1564,121
1567 | 1565,524
1568 | 1566,3863
1569 | 1567,10544
1570 | 1568,19
1571 | 1569,3051
1572 | 1570,322
1573 | 1571,11465
1574 | 1572,70
1575 | 1573,11687
1576 | 1574,2183
1577 | 1575,6269
1578 | 1576,15764
1579 | 1577,341
1580 | 1578,146
1581 | 1579,961
1582 | 1580,453
1583 | 1581,2132
1584 | 1582,4553
1585 | 1583,5203
1586 | 1584,254
1587 | 1585,11469
1588 | 1586,492
1589 | 1587,1054
1590 | 1588,11718
1591 | 1589,353
1592 | 1590,11495
1593 | 1591,98265
1594 | 1592,104
1595 | 1593,36745
1596 | 1594,48
1597 | 1595,607
1598 | 1596,3286
1599 | 1597,180
1600 | 1598,15959
1601 | 1599,2651
1602 | 1600,51
1603 | 1601,95909
1604 | 1602,385
1605 | 1603,34117
1606 | 1604,8695
1607 | 1605,3863
1608 | 1606,149
1609 | 1607,166
1610 | 1608,69062
1611 | 1609,7080
1612 | 1610,1019
1613 | 1611,171
1614 | 1612,880
1615 | 1613,6425
1616 | 1614,35821
1617 | 1615,4713
1618 | 1616,155
1619 | 1617,50
1620 | 1618,1033
1621 | 1619,16086
1622 | 1620,59
1623 | 1621,4514
1624 | 1622,719
1625 | 1623,52727
1626 | 1624,52727
1627 | 1625,29694
1628 | 1626,13656
1629 | 1627,14480
1630 | 1628,3688
1631 | 1629,11465
1632 | 1630,614
1633 | 1631,57
1634 | 1632,6262
1635 | 1633,4883
1636 | 1634,10257
1637 | 1635,6030
1638 | 1636,13321
1639 | 1637,14480
1640 | 1638,747
1641 | 1639,2132
1642 | 1640,37706
1643 | 1641,1384
1644 | 1642,14480
1645 | 1643,508957
1646 | 1644,13321
1647 | 1645,14480
1648 | 1646,403
1649 | 1647,439
1650 | 1648,6029
1651 | 1649,4553
1652 | 1650,1054
1653 | 1651,15251
1654 | 1652,772
1655 | 1653,747
1656 | 1654,530
1657 | 1655,31418
1658 | 1656,28780
1659 | 1657,439
1660 | 1658,595
1661 | 1659,33
1662 | 1660,146
1663 | 1661,622
1664 | 1662,1112
1665 | 1663,2201
1666 | 1664,486
1667 | 1665,13321
1668 | 1666,4524
1669 | 1667,128
1670 | 1668,485
1671 | 1669,38168
1672 | 1670,48979
1673 | 1671,376
1674 | 1672,69062
1675 | 1673,10770
1676 | 1674,155
1677 | 1675,7080
1678 | 1676,1659
1679 | 1677,3173
1680 | 1678,58
1681 | 1679,6685
1682 | 1680,425
1683 | 1681,14480
1684 | 1682,7300
1685 | 1683,13384
1686 | 1684,124
1687 | 1685,15196
1688 | 1686,70
1689 | 1687,385
1690 | 1688,74
1691 | 1689,439
1692 | 1690,2368
1693 | 1691,13057
1694 | 1692,50291
1695 | 1693,17351
1696 | 1694,234304
1697 | 1695,607
1698 | 1696,33
1699 | 1697,48979
1700 | 1698,930
1701 | 1699,4553
1702 | 1700,34
1703 | 1701,11718
1704 | 1702,2513
1705 | 1703,15078
1706 | 1704,4728
1707 | 1705,439
1708 | 1706,2709
1709 | 1707,276
1710 | 1708,357739
1711 | 1709,20868
1712 | 1710,3863
1713 | 1711,6454
1714 | 1712,11768
1715 | 1713,1112
1716 | 1714,56270
1717 | 1715,166
1718 | 1716,8428
1719 | 1717,175
1720 | 1718,698
1721 | 1719,14480
1722 | 1720,19077
1723 | 1721,494
1724 | 1722,5603
1725 | 1723,1054
1726 | 1724,10611
1727 | 1725,6882
1728 | 1726,834
1729 | 1727,624
1730 | 1728,11465
1731 | 1729,775
1732 | 1730,618
1733 | 1731,118
1734 | 1732,614
1735 | 1733,866
1736 | 1734,433
1737 | 1735,33
1738 | 1736,607
1739 | 1737,2306
1740 | 1738,107
1741 | 1739,9122
1742 | 1740,97499
1743 | 1741,206753
1744 | 1742,17497
1745 | 1743,1906
1746 | 1744,14142
1747 | 1745,14390
1748 | 1746,14480
1749 | 1747,811
1750 | 1748,5397
1751 | 1749,403
1752 | 1750,9821
1753 | 1751,7080
1754 | 1752,5603
1755 | 1753,44
1756 | 1754,2804
1757 | 1755,16086
1758 | 1756,721
1759 | 1757,439
1760 | 1758,322
1761 | 1759,2868
1762 | 1760,29
1763 | 1761,1919
1764 | 1762,590
1765 | 1763,3651
1766 | 1764,145903
1767 | 1765,383
1768 | 1766,1054
1769 | 1767,3863
1770 | 1768,11718
1771 | 1769,70
1772 | 1770,439
1773 | 1771,49
1774 | 1772,385
1775 | 1773,464
1776 | 1774,1127
1777 | 1775,442
1778 | 1776,243
1779 | 1777,8567
1780 | 1778,2480
1781 | 1779,2952
1782 | 1780,2003
1783 | 1781,775
1784 | 1782,439
1785 | 1783,1054
1786 | 1784,6685
1787 | 1785,12481
1788 | 1786,163
1789 | 1787,607
1790 | 1788,940
1791 | 1789,36268
1792 | 1790,22226
1793 | 1791,3863
1794 | 1792,7599
1795 | 1793,252
1796 | 1794,226
1797 | 1795,7599
1798 | 1796,69062
1799 | 1797,607
1800 | 1798,433
1801 | 1799,163
1802 | 1800,778
1803 | 1801,6520
1804 | 1802,778
1805 | 1803,4640
1806 | 1804,1812
1807 | 1805,915
1808 | 1806,385
1809 | 1807,14480
1810 | 1808,809
1811 | 1809,9742
1812 | 1810,33
1813 | 1811,121
1814 | 1812,4444
1815 | 1813,2513
1816 | 1814,30327
1817 | 1815,1779
1818 | 1816,464
1819 | 1817,272
1820 | 1818,6454
1821 | 1819,69062
1822 | 1820,69062
1823 | 1821,14480
1824 | 1822,618
1825 | 1823,121
1826 | 1824,15763
1827 | 1825,14480
1828 | 1826,33
1829 | 1827,51789
1830 | 1828,22971
1831 | 1829,36745
1832 | 1830,462
1833 | 1831,52727
1834 | 1832,106
1835 | 1833,433
1836 | 1834,2513
1837 | 1835,52
1838 | 1836,59
1839 | 1837,1988
1840 | 1838,48
1841 | 1839,48
1842 | 1840,169
1843 | 1841,5146
1844 | 1842,1054
1845 | 1843,29053
1846 | 1844,34
1847 | 1845,1603
1848 | 1846,15958
1849 | 1847,34117
1850 | 1848,13922
1851 | 1849,383
1852 | 1850,121
1853 | 1851,389
1854 | 1852,11718
1855 | 1853,3895
1856 | 1854,45645
1857 | 1855,33
1858 | 1856,2948
1859 | 1857,2003
1860 | 1858,10672
1861 | 1859,1295
1862 | 1860,1384
1863 | 1861,652
1864 | 1862,3078
1865 | 1863,4508
1866 | 1864,3634
1867 | 1865,3651
1868 | 1866,10672
1869 | 1867,105304
1870 | 1868,119647
1871 | 1869,6030
1872 | 1870,11469
1873 | 1871,179
1874 | 1872,80
1875 | 1873,14480
1876 | 1874,276
1877 | 1875,1733
1878 | 1876,5388
1879 | 1877,1795
1880 | 1878,59
1881 | 1879,614
1882 | 1880,11469
1883 | 1881,433
1884 | 1882,15764
1885 | 1883,453
1886 | 1884,31
1887 | 1885,1790
1888 | 1886,51
1889 | 1887,1096
1890 | 1888,439
1891 | 1889,174
1892 | 1890,453
1893 | 1891,16086
1894 | 1892,2641
1895 | 1893,14480
1896 | 1894,2368
1897 | 1895,641
1898 | 1896,14480
1899 | 1897,6076
1900 | 1898,867
1901 | 1899,5855
1902 | 1900,7080
1903 | 1901,17229
1904 | 1902,1134
1905 | 1903,88677
1906 | 1904,33
1907 | 1905,8031
1908 | 1906,607
1909 | 1907,31575
1910 | 1908,607
1911 | 1909,164
1912 | 1910,14480
1913 | 1911,329354
1914 | 1912,20656
1915 | 1913,645
1916 | 1914,59
1917 | 1915,78503
1918 | 1916,2952
1919 | 1917,775
1920 | 1918,1377
1921 | 1919,33374
1922 | 1920,10836
1923 | 1921,1069
1924 | 1922,453
1925 | 1923,296235
1926 | 1924,1661
1927 | 1925,8116
1928 | 1926,4147
1929 | 1927,11718
1930 | 1928,614
1931 | 1929,22898
1932 | 1930,6480
1933 | 1931,17497
1934 | 1932,13922
1935 | 1933,6965
1936 | 1934,1054
1937 | 1935,12486
1938 | 1936,1509
1939 | 1937,485
1940 | 1938,1054
1941 | 1939,52727
1942 | 1940,32846
1943 | 1941,121
1944 | 1942,179
1945 | 1943,253
1946 | 1944,15196
1947 | 1945,54
1948 | 1946,41
1949 | 1947,1054
1950 | 1948,29694
1951 | 1949,12114
1952 | 1950,397
1953 | 1951,41
1954 | 1952,445
1955 | 1953,3651
1956 | 1954,34
1957 | 1955,31418
1958 | 1956,453
1959 | 1957,12486
1960 | 1958,27085
1961 | 1959,5203
1962 | 1960,223
1963 | 1961,8505
1964 | 1962,6503
1965 | 1963,1054
1966 | 1964,14600
1967 | 1965,1012
1968 | 1966,298
1969 | 1967,18488
1970 | 1968,1765
1971 | 1969,14480
1972 | 1970,3626
1973 | 1971,9742
1974 | 1972,121
1975 | 1973,3863
1976 | 1974,6030
1977 | 1975,445
1978 | 1976,64492
1979 | 1977,492
1980 | 1978,33
1981 | 1979,336
1982 | 1980,9712
1983 | 1981,14480
1984 | 1982,1033
1985 | 1983,809
1986 | 1984,2641
1987 | 1985,37
1988 | 1986,775
1989 | 1987,10051
1990 | 1988,1760
1991 | 1989,356
1992 | 1990,1631
1993 | 1991,59
1994 | 1992,778
1995 | 1993,276
1996 | 1994,14480
1997 | 1995,439
1998 | 1996,433
1999 | 1997,992
2000 | 1998,6269
2001 | 1999,114
2002 | 2000,2368
2003 | 2001,2848
2004 | 2002,464
2005 | 2003,1399
2006 | 2004,1418
2007 | 2005,14480
2008 | 2006,29694
2009 | 2007,15764
2010 | 2008,38
2011 | 2009,996
2012 | 2010,14480
2013 | 2011,607
2014 | 2012,11495
2015 | 2013,189
2016 | 2014,2606
2017 | 2015,3096
2018 | 2016,15764
2019 | 2017,15764
2020 | 2018,120484
2021 | 2019,309
2022 | 2020,11495
2023 | 2021,1461
2024 | 2022,73
2025 | 2023,439
2026 | 2024,439
2027 | 2025,8568
2028 | 2026,51748
2029 | 2027,16721
2030 | 2028,39
2031 | 2029,1180
2032 | 2030,27906
2033 | 2031,607
2034 | 2032,2368
2035 | 2033,15764
2036 | 2034,69062
2037 | 2035,2395
2038 | 2036,992
2039 | 2037,46
2040 | 2038,28722
2041 | 2039,707
2042 | 2040,14480
2043 | 2041,1454
2044 | 2042,11745
2045 | 2043,566
2046 | 2044,249
2047 | 2045,2764
2048 | 2046,1302
2049 | 2047,74
2050 | 2048,69062
2051 | 2049,3863
2052 | 2050,11465
2053 | 2051,6029
2054 | 2052,33
2055 | 2053,830
2056 | 2054,397
2057 | 2055,691
2058 | 2056,14480
2059 | 2057,14045
2060 | 2058,15763
2061 | 2059,778
2062 | 2060,652
2063 | 2061,673
2064 | 2062,597
2065 | 2063,1054
2066 | 2064,5996
2067 | 2065,14073
2068 | 2066,43
2069 | 2067,298
2070 | 2068,4718
2071 | 2069,466
2072 | 2070,1033
2073 | 2071,7599
2074 | 2072,4436
2075 | 2073,747
2076 | 2074,992
2077 | 2075,915
2078 | 2076,6685
2079 | 2077,413
2080 | 2078,1072
2081 | 2079,13321
2082 | 2080,285
2083 | 2081,48979
2084 | 2082,11465
2085 | 2083,11718
2086 | 2084,691
2087 | 2085,11465
2088 | 2086,11718
2089 | 2087,4553
2090 | 2088,707
2091 | 2089,132
2092 | 2090,8568
2093 | 2091,14480
2094 | 2092,3250
2095 | 2093,2146
2096 | 2094,41
2097 | 2095,8428
2098 | 2096,203
2099 | 2097,24
2100 | 2098,145903
2101 | 2099,62
2102 | 2100,3863
2103 | 2101,2839
2104 | 2102,433
2105 | 2103,11718
2106 | 2104,618
2107 | 2105,127
2108 | 2106,45734
2109 | 2107,992
2110 | 2108,33
2111 | 2109,724
2112 | 2110,4553
2113 | 2111,2678
2114 | 2112,95909
2115 | 2113,427
2116 | 2114,778
2117 | 2115,532
2118 | 2116,70214
2119 | 2117,14480
2120 | 2118,12205
2121 | 2119,3311
2122 | 2120,33
2123 | 2121,13057
2124 | 2122,1124
2125 | 2123,7864
2126 | 2124,14480
2127 | 2125,14480
2128 | 2126,376
2129 | 2127,6029
2130 | 2128,121
2131 | 2129,4010
2132 | 2130,126
2133 | 2131,52910
2134 | 2132,4294
2135 | 2133,69
2136 | 2134,9122
2137 | 2135,439
2138 | 2136,6029
2139 | 2137,1812
2140 | 2138,2480
2141 | 2139,35821
2142 | 2140,119647
2143 | 2141,3438
2144 | 2142,37
2145 | 2143,1221
2146 | 2144,6503
2147 | 2145,6029
2148 | 2146,747
2149 | 2147,50666
2150 | 2148,692
2151 | 2149,444
2152 | 2150,5855
2153 | 2151,1508
2154 | 2152,31525
2155 | 2153,13057
2156 | 2154,29
2157 | 2155,33
2158 | 2156,377
2159 | 2157,121
2160 | 2158,15188
2161 | 2159,29
2162 | 2160,14480
2163 | 2161,3223
2164 | 2162,618
2165 | 2163,293
2166 | 2164,3521
2167 | 2165,7889
2168 | 2166,934
2169 | 2167,2368
2170 | 2168,9742
2171 | 2169,7084
2172 | 2170,11718
2173 | 2171,5643
2174 | 2172,6424
2175 | 2173,11718
2176 | 2174,42374
2177 | 2175,20868
2178 | 2176,11718
2179 | 2177,51789
2180 | 2178,1054
2181 | 2179,16721
2182 | 2180,16086
2183 | 2181,88
2184 | 2182,778
2185 | 2183,4713
2186 | 2184,49
2187 | 2185,637
2188 | 2186,28722
2189 | 2187,373
2190 | 2188,6503
2191 | 2189,14480
2192 | 2190,176
2193 | 2191,14229
2194 | 2192,40350
2195 | 2193,721
2196 | 2194,145903
2197 | 2195,2003
2198 | 2196,992
2199 | 2197,1391
2200 | 2198,166469
2201 | 2199,1033
2202 | 2200,3651
2203 | 2201,5855
2204 | 2202,439
2205 | 2203,747
2206 | 2204,2804
2207 | 2205,2057
2208 | 2206,33
2209 | 2207,1392
2210 | 2208,212549
2211 | 2209,15764
2212 | 2210,166
2213 | 2211,50
2214 | 2212,439
2215 | 2213,43
2216 | 2214,16763
2217 | 2215,564
2218 | 2216,69062
2219 | 2217,97499
2220 | 2218,721
2221 | 2219,48
2222 | 2220,2201
2223 | 2221,11495
2224 | 2222,14480
2225 | 2223,901
2226 | 2224,11718
2227 | 2225,3993
2228 | 2226,11720
2229 | 2227,57
2230 | 2228,2754
2231 | 2229,5982
2232 | 2230,37311
2233 | 2231,271
2234 | 2232,354
2235 | 2233,295
2236 | 2234,3239
2237 | 2235,539
2238 | 2236,637
2239 | 2237,992
2240 | 2238,14480
2241 | 2239,1054
2242 | 2240,8695
2243 | 2241,14480
2244 | 2242,2578
2245 | 2243,3863
2246 | 2244,14480
2247 | 2245,385
2248 | 2246,69062
2249 | 2247,139
2250 | 2248,276
2251 | 2249,154527
2252 | 2250,201
2253 | 2251,672
2254 | 2252,82
2255 | 2253,106
2256 | 2254,7165
2257 | 2255,101871
2258 | 2256,433
2259 | 2257,8526
2260 | 2258,114
2261 | 2259,11718
2262 | 2260,992
2263 | 2261,50666
2264 | 2262,2426
2265 | 2263,14480
2266 | 2264,6882
2267 | 2265,5388
2268 | 2266,778
2269 | 2267,35836
2270 | 2268,1012
2271 | 2269,101871
2272 | 2270,373
2273 | 2271,672
2274 | 2272,31418
2275 | 2273,2716
2276 | 2274,99
2277 | 2275,22898
2278 | 2276,276
2279 |
--------------------------------------------------------------------------------
/input/cora_target.csv:
--------------------------------------------------------------------------------
1 | id,target
2 | 0,3
3 | 1,4
4 | 2,4
5 | 3,0
6 | 4,3
7 | 5,2
8 | 6,0
9 | 7,3
10 | 8,3
11 | 9,2
12 | 10,0
13 | 11,0
14 | 12,4
15 | 13,3
16 | 14,3
17 | 15,3
18 | 16,2
19 | 17,3
20 | 18,1
21 | 19,3
22 | 20,5
23 | 21,3
24 | 22,4
25 | 23,6
26 | 24,3
27 | 25,3
28 | 26,6
29 | 27,3
30 | 28,2
31 | 29,4
32 | 30,3
33 | 31,6
34 | 32,0
35 | 33,4
36 | 34,2
37 | 35,0
38 | 36,1
39 | 37,5
40 | 38,4
41 | 39,4
42 | 40,3
43 | 41,6
44 | 42,6
45 | 43,4
46 | 44,3
47 | 45,3
48 | 46,2
49 | 47,5
50 | 48,3
51 | 49,4
52 | 50,5
53 | 51,3
54 | 52,0
55 | 53,2
56 | 54,1
57 | 55,4
58 | 56,6
59 | 57,3
60 | 58,2
61 | 59,2
62 | 60,0
63 | 61,0
64 | 62,0
65 | 63,4
66 | 64,2
67 | 65,0
68 | 66,4
69 | 67,5
70 | 68,2
71 | 69,6
72 | 70,5
73 | 71,2
74 | 72,2
75 | 73,2
76 | 74,0
77 | 75,4
78 | 76,5
79 | 77,6
80 | 78,4
81 | 79,0
82 | 80,0
83 | 81,0
84 | 82,4
85 | 83,2
86 | 84,4
87 | 85,1
88 | 86,4
89 | 87,6
90 | 88,0
91 | 89,4
92 | 90,2
93 | 91,4
94 | 92,6
95 | 93,6
96 | 94,0
97 | 95,0
98 | 96,6
99 | 97,5
100 | 98,0
101 | 99,6
102 | 100,0
103 | 101,2
104 | 102,1
105 | 103,1
106 | 104,1
107 | 105,2
108 | 106,6
109 | 107,5
110 | 108,6
111 | 109,1
112 | 110,2
113 | 111,2
114 | 112,1
115 | 113,5
116 | 114,5
117 | 115,5
118 | 116,6
119 | 117,5
120 | 118,6
121 | 119,5
122 | 120,5
123 | 121,1
124 | 122,6
125 | 123,6
126 | 124,1
127 | 125,5
128 | 126,1
129 | 127,6
130 | 128,5
131 | 129,5
132 | 130,5
133 | 131,1
134 | 132,5
135 | 133,1
136 | 134,1
137 | 135,1
138 | 136,1
139 | 137,1
140 | 138,1
141 | 139,1
142 | 140,4
143 | 141,3
144 | 142,0
145 | 143,3
146 | 144,6
147 | 145,6
148 | 146,0
149 | 147,3
150 | 148,4
151 | 149,0
152 | 150,3
153 | 151,4
154 | 152,4
155 | 153,1
156 | 154,2
157 | 155,2
158 | 156,2
159 | 157,3
160 | 158,3
161 | 159,3
162 | 160,3
163 | 161,0
164 | 162,4
165 | 163,5
166 | 164,0
167 | 165,3
168 | 166,4
169 | 167,3
170 | 168,3
171 | 169,3
172 | 170,2
173 | 171,3
174 | 172,3
175 | 173,2
176 | 174,2
177 | 175,6
178 | 176,1
179 | 177,4
180 | 178,3
181 | 179,3
182 | 180,3
183 | 181,6
184 | 182,3
185 | 183,3
186 | 184,3
187 | 185,3
188 | 186,0
189 | 187,4
190 | 188,2
191 | 189,2
192 | 190,6
193 | 191,5
194 | 192,3
195 | 193,5
196 | 194,4
197 | 195,0
198 | 196,4
199 | 197,3
200 | 198,4
201 | 199,4
202 | 200,3
203 | 201,3
204 | 202,2
205 | 203,4
206 | 204,0
207 | 205,3
208 | 206,2
209 | 207,3
210 | 208,3
211 | 209,4
212 | 210,4
213 | 211,0
214 | 212,3
215 | 213,6
216 | 214,0
217 | 215,3
218 | 216,3
219 | 217,4
220 | 218,3
221 | 219,3
222 | 220,5
223 | 221,2
224 | 222,3
225 | 223,2
226 | 224,4
227 | 225,1
228 | 226,3
229 | 227,2
230 | 228,2
231 | 229,3
232 | 230,3
233 | 231,3
234 | 232,3
235 | 233,5
236 | 234,1
237 | 235,3
238 | 236,1
239 | 237,3
240 | 238,5
241 | 239,0
242 | 240,3
243 | 241,5
244 | 242,0
245 | 243,4
246 | 244,2
247 | 245,4
248 | 246,2
249 | 247,4
250 | 248,4
251 | 249,5
252 | 250,4
253 | 251,3
254 | 252,5
255 | 253,3
256 | 254,3
257 | 255,4
258 | 256,3
259 | 257,0
260 | 258,4
261 | 259,5
262 | 260,0
263 | 261,3
264 | 262,6
265 | 263,2
266 | 264,5
267 | 265,5
268 | 266,5
269 | 267,3
270 | 268,2
271 | 269,3
272 | 270,0
273 | 271,4
274 | 272,5
275 | 273,3
276 | 274,0
277 | 275,4
278 | 276,0
279 | 277,3
280 | 278,3
281 | 279,0
282 | 280,0
283 | 281,3
284 | 282,5
285 | 283,4
286 | 284,4
287 | 285,3
288 | 286,4
289 | 287,3
290 | 288,3
291 | 289,2
292 | 290,2
293 | 291,3
294 | 292,0
295 | 293,3
296 | 294,1
297 | 295,3
298 | 296,2
299 | 297,3
300 | 298,3
301 | 299,4
302 | 300,5
303 | 301,2
304 | 302,1
305 | 303,1
306 | 304,0
307 | 305,0
308 | 306,1
309 | 307,6
310 | 308,1
311 | 309,3
312 | 310,3
313 | 311,3
314 | 312,2
315 | 313,3
316 | 314,3
317 | 315,0
318 | 316,3
319 | 317,4
320 | 318,1
321 | 319,3
322 | 320,4
323 | 321,3
324 | 322,2
325 | 323,0
326 | 324,0
327 | 325,4
328 | 326,2
329 | 327,3
330 | 328,2
331 | 329,1
332 | 330,4
333 | 331,6
334 | 332,3
335 | 333,2
336 | 334,0
337 | 335,3
338 | 336,3
339 | 337,2
340 | 338,3
341 | 339,4
342 | 340,4
343 | 341,2
344 | 342,1
345 | 343,3
346 | 344,5
347 | 345,3
348 | 346,2
349 | 347,0
350 | 348,4
351 | 349,5
352 | 350,1
353 | 351,3
354 | 352,3
355 | 353,2
356 | 354,0
357 | 355,2
358 | 356,4
359 | 357,2
360 | 358,2
361 | 359,2
362 | 360,5
363 | 361,4
364 | 362,4
365 | 363,2
366 | 364,2
367 | 365,0
368 | 366,3
369 | 367,2
370 | 368,4
371 | 369,4
372 | 370,5
373 | 371,5
374 | 372,1
375 | 373,0
376 | 374,3
377 | 375,4
378 | 376,5
379 | 377,3
380 | 378,4
381 | 379,5
382 | 380,3
383 | 381,4
384 | 382,3
385 | 383,3
386 | 384,1
387 | 385,4
388 | 386,3
389 | 387,3
390 | 388,5
391 | 389,2
392 | 390,3
393 | 391,2
394 | 392,5
395 | 393,5
396 | 394,4
397 | 395,3
398 | 396,3
399 | 397,3
400 | 398,3
401 | 399,1
402 | 400,5
403 | 401,3
404 | 402,3
405 | 403,2
406 | 404,6
407 | 405,0
408 | 406,1
409 | 407,3
410 | 408,0
411 | 409,1
412 | 410,5
413 | 411,3
414 | 412,6
415 | 413,3
416 | 414,6
417 | 415,0
418 | 416,3
419 | 417,3
420 | 418,3
421 | 419,5
422 | 420,4
423 | 421,3
424 | 422,4
425 | 423,0
426 | 424,5
427 | 425,2
428 | 426,1
429 | 427,2
430 | 428,4
431 | 429,4
432 | 430,4
433 | 431,4
434 | 432,3
435 | 433,3
436 | 434,0
437 | 435,4
438 | 436,3
439 | 437,0
440 | 438,5
441 | 439,2
442 | 440,0
443 | 441,5
444 | 442,4
445 | 443,4
446 | 444,4
447 | 445,3
448 | 446,0
449 | 447,6
450 | 448,5
451 | 449,2
452 | 450,4
453 | 451,5
454 | 452,1
455 | 453,3
456 | 454,5
457 | 455,3
458 | 456,0
459 | 457,3
460 | 458,5
461 | 459,1
462 | 460,1
463 | 461,0
464 | 462,3
465 | 463,4
466 | 464,2
467 | 465,6
468 | 466,2
469 | 467,0
470 | 468,5
471 | 469,3
472 | 470,4
473 | 471,6
474 | 472,5
475 | 473,3
476 | 474,5
477 | 475,0
478 | 476,1
479 | 477,3
480 | 478,0
481 | 479,5
482 | 480,2
483 | 481,2
484 | 482,3
485 | 483,5
486 | 484,1
487 | 485,0
488 | 486,3
489 | 487,1
490 | 488,4
491 | 489,2
492 | 490,5
493 | 491,6
494 | 492,4
495 | 493,2
496 | 494,2
497 | 495,6
498 | 496,0
499 | 497,0
500 | 498,4
501 | 499,6
502 | 500,3
503 | 501,2
504 | 502,0
505 | 503,3
506 | 504,6
507 | 505,1
508 | 506,6
509 | 507,3
510 | 508,1
511 | 509,3
512 | 510,3
513 | 511,3
514 | 512,3
515 | 513,2
516 | 514,5
517 | 515,4
518 | 516,5
519 | 517,5
520 | 518,3
521 | 519,1
522 | 520,3
523 | 521,3
524 | 522,4
525 | 523,4
526 | 524,2
527 | 525,0
528 | 526,2
529 | 527,0
530 | 528,5
531 | 529,4
532 | 530,0
533 | 531,0
534 | 532,3
535 | 533,2
536 | 534,2
537 | 535,2
538 | 536,2
539 | 537,6
540 | 538,4
541 | 539,6
542 | 540,5
543 | 541,5
544 | 542,1
545 | 543,0
546 | 544,0
547 | 545,4
548 | 546,3
549 | 547,3
550 | 548,1
551 | 549,3
552 | 550,6
553 | 551,6
554 | 552,2
555 | 553,3
556 | 554,3
557 | 555,3
558 | 556,1
559 | 557,2
560 | 558,2
561 | 559,5
562 | 560,4
563 | 561,3
564 | 562,2
565 | 563,1
566 | 564,2
567 | 565,2
568 | 566,3
569 | 567,2
570 | 568,3
571 | 569,2
572 | 570,3
573 | 571,3
574 | 572,0
575 | 573,5
576 | 574,3
577 | 575,3
578 | 576,3
579 | 577,4
580 | 578,5
581 | 579,3
582 | 580,2
583 | 581,1
584 | 582,4
585 | 583,4
586 | 584,4
587 | 585,4
588 | 586,0
589 | 587,5
590 | 588,4
591 | 589,1
592 | 590,3
593 | 591,0
594 | 592,3
595 | 593,4
596 | 594,6
597 | 595,3
598 | 596,6
599 | 597,3
600 | 598,3
601 | 599,3
602 | 600,6
603 | 601,3
604 | 602,4
605 | 603,3
606 | 604,6
607 | 605,3
608 | 606,0
609 | 607,3
610 | 608,1
611 | 609,2
612 | 610,5
613 | 611,6
614 | 612,5
615 | 613,2
616 | 614,0
617 | 615,2
618 | 616,2
619 | 617,3
620 | 618,3
621 | 619,0
622 | 620,3
623 | 621,5
624 | 622,3
625 | 623,4
626 | 624,0
627 | 625,3
628 | 626,2
629 | 627,4
630 | 628,5
631 | 629,2
632 | 630,3
633 | 631,2
634 | 632,2
635 | 633,3
636 | 634,5
637 | 635,2
638 | 636,0
639 | 637,3
640 | 638,4
641 | 639,3
642 | 640,3
643 | 641,3
644 | 642,0
645 | 643,5
646 | 644,5
647 | 645,5
648 | 646,5
649 | 647,5
650 | 648,5
651 | 649,3
652 | 650,2
653 | 651,0
654 | 652,4
655 | 653,3
656 | 654,4
657 | 655,1
658 | 656,1
659 | 657,2
660 | 658,3
661 | 659,0
662 | 660,1
663 | 661,5
664 | 662,3
665 | 663,6
666 | 664,3
667 | 665,4
668 | 666,0
669 | 667,0
670 | 668,5
671 | 669,3
672 | 670,3
673 | 671,5
674 | 672,2
675 | 673,3
676 | 674,3
677 | 675,4
678 | 676,5
679 | 677,4
680 | 678,3
681 | 679,0
682 | 680,0
683 | 681,3
684 | 682,6
685 | 683,1
686 | 684,2
687 | 685,1
688 | 686,2
689 | 687,2
690 | 688,4
691 | 689,2
692 | 690,3
693 | 691,4
694 | 692,3
695 | 693,0
696 | 694,5
697 | 695,3
698 | 696,3
699 | 697,3
700 | 698,4
701 | 699,3
702 | 700,3
703 | 701,5
704 | 702,6
705 | 703,5
706 | 704,2
707 | 705,4
708 | 706,4
709 | 707,0
710 | 708,3
711 | 709,5
712 | 710,3
713 | 711,0
714 | 712,6
715 | 713,3
716 | 714,4
717 | 715,4
718 | 716,3
719 | 717,0
720 | 718,0
721 | 719,1
722 | 720,5
723 | 721,2
724 | 722,3
725 | 723,2
726 | 724,6
727 | 725,0
728 | 726,4
729 | 727,3
730 | 728,5
731 | 729,3
732 | 730,0
733 | 731,0
734 | 732,2
735 | 733,0
736 | 734,0
737 | 735,5
738 | 736,0
739 | 737,5
740 | 738,0
741 | 739,5
742 | 740,4
743 | 741,1
744 | 742,2
745 | 743,3
746 | 744,2
747 | 745,3
748 | 746,3
749 | 747,5
750 | 748,2
751 | 749,4
752 | 750,5
753 | 751,0
754 | 752,2
755 | 753,0
756 | 754,2
757 | 755,5
758 | 756,3
759 | 757,2
760 | 758,2
761 | 759,4
762 | 760,2
763 | 761,4
764 | 762,2
765 | 763,0
766 | 764,2
767 | 765,3
768 | 766,3
769 | 767,0
770 | 768,3
771 | 769,0
772 | 770,3
773 | 771,0
774 | 772,6
775 | 773,1
776 | 774,4
777 | 775,3
778 | 776,4
779 | 777,0
780 | 778,6
781 | 779,6
782 | 780,4
783 | 781,3
784 | 782,4
785 | 783,4
786 | 784,3
787 | 785,3
788 | 786,4
789 | 787,4
790 | 788,3
791 | 789,4
792 | 790,3
793 | 791,3
794 | 792,3
795 | 793,5
796 | 794,0
797 | 795,3
798 | 796,2
799 | 797,2
800 | 798,4
801 | 799,3
802 | 800,2
803 | 801,5
804 | 802,4
805 | 803,5
806 | 804,4
807 | 805,4
808 | 806,2
809 | 807,5
810 | 808,4
811 | 809,0
812 | 810,4
813 | 811,3
814 | 812,3
815 | 813,4
816 | 814,4
817 | 815,0
818 | 816,5
819 | 817,2
820 | 818,3
821 | 819,2
822 | 820,2
823 | 821,3
824 | 822,5
825 | 823,2
826 | 824,2
827 | 825,2
828 | 826,5
829 | 827,3
830 | 828,4
831 | 829,1
832 | 830,6
833 | 831,1
834 | 832,3
835 | 833,3
836 | 834,1
837 | 835,3
838 | 836,3
839 | 837,4
840 | 838,0
841 | 839,0
842 | 840,5
843 | 841,3
844 | 842,0
845 | 843,3
846 | 844,5
847 | 845,3
848 | 846,3
849 | 847,6
850 | 848,2
851 | 849,4
852 | 850,6
853 | 851,0
854 | 852,0
855 | 853,2
856 | 854,4
857 | 855,3
858 | 856,4
859 | 857,4
860 | 858,0
861 | 859,2
862 | 860,2
863 | 861,0
864 | 862,4
865 | 863,0
866 | 864,1
867 | 865,3
868 | 866,3
869 | 867,2
870 | 868,3
871 | 869,3
872 | 870,3
873 | 871,2
874 | 872,4
875 | 873,0
876 | 874,3
877 | 875,3
878 | 876,1
879 | 877,3
880 | 878,5
881 | 879,3
882 | 880,0
883 | 881,2
884 | 882,2
885 | 883,2
886 | 884,4
887 | 885,5
888 | 886,3
889 | 887,1
890 | 888,0
891 | 889,2
892 | 890,5
893 | 891,6
894 | 892,3
895 | 893,4
896 | 894,3
897 | 895,0
898 | 896,5
899 | 897,0
900 | 898,6
901 | 899,3
902 | 900,3
903 | 901,0
904 | 902,2
905 | 903,5
906 | 904,5
907 | 905,2
908 | 906,4
909 | 907,6
910 | 908,6
911 | 909,3
912 | 910,1
913 | 911,4
914 | 912,4
915 | 913,5
916 | 914,3
917 | 915,2
918 | 916,3
919 | 917,0
920 | 918,3
921 | 919,2
922 | 920,3
923 | 921,6
924 | 922,4
925 | 923,3
926 | 924,4
927 | 925,5
928 | 926,3
929 | 927,3
930 | 928,3
931 | 929,2
932 | 930,3
933 | 931,2
934 | 932,3
935 | 933,2
936 | 934,4
937 | 935,5
938 | 936,2
939 | 937,1
940 | 938,3
941 | 939,6
942 | 940,5
943 | 941,5
944 | 942,3
945 | 943,4
946 | 944,3
947 | 945,1
948 | 946,4
949 | 947,4
950 | 948,0
951 | 949,4
952 | 950,6
953 | 951,2
954 | 952,3
955 | 953,3
956 | 954,4
957 | 955,6
958 | 956,4
959 | 957,2
960 | 958,1
961 | 959,3
962 | 960,3
963 | 961,3
964 | 962,3
965 | 963,4
966 | 964,0
967 | 965,0
968 | 966,0
969 | 967,3
970 | 968,1
971 | 969,2
972 | 970,2
973 | 971,5
974 | 972,3
975 | 973,5
976 | 974,3
977 | 975,0
978 | 976,2
979 | 977,2
980 | 978,2
981 | 979,3
982 | 980,1
983 | 981,3
984 | 982,3
985 | 983,4
986 | 984,4
987 | 985,2
988 | 986,3
989 | 987,3
990 | 988,3
991 | 989,0
992 | 990,3
993 | 991,6
994 | 992,0
995 | 993,6
996 | 994,3
997 | 995,5
998 | 996,4
999 | 997,3
1000 | 998,2
1001 | 999,2
1002 | 1000,3
1003 | 1001,4
1004 | 1002,3
1005 | 1003,2
1006 | 1004,3
1007 | 1005,3
1008 | 1006,0
1009 | 1007,2
1010 | 1008,0
1011 | 1009,1
1012 | 1010,4
1013 | 1011,1
1014 | 1012,4
1015 | 1013,0
1016 | 1014,3
1017 | 1015,4
1018 | 1016,3
1019 | 1017,3
1020 | 1018,4
1021 | 1019,3
1022 | 1020,3
1023 | 1021,4
1024 | 1022,5
1025 | 1023,3
1026 | 1024,3
1027 | 1025,0
1028 | 1026,3
1029 | 1027,6
1030 | 1028,5
1031 | 1029,5
1032 | 1030,2
1033 | 1031,3
1034 | 1032,5
1035 | 1033,2
1036 | 1034,2
1037 | 1035,2
1038 | 1036,0
1039 | 1037,2
1040 | 1038,2
1041 | 1039,5
1042 | 1040,2
1043 | 1041,2
1044 | 1042,0
1045 | 1043,5
1046 | 1044,3
1047 | 1045,1
1048 | 1046,4
1049 | 1047,0
1050 | 1048,3
1051 | 1049,3
1052 | 1050,4
1053 | 1051,4
1054 | 1052,3
1055 | 1053,3
1056 | 1054,3
1057 | 1055,3
1058 | 1056,3
1059 | 1057,3
1060 | 1058,0
1061 | 1059,3
1062 | 1060,5
1063 | 1061,4
1064 | 1062,3
1065 | 1063,4
1066 | 1064,4
1067 | 1065,3
1068 | 1066,3
1069 | 1067,2
1070 | 1068,4
1071 | 1069,0
1072 | 1070,2
1073 | 1071,4
1074 | 1072,2
1075 | 1073,3
1076 | 1074,6
1077 | 1075,3
1078 | 1076,6
1079 | 1077,5
1080 | 1078,0
1081 | 1079,0
1082 | 1080,3
1083 | 1081,4
1084 | 1082,4
1085 | 1083,0
1086 | 1084,3
1087 | 1085,6
1088 | 1086,3
1089 | 1087,4
1090 | 1088,1
1091 | 1089,1
1092 | 1090,3
1093 | 1091,3
1094 | 1092,3
1095 | 1093,3
1096 | 1094,4
1097 | 1095,3
1098 | 1096,3
1099 | 1097,4
1100 | 1098,3
1101 | 1099,3
1102 | 1100,3
1103 | 1101,3
1104 | 1102,4
1105 | 1103,2
1106 | 1104,0
1107 | 1105,5
1108 | 1106,3
1109 | 1107,3
1110 | 1108,3
1111 | 1109,4
1112 | 1110,0
1113 | 1111,4
1114 | 1112,4
1115 | 1113,5
1116 | 1114,2
1117 | 1115,4
1118 | 1116,3
1119 | 1117,0
1120 | 1118,0
1121 | 1119,3
1122 | 1120,0
1123 | 1121,3
1124 | 1122,5
1125 | 1123,2
1126 | 1124,3
1127 | 1125,0
1128 | 1126,3
1129 | 1127,3
1130 | 1128,5
1131 | 1129,4
1132 | 1130,3
1133 | 1131,3
1134 | 1132,3
1135 | 1133,5
1136 | 1134,3
1137 | 1135,4
1138 | 1136,2
1139 | 1137,0
1140 | 1138,4
1141 | 1139,0
1142 | 1140,1
1143 | 1141,4
1144 | 1142,1
1145 | 1143,4
1146 | 1144,1
1147 | 1145,2
1148 | 1146,1
1149 | 1147,3
1150 | 1148,2
1151 | 1149,2
1152 | 1150,2
1153 | 1151,3
1154 | 1152,0
1155 | 1153,4
1156 | 1154,2
1157 | 1155,2
1158 | 1156,0
1159 | 1157,4
1160 | 1158,1
1161 | 1159,3
1162 | 1160,3
1163 | 1161,2
1164 | 1162,4
1165 | 1163,6
1166 | 1164,2
1167 | 1165,6
1168 | 1166,3
1169 | 1167,5
1170 | 1168,5
1171 | 1169,2
1172 | 1170,6
1173 | 1171,3
1174 | 1172,0
1175 | 1173,2
1176 | 1174,0
1177 | 1175,3
1178 | 1176,3
1179 | 1177,3
1180 | 1178,4
1181 | 1179,5
1182 | 1180,1
1183 | 1181,5
1184 | 1182,5
1185 | 1183,5
1186 | 1184,5
1187 | 1185,3
1188 | 1186,3
1189 | 1187,0
1190 | 1188,0
1191 | 1189,2
1192 | 1190,5
1193 | 1191,3
1194 | 1192,3
1195 | 1193,1
1196 | 1194,4
1197 | 1195,0
1198 | 1196,4
1199 | 1197,1
1200 | 1198,0
1201 | 1199,2
1202 | 1200,3
1203 | 1201,3
1204 | 1202,4
1205 | 1203,0
1206 | 1204,1
1207 | 1205,2
1208 | 1206,4
1209 | 1207,4
1210 | 1208,4
1211 | 1209,2
1212 | 1210,2
1213 | 1211,3
1214 | 1212,3
1215 | 1213,3
1216 | 1214,2
1217 | 1215,6
1218 | 1216,2
1219 | 1217,3
1220 | 1218,0
1221 | 1219,3
1222 | 1220,0
1223 | 1221,3
1224 | 1222,5
1225 | 1223,3
1226 | 1224,0
1227 | 1225,3
1228 | 1226,5
1229 | 1227,5
1230 | 1228,0
1231 | 1229,2
1232 | 1230,4
1233 | 1231,3
1234 | 1232,0
1235 | 1233,2
1236 | 1234,4
1237 | 1235,4
1238 | 1236,6
1239 | 1237,5
1240 | 1238,2
1241 | 1239,3
1242 | 1240,4
1243 | 1241,3
1244 | 1242,3
1245 | 1243,2
1246 | 1244,1
1247 | 1245,1
1248 | 1246,4
1249 | 1247,3
1250 | 1248,1
1251 | 1249,2
1252 | 1250,2
1253 | 1251,1
1254 | 1252,2
1255 | 1253,1
1256 | 1254,2
1257 | 1255,4
1258 | 1256,3
1259 | 1257,4
1260 | 1258,1
1261 | 1259,0
1262 | 1260,4
1263 | 1261,4
1264 | 1262,2
1265 | 1263,2
1266 | 1264,4
1267 | 1265,4
1268 | 1266,4
1269 | 1267,5
1270 | 1268,0
1271 | 1269,5
1272 | 1270,3
1273 | 1271,3
1274 | 1272,3
1275 | 1273,3
1276 | 1274,3
1277 | 1275,0
1278 | 1276,5
1279 | 1277,3
1280 | 1278,3
1281 | 1279,0
1282 | 1280,2
1283 | 1281,2
1284 | 1282,2
1285 | 1283,1
1286 | 1284,2
1287 | 1285,0
1288 | 1286,4
1289 | 1287,2
1290 | 1288,6
1291 | 1289,3
1292 | 1290,3
1293 | 1291,6
1294 | 1292,2
1295 | 1293,0
1296 | 1294,3
1297 | 1295,3
1298 | 1296,0
1299 | 1297,3
1300 | 1298,3
1301 | 1299,3
1302 | 1300,3
1303 | 1301,3
1304 | 1302,0
1305 | 1303,3
1306 | 1304,1
1307 | 1305,2
1308 | 1306,2
1309 | 1307,4
1310 | 1308,2
1311 | 1309,5
1312 | 1310,3
1313 | 1311,5
1314 | 1312,5
1315 | 1313,5
1316 | 1314,5
1317 | 1315,3
1318 | 1316,3
1319 | 1317,2
1320 | 1318,4
1321 | 1319,3
1322 | 1320,4
1323 | 1321,3
1324 | 1322,4
1325 | 1323,3
1326 | 1324,5
1327 | 1325,3
1328 | 1326,3
1329 | 1327,6
1330 | 1328,6
1331 | 1329,3
1332 | 1330,0
1333 | 1331,3
1334 | 1332,0
1335 | 1333,6
1336 | 1334,3
1337 | 1335,1
1338 | 1336,4
1339 | 1337,1
1340 | 1338,5
1341 | 1339,2
1342 | 1340,3
1343 | 1341,0
1344 | 1342,4
1345 | 1343,4
1346 | 1344,3
1347 | 1345,2
1348 | 1346,1
1349 | 1347,3
1350 | 1348,3
1351 | 1349,4
1352 | 1350,4
1353 | 1351,6
1354 | 1352,0
1355 | 1353,5
1356 | 1354,5
1357 | 1355,3
1358 | 1356,3
1359 | 1357,0
1360 | 1358,2
1361 | 1359,6
1362 | 1360,5
1363 | 1361,2
1364 | 1362,6
1365 | 1363,3
1366 | 1364,3
1367 | 1365,3
1368 | 1366,4
1369 | 1367,1
1370 | 1368,5
1371 | 1369,4
1372 | 1370,6
1373 | 1371,3
1374 | 1372,6
1375 | 1373,2
1376 | 1374,0
1377 | 1375,5
1378 | 1376,0
1379 | 1377,5
1380 | 1378,2
1381 | 1379,4
1382 | 1380,4
1383 | 1381,4
1384 | 1382,3
1385 | 1383,2
1386 | 1384,2
1387 | 1385,4
1388 | 1386,3
1389 | 1387,6
1390 | 1388,0
1391 | 1389,2
1392 | 1390,4
1393 | 1391,0
1394 | 1392,3
1395 | 1393,3
1396 | 1394,5
1397 | 1395,0
1398 | 1396,6
1399 | 1397,0
1400 | 1398,2
1401 | 1399,6
1402 | 1400,3
1403 | 1401,4
1404 | 1402,6
1405 | 1403,3
1406 | 1404,5
1407 | 1405,3
1408 | 1406,4
1409 | 1407,2
1410 | 1408,5
1411 | 1409,5
1412 | 1410,0
1413 | 1411,3
1414 | 1412,2
1415 | 1413,3
1416 | 1414,5
1417 | 1415,5
1418 | 1416,0
1419 | 1417,4
1420 | 1418,4
1421 | 1419,4
1422 | 1420,6
1423 | 1421,6
1424 | 1422,4
1425 | 1423,3
1426 | 1424,3
1427 | 1425,4
1428 | 1426,2
1429 | 1427,2
1430 | 1428,4
1431 | 1429,4
1432 | 1430,2
1433 | 1431,2
1434 | 1432,3
1435 | 1433,2
1436 | 1434,3
1437 | 1435,0
1438 | 1436,5
1439 | 1437,4
1440 | 1438,3
1441 | 1439,3
1442 | 1440,3
1443 | 1441,5
1444 | 1442,3
1445 | 1443,4
1446 | 1444,2
1447 | 1445,3
1448 | 1446,3
1449 | 1447,3
1450 | 1448,1
1451 | 1449,4
1452 | 1450,3
1453 | 1451,4
1454 | 1452,4
1455 | 1453,3
1456 | 1454,4
1457 | 1455,5
1458 | 1456,3
1459 | 1457,3
1460 | 1458,3
1461 | 1459,1
1462 | 1460,3
1463 | 1461,4
1464 | 1462,3
1465 | 1463,3
1466 | 1464,6
1467 | 1465,3
1468 | 1466,2
1469 | 1467,0
1470 | 1468,0
1471 | 1469,3
1472 | 1470,5
1473 | 1471,2
1474 | 1472,3
1475 | 1473,3
1476 | 1474,4
1477 | 1475,0
1478 | 1476,6
1479 | 1477,3
1480 | 1478,5
1481 | 1479,3
1482 | 1480,2
1483 | 1481,4
1484 | 1482,6
1485 | 1483,2
1486 | 1484,4
1487 | 1485,6
1488 | 1486,2
1489 | 1487,6
1490 | 1488,3
1491 | 1489,2
1492 | 1490,1
1493 | 1491,4
1494 | 1492,2
1495 | 1493,4
1496 | 1494,5
1497 | 1495,6
1498 | 1496,3
1499 | 1497,3
1500 | 1498,3
1501 | 1499,2
1502 | 1500,5
1503 | 1501,6
1504 | 1502,3
1505 | 1503,3
1506 | 1504,6
1507 | 1505,1
1508 | 1506,2
1509 | 1507,0
1510 | 1508,3
1511 | 1509,2
1512 | 1510,4
1513 | 1511,3
1514 | 1512,5
1515 | 1513,2
1516 | 1514,3
1517 | 1515,0
1518 | 1516,2
1519 | 1517,0
1520 | 1518,4
1521 | 1519,4
1522 | 1520,2
1523 | 1521,0
1524 | 1522,4
1525 | 1523,0
1526 | 1524,0
1527 | 1525,6
1528 | 1526,0
1529 | 1527,0
1530 | 1528,2
1531 | 1529,4
1532 | 1530,4
1533 | 1531,4
1534 | 1532,4
1535 | 1533,4
1536 | 1534,4
1537 | 1535,0
1538 | 1536,0
1539 | 1537,5
1540 | 1538,5
1541 | 1539,6
1542 | 1540,0
1543 | 1541,3
1544 | 1542,3
1545 | 1543,5
1546 | 1544,5
1547 | 1545,4
1548 | 1546,2
1549 | 1547,1
1550 | 1548,3
1551 | 1549,5
1552 | 1550,2
1553 | 1551,1
1554 | 1552,1
1555 | 1553,5
1556 | 1554,3
1557 | 1555,5
1558 | 1556,0
1559 | 1557,2
1560 | 1558,3
1561 | 1559,4
1562 | 1560,1
1563 | 1561,1
1564 | 1562,2
1565 | 1563,3
1566 | 1564,1
1567 | 1565,2
1568 | 1566,2
1569 | 1567,3
1570 | 1568,2
1571 | 1569,4
1572 | 1570,3
1573 | 1571,1
1574 | 1572,1
1575 | 1573,3
1576 | 1574,3
1577 | 1575,3
1578 | 1576,3
1579 | 1577,3
1580 | 1578,5
1581 | 1579,5
1582 | 1580,0
1583 | 1581,3
1584 | 1582,3
1585 | 1583,0
1586 | 1584,1
1587 | 1585,4
1588 | 1586,2
1589 | 1587,6
1590 | 1588,0
1591 | 1589,2
1592 | 1590,3
1593 | 1591,3
1594 | 1592,6
1595 | 1593,6
1596 | 1594,5
1597 | 1595,3
1598 | 1596,2
1599 | 1597,3
1600 | 1598,3
1601 | 1599,2
1602 | 1600,3
1603 | 1601,2
1604 | 1602,0
1605 | 1603,3
1606 | 1604,2
1607 | 1605,3
1608 | 1606,2
1609 | 1607,3
1610 | 1608,3
1611 | 1609,1
1612 | 1610,2
1613 | 1611,3
1614 | 1612,2
1615 | 1613,3
1616 | 1614,3
1617 | 1615,3
1618 | 1616,6
1619 | 1617,2
1620 | 1618,4
1621 | 1619,5
1622 | 1620,1
1623 | 1621,3
1624 | 1622,3
1625 | 1623,1
1626 | 1624,1
1627 | 1625,2
1628 | 1626,4
1629 | 1627,2
1630 | 1628,0
1631 | 1629,2
1632 | 1630,5
1633 | 1631,0
1634 | 1632,2
1635 | 1633,3
1636 | 1634,4
1637 | 1635,4
1638 | 1636,3
1639 | 1637,0
1640 | 1638,1
1641 | 1639,4
1642 | 1640,1
1643 | 1641,3
1644 | 1642,2
1645 | 1643,4
1646 | 1644,0
1647 | 1645,3
1648 | 1646,2
1649 | 1647,6
1650 | 1648,2
1651 | 1649,4
1652 | 1650,5
1653 | 1651,1
1654 | 1652,0
1655 | 1653,4
1656 | 1654,3
1657 | 1655,0
1658 | 1656,1
1659 | 1657,3
1660 | 1658,0
1661 | 1659,2
1662 | 1660,6
1663 | 1661,5
1664 | 1662,3
1665 | 1663,3
1666 | 1664,3
1667 | 1665,3
1668 | 1666,3
1669 | 1667,4
1670 | 1668,2
1671 | 1669,0
1672 | 1670,1
1673 | 1671,4
1674 | 1672,0
1675 | 1673,3
1676 | 1674,6
1677 | 1675,6
1678 | 1676,6
1679 | 1677,5
1680 | 1678,3
1681 | 1679,3
1682 | 1680,0
1683 | 1681,3
1684 | 1682,0
1685 | 1683,6
1686 | 1684,3
1687 | 1685,2
1688 | 1686,4
1689 | 1687,2
1690 | 1688,4
1691 | 1689,2
1692 | 1690,5
1693 | 1691,3
1694 | 1692,3
1695 | 1693,0
1696 | 1694,2
1697 | 1695,0
1698 | 1696,0
1699 | 1697,3
1700 | 1698,6
1701 | 1699,1
1702 | 1700,5
1703 | 1701,3
1704 | 1702,4
1705 | 1703,4
1706 | 1704,3
1707 | 1705,1
1708 | 1706,2
1709 | 1707,5
1710 | 1708,3
1711 | 1709,2
1712 | 1710,2
1713 | 1711,2
1714 | 1712,2
1715 | 1713,0
1716 | 1714,2
1717 | 1715,2
1718 | 1716,2
1719 | 1717,2
1720 | 1718,2
1721 | 1719,2
1722 | 1720,2
1723 | 1721,2
1724 | 1722,2
1725 | 1723,2
1726 | 1724,2
1727 | 1725,2
1728 | 1726,2
1729 | 1727,2
1730 | 1728,3
1731 | 1729,2
1732 | 1730,2
1733 | 1731,2
1734 | 1732,2
1735 | 1733,2
1736 | 1734,2
1737 | 1735,1
1738 | 1736,2
1739 | 1737,2
1740 | 1738,2
1741 | 1739,2
1742 | 1740,2
1743 | 1741,3
1744 | 1742,2
1745 | 1743,2
1746 | 1744,2
1747 | 1745,2
1748 | 1746,2
1749 | 1747,2
1750 | 1748,2
1751 | 1749,2
1752 | 1750,2
1753 | 1751,2
1754 | 1752,2
1755 | 1753,2
1756 | 1754,2
1757 | 1755,2
1758 | 1756,2
1759 | 1757,2
1760 | 1758,2
1761 | 1759,2
1762 | 1760,2
1763 | 1761,2
1764 | 1762,2
1765 | 1763,2
1766 | 1764,5
1767 | 1765,2
1768 | 1766,2
1769 | 1767,1
1770 | 1768,1
1771 | 1769,1
1772 | 1770,1
1773 | 1771,1
1774 | 1772,1
1775 | 1773,1
1776 | 1774,4
1777 | 1775,1
1778 | 1776,1
1779 | 1777,1
1780 | 1778,1
1781 | 1779,1
1782 | 1780,1
1783 | 1781,1
1784 | 1782,1
1785 | 1783,1
1786 | 1784,1
1787 | 1785,4
1788 | 1786,1
1789 | 1787,1
1790 | 1788,1
1791 | 1789,1
1792 | 1790,1
1793 | 1791,1
1794 | 1792,3
1795 | 1793,4
1796 | 1794,4
1797 | 1795,4
1798 | 1796,4
1799 | 1797,1
1800 | 1798,1
1801 | 1799,3
1802 | 1800,1
1803 | 1801,0
1804 | 1802,3
1805 | 1803,0
1806 | 1804,2
1807 | 1805,1
1808 | 1806,3
1809 | 1807,3
1810 | 1808,3
1811 | 1809,3
1812 | 1810,3
1813 | 1811,3
1814 | 1812,3
1815 | 1813,3
1816 | 1814,3
1817 | 1815,3
1818 | 1816,3
1819 | 1817,3
1820 | 1818,3
1821 | 1819,3
1822 | 1820,3
1823 | 1821,3
1824 | 1822,3
1825 | 1823,3
1826 | 1824,5
1827 | 1825,5
1828 | 1826,5
1829 | 1827,5
1830 | 1828,5
1831 | 1829,5
1832 | 1830,2
1833 | 1831,2
1834 | 1832,2
1835 | 1833,2
1836 | 1834,1
1837 | 1835,6
1838 | 1836,6
1839 | 1837,3
1840 | 1838,0
1841 | 1839,0
1842 | 1840,5
1843 | 1841,0
1844 | 1842,5
1845 | 1843,0
1846 | 1844,3
1847 | 1845,5
1848 | 1846,3
1849 | 1847,0
1850 | 1848,0
1851 | 1849,6
1852 | 1850,0
1853 | 1851,6
1854 | 1852,3
1855 | 1853,3
1856 | 1854,1
1857 | 1855,3
1858 | 1856,1
1859 | 1857,3
1860 | 1858,3
1861 | 1859,3
1862 | 1860,3
1863 | 1861,3
1864 | 1862,3
1865 | 1863,3
1866 | 1864,3
1867 | 1865,3
1868 | 1866,3
1869 | 1867,3
1870 | 1868,3
1871 | 1869,3
1872 | 1870,3
1873 | 1871,3
1874 | 1872,3
1875 | 1873,3
1876 | 1874,3
1877 | 1875,3
1878 | 1876,3
1879 | 1877,3
1880 | 1878,5
1881 | 1879,5
1882 | 1880,5
1883 | 1881,5
1884 | 1882,5
1885 | 1883,5
1886 | 1884,5
1887 | 1885,5
1888 | 1886,2
1889 | 1887,2
1890 | 1888,2
1891 | 1889,4
1892 | 1890,4
1893 | 1891,4
1894 | 1892,0
1895 | 1893,3
1896 | 1894,3
1897 | 1895,2
1898 | 1896,5
1899 | 1897,5
1900 | 1898,5
1901 | 1899,5
1902 | 1900,6
1903 | 1901,5
1904 | 1902,5
1905 | 1903,5
1906 | 1904,5
1907 | 1905,0
1908 | 1906,4
1909 | 1907,4
1910 | 1908,4
1911 | 1909,0
1912 | 1910,0
1913 | 1911,5
1914 | 1912,0
1915 | 1913,0
1916 | 1914,6
1917 | 1915,6
1918 | 1916,6
1919 | 1917,6
1920 | 1918,6
1921 | 1919,6
1922 | 1920,0
1923 | 1921,0
1924 | 1922,0
1925 | 1923,0
1926 | 1924,3
1927 | 1925,0
1928 | 1926,0
1929 | 1927,0
1930 | 1928,3
1931 | 1929,3
1932 | 1930,0
1933 | 1931,3
1934 | 1932,3
1935 | 1933,3
1936 | 1934,3
1937 | 1935,3
1938 | 1936,3
1939 | 1937,3
1940 | 1938,3
1941 | 1939,3
1942 | 1940,3
1943 | 1941,3
1944 | 1942,3
1945 | 1943,3
1946 | 1944,3
1947 | 1945,3
1948 | 1946,3
1949 | 1947,3
1950 | 1948,3
1951 | 1949,3
1952 | 1950,3
1953 | 1951,3
1954 | 1952,3
1955 | 1953,5
1956 | 1954,5
1957 | 1955,5
1958 | 1956,5
1959 | 1957,3
1960 | 1958,5
1961 | 1959,5
1962 | 1960,5
1963 | 1961,5
1964 | 1962,5
1965 | 1963,5
1966 | 1964,4
1967 | 1965,4
1968 | 1966,4
1969 | 1967,4
1970 | 1968,4
1971 | 1969,4
1972 | 1970,4
1973 | 1971,4
1974 | 1972,6
1975 | 1973,6
1976 | 1974,5
1977 | 1975,6
1978 | 1976,6
1979 | 1977,3
1980 | 1978,5
1981 | 1979,5
1982 | 1980,5
1983 | 1981,0
1984 | 1982,5
1985 | 1983,0
1986 | 1984,4
1987 | 1985,4
1988 | 1986,3
1989 | 1987,3
1990 | 1988,3
1991 | 1989,2
1992 | 1990,2
1993 | 1991,1
1994 | 1992,3
1995 | 1993,3
1996 | 1994,3
1997 | 1995,3
1998 | 1996,3
1999 | 1997,3
2000 | 1998,5
2001 | 1999,3
2002 | 2000,3
2003 | 2001,4
2004 | 2002,4
2005 | 2003,3
2006 | 2004,3
2007 | 2005,3
2008 | 2006,3
2009 | 2007,3
2010 | 2008,3
2011 | 2009,3
2012 | 2010,0
2013 | 2011,3
2014 | 2012,3
2015 | 2013,6
2016 | 2014,3
2017 | 2015,6
2018 | 2016,0
2019 | 2017,5
2020 | 2018,0
2021 | 2019,0
2022 | 2020,4
2023 | 2021,0
2024 | 2022,6
2025 | 2023,5
2026 | 2024,5
2027 | 2025,0
2028 | 2026,1
2029 | 2027,3
2030 | 2028,3
2031 | 2029,5
2032 | 2030,6
2033 | 2031,5
2034 | 2032,3
2035 | 2033,3
2036 | 2034,4
2037 | 2035,3
2038 | 2036,3
2039 | 2037,3
2040 | 2038,3
2041 | 2039,3
2042 | 2040,4
2043 | 2041,3
2044 | 2042,3
2045 | 2043,4
2046 | 2044,3
2047 | 2045,1
2048 | 2046,1
2049 | 2047,0
2050 | 2048,1
2051 | 2049,0
2052 | 2050,6
2053 | 2051,0
2054 | 2052,0
2055 | 2053,0
2056 | 2054,0
2057 | 2055,0
2058 | 2056,0
2059 | 2057,0
2060 | 2058,5
2061 | 2059,0
2062 | 2060,5
2063 | 2061,5
2064 | 2062,5
2065 | 2063,3
2066 | 2064,3
2067 | 2065,3
2068 | 2066,3
2069 | 2067,3
2070 | 2068,0
2071 | 2069,0
2072 | 2070,0
2073 | 2071,2
2074 | 2072,0
2075 | 2073,0
2076 | 2074,0
2077 | 2075,3
2078 | 2076,3
2079 | 2077,3
2080 | 2078,3
2081 | 2079,1
2082 | 2080,1
2083 | 2081,1
2084 | 2082,1
2085 | 2083,2
2086 | 2084,1
2087 | 2085,1
2088 | 2086,1
2089 | 2087,1
2090 | 2088,1
2091 | 2089,0
2092 | 2090,1
2093 | 2091,3
2094 | 2092,1
2095 | 2093,1
2096 | 2094,1
2097 | 2095,1
2098 | 2096,1
2099 | 2097,0
2100 | 2098,0
2101 | 2099,0
2102 | 2100,5
2103 | 2101,5
2104 | 2102,5
2105 | 2103,5
2106 | 2104,3
2107 | 2105,5
2108 | 2106,1
2109 | 2107,1
2110 | 2108,3
2111 | 2109,6
2112 | 2110,6
2113 | 2111,5
2114 | 2112,6
2115 | 2113,2
2116 | 2114,3
2117 | 2115,3
2118 | 2116,0
2119 | 2117,3
2120 | 2118,3
2121 | 2119,3
2122 | 2120,4
2123 | 2121,4
2124 | 2122,4
2125 | 2123,4
2126 | 2124,3
2127 | 2125,3
2128 | 2126,3
2129 | 2127,4
2130 | 2128,3
2131 | 2129,3
2132 | 2130,4
2133 | 2131,0
2134 | 2132,6
2135 | 2133,0
2136 | 2134,6
2137 | 2135,6
2138 | 2136,0
2139 | 2137,0
2140 | 2138,3
2141 | 2139,3
2142 | 2140,3
2143 | 2141,3
2144 | 2142,3
2145 | 2143,1
2146 | 2144,1
2147 | 2145,1
2148 | 2146,3
2149 | 2147,3
2150 | 2148,3
2151 | 2149,3
2152 | 2150,5
2153 | 2151,6
2154 | 2152,3
2155 | 2153,4
2156 | 2154,6
2157 | 2155,0
2158 | 2156,0
2159 | 2157,6
2160 | 2158,6
2161 | 2159,6
2162 | 2160,6
2163 | 2161,6
2164 | 2162,3
2165 | 2163,3
2166 | 2164,6
2167 | 2165,6
2168 | 2166,5
2169 | 2167,2
2170 | 2168,1
2171 | 2169,2
2172 | 2170,1
2173 | 2171,0
2174 | 2172,0
2175 | 2173,6
2176 | 2174,6
2177 | 2175,2
2178 | 2176,3
2179 | 2177,3
2180 | 2178,5
2181 | 2179,0
2182 | 2180,0
2183 | 2181,0
2184 | 2182,0
2185 | 2183,0
2186 | 2184,5
2187 | 2185,5
2188 | 2186,0
2189 | 2187,3
2190 | 2188,5
2191 | 2189,0
2192 | 2190,6
2193 | 2191,3
2194 | 2192,6
2195 | 2193,0
2196 | 2194,0
2197 | 2195,0
2198 | 2196,0
2199 | 2197,0
2200 | 2198,0
2201 | 2199,0
2202 | 2200,0
2203 | 2201,0
2204 | 2202,0
2205 | 2203,0
2206 | 2204,3
2207 | 2205,3
2208 | 2206,3
2209 | 2207,3
2210 | 2208,1
2211 | 2209,6
2212 | 2210,1
2213 | 2211,0
2214 | 2212,3
2215 | 2213,3
2216 | 2214,3
2217 | 2215,3
2218 | 2216,3
2219 | 2217,6
2220 | 2218,1
2221 | 2219,0
2222 | 2220,2
2223 | 2221,2
2224 | 2222,4
2225 | 2223,4
2226 | 2224,4
2227 | 2225,4
2228 | 2226,4
2229 | 2227,5
2230 | 2228,6
2231 | 2229,3
2232 | 2230,3
2233 | 2231,0
2234 | 2232,0
2235 | 2233,0
2236 | 2234,0
2237 | 2235,5
2238 | 2236,4
2239 | 2237,4
2240 | 2238,4
2241 | 2239,4
2242 | 2240,4
2243 | 2241,3
2244 | 2242,3
2245 | 2243,3
2246 | 2244,3
2247 | 2245,3
2248 | 2246,0
2249 | 2247,3
2250 | 2248,4
2251 | 2249,4
2252 | 2250,4
2253 | 2251,1
2254 | 2252,1
2255 | 2253,3
2256 | 2254,1
2257 | 2255,1
2258 | 2256,5
2259 | 2257,1
2260 | 2258,3
2261 | 2259,4
2262 | 2260,4
2263 | 2261,4
2264 | 2262,4
2265 | 2263,4
2266 | 2264,4
2267 | 2265,4
2268 | 2266,0
2269 | 2267,0
2270 | 2268,0
2271 | 2269,5
2272 | 2270,5
2273 | 2271,5
2274 | 2272,5
2275 | 2273,5
2276 | 2274,0
2277 | 2275,5
2278 | 2276,3
2279 | 2277,0
2280 | 2278,6
2281 | 2279,2
2282 | 2280,0
2283 | 2281,5
2284 | 2282,3
2285 | 2283,3
2286 | 2284,5
2287 | 2285,5
2288 | 2286,5
2289 | 2287,5
2290 | 2288,5
2291 | 2289,4
2292 | 2290,4
2293 | 2291,0
2294 | 2292,4
2295 | 2293,0
2296 | 2294,4
2297 | 2295,0
2298 | 2296,3
2299 | 2297,4
2300 | 2298,4
2301 | 2299,4
2302 | 2300,1
2303 | 2301,3
2304 | 2302,3
2305 | 2303,3
2306 | 2304,3
2307 | 2305,3
2308 | 2306,4
2309 | 2307,2
2310 | 2308,3
2311 | 2309,3
2312 | 2310,3
2313 | 2311,0
2314 | 2312,0
2315 | 2313,2
2316 | 2314,3
2317 | 2315,3
2318 | 2316,3
2319 | 2317,3
2320 | 2318,1
2321 | 2319,1
2322 | 2320,3
2323 | 2321,0
2324 | 2322,1
2325 | 2323,4
2326 | 2324,1
2327 | 2325,1
2328 | 2326,1
2329 | 2327,1
2330 | 2328,1
2331 | 2329,1
2332 | 2330,0
2333 | 2331,1
2334 | 2332,0
2335 | 2333,0
2336 | 2334,2
2337 | 2335,4
2338 | 2336,4
2339 | 2337,4
2340 | 2338,3
2341 | 2339,3
2342 | 2340,3
2343 | 2341,4
2344 | 2342,0
2345 | 2343,3
2346 | 2344,3
2347 | 2345,3
2348 | 2346,3
2349 | 2347,0
2350 | 2348,3
2351 | 2349,3
2352 | 2350,4
2353 | 2351,4
2354 | 2352,4
2355 | 2353,4
2356 | 2354,4
2357 | 2355,4
2358 | 2356,0
2359 | 2357,4
2360 | 2358,3
2361 | 2359,2
2362 | 2360,0
2363 | 2361,3
2364 | 2362,4
2365 | 2363,5
2366 | 2364,0
2367 | 2365,2
2368 | 2366,2
2369 | 2367,3
2370 | 2368,3
2371 | 2369,3
2372 | 2370,3
2373 | 2371,3
2374 | 2372,2
2375 | 2373,3
2376 | 2374,5
2377 | 2375,5
2378 | 2376,4
2379 | 2377,1
2380 | 2378,4
2381 | 2379,4
2382 | 2380,4
2383 | 2381,3
2384 | 2382,4
2385 | 2383,4
2386 | 2384,0
2387 | 2385,4
2388 | 2386,4
2389 | 2387,4
2390 | 2388,5
2391 | 2389,2
2392 | 2390,2
2393 | 2391,2
2394 | 2392,2
2395 | 2393,4
2396 | 2394,6
2397 | 2395,6
2398 | 2396,6
2399 | 2397,6
2400 | 2398,3
2401 | 2399,4
2402 | 2400,4
2403 | 2401,4
2404 | 2402,1
2405 | 2403,3
2406 | 2404,0
2407 | 2405,3
2408 | 2406,3
2409 | 2407,5
2410 | 2408,0
2411 | 2409,2
2412 | 2410,3
2413 | 2411,3
2414 | 2412,3
2415 | 2413,3
2416 | 2414,3
2417 | 2415,2
2418 | 2416,4
2419 | 2417,4
2420 | 2418,0
2421 | 2419,0
2422 | 2420,3
2423 | 2421,2
2424 | 2422,6
2425 | 2423,6
2426 | 2424,0
2427 | 2425,3
2428 | 2426,3
2429 | 2427,3
2430 | 2428,5
2431 | 2429,1
2432 | 2430,3
2433 | 2431,4
2434 | 2432,4
2435 | 2433,2
2436 | 2434,4
2437 | 2435,4
2438 | 2436,4
2439 | 2437,3
2440 | 2438,3
2441 | 2439,2
2442 | 2440,2
2443 | 2441,2
2444 | 2442,2
2445 | 2443,2
2446 | 2444,2
2447 | 2445,2
2448 | 2446,2
2449 | 2447,2
2450 | 2448,2
2451 | 2449,0
2452 | 2450,2
2453 | 2451,2
2454 | 2452,2
2455 | 2453,0
2456 | 2454,6
2457 | 2455,6
2458 | 2456,5
2459 | 2457,6
2460 | 2458,6
2461 | 2459,3
2462 | 2460,2
2463 | 2461,6
2464 | 2462,3
2465 | 2463,4
2466 | 2464,4
2467 | 2465,4
2468 | 2466,2
2469 | 2467,6
2470 | 2468,6
2471 | 2469,0
2472 | 2470,0
2473 | 2471,3
2474 | 2472,0
2475 | 2473,4
2476 | 2474,4
2477 | 2475,3
2478 | 2476,2
2479 | 2477,3
2480 | 2478,1
2481 | 2479,6
2482 | 2480,6
2483 | 2481,5
2484 | 2482,3
2485 | 2483,4
2486 | 2484,3
2487 | 2485,5
2488 | 2486,3
2489 | 2487,1
2490 | 2488,1
2491 | 2489,3
2492 | 2490,4
2493 | 2491,5
2494 | 2492,2
2495 | 2493,3
2496 | 2494,3
2497 | 2495,3
2498 | 2496,4
2499 | 2497,5
2500 | 2498,4
2501 | 2499,0
2502 | 2500,3
2503 | 2501,3
2504 | 2502,0
2505 | 2503,2
2506 | 2504,1
2507 | 2505,1
2508 | 2506,5
2509 | 2507,2
2510 | 2508,3
2511 | 2509,3
2512 | 2510,5
2513 | 2511,0
2514 | 2512,2
2515 | 2513,3
2516 | 2514,2
2517 | 2515,2
2518 | 2516,5
2519 | 2517,5
2520 | 2518,4
2521 | 2519,3
2522 | 2520,4
2523 | 2521,3
2524 | 2522,2
2525 | 2523,2
2526 | 2524,4
2527 | 2525,2
2528 | 2526,4
2529 | 2527,5
2530 | 2528,5
2531 | 2529,3
2532 | 2530,2
2533 | 2531,3
2534 | 2532,1
2535 | 2533,0
2536 | 2534,3
2537 | 2535,3
2538 | 2536,4
2539 | 2537,5
2540 | 2538,4
2541 | 2539,3
2542 | 2540,3
2543 | 2541,3
2544 | 2542,3
2545 | 2543,3
2546 | 2544,0
2547 | 2545,1
2548 | 2546,2
2549 | 2547,4
2550 | 2548,4
2551 | 2549,4
2552 | 2550,3
2553 | 2551,3
2554 | 2552,3
2555 | 2553,5
2556 | 2554,2
2557 | 2555,3
2558 | 2556,2
2559 | 2557,2
2560 | 2558,2
2561 | 2559,3
2562 | 2560,2
2563 | 2561,2
2564 | 2562,0
2565 | 2563,4
2566 | 2564,4
2567 | 2565,3
2568 | 2566,3
2569 | 2567,3
2570 | 2568,3
2571 | 2569,3
2572 | 2570,3
2573 | 2571,3
2574 | 2572,3
2575 | 2573,3
2576 | 2574,3
2577 | 2575,0
2578 | 2576,0
2579 | 2577,3
2580 | 2578,0
2581 | 2579,3
2582 | 2580,0
2583 | 2581,2
2584 | 2582,3
2585 | 2583,4
2586 | 2584,1
2587 | 2585,2
2588 | 2586,5
2589 | 2587,4
2590 | 2588,3
2591 | 2589,3
2592 | 2590,3
2593 | 2591,1
2594 | 2592,5
2595 | 2593,3
2596 | 2594,4
2597 | 2595,3
2598 | 2596,2
2599 | 2597,2
2600 | 2598,1
2601 | 2599,3
2602 | 2600,3
2603 | 2601,3
2604 | 2602,3
2605 | 2603,3
2606 | 2604,6
2607 | 2605,3
2608 | 2606,3
2609 | 2607,3
2610 | 2608,6
2611 | 2609,3
2612 | 2610,3
2613 | 2611,3
2614 | 2612,2
2615 | 2613,3
2616 | 2614,2
2617 | 2615,4
2618 | 2616,2
2619 | 2617,4
2620 | 2618,2
2621 | 2619,2
2622 | 2620,1
2623 | 2621,5
2624 | 2622,6
2625 | 2623,4
2626 | 2624,3
2627 | 2625,3
2628 | 2626,3
2629 | 2627,2
2630 | 2628,5
2631 | 2629,3
2632 | 2630,3
2633 | 2631,4
2634 | 2632,3
2635 | 2633,3
2636 | 2634,3
2637 | 2635,3
2638 | 2636,3
2639 | 2637,4
2640 | 2638,6
2641 | 2639,0
2642 | 2640,3
2643 | 2641,2
2644 | 2642,2
2645 | 2643,2
2646 | 2644,5
2647 | 2645,4
2648 | 2646,4
2649 | 2647,4
2650 | 2648,4
2651 | 2649,6
2652 | 2650,3
2653 | 2651,2
2654 | 2652,2
2655 | 2653,0
2656 | 2654,2
2657 | 2655,2
2658 | 2656,2
2659 | 2657,2
2660 | 2658,2
2661 | 2659,3
2662 | 2660,4
2663 | 2661,4
2664 | 2662,4
2665 | 2663,3
2666 | 2664,3
2667 | 2665,4
2668 | 2666,4
2669 | 2667,3
2670 | 2668,3
2671 | 2669,3
2672 | 2670,4
2673 | 2671,4
2674 | 2672,4
2675 | 2673,4
2676 | 2674,4
2677 | 2675,4
2678 | 2676,3
2679 | 2677,4
2680 | 2678,4
2681 | 2679,4
2682 | 2680,4
2683 | 2681,4
2684 | 2682,4
2685 | 2683,4
2686 | 2684,4
2687 | 2685,2
2688 | 2686,3
2689 | 2687,3
2690 | 2688,3
2691 | 2689,2
2692 | 2690,6
2693 | 2691,2
2694 | 2692,3
2695 | 2693,3
2696 | 2694,4
2697 | 2695,4
2698 | 2696,3
2699 | 2697,3
2700 | 2698,3
2701 | 2699,3
2702 | 2700,3
2703 | 2701,3
2704 | 2702,0
2705 | 2703,3
2706 | 2704,3
2707 | 2705,3
2708 | 2706,3
2709 | 2707,3
2710 |
--------------------------------------------------------------------------------
/output/chameleon_personas.json:
--------------------------------------------------------------------------------
1 | {"0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 8, "10": 9, "11": 9, "12": 10, "13": 11, "14": 12, "15": 13, "16": 14, "17": 15, "18": 16, "19": 16, "20": 17, "21": 18, "22": 18, "23": 18, "24": 19, "25": 20, "26": 21, "27": 22, "28": 23, "29": 24, "30": 25, "31": 25, "32": 26, "33": 26, "34": 27, "35": 27, "36": 28, "37": 29, "38": 29, "39": 29, "40": 29, "41": 30, "42": 31, "43": 31, "44": 32, "45": 33, "46": 34, "47": 35, "48": 36, "49": 36, "50": 37, "51": 38, "52": 38, "53": 38, "54": 39, "55": 39, "56": 39, "57": 39, "58": 39, "59": 39, "60": 40, "61": 41, "62": 42, "63": 43, "64": 44, "65": 45, "66": 46, "67": 47, "68": 47, "69": 48, "70": 49, "71": 49, "72": 50, "73": 51, "74": 51, "75": 51, "76": 52, "77": 53, "78": 54, "79": 55, "80": 56, "81": 57, "82": 58, "83": 59, "84": 60, "85": 61, "86": 62, "87": 62, "88": 63, "89": 64, "90": 65, "91": 66, "92": 66, "93": 67, "94": 68, "95": 68, "96": 69, "97": 70, "98": 71, "99": 72, "100": 72, "101": 72, "102": 72, "103": 72, "104": 73, "105": 74, "106": 75, "107": 76, "108": 76, "109": 77, "110": 77, "111": 77, "112": 78, "113": 79, "114": 80, "115": 81, "116": 82, "117": 83, "118": 83, "119": 84, "120": 85, "121": 86, "122": 87, "123": 88, "124": 88, "125": 88, "126": 89, "127": 90, "128": 90, "129": 91, "130": 92, "131": 92, "132": 93, "133": 94, "134": 95, "135": 96, "136": 97, "137": 97, "138": 98, "139": 98, "140": 98, "141": 98, "142": 98, "143": 99, "144": 100, "145": 101, "146": 102, "147": 103, "148": 104, "149": 104, "150": 105, "151": 106, "152": 106, "153": 106, "154": 106, "155": 107, "156": 108, "157": 108, "158": 108, "159": 109, "160": 109, "161": 109, "162": 109, "163": 109, "164": 110, "165": 110, "166": 111, "167": 112, "168": 112, "169": 112, "170": 112, "171": 112, "172": 113, "173": 114, "174": 115, "175": 115, "176": 115, "177": 115, "178": 115, "179": 115, "180": 115, "181": 116, "182": 117, "183": 117, "184": 117, "185": 117, "186": 117, "187": 118, "188": 119, "189": 119, "190": 120, "191": 121, "192": 122, "193": 123, "194": 124, "195": 125, "196": 126, "197": 127, "198": 128, "199": 128, "200": 129, "201": 130, "202": 131, "203": 132, "204": 133, "205": 133, "206": 134, "207": 135, "208": 136, "209": 137, "210": 137, "211": 138, "212": 138, "213": 139, "214": 140, "215": 141, "216": 142, "217": 143, "218": 144, "219": 145, "220": 146, "221": 147, "222": 148, "223": 149, "224": 149, "225": 149, "226": 150, "227": 150, "228": 151, "229": 152, "230": 153, "231": 153, "232": 153, "233": 154, "234": 155, "235": 156, "236": 157, "237": 158, "238": 159, "239": 160, "240": 161, "241": 162, "242": 163, "243": 164, "244": 165, "245": 166, "246": 167, "247": 168, "248": 169, "249": 170, "250": 170, "251": 171, "252": 171, "253": 171, "254": 171, "255": 172, "256": 173, "257": 174, "258": 175, "259": 176, "260": 177, "261": 177, "262": 177, "263": 177, "264": 177, "265": 178, "266": 179, "267": 180, "268": 180, "269": 181, "270": 181, "271": 181, "272": 182, "273": 183, "274": 184, "275": 185, "276": 186, "277": 187, "278": 188, "279": 189, "280": 190, "281": 191, "282": 191, "283": 191, "284": 192, "285": 193, "286": 194, "287": 194, "288": 195, "289": 196, "290": 197, "291": 198, "292": 199, "293": 200, "294": 201, "295": 202, "296": 203, "297": 204, "298": 205, "299": 206, "300": 207, "301": 207, "302": 208, "303": 208, "304": 209, "305": 210, "306": 210, "307": 211, "308": 212, "309": 212, "310": 213, "311": 214, "312": 215, "313": 216, "314": 217, "315": 217, "316": 217, "317": 218, "318": 218, "319": 219, "320": 220, "321": 220, "322": 220, "323": 221, "324": 222, "325": 223, "326": 224, "327": 225, "328": 226, "329": 227, "330": 228, "331": 229, "332": 230, "333": 231, "334": 232, "335": 232, "336": 233, "337": 234, "338": 235, "339": 235, "340": 236, "341": 237, "342": 238, "343": 239, "344": 239, "345": 239, "346": 240, "347": 240, "348": 241, "349": 241, "350": 242, "351": 243, "352": 244, "353": 245, "354": 246, "355": 247, "356": 248, "357": 249, "358": 250, "359": 251, "360": 252, "361": 253, "362": 253, "363": 254, "364": 255, "365": 256, "366": 257, "367": 258, "368": 259, "369": 260, "370": 261, "371": 262, "372": 262, "373": 263, "374": 263, "375": 264, "376": 265, "377": 265, "378": 265, "379": 265, "380": 265, "381": 265, "382": 265, "383": 266, "384": 267, "385": 268, "386": 269, "387": 270, "388": 271, "389": 271, "390": 272, "391": 273, "392": 274, "393": 275, "394": 275, "395": 276, "396": 276, "397": 277, "398": 278, "399": 278, "400": 279, "401": 280, "402": 281, "403": 282, "404": 282, "405": 283, "406": 284, "407": 285, "408": 286, "409": 287, "410": 288, "411": 288, "412": 289, "413": 290, "414": 291, "415": 291, "416": 291, "417": 291, "418": 291, "419": 292, "420": 292, "421": 292, "422": 292, "423": 292, "424": 293, "425": 294, "426": 294, "427": 295, "428": 296, "429": 297, "430": 298, "431": 299, "432": 300, "433": 301, "434": 301, "435": 302, "436": 303, "437": 304, "438": 305, "439": 305, "440": 305, "441": 306, "442": 307, "443": 307, "444": 307, "445": 308, "446": 309, "447": 310, "448": 311, "449": 312, "450": 313, "451": 314, "452": 315, "453": 316, "454": 317, "455": 318, "456": 319, "457": 320, "458": 320, "459": 321, "460": 321, "461": 322, "462": 323, "463": 324, "464": 325, "465": 326, "466": 326, "467": 326, "468": 327, "469": 328, "470": 328, "471": 329, "472": 330, "473": 331, "474": 332, "475": 332, "476": 332, "477": 333, "478": 334, "479": 335, "480": 336, "481": 336, "482": 336, "483": 336, "484": 336, "485": 336, "486": 336, "487": 337, "488": 338, "489": 338, "490": 339, "491": 340, "492": 340, "493": 340, "494": 340, "495": 340, "496": 341, "497": 341, "498": 341, "499": 341, "500": 341, "501": 342, "502": 343, "503": 344, "504": 344, "505": 345, "506": 346, "507": 346, "508": 346, "509": 346, "510": 347, "511": 348, "512": 349, "513": 349, "514": 350, "515": 351, "516": 352, "517": 353, "518": 353, "519": 354, "520": 355, "521": 356, "522": 356, "523": 357, "524": 357, "525": 358, "526": 359, "527": 359, "528": 360, "529": 361, "530": 361, "531": 362, "532": 363, "533": 364, "534": 364, "535": 365, "536": 366, "537": 367, "538": 367, "539": 368, "540": 369, "541": 370, "542": 371, "543": 372, "544": 373, "545": 374, "546": 375, "547": 376, "548": 377, "549": 378, "550": 378, "551": 379, "552": 379, "553": 380, "554": 381, "555": 381, "556": 381, "557": 381, "558": 381, "559": 382, "560": 383, "561": 383, "562": 384, "563": 384, "564": 384, "565": 384, "566": 384, "567": 385, "568": 386, "569": 387, "570": 388, "571": 389, "572": 390, "573": 391, "574": 392, "575": 393, "576": 394, "577": 395, "578": 395, "579": 396, "580": 396, "581": 397, "582": 398, "583": 399, "584": 400, "585": 401, "586": 401, "587": 402, "588": 403, "589": 404, "590": 404, "591": 405, "592": 406, "593": 406, "594": 407, "595": 408, "596": 408, "597": 409, "598": 410, "599": 411, "600": 412, "601": 412, "602": 413, "603": 414, "604": 414, "605": 415, "606": 416, "607": 417, "608": 418, "609": 419, "610": 420, "611": 421, "612": 422, "613": 423, "614": 424, "615": 425, "616": 426, "617": 426, "618": 426, "619": 426, "620": 426, "621": 427, "622": 427, "623": 427, "624": 427, "625": 427, "626": 428, "627": 428, "628": 429, "629": 430, "630": 431, "631": 432, "632": 432, "633": 433, "634": 434, "635": 435, "636": 436, "637": 437, "638": 438, "639": 439, "640": 440, "641": 441, "642": 442, "643": 443, "644": 444, "645": 445, "646": 446, "647": 447, "648": 448, "649": 449, "650": 450, "651": 451, "652": 451, "653": 451, "654": 451, "655": 451, "656": 452, "657": 453, "658": 454, "659": 455, "660": 456, "661": 457, "662": 457, "663": 458, "664": 458, "665": 459, "666": 459, "667": 460, "668": 460, "669": 461, "670": 461, "671": 461, "672": 461, "673": 461, "674": 462, "675": 463, "676": 464, "677": 464, "678": 465, "679": 466, "680": 467, "681": 468, "682": 469, "683": 470, "684": 470, "685": 471, "686": 472, "687": 473, "688": 474, "689": 475, "690": 475, "691": 476, "692": 477, "693": 478, "694": 478, "695": 478, "696": 479, "697": 480, "698": 481, "699": 482, "700": 483, "701": 484, "702": 485, "703": 486, "704": 487, "705": 487, "706": 487, "707": 488, "708": 488, "709": 489, "710": 490, "711": 491, "712": 491, "713": 492, "714": 493, "715": 494, "716": 495, "717": 495, "718": 496, "719": 497, "720": 498, "721": 499, "722": 500, "723": 501, "724": 502, "725": 503, "726": 504, "727": 505, "728": 506, "729": 506, "730": 506, "731": 507, "732": 508, "733": 508, "734": 508, "735": 508, "736": 508, "737": 509, "738": 510, "739": 510, "740": 510, "741": 510, "742": 511, "743": 511, "744": 512, "745": 512, "746": 513, "747": 513, "748": 513, "749": 513, "750": 513, "751": 514, "752": 515, "753": 516, "754": 517, "755": 517, "756": 518, "757": 519, "758": 520, "759": 521, "760": 522, "761": 523, "762": 524, "763": 524, "764": 524, "765": 525, "766": 526, "767": 527, "768": 528, "769": 529, "770": 530, "771": 531, "772": 531, "773": 532, "774": 533, "775": 534, "776": 535, "777": 536, "778": 537, "779": 538, "780": 539, "781": 539, "782": 540, "783": 540, "784": 541, "785": 542, "786": 543, "787": 544, "788": 544, "789": 545, "790": 546, "791": 547, "792": 548, "793": 549, "794": 550, "795": 551, "796": 552, "797": 552, "798": 552, "799": 552, "800": 552, "801": 552, "802": 552, "803": 552, "804": 553, "805": 554, "806": 555, "807": 556, "808": 556, "809": 556, "810": 557, "811": 558, "812": 559, "813": 560, "814": 561, "815": 562, "816": 562, "817": 563, "818": 564, "819": 565, "820": 566, "821": 567, "822": 568, "823": 569, "824": 570, "825": 571, "826": 572, "827": 573, "828": 574, "829": 575, "830": 576, "831": 576, "832": 577, "833": 578, "834": 578, "835": 579, "836": 579, "837": 579, "838": 580, "839": 580, "840": 581, "841": 582, "842": 583, "843": 584, "844": 585, "845": 585, "846": 585, "847": 586, "848": 587, "849": 588, "850": 588, "851": 588, "852": 588, "853": 588, "854": 589, "855": 589, "856": 590, "857": 591, "858": 591, "859": 592, "860": 593, "861": 594, "862": 595, "863": 596, "864": 597, "865": 598, "866": 599, "867": 600, "868": 601, "869": 602, "870": 603, "871": 604, "872": 605, "873": 606, "874": 607, "875": 607, "876": 607, "877": 607, "878": 607, "879": 608, "880": 608, "881": 608, "882": 608, "883": 609, "884": 610, "885": 611, "886": 612, "887": 613, "888": 614, "889": 614, "890": 615, "891": 616, "892": 617, "893": 618, "894": 619, "895": 620, "896": 620, "897": 621, "898": 622, "899": 622, "900": 623, "901": 624, "902": 625, "903": 626, "904": 626, "905": 627, "906": 628, "907": 629, "908": 630, "909": 631, "910": 631, "911": 632, "912": 632, "913": 633, "914": 633, "915": 634, "916": 635, "917": 636, "918": 637, "919": 638, "920": 639, "921": 640, "922": 640, "923": 640, "924": 641, "925": 642, "926": 643, "927": 643, "928": 643, "929": 643, "930": 643, "931": 643, "932": 643, "933": 643, "934": 643, "935": 643, "936": 644, "937": 644, "938": 645, "939": 646, "940": 647, "941": 647, "942": 647, "943": 648, "944": 648, "945": 648, "946": 649, "947": 650, "948": 651, "949": 651, "950": 652, "951": 652, "952": 652, "953": 652, "954": 653, "955": 654, "956": 654, "957": 655, "958": 656, "959": 656, "960": 657, "961": 658, "962": 659, "963": 660, "964": 661, "965": 662, "966": 663, "967": 663, "968": 664, "969": 665, "970": 666, "971": 666, "972": 667, "973": 668, "974": 669, "975": 670, "976": 671, "977": 671, "978": 672, "979": 673, "980": 674, "981": 675, "982": 675, "983": 676, "984": 677, "985": 678, "986": 679, "987": 680, "988": 680, "989": 681, "990": 682, "991": 683, "992": 683, "993": 684, "994": 685, "995": 686, "996": 687, "997": 687, "998": 688, "999": 689, "1000": 690, "1001": 690, "1002": 690, "1003": 691, "1004": 692, "1005": 693, "1006": 694, "1007": 695, "1008": 696, "1009": 697, "1010": 698, "1011": 699, "1012": 700, "1013": 700, "1014": 701, "1015": 701, "1016": 702, "1017": 703, "1018": 703, "1019": 703, "1020": 704, "1021": 705, "1022": 706, "1023": 706, "1024": 706, "1025": 706, "1026": 707, "1027": 708, "1028": 709, "1029": 709, "1030": 709, "1031": 710, "1032": 711, "1033": 711, "1034": 712, "1035": 713, "1036": 713, "1037": 714, "1038": 715, "1039": 716, "1040": 717, "1041": 717, "1042": 718, "1043": 719, "1044": 720, "1045": 721, "1046": 722, "1047": 722, "1048": 722, "1049": 722, "1050": 722, "1051": 723, "1052": 724, "1053": 725, "1054": 726, "1055": 726, "1056": 726, "1057": 726, "1058": 727, "1059": 727, "1060": 727, "1061": 727, "1062": 727, "1063": 727, "1064": 727, "1065": 727, "1066": 727, "1067": 728, "1068": 729, "1069": 730, "1070": 731, "1071": 732, "1072": 733, "1073": 734, "1074": 735, "1075": 735, "1076": 736, "1077": 737, "1078": 738, "1079": 739, "1080": 740, "1081": 741, "1082": 742, "1083": 743, "1084": 743, "1085": 744, "1086": 745, "1087": 746, "1088": 747, "1089": 747, "1090": 748, "1091": 749, "1092": 750, "1093": 751, "1094": 752, "1095": 753, "1096": 753, "1097": 754, "1098": 755, "1099": 756, "1100": 757, "1101": 758, "1102": 759, "1103": 760, "1104": 761, "1105": 761, "1106": 762, "1107": 763, "1108": 764, "1109": 765, "1110": 766, "1111": 767, "1112": 768, "1113": 769, "1114": 769, "1115": 769, "1116": 770, "1117": 770, "1118": 771, "1119": 772, "1120": 773, "1121": 774, "1122": 775, "1123": 775, "1124": 775, "1125": 775, "1126": 775, "1127": 775, "1128": 775, "1129": 775, "1130": 775, "1131": 776, "1132": 776, "1133": 776, "1134": 776, "1135": 776, "1136": 776, "1137": 776, "1138": 776, "1139": 776, "1140": 776, "1141": 776, "1142": 776, "1143": 776, "1144": 777, "1145": 778, "1146": 779, "1147": 779, "1148": 780, "1149": 781, "1150": 781, "1151": 781, "1152": 782, "1153": 783, "1154": 783, "1155": 784, "1156": 785, "1157": 785, "1158": 785, "1159": 785, "1160": 785, "1161": 786, "1162": 787, "1163": 788, "1164": 789, "1165": 790, "1166": 791, "1167": 792, "1168": 793, "1169": 794, "1170": 794, "1171": 795, "1172": 796, "1173": 796, "1174": 797, "1175": 798, "1176": 799, "1177": 799, "1178": 800, "1179": 801, "1180": 802, "1181": 803, "1182": 804, "1183": 805, "1184": 806, "1185": 806, "1186": 806, "1187": 806, "1188": 806, "1189": 806, "1190": 806, "1191": 806, "1192": 806, "1193": 806, "1194": 806, "1195": 806, "1196": 807, "1197": 808, "1198": 809, "1199": 810, "1200": 811, "1201": 811, "1202": 812, "1203": 813, "1204": 813, "1205": 814, "1206": 815, "1207": 816, "1208": 817, "1209": 818, "1210": 818, "1211": 819, "1212": 820, "1213": 821, "1214": 821, "1215": 822, "1216": 823, "1217": 824, "1218": 825, "1219": 825, "1220": 825, "1221": 825, "1222": 825, "1223": 826, "1224": 826, "1225": 826, "1226": 827, "1227": 827, "1228": 827, "1229": 827, "1230": 828, "1231": 828, "1232": 828, "1233": 829, "1234": 830, "1235": 831, "1236": 832, "1237": 833, "1238": 833, "1239": 834, "1240": 835, "1241": 836, "1242": 836, "1243": 837, "1244": 838, "1245": 839, "1246": 840, "1247": 840, "1248": 841, "1249": 842, "1250": 843, "1251": 844, "1252": 844, "1253": 845, "1254": 846, "1255": 846, "1256": 846, "1257": 846, "1258": 846, "1259": 847, "1260": 848, "1261": 848, "1262": 849, "1263": 850, "1264": 851, "1265": 852, "1266": 853, "1267": 854, "1268": 855, "1269": 856, "1270": 856, "1271": 857, "1272": 858, "1273": 859, "1274": 859, "1275": 859, "1276": 859, "1277": 859, "1278": 860, "1279": 860, "1280": 861, "1281": 862, "1282": 862, "1283": 862, "1284": 863, "1285": 864, "1286": 865, "1287": 866, "1288": 867, "1289": 867, "1290": 868, "1291": 868, "1292": 869, "1293": 870, "1294": 871, "1295": 872, "1296": 873, "1297": 873, "1298": 873, "1299": 874, "1300": 875, "1301": 876, "1302": 876, "1303": 877, "1304": 878, "1305": 878, "1306": 879, "1307": 879, "1308": 880, "1309": 881, "1310": 882, "1311": 882, "1312": 883, "1313": 883, "1314": 883, "1315": 883, "1316": 883, "1317": 884, "1318": 885, "1319": 885, "1320": 885, "1321": 885, "1322": 885, "1323": 885, "1324": 886, "1325": 887, "1326": 888, "1327": 889, "1328": 890, "1329": 891, "1330": 891, "1331": 891, "1332": 892, "1333": 893, "1334": 894, "1335": 894, "1336": 895, "1337": 896, "1338": 897, "1339": 898, "1340": 899, "1341": 900, "1342": 900, "1343": 900, "1344": 900, "1345": 900, "1346": 900, "1347": 900, "1348": 901, "1349": 902, "1350": 902, "1351": 903, "1352": 904, "1353": 905, "1354": 906, "1355": 907, "1356": 908, "1357": 908, "1358": 908, "1359": 909, "1360": 909, "1361": 909, "1362": 909, "1363": 910, "1364": 911, "1365": 912, "1366": 913, "1367": 914, "1368": 915, "1369": 915, "1370": 915, "1371": 915, "1372": 915, "1373": 915, "1374": 915, "1375": 916, "1376": 917, "1377": 917, "1378": 918, "1379": 918, "1380": 919, "1381": 920, "1382": 921, "1383": 922, "1384": 923, "1385": 924, "1386": 924, "1387": 925, "1388": 926, "1389": 927, "1390": 928, "1391": 928, "1392": 929, "1393": 929, "1394": 930, "1395": 931, "1396": 932, "1397": 933, "1398": 933, "1399": 934, "1400": 935, "1401": 935, "1402": 935, "1403": 935, "1404": 935, "1405": 935, "1406": 935, "1407": 935, "1408": 935, "1409": 935, "1410": 936, "1411": 936, "1412": 937, "1413": 938, "1414": 938, "1415": 938, "1416": 938, "1417": 938, "1418": 938, "1419": 939, "1420": 939, "1421": 939, "1422": 940, "1423": 941, "1424": 942, "1425": 943, "1426": 943, "1427": 944, "1428": 945, "1429": 946, "1430": 947, "1431": 948, "1432": 949, "1433": 950, "1434": 951, "1435": 952, "1436": 953, "1437": 954, "1438": 955, "1439": 955, "1440": 956, "1441": 956, "1442": 956, "1443": 957, "1444": 958, "1445": 959, "1446": 960, "1447": 961, "1448": 962, "1449": 963, "1450": 964, "1451": 964, "1452": 964, "1453": 964, "1454": 964, "1455": 964, "1456": 964, "1457": 964, "1458": 964, "1459": 964, "1460": 964, "1461": 964, "1462": 964, "1463": 964, "1464": 964, "1465": 964, "1466": 964, "1467": 964, "1468": 964, "1469": 964, "1470": 964, "1471": 964, "1472": 964, "1473": 964, "1474": 964, "1475": 964, "1476": 964, "1477": 964, "1478": 964, "1479": 964, "1480": 964, "1481": 964, "1482": 964, "1483": 964, "1484": 964, "1485": 964, "1486": 964, "1487": 964, "1488": 964, "1489": 965, "1490": 965, "1491": 966, "1492": 966, "1493": 966, "1494": 967, "1495": 968, "1496": 969, "1497": 970, "1498": 971, "1499": 971, "1500": 972, "1501": 973, "1502": 974, "1503": 975, "1504": 975, "1505": 975, "1506": 975, "1507": 976, "1508": 977, "1509": 977, "1510": 978, "1511": 979, "1512": 980, "1513": 981, "1514": 981, "1515": 981, "1516": 982, "1517": 982, "1518": 983, "1519": 984, "1520": 985, "1521": 985, "1522": 986, "1523": 987, "1524": 988, "1525": 989, "1526": 990, "1527": 991, "1528": 991, "1529": 991, "1530": 992, "1531": 992, "1532": 992, "1533": 992, "1534": 992, "1535": 992, "1536": 993, "1537": 993, "1538": 993, "1539": 993, "1540": 993, "1541": 993, "1542": 993, "1543": 993, "1544": 993, "1545": 993, "1546": 994, "1547": 995, "1548": 995, "1549": 995, "1550": 995, "1551": 996, "1552": 997, "1553": 998, "1554": 999, "1555": 999, "1556": 1000, "1557": 1000, "1558": 1000, "1559": 1001, "1560": 1001, "1561": 1001, "1562": 1002, "1563": 1003, "1564": 1003, "1565": 1004, "1566": 1005, "1567": 1005, "1568": 1005, "1569": 1005, "1570": 1006, "1571": 1007, "1572": 1007, "1573": 1007, "1574": 1007, "1575": 1007, "1576": 1007, "1577": 1007, "1578": 1007, "1579": 1007, "1580": 1007, "1581": 1007, "1582": 1008, "1583": 1008, "1584": 1008, "1585": 1008, "1586": 1008, "1587": 1008, "1588": 1008, "1589": 1008, "1590": 1008, "1591": 1008, "1592": 1008, "1593": 1008, "1594": 1008, "1595": 1008, "1596": 1008, "1597": 1008, "1598": 1008, "1599": 1008, "1600": 1008, "1601": 1008, "1602": 1008, "1603": 1008, "1604": 1008, "1605": 1008, "1606": 1008, "1607": 1008, "1608": 1008, "1609": 1008, "1610": 1008, "1611": 1008, "1612": 1008, "1613": 1008, "1614": 1008, "1615": 1008, "1616": 1008, "1617": 1008, "1618": 1008, "1619": 1008, "1620": 1009, "1621": 1010, "1622": 1011, "1623": 1011, "1624": 1012, "1625": 1013, "1626": 1014, "1627": 1015, "1628": 1016, "1629": 1016, "1630": 1017, "1631": 1018, "1632": 1019, "1633": 1019, "1634": 1019, "1635": 1019, "1636": 1020, "1637": 1020, "1638": 1021, "1639": 1021, "1640": 1022, "1641": 1023, "1642": 1024, "1643": 1025, "1644": 1026, "1645": 1027, "1646": 1027, "1647": 1027, "1648": 1027, "1649": 1027, "1650": 1028, "1651": 1029, "1652": 1030, "1653": 1031, "1654": 1032, "1655": 1033, "1656": 1034, "1657": 1035, "1658": 1036, "1659": 1037, "1660": 1037, "1661": 1037, "1662": 1038, "1663": 1039, "1664": 1040, "1665": 1041, "1666": 1042, "1667": 1043, "1668": 1044, "1669": 1045, "1670": 1045, "1671": 1045, "1672": 1046, "1673": 1047, "1674": 1048, "1675": 1049, "1676": 1050, "1677": 1051, "1678": 1052, "1679": 1053, "1680": 1054, "1681": 1054, "1682": 1054, "1683": 1054, "1684": 1054, "1685": 1054, "1686": 1054, "1687": 1054, "1688": 1054, "1689": 1054, "1690": 1054, "1691": 1054, "1692": 1054, "1693": 1054, "1694": 1054, "1695": 1054, "1696": 1054, "1697": 1054, "1698": 1054, "1699": 1054, "1700": 1054, "1701": 1054, "1702": 1054, "1703": 1054, "1704": 1054, "1705": 1054, "1706": 1054, "1707": 1054, "1708": 1054, "1709": 1054, "1710": 1054, "1711": 1054, "1712": 1054, "1713": 1054, "1714": 1054, "1715": 1054, "1716": 1054, "1717": 1054, "1718": 1054, "1719": 1054, "1720": 1054, "1721": 1054, "1722": 1054, "1723": 1054, "1724": 1054, "1725": 1054, "1726": 1054, "1727": 1054, "1728": 1054, "1729": 1054, "1730": 1054, "1731": 1054, "1732": 1054, "1733": 1054, "1734": 1054, "1735": 1054, "1736": 1054, "1737": 1054, "1738": 1054, "1739": 1054, "1740": 1055, "1741": 1056, "1742": 1057, "1743": 1058, "1744": 1058, "1745": 1058, "1746": 1058, "1747": 1058, "1748": 1059, "1749": 1060, "1750": 1060, "1751": 1061, "1752": 1062, "1753": 1062, "1754": 1062, "1755": 1063, "1756": 1064, "1757": 1065, "1758": 1066, "1759": 1067, "1760": 1068, "1761": 1068, "1762": 1069, "1763": 1070, "1764": 1071, "1765": 1072, "1766": 1073, "1767": 1074, "1768": 1075, "1769": 1076, "1770": 1077, "1771": 1077, "1772": 1078, "1773": 1079, "1774": 1080, "1775": 1081, "1776": 1082, "1777": 1083, "1778": 1083, "1779": 1084, "1780": 1084, "1781": 1085, "1782": 1086, "1783": 1086, "1784": 1086, "1785": 1087, "1786": 1088, "1787": 1089, "1788": 1090, "1789": 1091, "1790": 1092, "1791": 1092, "1792": 1093, "1793": 1094, "1794": 1094, "1795": 1095, "1796": 1095, "1797": 1096, "1798": 1096, "1799": 1097, "1800": 1098, "1801": 1098, "1802": 1099, "1803": 1099, "1804": 1100, "1805": 1101, "1806": 1101, "1807": 1101, "1808": 1101, "1809": 1101, "1810": 1102, "1811": 1103, "1812": 1104, "1813": 1104, "1814": 1105, "1815": 1106, "1816": 1106, "1817": 1107, "1818": 1107, "1819": 1107, "1820": 1108, "1821": 1108, "1822": 1108, "1823": 1108, "1824": 1108, "1825": 1109, "1826": 1110, "1827": 1111, "1828": 1111, "1829": 1112, "1830": 1112, "1831": 1112, "1832": 1113, "1833": 1114, "1834": 1114, "1835": 1114, "1836": 1115, "1837": 1116, "1838": 1116, "1839": 1116, "1840": 1117, "1841": 1118, "1842": 1118, "1843": 1119, "1844": 1120, "1845": 1121, "1846": 1122, "1847": 1123, "1848": 1124, "1849": 1125, "1850": 1126, "1851": 1127, "1852": 1128, "1853": 1129, "1854": 1129, "1855": 1129, "1856": 1129, "1857": 1129, "1858": 1130, "1859": 1131, "1860": 1132, "1861": 1133, "1862": 1133, "1863": 1134, "1864": 1135, "1865": 1136, "1866": 1137, "1867": 1138, "1868": 1139, "1869": 1140, "1870": 1141, "1871": 1141, "1872": 1141, "1873": 1142, "1874": 1142, "1875": 1143, "1876": 1144, "1877": 1145, "1878": 1146, "1879": 1146, "1880": 1146, "1881": 1147, "1882": 1148, "1883": 1149, "1884": 1150, "1885": 1150, "1886": 1150, "1887": 1150, "1888": 1151, "1889": 1151, "1890": 1151, "1891": 1151, "1892": 1152, "1893": 1153, "1894": 1154, "1895": 1155, "1896": 1156, "1897": 1157, "1898": 1158, "1899": 1158, "1900": 1159, "1901": 1160, "1902": 1161, "1903": 1161, "1904": 1162, "1905": 1163, "1906": 1163, "1907": 1163, "1908": 1163, "1909": 1164, "1910": 1164, "1911": 1164, "1912": 1164, "1913": 1164, "1914": 1164, "1915": 1164, "1916": 1164, "1917": 1164, "1918": 1165, "1919": 1166, "1920": 1166, "1921": 1166, "1922": 1167, "1923": 1168, "1924": 1169, "1925": 1170, "1926": 1171, "1927": 1172, "1928": 1172, "1929": 1173, "1930": 1174, "1931": 1175, "1932": 1176, "1933": 1177, "1934": 1178, "1935": 1179, "1936": 1180, "1937": 1181, "1938": 1181, "1939": 1182, "1940": 1183, "1941": 1184, "1942": 1185, "1943": 1186, "1944": 1187, "1945": 1188, "1946": 1188, "1947": 1188, "1948": 1189, "1949": 1189, "1950": 1190, "1951": 1191, "1952": 1192, "1953": 1193, "1954": 1193, "1955": 1193, "1956": 1193, "1957": 1193, "1958": 1194, "1959": 1195, "1960": 1196, "1961": 1197, "1962": 1198, "1963": 1199, "1964": 1200, "1965": 1201, "1966": 1201, "1967": 1201, "1968": 1201, "1969": 1201, "1970": 1201, "1971": 1202, "1972": 1203, "1973": 1204, "1974": 1204, "1975": 1204, "1976": 1205, "1977": 1206, "1978": 1207, "1979": 1208, "1980": 1209, "1981": 1210, "1982": 1210, "1983": 1211, "1984": 1212, "1985": 1213, "1986": 1213, "1987": 1214, "1988": 1215, "1989": 1216, "1990": 1217, "1991": 1218, "1992": 1218, "1993": 1219, "1994": 1220, "1995": 1221, "1996": 1221, "1997": 1222, "1998": 1223, "1999": 1224, "2000": 1225, "2001": 1226, "2002": 1227, "2003": 1228, "2004": 1229, "2005": 1229, "2006": 1230, "2007": 1231, "2008": 1231, "2009": 1231, "2010": 1231, "2011": 1231, "2012": 1231, "2013": 1231, "2014": 1231, "2015": 1231, "2016": 1231, "2017": 1231, "2018": 1231, "2019": 1231, "2020": 1231, "2021": 1231, "2022": 1232, "2023": 1233, "2024": 1234, "2025": 1234, "2026": 1235, "2027": 1235, "2028": 1235, "2029": 1236, "2030": 1236, "2031": 1237, "2032": 1238, "2033": 1239, "2034": 1240, "2035": 1240, "2036": 1241, "2037": 1241, "2038": 1242, "2039": 1242, "2040": 1242, "2041": 1243, "2042": 1244, "2043": 1245, "2044": 1246, "2045": 1246, "2046": 1246, "2047": 1246, "2048": 1246, "2049": 1247, "2050": 1248, "2051": 1249, "2052": 1250, "2053": 1251, "2054": 1252, "2055": 1252, "2056": 1253, "2057": 1254, "2058": 1255, "2059": 1255, "2060": 1256, "2061": 1257, "2062": 1258, "2063": 1259, "2064": 1260, "2065": 1261, "2066": 1262, "2067": 1262, "2068": 1263, "2069": 1264, "2070": 1265, "2071": 1266, "2072": 1267, "2073": 1268, "2074": 1269, "2075": 1270, "2076": 1271, "2077": 1272, "2078": 1273, "2079": 1273, "2080": 1274, "2081": 1275, "2082": 1276, "2083": 1277, "2084": 1278, "2085": 1278, "2086": 1279, "2087": 1280, "2088": 1280, "2089": 1280, "2090": 1281, "2091": 1281, "2092": 1282, "2093": 1283, "2094": 1283, "2095": 1283, "2096": 1283, "2097": 1283, "2098": 1284, "2099": 1285, "2100": 1286, "2101": 1286, "2102": 1287, "2103": 1287, "2104": 1287, "2105": 1287, "2106": 1287, "2107": 1288, "2108": 1288, "2109": 1289, "2110": 1290, "2111": 1291, "2112": 1292, "2113": 1292, "2114": 1292, "2115": 1292, "2116": 1292, "2117": 1293, "2118": 1294, "2119": 1295, "2120": 1296, "2121": 1297, "2122": 1298, "2123": 1299, "2124": 1300, "2125": 1301, "2126": 1302, "2127": 1303, "2128": 1304, "2129": 1305, "2130": 1305, "2131": 1305, "2132": 1306, "2133": 1306, "2134": 1307, "2135": 1308, "2136": 1308, "2137": 1308, "2138": 1308, "2139": 1309, "2140": 1309, "2141": 1310, "2142": 1311, "2143": 1312, "2144": 1312, "2145": 1313, "2146": 1314, "2147": 1314, "2148": 1314, "2149": 1314, "2150": 1314, "2151": 1315, "2152": 1315, "2153": 1315, "2154": 1316, "2155": 1317, "2156": 1317, "2157": 1318, "2158": 1319, "2159": 1320, "2160": 1321, "2161": 1322, "2162": 1322, "2163": 1323, "2164": 1324, "2165": 1324, "2166": 1324, "2167": 1324, "2168": 1325, "2169": 1326, "2170": 1326, "2171": 1327, "2172": 1328, "2173": 1328, "2174": 1328, "2175": 1328, "2176": 1328, "2177": 1329, "2178": 1330, "2179": 1331, "2180": 1332, "2181": 1333, "2182": 1334, "2183": 1335, "2184": 1336, "2185": 1337, "2186": 1338, "2187": 1339, "2188": 1340, "2189": 1341, "2190": 1341, "2191": 1342, "2192": 1343, "2193": 1343, "2194": 1343, "2195": 1344, "2196": 1345, "2197": 1345, "2198": 1346, "2199": 1346, "2200": 1347, "2201": 1348, "2202": 1348, "2203": 1348, "2204": 1349, "2205": 1349, "2206": 1350, "2207": 1350, "2208": 1351, "2209": 1352, "2210": 1353, "2211": 1354, "2212": 1354, "2213": 1355, "2214": 1355, "2215": 1355, "2216": 1356, "2217": 1356, "2218": 1356, "2219": 1357, "2220": 1357, "2221": 1357, "2222": 1358, "2223": 1359, "2224": 1360, "2225": 1360, "2226": 1361, "2227": 1361, "2228": 1362, "2229": 1363, "2230": 1364, "2231": 1365, "2232": 1365, "2233": 1366, "2234": 1367, "2235": 1367, "2236": 1368, "2237": 1369, "2238": 1370, "2239": 1371, "2240": 1372, "2241": 1373, "2242": 1373, "2243": 1374, "2244": 1375, "2245": 1376, "2246": 1377, "2247": 1378, "2248": 1379, "2249": 1379, "2250": 1379, "2251": 1379, "2252": 1379, "2253": 1380, "2254": 1381, "2255": 1382, "2256": 1383, "2257": 1384, "2258": 1384, "2259": 1385, "2260": 1385, "2261": 1385, "2262": 1385, "2263": 1385, "2264": 1386, "2265": 1386, "2266": 1386, "2267": 1387, "2268": 1387, "2269": 1387, "2270": 1387, "2271": 1387, "2272": 1387, "2273": 1387, "2274": 1387, "2275": 1387, "2276": 1387, "2277": 1387, "2278": 1387, "2279": 1387, "2280": 1387, "2281": 1387, "2282": 1387, "2283": 1387, "2284": 1387, "2285": 1387, "2286": 1387, "2287": 1387, "2288": 1387, "2289": 1387, "2290": 1387, "2291": 1387, "2292": 1387, "2293": 1387, "2294": 1387, "2295": 1387, "2296": 1387, "2297": 1387, "2298": 1387, "2299": 1387, "2300": 1387, "2301": 1387, "2302": 1387, "2303": 1387, "2304": 1387, "2305": 1388, "2306": 1389, "2307": 1390, "2308": 1391, "2309": 1392, "2310": 1392, "2311": 1392, "2312": 1392, "2313": 1392, "2314": 1393, "2315": 1393, "2316": 1394, "2317": 1394, "2318": 1395, "2319": 1396, "2320": 1397, "2321": 1398, "2322": 1399, "2323": 1400, "2324": 1400, "2325": 1401, "2326": 1402, "2327": 1403, "2328": 1403, "2329": 1403, "2330": 1404, "2331": 1405, "2332": 1406, "2333": 1406, "2334": 1407, "2335": 1408, "2336": 1408, "2337": 1409, "2338": 1410, "2339": 1411, "2340": 1412, "2341": 1412, "2342": 1412, "2343": 1413, "2344": 1414, "2345": 1414, "2346": 1414, "2347": 1414, "2348": 1414, "2349": 1414, "2350": 1415, "2351": 1416, "2352": 1417, "2353": 1418, "2354": 1419, "2355": 1419, "2356": 1419, "2357": 1419, "2358": 1420, "2359": 1421, "2360": 1422, "2361": 1423, "2362": 1424, "2363": 1425, "2364": 1425, "2365": 1426, "2366": 1426, "2367": 1427, "2368": 1428, "2369": 1429, "2370": 1429, "2371": 1430, "2372": 1430, "2373": 1431, "2374": 1432, "2375": 1432, "2376": 1433, "2377": 1434, "2378": 1435, "2379": 1436, "2380": 1436, "2381": 1436, "2382": 1437, "2383": 1438, "2384": 1439, "2385": 1439, "2386": 1440, "2387": 1441, "2388": 1442, "2389": 1443, "2390": 1444, "2391": 1444, "2392": 1444, "2393": 1444, "2394": 1444, "2395": 1445, "2396": 1446, "2397": 1446, "2398": 1446, "2399": 1446, "2400": 1446, "2401": 1447, "2402": 1447, "2403": 1448, "2404": 1449, "2405": 1449, "2406": 1450, "2407": 1451, "2408": 1452, "2409": 1453, "2410": 1454, "2411": 1455, "2412": 1455, "2413": 1456, "2414": 1456, "2415": 1456, "2416": 1457, "2417": 1458, "2418": 1459, "2419": 1459, "2420": 1460, "2421": 1461, "2422": 1462, "2423": 1462, "2424": 1463, "2425": 1464, "2426": 1465, "2427": 1466, "2428": 1467, "2429": 1467, "2430": 1468, "2431": 1468, "2432": 1469, "2433": 1470, "2434": 1471, "2435": 1471, "2436": 1472, "2437": 1473, "2438": 1474, "2439": 1475, "2440": 1476, "2441": 1477, "2442": 1477, "2443": 1477, "2444": 1477, "2445": 1477, "2446": 1478, "2447": 1478, "2448": 1479, "2449": 1480, "2450": 1481, "2451": 1482, "2452": 1483, "2453": 1484, "2454": 1485, "2455": 1485, "2456": 1486, "2457": 1486, "2458": 1487, "2459": 1488, "2460": 1488, "2461": 1488, "2462": 1489, "2463": 1490, "2464": 1491, "2465": 1491, "2466": 1492, "2467": 1492, "2468": 1493, "2469": 1494, "2470": 1495, "2471": 1496, "2472": 1497, "2473": 1498, "2474": 1499, "2475": 1500, "2476": 1501, "2477": 1502, "2478": 1503, "2479": 1504, "2480": 1504, "2481": 1504, "2482": 1505, "2483": 1506, "2484": 1507, "2485": 1508, "2486": 1508, "2487": 1509, "2488": 1510, "2489": 1510, "2490": 1510, "2491": 1511, "2492": 1512, "2493": 1513, "2494": 1514, "2495": 1515, "2496": 1515, "2497": 1516, "2498": 1517, "2499": 1518, "2500": 1519, "2501": 1520, "2502": 1521, "2503": 1522, "2504": 1523, "2505": 1524, "2506": 1525, "2507": 1526, "2508": 1526, "2509": 1527, "2510": 1528, "2511": 1529, "2512": 1530, "2513": 1530, "2514": 1531, "2515": 1532, "2516": 1532, "2517": 1533, "2518": 1534, "2519": 1535, "2520": 1536, "2521": 1536, "2522": 1536, "2523": 1537, "2524": 1538, "2525": 1539, "2526": 1540, "2527": 1541, "2528": 1542, "2529": 1543, "2530": 1543, "2531": 1544, "2532": 1545, "2533": 1545, "2534": 1546, "2535": 1547, "2536": 1548, "2537": 1548, "2538": 1549, "2539": 1549, "2540": 1550, "2541": 1551, "2542": 1551, "2543": 1551, "2544": 1552, "2545": 1552, "2546": 1552, "2547": 1553, "2548": 1554, "2549": 1555, "2550": 1555, "2551": 1556, "2552": 1556, "2553": 1557, "2554": 1558, "2555": 1559, "2556": 1560, "2557": 1560, "2558": 1560, "2559": 1560, "2560": 1560, "2561": 1561, "2562": 1562, "2563": 1563, "2564": 1564, "2565": 1565, "2566": 1566, "2567": 1566, "2568": 1567, "2569": 1568, "2570": 1568, "2571": 1569, "2572": 1570, "2573": 1570, "2574": 1571, "2575": 1571, "2576": 1572, "2577": 1573, "2578": 1574, "2579": 1575, "2580": 1575, "2581": 1576, "2582": 1577, "2583": 1577, "2584": 1577, "2585": 1578, "2586": 1579, "2587": 1579, "2588": 1580, "2589": 1581, "2590": 1582, "2591": 1582, "2592": 1583, "2593": 1583, "2594": 1583, "2595": 1583, "2596": 1583, "2597": 1584, "2598": 1584, "2599": 1585, "2600": 1586, "2601": 1587, "2602": 1588, "2603": 1588, "2604": 1588, "2605": 1589, "2606": 1589, "2607": 1589, "2608": 1590, "2609": 1591, "2610": 1591, "2611": 1592, "2612": 1593, "2613": 1593, "2614": 1594, "2615": 1595, "2616": 1595, "2617": 1595, "2618": 1595, "2619": 1595, "2620": 1596, "2621": 1596, "2622": 1596, "2623": 1597, "2624": 1597, "2625": 1597, "2626": 1597, "2627": 1598, "2628": 1598, "2629": 1599, "2630": 1600, "2631": 1601, "2632": 1601, "2633": 1601, "2634": 1602, "2635": 1602, "2636": 1602, "2637": 1603, "2638": 1604, "2639": 1605, "2640": 1605, "2641": 1606, "2642": 1607, "2643": 1607, "2644": 1608, "2645": 1609, "2646": 1610, "2647": 1611, "2648": 1612, "2649": 1612, "2650": 1613, "2651": 1614, "2652": 1615, "2653": 1616, "2654": 1617, "2655": 1618, "2656": 1619, "2657": 1620, "2658": 1620, "2659": 1621, "2660": 1622, "2661": 1622, "2662": 1623, "2663": 1624, "2664": 1625, "2665": 1626, "2666": 1626, "2667": 1626, "2668": 1626, "2669": 1626, "2670": 1626, "2671": 1627, "2672": 1628, "2673": 1628, "2674": 1629, "2675": 1629, "2676": 1630, "2677": 1631, "2678": 1632, "2679": 1633, "2680": 1634, "2681": 1634, "2682": 1635, "2683": 1636, "2684": 1636, "2685": 1637, "2686": 1638, "2687": 1639, "2688": 1640, "2689": 1641, "2690": 1641, "2691": 1642, "2692": 1643, "2693": 1643, "2694": 1643, "2695": 1643, "2696": 1644, "2697": 1644, "2698": 1645, "2699": 1646, "2700": 1647, "2701": 1648, "2702": 1649, "2703": 1649, "2704": 1650, "2705": 1651, "2706": 1651, "2707": 1651, "2708": 1651, "2709": 1651, "2710": 1651, "2711": 1652, "2712": 1652, "2713": 1653, "2714": 1654, "2715": 1655, "2716": 1656, "2717": 1656, "2718": 1656, "2719": 1656, "2720": 1656, "2721": 1657, "2722": 1658, "2723": 1659, "2724": 1660, "2725": 1661, "2726": 1662, "2727": 1663, "2728": 1664, "2729": 1665, "2730": 1665, "2731": 1665, "2732": 1666, "2733": 1667, "2734": 1668, "2735": 1669, "2736": 1669, "2737": 1669, "2738": 1670, "2739": 1671, "2740": 1671, "2741": 1672, "2742": 1673, "2743": 1674, "2744": 1675, "2745": 1676, "2746": 1676, "2747": 1677, "2748": 1677, "2749": 1677, "2750": 1677, "2751": 1678, "2752": 1678, "2753": 1679, "2754": 1679, "2755": 1680, "2756": 1680, "2757": 1680, "2758": 1681, "2759": 1682, "2760": 1682, "2761": 1682, "2762": 1682, "2763": 1682, "2764": 1683, "2765": 1684, "2766": 1685, "2767": 1686, "2768": 1686, "2769": 1687, "2770": 1687, "2771": 1687, "2772": 1688, "2773": 1689, "2774": 1690, "2775": 1691, "2776": 1692, "2777": 1692, "2778": 1692, "2779": 1693, "2780": 1693, "2781": 1694, "2782": 1694, "2783": 1695, "2784": 1695, "2785": 1695, "2786": 1695, "2787": 1695, "2788": 1696, "2789": 1697, "2790": 1698, "2791": 1698, "2792": 1698, "2793": 1699, "2794": 1699, "2795": 1700, "2796": 1700, "2797": 1701, "2798": 1701, "2799": 1701, "2800": 1702, "2801": 1703, "2802": 1703, "2803": 1703, "2804": 1704, "2805": 1705, "2806": 1706, "2807": 1707, "2808": 1708, "2809": 1708, "2810": 1709, "2811": 1709, "2812": 1710, "2813": 1710, "2814": 1711, "2815": 1712, "2816": 1713, "2817": 1713, "2818": 1714, "2819": 1715, "2820": 1715, "2821": 1716, "2822": 1717, "2823": 1717, "2824": 1717, "2825": 1718, "2826": 1719, "2827": 1720, "2828": 1721, "2829": 1721, "2830": 1721, "2831": 1721, "2832": 1722, "2833": 1723, "2834": 1724, "2835": 1724, "2836": 1724, "2837": 1724, "2838": 1724, "2839": 1724, "2840": 1725, "2841": 1726, "2842": 1726, "2843": 1727, "2844": 1728, "2845": 1728, "2846": 1729, "2847": 1730, "2848": 1731, "2849": 1731, "2850": 1731, "2851": 1732, "2852": 1732, "2853": 1733, "2854": 1734, "2855": 1734, "2856": 1735, "2857": 1736, "2858": 1736, "2859": 1736, "2860": 1736, "2861": 1736, "2862": 1737, "2863": 1738, "2864": 1739, "2865": 1740, "2866": 1741, "2867": 1741, "2868": 1741, "2869": 1741, "2870": 1741, "2871": 1741, "2872": 1741, "2873": 1742, "2874": 1743, "2875": 1743, "2876": 1743, "2877": 1744, "2878": 1744, "2879": 1744, "2880": 1745, "2881": 1746, "2882": 1747, "2883": 1747, "2884": 1747, "2885": 1748, "2886": 1749, "2887": 1750, "2888": 1751, "2889": 1752, "2890": 1752, "2891": 1752, "2892": 1752, "2893": 1753, "2894": 1753, "2895": 1753, "2896": 1754, "2897": 1754, "2898": 1755, "2899": 1756, "2900": 1757, "2901": 1758, "2902": 1758, "2903": 1759, "2904": 1760, "2905": 1761, "2906": 1761, "2907": 1762, "2908": 1763, "2909": 1764, "2910": 1764, "2911": 1765, "2912": 1765, "2913": 1766, "2914": 1767, "2915": 1767, "2916": 1768, "2917": 1768, "2918": 1768, "2919": 1769, "2920": 1770, "2921": 1771, "2922": 1772, "2923": 1772, "2924": 1772, "2925": 1773, "2926": 1773, "2927": 1773, "2928": 1773, "2929": 1773, "2930": 1774, "2931": 1775, "2932": 1775, "2933": 1776, "2934": 1777, "2935": 1778, "2936": 1779, "2937": 1780, "2938": 1781, "2939": 1782, "2940": 1783, "2941": 1784, "2942": 1784, "2943": 1785, "2944": 1786, "2945": 1787, "2946": 1787, "2947": 1787, "2948": 1787, "2949": 1787, "2950": 1788, "2951": 1789, "2952": 1789, "2953": 1790, "2954": 1791, "2955": 1791, "2956": 1792, "2957": 1793, "2958": 1794, "2959": 1795, "2960": 1796, "2961": 1797, "2962": 1797, "2963": 1797, "2964": 1797, "2965": 1797, "2966": 1798, "2967": 1798, "2968": 1799, "2969": 1800, "2970": 1801, "2971": 1802, "2972": 1803, "2973": 1804, "2974": 1805, "2975": 1806, "2976": 1806, "2977": 1806, "2978": 1807, "2979": 1808, "2980": 1809, "2981": 1809, "2982": 1809, "2983": 1810, "2984": 1811, "2985": 1812, "2986": 1812, "2987": 1812, "2988": 1813, "2989": 1814, "2990": 1815, "2991": 1816, "2992": 1816, "2993": 1816, "2994": 1816, "2995": 1816, "2996": 1817, "2997": 1818, "2998": 1819, "2999": 1820, "3000": 1821, "3001": 1822, "3002": 1823, "3003": 1824, "3004": 1825, "3005": 1826, "3006": 1827, "3007": 1828, "3008": 1829, "3009": 1829, "3010": 1830, "3011": 1831, "3012": 1832, "3013": 1833, "3014": 1833, "3015": 1834, "3016": 1834, "3017": 1835, "3018": 1835, "3019": 1836, "3020": 1837, "3021": 1837, "3022": 1838, "3023": 1838, "3024": 1839, "3025": 1840, "3026": 1840, "3027": 1841, "3028": 1842, "3029": 1843, "3030": 1844, "3031": 1845, "3032": 1846, "3033": 1847, "3034": 1848, "3035": 1849, "3036": 1850, "3037": 1851, "3038": 1852, "3039": 1852, "3040": 1852, "3041": 1853, "3042": 1854, "3043": 1854, "3044": 1855, "3045": 1856, "3046": 1857, "3047": 1858, "3048": 1859, "3049": 1859, "3050": 1860, "3051": 1860, "3052": 1860, "3053": 1861, "3054": 1862, "3055": 1863, "3056": 1864, "3057": 1864, "3058": 1864, "3059": 1865, "3060": 1866, "3061": 1866, "3062": 1866, "3063": 1867, "3064": 1867, "3065": 1867, "3066": 1867, "3067": 1867, "3068": 1867, "3069": 1868, "3070": 1869, "3071": 1870, "3072": 1871, "3073": 1872, "3074": 1873, "3075": 1874, "3076": 1875, "3077": 1876, "3078": 1877, "3079": 1878, "3080": 1878, "3081": 1879, "3082": 1879, "3083": 1880, "3084": 1881, "3085": 1881, "3086": 1882, "3087": 1883, "3088": 1884, "3089": 1885, "3090": 1886, "3091": 1886, "3092": 1886, "3093": 1886, "3094": 1886, "3095": 1886, "3096": 1886, "3097": 1886, "3098": 1886, "3099": 1886, "3100": 1886, "3101": 1886, "3102": 1886, "3103": 1886, "3104": 1886, "3105": 1886, "3106": 1886, "3107": 1886, "3108": 1886, "3109": 1886, "3110": 1886, "3111": 1887, "3112": 1888, "3113": 1889, "3114": 1890, "3115": 1891, "3116": 1892, "3117": 1893, "3118": 1894, "3119": 1895, "3120": 1895, "3121": 1896, "3122": 1897, "3123": 1897, "3124": 1898, "3125": 1899, "3126": 1899, "3127": 1899, "3128": 1900, "3129": 1901, "3130": 1902, "3131": 1903, "3132": 1904, "3133": 1905, "3134": 1906, "3135": 1906, "3136": 1906, "3137": 1906, "3138": 1906, "3139": 1907, "3140": 1908, "3141": 1908, "3142": 1908, "3143": 1908, "3144": 1908, "3145": 1909, "3146": 1910, "3147": 1911, "3148": 1911, "3149": 1911, "3150": 1911, "3151": 1911, "3152": 1912, "3153": 1913, "3154": 1914, "3155": 1914, "3156": 1915, "3157": 1915, "3158": 1915, "3159": 1915, "3160": 1916, "3161": 1916, "3162": 1916, "3163": 1916, "3164": 1916, "3165": 1916, "3166": 1916, "3167": 1916, "3168": 1916, "3169": 1917, "3170": 1918, "3171": 1919, "3172": 1919, "3173": 1920, "3174": 1920, "3175": 1920, "3176": 1920, "3177": 1920, "3178": 1920, "3179": 1920, "3180": 1920, "3181": 1920, "3182": 1920, "3183": 1920, "3184": 1920, "3185": 1920, "3186": 1920, "3187": 1920, "3188": 1920, "3189": 1920, "3190": 1920, "3191": 1920, "3192": 1921, "3193": 1922, "3194": 1923, "3195": 1923, "3196": 1924, "3197": 1925, "3198": 1925, "3199": 1926, "3200": 1927, "3201": 1927, "3202": 1927, "3203": 1928, "3204": 1928, "3205": 1929, "3206": 1929, "3207": 1930, "3208": 1931, "3209": 1932, "3210": 1933, "3211": 1933, "3212": 1933, "3213": 1934, "3214": 1935, "3215": 1936, "3216": 1937, "3217": 1938, "3218": 1939, "3219": 1939, "3220": 1939, "3221": 1939, "3222": 1939, "3223": 1939, "3224": 1939, "3225": 1939, "3226": 1939, "3227": 1939, "3228": 1939, "3229": 1939, "3230": 1939, "3231": 1939, "3232": 1939, "3233": 1939, "3234": 1939, "3235": 1939, "3236": 1939, "3237": 1939, "3238": 1939, "3239": 1939, "3240": 1939, "3241": 1939, "3242": 1939, "3243": 1939, "3244": 1939, "3245": 1939, "3246": 1939, "3247": 1939, "3248": 1939, "3249": 1939, "3250": 1939, "3251": 1939, "3252": 1939, "3253": 1939, "3254": 1939, "3255": 1939, "3256": 1939, "3257": 1939, "3258": 1939, "3259": 1939, "3260": 1940, "3261": 1940, "3262": 1940, "3263": 1940, "3264": 1940, "3265": 1940, "3266": 1940, "3267": 1940, "3268": 1941, "3269": 1942, "3270": 1942, "3271": 1943, "3272": 1943, "3273": 1944, "3274": 1945, "3275": 1946, "3276": 1947, "3277": 1948, "3278": 1949, "3279": 1950, "3280": 1951, "3281": 1952, "3282": 1953, "3283": 1954, "3284": 1954, "3285": 1955, "3286": 1956, "3287": 1957, "3288": 1957, "3289": 1957, "3290": 1957, "3291": 1957, "3292": 1957, "3293": 1957, "3294": 1957, "3295": 1957, "3296": 1957, "3297": 1957, "3298": 1957, "3299": 1957, "3300": 1958, "3301": 1958, "3302": 1958, "3303": 1958, "3304": 1958, "3305": 1959, "3306": 1959, "3307": 1959, "3308": 1959, "3309": 1959, "3310": 1959, "3311": 1959, "3312": 1960, "3313": 1961, "3314": 1961, "3315": 1962, "3316": 1963, "3317": 1964, "3318": 1964, "3319": 1965, "3320": 1965, "3321": 1966, "3322": 1967, "3323": 1967, "3324": 1967, "3325": 1967, "3326": 1968, "3327": 1969, "3328": 1970, "3329": 1971, "3330": 1971, "3331": 1971, "3332": 1972, "3333": 1973, "3334": 1973, "3335": 1974, "3336": 1975, "3337": 1976, "3338": 1976, "3339": 1976, "3340": 1976, "3341": 1976, "3342": 1976, "3343": 1976, "3344": 1976, "3345": 1976, "3346": 1976, "3347": 1976, "3348": 1976, "3349": 1976, "3350": 1976, "3351": 1976, "3352": 1976, "3353": 1976, "3354": 1976, "3355": 1976, "3356": 1976, "3357": 1976, "3358": 1976, "3359": 1976, "3360": 1976, "3361": 1976, "3362": 1976, "3363": 1976, "3364": 1976, "3365": 1976, "3366": 1976, "3367": 1976, "3368": 1976, "3369": 1976, "3370": 1976, "3371": 1976, "3372": 1976, "3373": 1976, "3374": 1976, "3375": 1976, "3376": 1976, "3377": 1976, "3378": 1976, "3379": 1976, "3380": 1976, "3381": 1976, "3382": 1977, "3383": 1978, "3384": 1979, "3385": 1980, "3386": 1981, "3387": 1982, "3388": 1983, "3389": 1984, "3390": 1985, "3391": 1985, "3392": 1986, "3393": 1987, "3394": 1987, "3395": 1987, "3396": 1987, "3397": 1988, "3398": 1989, "3399": 1990, "3400": 1991, "3401": 1991, "3402": 1992, "3403": 1993, "3404": 1994, "3405": 1995, "3406": 1996, "3407": 1996, "3408": 1997, "3409": 1998, "3410": 1998, "3411": 1999, "3412": 2000, "3413": 2001, "3414": 2002, "3415": 2002, "3416": 2002, "3417": 2002, "3418": 2002, "3419": 2002, "3420": 2002, "3421": 2002, "3422": 2003, "3423": 2004, "3424": 2005, "3425": 2006, "3426": 2007, "3427": 2008, "3428": 2008, "3429": 2009, "3430": 2010, "3431": 2011, "3432": 2011, "3433": 2011, "3434": 2011, "3435": 2011, "3436": 2012, "3437": 2013, "3438": 2014, "3439": 2015, "3440": 2015, "3441": 2015, "3442": 2015, "3443": 2016, "3444": 2017, "3445": 2018, "3446": 2018, "3447": 2019, "3448": 2020, "3449": 2020, "3450": 2020, "3451": 2020, "3452": 2021, "3453": 2022, "3454": 2023, "3455": 2024, "3456": 2025, "3457": 2026, "3458": 2027, "3459": 2028, "3460": 2029, "3461": 2030, "3462": 2030, "3463": 2031, "3464": 2031, "3465": 2031, "3466": 2031, "3467": 2031, "3468": 2032, "3469": 2033, "3470": 2034, "3471": 2035, "3472": 2035, "3473": 2036, "3474": 2037, "3475": 2038, "3476": 2039, "3477": 2040, "3478": 2041, "3479": 2042, "3480": 2042, "3481": 2042, "3482": 2043, "3483": 2044, "3484": 2045, "3485": 2046, "3486": 2047, "3487": 2047, "3488": 2048, "3489": 2049, "3490": 2049, "3491": 2050, "3492": 2050, "3493": 2051, "3494": 2052, "3495": 2053, "3496": 2054, "3497": 2055, "3498": 2056, "3499": 2057, "3500": 2058, "3501": 2059, "3502": 2060, "3503": 2061, "3504": 2061, "3505": 2061, "3506": 2062, "3507": 2062, "3508": 2062, "3509": 2063, "3510": 2064, "3511": 2065, "3512": 2065, "3513": 2066, "3514": 2067, "3515": 2068, "3516": 2069, "3517": 2070, "3518": 2071, "3519": 2071, "3520": 2072, "3521": 2073, "3522": 2074, "3523": 2075, "3524": 2076, "3525": 2076, "3526": 2077, "3527": 2077, "3528": 2078, "3529": 2078, "3530": 2079, "3531": 2079, "3532": 2079, "3533": 2079, "3534": 2079, "3535": 2079, "3536": 2079, "3537": 2079, "3538": 2079, "3539": 2079, "3540": 2079, "3541": 2079, "3542": 2079, "3543": 2079, "3544": 2079, "3545": 2080, "3546": 2081, "3547": 2082, "3548": 2082, "3549": 2083, "3550": 2083, "3551": 2083, "3552": 2084, "3553": 2085, "3554": 2085, "3555": 2086, "3556": 2086, "3557": 2086, "3558": 2087, "3559": 2087, "3560": 2088, "3561": 2089, "3562": 2089, "3563": 2089, "3564": 2090, "3565": 2091, "3566": 2092, "3567": 2093, "3568": 2094, "3569": 2094, "3570": 2095, "3571": 2096, "3572": 2096, "3573": 2096, "3574": 2096, "3575": 2096, "3576": 2096, "3577": 2096, "3578": 2096, "3579": 2096, "3580": 2096, "3581": 2096, "3582": 2096, "3583": 2096, "3584": 2097, "3585": 2097, "3586": 2098, "3587": 2098, "3588": 2099, "3589": 2099, "3590": 2099, "3591": 2099, "3592": 2099, "3593": 2099, "3594": 2099, "3595": 2099, "3596": 2099, "3597": 2099, "3598": 2099, "3599": 2099, "3600": 2099, "3601": 2100, "3602": 2100, "3603": 2101, "3604": 2101, "3605": 2102, "3606": 2102, "3607": 2103, "3608": 2103, "3609": 2103, "3610": 2104, "3611": 2105, "3612": 2106, "3613": 2106, "3614": 2107, "3615": 2108, "3616": 2109, "3617": 2110, "3618": 2110, "3619": 2110, "3620": 2110, "3621": 2110, "3622": 2110, "3623": 2110, "3624": 2111, "3625": 2112, "3626": 2112, "3627": 2112, "3628": 2113, "3629": 2114, "3630": 2115, "3631": 2116, "3632": 2117, "3633": 2118, "3634": 2118, "3635": 2118, "3636": 2118, "3637": 2118, "3638": 2118, "3639": 2118, "3640": 2119, "3641": 2120, "3642": 2121, "3643": 2122, "3644": 2123, "3645": 2123, "3646": 2124, "3647": 2125, "3648": 2126, "3649": 2126, "3650": 2126, "3651": 2127, "3652": 2128, "3653": 2129, "3654": 2130, "3655": 2131, "3656": 2131, "3657": 2131, "3658": 2132, "3659": 2133, "3660": 2133, "3661": 2134, "3662": 2134, "3663": 2134, "3664": 2135, "3665": 2136, "3666": 2137, "3667": 2138, "3668": 2139, "3669": 2139, "3670": 2139, "3671": 2139, "3672": 2140, "3673": 2140, "3674": 2140, "3675": 2140, "3676": 2140, "3677": 2140, "3678": 2140, "3679": 2140, "3680": 2140, "3681": 2140, "3682": 2140, "3683": 2140, "3684": 2140, "3685": 2140, "3686": 2141, "3687": 2142, "3688": 2143, "3689": 2144, "3690": 2145, "3691": 2146, "3692": 2147, "3693": 2148, "3694": 2149, "3695": 2150, "3696": 2150, "3697": 2150, "3698": 2151, "3699": 2152, "3700": 2153, "3701": 2154, "3702": 2155, "3703": 2156, "3704": 2157, "3705": 2158, "3706": 2159, "3707": 2159, "3708": 2160, "3709": 2161, "3710": 2162, "3711": 2163, "3712": 2163, "3713": 2163, "3714": 2163, "3715": 2163, "3716": 2163, "3717": 2163, "3718": 2163, "3719": 2163, "3720": 2164, "3721": 2164, "3722": 2165, "3723": 2166, "3724": 2167, "3725": 2168, "3726": 2168, "3727": 2168, "3728": 2169, "3729": 2169, "3730": 2170, "3731": 2170, "3732": 2170, "3733": 2171, "3734": 2172, "3735": 2173, "3736": 2173, "3737": 2173, "3738": 2174, "3739": 2174, "3740": 2175, "3741": 2175, "3742": 2175, "3743": 2176, "3744": 2176, "3745": 2176, "3746": 2177, "3747": 2178, "3748": 2179, "3749": 2180, "3750": 2180, "3751": 2180, "3752": 2180, "3753": 2181, "3754": 2182, "3755": 2183, "3756": 2184, "3757": 2185, "3758": 2186, "3759": 2186, "3760": 2187, "3761": 2188, "3762": 2189, "3763": 2190, "3764": 2190, "3765": 2191, "3766": 2192, "3767": 2193, "3768": 2194, "3769": 2194, "3770": 2194, "3771": 2194, "3772": 2195, "3773": 2196, "3774": 2197, "3775": 2198, "3776": 2198, "3777": 2198, "3778": 2198, "3779": 2199, "3780": 2200, "3781": 2200, "3782": 2200, "3783": 2200, "3784": 2200, "3785": 2200, "3786": 2201, "3787": 2201, "3788": 2201, "3789": 2201, "3790": 2201, "3791": 2201, "3792": 2202, "3793": 2203, "3794": 2204, "3795": 2204, "3796": 2205, "3797": 2206, "3798": 2207, "3799": 2207, "3800": 2207, "3801": 2208, "3802": 2208, "3803": 2208, "3804": 2208, "3805": 2208, "3806": 2208, "3807": 2208, "3808": 2209, "3809": 2210, "3810": 2211, "3811": 2211, "3812": 2212, "3813": 2213, "3814": 2213, "3815": 2214, "3816": 2214, "3817": 2215, "3818": 2216, "3819": 2217, "3820": 2217, "3821": 2218, "3822": 2219, "3823": 2220, "3824": 2221, "3825": 2222, "3826": 2223, "3827": 2224, "3828": 2224, "3829": 2224, "3830": 2225, "3831": 2226, "3832": 2227, "3833": 2228, "3834": 2229, "3835": 2229, "3836": 2230, "3837": 2231, "3838": 2231, "3839": 2231, "3840": 2231, "3841": 2231, "3842": 2232, "3843": 2233, "3844": 2233, "3845": 2233, "3846": 2233, "3847": 2233, "3848": 2233, "3849": 2233, "3850": 2233, "3851": 2233, "3852": 2233, "3853": 2233, "3854": 2233, "3855": 2234, "3856": 2235, "3857": 2236, "3858": 2237, "3859": 2238, "3860": 2239, "3861": 2240, "3862": 2241, "3863": 2242, "3864": 2242, "3865": 2243, "3866": 2243, "3867": 2243, "3868": 2244, "3869": 2245, "3870": 2245, "3871": 2246, "3872": 2246, "3873": 2246, "3874": 2246, "3875": 2246, "3876": 2246, "3877": 2246, "3878": 2246, "3879": 2246, "3880": 2246, "3881": 2246, "3882": 2246, "3883": 2246, "3884": 2247, "3885": 2248, "3886": 2249, "3887": 2249, "3888": 2249, "3889": 2249, "3890": 2249, "3891": 2249, "3892": 2249, "3893": 2249, "3894": 2249, "3895": 2249, "3896": 2249, "3897": 2249, "3898": 2249, "3899": 2249, "3900": 2249, "3901": 2249, "3902": 2249, "3903": 2249, "3904": 2249, "3905": 2249, "3906": 2249, "3907": 2249, "3908": 2249, "3909": 2249, "3910": 2249, "3911": 2249, "3912": 2249, "3913": 2249, "3914": 2249, "3915": 2249, "3916": 2249, "3917": 2249, "3918": 2249, "3919": 2249, "3920": 2249, "3921": 2249, "3922": 2250, "3923": 2251, "3924": 2252, "3925": 2252, "3926": 2252, "3927": 2253, "3928": 2254, "3929": 2255, "3930": 2255, "3931": 2255, "3932": 2256, "3933": 2256, "3934": 2257, "3935": 2258, "3936": 2259, "3937": 2259, "3938": 2259, "3939": 2260, "3940": 2261, "3941": 2262, "3942": 2263, "3943": 2264, "3944": 2264, "3945": 2264, "3946": 2264, "3947": 2264, "3948": 2264, "3949": 2264, "3950": 2264, "3951": 2264, "3952": 2264, "3953": 2265, "3954": 2266, "3955": 2267, "3956": 2267, "3957": 2268, "3958": 2268, "3959": 2269, "3960": 2269, "3961": 2269, "3962": 2270, "3963": 2271, "3964": 2272, "3965": 2273, "3966": 2274, "3967": 2274, "3968": 2274, "3969": 2274, "3970": 2274, "3971": 2274, "3972": 2274, "3973": 2274, "3974": 2274, "3975": 2274, "3976": 2275, "3977": 2275, "3978": 2276}
--------------------------------------------------------------------------------
/splitter.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benedekrozemberczki/Splitter/2d53bbdbfe7ba99fe92d39ee7c1bf7c48ce96003/splitter.gif
--------------------------------------------------------------------------------
/splitter.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benedekrozemberczki/Splitter/2d53bbdbfe7ba99fe92d39ee7c1bf7c48ce96003/splitter.jpg
--------------------------------------------------------------------------------
/src/ego_splitting.py:
--------------------------------------------------------------------------------
1 | """Ego-Splitter class"""
2 |
3 | import community
4 | import networkx as nx
5 | from tqdm import tqdm
6 |
7 |
8 | class EgoNetSplitter(object):
9 | """An implementation of `"Ego-Splitting" see:
10 | https://www.eecs.yorku.ca/course_archive/2017-18/F/6412/reading/kdd17p145.pdf
11 | From the KDD '17 paper "Ego-Splitting Framework: from Non-Overlapping to Overlapping Clusters".
12 | The tool first creates the egonets of nodes.
13 | A persona-graph is created which is clustered by the Louvain method.
14 | The resulting overlapping cluster memberships are stored as a dictionary.
15 | Args:
16 | resolution (float): Resolution parameter of Python Louvain. Default 1.0.
17 | """
18 | def __init__(self, resolution=1.0):
19 | self.resolution = resolution
20 |
21 | def _create_egonet(self, node):
22 | """
23 | Creating an ego net, extracting personas and partitioning it.
24 | Args:
25 | node: Node ID for egonet (ego node).
26 | """
27 | ego_net_minus_ego = self.graph.subgraph(self.graph.neighbors(node))
28 | components = {i: n for i, n in enumerate(nx.connected_components(ego_net_minus_ego))}
29 | new_mapping = {}
30 | personalities = []
31 | for k, v in components.items():
32 | personalities.append(self.index)
33 | for other_node in v:
34 | new_mapping[other_node] = self.index
35 | self.index = self.index+1
36 | self.components[node] = new_mapping
37 | self.personalities[node] = personalities
38 |
39 | def _create_egonets(self):
40 | """
41 | Creating an egonet for each node.
42 | """
43 | self.components = {}
44 | self.personalities = {}
45 | self.index = 0
46 | print("Creating egonets.")
47 | for node in tqdm(self.graph.nodes()):
48 | self._create_egonet(node)
49 |
50 | def _map_personalities(self):
51 | """
52 | Mapping the personas to new nodes.
53 | """
54 | self.personality_map = {p: n for n in self.graph.nodes() for p in self.personalities[n]}
55 |
56 | def _get_new_edge_ids(self, edge):
57 | """
58 | Getting the new edge identifiers.
59 | Args:
60 | edge: Edge being mapped to the new identifiers.
61 | """
62 | return (self.components[edge[0]][edge[1]], self.components[edge[1]][edge[0]])
63 |
64 | def _create_persona_graph(self):
65 | """
66 | Create a persona graph using the egonet components.
67 | """
68 | print("Creating the persona graph.")
69 | self.persona_graph_edges = [self._get_new_edge_ids(e) for e in tqdm(self.graph.edges())]
70 | self.persona_graph = nx.from_edgelist(self.persona_graph_edges)
71 |
72 | def _create_partitions(self):
73 | """
74 | Creating a non-overlapping clustering of nodes in the persona graph.
75 | """
76 | print("Clustering the persona graph.")
77 | self.partitions = community.best_partition(self.persona_graph, resolution=self.resolution)
78 | self.overlapping_partitions = {node: [] for node in self.graph.nodes()}
79 | for node, membership in self.partitions.items():
80 | self.overlapping_partitions[self.personality_map[node]].append(membership)
81 |
82 | def fit(self, graph):
83 | """
84 | Fitting an Ego-Splitter clustering model.
85 | Arg types:
86 | * **graph** *(NetworkX graph)* - The graph to be clustered.
87 | """
88 | self.graph = graph
89 | self._create_egonets()
90 | self._map_personalities()
91 | self._create_persona_graph()
92 | self._create_partitions()
93 |
94 | def get_memberships(self):
95 | r"""Getting the cluster membership of nodes.
96 | Return types:
97 | * **memberships** *(dictionary of lists)* - Cluster memberships.
98 | """
99 | return self.overlapping_partitions
100 |
--------------------------------------------------------------------------------
/src/main.py:
--------------------------------------------------------------------------------
1 | """Running the Splitter."""
2 |
3 | import torch
4 | from param_parser import parameter_parser
5 | from splitter import SplitterTrainer
6 | from utils import tab_printer, graph_reader
7 |
8 | def main():
9 | """
10 | Parsing command line parameters.
11 | Reading data, embedding base graph, creating persona graph and learning a splitter.
12 | Saving the persona mapping and the embedding.
13 | """
14 | args = parameter_parser()
15 | torch.manual_seed(args.seed)
16 | tab_printer(args)
17 | graph = graph_reader(args.edge_path)
18 | trainer = SplitterTrainer(graph, args)
19 | trainer.fit()
20 | trainer.save_embedding()
21 | trainer.save_persona_graph_mapping()
22 |
23 | if __name__ == "__main__":
24 | main()
25 |
--------------------------------------------------------------------------------
/src/param_parser.py:
--------------------------------------------------------------------------------
1 | """Parameter parsing."""
2 |
3 | import argparse
4 |
5 | def parameter_parser():
6 | """
7 | A method to parse up command line parameters.
8 | By default it trains on the Chameleons dataset.
9 | The default hyperparameters give a good quality representation without grid search.
10 | """
11 | parser = argparse.ArgumentParser(description="Run Splitter.")
12 |
13 | parser.add_argument("--edge-path",
14 | nargs="?",
15 | default="./input/chameleon_edges.csv",
16 | help="Edge list csv.")
17 |
18 | parser.add_argument("--embedding-output-path",
19 | nargs="?",
20 | default="./output/chameleon_embedding.csv",
21 | help="Embedding output path.")
22 |
23 | parser.add_argument("--persona-output-path",
24 | nargs="?",
25 | default="./output/chameleon_personas.json",
26 | help="Persona output path.")
27 |
28 | parser.add_argument("--number-of-walks",
29 | type=int,
30 | default=10,
31 | help="Number of random walks per source node. Default is 10.")
32 |
33 | parser.add_argument("--window-size",
34 | type=int,
35 | default=5,
36 | help="Skip-gram window size. Default is 5.")
37 |
38 | parser.add_argument("--negative-samples",
39 | type=int,
40 | default=5,
41 | help="Negative sample number. Default is 5.")
42 |
43 | parser.add_argument("--walk-length",
44 | type=int,
45 | default=40,
46 | help="Truncated random walk length. Default is 40.")
47 |
48 | parser.add_argument("--seed",
49 | type=int,
50 | default=42,
51 | help="Random seed for PyTorch. Default is 42.")
52 |
53 | parser.add_argument("--learning-rate",
54 | type=float,
55 | default=0.025,
56 | help="Learning rate. Default is 0.025.")
57 |
58 | parser.add_argument("--lambd",
59 | type=float,
60 | default=0.1,
61 | help="Regularization parameter. Default is 0.1.")
62 |
63 | parser.add_argument("--dimensions",
64 | type=int,
65 | default=128,
66 | help="Embedding dimensions. Default is 128.")
67 |
68 | parser.add_argument('--workers',
69 | type=int,
70 | default=4,
71 | help='Number of parallel workers. Default is 4.')
72 |
73 | return parser.parse_args()
74 |
--------------------------------------------------------------------------------
/src/splitter.py:
--------------------------------------------------------------------------------
1 | """Splitter Class."""
2 |
3 | import json
4 | import torch
5 | import random
6 | import numpy as np
7 | import pandas as pd
8 | from tqdm import trange
9 | from walkers import DeepWalker
10 | from ego_splitting import EgoNetSplitter
11 |
12 | class Splitter(torch.nn.Module):
13 | """
14 | An implementation of "Splitter: Learning Node Representations
15 | that Capture Multiple Social Contexts" (WWW 2019).
16 | Paper: http://epasto.org/papers/www2019splitter.pdf
17 | """
18 | def __init__(self, args, base_node_count, node_count):
19 | """
20 | Splitter set up.
21 | :param args: Arguments object.
22 | :param base_node_count: Number of nodes in the source graph.
23 | :param node_count: Number of nodes in the persona graph.
24 | """
25 | super(Splitter, self).__init__()
26 | self.args = args
27 | self.base_node_count = base_node_count
28 | self.node_count = node_count
29 |
30 | def create_weights(self):
31 | """
32 | Creating weights for embedding.
33 | """
34 | self.base_node_embedding = torch.nn.Embedding(self.base_node_count,
35 | self.args.dimensions,
36 | padding_idx=0)
37 |
38 | self.node_embedding = torch.nn.Embedding(self.node_count,
39 | self.args.dimensions,
40 | padding_idx=0)
41 |
42 | self.node_noise_embedding = torch.nn.Embedding(self.node_count,
43 | self.args.dimensions,
44 | padding_idx=0)
45 |
46 | def initialize_weights(self, base_node_embedding, mapping):
47 | """
48 | Using the base embedding and the persona mapping for initializing the embeddings.
49 | :param base_node_embedding: Node embedding of the source graph.
50 | :param mapping: Mapping of personas to nodes.
51 | """
52 | persona_embedding = np.array([base_node_embedding[n] for _, n in mapping.items()])
53 | self.node_embedding.weight.data = torch.nn.Parameter(torch.Tensor(persona_embedding))
54 | self.node_noise_embedding.weight.data = torch.nn.Parameter(torch.Tensor(persona_embedding))
55 | self.base_node_embedding.weight.data = torch.nn.Parameter(torch.Tensor(base_node_embedding),
56 | requires_grad=False)
57 |
58 | def calculate_main_loss(self, sources, contexts, targets):
59 | """
60 | Calculating the main embedding loss.
61 | :param sources: Source node vector.
62 | :param contexts: Context node vector.
63 | :param targets: Binary target vector.
64 | :return main_loss: Loss value.
65 | """
66 | node_f = self.node_embedding(sources)
67 | node_f = torch.nn.functional.normalize(node_f, p=2, dim=1)
68 | feature_f = self.node_noise_embedding(contexts)
69 | feature_f = torch.nn.functional.normalize(feature_f, p=2, dim=1)
70 | scores = torch.sum(node_f*feature_f, dim=1)
71 | scores = torch.sigmoid(scores)
72 | main_loss = targets*torch.log(scores)+(1-targets)*torch.log(1-scores)
73 | main_loss = -torch.mean(main_loss)
74 | return main_loss
75 |
76 | def calculate_regularization(self, pure_sources, personas):
77 | """
78 | Calculating the regularization loss.
79 | :param pure_sources: Source nodes in persona graph.
80 | :param personas: Context node vector.
81 | :return regularization_loss: Loss value.
82 | """
83 | source_f = self.node_embedding(pure_sources)
84 | original_f = self.base_node_embedding(personas)
85 | scores = torch.clamp(torch.sum(source_f*original_f, dim=1), -15, 15)
86 | scores = torch.sigmoid(scores)
87 | regularization_loss = -torch.mean(torch.log(scores))
88 | return regularization_loss
89 |
90 | def forward(self, sources, contexts, targets, personas, pure_sources):
91 | """
92 | Doing a forward pass.
93 | :param sources: Source node vector.
94 | :param contexts: Context node vector.
95 | :param targets: Binary target vector.
96 | :param pure_sources: Source nodes in persona graph.
97 | :param personas: Context node vector.
98 | :return loss: Loss value.
99 | """
100 | main_loss = self.calculate_main_loss(sources, contexts, targets)
101 | regularization_loss = self.calculate_regularization(pure_sources, personas)
102 | loss = main_loss + self.args.lambd*regularization_loss
103 | return loss
104 |
105 | class SplitterTrainer(object):
106 | """
107 | Class for training a Splitter.
108 | """
109 | def __init__(self, graph, args):
110 | """
111 | :param graph: NetworkX graph object.
112 | :param args: Arguments object.
113 | """
114 | self.graph = graph
115 | self.args = args
116 | self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
117 |
118 | def create_noises(self):
119 | """
120 | Creating node noise distribution for negative sampling.
121 | """
122 | self.downsampled_degrees = {}
123 | for n in self.egonet_splitter.persona_graph.nodes():
124 | self.downsampled_degrees[n] = int(1+self.egonet_splitter.persona_graph.degree(n)**0.75)
125 | self.noises = [k for k, v in self.downsampled_degrees.items() for i in range(v)]
126 |
127 | def base_model_fit(self):
128 | """
129 | Fitting DeepWalk on base model.
130 | """
131 | self.base_walker = DeepWalker(self.graph, self.args)
132 | print("\nDoing base random walks.\n")
133 | self.base_walker.create_features()
134 | print("\nLearning the base model.\n")
135 | self.base_node_embedding = self.base_walker.learn_base_embedding()
136 | print("\nDeleting the base walker.\n")
137 | del self.base_walker
138 |
139 | def create_split(self):
140 | """
141 | Creating an EgoNetSplitter.
142 | """
143 | self.egonet_splitter = EgoNetSplitter()
144 | self.egonet_splitter.fit(self.graph)
145 | self.persona_walker = DeepWalker(self.egonet_splitter.persona_graph, self.args)
146 | print("\nDoing persona random walks.\n")
147 | self.persona_walker.create_features()
148 | self.create_noises()
149 |
150 | def setup_model(self):
151 | """
152 | Creating a model and doing a transfer to GPU.
153 | """
154 | base_node_count = self.graph.number_of_nodes()
155 | persona_node_count = self.egonet_splitter.persona_graph.number_of_nodes()
156 | self.model = Splitter(self.args, base_node_count, persona_node_count)
157 | self.model.create_weights()
158 | self.model.initialize_weights(self.base_node_embedding,
159 | self.egonet_splitter.personality_map)
160 | self.model = self.model.to(self.device)
161 |
162 | def transfer_batch(self, source_nodes, context_nodes, targets, persona_nodes, pure_source_nodes):
163 | """
164 | Transfering the batch to GPU.
165 | """
166 | self.sources = torch.LongTensor(source_nodes).to(self.device)
167 | self.contexts = torch.LongTensor(context_nodes).to(self.device)
168 | self.targets = torch.FloatTensor(targets).to(self.device)
169 | self.personas = torch.LongTensor(persona_nodes).to(self.device)
170 | self.pure_sources = torch.LongTensor(pure_source_nodes).to(self.device)
171 |
172 | def optimize(self):
173 | """
174 | Doing a weight update.
175 | """
176 | loss = self.model(self.sources, self.contexts,
177 | self.targets, self.personas, self.pure_sources)
178 | loss.backward()
179 | self.optimizer.step()
180 | self.optimizer.zero_grad()
181 | return loss.item()
182 |
183 | def process_walk(self, walk):
184 | """
185 | Process random walk (source, context) pairs.
186 | Sample negative instances and create persona node list.
187 | :param walk: Random walk sequence.
188 | """
189 | left_nodes = [walk[i] for i in range(len(walk)-self.args.window_size) for j in range(1, self.args.window_size+1)]
190 | right_nodes = [walk[i+j] for i in range(len(walk)-self.args.window_size) for j in range(1, self.args.window_size+1)]
191 | node_pair_count = len(left_nodes)
192 | source_nodes = left_nodes + right_nodes
193 | context_nodes = right_nodes + left_nodes
194 | persona_nodes = np.array([self.egonet_splitter.personality_map[source_node] for source_node in source_nodes])
195 | pure_source_nodes = np.array(source_nodes)
196 | source_nodes = np.array((self.args.negative_samples+1)*source_nodes)
197 | noises = np.random.choice(self.noises, node_pair_count*2*self.args.negative_samples)
198 | context_nodes = np.concatenate((np.array(context_nodes), noises))
199 | positives = [1.0 for node in range(node_pair_count*2)]
200 | negatives = [0.0 for node in range(node_pair_count*self.args.negative_samples*2)]
201 | targets = np.array(positives + negatives)
202 | self.transfer_batch(source_nodes, context_nodes, targets, persona_nodes, pure_source_nodes)
203 |
204 | def update_average_loss(self, loss_score):
205 | """
206 | Updating the average loss and the description of the time remains bar.
207 | :param loss_score: Loss on the sample.
208 | """
209 | self.cummulative_loss = self.cummulative_loss + loss_score
210 | self.steps = self.steps + 1
211 | average_loss = self.cummulative_loss/self.steps
212 | self.walk_steps.set_description("Splitter (Loss=%g)" % round(average_loss, 4))
213 |
214 | def reset_average_loss(self, step):
215 | """
216 | Doing a reset on the average loss.
217 | :param step: Current number of walks processed.
218 | """
219 | if step % 100 == 0:
220 | self.cummulative_loss = 0
221 | self.steps = 0
222 |
223 | def fit(self):
224 | """
225 | Fitting a model.
226 | """
227 | self.base_model_fit()
228 | self.create_split()
229 | self.setup_model()
230 | self.model.train()
231 | self.optimizer = torch.optim.Adam(self.model.parameters(), lr=self.args.learning_rate)
232 | self.optimizer.zero_grad()
233 | print("\nLearning the joint model.\n")
234 | random.shuffle(self.persona_walker.paths)
235 | self.walk_steps = trange(len(self.persona_walker.paths), desc="Loss")
236 | for step in self.walk_steps:
237 | self.reset_average_loss(step)
238 | walk = self.persona_walker.paths[step]
239 | self.process_walk(walk)
240 | loss_score = self.optimize()
241 | self.update_average_loss(loss_score)
242 |
243 | def save_embedding(self):
244 | """
245 | Saving the node embedding.
246 | """
247 | print("\n\nSaving the model.\n")
248 | nodes = [node for node in self.egonet_splitter.persona_graph.nodes()]
249 | nodes.sort()
250 | nodes = torch.LongTensor(nodes).to(self.device)
251 | embedding = self.model.node_embedding(nodes).cpu().detach().numpy()
252 | embedding_header = ["id"] + ["x_" + str(x) for x in range(self.args.dimensions)]
253 | embedding = [np.array(range(embedding.shape[0])).reshape(-1, 1), embedding]
254 | embedding = np.concatenate(embedding, axis=1)
255 | embedding = pd.DataFrame(embedding, columns=embedding_header)
256 | embedding.to_csv(self.args.embedding_output_path, index=None)
257 |
258 | def save_persona_graph_mapping(self):
259 | """
260 | Saving the persona map.
261 | """
262 | with open(self.args.persona_output_path, "w") as f:
263 | json.dump(self.egonet_splitter.personality_map, f)
264 |
--------------------------------------------------------------------------------
/src/utils.py:
--------------------------------------------------------------------------------
1 | """Data reading and printing utils."""
2 |
3 | import pandas as pd
4 | import networkx as nx
5 | from texttable import Texttable
6 |
7 | def tab_printer(args):
8 | """
9 | Function to print the logs in a nice tabular format.
10 | :param args: Parameters used for the model.
11 | """
12 | args = vars(args)
13 | keys = sorted(args.keys())
14 | t = Texttable()
15 | t.add_rows([["Parameter", "Value"]])
16 | t.add_rows([[k.replace("_", " ").capitalize(), args[k]] for k in keys])
17 | print(t.draw())
18 |
19 | def graph_reader(path):
20 | """
21 | Function to read the graph from the path.
22 | :param path: Path to the edge list.
23 | :return graph: NetworkX object returned.
24 | """
25 | graph = nx.from_edgelist(pd.read_csv(path).values.tolist())
26 | graph.remove_edges_from(nx.selfloop_edges(graph))
27 | return graph
28 |
--------------------------------------------------------------------------------
/src/walkers.py:
--------------------------------------------------------------------------------
1 | """DeepWalker class."""
2 |
3 | import random
4 | import numpy as np
5 | from tqdm import tqdm
6 | import networkx as nx
7 | from gensim.models import Word2Vec
8 |
9 | class DeepWalker(object):
10 | """
11 | DeepWalk node embedding learner object.
12 | A barebones implementation of "DeepWalk: Online Learning of Social Representations".
13 | Paper: https://arxiv.org/abs/1403.6652
14 | Video: https://www.youtube.com/watch?v=aZNtHJwfIVg
15 | """
16 | def __init__(self, graph, args):
17 | """
18 | :param graph: NetworkX graph.
19 | :param args: Arguments object.
20 | """
21 | self.graph = graph
22 | self.args = args
23 |
24 | def do_walk(self, node):
25 | """
26 | Doing a single truncated random walk from a source node.
27 | :param node: Source node of the truncated random walk.
28 | :return walk: A single random walk.
29 | """
30 | walk = [node]
31 | while len(walk) < self.args.walk_length:
32 | nebs = [n for n in nx.neighbors(self.graph, walk[-1])]
33 | if len(nebs) == 0:
34 | break
35 | walk.append(random.choice(nebs))
36 | return walk
37 |
38 | def create_features(self):
39 | """
40 | Creating random walks from each node.
41 | """
42 | self.paths = []
43 | for node in tqdm(self.graph.nodes()):
44 | for _ in range(self.args.number_of_walks):
45 | walk = self.do_walk(node)
46 | self.paths.append(walk)
47 |
48 | def learn_base_embedding(self):
49 | """
50 | Learning an embedding of nodes in the base graph.
51 | :return self.embedding: Embedding of nodes in the latent space.
52 | """
53 | self.paths = [[str(node) for node in walk] for walk in self.paths]
54 |
55 | model = Word2Vec(self.paths,
56 | vector_size=self.args.dimensions,
57 | window=self.args.window_size,
58 | min_count=1,
59 | sg=1,
60 | workers=self.args.workers,
61 | iter=1)
62 |
63 | self.embedding = np.array([list(model[str(n)]) for n in self.graph.nodes()])
64 | return self.embedding
65 |
--------------------------------------------------------------------------------
/www2019splitter.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/benedekrozemberczki/Splitter/2d53bbdbfe7ba99fe92d39ee7c1bf7c48ce96003/www2019splitter.pdf
--------------------------------------------------------------------------------