@speleotica/frcsdata 4.0.3 → 4.0.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 (43) hide show
  1. package/FrcsPlotFile.d.ts +1 -1
  2. package/FrcsPlotShot.d.ts +1 -1
  3. package/FrcsShot.d.ts +1 -1
  4. package/FrcsShot.js +2 -3
  5. package/FrcsSurveyFile.d.ts +1 -1
  6. package/FrcsTrip.d.ts +2 -2
  7. package/FrcsTripSummary.d.ts +1 -1
  8. package/FrcsTripSummaryFile.d.ts +1 -1
  9. package/formatFrcsShot.js +7 -6
  10. package/index.js +11 -11
  11. package/node/index.js +6 -9
  12. package/package.json +26 -124
  13. package/parseFrcsPlotFile.js +4 -3
  14. package/parseFrcsSurveyFile.js +13 -12
  15. package/parseFrcsTripSummaryFile.js +5 -4
  16. package/string/index.js +8 -11
  17. package/es/FrcsPlotFile.js +0 -6
  18. package/es/FrcsPlotShot.js +0 -6
  19. package/es/FrcsShot.js +0 -14
  20. package/es/FrcsSurveyFile.js +0 -6
  21. package/es/FrcsTrip.js +0 -6
  22. package/es/FrcsTripSummary.js +0 -6
  23. package/es/FrcsTripSummaryFile.js +0 -6
  24. package/es/formatFrcsShot.js +0 -75
  25. package/es/formatFrcsShot.spec.js +0 -141
  26. package/es/index.js +0 -96
  27. package/es/node/index.js +0 -20
  28. package/es/node/parseFrcsPlotFile.spec.js +0 -167
  29. package/es/node/parseFrcsSurveyFile.spec.js +0 -314
  30. package/es/node/parseFrcsTripSummaryFile.spec.js +0 -78
  31. package/es/parseFrcsPlotFile.js +0 -135
  32. package/es/parseFrcsSurveyFile.js +0 -503
  33. package/es/parseFrcsTripSummaryFile.js +0 -73
  34. package/es/string/index.js +0 -21
  35. package/es/string/parseFrcsPlotFile.spec.js +0 -179
  36. package/es/string/parseFrcsSurveyFile.spec.js +0 -646
  37. package/formatFrcsShot.spec.js +0 -139
  38. package/node/parseFrcsPlotFile.spec.js +0 -181
  39. package/node/parseFrcsSurveyFile.spec.js +0 -328
  40. package/node/parseFrcsTripSummaryFile.spec.js +0 -104
  41. package/string/parseFrcsPlotFile.spec.js +0 -182
  42. package/string/parseFrcsSurveyFile.spec.js +0 -673
  43. package/yarn.lock +0 -9542
