@glandais/vcyclist-engine 6.0.0 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/vcyclist-gpx.js CHANGED
@@ -19,120 +19,136 @@
19
19
  'use strict';
20
20
  //region block: imports
21
21
  var imul = Math.imul;
22
- var Unit_instance = kotlin_kotlin.$_$.g1;
23
- var enumEntries = kotlin_kotlin.$_$.f5;
24
- var Enum = kotlin_kotlin.$_$.t9;
25
- var protoOf = kotlin_kotlin.$_$.j7;
26
- var initMetadataForClass = kotlin_kotlin.$_$.u6;
22
+ var Unit_instance = kotlin_kotlin.$_$.h1;
23
+ var enumEntries = kotlin_kotlin.$_$.j5;
24
+ var Enum = kotlin_kotlin.$_$.ha;
25
+ var protoOf = kotlin_kotlin.$_$.o7;
26
+ var initMetadataForClass = kotlin_kotlin.$_$.z6;
27
27
  var VOID = kotlin_kotlin.$_$.a;
28
- var toString = kotlin_kotlin.$_$.va;
29
- var getNumberHashCode = kotlin_kotlin.$_$.q6;
30
- var getStringHashCode = kotlin_kotlin.$_$.s6;
31
- var equals = kotlin_kotlin.$_$.n6;
32
- var emptyList = kotlin_kotlin.$_$.g3;
33
- var toString_0 = kotlin_kotlin.$_$.m7;
34
- var hashCode = kotlin_kotlin.$_$.t6;
35
- var listOf = kotlin_kotlin.$_$.r3;
36
- var initMetadataForCompanion = kotlin_kotlin.$_$.v6;
37
- var ArrayList_init_$Create$ = kotlin_kotlin.$_$.j1;
38
- var addAll = kotlin_kotlin.$_$.s2;
39
- var constructCallableReference = kotlin_kotlin.$_$.k6;
40
- var lazy = kotlin_kotlin.$_$.pa;
41
- var KProperty1 = kotlin_kotlin.$_$.d8;
42
- var getPropertyCallableRef = kotlin_kotlin.$_$.r6;
43
- var collectionSizeOrDefault = kotlin_kotlin.$_$.x2;
44
- var ArrayList_init_$Create$_0 = kotlin_kotlin.$_$.i1;
45
- var checkIndexOverflow = kotlin_kotlin.$_$.w2;
46
- var getOrNull = kotlin_kotlin.$_$.k3;
47
- var Companion_instance = kotlin_kotlin.$_$.e1;
48
- var noWhenBranchMatchedException = kotlin_kotlin.$_$.qa;
49
- var isNaN_0 = kotlin_kotlin.$_$.oa;
50
- var numberToLong = kotlin_kotlin.$_$.v5;
51
- var Long = kotlin_kotlin.$_$.x9;
52
- var compare = kotlin_kotlin.$_$.m5;
53
- var roundToLong = kotlin_kotlin.$_$.o7;
54
- var add = kotlin_kotlin.$_$.i5;
55
- var roundToInt = kotlin_kotlin.$_$.n7;
28
+ var toString = kotlin_kotlin.$_$.jb;
29
+ var getNumberHashCode = kotlin_kotlin.$_$.v6;
30
+ var getStringHashCode = kotlin_kotlin.$_$.x6;
31
+ var equals = kotlin_kotlin.$_$.s6;
32
+ var emptyList = kotlin_kotlin.$_$.h3;
33
+ var toString_0 = kotlin_kotlin.$_$.r7;
34
+ var hashCode = kotlin_kotlin.$_$.y6;
35
+ var listOf = kotlin_kotlin.$_$.t3;
36
+ var initMetadataForCompanion = kotlin_kotlin.$_$.a7;
37
+ var ArrayList_init_$Create$ = kotlin_kotlin.$_$.k1;
38
+ var addAll = kotlin_kotlin.$_$.t2;
39
+ var constructCallableReference = kotlin_kotlin.$_$.p6;
40
+ var lazy = kotlin_kotlin.$_$.db;
41
+ var KProperty1 = kotlin_kotlin.$_$.i8;
42
+ var getPropertyCallableRef = kotlin_kotlin.$_$.w6;
43
+ var toLong = kotlin_kotlin.$_$.y9;
44
+ var Long = kotlin_kotlin.$_$.la;
45
+ var compare = kotlin_kotlin.$_$.q5;
46
+ var toNumber = kotlin_kotlin.$_$.f6;
47
+ var substring = kotlin_kotlin.$_$.r9;
48
+ var toCharArray = kotlin_kotlin.$_$.t9;
49
+ var _Char___init__impl__6a9atx = kotlin_kotlin.$_$.b;
50
+ var Pair = kotlin_kotlin.$_$.na;
51
+ var Char__plus_impl_qi7pgj = kotlin_kotlin.$_$.f;
52
+ var concatToString = kotlin_kotlin.$_$.r8;
53
+ var charArrayOf = kotlin_kotlin.$_$.k6;
54
+ var trimEnd = kotlin_kotlin.$_$.ba;
55
+ var substring_0 = kotlin_kotlin.$_$.q9;
56
+ var repeat = kotlin_kotlin.$_$.i9;
57
+ var isFinite = kotlin_kotlin.$_$.ab;
58
+ var startsWith = kotlin_kotlin.$_$.n9;
59
+ var charSequenceLength = kotlin_kotlin.$_$.n6;
60
+ var charSequenceGet = kotlin_kotlin.$_$.m6;
61
+ var removePrefix = kotlin_kotlin.$_$.g9;
62
+ var toInt = kotlin_kotlin.$_$.w9;
63
+ var indexOf = kotlin_kotlin.$_$.y8;
64
+ var THROW_CCE = kotlin_kotlin.$_$.qa;
65
+ var isCharSequence = kotlin_kotlin.$_$.g7;
66
+ var removeRange = kotlin_kotlin.$_$.h9;
67
+ var charCodeAt = kotlin_kotlin.$_$.l6;
68
+ var Char__compareTo_impl_ypi4mb = kotlin_kotlin.$_$.d;
69
+ var initMetadataForObject = kotlin_kotlin.$_$.f7;
70
+ var collectionSizeOrDefault = kotlin_kotlin.$_$.y2;
71
+ var ArrayList_init_$Create$_0 = kotlin_kotlin.$_$.j1;
72
+ var checkIndexOverflow = kotlin_kotlin.$_$.x2;
73
+ var getOrNull = kotlin_kotlin.$_$.m3;
74
+ var Companion_instance = kotlin_kotlin.$_$.f1;
75
+ var noWhenBranchMatchedException = kotlin_kotlin.$_$.eb;
76
+ var isNaN_0 = kotlin_kotlin.$_$.cb;
77
+ var numberToLong = kotlin_kotlin.$_$.a6;
78
+ var roundToLong = kotlin_kotlin.$_$.t7;
79
+ var add = kotlin_kotlin.$_$.m5;
80
+ var roundToInt = kotlin_kotlin.$_$.s7;
56
81
  var get_xmlStreaming = kotlin_io_github_pdvrieze_xmlutil_core.$_$.d;
