catboost 1.25.1 → 1.27.0

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 (290) hide show
  1. package/DEPLOYMENT.md +22 -15
  2. package/README.md +43 -27
  3. package/binding.gyp +5 -7
  4. package/build_scripts/bootstrap.js +2 -1
  5. package/build_scripts/out/build.js +46 -68
  6. package/build_scripts/out/build_model.js +1 -1
  7. package/build_scripts/out/{build_ya.js → build_native.js} +1 -1
  8. package/build_scripts/out/ci.js +5 -5
  9. package/build_scripts/out/common.js +1 -1
  10. package/build_scripts/out/config.js +32 -18
  11. package/build_scripts/out/install.js +5 -3
  12. package/build_scripts/out/package_prepublish.js +1 -1
  13. package/build_scripts/out/packaging.js +1 -19
  14. package/build_scripts/out/run_tests.js +1 -1
  15. package/build_scripts/out/test.js +8 -3
  16. package/config.json +18 -11
  17. package/inc/catboost/libs/model_interface/c_api.h +367 -5
  18. package/lib/catboost.d.ts +65 -21
  19. package/package.json +4 -4
  20. package/src/api_helpers.cpp +100 -24
  21. package/src/api_helpers.h +8 -7
  22. package/src/api_module.cpp +1 -2
  23. package/src/model.cpp +483 -83
  24. package/src/model.h +24 -9
  25. package/inc/contrib/libs/cxxsupp/system_stl/include/stlfwd +0 -14
  26. package/inc/util/charset/recode_result.h +0 -9
  27. package/inc/util/charset/unicode_table.h +0 -123
  28. package/inc/util/charset/unidata.h +0 -421
  29. package/inc/util/charset/utf8.h +0 -384
  30. package/inc/util/charset/wide.h +0 -843
  31. package/inc/util/charset/wide_specific.h +0 -22
  32. package/inc/util/datetime/base.h +0 -669
  33. package/inc/util/datetime/constants.h +0 -7
  34. package/inc/util/datetime/cputimer.h +0 -124
  35. package/inc/util/datetime/parser.h +0 -292
  36. package/inc/util/datetime/systime.h +0 -47
  37. package/inc/util/datetime/uptime.h +0 -8
  38. package/inc/util/digest/city.h +0 -88
  39. package/inc/util/digest/fnv.h +0 -73
  40. package/inc/util/digest/multi.h +0 -14
  41. package/inc/util/digest/murmur.h +0 -57
  42. package/inc/util/digest/numeric.h +0 -86
  43. package/inc/util/digest/sequence.h +0 -48
  44. package/inc/util/draft/date.h +0 -129
  45. package/inc/util/draft/datetime.h +0 -184
  46. package/inc/util/draft/enum.h +0 -136
  47. package/inc/util/draft/holder_vector.h +0 -102
  48. package/inc/util/draft/ip.h +0 -131
  49. package/inc/util/draft/matrix.h +0 -108
  50. package/inc/util/draft/memory.h +0 -40
  51. package/inc/util/folder/dirent_win.h +0 -46
  52. package/inc/util/folder/dirut.h +0 -121
  53. package/inc/util/folder/filelist.h +0 -81
  54. package/inc/util/folder/fts.h +0 -108
  55. package/inc/util/folder/iterator.h +0 -109
  56. package/inc/util/folder/lstat_win.h +0 -20
  57. package/inc/util/folder/path.h +0 -225
  58. package/inc/util/folder/pathsplit.h +0 -113
  59. package/inc/util/folder/tempdir.h +0 -42
  60. package/inc/util/generic/adaptor.h +0 -134
  61. package/inc/util/generic/algorithm.h +0 -765
  62. package/inc/util/generic/array_ref.h +0 -282
  63. package/inc/util/generic/array_size.h +0 -24
  64. package/inc/util/generic/benchmark/vector_count_ctor/f.h +0 -9
  65. package/inc/util/generic/bitmap.h +0 -1115
  66. package/inc/util/generic/bitops.h +0 -459
  67. package/inc/util/generic/bt_exception.h +0 -24
  68. package/inc/util/generic/buffer.h +0 -232
  69. package/inc/util/generic/cast.h +0 -176
  70. package/inc/util/generic/deque.h +0 -24
  71. package/inc/util/generic/explicit_type.h +0 -42
  72. package/inc/util/generic/fastqueue.h +0 -55
  73. package/inc/util/generic/flags.h +0 -244
  74. package/inc/util/generic/function.h +0 -103
  75. package/inc/util/generic/fwd.h +0 -171
  76. package/inc/util/generic/guid.h +0 -61
  77. package/inc/util/generic/hash.h +0 -2032
  78. package/inc/util/generic/hash_primes.h +0 -140
  79. package/inc/util/generic/hash_set.h +0 -490
  80. package/inc/util/generic/hide_ptr.h +0 -3
  81. package/inc/util/generic/intrlist.h +0 -876
  82. package/inc/util/generic/is_in.h +0 -53
  83. package/inc/util/generic/iterator.h +0 -137
  84. package/inc/util/generic/iterator_range.h +0 -105
  85. package/inc/util/generic/lazy_value.h +0 -66
  86. package/inc/util/generic/list.h +0 -22
  87. package/inc/util/generic/map.h +0 -44
  88. package/inc/util/generic/mapfindptr.h +0 -60
  89. package/inc/util/generic/maybe.h +0 -713
  90. package/inc/util/generic/maybe_traits.h +0 -164
  91. package/inc/util/generic/mem_copy.h +0 -55
  92. package/inc/util/generic/noncopyable.h +0 -38
  93. package/inc/util/generic/object_counter.h +0 -53
  94. package/inc/util/generic/ptr.h +0 -1113
  95. package/inc/util/generic/queue.h +0 -57
  96. package/inc/util/generic/refcount.h +0 -162
  97. package/inc/util/generic/reserve.h +0 -11
  98. package/inc/util/generic/scope.h +0 -65
  99. package/inc/util/generic/serialized_enum.h +0 -406
  100. package/inc/util/generic/set.h +0 -42
  101. package/inc/util/generic/singleton.h +0 -136
  102. package/inc/util/generic/size_literals.h +0 -65
  103. package/inc/util/generic/stack.h +0 -18
  104. package/inc/util/generic/store_policy.h +0 -120
  105. package/inc/util/generic/strbase.h +0 -612
  106. package/inc/util/generic/strbuf.h +0 -552
  107. package/inc/util/generic/strfcpy.h +0 -17
  108. package/inc/util/generic/string.h +0 -1572
  109. package/inc/util/generic/string_hash.h +0 -21
  110. package/inc/util/generic/string_ut.h +0 -1175
  111. package/inc/util/generic/type_name.h +0 -34
  112. package/inc/util/generic/typelist.h +0 -114
  113. package/inc/util/generic/typetraits.h +0 -325
  114. package/inc/util/generic/utility.h +0 -132
  115. package/inc/util/generic/va_args.h +0 -400
  116. package/inc/util/generic/variant.h +0 -631
  117. package/inc/util/generic/variant_traits.h +0 -171
  118. package/inc/util/generic/vector.h +0 -119
  119. package/inc/util/generic/xrange.h +0 -258
  120. package/inc/util/generic/yexception.h +0 -212
  121. package/inc/util/generic/yexception_ut.h +0 -14
  122. package/inc/util/generic/ylimits.h +0 -92
  123. package/inc/util/generic/ymath.h +0 -206
  124. package/inc/util/memory/addstorage.h +0 -93
  125. package/inc/util/memory/alloc.h +0 -27
  126. package/inc/util/memory/blob.h +0 -296
  127. package/inc/util/memory/mmapalloc.h +0 -8
  128. package/inc/util/memory/pool.h +0 -432
  129. package/inc/util/memory/segmented_string_pool.h +0 -194
  130. package/inc/util/memory/segpool_alloc.h +0 -118
  131. package/inc/util/memory/smallobj.h +0 -141
  132. package/inc/util/memory/tempbuf.h +0 -111
  133. package/inc/util/network/address.h +0 -136
  134. package/inc/util/network/endpoint.h +0 -61
  135. package/inc/util/network/hostip.h +0 -16
  136. package/inc/util/network/init.h +0 -60
  137. package/inc/util/network/interface.h +0 -17
  138. package/inc/util/network/iovec.h +0 -65
  139. package/inc/util/network/ip.h +0 -116
  140. package/inc/util/network/nonblock.h +0 -8
  141. package/inc/util/network/pair.h +0 -9
  142. package/inc/util/network/poller.h +0 -58
  143. package/inc/util/network/pollerimpl.h +0 -707
  144. package/inc/util/network/sock.h +0 -608
  145. package/inc/util/network/socket.h +0 -421
  146. package/inc/util/random/common_ops.h +0 -130
  147. package/inc/util/random/easy.h +0 -47
  148. package/inc/util/random/entropy.h +0 -21
  149. package/inc/util/random/fast.h +0 -101
  150. package/inc/util/random/init_atfork.h +0 -3
  151. package/inc/util/random/lcg_engine.h +0 -66
  152. package/inc/util/random/mersenne.h +0 -46
  153. package/inc/util/random/mersenne32.h +0 -50
  154. package/inc/util/random/mersenne64.h +0 -50
  155. package/inc/util/random/normal.h +0 -38
  156. package/inc/util/random/random.h +0 -30
  157. package/inc/util/random/shuffle.h +0 -39
  158. package/inc/util/str_stl.h +0 -266
  159. package/inc/util/stream/aligned.h +0 -99
  160. package/inc/util/stream/buffer.h +0 -119
  161. package/inc/util/stream/buffered.h +0 -225
  162. package/inc/util/stream/debug.h +0 -53
  163. package/inc/util/stream/direct_io.h +0 -43
  164. package/inc/util/stream/file.h +0 -108
  165. package/inc/util/stream/format.h +0 -444
  166. package/inc/util/stream/fwd.h +0 -100
  167. package/inc/util/stream/hex.h +0 -8
  168. package/inc/util/stream/holder.h +0 -44
  169. package/inc/util/stream/input.h +0 -273
  170. package/inc/util/stream/labeled.h +0 -19
  171. package/inc/util/stream/length.h +0 -100
  172. package/inc/util/stream/mem.h +0 -255
  173. package/inc/util/stream/multi.h +0 -32
  174. package/inc/util/stream/null.h +0 -61
  175. package/inc/util/stream/output.h +0 -304
  176. package/inc/util/stream/pipe.h +0 -112
  177. package/inc/util/stream/printf.h +0 -25
  178. package/inc/util/stream/str.h +0 -207
  179. package/inc/util/stream/tee.h +0 -28
  180. package/inc/util/stream/tempbuf.h +0 -21
  181. package/inc/util/stream/tokenizer.h +0 -214
  182. package/inc/util/stream/trace.h +0 -60
  183. package/inc/util/stream/walk.h +0 -35
  184. package/inc/util/stream/zerocopy.h +0 -91
  185. package/inc/util/stream/zerocopy_output.h +0 -57
  186. package/inc/util/stream/zlib.h +0 -173
  187. package/inc/util/string/ascii.h +0 -236
  188. package/inc/util/string/builder.h +0 -39
  189. package/inc/util/string/cast.h +0 -347
  190. package/inc/util/string/cstriter.h +0 -14
  191. package/inc/util/string/escape.h +0 -70
  192. package/inc/util/string/hex.h +0 -59
  193. package/inc/util/string/join.h +0 -194
  194. package/inc/util/string/printf.h +0 -13
  195. package/inc/util/string/reverse.h +0 -16
  196. package/inc/util/string/split.h +0 -1080
  197. package/inc/util/string/strip.h +0 -257
  198. package/inc/util/string/strspn.h +0 -65
  199. package/inc/util/string/subst.h +0 -56
  200. package/inc/util/string/type.h +0 -50
  201. package/inc/util/string/util.h +0 -195
  202. package/inc/util/string/vector.h +0 -132
  203. package/inc/util/system/align.h +0 -50
  204. package/inc/util/system/atexit.h +0 -22
  205. package/inc/util/system/atomic.h +0 -51
  206. package/inc/util/system/atomic_gcc.h +0 -90
  207. package/inc/util/system/atomic_ops.h +0 -189
  208. package/inc/util/system/atomic_win.h +0 -114
  209. package/inc/util/system/backtrace.h +0 -39
  210. package/inc/util/system/byteorder.h +0 -186
  211. package/inc/util/system/compat.h +0 -84
  212. package/inc/util/system/compiler.h +0 -620
  213. package/inc/util/system/condvar.h +0 -71
  214. package/inc/util/system/context.h +0 -181
  215. package/inc/util/system/context_aarch64.h +0 -8
  216. package/inc/util/system/context_i686.h +0 -9
  217. package/inc/util/system/context_x86.h +0 -12
  218. package/inc/util/system/context_x86_64.h +0 -7
  219. package/inc/util/system/cpu_id.h +0 -159
  220. package/inc/util/system/daemon.h +0 -28
  221. package/inc/util/system/datetime.h +0 -98
  222. package/inc/util/system/defaults.h +0 -149
  223. package/inc/util/system/demangle.h +0 -5
  224. package/inc/util/system/demangle_impl.h +0 -23
  225. package/inc/util/system/direct_io.h +0 -71
  226. package/inc/util/system/dynlib.h +0 -119
  227. package/inc/util/system/env.h +0 -32
  228. package/inc/util/system/error.h +0 -95
  229. package/inc/util/system/event.h +0 -122
  230. package/inc/util/system/execpath.h +0 -17
  231. package/inc/util/system/fasttime.h +0 -6
  232. package/inc/util/system/fhandle.h +0 -27
  233. package/inc/util/system/file.h +0 -210
  234. package/inc/util/system/file_lock.h +0 -34
  235. package/inc/util/system/filemap.h +0 -383
  236. package/inc/util/system/flock.h +0 -35
  237. package/inc/util/system/fs.h +0 -156
  238. package/inc/util/system/fs_win.h +0 -29
  239. package/inc/util/system/fstat.h +0 -46
  240. package/inc/util/system/getpid.h +0 -12
  241. package/inc/util/system/guard.h +0 -179
  242. package/inc/util/system/hi_lo.h +0 -139
  243. package/inc/util/system/hostname.h +0 -10
  244. package/inc/util/system/hp_timer.h +0 -36
  245. package/inc/util/system/info.h +0 -12
  246. package/inc/util/system/interrupt_signals.h +0 -22
  247. package/inc/util/system/madvise.h +0 -30
  248. package/inc/util/system/maxlen.h +0 -32
  249. package/inc/util/system/mem_info.h +0 -18
  250. package/inc/util/system/mincore.h +0 -38
  251. package/inc/util/system/mktemp.h +0 -11
  252. package/inc/util/system/mlock.h +0 -43
  253. package/inc/util/system/mutex.h +0 -67
  254. package/inc/util/system/nice.h +0 -3
  255. package/inc/util/system/pipe.h +0 -90
  256. package/inc/util/system/platform.h +0 -246
  257. package/inc/util/system/progname.h +0 -13
  258. package/inc/util/system/protect.h +0 -25
  259. package/inc/util/system/rusage.h +0 -26
  260. package/inc/util/system/rwlock.h +0 -78
  261. package/inc/util/system/sanitizers.h +0 -122
  262. package/inc/util/system/sem.h +0 -41
  263. package/inc/util/system/shellcommand.h +0 -472
  264. package/inc/util/system/shmat.h +0 -32
  265. package/inc/util/system/sigset.h +0 -78
  266. package/inc/util/system/spin_wait.h +0 -10
  267. package/inc/util/system/spinlock.h +0 -121
  268. package/inc/util/system/src_location.h +0 -25
  269. package/inc/util/system/src_root.h +0 -68
  270. package/inc/util/system/sys_alloc.h +0 -43
  271. package/inc/util/system/sysstat.h +0 -52
  272. package/inc/util/system/tempfile.h +0 -34
  273. package/inc/util/system/thread.h +0 -167
  274. package/inc/util/system/tls.h +0 -307
  275. package/inc/util/system/types.h +0 -119
  276. package/inc/util/system/unaligned_mem.h +0 -67
  277. package/inc/util/system/user.h +0 -5
  278. package/inc/util/system/utime.h +0 -6
  279. package/inc/util/system/valgrind.h +0 -48
  280. package/inc/util/system/winint.h +0 -43
  281. package/inc/util/system/yassert.h +0 -121
  282. package/inc/util/system/yield.h +0 -4
  283. package/inc/util/thread/factory.h +0 -65
  284. package/inc/util/thread/fwd.h +0 -30
  285. package/inc/util/thread/lfqueue.h +0 -406
  286. package/inc/util/thread/lfstack.h +0 -188
  287. package/inc/util/thread/pool.h +0 -388
  288. package/inc/util/thread/singleton.h +0 -42
  289. package/inc/util/ysafeptr.h +0 -427
  290. package/inc/util/ysaveload.h +0 -700
