1 | ;
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.typeByName = exports.TYPES = exports.TYPE = void 0;
|
7 | var _null = _interopRequireDefault(require("./data-types/null"));
|
8 | var _tinyint = _interopRequireDefault(require("./data-types/tinyint"));
|
9 | var _bit = _interopRequireDefault(require("./data-types/bit"));
|
10 | var _smallint = _interopRequireDefault(require("./data-types/smallint"));
|
11 | var _int = _interopRequireDefault(require("./data-types/int"));
|
12 | var _smalldatetime = _interopRequireDefault(require("./data-types/smalldatetime"));
|
13 | var _real = _interopRequireDefault(require("./data-types/real"));
|
14 | var _money = _interopRequireDefault(require("./data-types/money"));
|
15 | var _datetime = _interopRequireDefault(require("./data-types/datetime"));
|
16 | var _float = _interopRequireDefault(require("./data-types/float"));
|
17 | var _decimal = _interopRequireDefault(require("./data-types/decimal"));
|
18 | var _numeric = _interopRequireDefault(require("./data-types/numeric"));
|
19 | var _smallmoney = _interopRequireDefault(require("./data-types/smallmoney"));
|
20 | var _bigint = _interopRequireDefault(require("./data-types/bigint"));
|
21 | var _image = _interopRequireDefault(require("./data-types/image"));
|
22 | var _text = _interopRequireDefault(require("./data-types/text"));
|
23 | var _uniqueidentifier = _interopRequireDefault(require("./data-types/uniqueidentifier"));
|
24 | var _intn = _interopRequireDefault(require("./data-types/intn"));
|
25 | var _ntext = _interopRequireDefault(require("./data-types/ntext"));
|
26 | var _bitn = _interopRequireDefault(require("./data-types/bitn"));
|
27 | var _decimaln = _interopRequireDefault(require("./data-types/decimaln"));
|
28 | var _numericn = _interopRequireDefault(require("./data-types/numericn"));
|
29 | var _floatn = _interopRequireDefault(require("./data-types/floatn"));
|
30 | var _moneyn = _interopRequireDefault(require("./data-types/moneyn"));
|
31 | var _datetimen = _interopRequireDefault(require("./data-types/datetimen"));
|
32 | var _varbinary = _interopRequireDefault(require("./data-types/varbinary"));
|
33 | var _varchar = _interopRequireDefault(require("./data-types/varchar"));
|
34 | var _binary = _interopRequireDefault(require("./data-types/binary"));
|
35 | var _char = _interopRequireDefault(require("./data-types/char"));
|
36 | var _nvarchar = _interopRequireDefault(require("./data-types/nvarchar"));
|
37 | var _nchar = _interopRequireDefault(require("./data-types/nchar"));
|
38 | var _xml = _interopRequireDefault(require("./data-types/xml"));
|
39 | var _time = _interopRequireDefault(require("./data-types/time"));
|
40 | var _date = _interopRequireDefault(require("./data-types/date"));
|
41 | var _datetime2 = _interopRequireDefault(require("./data-types/datetime2"));
|
42 | var _datetimeoffset = _interopRequireDefault(require("./data-types/datetimeoffset"));
|
43 | var _udt = _interopRequireDefault(require("./data-types/udt"));
|
44 | var _tvp = _interopRequireDefault(require("./data-types/tvp"));
|
45 | var _sqlVariant = _interopRequireDefault(require("./data-types/sql-variant"));
|
46 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
47 | const TYPE = exports.TYPE = {
|
48 | [_null.default.id]: _null.default,
|
49 | [_tinyint.default.id]: _tinyint.default,
|
50 | [_bit.default.id]: _bit.default,
|
51 | [_smallint.default.id]: _smallint.default,
|
52 | [_int.default.id]: _int.default,
|
53 | [_smalldatetime.default.id]: _smalldatetime.default,
|
54 | [_real.default.id]: _real.default,
|
55 | [_money.default.id]: _money.default,
|
56 | [_datetime.default.id]: _datetime.default,
|
57 | [_float.default.id]: _float.default,
|
58 | [_decimal.default.id]: _decimal.default,
|
59 | [_numeric.default.id]: _numeric.default,
|
60 | [_smallmoney.default.id]: _smallmoney.default,
|
61 | [_bigint.default.id]: _bigint.default,
|
62 | [_image.default.id]: _image.default,
|
63 | [_text.default.id]: _text.default,
|
64 | [_uniqueidentifier.default.id]: _uniqueidentifier.default,
|
65 | [_intn.default.id]: _intn.default,
|
66 | [_ntext.default.id]: _ntext.default,
|
67 | [_bitn.default.id]: _bitn.default,
|
68 | [_decimaln.default.id]: _decimaln.default,
|
69 | [_numericn.default.id]: _numericn.default,
|
70 | [_floatn.default.id]: _floatn.default,
|
71 | [_moneyn.default.id]: _moneyn.default,
|
72 | [_datetimen.default.id]: _datetimen.default,
|
73 | [_varbinary.default.id]: _varbinary.default,
|
74 | [_varchar.default.id]: _varchar.default,
|
75 | [_binary.default.id]: _binary.default,
|
76 | [_char.default.id]: _char.default,
|
77 | [_nvarchar.default.id]: _nvarchar.default,
|
78 | [_nchar.default.id]: _nchar.default,
|
79 | [_xml.default.id]: _xml.default,
|
80 | [_time.default.id]: _time.default,
|
81 | [_date.default.id]: _date.default,
|
82 | [_datetime2.default.id]: _datetime2.default,
|
83 | [_datetimeoffset.default.id]: _datetimeoffset.default,
|
84 | [_udt.default.id]: _udt.default,
|
85 | [_tvp.default.id]: _tvp.default,
|
86 | [_sqlVariant.default.id]: _sqlVariant.default
|
87 | };
|
88 |
|
89 | /**
|
90 | * <table>
|
91 | * <thead>
|
92 | * <tr>
|
93 | * <th>Type</th>
|
94 | * <th>Constant</th>
|
95 | * <th>JavaScript</th>
|
96 | * <th>Result set</th>
|
97 | * <th>Parameter</th>
|
98 | * </tr>
|
99 | * </thead>
|
100 | *
|
101 | * <tbody>
|
102 | * <tr class="group-heading">
|
103 | * <th colspan="5">Exact numerics</th>
|
104 | * </tr>
|
105 | * <tr>
|
106 | * <td><code>bit</code></td>
|
107 | * <td><code>[[TYPES.Bit]]</code></td>
|
108 | * <td><code>boolean</code></td>
|
109 | * <td>✓</td>
|
110 | * <td>✓</td>
|
111 | * </tr>
|
112 | * <tr>
|
113 | * <td><code>tinyint</code></td>
|
114 | * <td><code>[[TYPES.TinyInt]]</code></td>
|
115 | * <td><code>number</code></td>
|
116 | * <td>✓</td>
|
117 | * <td>✓</td>
|
118 | * </tr>
|
119 | * <tr>
|
120 | * <td><code>smallint</code></td>
|
121 | * <td><code>[[TYPES.SmallInt]]</code></td>
|
122 | * <td><code>number</code></td>
|
123 | * <td>✓</td>
|
124 | * <td>✓</td>
|
125 | * </tr>
|
126 | * <tr>
|
127 | * <td><code>int</code></td>
|
128 | * <td><code>[[TYPES.Int]]</code></td>
|
129 | * <td><code>number</code></td>
|
130 | * <td>✓</td>
|
131 | * <td>✓</td>
|
132 | * </tr>
|
133 | * <tr>
|
134 | * <td><code>bigint</code><sup>1</sup></td>
|
135 | * <td><code>[[TYPES.BigInt]]</code></td>
|
136 | * <td><code>string</code></td>
|
137 | * <td>✓</td>
|
138 | * <td>✓</td>
|
139 | * </tr>
|
140 | * <tr>
|
141 | * <td><code>numeric</code><sup>2</sup></td>
|
142 | * <td><code>[[TYPES.Numeric]]</code></td>
|
143 | * <td><code>number</code></td>
|
144 | * <td>✓</td>
|
145 | * <td>✓</td>
|
146 | * </tr>
|
147 | * <tr>
|
148 | * <td><code>decimal</code><sup>2</sup></td>
|
149 | * <td><code>[[TYPES.Decimal]]</code></td>
|
150 | * <td><code>number</code></td>
|
151 | * <td>✓</td>
|
152 | * <td>✓</td>
|
153 | * </tr>
|
154 | * <tr>
|
155 | * <td><code>smallmoney</code></td>
|
156 | * <td><code>[[TYPES.SmallMoney]]</code></td>
|
157 | * <td><code>number</code></td>
|
158 | * <td>✓</td>
|
159 | * <td>✓</td>
|
160 | * </tr>
|
161 | * <tr>
|
162 | * <td><code>money</code></td>
|
163 | * <td><code>[[TYPES.Money]]</code></td>
|
164 | * <td><code>number</code></td>
|
165 | * <td>✓</td>
|
166 | * <td>✓</td>
|
167 | * </tr>
|
168 | * </tbody>
|
169 | *
|
170 | * <tbody>
|
171 | * <tr class="group-heading">
|
172 | * <th colspan="5">Approximate numerics</th>
|
173 | * </tr>
|
174 | * <tr>
|
175 | * <td><code>float</code></td>
|
176 | * <td><code>[[TYPES.Float]]</code></td>
|
177 | * <td><code>number</code></td>
|
178 | * <td>✓</td>
|
179 | * <td>✓</td>
|
180 | * </tr>
|
181 | * <tr>
|
182 | * <td><code>real</code></td>
|
183 | * <td><code>[[TYPES.Real]]</code></td>
|
184 | * <td><code>number</code></td>
|
185 | * <td>✓</td>
|
186 | * <td>✓</td>
|
187 | * </tr>
|
188 | * </tbody>
|
189 | *
|
190 | * <tbody>
|
191 | * <tr class="group-heading">
|
192 | * <th colspan="4">Date and Time</th>
|
193 | * </tr>
|
194 | * <tr>
|
195 | * <td><code>smalldatetime</code></td>
|
196 | * <td><code>[[TYPES.SmallDateTime]]</code></td>
|
197 | * <td><code>Date</code></td>
|
198 | * <td>✓</td>
|
199 | * <td>✓</td>
|
200 | * </tr>
|
201 | * <tr>
|
202 | * <td><code>datetime</code></td>
|
203 | * <td><code>[[TYPES.DateTime]]</code></td>
|
204 | * <td><code>Date</code></td>
|
205 | * <td>✓</td>
|
206 | * <td>✓</td>
|
207 | * </tr>
|
208 | * <tr>
|
209 | * <td><code>datetime2</code></td>
|
210 | * <td><code>[[TYPES.DateTime2]]</code></td>
|
211 | * <td><code>Date</code></td>
|
212 | * <td>✓</td>
|
213 | * <td>✓</td>
|
214 | * </tr>
|
215 | * <tr>
|
216 | * <td><code>datetimeoffset</code></td>
|
217 | * <td><code>[[TYPES.DateTimeOffset]]</code></td>
|
218 | * <td><code>Date</code></td>
|
219 | * <td>✓</td>
|
220 | * <td>✓</td>
|
221 | * </tr>
|
222 | * <tr>
|
223 | * <td><code>time</code></td>
|
224 | * <td><code>[[TYPES.Time]]</code></td>
|
225 | * <td><code>Date</code></td>
|
226 | * <td>✓</td>
|
227 | * <td>✓</td>
|
228 | * </tr>
|
229 | * <tr>
|
230 | * <td><code>date</code></td>
|
231 | * <td><code>[[TYPES.Date]]</code></td>
|
232 | * <td><code>Date</code></td>
|
233 | * <td>✓</td>
|
234 | * <td>✓</td>
|
235 | * </tr>
|
236 | * </tbody>
|
237 | *
|
238 | * <tbody>
|
239 | * <tr class="group-heading">
|
240 | * <th colspan="4">Character Strings</th>
|
241 | * </tr>
|
242 | * <tr>
|
243 | * <td><code>char</code></td>
|
244 | * <td><code>[[TYPES.Char]]</code></td>
|
245 | * <td><code>string</code></td>
|
246 | * <td>✓</td>
|
247 | * <td>✓</td>
|
248 | * </tr>
|
249 | * <tr>
|
250 | * <td><code>varchar</code><sup>3</sup></td>
|
251 | * <td><code>[[TYPES.VarChar]]</code></td>
|
252 | * <td><code>string</code></td>
|
253 | * <td>✓</td>
|
254 | * <td>✓</td>
|
255 | * </tr>
|
256 | * <tr>
|
257 | * <td><code>text</code></td>
|
258 | * <td><code>[[TYPES.Text]]</code></td>
|
259 | * <td><code>string</code></td>
|
260 | * <td>✓</td>
|
261 | * <td>✓</td>
|
262 | * </tr>
|
263 | * </tbody>
|
264 | *
|
265 | * <tbody>
|
266 | * <tr class="group-heading">
|
267 | * <th colspan="4">Unicode Strings</th>
|
268 | * </tr>
|
269 | * <tr>
|
270 | * <td><code>nchar</code></td>
|
271 | * <td><code>[[TYPES.NChar]]</code></td>
|
272 | * <td><code>string</code></td>
|
273 | * <td>✓</td>
|
274 | * <td>✓</td>
|
275 | * </tr>
|
276 | * <tr>
|
277 | * <td><code>nvarchar</code><sup>3</sup></td>
|
278 | * <td><code>[[TYPES.NVarChar]]</code></td>
|
279 | * <td><code>string</code></td>
|
280 | * <td>✓</td>
|
281 | * <td>✓</td>
|
282 | * </tr>
|
283 | * <tr>
|
284 | * <td><code>ntext</code></td>
|
285 | * <td><code>[[TYPES.NText]]</code></td>
|
286 | * <td><code>string</code></td>
|
287 | * <td>✓</td>
|
288 | * <td>-</td>
|
289 | * </tr>
|
290 | * </tbody>
|
291 | *
|
292 | * <tbody>
|
293 | * <tr class="group-heading">
|
294 | * <th colspan="5">Binary Strings<sup>4</sup></th>
|
295 | * </tr>
|
296 | * <tr>
|
297 | * <td><code>binary</code></td>
|
298 | * <td><code>[[TYPES.Binary]]</code></td>
|
299 | * <td><code>Buffer</code></td>
|
300 | * <td>✓</td>
|
301 | * <td>✓</td>
|
302 | * </tr>
|
303 | * <tr>
|
304 | * <td><code>varbinary</code></td>
|
305 | * <td><code>[[TYPES.VarBinary]]</code></td>
|
306 | * <td><code>Buffer</code></td>
|
307 | * <td>✓</td>
|
308 | * <td>✓</td>
|
309 | * </tr>
|
310 | * <tr>
|
311 | * <td><code>image</code></td>
|
312 | * <td><code>[[TYPES.Image]]</code></td>
|
313 | * <td><code>Buffer</code></td>
|
314 | * <td>✓</td>
|
315 | * <td>✓</td>
|
316 | * </tr>
|
317 | * </tbody>
|
318 | *
|
319 | * <tbody>
|
320 | * <tr class="group-heading">
|
321 | * <th colspan="5">Other Data Types</th>
|
322 | * </tr>
|
323 | * <tr>
|
324 | * <td><code>TVP</code></td>
|
325 | * <td><code>[[TYPES.TVP]]</code></td>
|
326 | * <td><code>Object</code></td>
|
327 | * <td>-</td>
|
328 | * <td>✓</td>
|
329 | * </tr>
|
330 | * <tr>
|
331 | * <td><code>UDT</code></td>
|
332 | * <td><code>[[TYPES.UDT]]</code></td>
|
333 | * <td><code>Buffer</code></td>
|
334 | * <td>✓</td>
|
335 | * <td>-</td>
|
336 | * </tr>
|
337 | * <tr>
|
338 | * <td><code>uniqueidentifier</code><sup>4</sup></td>
|
339 | * <td><code>[[TYPES.UniqueIdentifier]]</code></td>
|
340 | * <td><code>string</code></td>
|
341 | * <td>✓</td>
|
342 | * <td>✓</td>
|
343 | * </tr>
|
344 | * <tr>
|
345 | * <td><code>variant</code></td>
|
346 | * <td><code>[[TYPES.Variant]]</code></td>
|
347 | * <td><code>any</code></td>
|
348 | * <td>✓</td>
|
349 | * <td>-</td>
|
350 | * </tr>
|
351 | * <tr>
|
352 | * <td><code>xml</code></td>
|
353 | * <td><code>[[TYPES.Xml]]</code></td>
|
354 | * <td><code>string</code></td>
|
355 | * <td>✓</td>
|
356 | * <td>-</td>
|
357 | * </tr>
|
358 | * </tbody>
|
359 | * </table>
|
360 | *
|
361 | * <ol>
|
362 | * <li>
|
363 | * <h4>BigInt</h4>
|
364 | * <p>
|
365 | * Values are returned as a string. This is because values can exceed 53 bits of significant data, which is greater than a
|
366 | * Javascript <code>number</code> type can represent as an integer.
|
367 | * </p>
|
368 | * </li>
|
369 | * <li>
|
370 | * <h4>Numerical, Decimal</h4>
|
371 | * <p>
|
372 | * For input parameters, default precision is 18 and default scale is 0. Maximum supported precision is 19.
|
373 | * </p>
|
374 | * </li>
|
375 | * <li>
|
376 | * <h4>VarChar, NVarChar</h4>
|
377 | * <p>
|
378 | * <code>varchar(max)</code> and <code>nvarchar(max)</code> are also supported.
|
379 | * </p>
|
380 | * </li>
|
381 | * <li>
|
382 | * <h4>UniqueIdentifier</h4>
|
383 | * <p>
|
384 | * Values are returned as a 16 byte hexadecimal string.
|
385 | * </p>
|
386 | * <p>
|
387 | * Note that the order of bytes is not the same as the character representation. See
|
388 | * <a href="http://msdn.microsoft.com/en-us/library/ms190215.aspx">Using uniqueidentifier Data</a>
|
389 | * for an example of the different ordering of bytes.
|
390 | * </p>
|
391 | * </li>
|
392 | * </ol>
|
393 | */
|
394 | const TYPES = exports.TYPES = {
|
395 | TinyInt: _tinyint.default,
|
396 | Bit: _bit.default,
|
397 | SmallInt: _smallint.default,
|
398 | Int: _int.default,
|
399 | SmallDateTime: _smalldatetime.default,
|
400 | Real: _real.default,
|
401 | Money: _money.default,
|
402 | DateTime: _datetime.default,
|
403 | Float: _float.default,
|
404 | Decimal: _decimal.default,
|
405 | Numeric: _numeric.default,
|
406 | SmallMoney: _smallmoney.default,
|
407 | BigInt: _bigint.default,
|
408 | Image: _image.default,
|
409 | Text: _text.default,
|
410 | UniqueIdentifier: _uniqueidentifier.default,
|
411 | NText: _ntext.default,
|
412 | VarBinary: _varbinary.default,
|
413 | VarChar: _varchar.default,
|
414 | Binary: _binary.default,
|
415 | Char: _char.default,
|
416 | NVarChar: _nvarchar.default,
|
417 | NChar: _nchar.default,
|
418 | Xml: _xml.default,
|
419 | Time: _time.default,
|
420 | Date: _date.default,
|
421 | DateTime2: _datetime2.default,
|
422 | DateTimeOffset: _datetimeoffset.default,
|
423 | UDT: _udt.default,
|
424 | TVP: _tvp.default,
|
425 | Variant: _sqlVariant.default
|
426 | };
|
427 | const typeByName = exports.typeByName = TYPES;
|
428 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbnVsbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3RpbnlpbnQiLCJfYml0IiwiX3NtYWxsaW50IiwiX2ludCIsIl9zbWFsbGRhdGV0aW1lIiwiX3JlYWwiLCJfbW9uZXkiLCJfZGF0ZXRpbWUiLCJfZmxvYXQiLCJfZGVjaW1hbCIsIl9udW1lcmljIiwiX3NtYWxsbW9uZXkiLCJfYmlnaW50IiwiX2ltYWdlIiwiX3RleHQiLCJfdW5pcXVlaWRlbnRpZmllciIsIl9pbnRuIiwiX250ZXh0IiwiX2JpdG4iLCJfZGVjaW1hbG4iLCJfbnVtZXJpY24iLCJfZmxvYXRuIiwiX21vbmV5biIsIl9kYXRldGltZW4iLCJfdmFyYmluYXJ5IiwiX3ZhcmNoYXIiLCJfYmluYXJ5IiwiX2NoYXIiLCJfbnZhcmNoYXIiLCJfbmNoYXIiLCJfeG1sIiwiX3RpbWUiLCJfZGF0ZSIsIl9kYXRldGltZTIiLCJfZGF0ZXRpbWVvZmZzZXQiLCJfdWR0IiwiX3R2cCIsIl9zcWxWYXJpYW50Iiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJUWVBFIiwiZXhwb3J0cyIsIk51bGwiLCJpZCIsIlRpbnlJbnQiLCJCaXQiLCJTbWFsbEludCIsIkludCIsIlNtYWxsRGF0ZVRpbWUiLCJSZWFsIiwiTW9uZXkiLCJEYXRlVGltZSIsIkZsb2F0IiwiRGVjaW1hbCIsIk51bWVyaWMiLCJTbWFsbE1vbmV5IiwiQmlnSW50IiwiSW1hZ2UiLCJUZXh0IiwiVW5pcXVlSWRlbnRpZmllciIsIkludE4iLCJOVGV4dCIsIkJpdE4iLCJEZWNpbWFsTiIsIk51bWVyaWNOIiwiRmxvYXROIiwiTW9uZXlOIiwiRGF0ZVRpbWVOIiwiVmFyQmluYXJ5IiwiVmFyQ2hhciIsIkJpbmFyeSIsIkNoYXIiLCJOVmFyQ2hhciIsIk5DaGFyIiwiWG1sIiwiVGltZSIsIkRhdGUiLCJEYXRlVGltZTIiLCJEYXRlVGltZU9mZnNldCIsIlVEVCIsIlRWUCIsIlZhcmlhbnQiLCJUWVBFUyIsInR5cGVCeU5hbWUiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0YS10eXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBOdWxsIGZyb20gJy4vZGF0YS10eXBlcy9udWxsJztcbmltcG9ydCBUaW55SW50IGZyb20gJy4vZGF0YS10eXBlcy90aW55aW50JztcbmltcG9ydCBCaXQgZnJvbSAnLi9kYXRhLXR5cGVzL2JpdCc7XG5pbXBvcnQgU21hbGxJbnQgZnJvbSAnLi9kYXRhLXR5cGVzL3NtYWxsaW50JztcbmltcG9ydCBJbnQgZnJvbSAnLi9kYXRhLXR5cGVzL2ludCc7XG5pbXBvcnQgU21hbGxEYXRlVGltZSBmcm9tICcuL2RhdGEtdHlwZXMvc21hbGxkYXRldGltZSc7XG5pbXBvcnQgUmVhbCBmcm9tICcuL2RhdGEtdHlwZXMvcmVhbCc7XG5pbXBvcnQgTW9uZXkgZnJvbSAnLi9kYXRhLXR5cGVzL21vbmV5JztcbmltcG9ydCBEYXRlVGltZSBmcm9tICcuL2RhdGEtdHlwZXMvZGF0ZXRpbWUnO1xuaW1wb3J0IEZsb2F0IGZyb20gJy4vZGF0YS10eXBlcy9mbG9hdCc7XG5pbXBvcnQgRGVjaW1hbCBmcm9tICcuL2RhdGEtdHlwZXMvZGVjaW1hbCc7XG5pbXBvcnQgTnVtZXJpYyBmcm9tICcuL2RhdGEtdHlwZXMvbnVtZXJpYyc7XG5pbXBvcnQgU21hbGxNb25leSBmcm9tICcuL2RhdGEtdHlwZXMvc21hbGxtb25leSc7XG5pbXBvcnQgQmlnSW50IGZyb20gJy4vZGF0YS10eXBlcy9iaWdpbnQnO1xuaW1wb3J0IEltYWdlIGZyb20gJy4vZGF0YS10eXBlcy9pbWFnZSc7XG5pbXBvcnQgVGV4dCBmcm9tICcuL2RhdGEtdHlwZXMvdGV4dCc7XG5pbXBvcnQgVW5pcXVlSWRlbnRpZmllciBmcm9tICcuL2RhdGEtdHlwZXMvdW5pcXVlaWRlbnRpZmllcic7XG5pbXBvcnQgSW50TiBmcm9tICcuL2RhdGEtdHlwZXMvaW50bic7XG5pbXBvcnQgTlRleHQgZnJvbSAnLi9kYXRhLXR5cGVzL250ZXh0JztcbmltcG9ydCBCaXROIGZyb20gJy4vZGF0YS10eXBlcy9iaXRuJztcbmltcG9ydCBEZWNpbWFsTiBmcm9tICcuL2RhdGEtdHlwZXMvZGVjaW1hbG4nO1xuaW1wb3J0IE51bWVyaWNOIGZyb20gJy4vZGF0YS10eXBlcy9udW1lcmljbic7XG5pbXBvcnQgRmxvYXROIGZyb20gJy4vZGF0YS10eXBlcy9mbG9hdG4nO1xuaW1wb3J0IE1vbmV5TiBmcm9tICcuL2RhdGEtdHlwZXMvbW9uZXluJztcbmltcG9ydCBEYXRlVGltZU4gZnJvbSAnLi9kYXRhLXR5cGVzL2RhdGV0aW1lbic7XG5pbXBvcnQgVmFyQmluYXJ5IGZyb20gJy4vZGF0YS10eXBlcy92YXJiaW5hcnknO1xuaW1wb3J0IFZhckNoYXIgZnJvbSAnLi9kYXRhLXR5cGVzL3ZhcmNoYXInO1xuaW1wb3J0IEJpbmFyeSBmcm9tICcuL2RhdGEtdHlwZXMvYmluYXJ5JztcbmltcG9ydCBDaGFyIGZyb20gJy4vZGF0YS10eXBlcy9jaGFyJztcbmltcG9ydCBOVmFyQ2hhciBmcm9tICcuL2RhdGEtdHlwZXMvbnZhcmNoYXInO1xuaW1wb3J0IE5DaGFyIGZyb20gJy4vZGF0YS10eXBlcy9uY2hhcic7XG5pbXBvcnQgWG1sIGZyb20gJy4vZGF0YS10eXBlcy94bWwnO1xuaW1wb3J0IFRpbWUgZnJvbSAnLi9kYXRhLXR5cGVzL3RpbWUnO1xuaW1wb3J0IERhdGUgZnJvbSAnLi9kYXRhLXR5cGVzL2RhdGUnO1xuaW1wb3J0IERhdGVUaW1lMiBmcm9tICcuL2RhdGEtdHlwZXMvZGF0ZXRpbWUyJztcbmltcG9ydCBEYXRlVGltZU9mZnNldCBmcm9tICcuL2RhdGEtdHlwZXMvZGF0ZXRpbWVvZmZzZXQnO1xuaW1wb3J0IFVEVCBmcm9tICcuL2RhdGEtdHlwZXMvdWR0JztcbmltcG9ydCBUVlAgZnJvbSAnLi9kYXRhLXR5cGVzL3R2cCc7XG5pbXBvcnQgVmFyaWFudCBmcm9tICcuL2RhdGEtdHlwZXMvc3FsLXZhcmlhbnQnO1xuaW1wb3J0IHsgdHlwZSBDcnlwdG9NZXRhZGF0YSB9IGZyb20gJy4vYWx3YXlzLWVuY3J5cHRlZC90eXBlcyc7XG5cbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4vY29ubmVjdGlvbic7XG5pbXBvcnQgeyBDb2xsYXRpb24gfSBmcm9tICcuL2NvbGxhdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyIHtcbiAgdHlwZTogRGF0YVR5cGU7XG4gIG5hbWU6IHN0cmluZztcblxuICB2YWx1ZTogdW5rbm93bjtcblxuICBvdXRwdXQ6IGJvb2xlYW47XG4gIGxlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHJlY2lzaW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBzY2FsZT86IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBudWxsYWJsZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgZm9yY2VFbmNyeXB0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgY3J5cHRvTWV0YWRhdGE/OiBDcnlwdG9NZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgZW5jcnlwdGVkVmFsPzogQnVmZmVyIHwgdW5kZWZpbmVkO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyRGF0YTxUID0gYW55PiB7XG4gIGxlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgc2NhbGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHByZWNpc2lvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBjb2xsYXRpb24/OiBDb2xsYXRpb24gfCB1bmRlZmluZWQ7XG5cbiAgdmFsdWU6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVR5cGUge1xuICBpZDogbnVtYmVyO1xuICB0eXBlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcblxuICBkZWNsYXJhdGlvbihwYXJhbWV0ZXI6IFBhcmFtZXRlcik6IHN0cmluZztcbiAgZ2VuZXJhdGVUeXBlSW5mbyhwYXJhbWV0ZXI6IFBhcmFtZXRlckRhdGEsIG9wdGlvbnM6IEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMpOiBCdWZmZXI7XG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlcjogUGFyYW1ldGVyRGF0YSwgb3B0aW9uczogSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyk6IEJ1ZmZlcjtcbiAgZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhKHBhcmFtZXRlcjogUGFyYW1ldGVyRGF0YSwgb3B0aW9uczogSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyk6IEdlbmVyYXRvcjxCdWZmZXIsIHZvaWQ+O1xuICB2YWxpZGF0ZSh2YWx1ZTogYW55LCBjb2xsYXRpb246IENvbGxhdGlvbiB8IHVuZGVmaW5lZCwgb3B0aW9ucz86IEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMpOiBhbnk7IC8vIFRPRE86IFJlZmFjdG9yICdhbnknIGFuZCByZXBsYWNlIHdpdGggbW9yZSBzcGVjaWZpYyB0eXBlLlxuXG4gIGhhc1RhYmxlTmFtZT86IGJvb2xlYW47XG5cbiAgcmVzb2x2ZUxlbmd0aD86IChwYXJhbWV0ZXI6IFBhcmFtZXRlcikgPT4gbnVtYmVyO1xuICByZXNvbHZlUHJlY2lzaW9uPzogKHBhcmFtZXRlcjogUGFyYW1ldGVyKSA9PiBudW1iZXI7XG4gIHJlc29sdmVTY2FsZT86IChwYXJhbWV0ZXI6IFBhcmFtZXRlcikgPT4gbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgVFlQRSA9IHtcbiAgW051bGwuaWRdOiBOdWxsLFxuICBbVGlueUludC5pZF06IFRpbnlJbnQsXG4gIFtCaXQuaWRdOiBCaXQsXG4gIFtTbWFsbEludC5pZF06IFNtYWxsSW50LFxuICBbSW50LmlkXTogSW50LFxuICBbU21hbGxEYXRlVGltZS5pZF06IFNtYWxsRGF0ZVRpbWUsXG4gIFtSZWFsLmlkXTogUmVhbCxcbiAgW01vbmV5LmlkXTogTW9uZXksXG4gIFtEYXRlVGltZS5pZF06IERhdGVUaW1lLFxuICBbRmxvYXQuaWRdOiBGbG9hdCxcbiAgW0RlY2ltYWwuaWRdOiBEZWNpbWFsLFxuICBbTnVtZXJpYy5pZF06IE51bWVyaWMsXG4gIFtTbWFsbE1vbmV5LmlkXTogU21hbGxNb25leSxcbiAgW0JpZ0ludC5pZF06IEJpZ0ludCxcbiAgW0ltYWdlLmlkXTogSW1hZ2UsXG4gIFtUZXh0LmlkXTogVGV4dCxcbiAgW1VuaXF1ZUlkZW50aWZpZXIuaWRdOiBVbmlxdWVJZGVudGlmaWVyLFxuICBbSW50Ti5pZF06IEludE4sXG4gIFtOVGV4dC5pZF06IE5UZXh0LFxuICBbQml0Ti5pZF06IEJpdE4sXG4gIFtEZWNpbWFsTi5pZF06IERlY2ltYWxOLFxuICBbTnVtZXJpY04uaWRdOiBOdW1lcmljTixcbiAgW0Zsb2F0Ti5pZF06IEZsb2F0TixcbiAgW01vbmV5Ti5pZF06IE1vbmV5TixcbiAgW0RhdGVUaW1lTi5pZF06IERhdGVUaW1lTixcbiAgW1ZhckJpbmFyeS5pZF06IFZhckJpbmFyeSxcbiAgW1ZhckNoYXIuaWRdOiBWYXJDaGFyLFxuICBbQmluYXJ5LmlkXTogQmluYXJ5LFxuICBbQ2hhci5pZF06IENoYXIsXG4gIFtOVmFyQ2hhci5pZF06IE5WYXJDaGFyLFxuICBbTkNoYXIuaWRdOiBOQ2hhcixcbiAgW1htbC5pZF06IFhtbCxcbiAgW1RpbWUuaWRdOiBUaW1lLFxuICBbRGF0ZS5pZF06IERhdGUsXG4gIFtEYXRlVGltZTIuaWRdOiBEYXRlVGltZTIsXG4gIFtEYXRlVGltZU9mZnNldC5pZF06IERhdGVUaW1lT2Zmc2V0LFxuICBbVURULmlkXTogVURULFxuICBbVFZQLmlkXTogVFZQLFxuICBbVmFyaWFudC5pZF06IFZhcmlhbnQsXG59O1xuXG4vKipcbiAqIDx0YWJsZT5cbiAqIDx0aGVhZD5cbiAqICAgPHRyPlxuICogICAgIDx0aD5UeXBlPC90aD5cbiAqICAgICA8dGg+Q29uc3RhbnQ8L3RoPlxuICogICAgIDx0aD5KYXZhU2NyaXB0PC90aD5cbiAqICAgICA8dGg+UmVzdWx0IHNldDwvdGg+XG4gKiAgICAgPHRoPlBhcmFtZXRlcjwvdGg+XG4gKiAgIDwvdHI+XG4gKiA8L3RoZWFkPlxuICpcbiAqIDx0Ym9keT5cbiAqICAgPHRyIGNsYXNzPVwiZ3JvdXAtaGVhZGluZ1wiPlxuICogICAgIDx0aCBjb2xzcGFuPVwiNVwiPkV4YWN0IG51bWVyaWNzPC90aD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5iaXQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5CaXRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5ib29sZWFuPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+dGlueWludDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlRpbnlJbnRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5zbWFsbGludDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlNtYWxsSW50XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+aW50PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuSW50XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+YmlnaW50PC9jb2RlPjxzdXA+MTwvc3VwPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuQmlnSW50XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+bnVtZXJpYzwvY29kZT48c3VwPjI8L3N1cD48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLk51bWVyaWNdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5kZWNpbWFsPC9jb2RlPjxzdXA+Mjwvc3VwPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuRGVjaW1hbF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnNtYWxsbW9uZXk8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5TbWFsbE1vbmV5XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+bW9uZXk8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5Nb25leV1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogPC90Ym9keT5cbiAqXG4gKiA8dGJvZHk+XG4gKiAgIDx0ciBjbGFzcz1cImdyb3VwLWhlYWRpbmdcIj5cbiAqICAgICA8dGggY29sc3Bhbj1cIjVcIj5BcHByb3hpbWF0ZSBudW1lcmljczwvdGg+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+ZmxvYXQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5GbG9hdF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnJlYWw8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5SZWFsXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiA8L3Rib2R5PlxuICpcbiAqIDx0Ym9keT5cbiAqICAgPHRyIGNsYXNzPVwiZ3JvdXAtaGVhZGluZ1wiPlxuICogICAgIDx0aCBjb2xzcGFuPVwiNFwiPkRhdGUgYW5kIFRpbWU8L3RoPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnNtYWxsZGF0ZXRpbWU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5TbWFsbERhdGVUaW1lXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+RGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmRhdGV0aW1lPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuRGF0ZVRpbWVdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5EYXRlPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+ZGF0ZXRpbWUyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuRGF0ZVRpbWUyXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+RGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmRhdGV0aW1lb2Zmc2V0PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuRGF0ZVRpbWVPZmZzZXRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5EYXRlPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+dGltZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlRpbWVdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5EYXRlPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+ZGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkRhdGVdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5EYXRlPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiA8L3Rib2R5PlxuICpcbiAqIDx0Ym9keT5cbiAqICAgPHRyIGNsYXNzPVwiZ3JvdXAtaGVhZGluZ1wiPlxuICogICAgIDx0aCBjb2xzcGFuPVwiNFwiPkNoYXJhY3RlciBTdHJpbmdzPC90aD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5jaGFyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuQ2hhcl1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnZhcmNoYXI8L2NvZGU+PHN1cD4zPC9zdXA+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5WYXJDaGFyXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+dGV4dDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlRleHRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqIDwvdGJvZHk+XG4gKlxuICogPHRib2R5PlxuICogICA8dHIgY2xhc3M9XCJncm91cC1oZWFkaW5nXCI+XG4gKiAgICAgPHRoIGNvbHNwYW49XCI0XCI+VW5pY29kZSBTdHJpbmdzPC90aD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5uY2hhcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLk5DaGFyXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+bnZhcmNoYXI8L2NvZGU+PHN1cD4zPC9zdXA+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5OVmFyQ2hhcl1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPm50ZXh0PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuTlRleHRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+LTwvdGQ+XG4gKiAgIDwvdHI+XG4gKiA8L3Rib2R5PlxuICpcbiAqIDx0Ym9keT5cbiAqICAgPHRyIGNsYXNzPVwiZ3JvdXAtaGVhZGluZ1wiPlxuICogICAgIDx0aCBjb2xzcGFuPVwiNVwiPkJpbmFyeSBTdHJpbmdzPHN1cD40PC9zdXA+PC90aD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5iaW5hcnk8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5CaW5hcnldXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5CdWZmZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT52YXJiaW5hcnk8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5WYXJCaW5hcnldXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5CdWZmZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5pbWFnZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkltYWdlXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+QnVmZmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiA8L3Rib2R5PlxuICpcbiAqIDx0Ym9keT5cbiAqICAgPHRyIGNsYXNzPVwiZ3JvdXAtaGVhZGluZ1wiPlxuICogICAgIDx0aCBjb2xzcGFuPVwiNVwiPk90aGVyIERhdGEgVHlwZXM8L3RoPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPlRWUDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlRWUF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPk9iamVjdDwvY29kZT48L3RkPlxuICogICAgIDx0ZD4tPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5VRFQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5VRFRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5CdWZmZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+LTwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+dW5pcXVlaWRlbnRpZmllcjwvY29kZT48c3VwPjQ8L3N1cD48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlVuaXF1ZUlkZW50aWZpZXJdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT52YXJpYW50PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuVmFyaWFudF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPmFueTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD4tPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT54bWw8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5YbWxdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+LTwvdGQ+XG4gKiAgIDwvdHI+XG4gKiA8L3Rib2R5PlxuICogPC90YWJsZT5cbiAqXG4gKiA8b2w+XG4gKiAgIDxsaT5cbiAqICAgICA8aDQ+QmlnSW50PC9oND5cbiAqICAgICA8cD5cbiAqICAgICAgIFZhbHVlcyBhcmUgcmV0dXJuZWQgYXMgYSBzdHJpbmcuIFRoaXMgaXMgYmVjYXVzZSB2YWx1ZXMgY2FuIGV4Y2VlZCA1MyBiaXRzIG9mIHNpZ25pZmljYW50IGRhdGEsIHdoaWNoIGlzIGdyZWF0ZXIgdGhhbiBhXG4gKiAgICAgICBKYXZhc2NyaXB0IDxjb2RlPm51bWJlcjwvY29kZT4gdHlwZSBjYW4gcmVwcmVzZW50IGFzIGFuIGludGVnZXIuXG4gKiAgICAgPC9wPlxuICogICA8L2xpPlxuICogICA8bGk+XG4gKiAgICAgPGg0Pk51bWVyaWNhbCwgRGVjaW1hbDwvaDQ+XG4gKiAgICAgPHA+XG4gKiAgICAgICBGb3IgaW5wdXQgcGFyYW1ldGVycywgZGVmYXVsdCBwcmVjaXNpb24gaXMgMTggYW5kIGRlZmF1bHQgc2NhbGUgaXMgMC4gTWF4aW11bSBzdXBwb3J0ZWQgcHJlY2lzaW9uIGlzIDE5LlxuICogICAgIDwvcD5cbiAqICAgPC9saT5cbiAqICAgPGxpPlxuICogICAgIDxoND5WYXJDaGFyLCBOVmFyQ2hhcjwvaDQ+XG4gKiAgICAgPHA+XG4gKiAgICAgICA8Y29kZT52YXJjaGFyKG1heCk8L2NvZGU+IGFuZCA8Y29kZT5udmFyY2hhcihtYXgpPC9jb2RlPiBhcmUgYWxzbyBzdXBwb3J0ZWQuXG4gKiAgICAgPC9wPlxuICogICA8L2xpPlxuICogICA8bGk+XG4gKiAgICAgPGg0PlVuaXF1ZUlkZW50aWZpZXI8L2g0PlxuICogICAgIDxwPlxuICogICAgICAgVmFsdWVzIGFyZSByZXR1cm5lZCBhcyBhIDE2IGJ5dGUgaGV4YWRlY2ltYWwgc3RyaW5nLlxuICogICAgIDwvcD5cbiAqICAgICA8cD5cbiAqICAgICAgIE5vdGUgdGhhdCB0aGUgb3JkZXIgb2YgYnl0ZXMgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBjaGFyYWN0ZXIgcmVwcmVzZW50YXRpb24uIFNlZVxuICogICAgICAgPGEgaHJlZj1cImh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczE5MDIxNS5hc3B4XCI+VXNpbmcgdW5pcXVlaWRlbnRpZmllciBEYXRhPC9hPlxuICogICAgICAgZm9yIGFuIGV4YW1wbGUgb2YgdGhlIGRpZmZlcmVudCBvcmRlcmluZyBvZiBieXRlcy5cbiAqICAgICA8L3A+XG4gKiAgIDwvbGk+XG4gKiA8L29sPlxuICovXG5leHBvcnQgY29uc3QgVFlQRVMgPSB7XG4gIFRpbnlJbnQsXG4gIEJpdCxcbiAgU21hbGxJbnQsXG4gIEludCxcbiAgU21hbGxEYXRlVGltZSxcbiAgUmVhbCxcbiAgTW9uZXksXG4gIERhdGVUaW1lLFxuICBGbG9hdCxcbiAgRGVjaW1hbCxcbiAgTnVtZXJpYyxcbiAgU21hbGxNb25leSxcbiAgQmlnSW50LFxuICBJbWFnZSxcbiAgVGV4dCxcbiAgVW5pcXVlSWRlbnRpZmllcixcbiAgTlRleHQsXG4gIFZhckJpbmFyeSxcbiAgVmFyQ2hhcixcbiAgQmluYXJ5LFxuICBDaGFyLFxuICBOVmFyQ2hhcixcbiAgTkNoYXIsXG4gIFhtbCxcbiAgVGltZSxcbiAgRGF0ZSxcbiAgRGF0ZVRpbWUyLFxuICBEYXRlVGltZU9mZnNldCxcbiAgVURULFxuICBUVlAsXG4gIFZhcmlhbnRcbn07XG5cbmV4cG9ydCBjb25zdCB0eXBlQnlOYW1lID0gVFlQRVM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLElBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLElBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLGNBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLE1BQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLFNBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLE1BQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLFFBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFXLFFBQUEsR0FBQVosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFZLFdBQUEsR0FBQWIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFhLE9BQUEsR0FBQWQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFjLE1BQUEsR0FBQWYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFlLEtBQUEsR0FBQWhCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBZ0IsaUJBQUEsR0FBQWpCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBaUIsS0FBQSxHQUFBbEIsc0JBQUEsQ0FBQUMsT0FB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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUMsS0FBSyxHQUFBekMsT0FBQSxDQUFBeUMsS0FBQSxHQUFHO0VBQ25CdEMsT0FBTyxFQUFQQSxnQkFBTztFQUNQQyxHQUFHLEVBQUhBLFlBQUc7RUFDSEMsUUFBUSxFQUFSQSxpQkFBUTtFQUNSQyxHQUFHLEVBQUhBLFlBQUc7RUFDSEMsYUFBYSxFQUFiQSxzQkFBYTtFQUNiQyxJQUFJLEVBQUpBLGFBQUk7RUFDSkMsS0FBSyxFQUFMQSxjQUFLO0VBQ0xDLFFBQVEsRUFBUkEsaUJBQVE7RUFDUkMsS0FBSyxFQUFMQSxjQUFLO0VBQ0xDLE9BQU8sRUFBUEEsZ0JBQU87RUFDUEMsT0FBTyxFQUFQQSxnQkFBTztFQUNQQyxVQUFVLEVBQVZBLG1CQUFVO0VBQ1ZDLE1BQU0sRUFBTkEsZUFBTTtFQUNOQyxLQUFLLEVBQUxBLGNBQUs7RUFDTEMsSUFBSSxFQUFKQSxhQUFJO0VBQ0pDLGdCQUFnQixFQUFoQkEseUJBQWdCO0VBQ2hCRSxLQUFLLEVBQUxBLGNBQUs7RUFDTE8sU0FBUyxFQUFUQSxrQkFBUztFQUNUQyxPQUFPLEVBQVBBLGdCQUFPO0VBQ1BDLE1BQU0sRUFBTkEsZUFBTTtFQUNOQyxJQUFJLEVBQUpBLGFBQUk7RUFDSkMsUUFBUSxFQUFSQSxpQkFBUTtFQUNSQyxLQUFLLEVBQUxBLGNBQUs7RUFDTEMsR0FBRyxFQUFIQSxZQUFHO0VBQ0hDLElBQUksRUFBSkEsYUFBSTtFQUNKQyxJQUFJLEVBQUpBLGFBQUk7RUFDSkMsU0FBUyxFQUFUQSxrQkFBUztFQUNUQyxjQUFjLEVBQWRBLHVCQUFjO0VBQ2RDLEdBQUcsRUFBSEEsWUFBRztFQUNIQyxHQUFHLEVBQUhBLFlBQUc7RUFDSEMsT0FBTyxFQUFQQTtBQUNGLENBQUM7QUFFTSxNQUFNRSxVQUFVLEdBQUExQyxPQUFBLENBQUEwQyxVQUFBLEdBQUdELEtBQUsifQ== |
\ | No newline at end of file |