57
- var IllegalArgumentException_init_$Create$ = kotlin_kotlin.$_$.b2;
58
- var Exception = kotlin_kotlin.$_$.v9;
59
- var IllegalArgumentException = kotlin_kotlin.$_$.w9;
60
- var IllegalArgumentException_init_$Create$_0 = kotlin_kotlin.$_$.a2;
82
+ var IllegalArgumentException_init_$Create$ = kotlin_kotlin.$_$.c2;
83
+ var Exception = kotlin_kotlin.$_$.ja;
84
+ var IllegalArgumentException = kotlin_kotlin.$_$.ka;
85
+ var IllegalArgumentException_init_$Create$_0 = kotlin_kotlin.$_$.b2;
61
86
  var EventType_START_ELEMENT_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.a;
62
- var THROW_CCE = kotlin_kotlin.$_$.ca;
63
- var isCharSequence = kotlin_kotlin.$_$.b7;
64
- var trim = kotlin_kotlin.$_$.o9;
65
- var charSequenceLength = kotlin_kotlin.$_$.i6;
66
- var isBlank = kotlin_kotlin.$_$.t8;
67
- var toDoubleOrNull = kotlin_kotlin.$_$.h9;
68
- var numberToInt = kotlin_kotlin.$_$.h7;
69
- var StringBuilder_init_$Create$ = kotlin_kotlin.$_$.u1;
70
- var Companion_getInstance = kotlin_kotlin.$_$.d1;
71
- var initMetadataForObject = kotlin_kotlin.$_$.a7;
72
- var firstOrNull = kotlin_kotlin.$_$.i3;
73
- var IllegalStateException_init_$Create$ = kotlin_kotlin.$_$.c2;
74
- var to = kotlin_kotlin.$_$.wa;
75
- var toNumber = kotlin_kotlin.$_$.a6;
76
- var toSet = kotlin_kotlin.$_$.k4;
77
- var rangeTo = kotlin_kotlin.$_$.y7;
78
- var Collection = kotlin_kotlin.$_$.n2;
79
- var isInterface = kotlin_kotlin.$_$.c7;
87
+ var trim = kotlin_kotlin.$_$.ca;
88
+ var isBlank = kotlin_kotlin.$_$.a9;
89
+ var toDoubleOrNull = kotlin_kotlin.$_$.u9;
90
+ var numberToInt = kotlin_kotlin.$_$.m7;
91
+ var StringBuilder_init_$Create$ = kotlin_kotlin.$_$.v1;
92
+ var Companion_getInstance = kotlin_kotlin.$_$.e1;
93
+ var firstOrNull = kotlin_kotlin.$_$.k3;
94
+ var IllegalStateException_init_$Create$ = kotlin_kotlin.$_$.d2;
95
+ var to = kotlin_kotlin.$_$.kb;
96
+ var toSet = kotlin_kotlin.$_$.o4;
97
+ var rangeTo = kotlin_kotlin.$_$.d8;
98
+ var Collection = kotlin_kotlin.$_$.o2;
99
+ var isInterface = kotlin_kotlin.$_$.h7;
80
100
  var XmlDeclMode_None_getInstance = kotlin_io_github_pdvrieze_xmlutil_core.$_$.b;
81
101
  var newGenericWriter = kotlin_io_github_pdvrieze_xmlutil_core.$_$.c;