@@ -1,186 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
-
5
- //#define USE_GENERIC_ENDIAN_CVT
6
-
7
- #if defined(_linux_) && !defined(USE_GENERIC_ENDIAN_CVT)
8
- #include <byteswap.h>
9
- #elif defined(_darwin_)
10
- #if defined(_arm_) || defined(__IOS__)
11
- #include <architecture/byte_order.h>
12
- #else
13
- #include <machine/byte_order.h>
14
- #endif
15
- #else
16
- #include <util/generic/utility.h>
17
- #endif
18
-
19
- #if defined(_linux_) && !defined(USE_GENERIC_ENDIAN_CVT)
20
- #define SwapBytes16 bswap_16
21
- #define SwapBytes32 bswap_32
22
- #define SwapBytes64 bswap_64
23
- #elif defined(_darwin_)
24
- #ifdef _arm_
25
- #define SwapBytes16 _OSSwapInt16
26
- #define SwapBytes32 _OSSwapInt32
27
- #define SwapBytes64 _OSSwapInt64
28
- #else
29
- #define SwapBytes16 OSSwapInt16
30
- #define SwapBytes32 OSSwapInt32
31
- #define SwapBytes64 OSSwapInt64
32
- #endif
33
- #else
34
- #if defined(_x86_) && defined(__GNUC__)
35
- #undef asm
36
- #define asm __asm__
37
-
38
- inline ui16 SwapBytes16(ui16 x) noexcept {
39
- ui16 val;
40
-
41
- asm(
42
- "rorw $8, %w0"
43
- : "=r"(val)
44
- : "0"(x)
45
- : "cc");
46
-
47
- return val;
48
- }
49
-
50
- inline ui32 SwapBytes32(ui32 x) noexcept {
51
- ui32 val;
52
-
53
- asm(
54
- "bswap %0"
55
- : "=r"(val)
56
- : "0"(x));
57
-
58
- return val;
59
- }
60
-
61
- #if defined(_x86_64_)
62
- #define HAVE_SWAP_BYTES_64
63
-
64
- inline ui64 SwapBytes64(ui64 x) noexcept {
65
- ui64 val;
66
-
67
- asm(
68
- "bswapq %0"
69
- : "=r"(val)
70
- : "0"(x));
71
-
72
- return val;
73
- }
74
- #endif
75
-
76
- #undef asm
77
- #else
78
- #define byte_n(__val, __n) ((((unsigned char*)(&__val))[__n]))
79
-
80
- inline ui16 SwapBytes16(ui16 val) noexcept {
81
- DoSwap(byte_n(val, 0), byte_n(val, 1));
82
-
83
- return val;
84
- }
85
-
86
- inline ui32 SwapBytes32(ui32 val) noexcept {
87
- DoSwap(byte_n(val, 0), byte_n(val, 3));
88
- DoSwap(byte_n(val, 1), byte_n(val, 2));
89
-
90
- return val;
91
- }
92
-
93
- #undef byte_n
94
- #endif
95
-
96
- #if !defined(HAVE_SWAP_BYTES_64)
97
- inline ui64 SwapBytes64(ui64 val) noexcept {
98
- union {
99
- ui64 val;
100
- ui32 p[2];
101
- } tmp, ret;
102
-
103
- tmp.val = val;
104
- ret.p[0] = SwapBytes32(tmp.p[1]);
105
- ret.p[1] = SwapBytes32(tmp.p[0]);
106
-
107
- return ret.val;
108
- }
109
- #endif
110
-
111
- #undef HAVE_SWAP_BYTES_64
112
- #endif
113
-
114
- //for convenience
115
- static inline ui8 SwapBytes8(ui8 v) noexcept {
116
- return v;
117
- }
118
-
119
- namespace NSwapBytes {
120
- template <unsigned N>
121
- struct TSwapBytesHelper {
122
- };
123
-
124
- #define DEF_SB(X) \
125
- template <> \
126
- struct TSwapBytesHelper<X> { \
127
- template <class T> \
128
- static inline T Swap(T t) noexcept { \
129
- return (T)SwapBytes##X((ui##X)t); \
130
- } \
131
- };
132
-
133
- DEF_SB(8)
134
- DEF_SB(16)
135
- DEF_SB(32)
136
- DEF_SB(64)
137
-
138
- #undef DEF_SB
139
- }
140
-
141
- template <class T>
142
- inline T SwapBytes(T val) noexcept {
143
- return NSwapBytes::TSwapBytesHelper<sizeof(T) * 8>::Swap(val);
144
- }
145
-
146
- template <class T>
147
- inline T LittleToBig(T val) noexcept {
148
- return SwapBytes(val);
149
- }
150
-
151
- template <class T>
152
- inline T BigToLittle(T val) noexcept {
153
- return LittleToBig(val);
154
- }
155
-
156
- template <class T>
157
- inline T HostToInet(T val) noexcept {
158
- #if defined(_big_endian_)
159
- return val;
160
- #elif defined(_little_endian_)
161
- return LittleToBig(val);
162
- #else
163
- #error todo
164
- #endif
165
- }
166
-
167
- template <class T>
168
- inline T InetToHost(T val) noexcept {
169
- return HostToInet(val);
170
- }
171
-
172
- template <class T>
173
- inline T HostToLittle(T val) noexcept {
174
- #if defined(_big_endian_)
175
- return BigToLittle(val);
176
- #elif defined(_little_endian_)
177
- return val;
178
- #else
179
- #error todo
180
- #endif
181
- }
182
-
183
- template <class T>
184
- inline T LittleToHost(T val) noexcept {
185
- return HostToLittle(val);
186
- }
@@ -1,84 +0,0 @@
1
- #pragma once
2
-
3
- #include "defaults.h"
4
-
5
- #include <cstdarg>
6
-
7
- #include <csignal>
8
-
9
- #if defined(_unix_)
10
- #include <unistd.h>
11
- #endif
12
-
13
- #if defined(_win_)
14
- #include <process.h>
15
- #endif
16
-
17
- extern "C" {
18
- #if defined(_win_)
19
- using pid_t = int;
20
-
21
- inline unsigned int alarm(unsigned int /*seconds*/) {
22
- return 0; // no alarm is currently set :)
23
- }
24
-
25
- #define SIGQUIT SIGBREAK // instead of 3
26
- #define SIGKILL SIGTERM // instead of 9
27
- #define SIGPIPE 13 //will not receive under win?
28
- #define SIGALRM 14 //will not receive under win?
29
- #endif
30
-
31
- #if defined(__FreeBSD__) || defined(_darwin_)
32
- #define HAVE_NATIVE_GETPROGNAME
33
- #endif
34
-
35
- #ifndef HAVE_NATIVE_GETPROGNAME
36
- const char* getprogname();
37
- #endif
38
-
39
- #if defined(_MSC_VER)
40
- void err(int e, const char* m, ...);
41
- void errx(int e, const char* m, ...);
42
- void warn(const char* m, ...);
43
- void warnx(const char* m, ...);
44
- void vwarnx(const char* format, va_list ap);
45
- void vwarn(const char* format, va_list ap);
46
- void verrx(int status, const char* format, va_list ap);
47
- #else
48
- #include <err.h>
49
- #endif
50
- }
51
-
52
- #ifdef _MSC_VER
53
- #define popen _popen
54
- #define pclose _pclose
55
- #endif
56
-
57
- #ifdef _win_
58
- #define NAME_MAX FILENAME_MAX
59
- #endif
60
- #ifdef _sun_
61
- #define NAME_MAX PATH_MAX
62
- #endif
63
-
64
- #ifdef _win_
65
-
66
- #ifdef sleep // may be defined by perl
67
- #undef sleep
68
- #endif
69
-
70
- void sleep(i64 len);
71
- void usleep(i64 len);
72
-
73
- #endif
74
-
75
- #ifdef _win_
76
- int ftruncate(int fd, i64 length);
77
- int truncate(const char* name, i64 length);
78
- #endif
79
-
80
- #if defined(GNUC)
81
- #ifndef va_copy
82
- #define va_copy __va_copy
83
- #endif
84
- #endif