PageSourceSearch

https://lumino.co.nz/resources/js/main.543be24f00b8042b0cec.js

js lumino.co.nz collected 2026-10-05 00:44:29 UTC 71,234 bytes, 587 lines download raw bytes

1"use strict";
2(self["webpackChunkabanohealthcare"] = self["webpackChunkabanohealthcare"] || []).push([["main"],{
3
4/***/ "./resources/src/js/app/libraries/debounce.js":
5/*!****************************************************!*\
6  !*** ./resources/src/js/app/libraries/debounce.js ***!
7  \****************************************************/
8/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9
10__webpack_require__.r(__webpack_exports__);
11/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12/* harmony export */   "default": () => (/* binding */ debounce)
13/* harmony export */ });
14// Returns a function, that, as long as it continues to be invoked, will not
15// be triggered. The function will be called after it stops being called for
16// N milliseconds. If `immediate` is passed, trigger the function on the
17// leading edge, instead of the trailing.
18function debounce(func, wait, options) {
19  var timeout;
20  var leading = options.leading || false;
21  var trailing = options.trailing === undefined ? true : options.trailing;
22  return function () {
23    var context = this,
24      args = arguments;
25    var later = function () {
26      timeout = null;
27      if (trailing) func.apply(context, args);
28    };
29    var callNow = leading && !timeout;
30    clearTimeout(timeout);
31    timeout = setTimeout(later, wait);
32    if (callNow) func.apply(context, args);
33  };
34}
35;
36
37/***/ }),
38
39/***/ "./resources/src/js/app/main.js":
40/*!**************************************!*\
41  !*** ./resources/src/js/app/main.js ***!
42  \**************************************/
43/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
44
45__webpack_require__.r(__webpack_exports__);
46/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");
47/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
48/* harmony import */ var _libraries_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./libraries/debounce */ "./resources/src/js/app/libraries/debounce.js");
49
50
51
52// import { MY_TOPIC } from "./components/EventTypes"; 
53
54/**
55* documentation for pubsub module here
56https://github.com/mroderick/PubSubJS/
57
58use like this:
59  
60//handler
61var mySubscriber = function (msg, data) { 
62   console.log(msg, data); 
63}; 
64 
65//listen for a topic
66var token = PubSub.subscribe(MY_TOPIC, mySubscriber);
67
68// publish a topic asynchronously 
69PubSub.publish(MY_TOPIC, ['hello world!','test']);
70
71**/
72
73window.abano = window.abano || {};
74var vh = window.innerHeight * 0.01;
75
76// Then we set the value in the --vh custom property to the root of the document
77document.documentElement.style.setProperty('--vh', `${vh}px`);
78var menuVhFix__DEBOUNCED_WINDOW_RESIZE = (0,_libraries_debounce__WEBPACK_IMPORTED_MODULE_1__["default"])(function () {
79  let vh = window.innerHeight * 0.01;
80  document.documentElement.style.setProperty('--vh', `${vh}px`);
81}, 100, {
82  trailing: true
83});
84jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('resize', menuVhFix__DEBOUNCED_WINDOW_RESIZE);
85const loadRules = {
86  documentContains: selector => {
87    return document.querySelector(selector) != null;
88  }
89};
90abano.navigation = function () {
91  return {
92    init: function () {
93      if (loadRules.documentContains('.c-nav')) {
94        __webpack_require__.e(/*! import() | abano.navigation */ "abano.navigation").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.navigation */ "./resources/src/js/app/LazyComponents/abano.navigation.js")).then(module => {
95          module.default();
96        });
97      }
98    }
99  };
100}();
101abano.navigation.init();
102abano.miniSearch = function () {
103  return {
104    init: function () {
105      if (loadRules.documentContains('.c-mini-search')) {
106        __webpack_require__.e(/*! import() | abano.miniSearch */ "abano.miniSearch").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.miniSearch */ "./resources/src/js/app/LazyComponents/abano.miniSearch.js")).then(module => {
107          module.default();
108        });
109      }
110    }
111  };
112}();
113abano.miniSearch.init();
114abano.bookNow = function () {
115  return {
116    init() {
117      if (abano.config && abano.config.practiceDirectory) {
118        __webpack_require__.e(/*! import() | abano.bookNow */ "abano.bookNow").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.bookNow */ "./resources/src/js/app/LazyComponents/abano.bookNow.js")).then(module => {
119          module.default();
120        });
121      }
122    }
123  };
124}();
125abano.bookNow.init();
126abano.preferredPractice = function () {
127  return {
128    init: function () {
129      if (loadRules.documentContains('[data-practice-widget], [data-practice-details-label]')) {
130        __webpack_require__.e(/*! import() | abano.preferredPractice */ "abano.preferredPractice").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.preferredPractice */ "./resources/src/js/app/LazyComponents/abano.preferredPractice.js")).then(module => {
131          module.default();
132        });
133      }
134    }
135  };
136}();
137abano.preferredPractice.init();
138
139//this will not work well with 2 pagination areas on the same page both will update the url.
140//if we need this feature a work around is required.
141abano.mainSearch = function () {
142  return {
143    init: function () {
144      if (loadRules.documentContains('.pagination-results')) {
145        __webpack_require__.e(/*! import() | abano.mainSearch */ "abano.mainSearch").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/
145abano.mainSearch */ "./resources/src/js/app/LazyComponents/abano.mainSearch.js")).then(module => {
146          module.default();
147        });
148      }
149    }
150  };
151}();
152abano.mainSearch.init();
153abano.careersSearch = function () {
154  return {
155    init: function () {
156      if (loadRules.documentContains('[data-component="c-careers-search-bar"]')) {
157        __webpack_require__.e(/*! import() | abano.careersSearchBar */ "abano.careersSearchBar").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.careersSearchBar */ "./resources/src/js/app/LazyComponents/abano.careersSearchBar.js")).then(module => {
158          module.default();
159        });
160      }
161    }
162  };
163}();
164abano.careersSearch.init();
165abano.careersJobList = function () {
166  return {
167    init: function () {
168      if (loadRules.documentContains('[data-component="c-careers-job-list"]')) {
169        __webpack_require__.e(/*! import() | abano.careersJobListr */ "abano.careersJobListr").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.careersJobList */ "./resources/src/js/app/LazyComponents/abano.careersJobList.js")).then(module => {
170          module.default();
171        });
172      }
173    }
174  };
175}();
176abano.careersJobList.init();
177abano.toggleCollapse = function () {
178  return {
179    init: function () {
180      if (loadRules.documentContains('[data-toggle-text]')) {
181        __webpack_require__.e(/*! import() | abano.toggleCollapse */ "abano.toggleCollapse").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.toggleCollapse */ "./resources/src/js/app/LazyComponents/abano.toggleCollapse.js")).then(module => {
182          module.default();
183        });
184      }
185    }
186  };
187}();
188abano.toggleCollapse.init();
189
190//wrap the bootstrap modules we need so that we can lazy load with webpack.
191//the bootstrap plugins ars self contained so we don't actually need to do any callback.
192abano.collapse = function () {
193  return {
194    init: function () {
195      if (loadRules.documentContains('[data-toggle="collapse"], [data-depends="collapse"]')) {
196        Promise.all(/*! import() | abano.bsCollapse */[__webpack_require__.e("vendors"), __webpack_require__.e("abano.bsCollapse")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.bsCollapse */ "./resources/src/js/app/LazyComponents/abano.bsCollapse.js"));
197      }
198      if (loadRules.documentContains('[data-toggle="tab"]')) {
199        Promise.all(/*! import() | abano.bsTab */[__webpack_require__.e("vendors"), __webpack_require__.e("abano.bsTab")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.bsTab */ "./resources/src/js/app/LazyComponents/abano.bsTab.js"));
200      }
201    }
202  };
203}().init();
204abano.scrollBannerAlert = function () {
205  return {
206    init: function () {
207      if (loadRules.documentContains('[data-component="c-sliding-banner-alert"]')) {
208        Promise.all(/*! import() | abano.sliderAlert */[__webpack_require__.e("vendors"), __webpack_require__.e("abano.sliderAlert")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.sliderAlert */ "./resources/src/js/app/LazyComponents/abano.sliderAlert.js")).then(module => {
209          module.default();
210        });
211      }
212    }
213  };
214}();
215abano.scrollBannerAlert.init();
216abano.ribbon = function () {
217  return {
218    practiceRibbon: function () {
219      return practiceRibbon;
220    },
221    //todo: this wont work.
222    init: function () {
223      if (loadRules.documentContains('.c-ribbon')) {
224        __webpack_require__.e(/*! import() | abano.ribbon */ "abano.ribbon").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.ribbon */ "./resources/src/js/app/LazyComponents/abano.ribbon.js")).then(module => {
225          module.default();
226        });
227      }
228    }
229  };
230}();
231abano.ribbon.init();
232abano.umbracoForms = function () {
233  var forms = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.umbraco-forms-form form');
234  return {
235    init: function () {
236      if (forms.length) {
237        __webpack_require__.e(/*! import() | abano.umbracoForms */ "abano.umbracoForms").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/
237abano.umbracoForms */ "./resources/src/js/app/LazyComponents/abano.umbracoForms.js")).then(module => {
238          module.default(forms);
239        });
240      }
241    }
242  };
243}();
244abano.umbracoForms.init();
245abano.parallax = function () {
246  return {
247    init: function () {
248      if (loadRules.documentContains('.c-flourish--angle.c-flourish--parallax')) {
249        Promise.all(/*! import() | abano.parallax */[__webpack_require__.e("vendors"), __webpack_require__.e("abano.parallax")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.parallax */ "./resources/src/js/app/LazyComponents/abano.parallax.js")).then(module => {
250          module.default();
251        });
252      }
253    }
254  };
255}();
256abano.parallax.init();
257abano.practiceMiniFinder = function () {
258  return {
259    init: function () {
260      if (loadRules.documentContains('[data-practice-minifinder]')) {
261        Promise.all(/*! import() | abano.practiceMiniFinder */[__webpack_require__.e("vendors"), __webpack_require__.e("resources_src_js_app_components_practiceFinder_js"), __webpack_require__.e("abano.practiceMiniFinder")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.practiceMiniFinder */ "./resources/src/js/app/LazyComponents/abano.practiceMiniFinder.js")).then(module => {
262          module.default();
263        });
264      }
265    }
266  };
267}();
268abano.practiceMiniFinder.init();
269abano.meganav = function () {
270  return {
271    init: function () {
272      if (loadRules.documentContains('.c-meganav--trigger')) {
273        __webpack_require__.e(/*! import() | abano.megaNavigation */ "abano.megaNavigation").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.megaNavigation */ "./resources/src/js/app/LazyComponents/abano.megaNavigation.js")).then(module => {
274          module.default();
275        });
276      }
277    }
278  };
279}();
280abano.meganav.init();
281abano.testimonials = function () {
282  return {
283    init: function () {
284      if (loadRules.documentContains('.slick-testimonials')) {
285        Promise.all(/*! import() | abano.testimonials */[__webpack_require__.e("resources_src_js_vendors_2_slick_js"), __webpack_require__.e("abano.testimonials")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.testimonials */ "./resources/src/js/app/LazyComponents/abano.testimonials.js")).then(module => {
286          module.default();
287        });
288      }
289    }
290  };
291}();
292abano.testimonials.init();
293abano.textClamp = function () {
294  return {
295    init: function () {
296      if (loadRules.documentContains('.c-clamp-text')) {
297        __webpack_require__.e(/*! import() | abano.textClamp */ "abano.textClamp").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.textClamp */ "./resources/src/js/app/LazyComponents/abano.textClamp.js")).then(module => {
298          module.default();
299        });
300      }
301    }
302  };
303}();
304jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on("load", function (e) {
305  abano.textClamp.init();
306});
307abano.resultsimages = function () {
308  jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on("load", function (e) {
309    abano.resultsimages.init();
310  });
311  return {
312    init: function () {
313      if (loadRules.documentContains('.result-image-item')) {
314        __webpack_require__.e(/*! import() | abano.resultsimages */ "abano.resultsimages").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.resultsImages */ "./resources/src/js/app/LazyComponents/abano.resultsImages.js")).then(module => {
315          module.default();
316        });
317      }
318    }
319  };
320}();
321abano.gallerySlider = function () {
322  return {
323    init: function () {
324      if (loadRules.documentContains('.c-slider.slick-gallery')) {
325        Promise.all(/*! import() | abano.gallerySlider */[__webpack_require__.e("resources_src_js_vendors_2_slick_js"), __webpack_require__.e("abano.gallerySlider")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.gallerySlider */ "./resources/src/js/app/LazyComponents/
325abano.gallerySlider.js")).then(module => {
326          module.default();
327        });
328      }
329    }
330  };
331}();
332abano.gallerySlider.init();
333abano.scrollBanner = function () {
334  return {
335    init: function () {
336      if (loadRules.documentContains('.c-scroll-banner')) {
337        Promise.all(/*! import() | abano.scrollBanner */[__webpack_require__.e("vendors"), __webpack_require__.e("resources_src_js_vendors_2_slick_js"), __webpack_require__.e("abano.scrollBanner")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.scrollBanner */ "./resources/src/js/app/LazyComponents/abano.scrollBanner.js")).then(module => {
338          module.default();
339        });
340      }
341    }
342  };
343}();
344abano.scrollBanner.init();
345abano.imageSlider = function () {
346  return {
347    init: function () {
348      if (loadRules.documentContains('.c-image-slider')) {
349        Promise.all(/*! import() | abano.imageSlider */[__webpack_require__.e("resources_src_js_vendors_2_slick_js"), __webpack_require__.e("abano.imageSlider")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.imageSlider */ "./resources/src/js/app/LazyComponents/abano.imageSlider.js")).then(module => {
350          module.default();
351        });
352      }
353    }
354  };
355}();
356abano.imageSlider.init();
357abano.promoSlider = function () {
358  return {
359    init: function () {
360      if (loadRules.documentContains('.c-slider.slick-promo')) {
361        Promise.all(/*! import() | abano.promoSlider */[__webpack_require__.e("resources_src_js_vendors_2_slick_js"), __webpack_require__.e("abano.promoSlider")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.promoSlider */ "./resources/src/js/app/LazyComponents/abano.promoSlider.js")).then(module => {
362          module.default();
363        });
364      }
365    }
366  };
367}();
368abano.promoSlider.init();
369abano.articleSlider = function () {
370  return {
371    init: function () {
372      if (loadRules.documentContains('.c-slider.slick-news')) {
373        Promise.all(/*! import() | abano.articleSlider */[__webpack_require__.e("resources_src_js_vendors_2_slick_js"), __webpack_require__.e("abano.articleSlider")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.articleSlider */ "./resources/src/js/app/LazyComponents/abano.articleSlider.js")).then(module => {
374          module.default();
375        });
376      }
377    }
378  };
379}();
380abano.articleSlider.init();
381abano.bookNowButton = function () {
382  return {
383    init: function () {
384      if (loadRules.documentContains('[data-book-now]')) {
385        __webpack_require__.e(/*! import() | abano.bookNowButton */ "abano.bookNowButton").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.bookNowButton */ "./resources/src/js/app/LazyComponents/abano.bookNowButton.js")).then(module => {
386          module.default();
387        });
388      }
389    }
390  };
391}();
392abano.bookNowButton.init();
393abano.scrollJump = function () {
394  return {
395    init: function () {
396      if (loadRules.documentContains('a[data-scroll-to], select[data-scroll-to]')) {
397        __webpack_require__.e(/*! import() | abano.scrollJump */ "abano.scrollJump").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.scrollJump */ "./resources/src/js/app/LazyComponents/abano.scrollJump.js")).then(module => {
398          module.default();
399        });
400      }
401    }
402  };
403}();
404abano.scrollJump.init();
405abano.menu = function () {
406  return {
407    init: function () {
408      if (loadRules.documentContains('.menu-trigger button')) {
409        __webpack_require__.e(/*! import() | abano.menu */ "abano.menu").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.menu */ "./resources/src/js/app/LazyComponents/abano.menu.js")).then(module => {
410          module.default();
411        });
412      }
413    }
414  };
415}();
416abano.menu.init();
417
418//todo: make sure this is correct.
419abano.forms = function () {
420  return {
421    init: function () {
422      if (loadRules.documentContains('.practicepicker, .treatmentpicker')) {
423        __webpack_require__.e(/*! import() | abano.umbracoFormsDynamicFields */ "abano.umbracoFormsDynamicFields").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/
423abano.umbracoFormsDynamicFields */ "./resources/src/js/app/LazyComponents/abano.umbracoFormsDynamicFields.js")).then(module => {
424          module.default();
425        });
426      }
427    }
428  };
429}();
430abano.forms.init();
431
432//place for google maps to hook once it loads.
433abano.maps = function () {
434  return {
435    //the callback that google maps will run
436    init: function () {
437      if (loadRules.documentContains('[data-map]')) {
438        Promise.all(/*! import() | abano.maps */[__webpack_require__.e("vendors"), __webpack_require__.e("resources_src_js_app_components_practiceFinder_js"), __webpack_require__.e("abano.maps")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.maps */ "./resources/src/js/app/LazyComponents/abano.maps.js")).then(module => {
439          module.default();
440        });
441      }
442    }
443  };
444}();
445abano.maps.init();
446abano.practiceFinderV2 = function () {
447  return {
448    init: function () {
449      if (loadRules.documentContains('wc-practice-finder')) {
450        Promise.all(/*! import() | abano.practiceFinderV2 */[__webpack_require__.e("vendors"), __webpack_require__.e("abano.practiceFinderV2")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.practiceFinderV2 */ "./resources/src/js/app/LazyComponents/abano.practiceFinderV2.js")).then(module => {
451          module.default();
452        });
453      }
454    }
455  };
456}();
457abano.practiceFinderV2.init();
458abano.introReadMoreButton = function () {
459  return {
460    init: function () {
461      if (loadRules.documentContains('.dynamic-introtext article')) {
462        __webpack_require__.e(/*! import() | abano.introReadMoreButton */ "abano.introReadMoreButton").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.introReadMoreButton */ "./resources/src/js/app/LazyComponents/abano.introReadMoreButton.js")).then(module => {
463          module.default();
464        });
465      }
466    }
467  };
468}();
469abano.introReadMoreButton.init();
470abano.animations = function () {
471  return {
472    init: function () {
473      if (loadRules.documentContains('.animate')) {
474        Promise.all(/*! import() | abano.animations */[__webpack_require__.e("vendors"), __webpack_require__.e("resources_src_js_app_libraries_SplitText_js"), __webpack_require__.e("abano.animations")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.animations */ "./resources/src/js/app/LazyComponents/abano.animations.js")).then(module => {
475          module.default();
476        });
477      }
478    }
479  };
480}();
481abano.animations.init();
482abano.healthFund = function () {
483  return {
484    init: function () {
485      if (loadRules.documentContains('.c-health-fund-minifinder, [data-component="health-fund-controls"]')) {
486        __webpack_require__.e(/*! import() | abano.healthFund */ "abano.healthFund").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.healthFund */ "./resources/src/js/app/LazyComponents/abano.healthFund.js")).then(module => {
487          module.default();
488        });
489      }
490    }
491  };
492}();
493abano.healthFund.init();
494abano.careers = function () {
495  return {
496    init: function () {
497      if (loadRules.documentContains('[data-component="c-careers"]')) {
498        __webpack_require__.e(/*! import() | abano.careers */ "abano.careers").then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.careers */ "./resources/src/js/app/LazyComponents/abano.careers.js")).then(module => {
499          module.default();
500        });
501      }
502    }
503  };
504}();
505abano.careers.init();
506abano.emergencyDentists = function () {
507  return {
508    init: function () {
509      if (loadRules.documentContains('[data-component="c-emergency-dentists"]')) {
510        Promise.all(/*! import() | abano.emergencyDentists */[__webpack_require__.e("vendors"), __webpack_require__.e("resources_src_js_app_components_practiceFinder_js"), __webpack_require__.e("abano.emergencyDentists")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.emergencyDentists */ "./resources/src/js/app/LazyComponents/
510abano.emergencyDentists.js")).then(module => {
511          module.default();
512        });
513      }
514    }
515  };
516}();
517abano.emergencyDentists.init();
518abano.locationOffers = function () {
519  return {
520    init: function () {
521      if (loadRules.documentContains('[data-component="c-location-offers"]')) {
522        Promise.all(/*! import() | abano.locationOffers */[__webpack_require__.e("vendors"), __webpack_require__.e("resources_src_js_app_components_practiceFinder_js"), __webpack_require__.e("abano.locationOffers")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.locationOffers */ "./resources/src/js/app/LazyComponents/abano.locationOffers.js")).then(module => {
523          module.default();
524        });
525      }
526    }
527  };
528}();
529abano.locationOffers.init();
530abano.wellnessBlock = function () {
531  return {
532    init: function () {
533      if (loadRules.documentContains('[data-component="c-wellness-block"]')) {
534        Promise.all(/*! import() | abano.wellnessBlock */[__webpack_require__.e("vendors"), __webpack_require__.e("resources_src_js_app_libraries_SplitText_js"), __webpack_require__.e("abano.wellnessBlock")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.wellnessBlock */ "./resources/src/js/app/LazyComponents/abano.wellnessBlock.js")).then(module => {
535          module.default();
536        });
537      }
538    }
539  };
540}();
541abano.wellnessBlock.init();
542abano.accordionBlock = function () {
543  return {
544    init: function () {
545      if (loadRules.documentContains('[data-component="c-accordion-block"]')) {
546        Promise.all(/*! import() | abano.accordionBlock */[__webpack_require__.e("vendors"), __webpack_require__.e("abano.accordionBlock")]).then(__webpack_require__.bind(__webpack_require__, /*! ./LazyComponents/abano.accordionBlock */ "./resources/src/js/app/LazyComponents/abano.accordionBlock.js")).then(module => {
547          module.default();
548        });
549      }
550    }
551  };
552}();
553abano.accordionBlock.init();
554
555// OnThisPage - disabled but kept for potential future use
556// abano.onThisPage = (function () {
557//     return {
558//         init: function () {
559//             if (loadRules.documentContains('.js-on-this-page')) {
560//                 import(/* webpackChunkName: "abano.onThisPage" */ './components/OnThisPage').then(module => {
561//                     module.default();
562//                 });
563//             }
564//         }
565//     };
566// }());
567// abano.onThisPage.init();
568
569/***/ })
569,
570
571/***/ "jquery":
572/*!*************************!*\
573  !*** external "jQuery" ***!
574  \*************************/
575/***/ ((module) => {
576
577module.exports = jQuery;
578
579/***/ })
580
581},
582/******/ __webpack_require__ => { // webpackRuntimeModules
583/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
584/******/ var __webpack_exports__ = (__webpack_exec__("./resources/src/js/app/main.js"));
585/******/ }
586]);
587//# sourceMappingURL=data:application/json;charset=utf-8;base64,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MsTUFBTSxJQUFJO1VBQ2hIQSxNQUFNLENBQUNDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQztNQUNOO0lBQ0o7RUFDSixDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUU7QUFDSmpCLEtBQUssQ0FBQ3VELGlCQUFpQixDQUFDekMsSUFBSSxDQUFDLENBQUM7QUFHOUJkLEtBQUssQ0FBQ3dELGNBQWMsR0FBSSxZQUFZO0VBQ2hDLE9BQU87SUFDSDFDLElBQUksRUFBRSxTQUFBQSxDQUFBLEVBQVk7TUFDZCxJQUFJTCxTQUFTLENBQUNDLGdCQUFnQixDQUFDLHNDQUFzQyxDQUFDLEVBQUU7UUFFcEUsa1hBQThGLENBQUNLLElBQUksQ0FBQ0MsTUFBTSxJQUFJO1VBQzFHQSxNQUFNLENBQUNDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQztNQUNOO0lBQ0o7RUFDSixDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUU7QUFDSmpCLEtBQUssQ0FBQ3dELGNBQWMsQ0FBQzFDLElBQUksQ0FBQyxDQUFDO0FBRTNCZCxLQUFLLENBQUN5RCxhQUFhLEd
587BQUksWUFBWTtFQUMvQixPQUFPO0lBQ0gzQyxJQUFJLEVBQUUsU0FBQUEsQ0FBQSxFQUFZO01BQ2QsSUFBSUwsU0FBUyxDQUFDQyxnQkFBZ0IsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFFO1FBQ25FLHdXQUE0RixDQUFDSyxJQUFJLENBQUNDLE1BQU0sSUFBSTtVQUN4R0EsTUFBTSxDQUFDQyxPQUFPLENBQUMsQ0FBQztRQUNwQixDQUFDLENBQUM7TUFDTjtJQUNKO0VBQ0osQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFFO0FBQ0pqQixLQUFLLENBQUN5RCxhQUFhLENBQUMzQyxJQUFJLENBQUMsQ0FBQztBQUcxQmQsS0FBSyxDQUFDMEQsY0FBYyxHQUFJLFlBQVk7RUFDaEMsT0FBTztJQUNINUMsSUFBSSxFQUFFLFNBQUFBLENBQUEsRUFBWTtNQUNkLElBQUlMLFNBQVMsQ0FBQ0MsZ0JBQWdCLENBQUMsc0NBQXNDLENBQUMsRUFBRTtRQUNwRSxzU0FBOEYsQ0FBQ0ssSUFBSSxDQUFDQyxNQUFNLElBQUk7VUFDMUdBLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDLENBQUM7UUFDcEIsQ0FBQyxDQUFDO01BQ047SUFDSjtFQUNKLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBRTtBQUNKakIsS0FBSyxDQUFDMEQsY0FBYyxDQUFDNUMsSUFBSSxDQUFDLENBQUM7O0FBRTNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7O0FDdm1CQSIsInNvdXJjZXMiOlsid2VicGFjazovL2FiYW5vaGVhbHRoY2FyZS8uL3Jlc291cmNlcy9zcmMvanMvYXBwL2xpYnJhcmllcy9kZWJvdW5jZS5qcyIsIndlYnBhY2s6Ly9hYmFub2hlYWx0aGNhcmUvLi9yZXNvdXJjZXMvc3JjL2pzL2FwcC9tYWluLmpzIiwid2VicGFjazovL2FiYW5vaGVhbHRoY2FyZS9leHRlcm5hbCB2YXIgXCJqUXVlcnlcIiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBSZXR1cm5zIGEgZnVuY3Rpb24sIHRoYXQsIGFzIGxvbmcgYXMgaXQgY29udGludWVzIHRvIGJlIGludm9rZWQsIHdpbGwgbm90XHJcbi8vIGJlIHRyaWdnZXJlZC4gVGhlIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGFmdGVyIGl0IHN0b3BzIGJlaW5nIGNhbGxlZCBmb3JcclxuLy8gTiBtaWxsaXNlY29uZHMuIElmIGBpbW1lZGlhdGVgIGlzIHBhc3NlZCwgdHJpZ2dlciB0aGUgZnVuY3Rpb24gb24gdGhlXHJcbi8vIGxlYWRpbmcgZWRnZSwgaW5zdGVhZCBvZiB0aGUgdHJhaWxpbmcuXHJcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRlYm91bmNlKGZ1bmMsIHdhaXQsIG9wdGlvbnMpIHtcclxuICAgIHZhciB0aW1lb3V0O1xyXG4gXHJcbiAgICB2YXIgbGVhZGluZyA9IG9wdGlvbnMubGVhZGluZyB8fCBmYWxzZTtcclxuICAgIHZhciB0cmFpbGluZyA9IG9wdGlvbnMudHJhaWxpbmcgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBvcHRpb25zLnRyYWlsaW5nO1xyXG4gIFxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcclxuXHJcbiAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlzLCBhcmdzID0gYXJndW1lbnRzO1xyXG4gICAgICAgIHZhciBsYXRlciA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdGltZW91dCA9IG51bGw7XHJcbiAgICAgICAgICAgIGlmICh0cmFpbGluZykgZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHZhciBjYWxsTm93ID0gbGVhZGluZyAmJiAhdGltZW91dDtcclxuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XHJcbiAgICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQobGF0ZXIsIHdhaXQpO1xyXG4gICAgICAgIGlmIChjYWxsTm93KSBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xyXG4gICAgfTtcclxufTtcclxuXHJcbiIsImltcG9ydCAkIGZyb20gJ2pxdWVyeSdcclxuaW1wb3J0IGRlYm91bmNlIGZyb20gJy4vbGlicmFyaWVzL2RlYm91bmNlJztcclxuXHJcbi8vIGltcG9ydCB7IE1ZX1RPUElDIH0gZnJvbSBcIi4vY29tcG9uZW50cy9FdmVudFR5cGVzXCI7IFxyXG5cclxuXHJcblxyXG4gXHJcbi8qKlxyXG4qIGRvY3VtZW50YXRpb24gZm9yIHB1YnN1YiBtb2R1bGUgaGVyZVxyXG5odHRwczovL2dpdGh1Yi5jb20vbXJvZGVyaWNrL1B1YlN1YkpTL1xyXG5cclxudXNlIGxpa2UgdGhpczpcclxuICBcclxuLy9oYW5kbGVyXHJcbnZhciBteVN1YnNjcmliZXIgPSBmdW5jdGlvbiAobXNnLCBkYXRhKSB7IFxyXG4gICBjb25zb2xlLmxvZyhtc2csIGRhdGEpOyBcclxufTsgXHJcbiBcclxuLy9saXN0ZW4gZm9yIGEgdG9waWNcclxudmFyIHRva2VuID0gUHViU3ViLnN1YnNjcmliZShNWV9UT1BJQywgbXlTdWJzY3JpYmVyKTtcclxuXHJcbi8vIHB1Ymxpc2ggYSB0b3BpYyBhc3luY2hyb25vdXNseSBcclxuUHViU3ViLnB1Ymxpc2goTVlfVE9QSUMsIFsnaGVsbG8gd29ybGQhJywndGVzdCddKTtcclxuXHJcbioqL1xyXG5cclxuXHJcblxyXG53aW5kb3cuYWJhbm8gPSB3aW5kb3cuYWJhbm8gfHwge307XHJcblxyXG52YXIgdmggPSB3aW5kb3cuaW5uZXJIZWlnaHQgKiAwLjAxO1xyXG5cclxuLy8gVGhlbiB3ZSBzZXQgdGhlIHZhbHVlIGluIHRoZSAtLXZoIGN1c3RvbSBwcm9wZXJ0eSB0byB0aGUgcm9vdCBvZiB0aGUgZG9jdW1lbnRcclxuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLXZoJywgYCR7dmh9cHhgKTtcclxuXHJcbnZhciBtZW51VmhGaXhfX0RFQk9VTkNFRF9XSU5ET1dfUkVTSVpFID0gZGVib3VuY2UoZnVuY3Rpb24gKCkge1xyXG4gICAgbGV0IHZoID0gd2luZG93LmlubmVySGVpZ2h0ICogMC4wMTtcclxuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS12aCcsIGAke3ZofXB4YCk7XHJcbn0sIDEwMCwgeyB0cmFpbGluZzogdHJ1ZSB9KTtcclxuJCh3aW5kb3cpLm9uKCdyZXNpemUnLCBtZW51VmhGaXhfX0RFQk9VTkNFRF9XSU5ET1dfUkVTSVpFKTtcclxuXHJcblxyXG5jb25zdCBsb2FkUnVsZXMgPSB7XHJcbiAgICBkb2N1bWVudENvbnRhaW5zOiAoc2VsZWN0b3IpID0+IHsgcmV0dXJuIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpICE9IG51bGwgfVxyXG59XHJcblxyXG5hYmFuby5uYXZpZ2F0aW9uID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJy5jLW5hdicpKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiYWJhbm8ubmF2aWdhdGlvblwiICovICcuL0xhenlDb21wb25lbnRzL2FiYW5vLm5hdmlnYXRpb24nKS50aGVuKG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9kdWxlLmRlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgI
587H0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgIH07XHJcbn0oKSk7XHJcbmFiYW5vLm5hdmlnYXRpb24uaW5pdCgpO1xyXG5cclxuXHJcblxyXG5hYmFuby5taW5pU2VhcmNoID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJy5jLW1pbmktc2VhcmNoJykpIHtcclxuICAgICAgICAgICAgICAgIGltcG9ydCgvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcImFiYW5vLm1pbmlTZWFyY2hcIiAqLyAnLi9MYXp5Q29tcG9uZW50cy9hYmFuby5taW5pU2VhcmNoJykudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZS5kZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSgpKTtcclxuYWJhbm8ubWluaVNlYXJjaC5pbml0KCk7XHJcblxyXG5cclxuYWJhbm8uYm9va05vdyA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGluaXQoKSB7XHJcbiAgICAgICAgICAgIGlmIChhYmFuby5jb25maWcgJiYgYWJhbm8uY29uZmlnLnByYWN0aWNlRGlyZWN0b3J5KSB7XHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5ib29rTm93XCIgKi8gJy4vTGF6eUNvbXBvbmVudHMvYWJhbm8uYm9va05vdycpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0oKSk7XHJcbmFiYW5vLmJvb2tOb3cuaW5pdCgpO1xyXG5cclxuXHJcbmFiYW5vLnByZWZlcnJlZFByYWN0aWNlID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJ1tkYXRhLXByYWN0aWNlLXdpZGdldF0sIFtkYXRhLXByYWN0aWNlLWRldGFpbHMtbGFiZWxdJykpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5wcmVmZXJyZWRQcmFjdGljZVwiICovICcuL0xhenlDb21wb25lbnRzL2FiYW5vLnByZWZlcnJlZFByYWN0aWNlJykudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZS5kZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSgpKTtcclxuYWJhbm8ucHJlZmVycmVkUHJhY3RpY2UuaW5pdCgpO1xyXG5cclxuXHJcblxyXG5cclxuLy90aGlzIHdpbGwgbm90IHdvcmsgd2VsbCB3aXRoIDIgcGFnaW5hdGlvbiBhcmVhcyBvbiB0aGUgc2FtZSBwYWdlIGJvdGggd2lsbCB1cGRhdGUgdGhlIHVybC5cclxuLy9pZiB3ZSBuZWVkIHRoaXMgZmVhdHVyZSBhIHdvcmsgYXJvdW5kIGlzIHJlcXVpcmVkLlxyXG5hYmFuby5tYWluU2VhcmNoID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJy5wYWdpbmF0aW9uLXJlc3VsdHMnKSkge1xyXG4gICAgICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiYWJhbm8ubWFpblNlYXJjaFwiICovICcuL0xhenlDb21wb25lbnRzL2FiYW5vLm1haW5TZWFyY2gnKS50aGVuKG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9kdWxlLmRlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59KCkpO1xyXG5hYmFuby5tYWluU2VhcmNoLmluaXQoKTtcclxuXHJcbmFiYW5vLmNhcmVlcnNTZWFyY2ggPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChsb2FkUnVsZXMuZG9jdW1lbnRDb250YWlucygnW2RhdGEtY29tcG9uZW50PVwiYy1jYXJlZXJzLXNlYXJjaC1iYXJcIl0nKSkge1xyXG4gICAgICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiYWJhbm8uY2FyZWVyc1NlYXJjaEJhclwiICovICcuL0xhenlDb21wb25lbnRzL2FiYW5vLmNhcmVlcnNTZWFyY2hCYXInKS50aGVuKG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9kdWxlLmRlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59KCkpO1xyXG5hYmFuby5jYXJlZXJzU2VhcmNoLmluaXQoKTtcclxuXHJcbmFiYW5vLmNhcmVlcnNKb2JMaXN0ID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJ1tkYXRhLWNvbXBvbmVudD1cImMtY2FyZWVycy1qb2ItbGlzdFwiXScpKSB7XHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5jYXJlZXJzSm9iTGlzdHJcIiAqLyAnLi9MYXp5Q29tcG9uZW50cy9hYmFuby5jYXJlZXJzSm9iTGlzdCcpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0oKSk7XHJcbmFiYW5vLmNhcmVlcnNKb2JMaXN0LmluaXQoKTtcclxuXHJcbmFiYW5vLnRvZ2dsZUNvbGxhcHNlID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJ1tkYXRhLXRvZ2dsZS10ZXh0XScpKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiYWJhbm8udG9nZ2xlQ29sbGFwc2VcIiAqLyAnLi9MYXp5Q29tcG9uZW50cy9hYmFuby50b2dnbGVDb2xsYXBzZScpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgI
587H1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0oKSk7XHJcbmFiYW5vLnRvZ2dsZUNvbGxhcHNlLmluaXQoKTtcclxuXHJcblxyXG4vL3dyYXAgdGhlIGJvb3RzdHJhcCBtb2R1bGVzIHdlIG5lZWQgc28gdGhhdCB3ZSBjYW4gbGF6eSBsb2FkIHdpdGggd2VicGFjay5cclxuLy90aGUgYm9vdHN0cmFwIHBsdWdpbnMgYXJzIHNlbGYgY29udGFpbmVkIHNvIHdlIGRvbid0IGFjdHVhbGx5IG5lZWQgdG8gZG8gYW55IGNhbGxiYWNrLlxyXG5hYmFuby5jb2xsYXBzZSA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGluaXQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKGxvYWRSdWxlcy5kb2N1bWVudENvbnRhaW5zKCdbZGF0YS10b2dnbGU9XCJjb2xsYXBzZVwiXSwgW2RhdGEtZGVwZW5kcz1cImNvbGxhcHNlXCJdJykpIHtcclxuICAgICAgICAgICAgICAgIGltcG9ydCgvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcImFiYW5vLmJzQ29sbGFwc2VcIiAqLyAnLi9MYXp5Q29tcG9uZW50cy9hYmFuby5ic0NvbGxhcHNlJylcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJ1tkYXRhLXRvZ2dsZT1cInRhYlwiXScpKSB7XHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5ic1RhYlwiICovICcuL0xhenlDb21wb25lbnRzL2FiYW5vLmJzVGFiJylcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0pKCkuaW5pdCgpO1xyXG5cclxuYWJhbm8uc2Nyb2xsQmFubmVyQWxlcnQgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgIFxyXG4gICAgICAgIGluaXQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKGxvYWRSdWxlcy5kb2N1bWVudENvbnRhaW5zKCdbZGF0YS1jb21wb25lbnQ9XCJjLXNsaWRpbmctYmFubmVyLWFsZXJ0XCJdJykpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5zbGlkZXJBbGVydFwiICovICcuL0xhenlDb21wb25lbnRzL2FiYW5vLnNsaWRlckFsZXJ0JykudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZS5kZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG59KCkpO1xyXG5hYmFuby5zY3JvbGxCYW5uZXJBbGVydC5pbml0KCk7XHJcblxyXG5hYmFuby5yaWJib24gPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBwcmFjdGljZVJpYmJvbjogZnVuY3Rpb24gKCkgeyByZXR1cm4gcHJhY3RpY2VSaWJib24gfSwgLy90b2RvOiB0aGlzIHdvbnQgd29yay5cclxuICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChsb2FkUnVsZXMuZG9jdW1lbnRDb250YWlucygnLmMtcmliYm9uJykpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5yaWJib25cIiAqLyAnLi9MYXp5Q29tcG9uZW50cy9hYmFuby5yaWJib24nKS50aGVuKG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9kdWxlLmRlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbn0oKSk7XHJcbmFiYW5vLnJpYmJvbi5pbml0KCk7XHJcblxyXG4gYWJhbm8udW1icmFjb0Zvcm1zID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBmb3JtcyA9ICQoJy51bWJyYWNvLWZvcm1zLWZvcm0gZm9ybScpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChmb3Jtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGltcG9ydCgvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcImFiYW5vLnVtYnJhY29Gb3Jtc1wiICovICcuL0xhenlDb21wb25lbnRzL2FiYW5vLnVtYnJhY29Gb3JtcycpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdChmb3Jtcyk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSgpKTtcclxuYWJhbm8udW1icmFjb0Zvcm1zLmluaXQoKTtcclxuXHJcbmFiYW5vLnBhcmFsbGF4ID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJy5jLWZsb3VyaXNoLS1hbmdsZS5jLWZsb3VyaXNoLS1wYXJhbGxheCcpKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiYWJhbm8ucGFyYWxsYXhcIiAqLyAnLi9MYXp5Q29tcG9uZW50cy9hYmFuby5wYXJhbGxheCcpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59KCkpO1xyXG5hYmFuby5wYXJhbGxheC5pbml0KCk7XHJcblxyXG5hYmFuby5wcmFjdGljZU1pbmlGaW5kZXIgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChsb2FkUnVsZXMuZG9jdW1lbnRDb250YWlucygnW2RhdGEtcHJhY3RpY2UtbWluaWZpbmRlcl0nKSkge1xyXG5cclxuICAgICAgICAgICAgICAgIGltcG9ydCgvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcImFiYW5vLnByYWN0aWNlTWluaUZpbmRlclwiICovICcuL0xhenlDb21wb25lbnRzL2FiYW5vLnByYWN0aWNlTWluaUZpbmRlcicpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0oKSk7XHJcbmFiYW5vLnByYWN0aWNlTWluaUZpbmRlci5pbml0KCk7XHJcblxyXG5cclxuXHJcbmFiYW5vLm1lZ2FuYXYgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChsb2FkUnVsZXMuZG9jdW1lbnRDb250YWlucygnLmMtbWVnYW5hdi0tdHJpZ2dlcicpKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiYWJhbm8ubWVnYU5hdmlnYXRpb25cIiAqLyAnLi9MYXp5Q29tcG9uZW50cy9hYmFuby5tZWdhTmF2aWdhdGlvbic
587pLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0oKSk7XHJcbmFiYW5vLm1lZ2FuYXYuaW5pdCgpO1xyXG5cclxuYWJhbm8udGVzdGltb25pYWxzID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJy5zbGljay10ZXN0aW1vbmlhbHMnKSkge1xyXG5cclxuICAgICAgICAgICAgICAgIGltcG9ydCgvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcImFiYW5vLnRlc3RpbW9uaWFsc1wiICovICcuL0xhenlDb21wb25lbnRzL2FiYW5vLnRlc3RpbW9uaWFscycpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0oKSk7XHJcbmFiYW5vLnRlc3RpbW9uaWFscy5pbml0KCk7XHJcblxyXG5hYmFuby50ZXh0Q2xhbXAgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChsb2FkUnVsZXMuZG9jdW1lbnRDb250YWlucygnLmMtY2xhbXAtdGV4dCcpKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiYWJhbm8udGV4dENsYW1wXCIgKi8gJy4vTGF6eUNvbXBvbmVudHMvYWJhbm8udGV4dENsYW1wJykudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZS5kZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSgpKTtcclxuXHJcbiQod2luZG93KS5vbihcImxvYWRcIiwgZnVuY3Rpb24gKGUpIHtcclxuICAgIGFiYW5vLnRleHRDbGFtcC5pbml0KCk7XHJcbn0pXHJcblxyXG5hYmFuby5yZXN1bHRzaW1hZ2VzID0gKGZ1bmN0aW9uICgpIHtcclxuXHJcbiAgICAkKHdpbmRvdykub24oXCJsb2FkXCIsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgYWJhbm8ucmVzdWx0c2ltYWdlcy5pbml0KCk7XHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJy5yZXN1bHQtaW1hZ2UtaXRlbScpKSB7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIGltcG9ydCgvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcImFiYW5vLnJlc3VsdHNpbWFnZXNcIiAqLyAnLi9MYXp5Q29tcG9uZW50cy9hYmFuby5yZXN1bHRzSW1hZ2VzJykudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZS5kZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0oKSk7XHJcblxyXG5cclxuXHJcblxyXG5hYmFuby5nYWxsZXJ5U2xpZGVyID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJy5jLXNsaWRlci5zbGljay1nYWxsZXJ5JykpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5nYWxsZXJ5U2xpZGVyXCIgKi8gJy4vTGF6eUNvbXBvbmVudHMvYWJhbm8uZ2FsbGVyeVNsaWRlcicpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0oKSk7XHJcbmFiYW5vLmdhbGxlcnlTbGlkZXIuaW5pdCgpO1xyXG5cclxuYWJhbm8uc2Nyb2xsQmFubmVyID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJy5jLXNjcm9sbC1iYW5uZXInKSkge1xyXG4gICAgICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiYWJhbm8uc2Nyb2xsQmFubmVyXCIgKi8gJy4vTGF6eUNvbXBvbmVudHMvYWJhbm8uc2Nyb2xsQmFubmVyJykudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZS5kZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSgpKTsgXHJcbmFiYW5vLnNjcm9sbEJhbm5lci5pbml0KCk7XHJcblxyXG5hYmFuby5pbWFnZVNsaWRlciA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGluaXQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKGxvYWRSdWxlcy5kb2N1bWVudENvbnRhaW5zKCcuYy1pbWFnZS1zbGlkZXInKSkge1xyXG4gICAgICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiYWJhbm8uaW1hZ2VTbGlkZXJcIiAqLyAnLi9MYXp5Q29tcG9uZW50cy9hYmFuby5pbWFnZVNsaWRlcicpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59KCkpO1xyXG5hYmFuby5pbWFnZVNsaWRlci5pbml0KCk7IFxyXG5cclxuYWJhbm8ucHJvbW9TbGlkZXIgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChsb2FkUnVsZXMuZG9jdW1lbnRDb250YWlucygnLmMtc2xpZGVyLnNsaWNrLXByb21vJykpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5wcm9tb1NsaWRlclwiICovICcuL0xhenlDb21wb25lbnRzL2FiYW5vLnByb21vU2xpZGVyJykudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZS5kZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59KCkpO1xyXG5hYmFuby5wcm9tb1NsaWRlci5pbml0KCk7XHJcblxyXG5hYmFuby5hcnRpY2xlU2xpZGVyID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybi
587B7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJy5jLXNsaWRlci5zbGljay1uZXdzJykpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5hcnRpY2xlU2xpZGVyXCIgKi8gJy4vTGF6eUNvbXBvbmVudHMvYWJhbm8uYXJ0aWNsZVNsaWRlcicpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0oKSk7XHJcbmFiYW5vLmFydGljbGVTbGlkZXIuaW5pdCgpO1xyXG5cclxuYWJhbm8uYm9va05vd0J1dHRvbiA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGluaXQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKGxvYWRSdWxlcy5kb2N1bWVudENvbnRhaW5zKCdbZGF0YS1ib29rLW5vd10nKSkge1xyXG5cclxuICAgICAgICAgICAgICAgIGltcG9ydCgvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcImFiYW5vLmJvb2tOb3dCdXR0b25cIiAqLyAnLi9MYXp5Q29tcG9uZW50cy9hYmFuby5ib29rTm93QnV0dG9uJykudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZS5kZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSgpKTtcclxuYWJhbm8uYm9va05vd0J1dHRvbi5pbml0KCk7XHJcblxyXG5hYmFuby5zY3JvbGxKdW1wID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJ2FbZGF0YS1zY3JvbGwtdG9dLCBzZWxlY3RbZGF0YS1zY3JvbGwtdG9dJykpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5zY3JvbGxKdW1wXCIgKi8gJy4vTGF6eUNvbXBvbmVudHMvYWJhbm8uc2Nyb2xsSnVtcCcpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0oKSk7XHJcbmFiYW5vLnNjcm9sbEp1bXAuaW5pdCgpO1xyXG5cclxuXHJcbmFiYW5vLm1lbnUgPSAoZnVuY3Rpb24gKCkge1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJy5tZW51LXRyaWdnZXIgYnV0dG9uJykpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5tZW51XCIgKi8gJy4vTGF6eUNvbXBvbmVudHMvYWJhbm8ubWVudScpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0oKSk7XHJcbmFiYW5vLm1lbnUuaW5pdCgpO1xyXG5cclxuLy90b2RvOiBtYWtlIHN1cmUgdGhpcyBpcyBjb3JyZWN0LlxyXG5hYmFuby5mb3JtcyA9IChmdW5jdGlvbiAoKSB7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChsb2FkUnVsZXMuZG9jdW1lbnRDb250YWlucygnLnByYWN0aWNlcGlja2VyLCAudHJlYXRtZW50cGlja2VyJykpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby51bWJyYWNvRm9ybXNEeW5hbWljRmllbGRzXCIgKi8gJy4vTGF6eUNvbXBvbmVudHMvYWJhbm8udW1icmFjb0Zvcm1zRHluYW1pY0ZpZWxkcycpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0oKSk7XHJcbmFiYW5vLmZvcm1zLmluaXQoKTtcclxuXHJcbi8vcGxhY2UgZm9yIGdvb2dsZSBtYXBzIHRvIGhvb2sgb25jZSBpdCBsb2Fkcy5cclxuYWJhbm8ubWFwcyA9IChmdW5jdGlvbiAoKSB7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICAvL3RoZSBjYWxsYmFjayB0aGF0IGdvb2dsZSBtYXBzIHdpbGwgcnVuXHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJ1tkYXRhLW1hcF0nKSkge1xyXG5cclxuICAgICAgICAgICAgICAgIGltcG9ydCgvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcImFiYW5vLm1hcHNcIiAqLyAnLi9MYXp5Q29tcG9uZW50cy9hYmFuby5tYXBzJykudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZHVsZS5kZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59KCkpO1xyXG5hYmFuby5tYXBzLmluaXQoKTtcclxuXHJcblxyXG5hYmFuby5wcmFjdGljZUZpbmRlclYyID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJ3djLXByYWN0aWNlLWZpbmRlcicpKSB7XHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5wcmFjdGljZUZpbmRlclYyXCIgKi8gJy4vTGF6eUNvbXBvbmVudHMvYWJhbm8ucHJhY3RpY2VGaW5kZXJWMicpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgI
587H1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59KCkpO1xyXG5hYmFuby5wcmFjdGljZUZpbmRlclYyLmluaXQoKTtcclxuXHJcblxyXG5hYmFuby5pbnRyb1JlYWRNb3JlQnV0dG9uID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJy5keW5hbWljLWludHJvdGV4dCBhcnRpY2xlJykpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5pbnRyb1JlYWRNb3JlQnV0dG9uXCIgKi8gJy4vTGF6eUNvbXBvbmVudHMvYWJhbm8uaW50cm9SZWFkTW9yZUJ1dHRvbicpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59KCkpO1xyXG5hYmFuby5pbnRyb1JlYWRNb3JlQnV0dG9uLmluaXQoKTtcclxuXHJcblxyXG5hYmFuby5hbmltYXRpb25zID0gKGZ1bmN0aW9uICgpIHtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGluaXQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKGxvYWRSdWxlcy5kb2N1bWVudENvbnRhaW5zKCcuYW5pbWF0ZScpKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiYWJhbm8uYW5pbWF0aW9uc1wiICovICcuL0xhenlDb21wb25lbnRzL2FiYW5vLmFuaW1hdGlvbnMnKS50aGVuKG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9kdWxlLmRlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59KCkpO1xyXG5hYmFuby5hbmltYXRpb25zLmluaXQoKTtcclxuXHJcbmFiYW5vLmhlYWx0aEZ1bmQgPSAoZnVuY3Rpb24gKCkge1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJy5jLWhlYWx0aC1mdW5kLW1pbmlmaW5kZXIsIFtkYXRhLWNvbXBvbmVudD1cImhlYWx0aC1mdW5kLWNvbnRyb2xzXCJdJykpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5oZWFsdGhGdW5kXCIgKi8gJy4vTGF6eUNvbXBvbmVudHMvYWJhbm8uaGVhbHRoRnVuZCcpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59KCkpO1xyXG5hYmFuby5oZWFsdGhGdW5kLmluaXQoKTtcclxuXHJcbmFiYW5vLmNhcmVlcnMgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChsb2FkUnVsZXMuZG9jdW1lbnRDb250YWlucygnW2RhdGEtY29tcG9uZW50PVwiYy1jYXJlZXJzXCJdJykpIHtcclxuXHJcbiAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5jYXJlZXJzXCIgKi8gJy4vTGF6eUNvbXBvbmVudHMvYWJhbm8uY2FyZWVycycpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59KCkpO1xyXG5hYmFuby5jYXJlZXJzLmluaXQoKTtcclxuXHJcbmFiYW5vLmVtZXJnZW5jeURlbnRpc3RzID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcblxyXG4gICAgICAgIGluaXQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKGxvYWRSdWxlcy5kb2N1bWVudENvbnRhaW5zKCdbZGF0YS1jb21wb25lbnQ9XCJjLWVtZXJnZW5jeS1kZW50aXN0c1wiXScpKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiYWJhbm8uZW1lcmdlbmN5RGVudGlzdHNcIiAqLyAnLi9MYXp5Q29tcG9uZW50cy9hYmFuby5lbWVyZ2VuY3lEZW50aXN0cycpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59KCkpO1xyXG5hYmFuby5lbWVyZ2VuY3lEZW50aXN0cy5pbml0KCk7XHJcblxyXG5cclxuYWJhbm8ubG9jYXRpb25PZmZlcnMgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChsb2FkUnVsZXMuZG9jdW1lbnRDb250YWlucygnW2RhdGEtY29tcG9uZW50PVwiYy1sb2NhdGlvbi1vZmZlcnNcIl0nKSkge1xyXG5cclxuICAgICAgICAgICAgICAgIGltcG9ydCgvKiB3ZWJwYWNrQ2h1bmtOYW1lOiBcImFiYW5vLmxvY2F0aW9uT2ZmZXJzXCIgKi8gJy4vTGF6eUNvbXBvbmVudHMvYWJhbm8ubG9jYXRpb25PZmZlcnMnKS50aGVuKG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9kdWxlLmRlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59KCkpO1xyXG5hYmFuby5sb2NhdGlvbk9mZmVycy5pbml0KCk7XHJcblxyXG5hYmFuby53ZWxsbmVzc0Jsb2NrID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgaW5pdDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICBpZiAobG9hZFJ1bGVzLmRvY3VtZW50Q29udGFpbnMoJ1tkYXRhLWNvbXBvbmVudD1cImMtd2VsbG5lc3MtYmxvY2tcIl0nKSkge1xyXG4gICAgICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiYWJhbm8ud2VsbG5lc3NCbG9ja1wiICovICcuL0xhenlDb21wb25lbnRzL2FiYW5vLndlbGxuZXNzQmxvY2snKS50aGVuKG1vZHVsZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9kdWxlLmRlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgI
587H0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxufSgpKTtcclxuYWJhbm8ud2VsbG5lc3NCbG9jay5pbml0KCk7XHJcblxyXG5cclxuYWJhbm8uYWNjb3JkaW9uQmxvY2sgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChsb2FkUnVsZXMuZG9jdW1lbnRDb250YWlucygnW2RhdGEtY29tcG9uZW50PVwiYy1hY2NvcmRpb24tYmxvY2tcIl0nKSkge1xyXG4gICAgICAgICAgICAgICAgaW1wb3J0KC8qIHdlYnBhY2tDaHVua05hbWU6IFwiYWJhbm8uYWNjb3JkaW9uQmxvY2tcIiAqLyAnLi9MYXp5Q29tcG9uZW50cy9hYmFuby5hY2NvcmRpb25CbG9jaycpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBtb2R1bGUuZGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG59KCkpO1xyXG5hYmFuby5hY2NvcmRpb25CbG9jay5pbml0KCk7XHJcblxyXG4vLyBPblRoaXNQYWdlIC0gZGlzYWJsZWQgYnV0IGtlcHQgZm9yIHBvdGVudGlhbCBmdXR1cmUgdXNlXHJcbi8vIGFiYW5vLm9uVGhpc1BhZ2UgPSAoZnVuY3Rpb24gKCkge1xyXG4vLyAgICAgcmV0dXJuIHtcclxuLy8gICAgICAgICBpbml0OiBmdW5jdGlvbiAoKSB7XHJcbi8vICAgICAgICAgICAgIGlmIChsb2FkUnVsZXMuZG9jdW1lbnRDb250YWlucygnLmpzLW9uLXRoaXMtcGFnZScpKSB7XHJcbi8vICAgICAgICAgICAgICAgICBpbXBvcnQoLyogd2VicGFja0NodW5rTmFtZTogXCJhYmFuby5vblRoaXNQYWdlXCIgKi8gJy4vY29tcG9uZW50cy9PblRoaXNQYWdlJykudGhlbihtb2R1bGUgPT4ge1xyXG4vLyAgICAgICAgICAgICAgICAgICAgIG1vZHVsZS5kZWZhdWx0KCk7XHJcbi8vICAgICAgICAgICAgICAgICB9KTtcclxuLy8gICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgIH1cclxuLy8gICAgIH07XHJcbi8vIH0oKSk7XHJcbi8vIGFiYW5vLm9uVGhpc1BhZ2UuaW5pdCgpOyIsIm1vZHVsZS5leHBvcnRzID0galF1ZXJ5OyJdLCJuYW1lcyI6WyJkZWJvdW5jZSIsImZ1bmMiLCJ3YWl0Iiwib3B0aW9ucyIsInRpbWVvdXQiLCJsZWFkaW5nIiwidHJhaWxpbmciLCJ1bmRlZmluZWQiLCJjb250ZXh0IiwiYXJncyIsImFyZ3VtZW50cyIsImxhdGVyIiwiYXBwbHkiLCJjYWxsTm93IiwiY2xlYXJUaW1lb3V0Iiwic2V0VGltZW91dCIsIiQiLCJ3aW5kb3ciLCJhYmFubyIsInZoIiwiaW5uZXJIZWlnaHQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsInN0eWxlIiwic2V0UHJvcGVydHkiLCJtZW51VmhGaXhfX0RFQk9VTkNFRF9XSU5ET1dfUkVTSVpFIiwib24iLCJsb2FkUnVsZXMiLCJkb2N1bWVudENvbnRhaW5zIiwic2VsZWN0b3IiLCJxdWVyeVNlbGVjdG9yIiwibmF2aWdhdGlvbiIsImluaXQiLCJ0aGVuIiwibW9kdWxlIiwiZGVmYXVsdCIsIm1pbmlTZWFyY2giLCJib29rTm93IiwiY29uZmlnIiwicHJhY3RpY2VEaXJlY3RvcnkiLCJwcmVmZXJyZWRQcmFjdGljZSIsIm1haW5TZWFyY2giLCJjYXJlZXJzU2VhcmNoIiwiY2FyZWVyc0pvYkxpc3QiLCJ0b2dnbGVDb2xsYXBzZSIsImNvbGxhcHNlIiwic2Nyb2xsQmFubmVyQWxlcnQiLCJyaWJib24iLCJwcmFjdGljZVJpYmJvbiIsInVtYnJhY29Gb3JtcyIsImZvcm1zIiwibGVuZ3RoIiwicGFyYWxsYXgiLCJwcmFjdGljZU1pbmlGaW5kZXIiLCJtZWdhbmF2IiwidGVzdGltb25pYWxzIiwidGV4dENsYW1wIiwiZSIsInJlc3VsdHNpbWFnZXMiLCJnYWxsZXJ5U2xpZGVyIiwic2Nyb2xsQmFubmVyIiwiaW1hZ2VTbGlkZXIiLCJwcm9tb1NsaWRlciIsImFydGljbGVTbGlkZXIiLCJib29rTm93QnV0dG9uIiwic2Nyb2xsSnVtcCIsIm1lbnUiLCJtYXBzIiwicHJhY3RpY2VGaW5kZXJWMiIsImludHJvUmVhZE1vcmVCdXR0b24iLCJhbmltYXRpb25zIiwiaGVhbHRoRnVuZCIsImNhcmVlcnMiLCJlbWVyZ2VuY3lEZW50aXN0cyIsImxvY2F0aW9uT2ZmZXJzIiwid2VsbG5lc3NCbG9jayIsImFjY29yZGlvbkJsb2NrIl0sInNvdXJjZVJvb3QiOiIifQ==

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.