82
- var charCodeAt = kotlin_kotlin.$_$.g6;
83
- var _Char___init__impl__6a9atx = kotlin_kotlin.$_$.b;
84
- var substring = kotlin_kotlin.$_$.e9;
85
- var isHighSurrogate = kotlin_kotlin.$_$.v8;
86
- var isLowSurrogate = kotlin_kotlin.$_$.w8;
87
- var Char__toInt_impl_vasixd = kotlin_kotlin.$_$.f;
88
- var StringBuilder_init_$Create$_0 = kotlin_kotlin.$_$.t1;
89
- var Pair = kotlin_kotlin.$_$.z9;
90
- var substring_0 = kotlin_kotlin.$_$.f9;
91
- var toLong = kotlin_kotlin.$_$.l9;
92
- var numberRangeToNumber = kotlin_kotlin.$_$.f7;
93
- var ClosedRange = kotlin_kotlin.$_$.q7;
94
- var contains = kotlin_kotlin.$_$.w7;
95
- var convertToInt = kotlin_kotlin.$_$.o5;
96
- var NumberFormatException = kotlin_kotlin.$_$.y9;
97
- var isDigit = kotlin_kotlin.$_$.u8;
98
- var isWhitespace = kotlin_kotlin.$_$.x8;
99
- var setOf = kotlin_kotlin.$_$.a4;
100
- var mapOf = kotlin_kotlin.$_$.u3;
101
- var toDouble = kotlin_kotlin.$_$.i9;
102
- var round = kotlin_kotlin.$_$.p7;
103
- var divide = kotlin_kotlin.$_$.q5;
104
- var equalsLong = kotlin_kotlin.$_$.r5;
105
- var modulo = kotlin_kotlin.$_$.t5;
106
- var padStart = kotlin_kotlin.$_$.y8;
107
- var longArray = kotlin_kotlin.$_$.e7;
108
- var multiply = kotlin_kotlin.$_$.u5;
109
- var isInfinite = kotlin_kotlin.$_$.na;
110
- var toString_1 = kotlin_kotlin.$_$.g;
111
- var Char__hashCode_impl_otmys = kotlin_kotlin.$_$.d;
112
- var getBooleanHashCode = kotlin_kotlin.$_$.p6;
113
- var charSequenceGet = kotlin_kotlin.$_$.h6;
114
- var replace = kotlin_kotlin.$_$.z8;
115
- var get_lastIndex = kotlin_kotlin.$_$.o3;
116
- var toString_2 = kotlin_kotlin.$_$.m9;
102
+ var isHighSurrogate = kotlin_kotlin.$_$.c9;
103
+ var isLowSurrogate = kotlin_kotlin.$_$.d9;
104
+ var Char__toInt_impl_vasixd = kotlin_kotlin.$_$.g;
105
+ var StringBuilder_init_$Create$_0 = kotlin_kotlin.$_$.u1;
106
+ var indexOf_0 = kotlin_kotlin.$_$.x8;
107
+ var startsWith_0 = kotlin_kotlin.$_$.m9;
108
+ var toLong_0 = kotlin_kotlin.$_$.z9;
109
+ var numberRangeToNumber = kotlin_kotlin.$_$.k7;
110
+ var ClosedRange = kotlin_kotlin.$_$.v7;
111
+ var contains = kotlin_kotlin.$_$.b8;
112
+ var convertToInt = kotlin_kotlin.$_$.s5;
113
+ var NumberFormatException = kotlin_kotlin.$_$.ma;
114
+ var isDigit = kotlin_kotlin.$_$.b9;
115
+ var isWhitespace = kotlin_kotlin.$_$.e9;
116
+ var setOf = kotlin_kotlin.$_$.e4;
117
+ var listOf_0 = kotlin_kotlin.$_$.u3;
118
+ var mapOf = kotlin_kotlin.$_$.w3;
119
+ var toDouble = kotlin_kotlin.$_$.v9;
120
+ var round = kotlin_kotlin.$_$.u7;
121
+ var divide = kotlin_kotlin.$_$.u5;
122
+ var equalsLong = kotlin_kotlin.$_$.v5;
123
+ var modulo = kotlin_kotlin.$_$.x5;
124
+ var padStart = kotlin_kotlin.$_$.f9;
125
+ var longArray = kotlin_kotlin.$_$.j7;
126
+ var multiply = kotlin_kotlin.$_$.y5;
127
+ var isInfinite = kotlin_kotlin.$_$.bb;
128
+ var toString_1 = kotlin_kotlin.$_$.h;
129
+ var Char__hashCode_impl_otmys = kotlin_kotlin.$_$.e;
130
+ var getBooleanHashCode = kotlin_kotlin.$_$.u6;
131
+ var replace = kotlin_kotlin.$_$.j9;
132
+ var get_lastIndex = kotlin_kotlin.$_$.q3;
133
+ var toString_2 = kotlin_kotlin.$_$.aa;
117
134
  var ElevationSmoother_instance = kotlin_io_github_glandais_elevation.$_$.c;
118
- var equals_0 = kotlin_kotlin.$_$.p8;
119
- var joinToString = kotlin_kotlin.$_$.m3;
120
- var isFinite = kotlin_kotlin.$_$.ma;
121
- var CoroutineImpl = kotlin_kotlin.$_$.d5;
135
+ var equals_0 = kotlin_kotlin.$_$.v8;
136
+ var joinToString = kotlin_kotlin.$_$.o3;
137
+ var CoroutineImpl = kotlin_kotlin.$_$.h5;
122
138
  var LatLon = kotlin_io_github_glandais_elevation.$_$.g;
123
- var get_COROUTINE_SUSPENDED = kotlin_kotlin.$_$.o4;
124
- var initMetadataForCoroutine = kotlin_kotlin.$_$.w6;
125
- var until = kotlin_kotlin.$_$.z7;
139
+ var get_COROUTINE_SUSPENDED = kotlin_kotlin.$_$.s4;
140
+ var initMetadataForCoroutine = kotlin_kotlin.$_$.b7;
141
+ var until = kotlin_kotlin.$_$.e8;
126
142
  var LatLonElevation = kotlin_io_github_glandais_elevation.$_$.f;
127
- var arrayCopy = kotlin_kotlin.$_$.t2;
143
+ var arrayCopy = kotlin_kotlin.$_$.u2;
128
144
  var Distance_instance = kotlin_io_github_glandais_elevation.$_$.a;
129
145
  var DouglasPeucker_instance = kotlin_io_github_glandais_elevation.$_$.b;
130
- var mapCapacity = kotlin_kotlin.$_$.t3;
131
- var coerceAtLeast = kotlin_kotlin.$_$.s7;
132
- var LinkedHashMap_init_$Create$ = kotlin_kotlin.$_$.o1;
133
- var LinkedHashMap_init_$Create$_0 = kotlin_kotlin.$_$.p1;
134
- var get_ONE = kotlin_kotlin.$_$.h5;
135
- var sorted = kotlin_kotlin.$_$.c4;
146
+ var mapCapacity = kotlin_kotlin.$_$.v3;
147
+ var coerceAtLeast = kotlin_kotlin.$_$.x7;
148
+ var LinkedHashMap_init_$Create$ = kotlin_kotlin.$_$.p1;
149
+ var LinkedHashMap_init_$Create$_0 = kotlin_kotlin.$_$.q1;
150
+ var get_ONE = kotlin_kotlin.$_$.l5;
151
+ var sorted = kotlin_kotlin.$_$.g4;
136
152
  //endregion
137
153
  //region block: pre-declaration
138
154
  initMetadataForClass(GpxPathKind, 'GpxPathKind', VOID, Enum);
@@ -142,6 +158,7 @@
142
158
  initMetadataForClass(GpxTrack, 'GpxTrack');
143
159
  initMetadataForClass(GpxSegment, 'GpxSegment');
144
160
  initMetadataForClass(GpxTrackPoint, 'GpxTrackPoint');
161
+ initMetadataForObject(GpxDecimal, 'GpxDecimal');
145
162
  initMetadataForCompanion(Companion_0);