@@ -1,73 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = parseFrcsTripSummaryFile;
7
- var _unitized = require("@speleotica/unitized");
8
- const tripSummaryRegex = /^\s*(\d+)\s+(\d{1,2})\/(\s\d|\d\d)\/(\d{2,4})\s+(\d+(?:\.\d*)?)\s+(\d+)\s+(\S.*)EXCLUDED:\s+(\d+(?:\.\d*)?)\s+(\d+)/;
9
- /**
10
- * Parses data from a STAT_sum.txt file. Here is an excerpt of the format:
11
- <pre> 1 2/15/81 258.60 17 ENTRANCE DROPS, JOE'S "I LOVE MY WIFE TRAVERSE", TRICKY TRAVERSE EXCLUDED: 0.00 0
12
- Peter Quick Keith Ortiz
13
- A1 AD1-AD3 AE1 AE1 SIDE
14
- AE9 SIDE AE10-AE9 AE13 SIDE AE15 SIDE
15
- AE20-AE11
16
-
17
- 3 3/ 6/81 2371.20 61 DOUG'S DEMISE (50 FT DROP), CHRIS CROSS, CRAWL ABOVE DROP EXCLUDED: 0.00 0
18
- Peter Quick Chris Gerace Phil Oden Chip Hopper
19
- A13 SIDE B1-B5 B2 SIDE B3 SIDE
20
- B6-B18 B17 SIDE B19-B38 B32 SIDE
21
- BS1-BS5 C1-C18 </pre>
22
- */
23
- async function parseFrcsTripSummaryFile(file, lines) {
24
- const errors = [];
25
- const tripSummaries = [];
26
- let tripStartLine = -2;
27
- let lineNumber = 0;
28
- let team = [];
29
- let shots = [];
30
- for await (const line of lines) {
31
- lineNumber++;
32
- const match = tripSummaryRegex.exec(line);
33
- if (match) {
34
- tripStartLine = lineNumber;
35
- const tripNumber = parseInt(match[1]);
36
- const tripIndex = tripNumber - 1;
37
- let year = parseInt(match[4]);
38
- if (year < 1000) year += 1900;
39
- const date = new Date(year, parseInt(match[2]) - 1, parseInt(match[3]));
40
- const totalLength = _unitized.Unitize.feet(parseFloat(match[5]));
41
- const numShots = parseInt(match[6]);
42
- const name = match[7].trim();
43
- const excludedLength = _unitized.Unitize.feet(parseFloat(match[8]));
44
- const numExcludedShots = parseInt(match[9]);
45
- team = [];
46
- shots = [];
47
- tripSummaries[tripIndex] = {
48
- tripNumber,
49
- tripIndex,
50
- date,
51
- totalLength,
52
- numShots,
53
- name,
54
- excludedLength,
55
- numExcludedShots,
56
- team,
57
- shots
58
- };
59
- continue;
60
- }
61
- if (lineNumber === tripStartLine + 1) {
62
- team.push(...line.trim().split(/\s\s+|\t+/g));
63
- } else {
64
- const trimmed = line.trim();
65
- if (trimmed) shots.push(...trimmed.split(/\s\s+|\t+/));
66
- }
67
- }
68
- return {
69
- errors,
70
- tripSummaries
71
- };
72
- }
73
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdW5pdGl6ZWQiLCJyZXF1aXJlIiwidHJpcFN1bW1hcnlSZWdleCIsInBhcnNlRnJjc1RyaXBTdW1tYXJ5RmlsZSIsImZpbGUiLCJsaW5lcyIsImVycm9ycyIsInRyaXBTdW1tYXJpZXMiLCJ0cmlwU3RhcnRMaW5lIiwibGluZU51bWJlciIsInRlYW0iLCJzaG90cyIsImxpbmUiLCJtYXRjaCIsImV4ZWMiLCJ0cmlwTnVtYmVyIiwicGFyc2VJbnQiLCJ0cmlwSW5kZXgiLCJ5ZWFyIiwiZGF0ZSIsIkRhdGUiLCJ0b3RhbExlbmd0aCIsIlVuaXRpemUiLCJmZWV0IiwicGFyc2VGbG9hdCIsIm51bVNob3RzIiwibmFtZSIsInRyaW0iLCJleGNsdWRlZExlbmd0aCIsIm51bUV4Y2x1ZGVkU2hvdHMiLCJwdXNoIiwic3BsaXQiLCJ0cmltbWVkIl0sInNvdXJjZXMiOlsiLi4vc3JjL3BhcnNlRnJjc1RyaXBTdW1tYXJ5RmlsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGcmNzVHJpcFN1bW1hcnkgfSBmcm9tICcuL0ZyY3NUcmlwU3VtbWFyeSdcbmltcG9ydCB7IEZyY3NUcmlwU3VtbWFyeUZpbGUgfSBmcm9tICcuL0ZyY3NUcmlwU3VtbWFyeUZpbGUnXG5pbXBvcnQgeyBTZWdtZW50UGFyc2VFcnJvciB9IGZyb20gJ3BhcnNlLXNlZ21lbnQnXG5pbXBvcnQgeyBVbml0aXplIH0gZnJvbSAnQHNwZWxlb3RpY2EvdW5pdGl6ZWQnXG5cbmNvbnN0IHRyaXBTdW1tYXJ5UmVnZXggPSAvXlxccyooXFxkKylcXHMrKFxcZHsxLDJ9KVxcLyhcXHNcXGR8XFxkXFxkKVxcLyhcXGR7Miw0fSlcXHMrKFxcZCsoPzpcXC5cXGQqKT8pXFxzKyhcXGQrKVxccysoXFxTLiopRVhDTFVERUQ6XFxzKyhcXGQrKD86XFwuXFxkKik/KVxccysoXFxkKykvXG4vKipcbiAqIFBhcnNlcyBkYXRhIGZyb20gYSBTVEFUX3N1bS50eHQgZmlsZS4gIEhlcmUgaXMgYW4gZXhjZXJwdCBvZiB0aGUgZm9ybWF0OlxuPHByZT4gIDEgICAyLzE1LzgxICAgIDI1OC42MCAgIDE3ICAgRU5UUkFOQ0UgRFJPUFMsIEpPRSdTIFwiSSBMT1ZFIE1ZIFdJRkUgVFJBVkVSU0VcIiwgVFJJQ0tZIFRSQVZFUlNFICAgICAgICAgICAgICAgIEVYQ0xVREVEOiAgIDAuMDAgIDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXRlciBRdWljayAgS2VpdGggT3J0aXpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEExICAgICAgICAgICBBRDEtQUQzICAgICAgQUUxICAgICAgICAgIEFFMSBTSURFXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBRTkgU0lERSAgICAgQUUxMC1BRTkgICAgIEFFMTMgU0lERSAgICBBRTE1IFNJREVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFFMjAtQUUxMVxuXG4gIDMgICAzLyA2LzgxICAgMjM3MS4yMCAgIDYxICAgRE9VRydTIERFTUlTRSAoNTAgRlQgRFJPUCksIENIUklTIENST1NTLCBDUkFXTCBBQk9WRSBEUk9QICAgICAgICAgICAgICAgICAgICAgICBFWENMVURFRDogICAwLjAwICAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGV0ZXIgUXVpY2sgIENocmlzIEdlcmFjZSAgUGhpbCBPZGVuICBDaGlwIEhvcHBlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQTEzIFNJREUgICAgIEIxLUI1ICAgICAgICBCMiBTSURFICAgICAgQjMgU0lERVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQjYtQjE4ICAgICAgIEIxNyBTSURFICAgICBCMTktQjM4ICAgICAgQjMyIFNJREVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJTMS1CUzUgICAgICBDMS1DMTggICAgICAgPC9wcmU+XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlRnJjc1RyaXBTdW1tYXJ5RmlsZShcbiAgZmlsZTogc3RyaW5nLFxuICBsaW5lczogQXN5bmNJdGVyYWJsZTxzdHJpbmc+XG4pOiBQcm9taXNlPEZyY3NUcmlwU3VtbWFyeUZpbGU+IHtcbiAgY29uc3QgZXJyb3JzOiBBcnJheTxTZWdtZW50UGFyc2VFcnJvcj4gPSBbXVxuICBjb25zdCB0cmlwU3VtbWFyaWVzOiBBcnJheTxGcmNzVHJpcFN1bW1hcnkgfCB1bmRlZmluZWQ+ID0gW11cblxuICBsZXQgdHJpcFN0YXJ0TGluZSA9IC0yXG4gIGxldCBsaW5lTnVtYmVyID0gMFxuXG4gIGxldCB0ZWFtOiBBcnJheTxzdHJpbmc+ID0gW11cbiAgbGV0IHNob3RzOiBBcnJheTxzdHJpbmc+ID0gW11cblxuICBmb3IgYXdhaXQgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICBsaW5lTnVtYmVyKytcblxuICAgIGNvbnN0IG1hdGNoID0gdHJpcFN1bW1hcnlSZWdleC5leGVjKGxpbmUpXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICB0cmlwU3RhcnRMaW5lID0gbGluZU51bWJlclxuICAgICAgY29uc3QgdHJpcE51bWJlciA9IHBhcnNlSW50KG1hdGNoWzFdKVxuICAgICAgY29uc3QgdHJpcEluZGV4ID0gdHJpcE51bWJlciAtIDFcbiAgICAgIGxldCB5ZWFyID0gcGFyc2VJbnQobWF0Y2hbNF0pXG4gICAgICBpZiAoeWVhciA8IDEwMDApIHllYXIgKz0gMTkwMFxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIHBhcnNlSW50KG1hdGNoWzJdKSAtIDEsIHBhcnNlSW50KG1hdGNoWzNdKSlcbiAgICAgIGNvbnN0IHRvdGFsTGVuZ3RoID0gVW5pdGl6ZS5mZWV0KHBhcnNlRmxvYXQobWF0Y2hbNV0pKVxuICAgICAgY29uc3QgbnVtU2hvdHMgPSBwYXJzZUludChtYXRjaFs2XSlcbiAgICAgIGNvbnN0IG5hbWUgPSBtYXRjaFs3XS50cmltKClcbiAgICAgIGNvbnN0IGV4Y2x1ZGVkTGVuZ3RoID0gVW5pdGl6ZS5mZWV0KHBhcnNlRmxvYXQobWF0Y2hbOF0pKVxuICAgICAgY29uc3QgbnVtRXhjbHVkZWRTaG90cyA9IHBhcnNlSW50KG1hdGNoWzldKVxuICAgICAgdGVhbSA9IFtdXG4gICAgICBzaG90cyA9IFtdXG4gICAgICB0cmlwU3VtbWFyaWVzW3RyaXBJbmRleF0gPSB7XG4gICAgICAgIHRyaXBOdW1iZXIsXG4gICAgICAgIHRyaXBJbmRleCxcbiAgICAgICAgZGF0ZSxcbiAgICAgICAgdG90YWxMZW5ndGgsXG4gICAgICAgIG51bVNob3RzLFxuICAgICAgICBuYW1lLFxuICAgICAgICBleGNsdWRlZExlbmd0aCxcbiAgICAgICAgbnVtRXhjbHVkZWRTaG90cyxcbiAgICAgICAgdGVhbSxcbiAgICAgICAgc2hvdHMsXG4gICAgICB9XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAobGluZU51bWJlciA9PT0gdHJpcFN0YXJ0TGluZSArIDEpIHtcbiAgICAgIHRlYW0ucHVzaCguLi5saW5lLnRyaW0oKS5zcGxpdCgvXFxzXFxzK3xcXHQrL2cpKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0cmltbWVkID0gbGluZS50cmltKClcbiAgICAgIGlmICh0cmltbWVkKSBzaG90cy5wdXNoKC4uLnRyaW1tZWQuc3BsaXQoL1xcc1xccyt8XFx0Ky8pKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IGVycm9ycywgdHJpcFN1bW1hcmllcyB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUVBLE1BQU1DLGdCQUFnQixHQUFHLHFIQUFxSDtBQUM5STtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2UsZUFBZUMsd0JBQXdCQSxDQUNwREMsSUFBWSxFQUNaQyxLQUE0QixFQUNFO0VBQzlCLE1BQU1DLE1BQWdDLEdBQUcsRUFBRTtFQUMzQyxNQUFNQyxh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
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.parseFrcsTripSummaryFile = exports.parseFrcsSurveyFile = exports.parseFrcsPlotFile = void 0;
7
- var _parseFrcsSurveyFile2 = _interopRequireDefault(require("../parseFrcsSurveyFile"));
8
- var _parseFrcsPlotFile2 = _interopRequireDefault(require("../parseFrcsPlotFile"));
9
- var _parseFrcsTripSummaryFile2 = _interopRequireDefault(require("../parseFrcsTripSummaryFile"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- async function* linesOf(s) {
12
- yield* s.split(/\r\n?|\n/gm);
13
- }
14
- const convert = fn => (file, str) => fn(file, linesOf(str));
15
- const parseFrcsSurveyFile = convert(_parseFrcsSurveyFile2.default);
16
- exports.parseFrcsSurveyFile = parseFrcsSurveyFile;
17
- const parseFrcsPlotFile = convert(_parseFrcsPlotFile2.default);
18
- exports.parseFrcsPlotFile = parseFrcsPlotFile;
19
- const parseFrcsTripSummaryFile = convert(_parseFrcsTripSummaryFile2.default);
20
- exports.parseFrcsTripSummaryFile = parseFrcsTripSummaryFile;
21
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGFyc2VGcmNzU3VydmV5RmlsZTIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wYXJzZUZyY3NQbG90RmlsZTIiLCJfcGFyc2VGcmNzVHJpcFN1bW1hcnlGaWxlMiIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwibGluZXNPZiIsInMiLCJzcGxpdCIsImNvbnZlcnQiLCJmbiIsImZpbGUiLCJzdHIiLCJwYXJzZUZyY3NTdXJ2ZXlGaWxlIiwiX3BhcnNlRnJjc1N1cnZleUZpbGUiLCJleHBvcnRzIiwicGFyc2VGcmNzUGxvdEZpbGUiLCJfcGFyc2VGcmNzUGxvdEZpbGUiLCJwYXJzZUZyY3NUcmlwU3VtbWFyeUZpbGUiLCJfcGFyc2VGcmNzVHJpcFN1bW1hcnlGaWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmluZy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX3BhcnNlRnJjc1N1cnZleUZpbGUgZnJvbSAnLi4vcGFyc2VGcmNzU3VydmV5RmlsZSdcbmltcG9ydCBfcGFyc2VGcmNzUGxvdEZpbGUgZnJvbSAnLi4vcGFyc2VGcmNzUGxvdEZpbGUnXG5pbXBvcnQgX3BhcnNlRnJjc1RyaXBTdW1tYXJ5RmlsZSBmcm9tICcuLi9wYXJzZUZyY3NUcmlwU3VtbWFyeUZpbGUnXG5cbmFzeW5jIGZ1bmN0aW9uKiBsaW5lc09mKHM6IHN0cmluZyk6IEFzeW5jSXRlcmFibGU8c3RyaW5nPiB7XG4gIHlpZWxkKiBzLnNwbGl0KC9cXHJcXG4/fFxcbi9nbSlcbn1cbmNvbnN0IGNvbnZlcnQgPSA8VD4oXG4gIGZuOiAoZmlsZTogc3RyaW5nLCBsaW5lczogQXN5bmNJdGVyYWJsZTxzdHJpbmc+KSA9PiBQcm9taXNlPFQ+XG4pID0+IChmaWxlOiBzdHJpbmcsIHN0cjogc3RyaW5nKTogUHJvbWlzZTxUPiA9PiBmbihmaWxlLCBsaW5lc09mKHN0cikpXG5cbmV4cG9ydCBjb25zdCBwYXJzZUZyY3NTdXJ2ZXlGaWxlID0gY29udmVydChfcGFyc2VGcmNzU3VydmV5RmlsZSlcbmV4cG9ydCBjb25zdCBwYXJzZUZyY3NQbG90RmlsZSA9IGNvbnZlcnQoX3BhcnNlRnJjc1Bsb3RGaWxlKVxuZXhwb3J0IGNvbnN0IHBhcnNlRnJjc1RyaXBTdW1tYXJ5RmlsZSA9IGNvbnZlcnQoX3BhcnNlRnJjc1RyaXBTdW1tYXJ5RmlsZSlcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEscUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLG1CQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSwwQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQW1FLFNBQUFELHVCQUFBSSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBRW5FLGdCQUFnQkcsT0FBT0EsQ0FBQ0MsQ0FBUyxFQUF5QjtFQUN4RCxPQUFPQSxDQUFDLENBQUNDLEtBQUssQ0FBQyxZQUFZLENBQUM7QUFDOUI7QUFDQSxNQUFNQyxPQUFPLEdBQ1hDLEVBQThELElBQzNELENBQUNDLElBQVksRUFBRUMsR0FBVyxLQUFpQkYsRUFBRSxDQUFDQyxJQUFJLEVBQUVMLE9BQU8sQ0FBQ00sR0FBRyxDQUFDLENBQUM7QUFFL0QsTUFBTUMsbUJBQW1CLEdBQUdKLE9BQU8sQ0FBQ0ssNkJBQW9CLENBQUM7QUFBQUMsT0FBQSxDQUFBRixtQkFBQSxHQUFBQSxtQkFBQTtBQUN6RCxNQUFNRyxpQkFBaUIsR0FBR1AsT0FBTyxDQUFDUSwyQkFBa0IsQ0FBQztBQUFBRixPQUFBLENBQUFDLGlCQUFBLEdBQUFBLGlCQUFBO0FBQ3JELE1BQU1FLHdCQUF3QixHQUFHVCxPQUFPLENBQUNVLGtDQUF5QixDQUFDO0FBQUFKLE9BQUEsQ0FBQUcsd0JBQUEsR0FBQUEsd0JBQUEifQ==
@@ -1,179 +0,0 @@
1
- "use strict";
2
-
3
- var _mocha = require("mocha");
4
- var _index = require("./index");
5
- var _unitized = require("@speleotica/unitized");
6
- var _chai = require("chai");
7
- const data = ` 123.182259
8
- AE20 1 1 0 0 0 153 -257 -51 85 0 20 1
9
- AE19 1 2 653 402 -548 1046 -587 -174 97 0 200 1
10
- AE18 2 3 669 449 -3002 995 94 -597 -56 250 0 1
11
- AE17 3 4 539 1217 -2770 497 47 -298 -28 0 0 1
12
- AE16 4 5 544 1230 -3441 411 -284 -246 170 60 10 1
13
- AE15 5 6 1679 1663 -3833 0 0 -282 283 20 10 1
14
- AE14 6 7 2026 2617 -3730 446 225 -446 -225 0 30
15
- AE13 7 8 391 3152 -5788 -111 691 0 0 200 50 1
16
- AE12 8 9 -1019 2175 -4630 -369 336 221 -201 40 40 1
17
- AE11 9 10 -1516 1289 -3919 -348 195 610 -342 50 10 1
18
- `;
19
- (0, _mocha.describe)('parseFrcsPlotFile', () => {
20
- (0, _mocha.it)('basic test', async function () {
21
- const parsed = await (0, _index.parseFrcsPlotFile)('cdata.fr', data);
22
- (0, _chai.expect)(parsed).to.deep.equal({
23
- totalLength: _unitized.Unitize.feet(123.182259),
24
- errors: [],
25
- shots: [{
26
- toName: 'AE20',
27
- isSurface: false,
28
- fromNumber: 1,
29
- toNumber: 1,
30
- easting: _unitized.Unitize.feet(0),
31
- northing: _unitized.Unitize.feet(0),
32
- elevation: _unitized.Unitize.feet(0),
33
- leftEasting: _unitized.Unitize.feet(1.53),
34
- leftNorthing: _unitized.Unitize.feet(-2.57),
35
- rightEasting: _unitized.Unitize.feet(-0.51),
36
- rightNorthing: _unitized.Unitize.feet(0.85),
37
- up: _unitized.Unitize.feet(0),
38
- down: _unitized.Unitize.feet(2),
39
- tripNumber: 1
40
- }, {
41
- toName: 'AE19',
42
- isSurface: false,
43
- fromNumber: 1,
44
- toNumber: 2,
45
- easting: _unitized.Unitize.feet(6.53),
46
- northing: _unitized.Unitize.feet(4.02),
47
- elevation: _unitized.Unitize.feet(-5.48),
48
- leftEasting: _unitized.Unitize.feet(10.46),
49
- leftNorthing: _unitized.Unitize.feet(-5.87),
50
- rightEasting: _unitized.Unitize.feet(-1.74),
51
- rightNorthing: _unitized.Unitize.feet(0.97),
52
- up: _unitized.Unitize.feet(0),
53
- down: _unitized.Unitize.feet(20),
54
- tripNumber: 1
55
- }, {
56
- toName: 'AE18',
57
- isSurface: false,
58
- fromNumber: 2,
59
- toNumber: 3,
60
- easting: _unitized.Unitize.feet(6.69),
61
- northing: _unitized.Unitize.feet(4.49),
62
- elevation: _unitized.Unitize.feet(-30.02),
63
- leftEasting: _unitized.Unitize.feet(9.95),
64
- leftNorthing: _unitized.Unitize.feet(0.94),
65
- rightEasting: _unitized.Unitize.feet(-5.97),
66
- rightNorthing: _unitized.Unitize.feet(-0.56),
67
- up: _unitized.Unitize.feet(25),
68
- down: _unitized.Unitize.feet(0),
69
- tripNumber: 1
70
- }, {
71
- toName: 'AE17',
72
- isSurface: false,
73
- fromNumber: 3,
74
- toNumber: 4,
75
- easting: _unitized.Unitize.feet(5.39),
76
- northing: _unitized.Unitize.feet(12.17),
77
- elevation: _unitized.Unitize.feet(-27.7),
78
- leftEasting: _unitized.Unitize.feet(4.97),
79
- leftNorthing: _unitized.Unitize.feet(0.47),
80
- rightEasting: _unitized.Unitize.feet(-2.98),
81
- rightNorthing: _unitized.Unitize.feet(-0.28),
82
- up: _unitized.Unitize.feet(0),
83
- down: _unitized.Unitize.feet(0),
84
- tripNumber: 1
85
- }, {
86
- toName: 'AE16',
87
- isSurface: false,
88
- fromNumber: 4,
89
- toNumber: 5,
90
- easting: _unitized.Unitize.feet(5.44),
91
- northing: _unitized.Unitize.feet(12.3),
92
- elevation: _unitized.Unitize.feet(-34.41),
93
- leftEasting: _unitized.Unitize.feet(4.11),
94
- leftNorthing: _unitized.Unitize.feet(-2.84),
95
- rightEasting: _unitized.Unitize.feet(-2.46),
96
- rightNorthing: _unitized.Unitize.feet(1.7),
97
- up: _unitized.Unitize.feet(6),
98
- down: _unitized.Unitize.feet(1),
99
- tripNumber: 1
100
- }, {
101
- toName: 'AE15',
102
- isSurface: false,
103
- fromNumber: 5,
104
- toNumber: 6,
105
- easting: _unitized.Unitize.feet(16.79),
106
- northing: _unitized.Unitize.feet(16.63),
107
- elevation: _unitized.Unitize.feet(-38.33),
108
- leftEasting: _unitized.Unitize.feet(0),
109
- leftNorthing: _unitized.Unitize.feet(0),
110
- rightEasting: _unitized.Unitize.feet(-2.82),
111
- rightNorthing: _unitized.Unitize.feet(2.83),
112
- up: _unitized.Unitize.feet(2),
113
- down: _unitized.Unitize.feet(1),
114
- tripNumber: 1
115
- }, {
116
- toName: 'AE14',
117
- isSurface: false,
118
- fromNumber: 6,
119
- toNumber: 7,
120
- easting: _unitized.Unitize.feet(20.26),
121
- northing: _unitized.Unitize.feet(26.17),
122
- elevation: _unitized.Unitize.feet(-37.3),
123
- leftEasting: _unitized.Unitize.feet(4.46),
124
- leftNorthing: _unitized.Unitize.feet(2.25),
125
- rightEasting: _unitized.Unitize.feet(-4.46),
126
- rightNorthing: _unitized.Unitize.feet(-2.25),
127
- up: _unitized.Unitize.feet(0),
128
- down: _unitized.Unitize.feet(3),
129
- tripNumber: null
130
- }, {
131
- toName: 'AE13',
132
- isSurface: false,
133
- fromNumber: 7,
134
- toNumber: 8,
135
- easting: _unitized.Unitize.feet(3.91),
136
- northing: _unitized.Unitize.feet(31.52),
137
- elevation: _unitized.Unitize.feet(-57.88),
138
- leftEasting: _unitized.Unitize.feet(-1.11),
139
- leftNorthing: _unitized.Unitize.feet(6.91),
140
- rightEasting: _unitized.Unitize.feet(0),
141
- rightNorthing: _unitized.Unitize.feet(0),
142
- up: _unitized.Unitize.feet(20),
143
- down: _unitized.Unitize.feet(5),
144
- tripNumber: 1
145
- }, {
146
- toName: 'AE12',
147
- isSurface: false,
148
- fromNumber: 8,
149
- toNumber: 9,
150
- easting: _unitized.Unitize.feet(-10.19),
151
- northing: _unitized.Unitize.feet(21.75),
152
- elevation: _unitized.Unitize.feet(-46.3),
153
- leftEasting: _unitized.Unitize.feet(-3.69),
154
- leftNorthing: _unitized.Unitize.feet(3.36),
155
- rightEasting: _unitized.Unitize.feet(2.21),
156
- rightNorthing: _unitized.Unitize.feet(-2.01),
157
- up: _unitized.Unitize.feet(4),
158
- down: _unitized.Unitize.feet(4),
159
- tripNumber: 1
160
- }, {
161
- toName: 'AE11',
162
- isSurface: false,
163
- fromNumber: 9,
164
- toNumber: 10,
165
- easting: _unitized.Unitize.feet(-15.16),
166
- northing: _unitized.Unitize.feet(12.89),
167
- elevation: _unitized.Unitize.feet(-39.19),
168
- leftEasting: _unitized.Unitize.feet(-3.48),
169
- leftNorthing: _unitized.Unitize.feet(1.95),
170
- rightEasting: _unitized.Unitize.feet(6.1),
171
- rightNorthing: _unitized.Unitize.feet(-3.42),
172
- up: _unitized.Unitize.feet(5),
173
- down: _unitized.Unitize.feet(1),
174
- tripNumber: 1
175
- }]
176
- });
177
- });
178
- });
179
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9jaGEiLCJyZXF1aXJlIiwiX2luZGV4IiwiX3VuaXRpemVkIiwiX2NoYWkiLCJkYXRhIiwiZGVzY3JpYmUiLCJpdCIsInBhcnNlZCIsInBhcnNlRnJjc1Bsb3RGaWxlIiwiZXhwZWN0IiwidG8iLCJkZWVwIiwiZXF1YWwiLCJ0b3RhbExlbmd0aCIsIlVuaXRpemUiLCJmZWV0IiwiZXJyb3JzIiwic2hvdHMiLCJ0b05hbWUiLCJpc1N1cmZhY2UiLCJmcm9tTnVtYmVyIiwidG9OdW1iZXIiLCJlYXN0aW5nIiwibm9ydGhpbmciLCJlbGV2YXRpb24iLCJsZWZ0RWFzdGluZyIsImxlZnROb3J0aGluZyIsInJpZ2h0RWFzdGluZyIsInJpZ2h0Tm9ydGhpbmciLCJ1cCIsImRvd24iLCJ0cmlwTnVtYmVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmluZy9wYXJzZUZyY3NQbG90RmlsZS5zcGVjLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBpdCB9IGZyb20gJ21vY2hhJ1xuaW1wb3J0IHsgcGFyc2VGcmNzUGxvdEZpbGUgfSBmcm9tICcuL2luZGV4J1xuaW1wb3J0IHsgVW5pdGl6ZSB9IGZyb20gJ0BzcGVsZW90aWNhL3VuaXRpemVkJ1xuaW1wb3J0IHsgZXhwZWN0IH0gZnJvbSAnY2hhaSdcblxuY29uc3QgZGF0YSA9IGAgICAxMjMuMTgyMjU5XG4gQUUyMCAgICAgMSAgICAxICAgICAgIDAgICAgICAgMCAgICAgIDAgICAxNTMgIC0yNTcgICAtNTEgICAgODUgICAwICAyMCAgICAgMVxuIEFFMTkgICAgIDEgICAgMiAgICAgNjUzICAgICA0MDIgICAtNTQ4ICAxMDQ2ICAtNTg3ICAtMTc0ICAgIDk3ICAgMCAyMDAgICAgIDFcbiBBRTE4ICAgICAyICAgIDMgICAgIDY2OSAgICAgNDQ5ICAtMzAwMiAgIDk5NSAgICA5NCAgLTU5NyAgIC01NiAyNTAgICAwICAgICAxXG4gQUUxNyAgICAgMyAgICA0ICAgICA1MzkgICAgMTIxNyAgLTI3NzAgICA0OTcgICAgNDcgIC0yOTggICAtMjggICAwICAgMCAgICAgMVxuIEFFMTYgICAgIDQgICAgNSAgICAgNTQ0ICAgIDEyMzAgIC0zNDQxICAgNDExICAtMjg0ICAtMjQ2ICAgMTcwICA2MCAgMTAgICAgIDFcbiBBRTE1ICAgICA1ICAgIDYgICAgMTY3OSAgICAxNjYzICAtMzgzMyAgICAgMCAgICAgMCAgLTI4MiAgIDI4MyAgMjAgIDEwICAgICAxXG4gQUUxNCAgICAgNiAgICA3ICAgIDIwMjYgICAgMjYxNyAgLTM3MzAgICA0NDYgICAyMjUgIC00NDYgIC0yMjUgICAwICAzMCAgICAgXG4gQUUxMyAgICAgNyAgICA4ICAgICAzOTEgICAgMzE1MiAgLTU3ODggIC0xMTEgICA2OTEgICAgIDAgICAgIDAgMjAwICA1MCAgICAgMVxuIEFFMTIgICAgIDggICAgOSAgIC0xMDE5ICAgIDIxNzUgIC00NjMwICAtMzY5ICAgMzM2ICAgMjIxICAtMjAxICA0MCAgNDAgICAgIDFcbiBBRTExICAgICA5ICAgMTAgICAtMTUxNiAgICAxMjg5ICAtMzkxOSAgLTM0OCAgIDE5NSAgIDYxMCAgLTM0MiAgNTAgIDEwICAgICAxXG5gXG5cbmRlc2NyaWJlKCdwYXJzZUZyY3NQbG90RmlsZScsICgpID0+IHtcbiAgaXQoJ2Jhc2ljIHRlc3QnLCBhc3luYyBmdW5jdGlvbigpIHtcbiAgICBjb25zdCBwYXJzZWQgPSBhd2FpdCBwYXJzZUZyY3NQbG90RmlsZSgnY2RhdGEuZnInLCBkYXRhKVxuICAgIGV4cGVjdChwYXJzZWQpLnRvLmRlZXAuZXF1YWwoe1xuICAgICAgdG90YWxMZW5ndGg6IFVuaXRpemUuZmVldCgxMjMuMTgyMjU5KSxcbiAgICAgIGVycm9yczogW10sXG4gICAgICBzaG90czogW1xuICAgICAgICB7XG4gICAgICAgICAgdG9OYW1lOiAnQUUyMCcsXG4gICAgICAgICAgaXNTdXJmYWNlOiBmYWxzZSxcbiAgICAgICAgICBmcm9tTnVtYmVyOiAxLFxuICAgICAgICAgIHRvTnVtYmVyOiAxLFxuICAgICAgICAgIGVhc3Rpbmc6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICBub3J0aGluZzogVW5pdGl6ZS5mZWV0KDApLFxuICAgICAgICAgIGVsZXZhdGlvbjogVW5pdGl6ZS5mZWV0KDApLFxuICAgICAgICAgIGxlZnRFYXN0aW5nOiBVbml0aXplLmZlZXQoMS41MyksXG4gICAgICAgICAgbGVmdE5vcnRoaW5nOiBVbml0aXplLmZlZXQoLTIuNTcpLFxuICAgICAgICAgIHJpZ2h0RWFzdGluZzogVW5pdGl6ZS5mZWV0KC0wLjUxKSxcbiAgICAgICAgICByaWdodE5vcnRoaW5nOiBVbml0aXplLmZlZXQoMC44NSksXG4gICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoMiksXG4gICAgICAgICAgdHJpcE51bWJlcjogMSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRvTmFtZTogJ0FFMTknLFxuICAgICAgICAgIGlzU3VyZmFjZTogZmFsc2UsXG4gICAgICAgICAgZnJvbU51bWJlcjogMSxcbiAgICAgICAgICB0b051bWJlcjogMixcbiAgICAgICAgICBlYXN0aW5nOiBVbml0aXplLmZlZXQoNi41MyksXG4gICAgICAgICAgbm9ydGhpbmc6IFVuaXRpemUuZmVldCg0LjAyKSxcbiAgICAgICAgICBlbGV2YXRpb246IFVuaXRpemUuZmVldCgtNS40OCksXG4gICAgICAgICAgbGVmdEVhc3Rpbmc6IFVuaXRpemUuZmVldCgxMC40NiksXG4gICAgICAgICAgbGVmdE5vcnRoaW5nOiBVbml0aXplLmZlZXQoLTUuODcpLFxuICAgICAgICAgIHJpZ2h0RWFzdGluZzogVW5pdGl6ZS5mZWV0KC0xLjc0KSxcbiAgICAgICAgICByaWdodE5vcnRoaW5nOiBVbml0aXplLmZlZXQoMC45NyksXG4gICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoMjApLFxuICAgICAgICAgIHRyaXBOdW1iZXI6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0b05hbWU6ICdBRTE4JyxcbiAgICAgICAgICBpc1N1cmZhY2U6IGZhbHNlLFxuICAgICAgICAgIGZyb21OdW1iZXI6IDIsXG4gICAgICAgICAgdG9OdW1iZXI6IDMsXG4gICAgICAgICAgZWFzdGluZzogVW5pdGl6ZS5mZWV0KDYuNjkpLFxuICAgICAgICAgIG5vcnRoaW5nOiBVbml0aXplLmZlZXQoNC40OSksXG4gICAgICAgICAgZWxldmF0aW9uOiBVbml0aXplLmZlZXQoLTMwLjAyKSxcbiAgICAgICAgICBsZWZ0RWFzdGluZzogVW5pdGl6ZS5mZWV0KDkuOTUpLFxuICAgICAgICAgIGxlZnROb3J0aGluZzogVW5pdGl6ZS5mZWV0KDAuOTQpLFxuICAgICAgICAgIHJpZ2h0RWFzdGluZzogVW5pdGl6ZS5mZWV0KC01Ljk3KSxcbiAgICAgICAgICByaWdodE5vcnRoaW5nOiBVbml0aXplLmZlZXQoLTAuNTYpLFxuICAgICAgICAgIHVwOiBVbml0aXplLmZlZXQoMjUpLFxuICAgICAgICAgIGRvd246IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICB0cmlwTnVtYmVyOiAxLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdG9OYW1lOiAnQUUxNycsXG4gICAgICAgICAgaXNTdXJmYWNlOiBmYWxzZSxcbiAgICAgICAgICBmcm9tTnVtYmVyOiAzLFxuICAgICAgICAgIHRvTnVtYmVyOiA0LFxuICAgICAgICAgIGVhc3Rpbmc6IFVuaXRpemUuZmVldCg1LjM5KSxcbiAgICAgICAgICBub3J0aGluZzogVW5pdGl6ZS5mZWV0KDEyLjE3KSxcbiAgICAgICAgICBlbGV2YXRpb246IFVuaXRpemUuZmVldCgtMjcuNyksXG4gICAgICAgICAgbGVmdEVhc3Rpbmc6IFVuaXRpemUuZmVldCg0Ljk3KSxcbiAgICAgICAgICBsZWZ0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgwLjQ3KSxcbiAgICAgICAgICByaWdodEVhc3Rpbmc6IFVuaXRpemUuZmVldCgtMi45OCksXG4gICAgICAgICAgcmlnaHROb3J0aGluZzogVW5pdGl6ZS5mZWV0KC0wLjI4KSxcbiAgICAgICAgICB1cDogVW5pdGl6ZS5mZWV0KDApLFxuICAgICAgICAgIGRvd246IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICB0cmlwTnVtYmVyOiAxLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdG9OYW1lOiAnQUUxNicsXG4gICAgICAgICAgaXNTdXJmYWNlOiBmYWxzZSxcbiAgICAgICAgICBmcm9tTnVtYmVyOiA0LFxuICAgICAgICAgIHRvTnVtYmVyOiA1LFxuICAgICAgICAgIGVhc3Rpbmc6IFVuaXRpemUuZmVldCg1LjQ0KSxcbiAgICAgICAgICBub3J0aGluZzogVW5pdGl6ZS5mZWV0KDEyLjMpLFxuICAgICAgICAgIGVsZXZhdGlvbjogVW5pdGl6ZS5mZWV0KC0zNC40MSksXG4gICAgICAgICAgbGVmdEVhc3Rpbmc6IFVuaXRpemUuZmVldCg0LjExKSxcbiAgICAgICAgICBsZWZ0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgtMi44NCksXG4gICAgICAgICAgcmlnaHRFYXN0aW5nOiBVbml0aXplLmZlZXQoLTIuNDYpLFxuICAgICAgICAgIHJpZ2h0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgxLjcpLFxuICAgICAgICAgIHVwOiBVbml0aXplLmZlZXQoNiksXG4gICAgICAgICAgZG93bjogVW5pdGl6ZS5mZWV0KDEpLFxuICAgICAgICAgIHRyaXBOdW1iZXI6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0b05hbWU6ICdBRTE1JyxcbiAgICAgICAgICBpc1N1cmZhY2U6IGZhbHNlLFxuICAgICAgICAgIGZyb21OdW1iZXI6IDUsXG4gICAgICAgICAgdG9OdW1iZXI6IDYsXG4gICAgICAgICAgZWFzdGluZzogVW5pdGl6ZS5mZWV0KDE2Ljc5KSxcbiAgICAgICAgICBub3J0aGluZzogVW5pdGl6ZS5mZWV0KDE2LjYzKSxcbiAgICAgICAgICBlbGV2YXRpb246IFVuaXRpemUuZmVldCgtMzguMzMpLFxuICAgICAgICAgIGxlZnRFYXN0aW5nOiBVbml0aXplLmZlZXQoMCksXG4gICAgICAgICAgbGVmdE5vcnRoaW5nOiBVbml0aXplLmZlZXQoMCksXG4gICAgICAgICAgcmlnaHRFYXN0aW5nOiBVbml0aXplLmZlZXQoLTIuODIpLFxuICAgICAgICAgIHJpZ2h0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgyLjgzKSxcbiAgICAgICAgICB1cDogVW5pdGl6ZS5mZWV0KDIpLFxuICAgICAgICAgIGRvd246IFVuaXRpemUuZmVldCgxKSxcbiAgICAgICAgICB0cmlwTnVtYmVyOiAxLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdG9OYW1lOiAnQUUxNCcsXG4gICAgICAgICAgaXNTdXJmYWNlOiBmYWxzZSxcbiAgICAgICAgICBmcm9tTnVtYmVyOiA2LFxuICAgICAgICAgIHRvTnVtYmVyOiA3LFxuICAgICAgICAgIGVhc3Rpbmc6IFVuaXRpemUuZmVldCgyMC4yNiksXG4gICAgICAgICAgbm9ydGhpbmc6IFVuaXRpemUuZmVldCgyNi4xNyksXG4gICAgICAgICAgZWxldmF0aW9uOiBVbml0aXplLmZlZXQoLTM3LjMpLFxuICAgICAgICAgIGxlZnRFYXN0aW5nOiBVbml0aXplLmZlZXQoNC40NiksXG4gICAgICAgICAgbGVmdE5vcnRoaW5nOiBVbml0aXplLmZlZXQoMi4yNSksXG4gICAgICAgICAgcmlnaHRFYXN0aW5nOiBVbml0aXplLmZlZXQoLTQuNDYpLFxuICAgICAgICAgIHJpZ2h0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgtMi4yNSksXG4gICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoMyksXG4gICAgICAgICAgdHJpcE51bWJlcjogbnVsbCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRvTmFtZTogJ0FFMTMnLFxuICAgICAgICAgIGlzU3VyZmFjZTogZmFsc2UsXG4gICAgICAgICAgZnJvbU51bWJlcjogNyxcbiAgICAgICAgICB0b051bWJlcjogOCxcbiAgICAgICAgICBlYXN0aW5nOiBVbml0aXplLmZlZXQoMy45MSksXG4gICAgICAgICAgbm9ydGhpbmc6IFVuaXRpemUuZmVldCgzMS41MiksXG4gICAgICAgICAgZWxldmF0aW9uOiBVbml0aXplLmZlZXQoLTU3Ljg4KSxcbiAgICAgICAgICBsZWZ0RWFzdGluZzogVW5pdGl6ZS5mZWV0KC0xLjExKSxcbiAgICAgICAgICBsZWZ0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCg2LjkxKSxcbiAgICAgICAgICByaWdodEVhc3Rpbmc6IFVuaXRpemUuZmVldCgwKSxcbiAgICAgICAgICByaWdodE5vcnRoaW5nOiBVbml0aXplLmZlZXQoMCksXG4gICAgICAgICAgdXA6IFVuaXRpemUuZmVldCgyMCksXG4gICAgICAgICAgZG93bjogVW5pdGl6ZS5mZWV0KDUpLFxuICAgICAgICAgIHRyaXBOdW1iZXI6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0b05hbWU6ICdBRTEyJyxcbiAgICAgICAgICBpc1N1cmZhY2U6IGZhbHNlLFxuICAgICAgICAgIGZyb21OdW1iZXI6IDgsXG4gICAgICAgICAgdG9OdW1iZXI6IDksXG4gICAgICAgICAgZWFzdGluZzogVW5pdGl6ZS5mZWV0KC0xMC4xOSksXG4gICAgICAgICAgbm9ydGhpbmc6IFVuaXRpemUuZmVldCgyMS43NSksXG4gICAgICAgICAgZWxldmF0aW9uOiBVbml0aXplLmZlZXQoLTQ2LjMpLFxuICAgICAgICAgIGxlZnRFYXN0aW5nOiBVbml0aXplLmZlZXQoLTMuNjkpLFxuICAgICAgICAgIGxlZnROb3J0aGluZzogVW5pdGl6ZS5mZWV0KDMuMzYpLFxuICAgICAgICAgIHJpZ2h0RWFzdGluZzogVW5pdGl6ZS5mZWV0KDIuMjEpLFxuICAgICAgICAgIHJpZ2h0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgtMi4wMSksXG4gICAgICAgICAgdXA6IFVuaXRpemUuZmVldCg0KSxcbiAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoNCksXG4gICAgICAgICAgdHJpcE51bWJlcjogMSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRvTmFtZTogJ0FFMTEnLFxuICAgICAgICAgIGlzU3VyZmFjZTogZmFsc2UsXG4gICAgICAgICAgZnJvbU51bWJlcjogOSxcbiAgICAgICAgICB0b051bWJlcjogMTAsXG4gICAgICAgICAgZWFzdGluZzogVW5pdGl6ZS5mZWV0KC0xNS4xNiksXG4gICAgICAgICAgbm9ydGhpbmc6IFVuaXRpemUuZmVldCgxMi44OSksXG4gICAgICAgICAgZWxldmF0aW9uOiBVbml0aXplLmZlZXQoLTM5LjE5KSxcbiAgICAgICAgICBsZWZ0RWFzdGluZzogVW5pdGl6ZS5mZWV0KC0zLjQ4KSxcbiAgICAgICAgICBsZWZ0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgxLjk1KSxcbiAgICAgICAgICByaWdodEVhc3Rpbmc6IFVuaXRpemUuZmVldCg2LjEpLFxuICAgICAgICAgIHJpZ2h0Tm9ydGhpbmc6IFVuaXRpemUuZmVldCgtMy40MiksXG4gICAgICAgICAgdXA6IFVuaXRpemUuZmVldCg1KSxcbiAgICAgICAgICBkb3duOiBVbml0aXplLmZlZXQoMSksXG4gICAgICAgICAgdHJpcE51bWJlcjogMSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSlcbiAgfSlcbn0pXG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsU0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsS0FBQSxHQUFBSCxPQUFBO0FBRUEsTUFBTUksSUFBSSxHQUFJO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBRUQsSUFBQUMsZUFB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