@tsparticles/simplex-noise 3.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/browser/Classes/SimplexNoise2D.js +152 -0
  4. package/browser/Classes/SimplexNoise3D.js +528 -0
  5. package/browser/Classes/SimplexNoise4D.js +2867 -0
  6. package/browser/Contributions.js +1 -0
  7. package/browser/SimplexNoise.js +10 -0
  8. package/browser/index.js +1 -0
  9. package/browser/package.json +1 -0
  10. package/browser/utils.js +5 -0
  11. package/cjs/Classes/SimplexNoise2D.js +156 -0
  12. package/cjs/Classes/SimplexNoise3D.js +532 -0
  13. package/cjs/Classes/SimplexNoise4D.js +2871 -0
  14. package/cjs/Contributions.js +2 -0
  15. package/cjs/SimplexNoise.js +14 -0
  16. package/cjs/index.js +5 -0
  17. package/cjs/package.json +1 -0
  18. package/cjs/utils.js +9 -0
  19. package/esm/Classes/SimplexNoise2D.js +152 -0
  20. package/esm/Classes/SimplexNoise3D.js +528 -0
  21. package/esm/Classes/SimplexNoise4D.js +2867 -0
  22. package/esm/Contributions.js +1 -0
  23. package/esm/SimplexNoise.js +10 -0
  24. package/esm/index.js +1 -0
  25. package/esm/package.json +1 -0
  26. package/esm/utils.js +5 -0
  27. package/package.json +105 -0
  28. package/report.html +39 -0
  29. package/tsparticles.simplex.noise.js +457 -0
  30. package/tsparticles.simplex.noise.min.js +2 -0
  31. package/tsparticles.simplex.noise.min.js.LICENSE.txt +1 -0
  32. package/types/Classes/SimplexNoise2D.d.ts +16 -0
  33. package/types/Classes/SimplexNoise3D.d.ts +16 -0
  34. package/types/Classes/SimplexNoise4D.d.ts +16 -0
  35. package/types/Contributions.d.ts +27 -0
  36. package/types/SimplexNoise.d.ts +9 -0
  37. package/types/index.d.ts +1 -0
  38. package/types/utils.d.ts +1 -0
  39. package/umd/Classes/SimplexNoise2D.js +166 -0
  40. package/umd/Classes/SimplexNoise3D.js +542 -0
  41. package/umd/Classes/SimplexNoise4D.js +2881 -0
  42. package/umd/Contributions.js +12 -0
  43. package/umd/SimplexNoise.js +24 -0
  44. package/umd/index.js +15 -0
  45. package/umd/utils.js +19 -0