146
163
  initMetadataForClass(GpxPowerSource, 'GpxPowerSource', VOID, Enum);
147
164
  initMetadataForClass(ExtensionsAccumulator, 'ExtensionsAccumulator', ExtensionsAccumulator);
@@ -466,6 +483,169 @@
466
483
  static_init();
467
484
  return GpxPathKind_ROUTE_instance;
468
485
  }
486
+ function readsBack($this, candidate, negative, value) {
487
+ var tmp0_elvis_lhs = exactValue($this, candidate.first_1, candidate.second_1);
488
+ var tmp;
489
+ if (tmp0_elvis_lhs == null) {
490
+ return false;
491
+ } else {
492
+ tmp = tmp0_elvis_lhs;
493
+ }
494
+ var readBack = tmp;
495
+ return (negative ? -readBack : readBack) === value;
496
+ }
497
+ function exactValue($this, digits, point) {
498
+ if (digits.length > 18)
499
+ return null;
500
+ var significand = toLong(digits);
501
+ if (compare(significand, new Long(0, 2097152)) > 0)
502
+ return null;
503
+ var scale = point - digits.length | 0;
504
+ var tmp;
505
+ if (0 <= scale ? scale <= 22 : false) {
506
+ tmp = toNumber(significand) * $this.POWERS_OF_TEN_1[scale];
507
+ } else {
508
+ var containsArg = -scale | 0;
509
+ if (1 <= containsArg ? containsArg <= 22 : false) {
510
+ tmp = toNumber(significand) / $this.POWERS_OF_TEN_1[-scale | 0];
511
+ } else {
512
+ tmp = null;
513
+ }
514
+ }
515
+ return tmp;
516
+ }
517
+ function round_0($this, digits, point, keep, up) {
518
+ var kept = toCharArray(substring(digits, 0, keep));
519
+ if (up) {
520
+ var i = keep - 1 | 0;
521
+ while (i >= 0 && kept[i] === _Char___init__impl__6a9atx(57)) {
522
+ var _unary__edvuaz = i;
523
+ i = _unary__edvuaz - 1 | 0;
524
+ kept[_unary__edvuaz] = _Char___init__impl__6a9atx(48);
525
+ }
526
+ if (i < 0)
527
+ return new Pair('1', point + 1 | 0);
528
+ kept[i] = Char__plus_impl_qi7pgj(kept[i], 1);
529
+ }
530
+ return new Pair(trimEnd(concatToString(kept), charArrayOf([_Char___init__impl__6a9atx(48)])), point);
531
+ }
532
+ function layout($this, negative, digits, point) {
533
+ var plain = point <= 0 ? '0.' + repeat('0', -point | 0) + digits : point >= digits.length ? digits + repeat('0', point - digits.length | 0) : substring(digits, 0, point) + '.' + substring_0(digits, point);
534
+ return negative ? '-' + plain : plain;
535
+ }
536
+ function GpxDecimal() {
537
+ GpxDecimal_instance = this;
538
+ this.MAX_LONG_DIGITS_1 = 18;
539
+ this.MAX_EXACT_INTEGER_1 = new Long(0, 2097152);
540
+ this.MAX_EXACT_POWER_1 = 22;
541
+ var tmp = this;
542
+ // Inline function 'kotlin.doubleArrayOf' call
543
+ tmp.POWERS_OF_TEN_1 = new Float64Array([1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, 1.0E7, 1.0E8, 1.0E9, 1.0E10, 1.0E11, 1.0E12, 1.0E13, 1.0E14, 1.0E15, 1.0E16, 1.0E17, 1.0E18, 1.0E19, 1.0E20, 1.0E21, 1.0E22]);
544
+ }
545
+ protoOf(GpxDecimal).format_rk25g1_k$ = function (value) {
546
+ if (!isFinite(value))
547
+ return value.toString();
548
+ var text = value.toString();
549
+ var negative = startsWith(text, _Char___init__impl__6a9atx(45));
550
+ var unsigned = negative ? substring_0(text, 1) : text;
551
+ var tmp$ret$0;
552
+ $l$block: {
553
+ // Inline function 'kotlin.text.indexOfFirst' call
554
+ var inductionVariable = 0;
555
+ var last = charSequenceLength(unsigned) - 1 | 0;
556
+ if (inductionVariable <= last)
557
+ do {
558
+ var index = inductionVariable;
559
+ inductionVariable = inductionVariable + 1 | 0;
560
+ var it = charSequenceGet(unsigned, index);
561
+ if (it === _Char___init__impl__6a9atx(101) || it === _Char___init__impl__6a9atx(69)) {
562
+ tmp$ret$0 = index;
563
+ break $l$block;
564
+ }
565
+ }
566
+ while (inductionVariable <= last);
567
+ tmp$ret$0 = -1;
568
+ }
569
+ var expAt = tmp$ret$0;
570
+ var mantissa = expAt === -1 ? unsigned : substring(unsigned, 0, expAt);
571
+ var exponent = expAt === -1 ? 0 : toInt(removePrefix(substring_0(unsigned, expAt + 1 | 0), '+'));
572
+ var dot = indexOf(mantissa, _Char___init__impl__6a9atx(46));
573
+ var tmp;
574
+ if (dot === -1) {
575
+ tmp = mantissa;
576
+ } else {
577
+ // Inline function 'kotlin.text.removeRange' call
578
+ var endIndex = dot + 1 | 0;
579
+ tmp = toString_0(removeRange(isCharSequence(mantissa) ? mantissa : THROW_CCE(), dot, endIndex));
580
+ }
581
+ var allDigits = tmp;
582
+ var tmp$ret$3;
583
+ $l$block_0: {
584
+ // Inline function 'kotlin.text.indexOfFirst' call
585
+ var inductionVariable_0 = 0;
586
+ var last_0 = charSequenceLength(allDigits) - 1 | 0;
587
+ if (inductionVariable_0 <= last_0)
588
+ do {
589
+ var index_0 = inductionVariable_0;
590
+ inductionVariable_0 = inductionVariable_0 + 1 | 0;
591
+ if (!(charSequenceGet(allDigits, index_0) === _Char___init__impl__6a9atx(48))) {
592
+ tmp$ret$3 = index_0;
593
+ break $l$block_0;
594
+ }
595
+ }
596
+ while (inductionVariable_0 <= last_0);
597
+ tmp$ret$3 = -1;
598
+ }
599
+ var leadingZeros = tmp$ret$3;
600
+ if (leadingZeros === -1)
601
+ return '0';
602
+ var digits = trimEnd(substring_0(allDigits, leadingZeros), charArrayOf([_Char___init__impl__6a9atx(48)]));
603
+ var point = ((dot === -1 ? mantissa.length : dot) + exponent | 0) - leadingZeros | 0;
604
+ $l$loop: while (digits.length > 1) {
605
+ var keep = digits.length - 1 | 0;
606
+ var up = Char__compareTo_impl_ypi4mb(charCodeAt(digits, keep), _Char___init__impl__6a9atx(53)) >= 0;
607
+ // Inline function 'kotlin.takeIf' call
608
+ var this_0 = round_0(this, digits, point, keep, up);
609
+ var tmp_0;
610
+ if (readsBack(GpxDecimal_getInstance(), this_0, negative, value)) {
611
+ tmp_0 = this_0;
612
+ } else {
613
+ tmp_0 = null;
614
+ }
615
+ var tmp0_elvis_lhs = tmp_0;
616
+ var tmp_1;
617
+ if (tmp0_elvis_lhs == null) {
618
+ // Inline function 'kotlin.takeIf' call
619
+ var this_1 = round_0(this, digits, point, keep, !up);
620
+ var tmp_2;
621
+ if (readsBack(GpxDecimal_getInstance(), this_1, negative, value)) {
622
+ tmp_2 = this_1;
623
+ } else {
624
+ tmp_2 = null;
625
+ }
626
+ tmp_1 = tmp_2;
627
+ } else {
628
+ tmp_1 = tmp0_elvis_lhs;
629
+ }
630
+ var tmp1_elvis_lhs = tmp_1;
631
+ var tmp_3;
632
+ if (tmp1_elvis_lhs == null) {
633
+ break $l$loop;
634
+ } else {
635
+ tmp_3 = tmp1_elvis_lhs;
636
+ }
637
+ var shorter = tmp_3;
638
+ digits = shorter.first_1;
639
+ point = shorter.second_1;
640
+ }
641
+ return layout(this, negative, digits, point);
642
+ };
643
+ var GpxDecimal_instance;
644
+ function GpxDecimal_getInstance() {
645
+ if (GpxDecimal_instance == null)
646
+ new GpxDecimal();
647
+ return GpxDecimal_instance;
648
+ }
469
649
  function pathsToGpxDocument(paths, name, trackNames, waypoints, type, startTime, powerSource) {
470
650
  name = name === VOID ? 'noname' : name;
471
651
  trackNames = trackNames === VOID ? null : trackNames;
@@ -1624,31 +1804,37 @@
1624
1804
  var _iterator__ex2g4s = tmp0.iterator_jk1svi_k$();
1625
1805
  while (_iterator__ex2g4s.hasNext_bitz1p_k$()) {
1626
1806
  var element = _iterator__ex2g4s.next_20eer_k$();
1627
- var tmp0_0 = element.get_points_i5obn0_k$();
1628
- var tmp$ret$2;
1629
- $l$block_1: {
1630
- // Inline function 'kotlin.collections.any' call
1631
- var tmp_1;
1632
- if (isInterface(tmp0_0, Collection)) {
1633
- tmp_1 = tmp0_0.isEmpty_y1axqb_k$();
1634
- } else {
1635
- tmp_1 = false;
1636
- }
1637
- if (tmp_1) {
1638
- tmp$ret$2 = false;
1639
- break $l$block_1;
1640
- }
1641
- var _iterator__ex2g4s_0 = tmp0_0.iterator_jk1svi_k$();
1642
- while (_iterator__ex2g4s_0.hasNext_bitz1p_k$()) {
1643
- var element_0 = _iterator__ex2g4s_0.next_20eer_k$();
1644
- if (!(element_0.roadWidthM_1 == null)) {
1645
- tmp$ret$2 = true;
1807
+ var tmp_1;
1808
+ if (element.kind_1.equals(GpxPathKind_TRACK_getInstance()) && !(element.roadWidthM_1 == null)) {
1809
+ tmp_1 = true;
1810
+ } else {
1811
+ var tmp0_0 = element.get_points_i5obn0_k$();
1812
+ var tmp$ret$2;
1813
+ $l$block_1: {
1814
+ // Inline function 'kotlin.collections.any' call
1815
+ var tmp_2;
1816
+ if (isInterface(tmp0_0, Collection)) {
1817
+ tmp_2 = tmp0_0.isEmpty_y1axqb_k$();
1818
+ } else {
1819
+ tmp_2 = false;
1820
+ }
1821
+ if (tmp_2) {
1822
+ tmp$ret$2 = false;
1646
1823
  break $l$block_1;
1647
1824
  }
1825
+ var _iterator__ex2g4s_0 = tmp0_0.iterator_jk1svi_k$();
1826
+ while (_iterator__ex2g4s_0.hasNext_bitz1p_k$()) {
1827
+ var element_0 = _iterator__ex2g4s_0.next_20eer_k$();
1828
+ if (!(element_0.roadWidthM_1 == null)) {
1829
+ tmp$ret$2 = true;
1830
+ break $l$block_1;
1831
+ }
1832
+ }
1833
+ tmp$ret$2 = false;
1648
1834
  }
1649
- tmp$ret$2 = false;
1835
+ tmp_1 = tmp$ret$2;
1650
1836
  }
1651
- if (tmp$ret$2) {
1837
+ if (tmp_1) {
1652
1838
  tmp$ret$0 = true;
1653
1839
  break $l$block_2;
1654
1840
  }
@@ -1700,14 +1886,14 @@
1700
1886
  }
1701
1887
  function writeWaypoint($this, w, waypoint) {
1702
1888
  w.startTag_pjuzbi_k$('http://www.topografix.com/GPX/1/1', 'wpt', '');
1703
- w.attribute_ruzjv8_k$(null, 'lat', null, waypoint.latitudeDeg_1.toString());
1704
- w.attribute_ruzjv8_k$(null, 'lon', null, waypoint.longitudeDeg_1.toString());
1889
+ w.attribute_ruzjv8_k$(null, 'lat', null, GpxDecimal_getInstance().format_rk25g1_k$(waypoint.latitudeDeg_1));
1890
+ w.attribute_ruzjv8_k$(null, 'lon', null, GpxDecimal_getInstance().format_rk25g1_k$(waypoint.longitudeDeg_1));
1705
1891
  var tmp0_safe_receiver = waypoint.elevationM_1;
1706
1892
  if (tmp0_safe_receiver == null)
1707
1893
  null;
1708
1894
  else {
1709
1895
  // Inline function 'kotlin.let' call
1710
- writeSimpleText(GpxWriter_instance, w, 'ele', tmp0_safe_receiver.toString());
1896
+ writeSimpleText(GpxWriter_instance, w, 'ele', GpxDecimal_getInstance().format_rk25g1_k$(tmp0_safe_receiver));
1711
1897
  }
1712
1898
  var tmp1_safe_receiver = waypoint.timeEpochMs_1;
1713
1899
  if (tmp1_safe_receiver == null)
@@ -1767,6 +1953,11 @@
1767
1953
  // Inline function 'kotlin.let' call
1768
1954
  writeSimpleText(GpxWriter_instance, w, 'type', tmp1_safe_receiver);
1769
1955
  }
1956
+ if (writeExtensions && !(track.roadWidthM_1 == null)) {
1957
+ w.startTag_pjuzbi_k$('http://www.topografix.com/GPX/1/1', 'extensions', '');
1958
+ writeRoadWidth($this, w, track.roadWidthM_1);
1959
+ w.endTag_yzukbv_k$('http://www.topografix.com/GPX/1/1', 'extensions', '');
1960
+ }
1770
1961
  var _iterator__ex2g4s = track.segments_1.iterator_jk1svi_k$();
1771
1962
  while (_iterator__ex2g4s.hasNext_bitz1p_k$()) {
1772
1963
  var segment = _iterator__ex2g4s.next_20eer_k$();
@@ -1806,55 +1997,63 @@
1806
1997
  function writeTrackPoint($this, w, p, writeExtensions, localName) {
1807
1998
  localName = localName === VOID ? 'trkpt' : localName;
1808
1999
  w.startTag_pjuzbi_k$('http://www.topografix.com/GPX/1/1', localName, '');
1809
- w.attribute_ruzjv8_k$(null, 'lat', null, p.latitudeDeg_1.toString());
1810
- w.attribute_ruzjv8_k$(null, 'lon', null, p.longitudeDeg_1.toString());
1811
- var tmp0_safe_receiver = p.timeEpochMs_1;
2000
+ w.attribute_ruzjv8_k$(null, 'lat', null, GpxDecimal_getInstance().format_rk25g1_k$(p.latitudeDeg_1));
2001
+ w.attribute_ruzjv8_k$(null, 'lon', null, GpxDecimal_getInstance().format_rk25g1_k$(p.longitudeDeg_1));
2002
+ var tmp0_safe_receiver = p.elevationM_1;
1812
2003
  if (tmp0_safe_receiver == null)
1813
2004
  null;
1814
2005
  else {
1815
2006
  // Inline function 'kotlin.let' call
1816
- writeSimpleText(GpxWriter_instance, w, 'time', Companion_getInstance().fromEpochMilliseconds_uaz65_k$(tmp0_safe_receiver).toString());
2007
+ writeSimpleText(GpxWriter_instance, w, 'ele', GpxDecimal_getInstance().format_rk25g1_k$(tmp0_safe_receiver));
1817
2008
  }
1818
- var tmp1_safe_receiver = p.elevationM_1;
2009
+ var tmp1_safe_receiver = p.timeEpochMs_1;
1819
2010
  if (tmp1_safe_receiver == null)
1820
2011
  null;
1821
2012
  else {
1822
2013
  // Inline function 'kotlin.let' call
1823
- writeSimpleText(GpxWriter_instance, w, 'ele', tmp1_safe_receiver.toString());
2014
+ writeSimpleText(GpxWriter_instance, w, 'time', Companion_getInstance().fromEpochMilliseconds_uaz65_k$(tmp1_safe_receiver).toString());
1824
2015
  }
1825
2016
  var hasGarminExt = !(p.heartRate_1 == null) || !(p.cadence_1 == null) || !(p.temperatureC_1 == null);
1826
2017
  var hasPower = !(p.powerW_1 == null);
1827
2018
  var hasRoadWidth = !(p.roadWidthM_1 == null);
1828
2019
  if (writeExtensions && (hasGarminExt || hasPower || hasRoadWidth)) {
1829
2020
  w.startTag_pjuzbi_k$('http://www.topografix.com/GPX/1/1', 'extensions', '');
1830
- if (hasPower) {
1831
- writeSimpleText($this, w, 'power', p.powerW_1.toString());
2021
+ var tmp2_safe_receiver = p.powerW_1;
2022
+ if (tmp2_safe_receiver == null)
2023
+ null;
2024
+ else {
2025
+ // Inline function 'kotlin.let' call
2026
+ writeSimpleText(GpxWriter_instance, w, 'power', GpxDecimal_getInstance().format_rk25g1_k$(tmp2_safe_receiver));
1832
2027
  }
1833
- if (hasRoadWidth) {
1834
- writeNamespaced($this, w, 'https://github.com/glandais/vcyclist/xmlschemas/v1', 'roadWidth', 'vc', p.roadWidthM_1.toString());
2028
+ var tmp3_safe_receiver = p.roadWidthM_1;
2029
+ if (tmp3_safe_receiver == null)
2030
+ null;
2031
+ else {
2032
+ // Inline function 'kotlin.let' call
2033
+ writeRoadWidth(GpxWriter_instance, w, tmp3_safe_receiver);
1835
2034
  }
1836
2035
  if (hasGarminExt) {
1837
2036
  w.startTag_pjuzbi_k$('http://www.garmin.com/xmlschemas/TrackPointExtension/v1', 'TrackPointExtension', 'gpxtpx');
1838
- var tmp2_safe_receiver = p.heartRate_1;
1839
- if (tmp2_safe_receiver == null)
2037
+ var tmp4_safe_receiver = p.heartRate_1;
2038
+ if (tmp4_safe_receiver == null)
1840
2039
  null;
1841
2040
  else {
1842
2041
  // Inline function 'kotlin.let' call
1843
- writeNamespaced(GpxWriter_instance, w, 'http://www.garmin.com/xmlschemas/TrackPointExtension/v1', 'hr', 'gpxtpx', tmp2_safe_receiver.toString());
2042
+ writeNamespaced(GpxWriter_instance, w, 'http://www.garmin.com/xmlschemas/TrackPointExtension/v1', 'hr', 'gpxtpx', tmp4_safe_receiver.toString());
1844
2043
  }
1845
- var tmp3_safe_receiver = p.cadence_1;
1846
- if (tmp3_safe_receiver == null)
2044
+ var tmp5_safe_receiver = p.cadence_1;
2045
+ if (tmp5_safe_receiver == null)
1847
2046
  null;
1848
2047
  else {
1849
2048
  // Inline function 'kotlin.let' call
1850
- writeNamespaced(GpxWriter_instance, w, 'http://www.garmin.com/xmlschemas/TrackPointExtension/v1', 'cad', 'gpxtpx', tmp3_safe_receiver.toString());
2049
+ writeNamespaced(GpxWriter_instance, w, 'http://www.garmin.com/xmlschemas/TrackPointExtension/v1', 'cad', 'gpxtpx', tmp5_safe_receiver.toString());
1851
2050
  }
1852
- var tmp4_safe_receiver = p.temperatureC_1;
1853
- if (tmp4_safe_receiver == null)
2051
+ var tmp6_safe_receiver = p.temperatureC_1;
2052
+ if (tmp6_safe_receiver == null)
1854
2053
  null;
1855
2054
  else {
1856
2055
  // Inline function 'kotlin.let' call
1857
- writeNamespaced(GpxWriter_instance, w, 'http://www.garmin.com/xmlschemas/TrackPointExtension/v1', 'atemp', 'gpxtpx', tmp4_safe_receiver.toString());
2056
+ writeNamespaced(GpxWriter_instance, w, 'http://www.garmin.com/xmlschemas/TrackPointExtension/v1', 'atemp', 'gpxtpx', GpxDecimal_getInstance().format_rk25g1_k$(tmp6_safe_receiver));
1858
2057
  }
1859
2058
  w.endTag_yzukbv_k$('http://www.garmin.com/xmlschemas/TrackPointExtension/v1', 'TrackPointExtension', 'gpxtpx');
1860
2059
  }
@@ -1862,6 +2061,9 @@
1862
2061
  }
1863
2062
  w.endTag_yzukbv_k$('http://www.topografix.com/GPX/1/1', localName, '');
1864
2063
  }
2064
+ function writeRoadWidth($this, w, widthM) {
2065
+ return writeNamespaced($this, w, 'https://github.com/glandais/vcyclist/xmlschemas/v1', 'roadWidth', 'vc', GpxDecimal_getInstance().format_rk25g1_k$(widthM));
2066
+ }
1865
2067
  function writeSimpleText($this, w, localName, text) {
1866
2068
  w.startTag_pjuzbi_k$('http://www.topografix.com/GPX/1/1', localName, '');
1867
2069
  w.text_x72pul_k$(text);
@@ -1908,7 +2110,7 @@
1908
2110
  tmp_0 = false;
1909
2111
  }
1910
2112
  if (tmp_0) {
1911
- tmp = substring(xml, 1);
2113
+ tmp = substring_0(xml, 1);
1912
2114
  } else {
1913
2115
  tmp = null;
1914
2116
  }
@@ -1954,15 +2156,25 @@
1954
2156
  var sb = null;
1955
2157
  var i = 0;
1956
2158
  var n = xml.length;
1957
- while (i < n) {
2159
+ $l$loop: while (i < n) {
1958
2160
  var c = charCodeAt(xml, i);
2161
+ var verbatimEnd = verbatimSpanEnd($this, xml, i);
2162
+ if (!(verbatimEnd === -1)) {
2163
+ var tmp0_safe_receiver = sb;
2164
+ if (tmp0_safe_receiver == null)
2165
+ null;
2166
+ else
2167
+ tmp0_safe_receiver.append_xdc1zw_k$(xml, i, verbatimEnd);
2168
+ i = verbatimEnd;
2169
+ continue $l$loop;
2170
+ }
1959
2171
  if (c === _Char___init__impl__6a9atx(38)) {
1960
2172
  if (!(findReferenceEnd($this, xml, i) === -1)) {
1961
- var tmp0_safe_receiver = sb;
1962
- if (tmp0_safe_receiver == null)
2173
+ var tmp1_safe_receiver = sb;
2174
+ if (tmp1_safe_receiver == null)
1963
2175
  null;
1964
2176
  else
1965
- tmp0_safe_receiver.append_58al37_k$(c);
2177
+ tmp1_safe_receiver.append_58al37_k$(c);
1966
2178
  } else {
1967
2179
  if (sb == null)
1968
2180
  sb = StringBuilder_init_$Create$_0(xml.length + 16 | 0).append_xdc1zw_k$(xml, 0, i);
@@ -1970,11 +2182,11 @@
1970
2182
  count = count + 1 | 0;
1971
2183
  }
1972
2184
  } else {
1973
- var tmp1_safe_receiver = sb;
1974
- if (tmp1_safe_receiver == null)
2185
+ var tmp2_safe_receiver = sb;
2186
+ if (tmp2_safe_receiver == null)
1975
2187
  null;
1976
2188
  else
1977
- tmp1_safe_receiver.append_58al37_k$(c);
2189
+ tmp2_safe_receiver.append_58al37_k$(c);
1978
2190
  }
1979
2191
  i = i + 1 | 0;
1980
2192
  }
@@ -2039,22 +2251,42 @@
2039
2251
  var refs = ArrayList_init_$Create$();
2040
2252
  var i = 0;
2041
2253
  var n = xml.length;
2042
- $l$loop: while (i < n) {
2254
+ $l$loop_0: while (i < n) {
2255
+ var verbatimEnd = verbatimSpanEnd($this, xml, i);
2256
+ if (!(verbatimEnd === -1)) {
2257
+ i = verbatimEnd;
2258
+ continue $l$loop_0;
2259
+ }
2043
2260
  if (charCodeAt(xml, i) === _Char___init__impl__6a9atx(38) && (i + 1 | 0) < n && charCodeAt(xml, i + 1 | 0) === _Char___init__impl__6a9atx(35)) {
2044
2261
  var end = findReferenceEnd($this, xml, i);
2045
2262
  if (!(end === -1)) {
2046
- var value = parseNumericReferenceValue($this, substring_0(xml, i + 2 | 0, end));
2263
+ var value = parseNumericReferenceValue($this, substring(xml, i + 2 | 0, end));
2047
2264
  if (!(value === -1)) {
2048
2265
  refs.add_utx5q5_k$(new NumericRef(i, end + 1 | 0, value));
2049
2266
  }
2050
2267
  i = end + 1 | 0;
2051
- continue $l$loop;
2268
+ continue $l$loop_0;
2052
2269
  }
2053
2270
  }
2054
2271
  i = i + 1 | 0;
2055
2272
  }
2056
2273
  return refs;
2057
2274
  }
2275
+ function verbatimSpanEnd($this, xml, start) {
2276
+ if (!(charCodeAt(xml, start) === _Char___init__impl__6a9atx(60)))
2277
+ return -1;
2278
+ var _iterator__ex2g4s = $this.VERBATIM_SPANS_1.iterator_jk1svi_k$();
2279
+ while (_iterator__ex2g4s.hasNext_bitz1p_k$()) {
2280
+ var _destruct__k2r9zo = _iterator__ex2g4s.next_20eer_k$();
2281
+ var open = _destruct__k2r9zo.component1_7eebsc_k$();
2282
+ var close = _destruct__k2r9zo.component2_7eebsb_k$();
2283
+ if (startsWith_0(xml, open, start)) {
2284
+ var end = indexOf_0(xml, close, start + open.length | 0);
2285
+ return end === -1 ? xml.length : end + close.length | 0;
2286
+ }
2287
+ }
2288
+ return -1;
2289
+ }
2058
2290
  function parseNumericReferenceValue($this, body) {
2059
2291
  var tmp;
2060
2292
  try {
@@ -2066,7 +2298,7 @@
2066
2298
  tmp_0 = false;
2067
2299
  }
2068
2300
  var hex = tmp_0;
2069
- var raw = toLong(hex ? substring(body, 1) : body, hex ? 16 : 10);
2301
+ var raw = toLong_0(hex ? substring_0(body, 1) : body, hex ? 16 : 10);
2070
2302
  var tmp_1;
2071
2303
  // Inline function 'kotlin.ranges.contains' call
2072
2304
  var this_0 = numberRangeToNumber(0, 1114111);
@@ -2117,7 +2349,7 @@
2117
2349
  }
2118
2350
  if (j >= n || !(charCodeAt(xml, j) === _Char___init__impl__6a9atx(59)))
2119
2351
  return -1;
2120
- return $this.PREDEFINED_ENTITIES_1.contains_aljjnj_k$(substring_0(xml, nameStart, j)) ? j : -1;
2352
+ return $this.PREDEFINED_ENTITIES_1.contains_aljjnj_k$(substring(xml, nameStart, j)) ? j : -1;
2121
2353
  }
2122
2354
  function isHexDigit($this, $receiver) {
2123
2355
  return isDigit($receiver) || (_Char___init__impl__6a9atx(97) <= $receiver ? $receiver <= _Char___init__impl__6a9atx(102) : false) || (_Char___init__impl__6a9atx(65) <= $receiver ? $receiver <= _Char___init__impl__6a9atx(70) : false);
@@ -2125,6 +2357,7 @@
2125
2357
  function GpxXmlRepair() {
2126
2358
  GpxXmlRepair_instance = this;
2127
2359
  this.PREDEFINED_ENTITIES_1 = setOf(['amp', 'lt', 'gt', 'apos', 'quot']);
2360
+ this.VERBATIM_SPANS_1 = listOf_0([to('<![CDATA[', ']]>'), to('<!--', '-->'), to('<?', '?>')]);
2128
2361
  this.MAX_REFERENCE_BODY_LENGTH_1 = 20;
2129
2362
  }
2130
2363
  protoOf(GpxXmlRepair).repair_iwt4xf_k$ = function (xml) {
@@ -3424,17 +3657,18 @@
3424
3657
  }
3425
3658
  function computeBearing($this, from, to) {
3426
3659
  var lat1 = $this.latitude_gb4iok_k$(from);
3427
- var lon1 = $this.longitude_a9xl_k$(from);
3428
3660
  var lat2 = $this.latitude_gb4iok_k$(to);
3429
- var lon2 = $this.longitude_a9xl_k$(to);
3430
- // Inline function 'kotlin.math.cos' call
3431
- var x1 = lon1 * Math.cos(lat1);
3432
- var y1 = lat1;
3661
+ var dLon = $this.longitude_a9xl_k$(to) - $this.longitude_a9xl_k$(from);
3662
+ if (dLon > 3.141592653589793) {
3663
+ dLon = dLon - 2 * 3.141592653589793;
3664
+ } else if (dLon <= -3.141592653589793) {
3665
+ dLon = dLon + 2 * 3.141592653589793;
3666
+ }
3667
+ var tmp = dLon;
3433
3668
  // Inline function 'kotlin.math.cos' call
3434
- var x2 = lon2 * Math.cos(lat2);
3435
- var y2 = lat2;
3436
- var dy = y2 - y1;
3437
- var dx = x2 - x1;
3669
+ var x = (lat1 + lat2) / 2;
3670
+ var dx = tmp * Math.cos(x);
3671
+ var dy = lat2 - lat1;
3438
3672
  // Inline function 'kotlin.math.atan2' call
3439
3673
  var y = -dy;
3440
3674
  return Math.atan2(y, dx);