@@ -0,0 +1,2867 @@
1
+ import { shuffleSeed } from "../utils.js";
2
+ export class SimplexNoise4D {
3
+ constructor() {
4
+ this._NORM_4D = 1.0 / 30.0;
5
+ this._SQUISH_4D = (Math.sqrt(4 + 1) - 1) * 0.25;
6
+ this._STRETCH_4D = (1 / Math.sqrt(4 + 1) - 1) * 0.25;
7
+ this._lookup = [];
8
+ this._perm = new Uint8Array(0);
9
+ this._perm4D = new Uint8Array(0);
10
+ this._base4D = [
11
+ [0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1],
12
+ [3, 1, 1, 1, 0, 3, 1, 1, 0, 1, 3, 1, 0, 1, 1, 3, 0, 1, 1, 1, 4, 1, 1, 1, 1],
13
+ [
14
+ 1,
15
+ 1,
16
+ 0,
17
+ 0,
18
+ 0,
19
+ 1,
20
+ 0,
21
+ 1,
22
+ 0,
23
+ 0,
24
+ 1,
25
+ 0,
26
+ 0,
27
+ 1,
28
+ 0,
29
+ 1,
30
+ 0,
31
+ 0,
32
+ 0,
33
+ 1,
34
+ 2,
35
+ 1,
36
+ 1,
37
+ 0,
38
+ 0,
39
+ 2,
40
+ 1,
41
+ 0,
42
+ 1,
43
+ 0,
44
+ 2,
45
+ 1,
46
+ 0,
47
+ 0,
48
+ 1,
49
+ 2,
50
+ 0,
51
+ 1,
52
+ 1,
53
+ 0,
54
+ 2,
55
+ 0,
56
+ 1,
57
+ 0,
58
+ 1,
59
+ 2,
60
+ 0,
61
+ 0,
62
+ 1,
63
+ 1,
64
+ ],
65
+ [
66
+ 3,
67
+ 1,
68
+ 1,
69
+ 1,
70
+ 0,
71
+ 3,
72
+ 1,
73
+ 1,
74
+ 0,
75
+ 1,
76
+ 3,
77
+ 1,
78
+ 0,
79
+ 1,
80
+ 1,
81
+ 3,
82
+ 0,
83
+ 1,
84
+ 1,
85
+ 1,
86
+ 2,
87
+ 1,
88
+ 1,
89
+ 0,
90
+ 0,
91
+ 2,
92
+ 1,
93
+ 0,
94
+ 1,
95
+ 0,
96
+ 2,
97
+ 1,
98
+ 0,
99
+ 0,
100
+ 1,
101
+ 2,
102
+ 0,
103
+ 1,
104
+ 1,
105
+ 0,
106
+ 2,
107
+ 0,
108
+ 1,
109
+ 0,
110
+ 1,
111
+ 2,
112
+ 0,
113
+ 0,
114
+ 1,
115
+ 1,
116
+ ],
117
+ ];
118
+ this._gradients4D = [
119
+ 3,
120
+ 1,
121
+ 1,
122
+ 1,
123
+ 1,
124
+ 3,
125
+ 1,
126
+ 1,
127
+ 1,
128
+ 1,
129
+ 3,
130
+ 1,
131
+ 1,
132
+ 1,
133
+ 1,
134
+ 3,
135
+ -3,
136
+ 1,
137
+ 1,
138
+ 1,
139
+ -1,
140
+ 3,
141
+ 1,
142
+ 1,
143
+ -1,
144
+ 1,
145
+ 3,
146
+ 1,
147
+ -1,
148
+ 1,
149
+ 1,
150
+ 3,
151
+ 3,
152
+ -1,
153
+ 1,
154
+ 1,
155
+ 1,
156
+ -3,
157
+ 1,
158
+ 1,
159
+ 1,
160
+ -1,
161
+ 3,
162
+ 1,
163
+ 1,
164
+ -1,
165
+ 1,
166
+ 3,
167
+ -3,
168
+ -1,
169
+ 1,
170
+ 1,
171
+ -1,
172
+ -3,
173
+ 1,
174
+ 1,
175
+ -1,
176
+ -1,
177
+ 3,
178
+ 1,
179
+ -1,
180
+ -1,
181
+ 1,
182
+ 3,
183
+ 3,
184
+ 1,
185
+ -1,
186
+ 1,
187
+ 1,
188
+ 3,
189
+ -1,
190
+ 1,
191
+ 1,
192
+ 1,
193
+ -3,
194
+ 1,
195
+ 1,
196
+ 1,
197
+ -1,
198
+ 3,
199
+ -3,
200
+ 1,
201
+ -1,
202
+ 1,
203
+ -1,
204
+ 3,
205
+ -1,
206
+ 1,
207
+ -1,
208
+ 1,
209
+ -3,
210
+ 1,
211
+ -1,
212
+ 1,
213
+ -1,
214
+ 3,
215
+ 3,
216
+ -1,
217
+ -1,
218
+ 1,
219
+ 1,
220
+ -3,
221
+ -1,
222
+ 1,
223
+ 1,
224
+ -1,
225
+ -3,
226
+ 1,
227
+ 1,
228
+ -1,
229
+ -1,
230
+ 3,
231
+ -3,
232
+ -1,
233
+ -1,
234
+ 1,
235
+ -1,
236
+ -3,
237
+ -1,
238
+ 1,
239
+ -1,
240
+ -1,
241
+ -3,
242
+ 1,
243
+ -1,
244
+ -1,
245
+ -1,
246
+ 3,
247
+ 3,
248
+ 1,
249
+ 1,
250
+ -1,
251
+ 1,
252
+ 3,
253
+ 1,
254
+ -1,
255
+ 1,
256
+ 1,
257
+ 3,
258
+ -1,
259
+ 1,
260
+ 1,
261
+ 1,
262
+ -3,
263
+ -3,
264
+ 1,
265
+ 1,
266
+ -1,
267
+ -1,
268
+ 3,
269
+ 1,
270
+ -1,
271
+ -1,
272
+ 1,
273
+ 3,
274
+ -1,
275
+ -1,
276
+ 1,
277
+ 1,
278
+ -3,
279
+ 3,
280
+ -1,
281
+ 1,
282
+ -1,
283
+ 1,
284
+ -3,
285
+ 1,
286
+ -1,
287
+ 1,
288
+ -1,
289
+ 3,
290
+ -1,
291
+ 1,
292
+ -1,
293
+ 1,
294
+ -3,
295
+ -3,
296
+ -1,
297
+ 1,
298
+ -1,
299
+ -1,
300
+ -3,
301
+ 1,
302
+ -1,
303
+ -1,
304
+ -1,
305
+ 3,
306
+ -1,
307
+ -1,
308
+ -1,
309
+ 1,
310
+ -3,
311
+ 3,
312
+ 1,
313
+ -1,
314
+ -1,
315
+ 1,
316
+ 3,
317
+ -1,
318
+ -1,
319
+ 1,
320
+ 1,
321
+ -3,
322
+ -1,
323
+ 1,
324
+ 1,
325
+ -1,
326
+ -3,
327
+ -3,
328
+ 1,
329
+ -1,
330
+ -1,
331
+ -1,
332
+ 3,
333
+ -1,
334
+ -1,
335
+ -1,
336
+ 1,
337
+ -3,
338
+ -1,
339
+ -1,
340
+ 1,
341
+ -1,
342
+ -3,
343
+ 3,
344
+ -1,
345
+ -1,
346
+ -1,
347
+ 1,
348
+ -3,
349
+ -1,
350
+ -1,
351
+ 1,
352
+ -1,
353
+ -3,
354
+ -1,
355
+ 1,
356
+ -1,
357
+ -1,
358
+ -3,
359
+ -3,
360
+ -1,
361
+ -1,
362
+ -1,
363
+ -1,
364
+ -3,
365
+ -1,
366
+ -1,
367
+ -1,
368
+ -1,
369
+ -3,
370
+ -1,
371
+ -1,
372
+ -1,
373
+ -1,
374
+ -3,
375
+ ];
376
+ this._lookupPairs4D = [
377
+ 0,
378
+ 3,
379
+ 1,
380
+ 2,
381
+ 2,
382
+ 3,
383
+ 5,
384
+ 2,
385
+ 6,
386
+ 1,
387
+ 7,
388
+ 1,
389
+ 8,
390
+ 3,
391
+ 9,
392
+ 2,
393
+ 10,
394
+ 3,
395
+ 13,
396
+ 2,
397
+ 16,
398
+ 3,
399
+ 18,
400
+ 3,
401
+ 22,
402
+ 1,
403
+ 23,
404
+ 1,
405
+ 24,
406
+ 3,
407
+ 26,
408
+ 3,
409
+ 33,
410
+ 2,
411
+ 37,
412
+ 2,
413
+ 38,
414
+ 1,
415
+ 39,
416
+ 1,
417
+ 41,
418
+ 2,
419
+ 45,
420
+ 2,
421
+ 54,
422
+ 1,
423
+ 55,
424
+ 1,
425
+ 56,
426
+ 0,
427
+ 57,
428
+ 0,
429
+ 58,
430
+ 0,
431
+ 59,
432
+ 0,
433
+ 60,
434
+ 0,
435
+ 61,
436
+ 0,
437
+ 62,
438
+ 0,
439
+ 63,
440
+ 0,
441
+ 256,
442
+ 3,
443
+ 258,
444
+ 3,
445
+ 264,
446
+ 3,
447
+ 266,
448
+ 3,
449
+ 272,
450
+ 3,
451
+ 274,
452
+ 3,
453
+ 280,
454
+ 3,
455
+ 282,
456
+ 3,
457
+ 2049,
458
+ 2,
459
+ 2053,
460
+ 2,
461
+ 2057,
462
+ 2,
463
+ 2061,
464
+ 2,
465
+ 2081,
466
+ 2,
467
+ 2085,
468
+ 2,
469
+ 2089,
470
+ 2,
471
+ 2093,
472
+ 2,
473
+ 2304,
474
+ 9,
475
+ 2305,
476
+ 9,
477
+ 2312,
478
+ 9,
479
+ 2313,
480
+ 9,
481
+ 16390,
482
+ 1,
483
+ 16391,
484
+ 1,
485
+ 16406,
486
+ 1,
487
+ 16407,
488
+ 1,
489
+ 16422,
490
+ 1,
491
+ 16423,
492
+ 1,
493
+ 16438,
494
+ 1,
495
+ 16439,
496
+ 1,
497
+ 16642,
498
+ 8,
499
+ 16646,
500
+ 8,
501
+ 16658,
502
+ 8,
503
+ 16662,
504
+ 8,
505
+ 18437,
506
+ 6,
507
+ 18439,
508
+ 6,
509
+ 18469,
510
+ 6,
511
+ 18471,
512
+ 6,
513
+ 18688,
514
+ 9,
515
+ 18689,
516
+ 9,
517
+ 18690,
518
+ 8,
519
+ 18693,
520
+ 6,
521
+ 18694,
522
+ 8,
523
+ 18695,
524
+ 6,
525
+ 18696,
526
+ 9,
527
+ 18697,
528
+ 9,
529
+ 18706,
530
+ 8,
531
+ 18710,
532
+ 8,
533
+ 18725,
534
+ 6,
535
+ 18727,
536
+ 6,
537
+ 131128,
538
+ 0,
539
+ 131129,
540
+ 0,
541
+ 131130,
542
+ 0,
543
+ 131131,
544
+ 0,
545
+ 131132,
546
+ 0,
547
+ 131133,
548
+ 0,
549
+ 131134,
550
+ 0,
551
+ 131135,
552
+ 0,
553
+ 131352,
554
+ 7,
555
+ 131354,
556
+ 7,
557
+ 131384,
558
+ 7,
559
+ 131386,
560
+ 7,
561
+ 133161,
562
+ 5,
563
+ 133165,
564
+ 5,
565
+ 133177,
566
+ 5,
567
+ 133181,
568
+ 5,
569
+ 133376,
570
+ 9,
571
+ 133377,
572
+ 9,
573
+ 133384,
574
+ 9,
575
+ 133385,
576
+ 9,
577
+ 133400,
578
+ 7,
579
+ 133402,
580
+ 7,
581
+ 133417,
582
+ 5,
583
+ 133421,
584
+ 5,
585
+ 133432,
586
+ 7,
587
+ 133433,
588
+ 5,
589
+ 133434,
590
+ 7,
591
+ 133437,
592
+ 5,
593
+ 147510,
594
+ 4,
595
+ 147511,
596
+ 4,
597
+ 147518,
598
+ 4,
599
+ 147519,
600
+ 4,
601
+ 147714,
602
+ 8,
603
+ 147718,
604
+ 8,
605
+ 147730,
606
+ 8,
607
+ 147734,
608
+ 8,
609
+ 147736,
610
+ 7,
611
+ 147738,
612
+ 7,
613
+ 147766,
614
+ 4,
615
+ 147767,
616
+ 4,
617
+ 147768,
618
+ 7,
619
+ 147770,
620
+ 7,
621
+ 147774,
622
+ 4,
623
+ 147775,
624
+ 4,
625
+ 149509,
626
+ 6,
627
+ 149511,
628
+ 6,
629
+ 149541,
630
+ 6,
631
+ 149543,
632
+ 6,
633
+ 149545,
634
+ 5,
635
+ 149549,
636
+ 5,
637
+ 149558,
638
+ 4,
639
+ 149559,
640
+ 4,
641
+ 149561,
642
+ 5,
643
+ 149565,
644
+ 5,
645
+ 149566,
646
+ 4,
647
+ 149567,
648
+ 4,
649
+ 149760,
650
+ 9,
651
+ 149761,
652
+ 9,
653
+ 149762,
654
+ 8,
655
+ 149765,
656
+ 6,
657
+ 149766,
658
+ 8,
659
+ 149767,
660
+ 6,
661
+ 149768,
662
+ 9,
663
+ 149769,
664
+ 9,
665
+ 149778,
666
+ 8,
667
+ 149782,
668
+ 8,
669
+ 149784,
670
+ 7,
671
+ 149786,
672
+ 7,
673
+ 149797,
674
+ 6,
675
+ 149799,
676
+ 6,
677
+ 149801,
678
+ 5,
679
+ 149805,
680
+ 5,
681
+ 149814,
682
+ 4,
683
+ 149815,
684
+ 4,
685
+ 149816,
686
+ 7,
687
+ 149817,
688
+ 5,
689
+ 149818,
690
+ 7,
691
+ 149821,
692
+ 5,
693
+ 149822,
694
+ 4,
695
+ 149823,
696
+ 4,
697
+ 149824,
698
+ 37,
699
+ 149825,
700
+ 37,
701
+ 149826,
702
+ 36,
703
+ 149829,
704
+ 34,
705
+ 149830,
706
+ 36,
707
+ 149831,
708
+ 34,
709
+ 149832,
710
+ 37,
711
+ 149833,
712
+ 37,
713
+ 149842,
714
+ 36,
715
+ 149846,
716
+ 36,
717
+ 149848,
718
+ 35,
719
+ 149850,
720
+ 35,
721
+ 149861,
722
+ 34,
723
+ 149863,
724
+ 34,
725
+ 149865,
726
+ 33,
727
+ 149869,
728
+ 33,
729
+ 149878,
730
+ 32,
731
+ 149879,
732
+ 32,
733
+ 149880,
734
+ 35,
735
+ 149881,
736
+ 33,
737
+ 149882,
738
+ 35,
739
+ 149885,
740
+ 33,
741
+ 149886,
742
+ 32,
743
+ 149887,
744
+ 32,
745
+ 150080,
746
+ 49,
747
+ 150082,
748
+ 48,
749
+ 150088,
750
+ 49,
751
+ 150098,
752
+ 48,
753
+ 150104,
754
+ 47,
755
+ 150106,
756
+ 47,
757
+ 151873,
758
+ 46,
759
+ 151877,
760
+ 45,
761
+ 151881,
762
+ 46,
763
+ 151909,
764
+ 45,
765
+ 151913,
766
+ 44,
767
+ 151917,
768
+ 44,
769
+ 152128,
770
+ 49,
771
+ 152129,
772
+ 46,
773
+ 152136,
774
+ 49,
775
+ 152137,
776
+ 46,
777
+ 166214,
778
+ 43,
779
+ 166215,
780
+ 42,
781
+ 166230,
782
+ 43,
783
+ 166247,
784
+ 42,
785
+ 166262,
786
+ 41,
787
+ 166263,
788
+ 41,
789
+ 166466,
790
+ 48,
791
+ 166470,
792
+ 43,
793
+ 166482,
794
+ 48,
795
+ 166486,
796
+ 43,
797
+ 168261,
798
+ 45,
799
+ 168263,
800
+ 42,
801
+ 168293,
802
+ 45,
803
+ 168295,
804
+ 42,
805
+ 168512,
806
+ 31,
807
+ 168513,
808
+ 28,
809
+ 168514,
810
+ 31,
811
+ 168517,
812
+ 28,
813
+ 168518,
814
+ 25,
815
+ 168519,
816
+ 25,
817
+ 280952,
818
+ 40,
819
+ 280953,
820
+ 39,
821
+ 280954,
822
+ 40,
823
+ 280957,
824
+ 39,
825
+ 280958,
826
+ 38,
827
+ 280959,
828
+ 38,
829
+ 281176,
830
+ 47,
831
+ 281178,
832
+ 47,
833
+ 281208,
834
+ 40,
835
+ 281210,
836
+ 40,
837
+ 282985,
838
+ 44,
839
+ 282989,
840
+ 44,
841
+ 283001,
842
+ 39,
843
+ 283005,
844
+ 39,
845
+ 283208,
846
+ 30,
847
+ 283209,
848
+ 27,
849
+ 283224,
850
+ 30,
851
+ 283241,
852
+ 27,
853
+ 283256,
854
+ 22,
855
+ 283257,
856
+ 22,
857
+ 297334,
858
+ 41,
859
+ 297335,
860
+ 41,
861
+ 297342,
862
+ 38,
863
+ 297343,
864
+ 38,
865
+ 297554,
866
+ 29,
867
+ 297558,
868
+ 24,
869
+ 297562,
870
+ 29,
871
+ 297590,
872
+ 24,
873
+ 297594,
874
+ 21,
875
+ 297598,
876
+ 21,
877
+ 299365,
878
+ 26,
879
+ 299367,
880
+ 23,
881
+ 299373,
882
+ 26,
883
+ 299383,
884
+ 23,
885
+ 299389,
886
+ 20,
887
+ 299391,
888
+ 20,
889
+ 299584,
890
+ 31,
891
+ 299585,
892
+ 28,
893
+ 299586,
894
+ 31,
895
+ 299589,
896
+ 28,
897
+ 299590,
898
+ 25,
899
+ 299591,
900
+ 25,
901
+ 299592,
902
+ 30,
903
+ 299593,
904
+ 27,
905
+ 299602,
906
+ 29,
907
+ 299606,
908
+ 24,
909
+ 299608,
910
+ 30,
911
+ 299610,
912
+ 29,
913
+ 299621,
914
+ 26,
915
+ 299623,
916
+ 23,
917
+ 299625,
918
+ 27,
919
+ 299629,
920
+ 26,
921
+ 299638,
922
+ 24,
923
+ 299639,
924
+ 23,
925
+ 299640,
926
+ 22,
927
+ 299641,
928
+ 22,
929
+ 299642,
930
+ 21,
931
+ 299645,
932
+ 20,
933
+ 299646,
934
+ 21,
935
+ 299647,
936
+ 20,
937
+ 299648,
938
+ 61,
939
+ 299649,
940
+ 60,
941
+ 299650,
942
+ 61,
943
+ 299653,
944
+ 60,
945
+ 299654,
946
+ 59,
947
+ 299655,
948
+ 59,
949
+ 299656,
950
+ 58,
951
+ 299657,
952
+ 57,
953
+ 299666,
954
+ 55,
955
+ 299670,
956
+ 54,
957
+ 299672,
958
+ 58,
959
+ 299674,
960
+ 55,
961
+ 299685,
962
+ 52,
963
+ 299687,
964
+ 51,
965
+ 299689,
966
+ 57,
967
+ 299693,
968
+ 52,
969
+ 299702,
970
+ 54,
971
+ 299703,
972
+ 51,
973
+ 299704,
974
+ 56,
975
+ 299705,
976
+ 56,
977
+ 299706,
978
+ 53,
979
+ 299709,
980
+ 50,
981
+ 299710,
982
+ 53,
983
+ 299711,
984
+ 50,
985
+ 299904,
986
+ 61,
987
+ 299906,
988
+ 61,
989
+ 299912,
990
+ 58,
991
+ 299922,
992
+ 55,
993
+ 299928,
994
+ 58,
995
+ 299930,
996
+ 55,
997
+ 301697,
998
+ 60,
999
+ 301701,
1000
+ 60,
1001
+ 301705,
1002
+ 57,
1003
+ 301733,
1004
+ 52,
1005
+ 301737,
1006
+ 57,
1007
+ 301741,
1008
+ 52,
1009
+ 301952,
1010
+ 79,
1011
+ 301953,
1012
+ 79,
1013
+ 301960,
1014
+ 76,
1015
+ 301961,
1016
+ 76,
1017
+ 316038,
1018
+ 59,
1019
+ 316039,
1020
+ 59,
1021
+ 316054,
1022
+ 54,
1023
+ 316071,
1024
+ 51,
1025
+ 316086,
1026
+ 54,
1027
+ 316087,
1028
+ 51,
1029
+ 316290,
1030
+ 78,
1031
+ 316294,
1032
+ 78,
1033
+ 316306,
1034
+ 73,
1035
+ 316310,
1036
+ 73,
1037
+ 318085,
1038
+ 77,
1039
+ 318087,
1040
+ 77,
1041
+ 318117,
1042
+ 70,
1043
+ 318119,
1044
+ 70,
1045
+ 318336,
1046
+ 79,
1047
+ 318337,
1048
+ 79,
1049
+ 318338,
1050
+ 78,
1051
+ 318341,
1052
+ 77,
1053
+ 318342,
1054
+ 78,
1055
+ 318343,
1056
+ 77,
1057
+ 430776,
1058
+ 56,
1059
+ 430777,
1060
+ 56,
1061
+ 430778,
1062
+ 53,
1063
+ 430781,
1064
+ 50,
1065
+ 430782,
1066
+ 53,
1067
+ 430783,
1068
+ 50,
1069
+ 431000,
1070
+ 75,
1071
+ 431002,
1072
+ 72,
1073
+ 431032,
1074
+ 75,
1075
+ 431034,
1076
+ 72,
1077
+ 432809,
1078
+ 74,
1079
+ 432813,
1080
+ 69,
1081
+ 432825,
1082
+ 74,
1083
+ 432829,
1084
+ 69,
1085
+ 433032,
1086
+ 76,
1087
+ 433033,
1088
+ 76,
1089
+ 433048,
1090
+ 75,
1091
+ 433065,
1092
+ 74,
1093
+ 433080,
1094
+ 75,
1095
+ 433081,
1096
+ 74,
1097
+ 447158,
1098
+ 71,
1099
+ 447159,
1100
+ 68,
1101
+ 447166,
1102
+ 71,
1103
+ 447167,
1104
+ 68,
1105
+ 447378,
1106
+ 73,
1107
+ 447382,
1108
+ 73,
1109
+ 447386,
1110
+ 72,
1111
+ 447414,
1112
+ 71,
1113
+ 447418,
1114
+ 72,
1115
+ 447422,
1116
+ 71,
1117
+ 449189,
1118
+ 70,
1119
+ 449191,
1120
+ 70,
1121
+ 449197,
1122
+ 69,
1123
+ 449207,
1124
+ 68,
1125
+ 449213,
1126
+ 69,
1127
+ 449215,
1128
+ 68,
1129
+ 449408,
1130
+ 67,
1131
+ 449409,
1132
+ 67,
1133
+ 449410,
1134
+ 66,
1135
+ 449413,
1136
+ 64,
1137
+ 449414,
1138
+ 66,
1139
+ 449415,
1140
+ 64,
1141
+ 449416,
1142
+ 67,
1143
+ 449417,
1144
+ 67,
1145
+ 449426,
1146
+ 66,
1147
+ 449430,
1148
+ 66,
1149
+ 449432,
1150
+ 65,
1151
+ 449434,
1152
+ 65,
1153
+ 449445,
1154
+ 64,
1155
+ 449447,
1156
+ 64,
1157
+ 449449,
1158
+ 63,
1159
+ 449453,
1160
+ 63,
1161
+ 449462,
1162
+ 62,
1163
+ 449463,
1164
+ 62,
1165
+ 449464,
1166
+ 65,
1167
+ 449465,
1168
+ 63,
1169
+ 449466,
1170
+ 65,
1171
+ 449469,
1172
+ 63,
1173
+ 449470,
1174
+ 62,
1175
+ 449471,
1176
+ 62,
1177
+ 449472,
1178
+ 19,
1179
+ 449473,
1180
+ 19,
1181
+ 449474,
1182
+ 18,
1183
+ 449477,
1184
+ 16,
1185
+ 449478,
1186
+ 18,
1187
+ 449479,
1188
+ 16,
1189
+ 449480,
1190
+ 19,
1191
+ 449481,
1192
+ 19,
1193
+ 449490,
1194
+ 18,
1195
+ 449494,
1196
+ 18,
1197
+ 449496,
1198
+ 17,
1199
+ 449498,
1200
+ 17,
1201
+ 449509,
1202
+ 16,
1203
+ 449511,
1204
+ 16,
1205
+ 449513,
1206
+ 15,
1207
+ 449517,
1208
+ 15,
1209
+ 449526,
1210
+ 14,
1211
+ 449527,
1212
+ 14,
1213
+ 449528,
1214
+ 17,
1215
+ 449529,
1216
+ 15,
1217
+ 449530,
1218
+ 17,
1219
+ 449533,
1220
+ 15,
1221
+ 449534,
1222
+ 14,
1223
+ 449535,
1224
+ 14,
1225
+ 449728,
1226
+ 19,
1227
+ 449729,
1228
+ 19,
1229
+ 449730,
1230
+ 18,
1231
+ 449734,
1232
+ 18,
1233
+ 449736,
1234
+ 19,
1235
+ 449737,
1236
+ 19,
1237
+ 449746,
1238
+ 18,
1239
+ 449750,
1240
+ 18,
1241
+ 449752,
1242
+ 17,
1243
+ 449754,
1244
+ 17,
1245
+ 449784,
1246
+ 17,
1247
+ 449786,
1248
+ 17,
1249
+ 451520,
1250
+ 19,
1251
+ 451521,
1252
+ 19,
1253
+ 451525,
1254
+ 16,
1255
+ 451527,
1256
+ 16,
1257
+ 451528,
1258
+ 19,
1259
+ 451529,
1260
+ 19,
1261
+ 451557,
1262
+ 16,
1263
+ 451559,
1264
+ 16,
1265
+ 451561,
1266
+ 15,
1267
+ 451565,
1268
+ 15,
1269
+ 451577,
1270
+ 15,
1271
+ 451581,
1272
+ 15,
1273
+ 451776,
1274
+ 19,
1275
+ 451777,
1276
+ 19,
1277
+ 451784,
1278
+ 19,
1279
+ 451785,
1280
+ 19,
1281
+ 465858,
1282
+ 18,
1283
+ 465861,
1284
+ 16,
1285
+ 465862,
1286
+ 18,
1287
+ 465863,
1288
+ 16,
1289
+ 465874,
1290
+ 18,
1291
+ 465878,
1292
+ 18,
1293
+ 465893,
1294
+ 16,
1295
+ 465895,
1296
+ 16,
1297
+ 465910,
1298
+ 14,
1299
+ 465911,
1300
+ 14,
1301
+ 465918,
1302
+ 14,
1303
+ 465919,
1304
+ 14,
1305
+ 466114,
1306
+ 18,
1307
+ 466118,
1308
+ 18,
1309
+ 466130,
1310
+ 18,
1311
+ 466134,
1312
+ 18,
1313
+ 467909,
1314
+ 16,
1315
+ 467911,
1316
+ 16,
1317
+ 467941,
1318
+ 16,
1319
+ 467943,
1320
+ 16,
1321
+ 468160,
1322
+ 13,
1323
+ 468161,
1324
+ 13,
1325
+ 468162,
1326
+ 13,
1327
+ 468163,
1328
+ 13,
1329
+ 468164,
1330
+ 13,
1331
+ 468165,
1332
+ 13,
1333
+ 468166,
1334
+ 13,
1335
+ 468167,
1336
+ 13,
1337
+ 580568,
1338
+ 17,
1339
+ 580570,
1340
+ 17,
1341
+ 580585,
1342
+ 15,
1343
+ 580589,
1344
+ 15,
1345
+ 580598,
1346
+ 14,
1347
+ 580599,
1348
+ 14,
1349
+ 580600,
1350
+ 17,
1351
+ 580601,
1352
+ 15,
1353
+ 580602,
1354
+ 17,
1355
+ 580605,
1356
+ 15,
1357
+ 580606,
1358
+ 14,
1359
+ 580607,
1360
+ 14,
1361
+ 580824,
1362
+ 17,
1363
+ 580826,
1364
+ 17,
1365
+ 580856,
1366
+ 17,
1367
+ 580858,
1368
+ 17,
1369
+ 582633,
1370
+ 15,
1371
+ 582637,
1372
+ 15,
1373
+ 582649,
1374
+ 15,
1375
+ 582653,
1376
+ 15,
1377
+ 582856,
1378
+ 12,
1379
+ 582857,
1380
+ 12,
1381
+ 582872,
1382
+ 12,
1383
+ 582873,
1384
+ 12,
1385
+ 582888,
1386
+ 12,
1387
+ 582889,
1388
+ 12,
1389
+ 582904,
1390
+ 12,
1391
+ 582905,
1392
+ 12,
1393
+ 596982,
1394
+ 14,
1395
+ 596983,
1396
+ 14,
1397
+ 596990,
1398
+ 14,
1399
+ 596991,
1400
+ 14,
1401
+ 597202,
1402
+ 11,
1403
+ 597206,
1404
+ 11,
1405
+ 597210,
1406
+ 11,
1407
+ 597214,
1408
+ 11,
1409
+ 597234,
1410
+ 11,
1411
+ 597238,
1412
+ 11,
1413
+ 597242,
1414
+ 11,
1415
+ 597246,
1416
+ 11,
1417
+ 599013,
1418
+ 10,
1419
+ 599015,
1420
+ 10,
1421
+ 599021,
1422
+ 10,
1423
+ 599023,
1424
+ 10,
1425
+ 599029,
1426
+ 10,
1427
+ 599031,
1428
+ 10,
1429
+ 599037,
1430
+ 10,
1431
+ 599039,
1432
+ 10,
1433
+ 599232,
1434
+ 13,
1435
+ 599233,
1436
+ 13,
1437
+ 599234,
1438
+ 13,
1439
+ 599235,
1440
+ 13,
1441
+ 599236,
1442
+ 13,
1443
+ 599237,
1444
+ 13,
1445
+ 599238,
1446
+ 13,
1447
+ 599239,
1448
+ 13,
1449
+ 599240,
1450
+ 12,
1451
+ 599241,
1452
+ 12,
1453
+ 599250,
1454
+ 11,
1455
+ 599254,
1456
+ 11,
1457
+ 599256,
1458
+ 12,
1459
+ 599257,
1460
+ 12,
1461
+ 599258,
1462
+ 11,
1463
+ 599262,
1464
+ 11,
1465
+ 599269,
1466
+ 10,
1467
+ 599271,
1468
+ 10,
1469
+ 599272,
1470
+ 12,
1471
+ 599273,
1472
+ 12,
1473
+ 599277,
1474
+ 10,
1475
+ 599279,
1476
+ 10,
1477
+ 599282,
1478
+ 11,
1479
+ 599285,
1480
+ 10,
1481
+ 599286,
1482
+ 11,
1483
+ 599287,
1484
+ 10,
1485
+ 599288,
1486
+ 12,
1487
+ 599289,
1488
+ 12,
1489
+ 599290,
1490
+ 11,
1491
+ 599293,
1492
+ 10,
1493
+ 599294,
1494
+ 11,
1495
+ 599295,
1496
+ 10,
1497
+ ];
1498
+ this._p4D = [
1499
+ 0,
1500
+ 0,
1501
+ 1,
1502
+ -1,
1503
+ 0,
1504
+ 0,
1505
+ 0,
1506
+ 1,
1507
+ 0,
1508
+ -1,
1509
+ 0,
1510
+ 0,
1511
+ 1,
1512
+ 0,
1513
+ 0,
1514
+ -1,
1515
+ 0,
1516
+ 0,
1517
+ -1,
1518
+ 1,
1519
+ 0,
1520
+ 0,
1521
+ 0,
1522
+ 0,
1523
+ 1,
1524
+ -1,
1525
+ 0,
1526
+ 0,
1527
+ 0,
1528
+ 1,
1529
+ 0,
1530
+ -1,
1531
+ 0,
1532
+ 0,
1533
+ -1,
1534
+ 0,
1535
+ 1,
1536
+ 0,
1537
+ 0,
1538
+ 0,
1539
+ -1,
1540
+ 1,
1541
+ 0,
1542
+ 0,
1543
+ 0,
1544
+ 0,
1545
+ 1,
1546
+ -1,
1547
+ 0,
1548
+ 0,
1549
+ -1,
1550
+ 0,
1551
+ 0,
1552
+ 1,
1553
+ 0,
1554
+ 0,
1555
+ -1,
1556
+ 0,
1557
+ 1,
1558
+ 0,
1559
+ 0,
1560
+ 0,
1561
+ -1,
1562
+ 1,
1563
+ 0,
1564
+ 2,
1565
+ 1,
1566
+ 1,
1567
+ 0,
1568
+ 0,
1569
+ 1,
1570
+ 1,
1571
+ 1,
1572
+ -1,
1573
+ 0,
1574
+ 1,
1575
+ 1,
1576
+ 1,
1577
+ 0,
1578
+ -1,
1579
+ 0,
1580
+ 2,
1581
+ 1,
1582
+ 0,
1583
+ 1,
1584
+ 0,
1585
+ 1,
1586
+ 1,
1587
+ -1,
1588
+ 1,
1589
+ 0,
1590
+ 1,
1591
+ 1,
1592
+ 0,
1593
+ 1,
1594
+ -1,
1595
+ 0,
1596
+ 2,
1597
+ 0,
1598
+ 1,
1599
+ 1,
1600
+ 0,
1601
+ 1,
1602
+ -1,
1603
+ 1,
1604
+ 1,
1605
+ 0,
1606
+ 1,
1607
+ 0,
1608
+ 1,
1609
+ 1,
1610
+ -1,
1611
+ 0,
1612
+ 2,
1613
+ 1,
1614
+ 0,
1615
+ 0,
1616
+ 1,
1617
+ 1,
1618
+ 1,
1619
+ -1,
1620
+ 0,
1621
+ 1,
1622
+ 1,
1623
+ 1,
1624
+ 0,
1625
+ -1,
1626
+ 1,
1627
+ 0,
1628
+ 2,
1629
+ 0,
1630
+ 1,
1631
+ 0,
1632
+ 1,
1633
+ 1,
1634
+ -1,
1635
+ 1,
1636
+ 0,
1637
+ 1,
1638
+ 1,
1639
+ 0,
1640
+ 1,
1641
+ -1,
1642
+ 1,
1643
+ 0,
1644
+ 2,
1645
+ 0,
1646
+ 0,
1647
+ 1,
1648
+ 1,
1649
+ 1,
1650
+ -1,
1651
+ 0,
1652
+ 1,
1653
+ 1,
1654
+ 1,
1655
+ 0,
1656
+ -1,
1657
+ 1,
1658
+ 1,
1659
+ 1,
1660
+ 4,
1661
+ 2,
1662
+ 1,
1663
+ 1,
1664
+ 0,
1665
+ 4,
1666
+ 1,
1667
+ 2,
1668
+ 1,
1669
+ 0,
1670
+ 4,
1671
+ 1,
1672
+ 1,
1673
+ 2,
1674
+ 0,
1675
+ 1,
1676
+ 4,
1677
+ 2,
1678
+ 1,
1679
+ 0,
1680
+ 1,
1681
+ 4,
1682
+ 1,
1683
+ 2,
1684
+ 0,
1685
+ 1,
1686
+ 4,
1687
+ 1,
1688
+ 1,
1689
+ 0,
1690
+ 2,
1691
+ 1,
1692
+ 4,
1693
+ 2,
1694
+ 0,
1695
+ 1,
1696
+ 1,
1697
+ 4,
1698
+ 1,
1699
+ 0,
1700
+ 2,
1701
+ 1,
1702
+ 4,
1703
+ 1,
1704
+ 0,
1705
+ 1,
1706
+ 2,
1707
+ 1,
1708
+ 4,
1709
+ 0,
1710
+ 2,
1711
+ 1,
1712
+ 1,
1713
+ 4,
1714
+ 0,
1715
+ 1,
1716
+ 2,
1717
+ 1,
1718
+ 4,
1719
+ 0,
1720
+ 1,
1721
+ 1,
1722
+ 2,
1723
+ 1,
1724
+ 2,
1725
+ 1,
1726
+ 1,
1727
+ 0,
1728
+ 0,
1729
+ 3,
1730
+ 2,
1731
+ 1,
1732
+ 0,
1733
+ 0,
1734
+ 3,
1735
+ 1,
1736
+ 2,
1737
+ 0,
1738
+ 0,
1739
+ 1,
1740
+ 2,
1741
+ 1,
1742
+ 0,
1743
+ 1,
1744
+ 0,
1745
+ 3,
1746
+ 2,
1747
+ 0,
1748
+ 1,
1749
+ 0,
1750
+ 3,
1751
+ 1,
1752
+ 0,
1753
+ 2,
1754
+ 0,
1755
+ 1,
1756
+ 2,
1757
+ 0,
1758
+ 1,
1759
+ 1,
1760
+ 0,
1761
+ 3,
1762
+ 0,
1763
+ 2,
1764
+ 1,
1765
+ 0,
1766
+ 3,
1767
+ 0,
1768
+ 1,
1769
+ 2,
1770
+ 0,
1771
+ 1,
1772
+ 2,
1773
+ 1,
1774
+ 0,
1775
+ 0,
1776
+ 1,
1777
+ 3,
1778
+ 2,
1779
+ 0,
1780
+ 0,
1781
+ 1,
1782
+ 3,
1783
+ 1,
1784
+ 0,
1785
+ 0,
1786
+ 2,
1787
+ 1,
1788
+ 2,
1789
+ 0,
1790
+ 1,
1791
+ 0,
1792
+ 1,
1793
+ 3,
1794
+ 0,
1795
+ 2,
1796
+ 0,
1797
+ 1,
1798
+ 3,
1799
+ 0,
1800
+ 1,
1801
+ 0,
1802
+ 2,
1803
+ 1,
1804
+ 2,
1805
+ 0,
1806
+ 0,
1807
+ 1,
1808
+ 1,
1809
+ 3,
1810
+ 0,
1811
+ 0,
1812
+ 2,
1813
+ 1,
1814
+ 3,
1815
+ 0,
1816
+ 0,
1817
+ 1,
1818
+ 2,
1819
+ 2,
1820
+ 3,
1821
+ 1,
1822
+ 1,
1823
+ 1,
1824
+ 0,
1825
+ 2,
1826
+ 1,
1827
+ 1,
1828
+ 1,
1829
+ -1,
1830
+ 2,
1831
+ 2,
1832
+ 0,
1833
+ 0,
1834
+ 0,
1835
+ 2,
1836
+ 3,
1837
+ 1,
1838
+ 1,
1839
+ 0,
1840
+ 1,
1841
+ 2,
1842
+ 1,
1843
+ 1,
1844
+ -1,
1845
+ 1,
1846
+ 2,
1847
+ 2,
1848
+ 0,
1849
+ 0,
1850
+ 0,
1851
+ 2,
1852
+ 3,
1853
+ 1,
1854
+ 0,
1855
+ 1,
1856
+ 1,
1857
+ 2,
1858
+ 1,
1859
+ -1,
1860
+ 1,
1861
+ 1,
1862
+ 2,
1863
+ 2,
1864
+ 0,
1865
+ 0,
1866
+ 0,
1867
+ 2,
1868
+ 3,
1869
+ 1,
1870
+ 1,
1871
+ 1,
1872
+ 0,
1873
+ 2,
1874
+ 1,
1875
+ 1,
1876
+ 1,
1877
+ -1,
1878
+ 2,
1879
+ 0,
1880
+ 2,
1881
+ 0,
1882
+ 0,
1883
+ 2,
1884
+ 3,
1885
+ 1,
1886
+ 1,
1887
+ 0,
1888
+ 1,
1889
+ 2,
1890
+ 1,
1891
+ 1,
1892
+ -1,
1893
+ 1,
1894
+ 2,
1895
+ 0,
1896
+ 2,
1897
+ 0,
1898
+ 0,
1899
+ 2,
1900
+ 3,
1901
+ 0,
1902
+ 1,
1903
+ 1,
1904
+ 1,
1905
+ 2,
1906
+ -1,
1907
+ 1,
1908
+ 1,
1909
+ 1,
1910
+ 2,
1911
+ 0,
1912
+ 2,
1913
+ 0,
1914
+ 0,
1915
+ 2,
1916
+ 3,
1917
+ 1,
1918
+ 1,
1919
+ 1,
1920
+ 0,
1921
+ 2,
1922
+ 1,
1923
+ 1,
1924
+ 1,
1925
+ -1,
1926
+ 2,
1927
+ 0,
1928
+ 0,
1929
+ 2,
1930
+ 0,
1931
+ 2,
1932
+ 3,
1933
+ 1,
1934
+ 0,
1935
+ 1,
1936
+ 1,
1937
+ 2,
1938
+ 1,
1939
+ -1,
1940
+ 1,
1941
+ 1,
1942
+ 2,
1943
+ 0,
1944
+ 0,
1945
+ 2,
1946
+ 0,
1947
+ 2,
1948
+ 3,
1949
+ 0,
1950
+ 1,
1951
+ 1,
1952
+ 1,
1953
+ 2,
1954
+ -1,
1955
+ 1,
1956
+ 1,
1957
+ 1,
1958
+ 2,
1959
+ 0,
1960
+ 0,
1961
+ 2,
1962
+ 0,
1963
+ 2,
1964
+ 3,
1965
+ 1,
1966
+ 1,
1967
+ 0,
1968
+ 1,
1969
+ 2,
1970
+ 1,
1971
+ 1,
1972
+ -1,
1973
+ 1,
1974
+ 2,
1975
+ 0,
1976
+ 0,
1977
+ 0,
1978
+ 2,
1979
+ 2,
1980
+ 3,
1981
+ 1,
1982
+ 0,
1983
+ 1,
1984
+ 1,
1985
+ 2,
1986
+ 1,
1987
+ -1,
1988
+ 1,
1989
+ 1,
1990
+ 2,
1991
+ 0,
1992
+ 0,
1993
+ 0,
1994
+ 2,
1995
+ 2,
1996
+ 3,
1997
+ 0,
1998
+ 1,
1999
+ 1,
2000
+ 1,
2001
+ 2,
2002
+ -1,
2003
+ 1,
2004
+ 1,
2005
+ 1,
2006
+ 2,
2007
+ 0,
2008
+ 0,
2009
+ 0,
2010
+ 2,
2011
+ 2,
2012
+ 1,
2013
+ 1,
2014
+ 1,
2015
+ -1,
2016
+ 0,
2017
+ 1,
2018
+ 1,
2019
+ 1,
2020
+ 0,
2021
+ -1,
2022
+ 0,
2023
+ 0,
2024
+ 0,
2025
+ 0,
2026
+ 0,
2027
+ 2,
2028
+ 1,
2029
+ 1,
2030
+ -1,
2031
+ 1,
2032
+ 0,
2033
+ 1,
2034
+ 1,
2035
+ 0,
2036
+ 1,
2037
+ -1,
2038
+ 0,
2039
+ 0,
2040
+ 0,
2041
+ 0,
2042
+ 0,
2043
+ 2,
2044
+ 1,
2045
+ -1,
2046
+ 1,
2047
+ 1,
2048
+ 0,
2049
+ 1,
2050
+ 0,
2051
+ 1,
2052
+ 1,
2053
+ -1,
2054
+ 0,
2055
+ 0,
2056
+ 0,
2057
+ 0,
2058
+ 0,
2059
+ 2,
2060
+ 1,
2061
+ 1,
2062
+ -1,
2063
+ 0,
2064
+ 1,
2065
+ 1,
2066
+ 1,
2067
+ 0,
2068
+ -1,
2069
+ 1,
2070
+ 0,
2071
+ 0,
2072
+ 0,
2073
+ 0,
2074
+ 0,
2075
+ 2,
2076
+ 1,
2077
+ -1,
2078
+ 1,
2079
+ 0,
2080
+ 1,
2081
+ 1,
2082
+ 0,
2083
+ 1,
2084
+ -1,
2085
+ 1,
2086
+ 0,
2087
+ 0,
2088
+ 0,
2089
+ 0,
2090
+ 0,
2091
+ 2,
2092
+ 1,
2093
+ -1,
2094
+ 0,
2095
+ 1,
2096
+ 1,
2097
+ 1,
2098
+ 0,
2099
+ -1,
2100
+ 1,
2101
+ 1,
2102
+ 0,
2103
+ 0,
2104
+ 0,
2105
+ 0,
2106
+ 0,
2107
+ 2,
2108
+ 1,
2109
+ 1,
2110
+ 1,
2111
+ -1,
2112
+ 0,
2113
+ 1,
2114
+ 1,
2115
+ 1,
2116
+ 0,
2117
+ -1,
2118
+ 2,
2119
+ 2,
2120
+ 0,
2121
+ 0,
2122
+ 0,
2123
+ 2,
2124
+ 1,
2125
+ 1,
2126
+ -1,
2127
+ 1,
2128
+ 0,
2129
+ 1,
2130
+ 1,
2131
+ 0,
2132
+ 1,
2133
+ -1,
2134
+ 2,
2135
+ 2,
2136
+ 0,
2137
+ 0,
2138
+ 0,
2139
+ 2,
2140
+ 1,
2141
+ 1,
2142
+ -1,
2143
+ 0,
2144
+ 1,
2145
+ 1,
2146
+ 1,
2147
+ 0,
2148
+ -1,
2149
+ 1,
2150
+ 2,
2151
+ 2,
2152
+ 0,
2153
+ 0,
2154
+ 0,
2155
+ 2,
2156
+ 1,
2157
+ 1,
2158
+ 1,
2159
+ -1,
2160
+ 0,
2161
+ 1,
2162
+ 1,
2163
+ 1,
2164
+ 0,
2165
+ -1,
2166
+ 2,
2167
+ 0,
2168
+ 2,
2169
+ 0,
2170
+ 0,
2171
+ 2,
2172
+ 1,
2173
+ -1,
2174
+ 1,
2175
+ 1,
2176
+ 0,
2177
+ 1,
2178
+ 0,
2179
+ 1,
2180
+ 1,
2181
+ -1,
2182
+ 2,
2183
+ 0,
2184
+ 2,
2185
+ 0,
2186
+ 0,
2187
+ 2,
2188
+ 1,
2189
+ -1,
2190
+ 1,
2191
+ 0,
2192
+ 1,
2193
+ 1,
2194
+ 0,
2195
+ 1,
2196
+ -1,
2197
+ 1,
2198
+ 2,
2199
+ 0,
2200
+ 2,
2201
+ 0,
2202
+ 0,
2203
+ 2,
2204
+ 1,
2205
+ 1,
2206
+ -1,
2207
+ 1,
2208
+ 0,
2209
+ 1,
2210
+ 1,
2211
+ 0,
2212
+ 1,
2213
+ -1,
2214
+ 2,
2215
+ 0,
2216
+ 0,
2217
+ 2,
2218
+ 0,
2219
+ 2,
2220
+ 1,
2221
+ -1,
2222
+ 1,
2223
+ 1,
2224
+ 0,
2225
+ 1,
2226
+ 0,
2227
+ 1,
2228
+ 1,
2229
+ -1,
2230
+ 2,
2231
+ 0,
2232
+ 0,
2233
+ 2,
2234
+ 0,
2235
+ 2,
2236
+ 1,
2237
+ -1,
2238
+ 0,
2239
+ 1,
2240
+ 1,
2241
+ 1,
2242
+ 0,
2243
+ -1,
2244
+ 1,
2245
+ 1,
2246
+ 2,
2247
+ 0,
2248
+ 0,
2249
+ 2,
2250
+ 0,
2251
+ 2,
2252
+ 1,
2253
+ 1,
2254
+ -1,
2255
+ 0,
2256
+ 1,
2257
+ 1,
2258
+ 1,
2259
+ 0,
2260
+ -1,
2261
+ 1,
2262
+ 2,
2263
+ 0,
2264
+ 0,
2265
+ 0,
2266
+ 2,
2267
+ 2,
2268
+ 1,
2269
+ -1,
2270
+ 1,
2271
+ 0,
2272
+ 1,
2273
+ 1,
2274
+ 0,
2275
+ 1,
2276
+ -1,
2277
+ 1,
2278
+ 2,
2279
+ 0,
2280
+ 0,
2281
+ 0,
2282
+ 2,
2283
+ 2,
2284
+ 1,
2285
+ -1,
2286
+ 0,
2287
+ 1,
2288
+ 1,
2289
+ 1,
2290
+ 0,
2291
+ -1,
2292
+ 1,
2293
+ 1,
2294
+ 2,
2295
+ 0,
2296
+ 0,
2297
+ 0,
2298
+ 2,
2299
+ 3,
2300
+ 1,
2301
+ 1,
2302
+ 0,
2303
+ 0,
2304
+ 0,
2305
+ 2,
2306
+ 2,
2307
+ 0,
2308
+ 0,
2309
+ 0,
2310
+ 2,
2311
+ 1,
2312
+ 1,
2313
+ 1,
2314
+ -1,
2315
+ 3,
2316
+ 1,
2317
+ 0,
2318
+ 1,
2319
+ 0,
2320
+ 0,
2321
+ 2,
2322
+ 0,
2323
+ 2,
2324
+ 0,
2325
+ 0,
2326
+ 2,
2327
+ 1,
2328
+ 1,
2329
+ 1,
2330
+ -1,
2331
+ 3,
2332
+ 1,
2333
+ 0,
2334
+ 0,
2335
+ 1,
2336
+ 0,
2337
+ 2,
2338
+ 0,
2339
+ 0,
2340
+ 2,
2341
+ 0,
2342
+ 2,
2343
+ 1,
2344
+ 1,
2345
+ 1,
2346
+ -1,
2347
+ 3,
2348
+ 1,
2349
+ 1,
2350
+ 0,
2351
+ 0,
2352
+ 0,
2353
+ 2,
2354
+ 2,
2355
+ 0,
2356
+ 0,
2357
+ 0,
2358
+ 2,
2359
+ 1,
2360
+ 1,
2361
+ -1,
2362
+ 1,
2363
+ 3,
2364
+ 1,
2365
+ 0,
2366
+ 1,
2367
+ 0,
2368
+ 0,
2369
+ 2,
2370
+ 0,
2371
+ 2,
2372
+ 0,
2373
+ 0,
2374
+ 2,
2375
+ 1,
2376
+ 1,
2377
+ -1,
2378
+ 1,
2379
+ 3,
2380
+ 1,
2381
+ 0,
2382
+ 0,
2383
+ 0,
2384
+ 1,
2385
+ 2,
2386
+ 0,
2387
+ 0,
2388
+ 0,
2389
+ 2,
2390
+ 2,
2391
+ 1,
2392
+ 1,
2393
+ -1,
2394
+ 1,
2395
+ 3,
2396
+ 1,
2397
+ 1,
2398
+ 0,
2399
+ 0,
2400
+ 0,
2401
+ 2,
2402
+ 2,
2403
+ 0,
2404
+ 0,
2405
+ 0,
2406
+ 2,
2407
+ 1,
2408
+ -1,
2409
+ 1,
2410
+ 1,
2411
+ 3,
2412
+ 1,
2413
+ 0,
2414
+ 0,
2415
+ 1,
2416
+ 0,
2417
+ 2,
2418
+ 0,
2419
+ 0,
2420
+ 2,
2421
+ 0,
2422
+ 2,
2423
+ 1,
2424
+ -1,
2425
+ 1,
2426
+ 1,
2427
+ 3,
2428
+ 1,
2429
+ 0,
2430
+ 0,
2431
+ 0,
2432
+ 1,
2433
+ 2,
2434
+ 0,
2435
+ 0,
2436
+ 0,
2437
+ 2,
2438
+ 2,
2439
+ 1,
2440
+ -1,
2441
+ 1,
2442
+ 1,
2443
+ 3,
2444
+ 1,
2445
+ 0,
2446
+ 1,
2447
+ 0,
2448
+ 0,
2449
+ 2,
2450
+ 0,
2451
+ 2,
2452
+ 0,
2453
+ 0,
2454
+ 2,
2455
+ -1,
2456
+ 1,
2457
+ 1,
2458
+ 1,
2459
+ 3,
2460
+ 1,
2461
+ 0,
2462
+ 0,
2463
+ 1,
2464
+ 0,
2465
+ 2,
2466
+ 0,
2467
+ 0,
2468
+ 2,
2469
+ 0,
2470
+ 2,
2471
+ -1,
2472
+ 1,
2473
+ 1,
2474
+ 1,
2475
+ 3,
2476
+ 1,
2477
+ 0,
2478
+ 0,
2479
+ 0,
2480
+ 1,
2481
+ 2,
2482
+ 0,
2483
+ 0,
2484
+ 0,
2485
+ 2,
2486
+ 2,
2487
+ -1,
2488
+ 1,
2489
+ 1,
2490
+ 1,
2491
+ 3,
2492
+ 3,
2493
+ 2,
2494
+ 1,
2495
+ 0,
2496
+ 0,
2497
+ 3,
2498
+ 1,
2499
+ 2,
2500
+ 0,
2501
+ 0,
2502
+ 4,
2503
+ 1,
2504
+ 1,
2505
+ 1,
2506
+ 1,
2507
+ 3,
2508
+ 3,
2509
+ 2,
2510
+ 0,
2511
+ 1,
2512
+ 0,
2513
+ 3,
2514
+ 1,
2515
+ 0,
2516
+ 2,
2517
+ 0,
2518
+ 4,
2519
+ 1,
2520
+ 1,
2521
+ 1,
2522
+ 1,
2523
+ 3,
2524
+ 3,
2525
+ 0,
2526
+ 2,
2527
+ 1,
2528
+ 0,
2529
+ 3,
2530
+ 0,
2531
+ 1,
2532
+ 2,
2533
+ 0,
2534
+ 4,
2535
+ 1,
2536
+ 1,
2537
+ 1,
2538
+ 1,
2539
+ 3,
2540
+ 3,
2541
+ 2,
2542
+ 0,
2543
+ 0,
2544
+ 1,
2545
+ 3,
2546
+ 1,
2547
+ 0,
2548
+ 0,
2549
+ 2,
2550
+ 4,
2551
+ 1,
2552
+ 1,
2553
+ 1,
2554
+ 1,
2555
+ 3,
2556
+ 3,
2557
+ 0,
2558
+ 2,
2559
+ 0,
2560
+ 1,
2561
+ 3,
2562
+ 0,
2563
+ 1,
2564
+ 0,
2565
+ 2,
2566
+ 4,
2567
+ 1,
2568
+ 1,
2569
+ 1,
2570
+ 1,
2571
+ 3,
2572
+ 3,
2573
+ 0,
2574
+ 0,
2575
+ 2,
2576
+ 1,
2577
+ 3,
2578
+ 0,
2579
+ 0,
2580
+ 1,
2581
+ 2,
2582
+ 4,
2583
+ 1,
2584
+ 1,
2585
+ 1,
2586
+ 1,
2587
+ 3,
2588
+ 3,
2589
+ 2,
2590
+ 1,
2591
+ 0,
2592
+ 0,
2593
+ 3,
2594
+ 1,
2595
+ 2,
2596
+ 0,
2597
+ 0,
2598
+ 2,
2599
+ 1,
2600
+ 1,
2601
+ 1,
2602
+ -1,
2603
+ 3,
2604
+ 3,
2605
+ 2,
2606
+ 0,
2607
+ 1,
2608
+ 0,
2609
+ 3,
2610
+ 1,
2611
+ 0,
2612
+ 2,
2613
+ 0,
2614
+ 2,
2615
+ 1,
2616
+ 1,
2617
+ 1,
2618
+ -1,
2619
+ 3,
2620
+ 3,
2621
+ 0,
2622
+ 2,
2623
+ 1,
2624
+ 0,
2625
+ 3,
2626
+ 0,
2627
+ 1,
2628
+ 2,
2629
+ 0,
2630
+ 2,
2631
+ 1,
2632
+ 1,
2633
+ 1,
2634
+ -1,
2635
+ 3,
2636
+ 3,
2637
+ 2,
2638
+ 1,
2639
+ 0,
2640
+ 0,
2641
+ 3,
2642
+ 1,
2643
+ 2,
2644
+ 0,
2645
+ 0,
2646
+ 2,
2647
+ 1,
2648
+ 1,
2649
+ -1,
2650
+ 1,
2651
+ 3,
2652
+ 3,
2653
+ 2,
2654
+ 0,
2655
+ 0,
2656
+ 1,
2657
+ 3,
2658
+ 1,
2659
+ 0,
2660
+ 0,
2661
+ 2,
2662
+ 2,
2663
+ 1,
2664
+ 1,
2665
+ -1,
2666
+ 1,
2667
+ 3,
2668
+ 3,
2669
+ 0,
2670
+ 2,
2671
+ 0,
2672
+ 1,
2673
+ 3,
2674
+ 0,
2675
+ 1,
2676
+ 0,
2677
+ 2,
2678
+ 2,
2679
+ 1,
2680
+ 1,
2681
+ -1,
2682
+ 1,
2683
+ 3,
2684
+ 3,
2685
+ 2,
2686
+ 0,
2687
+ 1,
2688
+ 0,
2689
+ 3,
2690
+ 1,
2691
+ 0,
2692
+ 2,
2693
+ 0,
2694
+ 2,
2695
+ 1,
2696
+ -1,
2697
+ 1,
2698
+ 1,
2699
+ 3,
2700
+ 3,
2701
+ 2,
2702
+ 0,
2703
+ 0,
2704
+ 1,
2705
+ 3,
2706
+ 1,
2707
+ 0,
2708
+ 0,
2709
+ 2,
2710
+ 2,
2711
+ 1,
2712
+ -1,
2713
+ 1,
2714
+ 1,
2715
+ 3,
2716
+ 3,
2717
+ 0,
2718
+ 0,
2719
+ 2,
2720
+ 1,
2721
+ 3,
2722
+ 0,
2723
+ 0,
2724
+ 1,
2725
+ 2,
2726
+ 2,
2727
+ 1,
2728
+ -1,
2729
+ 1,
2730
+ 1,
2731
+ 3,
2732
+ 3,
2733
+ 0,
2734
+ 2,
2735
+ 1,
2736
+ 0,
2737
+ 3,
2738
+ 0,
2739
+ 1,
2740
+ 2,
2741
+ 0,
2742
+ 2,
2743
+ -1,
2744
+ 1,
2745
+ 1,
2746
+ 1,
2747
+ 3,
2748
+ 3,
2749
+ 0,
2750
+ 2,
2751
+ 0,
2752
+ 1,
2753
+ 3,
2754
+ 0,
2755
+ 1,
2756
+ 0,
2757
+ 2,
2758
+ 2,
2759
+ -1,
2760
+ 1,
2761
+ 1,
2762
+ 1,
2763
+ 3,
2764
+ 3,
2765
+ 0,
2766
+ 0,
2767
+ 2,
2768
+ 1,
2769
+ 3,
2770
+ 0,
2771
+ 0,
2772
+ 1,
2773
+ 2,
2774
+ 2,
2775
+ -1,
2776
+ 1,
2777
+ 1,
2778
+ 1,
2779
+ ];
2780
+ }
2781
+ noise(x, y, z, w) {
2782
+ const { _perm, _perm4D, _lookup, _STRETCH_4D, _SQUISH_4D, _gradients4D, _NORM_4D } = this;
2783
+ const stretchOffset = (x + y + z + w) * _STRETCH_4D, xs = x + stretchOffset, ys = y + stretchOffset, zs = z + stretchOffset, ws = w + stretchOffset, xsb = Math.floor(xs), ysb = Math.floor(ys), zsb = Math.floor(zs), wsb = Math.floor(ws), squishOffset = (xsb + ysb + zsb + wsb) * _SQUISH_4D, dx0 = x - (xsb + squishOffset), dy0 = y - (ysb + squishOffset), dz0 = z - (zsb + squishOffset), dw0 = w - (wsb + squishOffset), xins = xs - xsb, yins = ys - ysb, zins = zs - zsb, wins = ws - wsb, inSum = xins + yins + zins + wins, hash = (zins - wins + 1) |
2784
+ ((yins - zins + 1) << 1) |
2785
+ ((yins - wins + 1) << 2) |
2786
+ ((xins - yins + 1) << 3) |
2787
+ ((xins - zins + 1) << 4) |
2788
+ ((xins - wins + 1) << 5) |
2789
+ (inSum << 6) |
2790
+ ((inSum + wins) << 8) |
2791
+ ((inSum + zins) << 11) |
2792
+ ((inSum + yins) << 14) |
2793
+ ((inSum + xins) << 17);
2794
+ let value = 0;
2795
+ for (let c = _lookup[hash]; c !== undefined; c = c.next) {
2796
+ const dx = dx0 + c.dx, dy = dy0 + c.dy, dz = dz0 + c.dz, dw = dw0 + c.dw, attn = 2 - dx * dx - dy * dy - dz * dz - dw * dw;
2797
+ if (attn > 0) {
2798
+ const px = xsb + c.xsb, py = ysb + c.ysb, pz = zsb + c.zsb, pw = wsb + c.wsb, indexPartA = _perm[px & 0xff], indexPartB = _perm[(indexPartA + py) & 0xff], indexPartC = _perm[(indexPartB + pz) & 0xff], index = _perm4D[(indexPartC + pw) & 0xff], valuePart = _gradients4D[index] * dx +
2799
+ _gradients4D[index + 1] * dy +
2800
+ _gradients4D[index + 2] * dz +
2801
+ _gradients4D[index + 3] * dw;
2802
+ value += attn * attn * attn * attn * valuePart;
2803
+ }
2804
+ }
2805
+ return value * _NORM_4D;
2806
+ }
2807
+ seed(clientSeed) {
2808
+ const { _p4D, _base4D, _lookupPairs4D } = this;
2809
+ const contributions = [];
2810
+ for (let i = 0; i < _p4D.length; i += 16) {
2811
+ const baseSet = _base4D[_p4D[i]];
2812
+ let previous = null, current = null;
2813
+ for (let k = 0; k < baseSet.length; k += 5) {
2814
+ current = this._contribution4D(baseSet[k], baseSet[k + 1], baseSet[k + 2], baseSet[k + 3], baseSet[k + 4]);
2815
+ if (previous === null) {
2816
+ contributions[i / 16] = current;
2817
+ }
2818
+ else {
2819
+ previous.next = current;
2820
+ }
2821
+ previous = current;
2822
+ }
2823
+ if (current) {
2824
+ current.next = this._contribution4D(_p4D[i + 1], _p4D[i + 2], _p4D[i + 3], _p4D[i + 4], _p4D[i + 5]);
2825
+ current.next.next = this._contribution4D(_p4D[i + 6], _p4D[i + 7], _p4D[i + 8], _p4D[i + 9], _p4D[i + 10]);
2826
+ current.next.next.next = this._contribution4D(_p4D[i + 11], _p4D[i + 12], _p4D[i + 13], _p4D[i + 14], _p4D[i + 15]);
2827
+ }
2828
+ }
2829
+ this._lookup = [];
2830
+ for (let i = 0; i < _lookupPairs4D.length; i += 2) {
2831
+ this._lookup[_lookupPairs4D[i]] = contributions[_lookupPairs4D[i + 1]];
2832
+ }
2833
+ this._perm = new Uint8Array(256);
2834
+ this._perm4D = new Uint8Array(256);
2835
+ const source = new Uint8Array(256);
2836
+ for (let i = 0; i < 256; i++) {
2837
+ source[i] = i;
2838
+ }
2839
+ let seed = new Uint32Array(1);
2840
+ seed[0] = clientSeed;
2841
+ seed = shuffleSeed(shuffleSeed(shuffleSeed(seed)));
2842
+ for (let i = 255; i >= 0; i--) {
2843
+ seed = shuffleSeed(seed);
2844
+ const r = new Uint32Array(1);
2845
+ r[0] = (seed[0] + 31) % (i + 1);
2846
+ if (r[0] < 0) {
2847
+ r[0] += i + 1;
2848
+ }
2849
+ this._perm[i] = source[r[0]];
2850
+ this._perm4D[i] = this._perm[i] & 0xfc;
2851
+ source[r[0]] = source[i];
2852
+ }
2853
+ }
2854
+ _contribution4D(multiplier, xsb, ysb, zsb, wsb) {
2855
+ const { _SQUISH_4D } = this;
2856
+ return {
2857
+ dx: -xsb - multiplier * _SQUISH_4D,
2858
+ dy: -ysb - multiplier * _SQUISH_4D,
2859
+ dz: -zsb - multiplier * _SQUISH_4D,
2860
+ dw: -wsb - multiplier * _SQUISH_4D,
2861
+ xsb,
2862
+ ysb,
2863
+ zsb,
2864
+ wsb,
2865
+ };
2866
+ }
2867
+ }