@sbb-esta/lyne-elements-experimental 1.9.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/datetime.js +116 -105
- package/core/timetable/access-leg-helper.d.ts +2 -1
- package/core/timetable/access-leg-helper.d.ts.map +1 -1
- package/core/timetable.js +111 -76
- package/custom-elements.json +44 -0
- package/development/core/datetime.js +53 -51
- package/development/core/timetable/access-leg-helper.d.ts +2 -1
- package/development/core/timetable/access-leg-helper.d.ts.map +1 -1
- package/development/core/timetable.js +57 -22
- package/development/differenceInMinutes-Cmyza6nm.js +26 -0
- package/development/format-DTy5_IOt.js +1371 -0
- package/development/isValid-DO_pHwcW.js +53 -0
- package/development/journey-summary.js +4 -17
- package/development/pearl-chain/pearl-chain.sample-data.d.ts +1 -0
- package/development/pearl-chain/pearl-chain.sample-data.d.ts.map +1 -1
- package/development/pearl-chain-time/pearl-chain-time.d.ts +2 -0
- package/development/pearl-chain-time/pearl-chain-time.d.ts.map +1 -1
- package/development/pearl-chain-time.js +21 -21
- package/development/pearl-chain-vertical-item.js +2 -15
- package/development/pearl-chain-vertical.js +2 -15
- package/development/pearl-chain.js +8 -25
- package/development/timetable-duration.js +2 -15
- package/development/timetable-row/timetable-row.d.ts +7 -0
- package/development/timetable-row/timetable-row.d.ts.map +1 -1
- package/development/timetable-row/timetable-row.sample-data.d.ts +2 -0
- package/development/timetable-row/timetable-row.sample-data.d.ts.map +1 -1
- package/development/timetable-row.js +9 -17
- package/development/toDate-B6IBgPYH.js +24 -0
- package/differenceInMinutes-BI2zjbtS.js +23 -0
- package/{format-fWxoS2xH.js → format-oBQcGL50.js} +343 -344
- package/isValid-mroh13Xp.js +45 -0
- package/journey-summary.js +2 -2
- package/package.json +2 -2
- package/pearl-chain/pearl-chain.sample-data.d.ts +1 -0
- package/pearl-chain/pearl-chain.sample-data.d.ts.map +1 -1
- package/pearl-chain-time/pearl-chain-time.d.ts +2 -0
- package/pearl-chain-time/pearl-chain-time.d.ts.map +1 -1
- package/pearl-chain-time.js +38 -34
- package/pearl-chain.js +57 -59
- package/timetable-row/timetable-row.d.ts +7 -0
- package/timetable-row/timetable-row.d.ts.map +1 -1
- package/timetable-row/timetable-row.sample-data.d.ts +2 -0
- package/timetable-row/timetable-row.sample-data.d.ts.map +1 -1
- package/timetable-row.js +41 -36
- package/toDate-DQg4ZFnf.js +15 -0
- package/constants-DSR8hPvP.js +0 -16
- package/development/constants-BMGwMkN3.js +0 -30
- package/development/differenceInMinutes-DHtPDiUE.js +0 -30
- package/development/format-DkbylFCM.js +0 -1373
- package/development/isValid-BVccOlli.js +0 -44
- package/differenceInMinutes-BhHyuJc4.js +0 -28
- package/isValid-DSjxf8eh.js +0 -36
|
@@ -2,20 +2,7 @@ import { SbbLanguageController } from "@sbb-esta/lyne-elements/core/controllers.
|
|
|
2
2
|
import { i18nDurationHour, i18nDurationMinute } from "@sbb-esta/lyne-elements/core/i18n.js";
|
|
3
3
|
import { css, LitElement, html } from "lit";
|
|
4
4
|
import { property, customElement } from "lit/decorators.js";
|
|
5
|
-
const style = css`/**
|
|
6
|
-
* Better font rendering (on OS X)
|
|
7
|
-
* http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
|
|
8
|
-
*
|
|
9
|
-
* Usage:
|
|
10
|
-
*
|
|
11
|
-
* .var_dark_on_light {
|
|
12
|
-
* @include font-smoothing;
|
|
13
|
-
* }
|
|
14
|
-
* .var_light_on_dark {
|
|
15
|
-
* @include font-smoothing-reset;
|
|
16
|
-
* }
|
|
17
|
-
*/
|
|
18
|
-
/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
|
|
5
|
+
const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
|
|
19
6
|
/*
|
|
20
7
|
* SBB table mixin
|
|
21
8
|
* Notes:
|
|
@@ -109,4 +96,4 @@ SbbTimetableDurationElement = __decorateClass([
|
|
|
109
96
|
export {
|
|
110
97
|
SbbTimetableDurationElement
|
|
111
98
|
};
|
|
112
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXRhYmxlLWR1cmF0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3RpbWV0YWJsZS1kdXJhdGlvbi90aW1ldGFibGUtZHVyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBpMThuRHVyYXRpb25Ib3VyLCBpMThuRHVyYXRpb25NaW51dGUgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdGltZXRhYmxlLWR1cmF0aW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogVXNlZCBpbiBgc2JiLXRpbWV0YWJsZS1yb3dgLCBpdCBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHJpcCBkdXJhdGlvbi5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi10aW1ldGFibGUtZHVyYXRpb24nKVxuZXhwb3J0IGNsYXNzIFNiYlRpbWV0YWJsZUR1cmF0aW9uRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKipcbiAgICogU3RyaW5naWZpZWQgSlNPTiB3aGljaCBkZWZpbmVzIG1vc3Qgb2YgdGhlXG4gICAqIGNvbnRlbnQgb2YgdGhlIGNvbXBvbmVudC4gUGxlYXNlIGNoZWNrIHRoZVxuICAgKiBpbmRpdmlkdWFsIHN0b3JpZXMgdG8gZ2V0IGFuIGlkZWEgb2YgdGhlXG4gICAqIHN0cnVjdHVyZS5cbiAgICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBjb25maWchOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNvbmZpZyA9IEpTT04ucGFyc2UodGhpcy5jb25maWcpO1xuXG4gICAgY29uc3QgaG91cnNMYWJlbFNob3J0ID0gaTE4bkR1cmF0aW9uSG91ci5tdWx0aXBsZS5zaG9ydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICBjb25zdCBtaW51dGVzTGFiZWxTaG9ydCA9IGkxOG5EdXJhdGlvbk1pbnV0ZS5tdWx0aXBsZS5zaG9ydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcblxuICAgIGxldCB2aXN1YWxUZXh0ID0gJyc7XG4gICAgbGV0IGExMXlMYWJlbCA9ICcnO1xuXG4gICAgbGV0IGhvdXJzTGFiZWxMb25nID0gaTE4bkR1cmF0aW9uSG91ci5tdWx0aXBsZS5sb25nW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIGxldCBtaW51dGVzTGFiZWxMb25nID0gaTE4bkR1cmF0aW9uTWludXRlLm11bHRpcGxlLmxvbmdbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG5cbiAgICBpZiAoY29uZmlnLmhvdXJzID09PSAxKSB7XG4gICAgICBob3Vyc0xhYmVsTG9uZyA9IGkxOG5EdXJhdGlvbkhvdXIuc2luZ2xlLmxvbmdbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5taW51dGVzID09PSAxKSB7XG4gICAgICBtaW51dGVzTGFiZWxMb25nID0gaTE4bkR1cmF0aW9uTWludXRlLnNpbmdsZS5sb25nW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuaG91cnMgIT09IDApIHtcbiAgICAgIHZpc3VhbFRleHQgKz0gYCR7Y29uZmlnLmhvdXJzfSAke2hvdXJzTGFiZWxTaG9ydH1gO1xuICAgICAgYTExeUxhYmVsICs9IGAke2NvbmZpZy5ob3Vyc30gJHtob3Vyc0xhYmVsTG9uZ31gO1xuICAgIH1cblxuICAgIHZpc3VhbFRleHQgKz0gYCAke2NvbmZpZy5taW51dGVzfSAke21pbnV0ZXNMYWJlbFNob3J0fWA7XG4gICAgYTExeUxhYmVsICs9IGAgJHtjb25maWcubWludXRlc30gJHttaW51dGVzTGFiZWxMb25nfS5gO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8cCBhcmlhLWxhYmVsPSR7YTExeUxhYmVsfSBjbGFzcz1cImR1cmF0aW9uXCIgcm9sZT1cInRleHRcIj5cbiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJkdXJhdGlvbl9fdGV4dC0tdmlzdWFsXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICR7dmlzdWFsVGV4dH1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImR1cmF0aW9uX190ZXh0LS12aXN1YWxseS1oaWRkZW5cIj4ke2ExMXlMYWJlbH08L3NwYW4+XG4gICAgICA8L3A+
|
|
99
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXRhYmxlLWR1cmF0aW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMtZXhwZXJpbWVudGFsL3RpbWV0YWJsZS1kdXJhdGlvbi90aW1ldGFibGUtZHVyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBpMThuRHVyYXRpb25Ib3VyLCBpMThuRHVyYXRpb25NaW51dGUgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdGltZXRhYmxlLWR1cmF0aW9uLnNjc3M/bGl0JmlubGluZSc7XG5cbi8qKlxuICogVXNlZCBpbiBgc2JiLXRpbWV0YWJsZS1yb3dgLCBpdCBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHJpcCBkdXJhdGlvbi5cbiAqL1xuQGN1c3RvbUVsZW1lbnQoJ3NiYi10aW1ldGFibGUtZHVyYXRpb24nKVxuZXhwb3J0IGNsYXNzIFNiYlRpbWV0YWJsZUR1cmF0aW9uRWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKipcbiAgICogU3RyaW5naWZpZWQgSlNPTiB3aGljaCBkZWZpbmVzIG1vc3Qgb2YgdGhlXG4gICAqIGNvbnRlbnQgb2YgdGhlIGNvbXBvbmVudC4gUGxlYXNlIGNoZWNrIHRoZVxuICAgKiBpbmRpdmlkdWFsIHN0b3JpZXMgdG8gZ2V0IGFuIGlkZWEgb2YgdGhlXG4gICAqIHN0cnVjdHVyZS5cbiAgICovXG4gIEBwcm9wZXJ0eSgpIHB1YmxpYyBjb25maWchOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGNvbnN0IGNvbmZpZyA9IEpTT04ucGFyc2UodGhpcy5jb25maWcpO1xuXG4gICAgY29uc3QgaG91cnNMYWJlbFNob3J0ID0gaTE4bkR1cmF0aW9uSG91ci5tdWx0aXBsZS5zaG9ydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgICBjb25zdCBtaW51dGVzTGFiZWxTaG9ydCA9IGkxOG5EdXJhdGlvbk1pbnV0ZS5tdWx0aXBsZS5zaG9ydFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcblxuICAgIGxldCB2aXN1YWxUZXh0ID0gJyc7XG4gICAgbGV0IGExMXlMYWJlbCA9ICcnO1xuXG4gICAgbGV0IGhvdXJzTGFiZWxMb25nID0gaTE4bkR1cmF0aW9uSG91ci5tdWx0aXBsZS5sb25nW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIGxldCBtaW51dGVzTGFiZWxMb25nID0gaTE4bkR1cmF0aW9uTWludXRlLm11bHRpcGxlLmxvbmdbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG5cbiAgICBpZiAoY29uZmlnLmhvdXJzID09PSAxKSB7XG4gICAgICBob3Vyc0xhYmVsTG9uZyA9IGkxOG5EdXJhdGlvbkhvdXIuc2luZ2xlLmxvbmdbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF07XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZy5taW51dGVzID09PSAxKSB7XG4gICAgICBtaW51dGVzTGFiZWxMb25nID0gaTE4bkR1cmF0aW9uTWludXRlLnNpbmdsZS5sb25nW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdO1xuICAgIH1cblxuICAgIGlmIChjb25maWcuaG91cnMgIT09IDApIHtcbiAgICAgIHZpc3VhbFRleHQgKz0gYCR7Y29uZmlnLmhvdXJzfSAke2hvdXJzTGFiZWxTaG9ydH1gO1xuICAgICAgYTExeUxhYmVsICs9IGAke2NvbmZpZy5ob3Vyc30gJHtob3Vyc0xhYmVsTG9uZ31gO1xuICAgIH1cblxuICAgIHZpc3VhbFRleHQgKz0gYCAke2NvbmZpZy5taW51dGVzfSAke21pbnV0ZXNMYWJlbFNob3J0fWA7XG4gICAgYTExeUxhYmVsICs9IGAgJHtjb25maWcubWludXRlc30gJHttaW51dGVzTGFiZWxMb25nfS5gO1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8cCBhcmlhLWxhYmVsPSR7YTExeUxhYmVsfSBjbGFzcz1cImR1cmF0aW9uXCIgcm9sZT1cInRleHRcIj5cbiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJkdXJhdGlvbl9fdGV4dC0tdmlzdWFsXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICR7dmlzdWFsVGV4dH1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImR1cmF0aW9uX190ZXh0LS12aXN1YWxseS1oaWRkZW5cIj4ke2ExMXlMYWJlbH08L3NwYW4+XG4gICAgICA8L3A+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXRpbWV0YWJsZS1kdXJhdGlvbic6IFNiYlRpbWV0YWJsZUR1cmF0aW9uRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWWEsSUFBQSw4QkFBTixjQUEwQyxXQUFXO0FBQUEsRUFBckQsY0FBQTtBQUFBLFVBQUEsR0FBQSxTQUFBO0FBV0csU0FBQSxZQUFZLElBQUksc0JBQXNCLElBQUk7QUFBQSxFQUFBO0FBQUEsRUFFL0IsU0FBeUI7QUFDMUMsVUFBTSxTQUFTLEtBQUssTUFBTSxLQUFLLE1BQU07QUFFckMsVUFBTSxrQkFBa0IsaUJBQWlCLFNBQVMsTUFBTSxLQUFLLFVBQVUsT0FBTztBQUM5RSxVQUFNLG9CQUFvQixtQkFBbUIsU0FBUyxNQUFNLEtBQUssVUFBVSxPQUFPO0FBRWxGLFFBQUksYUFBYTtBQUNqQixRQUFJLFlBQVk7QUFFaEIsUUFBSSxpQkFBaUIsaUJBQWlCLFNBQVMsS0FBSyxLQUFLLFVBQVUsT0FBTztBQUMxRSxRQUFJLG1CQUFtQixtQkFBbUIsU0FBUyxLQUFLLEtBQUssVUFBVSxPQUFPO0FBRTFFLFFBQUEsT0FBTyxVQUFVLEdBQUc7QUFDdEIsdUJBQWlCLGlCQUFpQixPQUFPLEtBQUssS0FBSyxVQUFVLE9BQU87QUFBQSxJQUN0RTtBQUVJLFFBQUEsT0FBTyxZQUFZLEdBQUc7QUFDeEIseUJBQW1CLG1CQUFtQixPQUFPLEtBQUssS0FBSyxVQUFVLE9BQU87QUFBQSxJQUMxRTtBQUVJLFFBQUEsT0FBTyxVQUFVLEdBQUc7QUFDdEIsb0JBQWMsR0FBRyxPQUFPLEtBQUssSUFBSSxlQUFlO0FBQ2hELG1CQUFhLEdBQUcsT0FBTyxLQUFLLElBQUksY0FBYztBQUFBLElBQ2hEO0FBRUEsa0JBQWMsSUFBSSxPQUFPLE9BQU8sSUFBSSxpQkFBaUI7QUFDckQsaUJBQWEsSUFBSSxPQUFPLE9BQU8sSUFBSSxnQkFBZ0I7QUFFNUMsV0FBQTtBQUFBLHNCQUNXLFNBQVM7QUFBQTtBQUFBLFlBRW5CLFVBQVU7QUFBQTtBQUFBLHdEQUVrQyxTQUFTO0FBQUE7QUFBQTtBQUFBLEVBRy9EO0FBQ0Y7QUFsRGEsNEJBQ1ksU0FBeUI7QUFRN0IsZ0JBQUE7QUFBQSxFQUFsQixTQUFTO0FBQUEsR0FUQyw0QkFTUSxXQUFBLFVBQUEsQ0FBQTtBQVRSLDhCQUFOLGdCQUFBO0FBQUEsRUFETixjQUFjLHdCQUF3QjtBQUFBLEdBQzFCLDJCQUFBOyJ9
|
|
@@ -41,6 +41,13 @@ export declare class SbbTimetableRowElement extends LitElement {
|
|
|
41
41
|
* when this is true it will be render skeleton with an idling animation
|
|
42
42
|
*/
|
|
43
43
|
loadingTrip: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* The Footpath attribute for rendering different icons
|
|
46
|
+
* true: render a11y-icon
|
|
47
|
+
* false: render walk-icon
|
|
48
|
+
* default: render walk-icon
|
|
49
|
+
*/
|
|
50
|
+
a11yFootpath?: boolean;
|
|
44
51
|
/**
|
|
45
52
|
* The loading state -
|
|
46
53
|
* when this is true it will be render skeleton with an idling animation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timetable-row.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/timetable-row/timetable-row.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,4CAA4C,CAAC;AAE5F,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAIhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAa,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKtF,OAAO,iCAAiC,CAAC;AACzC,OAAO,iCAAiC,CAAC;AACzC,OAAO,gDAAgD,CAAC;AACxD,OAAO,wBAAwB,CAAC;AAEhC,qDAAqD;AACrD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,4DAA4D;AAC5D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB,SAAU,MAAM,QAAQ,MAAM,KAAG,cAK9D,CAAC;AAEF,eAAO,MAAM,mBAAmB,gBAAiB,MAAM,SAAS,MAAM,GAAG,IAAI,KAAG,cAK/E,CAAC;AAsBF,eAAO,MAAM,aAAa,eAAgB,WAAW,EAAE,KAAG,WAAW,EAapE,CAAC;AAEF,eAAO,MAAM,UAAU,cAAe,WAAW,KAAG,MAiCnD,CAAC;AAEF,eAAO,MAAM,MAAM,SAAU,SAAS,mBAAmB,MAAM,KAAG,MAuBjE,CAAC;AAaF,eAAO,MAAM,aAAa,YAAa,MAAM,EAAE,KAAG,MAAM,EAUvD,CAAC;AAEF,eAAO,MAAM,aAAa,YAAa,MAAM,EAAE,KAAG,MAAM,EAcvD,CAAC;AAEF;;KAEK;AACL,qBACa,sBAAuB,SAAQ,UAAU;IACpD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,qBAAqB;IACc,IAAI,EAAG,SAAS,CAAC;IAEpD,gEAAgE;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;IAEjD,wGAAwG;IAEjG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAElC,oDAAoD;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEvD;;;OAGG;IAC4D,WAAW,UAAS;IAEnF;;;OAGG;IAC6D,YAAY,UAAS;IAErF;;OAEG;IACkD,eAAe,CAAC,EAAE,MAAM,CAAC;IAE9E,yEAAyE;IAElE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEvC,uEAAuE;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IAErD,2HAA2H;IAC3H,IACW,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAE5C;IACD,IAAW,GAAG,IAAI,IAAI,CAErB;IACD,OAAO,CAAC,IAAI,CAAqB;IAEjC,OAAO,CAAC,SAAS,CAAmC;cAEjC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ5E,yDAAyD;IACzD,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,mBAAmB;IAc3B,eAAe;IACf,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,qBAAqB;
|
|
1
|
+
{"version":3,"file":"timetable-row.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/timetable-row/timetable-row.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,4CAA4C,CAAC;AAE5F,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAIhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAa,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKtF,OAAO,iCAAiC,CAAC;AACzC,OAAO,iCAAiC,CAAC;AACzC,OAAO,gDAAgD,CAAC;AACxD,OAAO,wBAAwB,CAAC;AAEhC,qDAAqD;AACrD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,4DAA4D;AAC5D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB,SAAU,MAAM,QAAQ,MAAM,KAAG,cAK9D,CAAC;AAEF,eAAO,MAAM,mBAAmB,gBAAiB,MAAM,SAAS,MAAM,GAAG,IAAI,KAAG,cAK/E,CAAC;AAsBF,eAAO,MAAM,aAAa,eAAgB,WAAW,EAAE,KAAG,WAAW,EAapE,CAAC;AAEF,eAAO,MAAM,UAAU,cAAe,WAAW,KAAG,MAiCnD,CAAC;AAEF,eAAO,MAAM,MAAM,SAAU,SAAS,mBAAmB,MAAM,KAAG,MAuBjE,CAAC;AAaF,eAAO,MAAM,aAAa,YAAa,MAAM,EAAE,KAAG,MAAM,EAUvD,CAAC;AAEF,eAAO,MAAM,aAAa,YAAa,MAAM,EAAE,KAAG,MAAM,EAcvD,CAAC;AAEF;;KAEK;AACL,qBACa,sBAAuB,SAAQ,UAAU;IACpD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,qBAAqB;IACc,IAAI,EAAG,SAAS,CAAC;IAEpD,gEAAgE;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC;IAEjD,wGAAwG;IAEjG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAElC,oDAAoD;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEvD;;;OAGG;IAC4D,WAAW,UAAS;IAEnF;;;;;OAKG;IAC6D,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvF;;;OAGG;IAC6D,YAAY,UAAS;IAErF;;OAEG;IACkD,eAAe,CAAC,EAAE,MAAM,CAAC;IAE9E,yEAAyE;IAElE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEvC,uEAAuE;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IAErD,2HAA2H;IAC3H,IACW,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAE5C;IACD,IAAW,GAAG,IAAI,IAAI,CAErB;IACD,OAAO,CAAC,IAAI,CAAqB;IAEjC,OAAO,CAAC,SAAS,CAAmC;cAEjC,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ5E,yDAAyD;IACzD,OAAO,CAAC,eAAe;IAevB,OAAO,CAAC,mBAAmB;IAc3B,eAAe;IACf,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,qBAAqB;cAyIV,MAAM,IAAI,cAAc;CAwJ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,mBAAmB,EAAE,sBAAsB,CAAC;KAC7C;CACF"}
|
|
@@ -3,6 +3,7 @@ export type DeepPartial<T> = T extends object ? {
|
|
|
3
3
|
[P in keyof T]?: DeepPartial<T[P]>;
|
|
4
4
|
} : T;
|
|
5
5
|
export declare const defaultTrip: DeepPartial<ITripItem>;
|
|
6
|
+
export declare const connectionTrip: DeepPartial<ITripItem>;
|
|
6
7
|
export declare const cancelledTrip: DeepPartial<ITripItem>;
|
|
7
8
|
export declare const progressTrip: DeepPartial<ITripItem>;
|
|
8
9
|
export declare const partiallyCancelled: DeepPartial<ITripItem>;
|
|
@@ -17,6 +18,7 @@ export declare const trainTrip: DeepPartial<ITripItem>;
|
|
|
17
18
|
export declare const busTrip: DeepPartial<ITripItem>;
|
|
18
19
|
export declare const shipTrip: DeepPartial<ITripItem>;
|
|
19
20
|
export declare const walkTimeTrip: DeepPartial<ITripItem>;
|
|
21
|
+
export declare const a11yFootpathTrip: DeepPartial<ITripItem>;
|
|
20
22
|
export declare const extendedEnterTimeTrip: DeepPartial<ITripItem>;
|
|
21
23
|
export declare const noticesTrip: DeepPartial<ITripItem>;
|
|
22
24
|
//# sourceMappingURL=timetable-row.sample-data.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timetable-row.sample-data.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/timetable-row/timetable-row.sample-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"timetable-row.sample-data.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/timetable-row/timetable-row.sample-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAiBtD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACzC;KACG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC,GACD,CAAC,CAAC;AAEN,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,SAAS,CAoB9C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,SAAS,CAGjD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,SAAS,CA2BhD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CAoB/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,SAAS,CAuBrD,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,SAAS,CAwB3C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,SAAS,CAkB7D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,SAAS,CAkBzD,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,SAAS,CAkB3D,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,WAAW,CAAC,SAAS,CAkBhE,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,SAAS,CA+DlD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,SAAS,CA8CjD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,SAAS,CA8B5C,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAAW,CAAC,SAAS,CA8B1C,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,SAAS,CAuB3C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CA0J/C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,SAAS,CAAuB,CAAC;AAE5E,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,SAAS,CA4BxD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,SAAS,CAsF9C,CAAC"}
|
|
@@ -10,21 +10,8 @@ import "@sbb-esta/lyne-elements/card.js";
|
|
|
10
10
|
import "@sbb-esta/lyne-elements/icon.js";
|
|
11
11
|
import "@sbb-esta/lyne-elements/timetable-occupancy.js";
|
|
12
12
|
import "./pearl-chain-time.js";
|
|
13
|
-
import { f as format } from "./format-
|
|
14
|
-
const style = css`/**
|
|
15
|
-
* Better font rendering (on OS X)
|
|
16
|
-
* http://maximilianhoffmann.com/posts/better-font-rendering-on-osx
|
|
17
|
-
*
|
|
18
|
-
* Usage:
|
|
19
|
-
*
|
|
20
|
-
* .var_dark_on_light {
|
|
21
|
-
* @include font-smoothing;
|
|
22
|
-
* }
|
|
23
|
-
* .var_light_on_dark {
|
|
24
|
-
* @include font-smoothing-reset;
|
|
25
|
-
* }
|
|
26
|
-
*/
|
|
27
|
-
/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
|
|
13
|
+
import { f as format } from "./format-DTy5_IOt.js";
|
|
14
|
+
const style = css`/** This mixin can be used to avoid spacing problems by inserting an invisible space as pseudo element. */
|
|
28
15
|
/*
|
|
29
16
|
* SBB table mixin
|
|
30
17
|
* Notes:
|
|
@@ -475,7 +462,8 @@ let SbbTimetableRowElement = class extends LitElement {
|
|
|
475
462
|
legs,
|
|
476
463
|
departureWalk || 0,
|
|
477
464
|
arrivalWalk || 0,
|
|
478
|
-
this._language.current
|
|
465
|
+
this._language.current,
|
|
466
|
+
this.a11yFootpath
|
|
479
467
|
);
|
|
480
468
|
const departureTime = (departure == null ? void 0 : departure.time) ? removeTimezoneFromISOTimeString(departure.time) : void 0;
|
|
481
469
|
const arrivalTime = (arrival == null ? void 0 : arrival.time) ? removeTimezoneFromISOTimeString(arrival.time) : void 0;
|
|
@@ -580,6 +568,7 @@ let SbbTimetableRowElement = class extends LitElement {
|
|
|
580
568
|
.departureWalk=${departureWalk}
|
|
581
569
|
.arrivalWalk=${arrivalWalk}
|
|
582
570
|
?disable-animation=${this.disableAnimation}
|
|
571
|
+
?a11y-footpath=${this.a11yFootpath}
|
|
583
572
|
.now=${this.now}
|
|
584
573
|
></sbb-pearl-chain-time>
|
|
585
574
|
<div class="sbb-timetable__row-footer" role="gridcell">
|
|
@@ -650,6 +639,9 @@ __decorateClass([
|
|
|
650
639
|
__decorateClass([
|
|
651
640
|
property({ attribute: "loading-trip", type: Boolean })
|
|
652
641
|
], SbbTimetableRowElement.prototype, "loadingTrip", 2);
|
|
642
|
+
__decorateClass([
|
|
643
|
+
property({ attribute: "a11y-footpath", type: Boolean })
|
|
644
|
+
], SbbTimetableRowElement.prototype, "a11yFootpath", 2);
|
|
653
645
|
__decorateClass([
|
|
654
646
|
property({ attribute: "loading-price", type: Boolean })
|
|
655
647
|
], SbbTimetableRowElement.prototype, "loadingPrice", 2);
|
|
@@ -678,4 +670,4 @@ export {
|
|
|
678
670
|
renderStringProduct,
|
|
679
671
|
sortSituation
|
|
680
672
|
};
|
|
681
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXRhYmxlLXJvdy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC90aW1ldGFibGUtcm93L3RpbWV0YWJsZS1yb3cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBkZWZhdWx0RGF0ZUFkYXB0ZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB7IHNldE9yUmVtb3ZlQXR0cmlidXRlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kb20uanMnO1xuaW1wb3J0IHtcbiAgaTE4bkFycml2YWwsXG4gIGkxOG5DbGFzcyxcbiAgaTE4bkRlcGFydHVyZSxcbiAgaTE4bkRpcmVjdGlvbixcbiAgaTE4bkZyb21QbGF0Zm9ybSxcbiAgaTE4bk1lYW5zT2ZUcmFuc3BvcnQsXG4gIGkxOG5OZXcsXG4gIGkxOG5PY2N1cGFuY3ksXG4gIGkxOG5SZWFsVGltZUluZm8sXG4gIGkxOG5TdXBlcnNhdmVyLFxuICBpMThuVHJhbnNmZXJQcm9jZWR1cmVzLFxuICBpMThuVHJhdmVsaGludHMsXG4gIGkxOG5UcmlwRHVyYXRpb24sXG4gIGkxOG5UcmlwUXVheUNoYW5nZSxcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZUxpa2UsIFNiYk9jY3VwYW5jeSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZHVyYXRpb25Ub1RpbWUsIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcgfSBmcm9tICcuLi9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB0eXBlIHsgSVRyaXBJdGVtLCBOb3RpY2UsIFB0UmlkZUxlZywgUHRTaXR1YXRpb24gfSBmcm9tICcuLi9jb3JlL3RpbWV0YWJsZS5qcyc7XG5pbXBvcnQgeyBnZXREZXBhcnR1cmVBcnJpdmFsVGltZUF0dHJpYnV0ZSwgaXNSaWRlTGVnIH0gZnJvbSAnLi4vY29yZS90aW1ldGFibGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90aW1ldGFibGUtcm93LnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY2FyZC5qcyc7XG5pbXBvcnQgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2ljb24uanMnO1xuaW1wb3J0ICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy90aW1ldGFibGUtb2NjdXBhbmN5LmpzJztcbmltcG9ydCAnLi4vcGVhcmwtY2hhaW4tdGltZS5qcyc7XG5cbi8qKiBIaW1DdXMgaW50ZXJmYWNlIGZvciBtYXBwZWQgaWNvbiBuYW1lIGFuZCB0ZXh0ICovXG5leHBvcnQgaW50ZXJmYWNlIEhpbUN1cyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGV4dD86IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBCb2FyZGluZyBpY29uIGludGVyZmFjZSBmb3IgbWFwcGVkIGljb24gbmFtZSBhbmQgdGV4dCAqL1xuZXhwb3J0IGludGVyZmFjZSBCb2FyZGluZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlIHtcbiAgcHJpY2U/OiBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmc7XG4gIGlzRGlzY291bnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgcmVuZGVySWNvblByb2R1Y3QgPSAoaWNvbjogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBUZW1wbGF0ZVJlc3VsdCA9PiB7XG4gIHJldHVybiBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXRpbWV0YWJsZV9fcm93LXRyYW5zcG9ydFwiPlxuICAgIDxzYmItaWNvbiBuYW1lPSR7aWNvbn0+PC9zYmItaWNvbj5cbiAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke25hbWV9PC9zcGFuPlxuICA8L3NwYW4+YDtcbn07XG5cbmV4cG9ydCBjb25zdCByZW5kZXJTdHJpbmdQcm9kdWN0ID0gKHZlaGljbGVOYW1lOiBzdHJpbmcsIGxpbmU/OiBzdHJpbmcgfCBudWxsKTogVGVtcGxhdGVSZXN1bHQgPT4ge1xuICBjb25zdCBzcGFjZSA9IFsnTScsICdCJywgJ1QnXS5pbmNsdWRlcyh2ZWhpY2xlTmFtZSkgPyAnICcgOiAnJztcbiAgcmV0dXJuIGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItdGltZXRhYmxlX19yb3ctdHJhbnNwb3J0bnVtYmVyXCI+XG4gICAgJHtsaW5lICE9PSBudWxsID8gdmVoaWNsZU5hbWUgKyBzcGFjZSArIGxpbmUgOiB2ZWhpY2xlTmFtZX1cbiAgPC9zcGFuPmA7XG59O1xuXG5jb25zdCBnZXRSZWFjaGFibGVUZXh0ID0gKGxlZ3M6IFB0UmlkZUxlZ1tdKTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9PiB7XG4gIHJldHVybiBsZWdzPy5maW5kKChsZWcpID0+IGxlZy5zZXJ2aWNlSm91cm5leT8uc2VydmljZUFsdGVyYXRpb24/LnJlYWNoYWJsZVRleHQpPy5zZXJ2aWNlSm91cm5leVxuICAgID8uc2VydmljZUFsdGVyYXRpb24/LnJlYWNoYWJsZVRleHQ7XG59O1xuXG5jb25zdCBnZXREZWxheVRleHQgPSAobGVnczogUHRSaWRlTGVnW10pOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID0+IHtcbiAgcmV0dXJuIGxlZ3M/LmZpbmQoKGxlZykgPT4gbGVnLnNlcnZpY2VKb3VybmV5Py5zZXJ2aWNlQWx0ZXJhdGlvbj8uZGVsYXlUZXh0KT8uc2VydmljZUpvdXJuZXlcbiAgICA/LnNlcnZpY2VBbHRlcmF0aW9uPy5kZWxheVRleHQ7XG59O1xuXG5jb25zdCBnZXRSZWRpcmVjdGVkVGV4dCA9IChsZWdzOiBQdFJpZGVMZWdbXSk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPT4ge1xuICByZXR1cm4gbGVncz8uZmluZCgobGVnKSA9PiAhIWxlZy5zZXJ2aWNlSm91cm5leT8uc2VydmljZUFsdGVyYXRpb24/LnJlZGlyZWN0ZWRUZXh0KVxuICAgID8uc2VydmljZUpvdXJuZXk/LnNlcnZpY2VBbHRlcmF0aW9uPy5yZWRpcmVjdGVkVGV4dDtcbn07XG5cbmNvbnN0IGdldFVucGxhbm5lZFN0b3AgPSAobGVnczogUHRSaWRlTGVnW10pOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID0+IHtcbiAgcmV0dXJuIGxlZ3M/LmZpbmQoKGxlZykgPT4gISFsZWcuc2VydmljZUpvdXJuZXk/LnNlcnZpY2VBbHRlcmF0aW9uPy51bnBsYW5uZWRTdG9wUG9pbnRzVGV4dClcbiAgICA/LnNlcnZpY2VKb3VybmV5Py5zZXJ2aWNlQWx0ZXJhdGlvbj8udW5wbGFubmVkU3RvcFBvaW50c1RleHQ7XG59O1xuXG5leHBvcnQgY29uc3Qgc29ydFNpdHVhdGlvbiA9IChzaXR1YXRpb25zOiBQdFNpdHVhdGlvbltdKTogUHRTaXR1YXRpb25bXSA9PiB7XG4gIGNvbnN0IHByaW9yaXRpZXMgPSB7XG4gICAgRElTVFVSQkFOQ0U6IDAsXG4gICAgSU5GT1JNQVRJT046IDEsXG4gICAgREVMQVk6IDIsXG4gICAgVFJBSU5fUkVQTEFDRU1FTlRfQllfQlVTOiAzLFxuICAgIENPTlNUUlVDVElPTl9TSVRFOiA0LFxuICAgIEVORF9NRVNTQUdFOiA1LFxuICB9O1xuXG4gIHJldHVybiBbLi4uc2l0dWF0aW9uc10/LnNvcnQoXG4gICAgKGE6IFB0U2l0dWF0aW9uLCBiOiBQdFNpdHVhdGlvbikgPT4gcHJpb3JpdGllc1thLmNhdXNlIV0gLSBwcmlvcml0aWVzW2IuY2F1c2UhXSxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIaW1JY29uID0gKHNpdHVhdGlvbjogUHRTaXR1YXRpb24pOiBIaW1DdXMgPT4ge1xuICBzd2l0Y2ggKHNpdHVhdGlvbj8uY2F1c2UpIHtcbiAgICBjYXNlICdESVNUVVJCQU5DRSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiAnZGlzcnVwdGlvbicsXG4gICAgICAgIHRleHQ6IHNpdHVhdGlvbj8uYnJvYWRjYXN0TWVzc2FnZXM/Lmxlbmd0aCA/IHNpdHVhdGlvbj8uYnJvYWRjYXN0TWVzc2FnZXNbMF0udGl0bGUgOiAnJyxcbiAgICAgIH07XG4gICAgY2FzZSAnSU5GT1JNQVRJT04nOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogJ2luZm8nLFxuICAgICAgICB0ZXh0OiBzaXR1YXRpb24/LmJyb2FkY2FzdE1lc3NhZ2VzLmxlbmd0aCA/IHNpdHVhdGlvbj8uYnJvYWRjYXN0TWVzc2FnZXNbMF0udGl0bGUgOiAnJyxcbiAgICAgIH07XG4gICAgY2FzZSAnREVMQVknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogJ2RlbGF5JyxcbiAgICAgICAgdGV4dDogc2l0dWF0aW9uPy5icm9hZGNhc3RNZXNzYWdlcy5sZW5ndGggPyBzaXR1YXRpb24/LmJyb2FkY2FzdE1lc3NhZ2VzWzBdLnRpdGxlIDogJycsXG4gICAgICB9O1xuICAgIGNhc2UgJ1RSQUlOX1JFUExBQ0VNRU5UX0JZX0JVUyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiAncmVwbGFjZW1lbnRidXMnLFxuICAgICAgICB0ZXh0OiBzaXR1YXRpb24/LmJyb2FkY2FzdE1lc3NhZ2VzLmxlbmd0aCA/IHNpdHVhdGlvbj8uYnJvYWRjYXN0TWVzc2FnZXNbMF0udGl0bGUgOiAnJyxcbiAgICAgIH07XG4gICAgY2FzZSAnQ09OU1RSVUNUSU9OX1NJVEUnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogJ2NvbnN0cnVjdGlvbicsXG4gICAgICAgIHRleHQ6IHNpdHVhdGlvbj8uYnJvYWRjYXN0TWVzc2FnZXMubGVuZ3RoID8gc2l0dWF0aW9uPy5icm9hZGNhc3RNZXNzYWdlc1swXS50aXRsZSA6ICcnLFxuICAgICAgfTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogJ2luZm8nLFxuICAgICAgICB0ZXh0OiBzaXR1YXRpb24/LmJyb2FkY2FzdE1lc3NhZ2VzLmxlbmd0aCA/IHNpdHVhdGlvbj8uYnJvYWRjYXN0TWVzc2FnZXNbMF0udGl0bGUgOiAnJyxcbiAgICAgIH07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDdXMgPSAodHJpcDogSVRyaXBJdGVtLCBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZyk6IEhpbUN1cyA9PiB7XG4gIGNvbnN0IHsgc3VtbWFyeSwgbGVncyB9ID0gdHJpcCB8fCB7fTtcbiAgY29uc3QgcmlkZUxlZ3MgPSBsZWdzPy5maWx0ZXIoKGxlZykgPT4gaXNSaWRlTGVnKGxlZykpIGFzIFB0UmlkZUxlZ1tdO1xuICBjb25zdCB7IHRyaXBTdGF0dXMgfSA9IHN1bW1hcnkgfHwge307XG5cbiAgaWYgKHRyaXBTdGF0dXM/LmNhbmNlbGxlZCB8fCB0cmlwU3RhdHVzPy5wYXJ0aWFsbHlDYW5jZWxsZWQpXG4gICAgcmV0dXJuIHsgbmFtZTogJ2NhbmNlbGxhdGlvbicsIHRleHQ6IHRyaXBTdGF0dXM/LmNhbmNlbGxlZFRleHQgfTtcbiAgaWYgKGdldFJlYWNoYWJsZVRleHQocmlkZUxlZ3MpKVxuICAgIHJldHVybiB7IG5hbWU6ICdtaXNzZWQtY29ubmVjdGlvbicsIHRleHQ6IGdldFJlYWNoYWJsZVRleHQocmlkZUxlZ3MpIH07XG4gIGlmICh0cmlwU3RhdHVzPy5hbHRlcm5hdGl2ZSkgcmV0dXJuIHsgbmFtZTogJ2FsdGVybmF0aXZlJywgdGV4dDogdHJpcFN0YXR1cy5hbHRlcm5hdGl2ZVRleHQgfTtcbiAgaWYgKGdldFJlZGlyZWN0ZWRUZXh0KHJpZGVMZWdzKSkgcmV0dXJuIHsgbmFtZTogJ3Jlcm91dGUnLCB0ZXh0OiBnZXRSZWRpcmVjdGVkVGV4dChyaWRlTGVncykgfTtcbiAgaWYgKGdldFVucGxhbm5lZFN0b3AocmlkZUxlZ3MpKSByZXR1cm4geyBuYW1lOiAnYWRkLXN0b3AnLCB0ZXh0OiBnZXRVbnBsYW5uZWRTdG9wKHJpZGVMZWdzKSB9O1xuICBpZiAodHJpcFN0YXR1cz8uZGVsYXllZCB8fCB0cmlwU3RhdHVzPy5kZWxheWVkVW5rbm93bilcbiAgICByZXR1cm4geyBuYW1lOiAnZGVsYXknLCB0ZXh0OiBnZXREZWxheVRleHQocmlkZUxlZ3MpIH07XG4gIGlmICh0cmlwU3RhdHVzPy5xdWF5Q2hhbmdlZCkge1xuICAgIGNvbnN0IGRlcGFydHVyZSA9IHJpZGVMZWdzWzBdLmRlcGFydHVyZTtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogJ3BsYXRmb3JtLWNoYW5nZScsXG4gICAgICB0ZXh0OiBkZXBhcnR1cmUucXVheUNoYW5nZWQgPyBkZXBhcnR1cmUucXVheUNoYW5nZWRUZXh0IDogaTE4blRyaXBRdWF5Q2hhbmdlW2N1cnJlbnRMYW5ndWFnZV0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7fSBhcyBIaW1DdXM7XG59O1xuXG5jb25zdCBmaW5kQW5kUmVwbGFjZU5vdGljZSA9IChub3RpY2VzOiBOb3RpY2VbXSk6IE5vdGljZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHJlc2VydmF0aW9uTm90aWNlID0gWydSUicsICdSSycsICdSQycsICdSTCcsICdSTScsICdSUycsICdSVScsICdYUCcsICdYUicsICdYVCddO1xuXG4gIHJldHVybiBub3RpY2VzLnJlZHVjZSgoZm91bmROb3RpY2U6IE5vdGljZSB8IHVuZGVmaW5lZCwgbm90aWNlOiBOb3RpY2UpOiBOb3RpY2UgfCB1bmRlZmluZWQgPT4ge1xuICAgIGlmIChmb3VuZE5vdGljZSkgcmV0dXJuIGZvdW5kTm90aWNlO1xuICAgIGlmIChyZXNlcnZhdGlvbk5vdGljZS5pbmNsdWRlcyhub3RpY2UubmFtZSkpIHtcbiAgICAgIHJldHVybiB7IC4uLm5vdGljZSwgbmFtZTogJ1JSJyB9IGFzIE5vdGljZTtcbiAgICB9XG4gIH0sIHVuZGVmaW5lZCk7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyTm90aWNlcyA9IChub3RpY2VzOiBOb3RpY2VbXSk6IE5vdGljZVtdID0+IHtcbiAgY29uc3QgYWxsb3dlZE5hbWVzID0gWydaJywgJ1NCJywgJ1NaJywgJ1ZSJywgJ1RHJ107XG5cbiAgY29uc3QgZmlsdGVyTm90aWNlID0gbm90aWNlcy5maWx0ZXIoKG5vdGljZSwgaW5kZXgpID0+IHtcbiAgICByZXR1cm4gbm90aWNlcy5maW5kSW5kZXgoKG4pID0+IG4ubmFtZSA9PT0gbm90aWNlLm5hbWUpID09PSBpbmRleDtcbiAgfSk7XG5cbiAgcmV0dXJuIGZpbHRlck5vdGljZVxuICAgIC5maWx0ZXIoKG5vdGljZSkgPT4gYWxsb3dlZE5hbWVzLmluY2x1ZGVzKG5vdGljZS5uYW1lKSlcbiAgICAuc29ydCgoYSwgYikgPT4gYWxsb3dlZE5hbWVzLmluZGV4T2YoYS5uYW1lKSAtIGFsbG93ZWROYW1lcy5pbmRleE9mKGIubmFtZSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZU5vdGljZXMgPSAobm90aWNlczogTm90aWNlW10pOiBOb3RpY2VbXSA9PiB7XG4gIGNvbnN0IHJlc2VydmF0aW9uTm90aWNlID0gZmluZEFuZFJlcGxhY2VOb3RpY2Uobm90aWNlcyk7XG4gIGNvbnN0IGZpbHRlcmVkTm90aWNlcyA9IGZpbHRlck5vdGljZXMobm90aWNlcyk7XG5cbiAgaWYgKHJlc2VydmF0aW9uTm90aWNlID09PSB1bmRlZmluZWQpIHJldHVybiBmaWx0ZXJlZE5vdGljZXM7XG4gIGlmICghZmlsdGVyZWROb3RpY2VzLmxlbmd0aCkgcmV0dXJuIFtyZXNlcnZhdGlvbk5vdGljZV07XG5cbiAgaWYgKGZpbHRlcmVkTm90aWNlc1swXS5uYW1lID09PSAnWicgJiYgZmlsdGVyZWROb3RpY2VzWzFdKSB7XG4gICAgcmV0dXJuIFtmaWx0ZXJlZE5vdGljZXNbMF0sIHJlc2VydmF0aW9uTm90aWNlLCBmaWx0ZXJlZE5vdGljZXNbMV1dLmNvbmNhdChcbiAgICAgIGZpbHRlcmVkTm90aWNlcy5zbGljZSgyKSxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIFtyZXNlcnZhdGlvbk5vdGljZSwgLi4uZmlsdGVyZWROb3RpY2VzXTtcbn07XG5cbi8qKlxuICogSXQgZGlzcGxheXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRyaXAsIGFjdGluZyBhcyBhIGNvbnRhaW5lciBmb3IgYWxsIHRoZSBgc2JiLXRpbWV0YWJsZS0qYCBjb21wb25lbnRzLlxuICogKi9cbkBjdXN0b21FbGVtZW50KCdzYmItdGltZXRhYmxlLXJvdycpXG5leHBvcnQgY2xhc3MgU2JiVGltZXRhYmxlUm93RWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogVGhlIHRyaXAgUHJvcC4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pIHB1YmxpYyB0cmlwITogSVRyaXBJdGVtO1xuXG4gIC8qKiBUaGUgcHJpY2UgUHJvcCwgd2hpY2ggY29uc2lzdHMgb2YgdGhlIGRhdGEgZm9yIHRoZSBiYWRnZS4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pIHB1YmxpYyBwcmljZT86IFByaWNlO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIHRvIHRoZSBzYmItcGVhcmwtY2hhaW4gY29tcG9uZW50IC0gaWYgdHJ1ZSB0aGUgcG9zaXRpb24gd29uJ3QgYmUgYW5pbWF0ZWQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Rpc2FibGUtYW5pbWF0aW9uJywgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgZGlzYWJsZUFuaW1hdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgdG8gdGhlIG5vdGljZXMgc2VjdGlvbiAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBPYmplY3QgfSkgcHVibGljIGJvYXJkaW5nPzogQm9hcmRpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2FkaW5nIHN0YXRlIC1cbiAgICogd2hlbiB0aGlzIGlzIHRydWUgaXQgd2lsbCBiZSByZW5kZXIgc2tlbGV0b24gd2l0aCBhbiBpZGxpbmcgYW5pbWF0aW9uXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdsb2FkaW5nLXRyaXAnLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBsb2FkaW5nVHJpcCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9hZGluZyBzdGF0ZSAtXG4gICAqIHdoZW4gdGhpcyBpcyB0cnVlIGl0IHdpbGwgYmUgcmVuZGVyIHNrZWxldG9uIHdpdGggYW4gaWRsaW5nIGFuaW1hdGlvblxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnbG9hZGluZy1wcmljZScsIHR5cGU6IEJvb2xlYW4gfSkgcHVibGljIGxvYWRpbmdQcmljZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBIaWRkZW4gbGFiZWwgZm9yIHRoZSBjYXJkIGFjdGlvbi4gSXQgb3ZlcnJpZGVzIHRoZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBhY2Nlc3NpYmlsaXR5IHRleHQgZm9yIHRoZSBjb21wb25lbnQuIFVzZSB0aGlzIHByb3AgdG8gcHJvdmlkZSBjdXN0b20gYWNjZXNzaWJpbGl0eSBpbmZvcm1hdGlvbiBmb3IgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2NhcmQtYWN0aW9uLWxhYmVsJyB9KSBwdWJsaWMgY2FyZEFjdGlvbkxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIHRvIHRoZSBzYmItY2FyZCBjb21wb25lbnQgYXMgYXJpYS1leHBhbmRlZC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWNjZXNzaWJpbGl0eS1leHBhbmRlZCcsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc2liaWxpdHlFeHBhbmRlZD86IGJvb2xlYW47XG5cbiAgLyoqIFdoZW4gdGhpcyBwcm9wIGlzIHRydWUgdGhlIHNiYi1jYXJkIHdpbGwgYmUgaW4gdGhlIGFjdGl2ZSBzdGF0ZS4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgYWN0aXZlPzogYm9vbGVhbjtcblxuICAvKiogQSBjb25maWd1cmVkIGRhdGUgd2hpY2ggYWN0cyBhcyB0aGUgY3VycmVudCBkYXRlIGluc3RlYWQgb2YgdGhlIHJlYWwgY3VycmVudCBkYXRlLiBSZWNvbW1lbmRlZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBub3codmFsdWU6IFNiYkRhdGVMaWtlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fbm93ID0gZGVmYXVsdERhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbChkZWZhdWx0RGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5vdygpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fbm93ID8/IG5ldyBEYXRlKCk7XG4gIH1cbiAgcHJpdmF0ZSBfbm93OiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbG9hZGluZ1RyaXAnKSkge1xuICAgICAgc2V0T3JSZW1vdmVBdHRyaWJ1dGUodGhpcywgJ3JvbGUnLCAhdGhpcy5sb2FkaW5nVHJpcCA/ICdyb3dncm91cCcgOiBudWxsKTtcbiAgICB9XG4gIH1cblxuICAvKiogVGhlIHNrZWxldG9uIHJlbmRlciBmdW5jdGlvbiBmb3IgdGhlIGxvYWRpbmcgc3RhdGUgKi9cbiAgcHJpdmF0ZSBfcmVuZGVyU2tlbGV0b24oKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNiYi1jYXJkIHNpemU9XCJsXCIgY2xhc3M9XCJzYmItbG9hZGluZ1wiPlxuICAgICAgICAke3RoaXMubG9hZGluZ1ByaWNlXG4gICAgICAgICAgPyBodG1sYDxzYmItY2FyZC1iYWRnZSBjbGFzcz1cInNiYi1sb2FkaW5nX19iYWRnZVwiPjwvc2JiLWNhcmQtYmFkZ2U+YFxuICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1sb2FkaW5nX193cmFwcGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1sb2FkaW5nX19yb3dcIj48L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWxvYWRpbmdfX3Jvd1wiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbG9hZGluZ19fcm93XCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zYmItY2FyZD5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UXVheVR5cGVTdHJpbmdzKCk6IHsgbG9uZzogc3RyaW5nOyBzaG9ydDogc3RyaW5nIH0gfCBudWxsIHtcbiAgICBpZiAoIXRoaXMudHJpcC5zdW1tYXJ5Py5wcm9kdWN0KSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCByaWRlTGVncyA9IHRoaXMudHJpcC5sZWdzPy5maWx0ZXIoKGxlZykgPT4gaXNSaWRlTGVnKGxlZykpIGFzIFB0UmlkZUxlZ1tdO1xuICAgIGNvbnN0IGlzU2hvcnQgPSB0aGlzLnRyaXAuc3VtbWFyeS5wcm9kdWN0Py52ZWhpY2xlTW9kZSA9PT0gJ1RSQUlOJztcbiAgICBjb25zdCBzaG9ydCA9IGlzU2hvcnRcbiAgICAgID8gcmlkZUxlZ3NbMF0uc2VydmljZUpvdXJuZXkucXVheVR5cGVTaG9ydE5hbWUgfHwgJydcbiAgICAgIDogcmlkZUxlZ3NbMF0uc2VydmljZUpvdXJuZXkucXVheVR5cGVOYW1lIHx8ICcnO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxvbmc6IGkxOG5Gcm9tUGxhdGZvcm1bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF0gKyAnICcgKyBzaG9ydCxcbiAgICAgIHNob3J0LFxuICAgIH07XG4gIH1cblxuICAvKiogbWFwIFF1YXkgKi9cbiAgcHJpdmF0ZSBfcmVuZGVyUXVheVR5cGUoKTogVGVtcGxhdGVSZXN1bHQgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy50cmlwLnN1bW1hcnk/LnByb2R1Y3QpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcXVheVR5cGVTdHJpbmdzID0gdGhpcy5fZ2V0UXVheVR5cGVTdHJpbmdzKCk7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi10aW1ldGFibGVfX3Jvdy0tcXVheVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke3F1YXlUeXBlU3RyaW5ncz8ubG9uZ30mbmJzcDs8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRpbWV0YWJsZV9fcm93LS1xdWF5LXR5cGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgID4ke3F1YXlUeXBlU3RyaW5ncz8uc2hvcnR9PC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvc3Bhbj5cbiAgICBgO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlSGltQ3VzKHRyaXA6IElUcmlwSXRlbSk6IHsgY3VzOiBIaW1DdXMgfCBudWxsOyBoaW06IEhpbUN1cyB8IG51bGwgfSB7XG4gICAgY29uc3QgeyBzaXR1YXRpb25zIH0gPSB0cmlwIHx8IHt9O1xuICAgIGNvbnN0IHNvcnRlZFNpdHVhdGlvbnMgPSBzaXR1YXRpb25zICYmIHNvcnRTaXR1YXRpb24oc2l0dWF0aW9ucyk7XG4gICAgY29uc3QgY3VzID0gZ2V0Q3VzKHRyaXAsIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGN1czogT2JqZWN0LmtleXMoY3VzKT8ubGVuZ3RoID8gY3VzIDogbnVsbCxcbiAgICAgIGhpbTogc2l0dWF0aW9ucz8ubGVuZ3RoID8gZ2V0SGltSWNvbihzb3J0ZWRTaXR1YXRpb25zWzBdKSA6IG51bGwsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEFjY2Vzc2liaWxpdHlUZXh0KHRyaXA6IElUcmlwSXRlbSk6IHN0cmluZyB7XG4gICAgY29uc3QgeyBzdW1tYXJ5LCBsZWdzLCBub3RpY2VzIH0gPSB0cmlwIHx8IHt9O1xuICAgIGNvbnN0IHtcbiAgICAgIGRlcGFydHVyZVdhbGssXG4gICAgICBhcnJpdmFsV2FsayxcbiAgICAgIGRlcGFydHVyZSxcbiAgICAgIGFycml2YWwsXG4gICAgICBwcm9kdWN0LFxuICAgICAgZGlyZWN0aW9uLFxuICAgICAgb2NjdXBhbmN5LFxuICAgICAgZHVyYXRpb24sXG4gICAgfSA9IHN1bW1hcnkgfHwge307XG5cbiAgICBjb25zdCB7IGRlcGFydHVyZVRpbWVBdHRyaWJ1dGUsIGFycml2YWxUaW1lQXR0cmlidXRlIH0gPSBnZXREZXBhcnR1cmVBcnJpdmFsVGltZUF0dHJpYnV0ZShcbiAgICAgIGxlZ3MsXG4gICAgICBkZXBhcnR1cmVXYWxrIHx8IDAsXG4gICAgICBhcnJpdmFsV2FsayB8fCAwLFxuICAgICAgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCxcbiAgICApO1xuXG4gICAgY29uc3QgZGVwYXJ0dXJlVGltZTogRGF0ZSB8IHVuZGVmaW5lZCA9IGRlcGFydHVyZT8udGltZVxuICAgICAgPyByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGRlcGFydHVyZS50aW1lKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBhcnJpdmFsVGltZTogRGF0ZSB8IHVuZGVmaW5lZCA9IGFycml2YWw/LnRpbWVcbiAgICAgID8gcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhhcnJpdmFsLnRpbWUpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGRlcGFydHVyZVdhbGtUZXh0ID0gZGVwYXJ0dXJlVGltZUF0dHJpYnV0ZVxuICAgICAgPyBgJHtkZXBhcnR1cmVUaW1lQXR0cmlidXRlLnRleHR9ICR7ZGVwYXJ0dXJlVGltZUF0dHJpYnV0ZS5kdXJhdGlvbn0sIGBcbiAgICAgIDogJyc7XG5cbiAgICBjb25zdCBhcnJpdmFsV2Fsa1RleHQgPSBhcnJpdmFsVGltZUF0dHJpYnV0ZVxuICAgICAgPyBgJHthcnJpdmFsVGltZUF0dHJpYnV0ZS50ZXh0fSAke2Fycml2YWxUaW1lQXR0cmlidXRlLmR1cmF0aW9ufSwgYFxuICAgICAgOiAnJztcblxuICAgIGNvbnN0IGRlcGFydHVyZVRpbWVUZXh0ID0gZGVwYXJ0dXJlVGltZVxuICAgICAgPyBgJHtpMThuRGVwYXJ0dXJlW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfTogJHtmb3JtYXQoZGVwYXJ0dXJlVGltZSwgJ0hIOm1tJyl9LCBgXG4gICAgICA6ICcnO1xuXG4gICAgY29uc3QgZ2V0RGVwYXJ0dXJlUXVheVRleHQgPSAoKTogc3RyaW5nID0+IHtcbiAgICAgIGlmICghZGVwYXJ0dXJlPy5xdWF5Rm9ybWF0dGVkKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cblxuICAgICAgLy8gYWRkIHByZWZpeCBcIm5ld1wiIGlmIHF1YXkgd2FzIGNoYW5nZWRcbiAgICAgIGNvbnN0IGNoYW5nZWRRdWF5UHJlZml4ID0gZGVwYXJ0dXJlPy5xdWF5Q2hhbmdlZCA/IGAke2kxOG5OZXdbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19IGAgOiAnJztcbiAgICAgIHJldHVybiBgJHtjaGFuZ2VkUXVheVByZWZpeH0ke1xuICAgICAgICB0aGlzLl9nZXRRdWF5VHlwZVN0cmluZ3MoKT8ubG9uZ1xuICAgICAgfSAke2RlcGFydHVyZT8ucXVheUZvcm1hdHRlZH0sIGA7XG4gICAgfTtcblxuICAgIGNvbnN0IG1lYW5zT2ZUcmFuc3BvcnRUZXh0ID1cbiAgICAgIHByb2R1Y3QgJiYgcHJvZHVjdC52ZWhpY2xlTW9kZVxuICAgICAgICA/IGkxOG5NZWFuc09mVHJhbnNwb3J0W3Byb2R1Y3QudmVoaWNsZU1vZGUudG9Mb3dlckNhc2UoKV0gJiZcbiAgICAgICAgICBgJHtpMThuTWVhbnNPZlRyYW5zcG9ydFtwcm9kdWN0LnZlaGljbGVNb2RlLnRvTG93ZXJDYXNlKCldW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSwgYFxuICAgICAgICA6ICcnO1xuXG4gICAgY29uc3QgdmVoaWNsZVN1Yk1vZGVUZXh0ID0gcHJvZHVjdD8udmVoaWNsZVN1Yk1vZGVTaG9ydE5hbWVcbiAgICAgID8gYCR7cHJvZHVjdC52ZWhpY2xlU3ViTW9kZVNob3J0TmFtZX0gJHtwcm9kdWN0LmxpbmUgfHwgJyd9LCBgXG4gICAgICA6ICcnO1xuXG4gICAgY29uc3QgZGlyZWN0aW9uVGV4dCA9IGAke2kxOG5EaXJlY3Rpb25bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7ZGlyZWN0aW9ufSwgYDtcblxuICAgIGNvbnN0IGhpbUN1cyA9IHRoaXMuX2hhbmRsZUhpbUN1cyh0cmlwKTtcbiAgICBjb25zdCBjdXNUZXh0ID0gaGltQ3VzPy5jdXM/LnRleHRcbiAgICAgID8gYCR7aTE4blJlYWxUaW1lSW5mb1t0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX06ICR7aGltQ3VzPy5jdXM/LnRleHR9LCBgXG4gICAgICA6ICcnO1xuICAgIGNvbnN0IGhpbVRleHQgPSBoaW1DdXM/LmhpbT8udGV4dFxuICAgICAgPyBgJHtpMThuUmVhbFRpbWVJbmZvW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfTogJHtoaW1DdXM/LmhpbT8udGV4dH0sIGBcbiAgICAgIDogJyc7XG5cbiAgICBjb25zdCBib2FyZGluZ1RleHQgPSB0aGlzLmJvYXJkaW5nID8gYCR7dGhpcy5ib2FyZGluZy50ZXh0fSwgYCA6ICcnO1xuXG4gICAgY29uc3QgcHJpY2VUZXh0ID0gYCR7dGhpcy5wcmljZT8uaXNEaXNjb3VudCA/IGkxOG5TdXBlcnNhdmVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdIDogJyd9ICR7XG4gICAgICB0aGlzLnByaWNlPy50ZXh0ICYmIHRoaXMucHJpY2U/LnByaWNlXG4gICAgICAgID8gKHRoaXMucHJpY2U/LnRleHQgfHwgJycpICsgJyAnICsgKHRoaXMucHJpY2U/LnByaWNlIHx8ICcnKSArICcsICdcbiAgICAgICAgOiAnJ1xuICAgIH1gO1xuXG4gICAgY29uc3QgdHJhbnNmZXJQcm9jZWR1cmVzID1cbiAgICAgIGxlZ3M/Lmxlbmd0aCA+IDFcbiAgICAgICAgPyBgJHtsZWdzPy5sZW5ndGggLSAxfSAke2kxOG5UcmFuc2ZlclByb2NlZHVyZXNbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19LCBgXG4gICAgICAgIDogJyc7XG5cbiAgICBjb25zdCBhcnJpdmFsVGltZVRleHQgPSBhcnJpdmFsVGltZVxuICAgICAgPyBgJHtpMThuQXJyaXZhbFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX06ICR7Zm9ybWF0KGFycml2YWxUaW1lLCAnSEg6bW0nKX0sIGBcbiAgICAgIDogJyc7XG5cbiAgICBsZXQgb2NjdXBhbmN5VGV4dDogc3RyaW5nID0gJyc7XG4gICAgaWYgKG9jY3VwYW5jeSkge1xuICAgICAgaWYgKG9jY3VwYW5jeS5maXJzdENsYXNzICYmIG9jY3VwYW5jeS5maXJzdENsYXNzICE9PSAnVU5LTk9XTicpIHtcbiAgICAgICAgb2NjdXBhbmN5VGV4dCArPSBgJHtpMThuQ2xhc3MuZmlyc3RbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7XG4gICAgICAgICAgKFxuICAgICAgICAgICAgaTE4bk9jY3VwYW5jeVtvY2N1cGFuY3kuZmlyc3RDbGFzcy50b0xvd2VyQ2FzZSgpIGFzIFNiYk9jY3VwYW5jeV0gYXMgUmVjb3JkPFxuICAgICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICAgIHN0cmluZ1xuICAgICAgICAgICAgPlxuICAgICAgICAgICk/Llt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XVxuICAgICAgICB9LmA7XG4gICAgICB9XG4gICAgICBpZiAob2NjdXBhbmN5LnNlY29uZENsYXNzICYmIG9jY3VwYW5jeS5zZWNvbmRDbGFzcyAhPT0gJ1VOS05PV04nKSB7XG4gICAgICAgIG9jY3VwYW5jeVRleHQgKz0gYCAke2kxOG5DbGFzcy5zZWNvbmRbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7XG4gICAgICAgICAgKFxuICAgICAgICAgICAgaTE4bk9jY3VwYW5jeVtvY2N1cGFuY3kuc2Vjb25kQ2xhc3MudG9Mb3dlckNhc2UoKSBhcyBTYmJPY2N1cGFuY3ldIGFzIFJlY29yZDxcbiAgICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICAgID5cbiAgICAgICAgICApPy5bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF1cbiAgICAgICAgfS5gO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGF0dHJpYnV0ZXMgPVxuICAgICAgbm90aWNlcyAmJlxuICAgICAgaGFuZGxlTm90aWNlcyhub3RpY2VzKS5sZW5ndGggJiZcbiAgICAgIGhhbmRsZU5vdGljZXMobm90aWNlcylcbiAgICAgICAgPy5tYXAoKG5vdGljZSwgaW5kZXgpID0+IGluZGV4IDwgNCAmJiBub3RpY2UudGV4dD8udGVtcGxhdGUpXG4gICAgICAgIC5qb2luKCcsICcpICsgJywgJztcblxuICAgIGNvbnN0IGF0dHJpYnV0ZXNUZXh0ID0gYXR0cmlidXRlc1xuICAgICAgPyBgJHtpMThuVHJhdmVsaGludHNbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19OiAke2F0dHJpYnV0ZXN9YFxuICAgICAgOiAnJztcblxuICAgIGNvbnN0IGR1cmF0aW9uVGV4dCA9XG4gICAgICAhIWR1cmF0aW9uICYmIGR1cmF0aW9uID4gMFxuICAgICAgICA/IGAke2kxOG5UcmlwRHVyYXRpb25bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7XG4gICAgICAgICAgICBkdXJhdGlvblRvVGltZShkdXJhdGlvbiwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCkubG9uZ1xuICAgICAgICAgIH0sIGBcbiAgICAgICAgOiAnJztcblxuICAgIHJldHVybiBgJHtkZXBhcnR1cmVXYWxrVGV4dH0gJHtkZXBhcnR1cmVUaW1lVGV4dH0gJHtnZXREZXBhcnR1cmVRdWF5VGV4dCgpfSAke21lYW5zT2ZUcmFuc3BvcnRUZXh0fSAke3ZlaGljbGVTdWJNb2RlVGV4dH0gJHtkaXJlY3Rpb25UZXh0fSAke2N1c1RleHR9ICR7Ym9hcmRpbmdUZXh0fSAke3ByaWNlVGV4dH0gJHtcbiAgICAgIGN1c1RleHQgPyAnJyA6IGhpbVRleHRcbiAgICB9ICR7YXJyaXZhbFRpbWVUZXh0fSAke2Fycml2YWxXYWxrVGV4dH0gJHtkdXJhdGlvblRleHR9ICR7dHJhbnNmZXJQcm9jZWR1cmVzfSAke29jY3VwYW5jeVRleHR9ICR7YXR0cmlidXRlc1RleHR9YDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIGlmICh0aGlzLmxvYWRpbmdUcmlwKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVuZGVyU2tlbGV0b24oKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IGxlZ3MsIGlkLCBub3RpY2VzLCBzdW1tYXJ5IH0gPSB0aGlzLnRyaXAgfHwge307XG5cbiAgICBjb25zdCB7XG4gICAgICBwcm9kdWN0LFxuICAgICAgZGlyZWN0aW9uLFxuICAgICAgZGVwYXJ0dXJlV2FsayxcbiAgICAgIGRlcGFydHVyZSxcbiAgICAgIGFycml2YWwsXG4gICAgICBhcnJpdmFsV2FsayxcbiAgICAgIG9jY3VwYW5jeSxcbiAgICAgIGR1cmF0aW9uLFxuICAgIH0gPSBzdW1tYXJ5IHx8IHt9O1xuXG4gICAgY29uc3QgaGltQ3VzID0gdGhpcy5faGFuZGxlSGltQ3VzKHRoaXMudHJpcCk7XG4gICAgY29uc3QgaGFzSGltQ3VzID0gISFoaW1DdXMuY3VzIHx8ICEhaGltQ3VzLmhpbTtcblxuICAgIGNvbnN0IG5vdGljZUF0dHJpYnV0ZXMgPSBub3RpY2VzICYmIGhhbmRsZU5vdGljZXMobm90aWNlcyk7XG5cbiAgICBjb25zdCBkdXJhdGlvbk9iaiA9IGR1cmF0aW9uID8gZHVyYXRpb25Ub1RpbWUoZHVyYXRpb24sIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpIDogbnVsbDtcblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNiYi1jYXJkIHNpemU9XCJsXCIgaWQ9JHtpZH0+XG4gICAgICAgIDxzYmItY2FyZC1idXR0b25cbiAgICAgICAgICA/YWN0aXZlPSR7dGhpcy5hY3RpdmV9XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD0ke3RoaXMuYWNjZXNzaWJpbGl0eUV4cGFuZGVkPy50b1N0cmluZygpID8/IG5vdGhpbmd9XG4gICAgICAgID5cbiAgICAgICAgICAke3RoaXMuY2FyZEFjdGlvbkxhYmVsID8gdGhpcy5jYXJkQWN0aW9uTGFiZWwgOiB0aGlzLl9nZXRBY2Nlc3NpYmlsaXR5VGV4dCh0aGlzLnRyaXApfVxuICAgICAgICA8L3NiYi1jYXJkLWJ1dHRvbj5cbiAgICAgICAgJHt0aGlzLmxvYWRpbmdQcmljZVxuICAgICAgICAgID8gaHRtbGA8c2JiLWNhcmQtYmFkZ2UgY2xhc3M9XCJzYmItbG9hZGluZ19fYmFkZ2VcIj48L3NiYi1jYXJkLWJhZGdlPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICR7dGhpcy5wcmljZSAmJiAhdGhpcy5sb2FkaW5nUHJpY2VcbiAgICAgICAgICA/IGh0bWxgPHNiYi1jYXJkLWJhZGdlIGNvbG9yPSR7dGhpcy5wcmljZS5pc0Rpc2NvdW50ID8gJ2NoYXJjb2FsJyA6ICd3aGl0ZSd9PlxuICAgICAgICAgICAgICAke3RoaXMucHJpY2UuaXNEaXNjb3VudFxuICAgICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgJTxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgPiR7aTE4blN1cGVyc2F2ZXJbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAke3RoaXMucHJpY2UudGV4dCA/IGh0bWxgPHNwYW4+JHt0aGlzLnByaWNlLnRleHR9PC9zcGFuPmAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAke3RoaXMucHJpY2UucHJpY2UgPyBodG1sYDxzcGFuPiR7dGhpcy5wcmljZS5wcmljZX08L3NwYW4+YCA6IG5vdGhpbmd9XG4gICAgICAgICAgICA8L3NiYi1jYXJkLWJhZGdlPmBcbiAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItdGltZXRhYmxlX19yb3dcIiByb2xlPVwicm93XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi10aW1ldGFibGVfX3Jvdy1oZWFkZXJcIiByb2xlPVwiZ3JpZGNlbGxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItdGltZXRhYmxlX19yb3ctZGV0YWlsc1wiPlxuICAgICAgICAgICAgICAke3Byb2R1Y3Q/LmNvcnBvcmF0ZUlkZW50aXR5UGljdG9ncmFtICYmXG4gICAgICAgICAgICAgIGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItdGltZXRhYmxlX19yb3ctdHJhbnNwb3J0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRpbWV0YWJsZV9fcm93LXRyYW5zcG9ydC1pY29uXCJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJwaWN0bzoke3Byb2R1Y3QuY29ycG9yYXRlSWRlbnRpdHlQaWN0b2dyYW19XCJcbiAgICAgICAgICAgICAgICA+PC9zYmItaWNvbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICR7cHJvZHVjdCAmJlxuICAgICAgICAgICAgICAgICAgcHJvZHVjdC52ZWhpY2xlTW9kZSAmJlxuICAgICAgICAgICAgICAgICAgaTE4bk1lYW5zT2ZUcmFuc3BvcnRbcHJvZHVjdC52ZWhpY2xlTW9kZS50b0xvd2VyQ2FzZSgpXSAmJlxuICAgICAgICAgICAgICAgICAgaTE4bk1lYW5zT2ZUcmFuc3BvcnRbcHJvZHVjdC52ZWhpY2xlTW9kZS50b0xvd2VyQ2FzZSgpXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX1cbiAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zcGFuPmB9XG4gICAgICAgICAgICAgICR7cHJvZHVjdCAmJlxuICAgICAgICAgICAgICAocHJvZHVjdC5jb3Jwb3JhdGVJZGVudGl0eUljb25cbiAgICAgICAgICAgICAgICA/IHJlbmRlckljb25Qcm9kdWN0KHByb2R1Y3QuY29ycG9yYXRlSWRlbnRpdHlJY29uLCBwcm9kdWN0Lm5hbWUpXG4gICAgICAgICAgICAgICAgOiBwcm9kdWN0LnZlaGljbGVTdWJNb2RlU2hvcnROYW1lICYmXG4gICAgICAgICAgICAgICAgICByZW5kZXJTdHJpbmdQcm9kdWN0KHByb2R1Y3QudmVoaWNsZVN1Yk1vZGVTaG9ydE5hbWUsIHByb2R1Y3Q/LmxpbmUpKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgJHtkaXJlY3Rpb25cbiAgICAgICAgICAgICAgPyBodG1sYDxwPiR7YCR7aTE4bkRpcmVjdGlvblt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0gJHtkaXJlY3Rpb259YH08L3A+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNiYi1wZWFybC1jaGFpbi10aW1lXG4gICAgICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxuICAgICAgICAgICAgLmxlZ3M9JHtsZWdzfVxuICAgICAgICAgICAgLmRlcGFydHVyZVRpbWU9JHtkZXBhcnR1cmU/LnRpbWV9XG4gICAgICAgICAgICAuYXJyaXZhbFRpbWU9JHthcnJpdmFsPy50aW1lfVxuICAgICAgICAgICAgLmRlcGFydHVyZVdhbGs9JHtkZXBhcnR1cmVXYWxrfVxuICAgICAgICAgICAgLmFycml2YWxXYWxrPSR7YXJyaXZhbFdhbGt9XG4gICAgICAgICAgICA/ZGlzYWJsZS1hbmltYXRpb249JHt0aGlzLmRpc2FibGVBbmltYXRpb259XG4gICAgICAgICAgICAubm93PSR7dGhpcy5ub3d9XG4gICAgICAgICAgPjwvc2JiLXBlYXJsLWNoYWluLXRpbWU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi10aW1ldGFibGVfX3Jvdy1mb290ZXJcIiByb2xlPVwiZ3JpZGNlbGxcIj5cbiAgICAgICAgICAgICR7cHJvZHVjdCAmJiBkZXBhcnR1cmU/LnF1YXlGb3JtYXR0ZWRcbiAgICAgICAgICAgICAgPyBodG1sYDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz0ke2RlcGFydHVyZT8ucXVheUNoYW5nZWQgPyBgc2JiLXRpbWV0YWJsZV9fcm93LXF1YXktLWNoYW5nZWRgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgJHtgJHtpMThuRGVwYXJ0dXJlW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke1xuICAgICAgICAgICAgICAgICAgICAgIGRlcGFydHVyZT8ucXVheUNoYW5nZWQgPyBpMThuTmV3W3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdIDogJydcbiAgICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICAgICZuYnNwO1xuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJRdWF5VHlwZSgpfSAke2RlcGFydHVyZT8ucXVheUZvcm1hdHRlZH1cbiAgICAgICAgICAgICAgICA8L3NwYW4+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAkeyhvY2N1cGFuY3k/LmZpcnN0Q2xhc3MgJiYgb2NjdXBhbmN5Py5maXJzdENsYXNzICE9PSAnVU5LTk9XTicpIHx8XG4gICAgICAgICAgICAob2NjdXBhbmN5Py5zZWNvbmRDbGFzcyAmJiBvY2N1cGFuY3kuc2Vjb25kQ2xhc3MgIT09ICdVTktOT1dOJylcbiAgICAgICAgICAgICAgPyBodG1sYDxzYmItdGltZXRhYmxlLW9jY3VwYW5jeVxuICAgICAgICAgICAgICAgICAgLmZpcnN0Q2xhc3NPY2N1cGFuY3k9JHtvY2N1cGFuY3k/LmZpcnN0Q2xhc3M/LnRvTG93ZXJDYXNlKCl9XG4gICAgICAgICAgICAgICAgICAuc2Vjb25kQ2xhc3NPY2N1cGFuY3k9JHtvY2N1cGFuY3k/LnNlY29uZENsYXNzPy50b0xvd2VyQ2FzZSgpfVxuICAgICAgICAgICAgICAgID48L3NiYi10aW1ldGFibGUtb2NjdXBhbmN5PmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgJHsobm90aWNlQXR0cmlidXRlcyAmJiBub3RpY2VBdHRyaWJ1dGVzLmxlbmd0aCkgfHwgdGhpcy5ib2FyZGluZ1xuICAgICAgICAgICAgICA/IGh0bWxgPHVsIGNsYXNzPVwic2JiLXRpbWV0YWJsZV9fcm93LWhpbnRzXCIgcm9sZT1cImxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICR7bm90aWNlQXR0cmlidXRlcz8ubWFwKChub3RpY2UsIGluZGV4KSA9PlxuICAgICAgICAgICAgICAgICAgICBpbmRleCA8IDRcbiAgICAgICAgICAgICAgICAgICAgICA/IGh0bWxgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi10cmF2ZWwtaGludHNfX2l0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9JHsnc2EtJyArIG5vdGljZS5uYW1lPy50b0xvd2VyQ2FzZSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zYmItaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+JHtub3RpY2UudGV4dD8udGVtcGxhdGV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5gXG4gICAgICAgICAgICAgICAgICAgICAgOiBub3RoaW5nLFxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICR7dGhpcy5ib2FyZGluZ1xuICAgICAgICAgICAgICAgICAgICA/IGh0bWxgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYXZlbC1oaW50c19faXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9JHt0aGlzLmJvYXJkaW5nPy5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSR7dGhpcy5ib2FyZGluZz8udGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9zYmItaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2xpPmBcbiAgICAgICAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAgIDwvdWw+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAke2R1cmF0aW9uICYmIGR1cmF0aW9uID4gMFxuICAgICAgICAgICAgICA/IGh0bWxgPHRpbWU+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj5cbiAgICAgICAgICAgICAgICAgICAgJHtgJHtpMThuVHJpcER1cmF0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke2R1cmF0aW9uT2JqIS5sb25nfWB9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4ke2R1cmF0aW9uT2JqIS5zaG9ydH08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90aW1lPmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgJHtoYXNIaW1DdXMgJiYgKGhpbUN1cy5jdXMgfHwgaGltQ3VzLmhpbSlcbiAgICAgICAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXRpbWV0YWJsZV9fcm93LXdhcm5pbmdcIj5cbiAgICAgICAgICAgICAgICAgIDxzYmItaWNvbiBuYW1lPSR7KGhpbUN1cy5jdXMgfHwgaGltQ3VzLmhpbSkhLm5hbWV9Pjwvc2JiLWljb24+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4keyhoaW1DdXMuY3VzIHx8IGhpbUN1cy5oaW0pIS50ZXh0fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zYmItY2FyZD5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdGltZXRhYmxlLXJvdyc6IFNiYlRpbWV0YWJsZVJvd0VsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYiIsIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0RhLE1BQUEsb0JBQW9CLENBQUMsTUFBYyxTQUFpQztBQUN4RSxTQUFBO0FBQUEscUJBQ1ksSUFBSTtBQUFBLDJDQUNrQixJQUFJO0FBQUE7QUFFL0M7QUFFYSxNQUFBLHNCQUFzQixDQUFDLGFBQXFCLFNBQXlDO0FBQzFGLFFBQUEsUUFBUSxDQUFDLEtBQUssS0FBSyxHQUFHLEVBQUUsU0FBUyxXQUFXLElBQUksTUFBTTtBQUNyRCxTQUFBO0FBQUEsTUFDSCxTQUFTLE9BQU8sY0FBYyxRQUFRLE9BQU8sV0FBVztBQUFBO0FBRTlEO0FBRUEsTUFBTSxtQkFBbUIsQ0FBQyxTQUFpRDs7QUFDbEUsVUFBQSw4Q0FBTSxLQUFLLENBQUMsUUFBUTs7QUFBQSxZQUFBQSxPQUFBQyxNQUFBLElBQUksbUJBQUosZ0JBQUFBLElB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
|
|
673
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXRhYmxlLXJvdy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC90aW1ldGFibGUtcm93L3RpbWV0YWJsZS1yb3cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9jb250cm9sbGVycy5qcyc7XG5pbXBvcnQgeyBkZWZhdWx0RGF0ZUFkYXB0ZXIgfSBmcm9tICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB7IHNldE9yUmVtb3ZlQXR0cmlidXRlIH0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9kb20uanMnO1xuaW1wb3J0IHtcbiAgaTE4bkFycml2YWwsXG4gIGkxOG5DbGFzcyxcbiAgaTE4bkRlcGFydHVyZSxcbiAgaTE4bkRpcmVjdGlvbixcbiAgaTE4bkZyb21QbGF0Zm9ybSxcbiAgaTE4bk1lYW5zT2ZUcmFuc3BvcnQsXG4gIGkxOG5OZXcsXG4gIGkxOG5PY2N1cGFuY3ksXG4gIGkxOG5SZWFsVGltZUluZm8sXG4gIGkxOG5TdXBlcnNhdmVyLFxuICBpMThuVHJhbnNmZXJQcm9jZWR1cmVzLFxuICBpMThuVHJhdmVsaGludHMsXG4gIGkxOG5UcmlwRHVyYXRpb24sXG4gIGkxOG5UcmlwUXVheUNoYW5nZSxcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZUxpa2UsIFNiYk9jY3VwYW5jeSB9IGZyb20gJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2NvcmUvaW50ZXJmYWNlcy5qcyc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgdHlwZSB7IENTU1Jlc3VsdEdyb3VwLCBQcm9wZXJ0eVZhbHVlcywgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgaHRtbCwgTGl0RWxlbWVudCwgbm90aGluZyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgZHVyYXRpb25Ub1RpbWUsIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcgfSBmcm9tICcuLi9jb3JlL2RhdGV0aW1lLmpzJztcbmltcG9ydCB0eXBlIHsgSVRyaXBJdGVtLCBOb3RpY2UsIFB0UmlkZUxlZywgUHRTaXR1YXRpb24gfSBmcm9tICcuLi9jb3JlL3RpbWV0YWJsZS5qcyc7XG5pbXBvcnQgeyBnZXREZXBhcnR1cmVBcnJpdmFsVGltZUF0dHJpYnV0ZSwgaXNSaWRlTGVnIH0gZnJvbSAnLi4vY29yZS90aW1ldGFibGUuanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi90aW1ldGFibGUtcm93LnNjc3M/bGl0JmlubGluZSc7XG5cbmltcG9ydCAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY2FyZC5qcyc7XG5pbXBvcnQgJ0BzYmItZXN0YS9seW5lLWVsZW1lbnRzL2ljb24uanMnO1xuaW1wb3J0ICdAc2JiLWVzdGEvbHluZS1lbGVtZW50cy90aW1ldGFibGUtb2NjdXBhbmN5LmpzJztcbmltcG9ydCAnLi4vcGVhcmwtY2hhaW4tdGltZS5qcyc7XG5cbi8qKiBIaW1DdXMgaW50ZXJmYWNlIGZvciBtYXBwZWQgaWNvbiBuYW1lIGFuZCB0ZXh0ICovXG5leHBvcnQgaW50ZXJmYWNlIEhpbUN1cyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGV4dD86IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBCb2FyZGluZyBpY29uIGludGVyZmFjZSBmb3IgbWFwcGVkIGljb24gbmFtZSBhbmQgdGV4dCAqL1xuZXhwb3J0IGludGVyZmFjZSBCb2FyZGluZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlIHtcbiAgcHJpY2U/OiBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmc7XG4gIGlzRGlzY291bnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgcmVuZGVySWNvblByb2R1Y3QgPSAoaWNvbjogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBUZW1wbGF0ZVJlc3VsdCA9PiB7XG4gIHJldHVybiBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXRpbWV0YWJsZV9fcm93LXRyYW5zcG9ydFwiPlxuICAgIDxzYmItaWNvbiBuYW1lPSR7aWNvbn0+PC9zYmItaWNvbj5cbiAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke25hbWV9PC9zcGFuPlxuICA8L3NwYW4+YDtcbn07XG5cbmV4cG9ydCBjb25zdCByZW5kZXJTdHJpbmdQcm9kdWN0ID0gKHZlaGljbGVOYW1lOiBzdHJpbmcsIGxpbmU/OiBzdHJpbmcgfCBudWxsKTogVGVtcGxhdGVSZXN1bHQgPT4ge1xuICBjb25zdCBzcGFjZSA9IFsnTScsICdCJywgJ1QnXS5pbmNsdWRlcyh2ZWhpY2xlTmFtZSkgPyAnICcgOiAnJztcbiAgcmV0dXJuIGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItdGltZXRhYmxlX19yb3ctdHJhbnNwb3J0bnVtYmVyXCI+XG4gICAgJHtsaW5lICE9PSBudWxsID8gdmVoaWNsZU5hbWUgKyBzcGFjZSArIGxpbmUgOiB2ZWhpY2xlTmFtZX1cbiAgPC9zcGFuPmA7XG59O1xuXG5jb25zdCBnZXRSZWFjaGFibGVUZXh0ID0gKGxlZ3M6IFB0UmlkZUxlZ1tdKTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9PiB7XG4gIHJldHVybiBsZWdzPy5maW5kKChsZWcpID0+IGxlZy5zZXJ2aWNlSm91cm5leT8uc2VydmljZUFsdGVyYXRpb24/LnJlYWNoYWJsZVRleHQpPy5zZXJ2aWNlSm91cm5leVxuICAgID8uc2VydmljZUFsdGVyYXRpb24/LnJlYWNoYWJsZVRleHQ7XG59O1xuXG5jb25zdCBnZXREZWxheVRleHQgPSAobGVnczogUHRSaWRlTGVnW10pOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID0+IHtcbiAgcmV0dXJuIGxlZ3M/LmZpbmQoKGxlZykgPT4gbGVnLnNlcnZpY2VKb3VybmV5Py5zZXJ2aWNlQWx0ZXJhdGlvbj8uZGVsYXlUZXh0KT8uc2VydmljZUpvdXJuZXlcbiAgICA/LnNlcnZpY2VBbHRlcmF0aW9uPy5kZWxheVRleHQ7XG59O1xuXG5jb25zdCBnZXRSZWRpcmVjdGVkVGV4dCA9IChsZWdzOiBQdFJpZGVMZWdbXSk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPT4ge1xuICByZXR1cm4gbGVncz8uZmluZCgobGVnKSA9PiAhIWxlZy5zZXJ2aWNlSm91cm5leT8uc2VydmljZUFsdGVyYXRpb24/LnJlZGlyZWN0ZWRUZXh0KVxuICAgID8uc2VydmljZUpvdXJuZXk/LnNlcnZpY2VBbHRlcmF0aW9uPy5yZWRpcmVjdGVkVGV4dDtcbn07XG5cbmNvbnN0IGdldFVucGxhbm5lZFN0b3AgPSAobGVnczogUHRSaWRlTGVnW10pOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID0+IHtcbiAgcmV0dXJuIGxlZ3M/LmZpbmQoKGxlZykgPT4gISFsZWcuc2VydmljZUpvdXJuZXk/LnNlcnZpY2VBbHRlcmF0aW9uPy51bnBsYW5uZWRTdG9wUG9pbnRzVGV4dClcbiAgICA/LnNlcnZpY2VKb3VybmV5Py5zZXJ2aWNlQWx0ZXJhdGlvbj8udW5wbGFubmVkU3RvcFBvaW50c1RleHQ7XG59O1xuXG5leHBvcnQgY29uc3Qgc29ydFNpdHVhdGlvbiA9IChzaXR1YXRpb25zOiBQdFNpdHVhdGlvbltdKTogUHRTaXR1YXRpb25bXSA9PiB7XG4gIGNvbnN0IHByaW9yaXRpZXMgPSB7XG4gICAgRElTVFVSQkFOQ0U6IDAsXG4gICAgSU5GT1JNQVRJT046IDEsXG4gICAgREVMQVk6IDIsXG4gICAgVFJBSU5fUkVQTEFDRU1FTlRfQllfQlVTOiAzLFxuICAgIENPTlNUUlVDVElPTl9TSVRFOiA0LFxuICAgIEVORF9NRVNTQUdFOiA1LFxuICB9O1xuXG4gIHJldHVybiBbLi4uc2l0dWF0aW9uc10/LnNvcnQoXG4gICAgKGE6IFB0U2l0dWF0aW9uLCBiOiBQdFNpdHVhdGlvbikgPT4gcHJpb3JpdGllc1thLmNhdXNlIV0gLSBwcmlvcml0aWVzW2IuY2F1c2UhXSxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIaW1JY29uID0gKHNpdHVhdGlvbjogUHRTaXR1YXRpb24pOiBIaW1DdXMgPT4ge1xuICBzd2l0Y2ggKHNpdHVhdGlvbj8uY2F1c2UpIHtcbiAgICBjYXNlICdESVNUVVJCQU5DRSc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiAnZGlzcnVwdGlvbicsXG4gICAgICAgIHRleHQ6IHNpdHVhdGlvbj8uYnJvYWRjYXN0TWVzc2FnZXM/Lmxlbmd0aCA/IHNpdHVhdGlvbj8uYnJvYWRjYXN0TWVzc2FnZXNbMF0udGl0bGUgOiAnJyxcbiAgICAgIH07XG4gICAgY2FzZSAnSU5GT1JNQVRJT04nOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogJ2luZm8nLFxuICAgICAgICB0ZXh0OiBzaXR1YXRpb24/LmJyb2FkY2FzdE1lc3NhZ2VzLmxlbmd0aCA/IHNpdHVhdGlvbj8uYnJvYWRjYXN0TWVzc2FnZXNbMF0udGl0bGUgOiAnJyxcbiAgICAgIH07XG4gICAgY2FzZSAnREVMQVknOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogJ2RlbGF5JyxcbiAgICAgICAgdGV4dDogc2l0dWF0aW9uPy5icm9hZGNhc3RNZXNzYWdlcy5sZW5ndGggPyBzaXR1YXRpb24/LmJyb2FkY2FzdE1lc3NhZ2VzWzBdLnRpdGxlIDogJycsXG4gICAgICB9O1xuICAgIGNhc2UgJ1RSQUlOX1JFUExBQ0VNRU5UX0JZX0JVUyc6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiAncmVwbGFjZW1lbnRidXMnLFxuICAgICAgICB0ZXh0OiBzaXR1YXRpb24/LmJyb2FkY2FzdE1lc3NhZ2VzLmxlbmd0aCA/IHNpdHVhdGlvbj8uYnJvYWRjYXN0TWVzc2FnZXNbMF0udGl0bGUgOiAnJyxcbiAgICAgIH07XG4gICAgY2FzZSAnQ09OU1RSVUNUSU9OX1NJVEUnOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogJ2NvbnN0cnVjdGlvbicsXG4gICAgICAgIHRleHQ6IHNpdHVhdGlvbj8uYnJvYWRjYXN0TWVzc2FnZXMubGVuZ3RoID8gc2l0dWF0aW9uPy5icm9hZGNhc3RNZXNzYWdlc1swXS50aXRsZSA6ICcnLFxuICAgICAgfTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZTogJ2luZm8nLFxuICAgICAgICB0ZXh0OiBzaXR1YXRpb24/LmJyb2FkY2FzdE1lc3NhZ2VzLmxlbmd0aCA/IHNpdHVhdGlvbj8uYnJvYWRjYXN0TWVzc2FnZXNbMF0udGl0bGUgOiAnJyxcbiAgICAgIH07XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDdXMgPSAodHJpcDogSVRyaXBJdGVtLCBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZyk6IEhpbUN1cyA9PiB7XG4gIGNvbnN0IHsgc3VtbWFyeSwgbGVncyB9ID0gdHJpcCB8fCB7fTtcbiAgY29uc3QgcmlkZUxlZ3MgPSBsZWdzPy5maWx0ZXIoKGxlZykgPT4gaXNSaWRlTGVnKGxlZykpIGFzIFB0UmlkZUxlZ1tdO1xuICBjb25zdCB7IHRyaXBTdGF0dXMgfSA9IHN1bW1hcnkgfHwge307XG5cbiAgaWYgKHRyaXBTdGF0dXM/LmNhbmNlbGxlZCB8fCB0cmlwU3RhdHVzPy5wYXJ0aWFsbHlDYW5jZWxsZWQpXG4gICAgcmV0dXJuIHsgbmFtZTogJ2NhbmNlbGxhdGlvbicsIHRleHQ6IHRyaXBTdGF0dXM/LmNhbmNlbGxlZFRleHQgfTtcbiAgaWYgKGdldFJlYWNoYWJsZVRleHQocmlkZUxlZ3MpKVxuICAgIHJldHVybiB7IG5hbWU6ICdtaXNzZWQtY29ubmVjdGlvbicsIHRleHQ6IGdldFJlYWNoYWJsZVRleHQocmlkZUxlZ3MpIH07XG4gIGlmICh0cmlwU3RhdHVzPy5hbHRlcm5hdGl2ZSkgcmV0dXJuIHsgbmFtZTogJ2FsdGVybmF0aXZlJywgdGV4dDogdHJpcFN0YXR1cy5hbHRlcm5hdGl2ZVRleHQgfTtcbiAgaWYgKGdldFJlZGlyZWN0ZWRUZXh0KHJpZGVMZWdzKSkgcmV0dXJuIHsgbmFtZTogJ3Jlcm91dGUnLCB0ZXh0OiBnZXRSZWRpcmVjdGVkVGV4dChyaWRlTGVncykgfTtcbiAgaWYgKGdldFVucGxhbm5lZFN0b3AocmlkZUxlZ3MpKSByZXR1cm4geyBuYW1lOiAnYWRkLXN0b3AnLCB0ZXh0OiBnZXRVbnBsYW5uZWRTdG9wKHJpZGVMZWdzKSB9O1xuICBpZiAodHJpcFN0YXR1cz8uZGVsYXllZCB8fCB0cmlwU3RhdHVzPy5kZWxheWVkVW5rbm93bilcbiAgICByZXR1cm4geyBuYW1lOiAnZGVsYXknLCB0ZXh0OiBnZXREZWxheVRleHQocmlkZUxlZ3MpIH07XG4gIGlmICh0cmlwU3RhdHVzPy5xdWF5Q2hhbmdlZCkge1xuICAgIGNvbnN0IGRlcGFydHVyZSA9IHJpZGVMZWdzWzBdLmRlcGFydHVyZTtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogJ3BsYXRmb3JtLWNoYW5nZScsXG4gICAgICB0ZXh0OiBkZXBhcnR1cmUucXVheUNoYW5nZWQgPyBkZXBhcnR1cmUucXVheUNoYW5nZWRUZXh0IDogaTE4blRyaXBRdWF5Q2hhbmdlW2N1cnJlbnRMYW5ndWFnZV0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7fSBhcyBIaW1DdXM7XG59O1xuXG5jb25zdCBmaW5kQW5kUmVwbGFjZU5vdGljZSA9IChub3RpY2VzOiBOb3RpY2VbXSk6IE5vdGljZSB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHJlc2VydmF0aW9uTm90aWNlID0gWydSUicsICdSSycsICdSQycsICdSTCcsICdSTScsICdSUycsICdSVScsICdYUCcsICdYUicsICdYVCddO1xuXG4gIHJldHVybiBub3RpY2VzLnJlZHVjZSgoZm91bmROb3RpY2U6IE5vdGljZSB8IHVuZGVmaW5lZCwgbm90aWNlOiBOb3RpY2UpOiBOb3RpY2UgfCB1bmRlZmluZWQgPT4ge1xuICAgIGlmIChmb3VuZE5vdGljZSkgcmV0dXJuIGZvdW5kTm90aWNlO1xuICAgIGlmIChyZXNlcnZhdGlvbk5vdGljZS5pbmNsdWRlcyhub3RpY2UubmFtZSkpIHtcbiAgICAgIHJldHVybiB7IC4uLm5vdGljZSwgbmFtZTogJ1JSJyB9IGFzIE5vdGljZTtcbiAgICB9XG4gIH0sIHVuZGVmaW5lZCk7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyTm90aWNlcyA9IChub3RpY2VzOiBOb3RpY2VbXSk6IE5vdGljZVtdID0+IHtcbiAgY29uc3QgYWxsb3dlZE5hbWVzID0gWydaJywgJ1NCJywgJ1NaJywgJ1ZSJywgJ1RHJ107XG5cbiAgY29uc3QgZmlsdGVyTm90aWNlID0gbm90aWNlcy5maWx0ZXIoKG5vdGljZSwgaW5kZXgpID0+IHtcbiAgICByZXR1cm4gbm90aWNlcy5maW5kSW5kZXgoKG4pID0+IG4ubmFtZSA9PT0gbm90aWNlLm5hbWUpID09PSBpbmRleDtcbiAgfSk7XG5cbiAgcmV0dXJuIGZpbHRlck5vdGljZVxuICAgIC5maWx0ZXIoKG5vdGljZSkgPT4gYWxsb3dlZE5hbWVzLmluY2x1ZGVzKG5vdGljZS5uYW1lKSlcbiAgICAuc29ydCgoYSwgYikgPT4gYWxsb3dlZE5hbWVzLmluZGV4T2YoYS5uYW1lKSAtIGFsbG93ZWROYW1lcy5pbmRleE9mKGIubmFtZSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZU5vdGljZXMgPSAobm90aWNlczogTm90aWNlW10pOiBOb3RpY2VbXSA9PiB7XG4gIGNvbnN0IHJlc2VydmF0aW9uTm90aWNlID0gZmluZEFuZFJlcGxhY2VOb3RpY2Uobm90aWNlcyk7XG4gIGNvbnN0IGZpbHRlcmVkTm90aWNlcyA9IGZpbHRlck5vdGljZXMobm90aWNlcyk7XG5cbiAgaWYgKHJlc2VydmF0aW9uTm90aWNlID09PSB1bmRlZmluZWQpIHJldHVybiBmaWx0ZXJlZE5vdGljZXM7XG4gIGlmICghZmlsdGVyZWROb3RpY2VzLmxlbmd0aCkgcmV0dXJuIFtyZXNlcnZhdGlvbk5vdGljZV07XG5cbiAgaWYgKGZpbHRlcmVkTm90aWNlc1swXS5uYW1lID09PSAnWicgJiYgZmlsdGVyZWROb3RpY2VzWzFdKSB7XG4gICAgcmV0dXJuIFtmaWx0ZXJlZE5vdGljZXNbMF0sIHJlc2VydmF0aW9uTm90aWNlLCBmaWx0ZXJlZE5vdGljZXNbMV1dLmNvbmNhdChcbiAgICAgIGZpbHRlcmVkTm90aWNlcy5zbGljZSgyKSxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIFtyZXNlcnZhdGlvbk5vdGljZSwgLi4uZmlsdGVyZWROb3RpY2VzXTtcbn07XG5cbi8qKlxuICogSXQgZGlzcGxheXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRyaXAsIGFjdGluZyBhcyBhIGNvbnRhaW5lciBmb3IgYWxsIHRoZSBgc2JiLXRpbWV0YWJsZS0qYCBjb21wb25lbnRzLlxuICogKi9cbkBjdXN0b21FbGVtZW50KCdzYmItdGltZXRhYmxlLXJvdycpXG5leHBvcnQgY2xhc3MgU2JiVGltZXRhYmxlUm93RWxlbWVudCBleHRlbmRzIExpdEVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBzdHlsZTtcblxuICAvKiogVGhlIHRyaXAgUHJvcC4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pIHB1YmxpYyB0cmlwITogSVRyaXBJdGVtO1xuXG4gIC8qKiBUaGUgcHJpY2UgUHJvcCwgd2hpY2ggY29uc2lzdHMgb2YgdGhlIGRhdGEgZm9yIHRoZSBiYWRnZS4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogT2JqZWN0IH0pIHB1YmxpYyBwcmljZT86IFByaWNlO1xuXG4gIC8qKiBUaGlzIHdpbGwgYmUgZm9yd2FyZGVkIHRvIHRoZSBzYmItcGVhcmwtY2hhaW4gY29tcG9uZW50IC0gaWYgdHJ1ZSB0aGUgcG9zaXRpb24gd29uJ3QgYmUgYW5pbWF0ZWQuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2Rpc2FibGUtYW5pbWF0aW9uJywgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgZGlzYWJsZUFuaW1hdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgdG8gdGhlIG5vdGljZXMgc2VjdGlvbiAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBPYmplY3QgfSkgcHVibGljIGJvYXJkaW5nPzogQm9hcmRpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2FkaW5nIHN0YXRlIC1cbiAgICogd2hlbiB0aGlzIGlzIHRydWUgaXQgd2lsbCBiZSByZW5kZXIgc2tlbGV0b24gd2l0aCBhbiBpZGxpbmcgYW5pbWF0aW9uXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdsb2FkaW5nLXRyaXAnLCB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBsb2FkaW5nVHJpcCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgRm9vdHBhdGggYXR0cmlidXRlIGZvciByZW5kZXJpbmcgZGlmZmVyZW50IGljb25zXG4gICAqIHRydWU6IHJlbmRlciBhMTF5LWljb25cbiAgICogZmFsc2U6IHJlbmRlciB3YWxrLWljb25cbiAgICogZGVmYXVsdDogcmVuZGVyIHdhbGstaWNvblxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYTExeS1mb290cGF0aCcsIHR5cGU6IEJvb2xlYW4gfSkgcHVibGljIGExMXlGb290cGF0aD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsb2FkaW5nIHN0YXRlIC1cbiAgICogd2hlbiB0aGlzIGlzIHRydWUgaXQgd2lsbCBiZSByZW5kZXIgc2tlbGV0b24gd2l0aCBhbiBpZGxpbmcgYW5pbWF0aW9uXG4gICAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdsb2FkaW5nLXByaWNlJywgdHlwZTogQm9vbGVhbiB9KSBwdWJsaWMgbG9hZGluZ1ByaWNlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEhpZGRlbiBsYWJlbCBmb3IgdGhlIGNhcmQgYWN0aW9uLiBJdCBvdmVycmlkZXMgdGhlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGFjY2Vzc2liaWxpdHkgdGV4dCBmb3IgdGhlIGNvbXBvbmVudC4gVXNlIHRoaXMgcHJvcCB0byBwcm92aWRlIGN1c3RvbSBhY2Nlc3NpYmlsaXR5IGluZm9ybWF0aW9uIGZvciB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnY2FyZC1hY3Rpb24tbGFiZWwnIH0pIHB1YmxpYyBjYXJkQWN0aW9uTGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqIFRoaXMgd2lsbCBiZSBmb3J3YXJkZWQgdG8gdGhlIHNiYi1jYXJkIGNvbXBvbmVudCBhcyBhcmlhLWV4cGFuZGVkLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdhY2Nlc3NpYmlsaXR5LWV4cGFuZGVkJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzaWJpbGl0eUV4cGFuZGVkPzogYm9vbGVhbjtcblxuICAvKiogV2hlbiB0aGlzIHByb3AgaXMgdHJ1ZSB0aGUgc2JiLWNhcmQgd2lsbCBiZSBpbiB0aGUgYWN0aXZlIHN0YXRlLiAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyBhY3RpdmU/OiBib29sZWFuO1xuXG4gIC8qKiBBIGNvbmZpZ3VyZWQgZGF0ZSB3aGljaCBhY3RzIGFzIHRoZSBjdXJyZW50IGRhdGUgaW5zdGVhZCBvZiB0aGUgcmVhbCBjdXJyZW50IGRhdGUuIFJlY29tbWVuZGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgc2V0IG5vdyh2YWx1ZTogU2JiRGF0ZUxpa2UgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9ub3cgPSBkZWZhdWx0RGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKGRlZmF1bHREYXRlQWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSkpO1xuICB9XG4gIHB1YmxpYyBnZXQgbm93KCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl9ub3cgPz8gbmV3IERhdGUoKTtcbiAgfVxuICBwcml2YXRlIF9ub3c6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsb2FkaW5nVHJpcCcpKSB7XG4gICAgICBzZXRPclJlbW92ZUF0dHJpYnV0ZSh0aGlzLCAncm9sZScsICF0aGlzLmxvYWRpbmdUcmlwID8gJ3Jvd2dyb3VwJyA6IG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBUaGUgc2tlbGV0b24gcmVuZGVyIGZ1bmN0aW9uIGZvciB0aGUgbG9hZGluZyBzdGF0ZSAqL1xuICBwcml2YXRlIF9yZW5kZXJTa2VsZXRvbigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c2JiLWNhcmQgc2l6ZT1cImxcIiBjbGFzcz1cInNiYi1sb2FkaW5nXCI+XG4gICAgICAgICR7dGhpcy5sb2FkaW5nUHJpY2VcbiAgICAgICAgICA/IGh0bWxgPHNiYi1jYXJkLWJhZGdlIGNsYXNzPVwic2JiLWxvYWRpbmdfX2JhZGdlXCI+PC9zYmItY2FyZC1iYWRnZT5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWxvYWRpbmdfX3dyYXBwZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLWxvYWRpbmdfX3Jvd1wiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItbG9hZGluZ19fcm93XCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1sb2FkaW5nX19yb3dcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NiYi1jYXJkPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9nZXRRdWF5VHlwZVN0cmluZ3MoKTogeyBsb25nOiBzdHJpbmc7IHNob3J0OiBzdHJpbmcgfSB8IG51bGwge1xuICAgIGlmICghdGhpcy50cmlwLnN1bW1hcnk/LnByb2R1Y3QpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHJpZGVMZWdzID0gdGhpcy50cmlwLmxlZ3M/LmZpbHRlcigobGVnKSA9PiBpc1JpZGVMZWcobGVnKSkgYXMgUHRSaWRlTGVnW107XG4gICAgY29uc3QgaXNTaG9ydCA9IHRoaXMudHJpcC5zdW1tYXJ5LnByb2R1Y3Q/LnZlaGljbGVNb2RlID09PSAnVFJBSU4nO1xuICAgIGNvbnN0IHNob3J0ID0gaXNTaG9ydFxuICAgICAgPyByaWRlTGVnc1swXS5zZXJ2aWNlSm91cm5leS5xdWF5VHlwZVNob3J0TmFtZSB8fCAnJ1xuICAgICAgOiByaWRlTGVnc1swXS5zZXJ2aWNlSm91cm5leS5xdWF5VHlwZU5hbWUgfHwgJyc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbG9uZzogaTE4bkZyb21QbGF0Zm9ybVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XSArICcgJyArIHNob3J0LFxuICAgICAgc2hvcnQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBtYXAgUXVheSAqL1xuICBwcml2YXRlIF9yZW5kZXJRdWF5VHlwZSgpOiBUZW1wbGF0ZVJlc3VsdCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLnRyaXAuc3VtbWFyeT8ucHJvZHVjdCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBxdWF5VHlwZVN0cmluZ3MgPSB0aGlzLl9nZXRRdWF5VHlwZVN0cmluZ3MoKTtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRpbWV0YWJsZV9fcm93LS1xdWF5XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPiR7cXVheVR5cGVTdHJpbmdzPy5sb25nfSZuYnNwOzwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdGltZXRhYmxlX19yb3ctLXF1YXktdHlwZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgPiR7cXVheVR5cGVTdHJpbmdzPy5zaG9ydH08L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9zcGFuPlxuICAgIGA7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVIaW1DdXModHJpcDogSVRyaXBJdGVtKTogeyBjdXM6IEhpbUN1cyB8IG51bGw7IGhpbTogSGltQ3VzIHwgbnVsbCB9IHtcbiAgICBjb25zdCB7IHNpdHVhdGlvbnMgfSA9IHRyaXAgfHwge307XG4gICAgY29uc3Qgc29ydGVkU2l0dWF0aW9ucyA9IHNpdHVhdGlvbnMgJiYgc29ydFNpdHVhdGlvbihzaXR1YXRpb25zKTtcbiAgICBjb25zdCBjdXMgPSBnZXRDdXModHJpcCwgdGhpcy5fbGFuZ3VhZ2UuY3VycmVudCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY3VzOiBPYmplY3Qua2V5cyhjdXMpPy5sZW5ndGggPyBjdXMgOiBudWxsLFxuICAgICAgaGltOiBzaXR1YXRpb25zPy5sZW5ndGggPyBnZXRIaW1JY29uKHNvcnRlZFNpdHVhdGlvbnNbMF0pIDogbnVsbCxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QWNjZXNzaWJpbGl0eVRleHQodHJpcDogSVRyaXBJdGVtKTogc3RyaW5nIHtcbiAgICBjb25zdCB7IHN1bW1hcnksIGxlZ3MsIG5vdGljZXMgfSA9IHRyaXAgfHwge307XG4gICAgY29uc3Qge1xuICAgICAgZGVwYXJ0dXJlV2FsayxcbiAgICAgIGFycml2YWxXYWxrLFxuICAgICAgZGVwYXJ0dXJlLFxuICAgICAgYXJyaXZhbCxcbiAgICAgIHByb2R1Y3QsXG4gICAgICBkaXJlY3Rpb24sXG4gICAgICBvY2N1cGFuY3ksXG4gICAgICBkdXJhdGlvbixcbiAgICB9ID0gc3VtbWFyeSB8fCB7fTtcblxuICAgIGNvbnN0IHsgZGVwYXJ0dXJlVGltZUF0dHJpYnV0ZSwgYXJyaXZhbFRpbWVBdHRyaWJ1dGUgfSA9IGdldERlcGFydHVyZUFycml2YWxUaW1lQXR0cmlidXRlKFxuICAgICAgbGVncyxcbiAgICAgIGRlcGFydHVyZVdhbGsgfHwgMCxcbiAgICAgIGFycml2YWxXYWxrIHx8IDAsXG4gICAgICB0aGlzLl9sYW5ndWFnZS5jdXJyZW50LFxuICAgICAgdGhpcy5hMTF5Rm9vdHBhdGgsXG4gICAgKTtcblxuICAgIGNvbnN0IGRlcGFydHVyZVRpbWU6IERhdGUgfCB1bmRlZmluZWQgPSBkZXBhcnR1cmU/LnRpbWVcbiAgICAgID8gcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhkZXBhcnR1cmUudGltZSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgYXJyaXZhbFRpbWU6IERhdGUgfCB1bmRlZmluZWQgPSBhcnJpdmFsPy50aW1lXG4gICAgICA/IHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcoYXJyaXZhbC50aW1lKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBkZXBhcnR1cmVXYWxrVGV4dCA9IGRlcGFydHVyZVRpbWVBdHRyaWJ1dGVcbiAgICAgID8gYCR7ZGVwYXJ0dXJlVGltZUF0dHJpYnV0ZS50ZXh0fSAke2RlcGFydHVyZVRpbWVBdHRyaWJ1dGUuZHVyYXRpb259LCBgXG4gICAgICA6ICcnO1xuXG4gICAgY29uc3QgYXJyaXZhbFdhbGtUZXh0ID0gYXJyaXZhbFRpbWVBdHRyaWJ1dGVcbiAgICAgID8gYCR7YXJyaXZhbFRpbWVBdHRyaWJ1dGUudGV4dH0gJHthcnJpdmFsVGltZUF0dHJpYnV0ZS5kdXJhdGlvbn0sIGBcbiAgICAgIDogJyc7XG5cbiAgICBjb25zdCBkZXBhcnR1cmVUaW1lVGV4dCA9IGRlcGFydHVyZVRpbWVcbiAgICAgID8gYCR7aTE4bkRlcGFydHVyZVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX06ICR7Zm9ybWF0KGRlcGFydHVyZVRpbWUsICdISDptbScpfSwgYFxuICAgICAgOiAnJztcblxuICAgIGNvbnN0IGdldERlcGFydHVyZVF1YXlUZXh0ID0gKCk6IHN0cmluZyA9PiB7XG4gICAgICBpZiAoIWRlcGFydHVyZT8ucXVheUZvcm1hdHRlZCkge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgICB9XG5cbiAgICAgIC8vIGFkZCBwcmVmaXggXCJuZXdcIiBpZiBxdWF5IHdhcyBjaGFuZ2VkXG4gICAgICBjb25zdCBjaGFuZ2VkUXVheVByZWZpeCA9IGRlcGFydHVyZT8ucXVheUNoYW5nZWQgPyBgJHtpMThuTmV3W3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSBgIDogJyc7XG4gICAgICByZXR1cm4gYCR7Y2hhbmdlZFF1YXlQcmVmaXh9JHtcbiAgICAgICAgdGhpcy5fZ2V0UXVheVR5cGVTdHJpbmdzKCk/LmxvbmdcbiAgICAgIH0gJHtkZXBhcnR1cmU/LnF1YXlGb3JtYXR0ZWR9LCBgO1xuICAgIH07XG5cbiAgICBjb25zdCBtZWFuc09mVHJhbnNwb3J0VGV4dCA9XG4gICAgICBwcm9kdWN0ICYmIHByb2R1Y3QudmVoaWNsZU1vZGVcbiAgICAgICAgPyBpMThuTWVhbnNPZlRyYW5zcG9ydFtwcm9kdWN0LnZlaGljbGVNb2RlLnRvTG93ZXJDYXNlKCldICYmXG4gICAgICAgICAgYCR7aTE4bk1lYW5zT2ZUcmFuc3BvcnRbcHJvZHVjdC52ZWhpY2xlTW9kZS50b0xvd2VyQ2FzZSgpXVt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX0sIGBcbiAgICAgICAgOiAnJztcblxuICAgIGNvbnN0IHZlaGljbGVTdWJNb2RlVGV4dCA9IHByb2R1Y3Q/LnZlaGljbGVTdWJNb2RlU2hvcnROYW1lXG4gICAgICA/IGAke3Byb2R1Y3QudmVoaWNsZVN1Yk1vZGVTaG9ydE5hbWV9ICR7cHJvZHVjdC5saW5lIHx8ICcnfSwgYFxuICAgICAgOiAnJztcblxuICAgIGNvbnN0IGRpcmVjdGlvblRleHQgPSBgJHtpMThuRGlyZWN0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke2RpcmVjdGlvbn0sIGA7XG5cbiAgICBjb25zdCBoaW1DdXMgPSB0aGlzLl9oYW5kbGVIaW1DdXModHJpcCk7XG4gICAgY29uc3QgY3VzVGV4dCA9IGhpbUN1cz8uY3VzPy50ZXh0XG4gICAgICA/IGAke2kxOG5SZWFsVGltZUluZm9bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19OiAke2hpbUN1cz8uY3VzPy50ZXh0fSwgYFxuICAgICAgOiAnJztcbiAgICBjb25zdCBoaW1UZXh0ID0gaGltQ3VzPy5oaW0/LnRleHRcbiAgICAgID8gYCR7aTE4blJlYWxUaW1lSW5mb1t0aGlzLl9sYW5ndWFnZS5jdXJyZW50XX06ICR7aGltQ3VzPy5oaW0/LnRleHR9LCBgXG4gICAgICA6ICcnO1xuXG4gICAgY29uc3QgYm9hcmRpbmdUZXh0ID0gdGhpcy5ib2FyZGluZyA/IGAke3RoaXMuYm9hcmRpbmcudGV4dH0sIGAgOiAnJztcblxuICAgIGNvbnN0IHByaWNlVGV4dCA9IGAke3RoaXMucHJpY2U/LmlzRGlzY291bnQgPyBpMThuU3VwZXJzYXZlclt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XSA6ICcnfSAke1xuICAgICAgdGhpcy5wcmljZT8udGV4dCAmJiB0aGlzLnByaWNlPy5wcmljZVxuICAgICAgICA/ICh0aGlzLnByaWNlPy50ZXh0IHx8ICcnKSArICcgJyArICh0aGlzLnByaWNlPy5wcmljZSB8fCAnJykgKyAnLCAnXG4gICAgICAgIDogJydcbiAgICB9YDtcblxuICAgIGNvbnN0IHRyYW5zZmVyUHJvY2VkdXJlcyA9XG4gICAgICBsZWdzPy5sZW5ndGggPiAxXG4gICAgICAgID8gYCR7bGVncz8ubGVuZ3RoIC0gMX0gJHtpMThuVHJhbnNmZXJQcm9jZWR1cmVzW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSwgYFxuICAgICAgICA6ICcnO1xuXG4gICAgY29uc3QgYXJyaXZhbFRpbWVUZXh0ID0gYXJyaXZhbFRpbWVcbiAgICAgID8gYCR7aTE4bkFycml2YWxbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19OiAke2Zvcm1hdChhcnJpdmFsVGltZSwgJ0hIOm1tJyl9LCBgXG4gICAgICA6ICcnO1xuXG4gICAgbGV0IG9jY3VwYW5jeVRleHQ6IHN0cmluZyA9ICcnO1xuICAgIGlmIChvY2N1cGFuY3kpIHtcbiAgICAgIGlmIChvY2N1cGFuY3kuZmlyc3RDbGFzcyAmJiBvY2N1cGFuY3kuZmlyc3RDbGFzcyAhPT0gJ1VOS05PV04nKSB7XG4gICAgICAgIG9jY3VwYW5jeVRleHQgKz0gYCR7aTE4bkNsYXNzLmZpcnN0W3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke1xuICAgICAgICAgIChcbiAgICAgICAgICAgIGkxOG5PY2N1cGFuY3lbb2NjdXBhbmN5LmZpcnN0Q2xhc3MudG9Mb3dlckNhc2UoKSBhcyBTYmJPY2N1cGFuY3ldIGFzIFJlY29yZDxcbiAgICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICAgID5cbiAgICAgICAgICApPy5bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF1cbiAgICAgICAgfS5gO1xuICAgICAgfVxuICAgICAgaWYgKG9jY3VwYW5jeS5zZWNvbmRDbGFzcyAmJiBvY2N1cGFuY3kuc2Vjb25kQ2xhc3MgIT09ICdVTktOT1dOJykge1xuICAgICAgICBvY2N1cGFuY3lUZXh0ICs9IGAgJHtpMThuQ2xhc3Muc2Vjb25kW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke1xuICAgICAgICAgIChcbiAgICAgICAgICAgIGkxOG5PY2N1cGFuY3lbb2NjdXBhbmN5LnNlY29uZENsYXNzLnRvTG93ZXJDYXNlKCkgYXMgU2JiT2NjdXBhbmN5XSBhcyBSZWNvcmQ8XG4gICAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgICAgc3RyaW5nXG4gICAgICAgICAgICA+XG4gICAgICAgICAgKT8uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdXG4gICAgICAgIH0uYDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVzID1cbiAgICAgIG5vdGljZXMgJiZcbiAgICAgIGhhbmRsZU5vdGljZXMobm90aWNlcykubGVuZ3RoICYmXG4gICAgICBoYW5kbGVOb3RpY2VzKG5vdGljZXMpXG4gICAgICAgID8ubWFwKChub3RpY2UsIGluZGV4KSA9PiBpbmRleCA8IDQgJiYgbm90aWNlLnRleHQ/LnRlbXBsYXRlKVxuICAgICAgICAuam9pbignLCAnKSArICcsICc7XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVzVGV4dCA9IGF0dHJpYnV0ZXNcbiAgICAgID8gYCR7aTE4blRyYXZlbGhpbnRzW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfTogJHthdHRyaWJ1dGVzfWBcbiAgICAgIDogJyc7XG5cbiAgICBjb25zdCBkdXJhdGlvblRleHQgPVxuICAgICAgISFkdXJhdGlvbiAmJiBkdXJhdGlvbiA+IDBcbiAgICAgICAgPyBgJHtpMThuVHJpcER1cmF0aW9uW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfSAke1xuICAgICAgICAgICAgZHVyYXRpb25Ub1RpbWUoZHVyYXRpb24sIHRoaXMuX2xhbmd1YWdlLmN1cnJlbnQpLmxvbmdcbiAgICAgICAgICB9LCBgXG4gICAgICAgIDogJyc7XG5cbiAgICByZXR1cm4gYCR7ZGVwYXJ0dXJlV2Fsa1RleHR9ICR7ZGVwYXJ0dXJlVGltZVRleHR9ICR7Z2V0RGVwYXJ0dXJlUXVheVRleHQoKX0gJHttZWFuc09mVHJhbnNwb3J0VGV4dH0gJHt2ZWhpY2xlU3ViTW9kZVRleHR9ICR7ZGlyZWN0aW9uVGV4dH0gJHtjdXNUZXh0fSAke2JvYXJkaW5nVGV4dH0gJHtwcmljZVRleHR9ICR7XG4gICAgICBjdXNUZXh0ID8gJycgOiBoaW1UZXh0XG4gICAgfSAke2Fycml2YWxUaW1lVGV4dH0gJHthcnJpdmFsV2Fsa1RleHR9ICR7ZHVyYXRpb25UZXh0fSAke3RyYW5zZmVyUHJvY2VkdXJlc30gJHtvY2N1cGFuY3lUZXh0fSAke2F0dHJpYnV0ZXNUZXh0fWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBpZiAodGhpcy5sb2FkaW5nVHJpcCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlbmRlclNrZWxldG9uKCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBsZWdzLCBpZCwgbm90aWNlcywgc3VtbWFyeSB9ID0gdGhpcy50cmlwIHx8IHt9O1xuXG4gICAgY29uc3Qge1xuICAgICAgcHJvZHVjdCxcbiAgICAgIGRpcmVjdGlvbixcbiAgICAgIGRlcGFydHVyZVdhbGssXG4gICAgICBkZXBhcnR1cmUsXG4gICAgICBhcnJpdmFsLFxuICAgICAgYXJyaXZhbFdhbGssXG4gICAgICBvY2N1cGFuY3ksXG4gICAgICBkdXJhdGlvbixcbiAgICB9ID0gc3VtbWFyeSB8fCB7fTtcblxuICAgIGNvbnN0IGhpbUN1cyA9IHRoaXMuX2hhbmRsZUhpbUN1cyh0aGlzLnRyaXApO1xuICAgIGNvbnN0IGhhc0hpbUN1cyA9ICEhaGltQ3VzLmN1cyB8fCAhIWhpbUN1cy5oaW07XG5cbiAgICBjb25zdCBub3RpY2VBdHRyaWJ1dGVzID0gbm90aWNlcyAmJiBoYW5kbGVOb3RpY2VzKG5vdGljZXMpO1xuXG4gICAgY29uc3QgZHVyYXRpb25PYmogPSBkdXJhdGlvbiA/IGR1cmF0aW9uVG9UaW1lKGR1cmF0aW9uLCB0aGlzLl9sYW5ndWFnZS5jdXJyZW50KSA6IG51bGw7XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxzYmItY2FyZCBzaXplPVwibFwiIGlkPSR7aWR9PlxuICAgICAgICA8c2JiLWNhcmQtYnV0dG9uXG4gICAgICAgICAgP2FjdGl2ZT0ke3RoaXMuYWN0aXZlfVxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9JHt0aGlzLmFjY2Vzc2liaWxpdHlFeHBhbmRlZD8udG9TdHJpbmcoKSA/PyBub3RoaW5nfVxuICAgICAgICA+XG4gICAgICAgICAgJHt0aGlzLmNhcmRBY3Rpb25MYWJlbCA/IHRoaXMuY2FyZEFjdGlvbkxhYmVsIDogdGhpcy5fZ2V0QWNjZXNzaWJpbGl0eVRleHQodGhpcy50cmlwKX1cbiAgICAgICAgPC9zYmItY2FyZC1idXR0b24+XG4gICAgICAgICR7dGhpcy5sb2FkaW5nUHJpY2VcbiAgICAgICAgICA/IGh0bWxgPHNiYi1jYXJkLWJhZGdlIGNsYXNzPVwic2JiLWxvYWRpbmdfX2JhZGdlXCI+PC9zYmItY2FyZC1iYWRnZT5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAke3RoaXMucHJpY2UgJiYgIXRoaXMubG9hZGluZ1ByaWNlXG4gICAgICAgICAgPyBodG1sYDxzYmItY2FyZC1iYWRnZSBjb2xvcj0ke3RoaXMucHJpY2UuaXNEaXNjb3VudCA/ICdjaGFyY29hbCcgOiAnd2hpdGUnfT5cbiAgICAgICAgICAgICAgJHt0aGlzLnByaWNlLmlzRGlzY291bnRcbiAgICAgICAgICAgICAgICA/IGh0bWxgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICU8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAgID4ke2kxOG5TdXBlcnNhdmVyW3RoaXMuX2xhbmd1YWdlLmN1cnJlbnRdfTwvc3BhblxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+YFxuICAgICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICAgJHt0aGlzLnByaWNlLnRleHQgPyBodG1sYDxzcGFuPiR7dGhpcy5wcmljZS50ZXh0fTwvc3Bhbj5gIDogbm90aGluZ31cbiAgICAgICAgICAgICAgJHt0aGlzLnByaWNlLnByaWNlID8gaHRtbGA8c3Bhbj4ke3RoaXMucHJpY2UucHJpY2V9PC9zcGFuPmAgOiBub3RoaW5nfVxuICAgICAgICAgICAgPC9zYmItY2FyZC1iYWRnZT5gXG4gICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRpbWV0YWJsZV9fcm93XCIgcm9sZT1cInJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItdGltZXRhYmxlX19yb3ctaGVhZGVyXCIgcm9sZT1cImdyaWRjZWxsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRpbWV0YWJsZV9fcm93LWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgJHtwcm9kdWN0Py5jb3Jwb3JhdGVJZGVudGl0eVBpY3RvZ3JhbSAmJlxuICAgICAgICAgICAgICBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXRpbWV0YWJsZV9fcm93LXRyYW5zcG9ydC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgPHNiYi1pY29uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNiYi10aW1ldGFibGVfX3Jvdy10cmFuc3BvcnQtaWNvblwiXG4gICAgICAgICAgICAgICAgICBuYW1lPVwicGljdG86JHtwcm9kdWN0LmNvcnBvcmF0ZUlkZW50aXR5UGljdG9ncmFtfVwiXG4gICAgICAgICAgICAgICAgPjwvc2JiLWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItc2NyZWVuLXJlYWRlci1vbmx5XCI+XG4gICAgICAgICAgICAgICAgICAke3Byb2R1Y3QgJiZcbiAgICAgICAgICAgICAgICAgIHByb2R1Y3QudmVoaWNsZU1vZGUgJiZcbiAgICAgICAgICAgICAgICAgIGkxOG5NZWFuc09mVHJhbnNwb3J0W3Byb2R1Y3QudmVoaWNsZU1vZGUudG9Mb3dlckNhc2UoKV0gJiZcbiAgICAgICAgICAgICAgICAgIGkxOG5NZWFuc09mVHJhbnNwb3J0W3Byb2R1Y3QudmVoaWNsZU1vZGUudG9Mb3dlckNhc2UoKV1bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19XG4gICAgICAgICAgICAgICAgICAmbmJzcDtcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvc3Bhbj5gfVxuICAgICAgICAgICAgICAke3Byb2R1Y3QgJiZcbiAgICAgICAgICAgICAgKHByb2R1Y3QuY29ycG9yYXRlSWRlbnRpdHlJY29uXG4gICAgICAgICAgICAgICAgPyByZW5kZXJJY29uUHJvZHVjdChwcm9kdWN0LmNvcnBvcmF0ZUlkZW50aXR5SWNvbiwgcHJvZHVjdC5uYW1lKVxuICAgICAgICAgICAgICAgIDogcHJvZHVjdC52ZWhpY2xlU3ViTW9kZVNob3J0TmFtZSAmJlxuICAgICAgICAgICAgICAgICAgcmVuZGVyU3RyaW5nUHJvZHVjdChwcm9kdWN0LnZlaGljbGVTdWJNb2RlU2hvcnROYW1lLCBwcm9kdWN0Py5saW5lKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICR7ZGlyZWN0aW9uXG4gICAgICAgICAgICAgID8gaHRtbGA8cD4ke2Ake2kxOG5EaXJlY3Rpb25bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7ZGlyZWN0aW9ufWB9PC9wPmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzYmItcGVhcmwtY2hhaW4tdGltZVxuICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcbiAgICAgICAgICAgIC5sZWdzPSR7bGVnc31cbiAgICAgICAgICAgIC5kZXBhcnR1cmVUaW1lPSR7ZGVwYXJ0dXJlPy50aW1lfVxuICAgICAgICAgICAgLmFycml2YWxUaW1lPSR7YXJyaXZhbD8udGltZX1cbiAgICAgICAgICAgIC5kZXBhcnR1cmVXYWxrPSR7ZGVwYXJ0dXJlV2Fsa31cbiAgICAgICAgICAgIC5hcnJpdmFsV2Fsaz0ke2Fycml2YWxXYWxrfVxuICAgICAgICAgICAgP2Rpc2FibGUtYW5pbWF0aW9uPSR7dGhpcy5kaXNhYmxlQW5pbWF0aW9ufVxuICAgICAgICAgICAgP2ExMXktZm9vdHBhdGg9JHt0aGlzLmExMXlGb290cGF0aH1cbiAgICAgICAgICAgIC5ub3c9JHt0aGlzLm5vd31cbiAgICAgICAgICA+PC9zYmItcGVhcmwtY2hhaW4tdGltZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXRpbWV0YWJsZV9fcm93LWZvb3RlclwiIHJvbGU9XCJncmlkY2VsbFwiPlxuICAgICAgICAgICAgJHtwcm9kdWN0ICYmIGRlcGFydHVyZT8ucXVheUZvcm1hdHRlZFxuICAgICAgICAgICAgICA/IGh0bWxgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPSR7ZGVwYXJ0dXJlPy5xdWF5Q2hhbmdlZCA/IGBzYmItdGltZXRhYmxlX19yb3ctcXVheS0tY2hhbmdlZGAgOiBub3RoaW5nfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPlxuICAgICAgICAgICAgICAgICAgICAke2Ake2kxOG5EZXBhcnR1cmVbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7XG4gICAgICAgICAgICAgICAgICAgICAgZGVwYXJ0dXJlPy5xdWF5Q2hhbmdlZCA/IGkxOG5OZXdbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF0gOiAnJ1xuICAgICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAke3RoaXMuX3JlbmRlclF1YXlUeXBlKCl9ICR7ZGVwYXJ0dXJlPy5xdWF5Rm9ybWF0dGVkfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICR7KG9jY3VwYW5jeT8uZmlyc3RDbGFzcyAmJiBvY2N1cGFuY3k/LmZpcnN0Q2xhc3MgIT09ICdVTktOT1dOJykgfHxcbiAgICAgICAgICAgIChvY2N1cGFuY3k/LnNlY29uZENsYXNzICYmIG9jY3VwYW5jeS5zZWNvbmRDbGFzcyAhPT0gJ1VOS05PV04nKVxuICAgICAgICAgICAgICA/IGh0bWxgPHNiYi10aW1ldGFibGUtb2NjdXBhbmN5XG4gICAgICAgICAgICAgICAgICAuZmlyc3RDbGFzc09jY3VwYW5jeT0ke29jY3VwYW5jeT8uZmlyc3RDbGFzcz8udG9Mb3dlckNhc2UoKX1cbiAgICAgICAgICAgICAgICAgIC5zZWNvbmRDbGFzc09jY3VwYW5jeT0ke29jY3VwYW5jeT8uc2Vjb25kQ2xhc3M/LnRvTG93ZXJDYXNlKCl9XG4gICAgICAgICAgICAgICAgPjwvc2JiLXRpbWV0YWJsZS1vY2N1cGFuY3k+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAkeyhub3RpY2VBdHRyaWJ1dGVzICYmIG5vdGljZUF0dHJpYnV0ZXMubGVuZ3RoKSB8fCB0aGlzLmJvYXJkaW5nXG4gICAgICAgICAgICAgID8gaHRtbGA8dWwgY2xhc3M9XCJzYmItdGltZXRhYmxlX19yb3ctaGludHNcIiByb2xlPVwibGlzdFwiPlxuICAgICAgICAgICAgICAgICAgJHtub3RpY2VBdHRyaWJ1dGVzPy5tYXAoKG5vdGljZSwgaW5kZXgpID0+XG4gICAgICAgICAgICAgICAgICAgIGluZGV4IDwgNFxuICAgICAgICAgICAgICAgICAgICAgID8gaHRtbGA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzYmItaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2JiLXRyYXZlbC1oaW50c19faXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0keydzYS0nICsgbm90aWNlLm5hbWU/LnRvTG93ZXJDYXNlKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L3NiYi1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1zY3JlZW4tcmVhZGVyLW9ubHlcIj4ke25vdGljZS50ZXh0Py50ZW1wbGF0ZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPmBcbiAgICAgICAgICAgICAgICAgICAgICA6IG5vdGhpbmcsXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgJHt0aGlzLmJvYXJkaW5nXG4gICAgICAgICAgICAgICAgICAgID8gaHRtbGA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2JiLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzYmItdHJhdmVsLWhpbnRzX19pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0ke3RoaXMuYm9hcmRpbmc/Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9JHt0aGlzLmJvYXJkaW5nPy50ZXh0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3NiYi1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbGk+YFxuICAgICAgICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAgICAgPC91bD5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICAgICR7ZHVyYXRpb24gJiYgZHVyYXRpb24gPiAwXG4gICAgICAgICAgICAgID8gaHRtbGA8dGltZT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPlxuICAgICAgICAgICAgICAgICAgICAke2Ake2kxOG5UcmlwRHVyYXRpb25bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7ZHVyYXRpb25PYmohLmxvbmd9YH1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiR7ZHVyYXRpb25PYmohLnNob3J0fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3RpbWU+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAke2hhc0hpbUN1cyAmJiAoaGltQ3VzLmN1cyB8fCBoaW1DdXMuaGltKVxuICAgICAgICAgICAgICA/IGh0bWxgPHNwYW4gY2xhc3M9XCJzYmItdGltZXRhYmxlX19yb3ctd2FybmluZ1wiPlxuICAgICAgICAgICAgICAgICAgPHNiYi1pY29uIG5hbWU9JHsoaGltQ3VzLmN1cyB8fCBoaW1DdXMuaGltKSEubmFtZX0+PC9zYmItaWNvbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPiR7KGhpbUN1cy5jdXMgfHwgaGltQ3VzLmhpbSkhLnRleHR9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5gXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3NiYi1jYXJkPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10aW1ldGFibGUtcm93JzogU2JiVGltZXRhYmxlUm93RWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9iIiwiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXNEYSxNQUFBLG9CQUFvQixDQUFDLE1BQWMsU0FB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
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const millisecondsInWeek = 6048e5;
|
|
2
|
+
const millisecondsInDay = 864e5;
|
|
3
|
+
const millisecondsInMinute = 6e4;
|
|
4
|
+
const millisecondsInHour = 36e5;
|
|
5
|
+
const constructFromSymbol = Symbol.for("constructDateFrom");
|
|
6
|
+
function constructFrom(date, value) {
|
|
7
|
+
if (typeof date === "function") return date(value);
|
|
8
|
+
if (date && typeof date === "object" && constructFromSymbol in date)
|
|
9
|
+
return date[constructFromSymbol](value);
|
|
10
|
+
if (date instanceof Date) return new date.constructor(value);
|
|
11
|
+
return new Date(value);
|
|
12
|
+
}
|
|
13
|
+
function toDate(argument, context) {
|
|
14
|
+
return constructFrom(context || argument, argument);
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
millisecondsInHour as a,
|
|
18
|
+
millisecondsInMinute as b,
|
|
19
|
+
constructFrom as c,
|
|
20
|
+
millisecondsInDay as d,
|
|
21
|
+
millisecondsInWeek as m,
|
|
22
|
+
toDate as t
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9EYXRlLUI2SUJnUFlILmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvY29uc3RhbnRzLmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2NvbnN0cnVjdEZyb20uanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvZGF0ZS1mbnMvdG9EYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBjb25zdGFudHNcbiAqIEBzdW1tYXJ5IFVzZWZ1bCBjb25zdGFudHNcbiAqIEBkZXNjcmlwdGlvblxuICogQ29sbGVjdGlvbiBvZiB1c2VmdWwgZGF0ZSBjb25zdGFudHMuXG4gKlxuICogVGhlIGNvbnN0YW50cyBjb3VsZCBiZSBpbXBvcnRlZCBmcm9tIGBkYXRlLWZucy9jb25zdGFudHNgOlxuICpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBtYXhUaW1lLCBtaW5UaW1lIH0gZnJvbSBcIi4vY29uc3RhbnRzL2RhdGUtZm5zL2NvbnN0YW50c1wiO1xuICpcbiAqIGZ1bmN0aW9uIGlzQWxsb3dlZFRpbWUodGltZSkge1xuICogICByZXR1cm4gdGltZSA8PSBtYXhUaW1lICYmIHRpbWUgPj0gbWluVGltZTtcbiAqIH1cbiAqIGBgYFxuICovXG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBkYXlzSW5XZWVrXG4gKiBAc3VtbWFyeSBEYXlzIGluIDEgd2Vlay5cbiAqL1xuZXhwb3J0IGNvbnN0IGRheXNJbldlZWsgPSA3O1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgZGF5c0luWWVhclxuICogQHN1bW1hcnkgRGF5cyBpbiAxIHllYXIuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBIb3cgbWFueSBkYXlzIGluIGEgeWVhci5cbiAqXG4gKiBPbmUgeWVhcnMgZXF1YWxzIDM2NS4yNDI1IGRheXMgYWNjb3JkaW5nIHRvIHRoZSBmb3JtdWxhOlxuICpcbiAqID4gTGVhcCB5ZWFyIG9jY3VycyBldmVyeSA0IHllYXJzLCBleGNlcHQgZm9yIHllYXJzIHRoYXQgYXJlIGRpdmlzaWJsZSBieSAxMDAgYW5kIG5vdCBkaXZpc2libGUgYnkgNDAwLlxuICogPiAxIG1lYW4geWVhciA9ICgzNjUrMS80LTEvMTAwKzEvNDAwKSBkYXlzID0gMzY1LjI0MjUgZGF5c1xuICovXG5leHBvcnQgY29uc3QgZGF5c0luWWVhciA9IDM2NS4yNDI1O1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWF4VGltZVxuICogQHN1bW1hcnkgTWF4aW11bSBhbGxvd2VkIHRpbWUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGltcG9ydCB7IG1heFRpbWUgfSBmcm9tIFwiLi9jb25zdGFudHMvZGF0ZS1mbnMvY29uc3RhbnRzXCI7XG4gKlxuICogY29uc3QgaXNWYWxpZCA9IDg2NDAwMDAwMDAwMDAwMDEgPD0gbWF4VGltZTtcbiAqIC8vPT4gZmFsc2VcbiAqXG4gKiBuZXcgRGF0ZSg4NjQwMDAwMDAwMDAwMDAxKTtcbiAqIC8vPT4gSW52YWxpZCBEYXRlXG4gKi9cbmV4cG9ydCBjb25zdCBtYXhUaW1lID0gTWF0aC5wb3coMTAsIDgpICogMjQgKiA2MCAqIDYwICogMTAwMDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIG1pblRpbWVcbiAqIEBzdW1tYXJ5IE1pbmltdW0gYWxsb3dlZCB0aW1lLlxuICpcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBtaW5UaW1lIH0gZnJvbSBcIi4vY29uc3RhbnRzL2RhdGUtZm5zL2NvbnN0YW50c1wiO1xuICpcbiAqIGNvbnN0IGlzVmFsaWQgPSAtODY0MDAwMDAwMDAwMDAwMSA+PSBtaW5UaW1lO1xuICogLy89PiBmYWxzZVxuICpcbiAqIG5ldyBEYXRlKC04NjQwMDAwMDAwMDAwMDAxKVxuICogLy89PiBJbnZhbGlkIERhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IG1pblRpbWUgPSAtbWF4VGltZTtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIG1pbGxpc2Vjb25kc0luV2Vla1xuICogQHN1bW1hcnkgTWlsbGlzZWNvbmRzIGluIDEgd2Vlay5cbiAqL1xuZXhwb3J0IGNvbnN0IG1pbGxpc2Vjb25kc0luV2VlayA9IDYwNDgwMDAwMDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIG1pbGxpc2Vjb25kc0luRGF5XG4gKiBAc3VtbWFyeSBNaWxsaXNlY29uZHMgaW4gMSBkYXkuXG4gKi9cbmV4cG9ydCBjb25zdCBtaWxsaXNlY29uZHNJbkRheSA9IDg2NDAwMDAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWlsbGlzZWNvbmRzSW5NaW51dGVcbiAqIEBzdW1tYXJ5IE1pbGxpc2Vjb25kcyBpbiAxIG1pbnV0ZVxuICovXG5leHBvcnQgY29uc3QgbWlsbGlzZWNvbmRzSW5NaW51dGUgPSA2MDAwMDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIG1pbGxpc2Vjb25kc0luSG91clxuICogQHN1bW1hcnkgTWlsbGlzZWNvbmRzIGluIDEgaG91clxuICovXG5leHBvcnQgY29uc3QgbWlsbGlzZWNvbmRzSW5Ib3VyID0gMzYwMDAwMDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIG1pbGxpc2Vjb25kc0luU2Vjb25kXG4gKiBAc3VtbWFyeSBNaWxsaXNlY29uZHMgaW4gMSBzZWNvbmRcbiAqL1xuZXhwb3J0IGNvbnN0IG1pbGxpc2Vjb25kc0luU2Vjb25kID0gMTAwMDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIG1pbnV0ZXNJblllYXJcbiAqIEBzdW1tYXJ5IE1pbnV0ZXMgaW4gMSB5ZWFyLlxuICovXG5leHBvcnQgY29uc3QgbWludXRlc0luWWVhciA9IDUyNTYwMDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIG1pbnV0ZXNJbk1vbnRoXG4gKiBAc3VtbWFyeSBNaW51dGVzIGluIDEgbW9udGguXG4gKi9cbmV4cG9ydCBjb25zdCBtaW51dGVzSW5Nb250aCA9IDQzMjAwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbWludXRlc0luRGF5XG4gKiBAc3VtbWFyeSBNaW51dGVzIGluIDEgZGF5LlxuICovXG5leHBvcnQgY29uc3QgbWludXRlc0luRGF5ID0gMTQ0MDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIG1pbnV0ZXNJbkhvdXJcbiAqIEBzdW1tYXJ5IE1pbnV0ZXMgaW4gMSBob3VyLlxuICovXG5leHBvcnQgY29uc3QgbWludXRlc0luSG91ciA9IDYwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgbW9udGhzSW5RdWFydGVyXG4gKiBAc3VtbWFyeSBNb250aHMgaW4gMSBxdWFydGVyLlxuICovXG5leHBvcnQgY29uc3QgbW9udGhzSW5RdWFydGVyID0gMztcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIG1vbnRoc0luWWVhclxuICogQHN1bW1hcnkgTW9udGhzIGluIDEgeWVhci5cbiAqL1xuZXhwb3J0IGNvbnN0IG1vbnRoc0luWWVhciA9IDEyO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgcXVhcnRlcnNJblllYXJcbiAqIEBzdW1tYXJ5IFF1YXJ0ZXJzIGluIDEgeWVhclxuICovXG5leHBvcnQgY29uc3QgcXVhcnRlcnNJblllYXIgPSA0O1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgc2Vjb25kc0luSG91clxuICogQHN1bW1hcnkgU2Vjb25kcyBpbiAxIGhvdXIuXG4gKi9cbmV4cG9ydCBjb25zdCBzZWNvbmRzSW5Ib3VyID0gMzYwMDtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIHNlY29uZHNJbk1pbnV0ZVxuICogQHN1bW1hcnkgU2Vjb25kcyBpbiAxIG1pbnV0ZS5cbiAqL1xuZXhwb3J0IGNvbnN0IHNlY29uZHNJbk1pbnV0ZSA9IDYwO1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgc2Vjb25kc0luRGF5XG4gKiBAc3VtbWFyeSBTZWNvbmRzIGluIDEgZGF5LlxuICovXG5leHBvcnQgY29uc3Qgc2Vjb25kc0luRGF5ID0gc2Vjb25kc0luSG91ciAqIDI0O1xuXG4vKipcbiAqIEBjb25zdGFudFxuICogQG5hbWUgc2Vjb25kc0luV2Vla1xuICogQHN1bW1hcnkgU2Vjb25kcyBpbiAxIHdlZWsuXG4gKi9cbmV4cG9ydCBjb25zdCBzZWNvbmRzSW5XZWVrID0gc2Vjb25kc0luRGF5ICogNztcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIHNlY29uZHNJblllYXJcbiAqIEBzdW1tYXJ5IFNlY29uZHMgaW4gMSB5ZWFyLlxuICovXG5leHBvcnQgY29uc3Qgc2Vjb25kc0luWWVhciA9IHNlY29uZHNJbkRheSAqIGRheXNJblllYXI7XG5cbi8qKlxuICogQGNvbnN0YW50XG4gKiBAbmFtZSBzZWNvbmRzSW5Nb250aFxuICogQHN1bW1hcnkgU2Vjb25kcyBpbiAxIG1vbnRoXG4gKi9cbmV4cG9ydCBjb25zdCBzZWNvbmRzSW5Nb250aCA9IHNlY29uZHNJblllYXIgLyAxMjtcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIHNlY29uZHNJblF1YXJ0ZXJcbiAqIEBzdW1tYXJ5IFNlY29uZHMgaW4gMSBxdWFydGVyLlxuICovXG5leHBvcnQgY29uc3Qgc2Vjb25kc0luUXVhcnRlciA9IHNlY29uZHNJbk1vbnRoICogMztcblxuLyoqXG4gKiBAY29uc3RhbnRcbiAqIEBuYW1lIGNvbnN0cnVjdEZyb21TeW1ib2xcbiAqIEBzdW1tYXJ5IFN5bWJvbCBlbmFibGluZyBEYXRlIGV4dGVuc2lvbnMgdG8gaW5oZXJpdCBwcm9wZXJ0aWVzIGZyb20gdGhlIHJlZmVyZW5jZSBkYXRlLlxuICpcbiAqIFRoZSBzeW1ib2wgaXMgdXNlZCB0byBlbmFibGUgdGhlIGBjb25zdHJ1Y3RGcm9tYCBmdW5jdGlvbiB0byBjb25zdHJ1Y3QgYSBkYXRlXG4gKiB1c2luZyBhIHJlZmVyZW5jZSBkYXRlIGFuZCBhIHZhbHVlLiBJdCBhbGxvd3MgdG8gdHJhbnNmZXIgZXh0cmEgcHJvcGVydGllc1xuICogZnJvbSB0aGUgcmVmZXJlbmNlIGRhdGUgdG8gdGhlIG5ldyBkYXRlLiBJdCdzIHVzZWZ1bCBmb3IgZXh0ZW5zaW9ucyBsaWtlXG4gKiBbYFRaRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy90eikgdGhhdCBhY2NlcHQgYSB0aW1lIHpvbmUgYXNcbiAqIGEgY29uc3RydWN0b3IgYXJndW1lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBjb25zdHJ1Y3RGcm9tU3ltYm9sID0gU3ltYm9sLmZvcihcImNvbnN0cnVjdERhdGVGcm9tXCIpO1xuIiwiaW1wb3J0IHsgY29uc3RydWN0RnJvbVN5bWJvbCB9IGZyb20gXCIuL2NvbnN0YW50cy5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGNvbnN0cnVjdEZyb21cbiAqIEBjYXRlZ29yeSBHZW5lcmljIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnN0cnVjdHMgYSBkYXRlIHVzaW5nIHRoZSByZWZlcmVuY2UgZGF0ZSBhbmQgdGhlIHZhbHVlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGUgZnVuY3Rpb24gY29uc3RydWN0cyBhIG5ldyBkYXRlIHVzaW5nIHRoZSBjb25zdHJ1Y3RvciBmcm9tIHRoZSByZWZlcmVuY2VcbiAqIGRhdGUgYW5kIHRoZSBnaXZlbiB2YWx1ZS4gSXQgaGVscHMgdG8gYnVpbGQgZ2VuZXJpYyBmdW5jdGlvbnMgdGhhdCBhY2NlcHRcbiAqIGRhdGUgZXh0ZW5zaW9ucy5cbiAqXG4gKiBJdCBkZWZhdWx0cyB0byBgRGF0ZWAgaWYgdGhlIHBhc3NlZCByZWZlcmVuY2UgZGF0ZSBpcyBhIG51bWJlciBvciBhIHN0cmluZy5cbiAqXG4gKiBTdGFydGluZyBmcm9tIHYzLjcuMCwgaXQgYWxsb3dzIHRvIGNvbnN0cnVjdCBhIGRhdGUgdXNpbmcgYFtTeW1ib2wuZm9yKFwiY29uc3RydWN0RGF0ZUZyb21cIildYFxuICogZW5hYmxpbmcgdG8gdHJhbnNmZXIgZXh0cmEgcHJvcGVydGllcyBmcm9tIHRoZSByZWZlcmVuY2UgZGF0ZSB0byB0aGUgbmV3IGRhdGUuXG4gKiBJdCdzIHVzZWZ1bCBmb3IgZXh0ZW5zaW9ucyBsaWtlIFtgVFpEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3R6KVxuICogdGhhdCBhY2NlcHQgYSB0aW1lIHpvbmUgYXMgYSBjb25zdHJ1Y3RvciBhcmd1bWVudC5cbiAqXG4gKiBAdHlwZVBhcmFtIERhdGVUeXBlIC0gVGhlIGBEYXRlYCB0eXBlLCB0aGUgZnVuY3Rpb24gb3BlcmF0ZXMgb24uIEdldHMgaW5mZXJyZWQgZnJvbSBwYXNzZWQgYXJndW1lbnRzLiBBbGxvd3MgdG8gdXNlIGV4dGVuc2lvbnMgbGlrZSBbYFVUQ0RhdGVgXShodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvdXRjKS5cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSByZWZlcmVuY2UgZGF0ZSB0byB0YWtlIGNvbnN0cnVjdG9yIGZyb21cbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjcmVhdGUgdGhlIGRhdGVcbiAqXG4gKiBAcmV0dXJucyBEYXRlIGluaXRpYWxpemVkIHVzaW5nIHRoZSBnaXZlbiBkYXRlIGFuZCB2YWx1ZVxuICpcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBjb25zdHJ1Y3RGcm9tIH0gZnJvbSBcIi4vY29uc3RydWN0RnJvbS9kYXRlLWZuc1wiO1xuICpcbiAqIC8vIEEgZnVuY3Rpb24gdGhhdCBjbG9uZXMgYSBkYXRlIHByZXNlcnZpbmcgdGhlIG9yaWdpbmFsIHR5cGVcbiAqIGZ1bmN0aW9uIGNsb25lRGF0ZTxEYXRlVHlwZSBleHRlbmRzIERhdGU+KGRhdGU6IERhdGVUeXBlKTogRGF0ZVR5cGUge1xuICogICByZXR1cm4gY29uc3RydWN0RnJvbShcbiAqICAgICBkYXRlLCAvLyBVc2UgY29uc3RydWN0b3IgZnJvbSB0aGUgZ2l2ZW4gZGF0ZVxuICogICAgIGRhdGUuZ2V0VGltZSgpIC8vIFVzZSB0aGUgZGF0ZSB2YWx1ZSB0byBjcmVhdGUgYSBuZXcgZGF0ZVxuICogICApO1xuICogfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RydWN0RnJvbShkYXRlLCB2YWx1ZSkge1xuICBpZiAodHlwZW9mIGRhdGUgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIGRhdGUodmFsdWUpO1xuXG4gIGlmIChkYXRlICYmIHR5cGVvZiBkYXRlID09PSBcIm9iamVjdFwiICYmIGNvbnN0cnVjdEZyb21TeW1ib2wgaW4gZGF0ZSlcbiAgICByZXR1cm4gZGF0ZVtjb25zdHJ1Y3RGcm9tU3ltYm9sXSh2YWx1ZSk7XG5cbiAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4gbmV3IGRhdGUuY29uc3RydWN0b3IodmFsdWUpO1xuXG4gIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgY29uc3RydWN0RnJvbTtcbiIsImltcG9ydCB7IGNvbnN0cnVjdEZyb20gfSBmcm9tIFwiLi9jb25zdHJ1Y3RGcm9tLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgdG9EYXRlXG4gKiBAY2F0ZWdvcnkgQ29tbW9uIEhlbHBlcnNcbiAqIEBzdW1tYXJ5IENvbnZlcnQgdGhlIGdpdmVuIGFyZ3VtZW50IHRvIGFuIGluc3RhbmNlIG9mIERhdGUuXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDb252ZXJ0IHRoZSBnaXZlbiBhcmd1bWVudCB0byBhbiBpbnN0YW5jZSBvZiBEYXRlLlxuICpcbiAqIElmIHRoZSBhcmd1bWVudCBpcyBhbiBpbnN0YW5jZSBvZiBEYXRlLCB0aGUgZnVuY3Rpb24gcmV0dXJucyBpdHMgY2xvbmUuXG4gKlxuICogSWYgdGhlIGFyZ3VtZW50IGlzIGEgbnVtYmVyLCBpdCBpcyB0cmVhdGVkIGFzIGEgdGltZXN0YW1wLlxuICpcbiAqIElmIHRoZSBhcmd1bWVudCBpcyBub25lIG9mIHRoZSBhYm92ZSwgdGhlIGZ1bmN0aW9uIHJldHVybnMgSW52YWxpZCBEYXRlLlxuICpcbiAqIFN0YXJ0aW5nIGZyb20gdjMuNy4wLCBpdCBjbG9uZXMgYSBkYXRlIHVzaW5nIGBbU3ltYm9sLmZvcihcImNvbnN0cnVjdERhdGVGcm9tXCIpXWBcbiAqIGVuYWJsaW5nIHRvIHRyYW5zZmVyIGV4dHJhIHByb3BlcnRpZXMgZnJvbSB0aGUgcmVmZXJlbmNlIGRhdGUgdG8gdGhlIG5ldyBkYXRlLlxuICogSXQncyB1c2VmdWwgZm9yIGV4dGVuc2lvbnMgbGlrZSBbYFRaRGF0ZWBdKGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRlLWZucy90eilcbiAqIHRoYXQgYWNjZXB0IGEgdGltZSB6b25lIGFzIGEgY29uc3RydWN0b3IgYXJndW1lbnQuXG4gKlxuICogKipOb3RlKio6ICphbGwqIERhdGUgYXJndW1lbnRzIHBhc3NlZCB0byBhbnkgKmRhdGUtZm5zKiBmdW5jdGlvbiBpcyBwcm9jZXNzZWQgYnkgYHRvRGF0ZWAuXG4gKlxuICogQHR5cGVQYXJhbSBEYXRlVHlwZSAtIFRoZSBgRGF0ZWAgdHlwZSwgdGhlIGZ1bmN0aW9uIG9wZXJhdGVzIG9uLiBHZXRzIGluZmVycmVkIGZyb20gcGFzc2VkIGFyZ3VtZW50cy4gQWxsb3dzIHRvIHVzZSBleHRlbnNpb25zIGxpa2UgW2BVVENEYXRlYF0oaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL3V0YykuXG4gKiBAdHlwZVBhcmFtIFJlc3VsdERhdGUgLSBUaGUgcmVzdWx0IGBEYXRlYCB0eXBlLCBpdCBpcyB0aGUgdHlwZSByZXR1cm5lZCBmcm9tIHRoZSBjb250ZXh0IGZ1bmN0aW9uIGlmIGl0IGlzIHBhc3NlZCwgb3IgaW5mZXJyZWQgZnJvbSB0aGUgYXJndW1lbnRzLlxuICpcbiAqIEBwYXJhbSBhcmd1bWVudCAtIFRoZSB2YWx1ZSB0byBjb252ZXJ0XG4gKlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBkYXRlIGluIHRoZSBsb2NhbCB0aW1lIHpvbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ2xvbmUgdGhlIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSB0b0RhdGUobmV3IERhdGUoMjAxNCwgMSwgMTEsIDExLCAzMCwgMzApKVxuICogLy89PiBUdWUgRmViIDExIDIwMTQgMTE6MzA6MzBcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQ29udmVydCB0aGUgdGltZXN0YW1wIHRvIGRhdGU6XG4gKiBjb25zdCByZXN1bHQgPSB0b0RhdGUoMTM5MjA5ODQzMDAwMClcbiAqIC8vPT4gVHVlIEZlYiAxMSAyMDE0IDExOjMwOjMwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGUoYXJndW1lbnQsIGNvbnRleHQpIHtcbiAgLy8gW1RPRE9dIEdldCByaWQgb2YgYHRvRGF0ZWAgb3IgYGNvbnN0cnVjdEZyb21gP1xuICByZXR1cm4gY29uc3RydWN0RnJvbShjb250ZXh0IHx8IGFyZ3VtZW50LCBhcmd1bWVudCk7XG59XG5cbi8vIEZhbGxiYWNrIGZvciBtb2R1bGFyaXplZCBpbXBvcnRzOlxuZXhwb3J0IGRlZmF1bHQgdG9EYXRlO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRFWSxNQUFDLHFCQUFxQjtBQU90QixNQUFDLG9CQUFvQjtBQU9yQixNQUFDLHVCQUF1QjtBQU94QixNQUFDLHFCQUFxQjtBQXNIM0IsTUFBTSxzQkFBc0IsT0FBTyxJQUFJLG1CQUFtQjtBQ2xMMUQsU0FBUyxjQUFjLE1BQU0sT0FBTztBQUN6QyxNQUFJLE9BQU8sU0FBUyxXQUFZLFFBQU8sS0FBSyxLQUFLO0FBRWpELE1BQUksUUFBUSxPQUFPLFNBQVMsWUFBWSx1QkFBdUI7QUFDN0QsV0FBTyxLQUFLLG1CQUFtQixFQUFFLEtBQUs7QUFFeEMsTUFBSSxnQkFBZ0IsS0FBTSxRQUFPLElBQUksS0FBSyxZQUFZLEtBQUs7QUFFM0QsU0FBTyxJQUFJLEtBQUssS0FBSztBQUN2QjtBQ05PLFNBQVMsT0FBTyxVQUFVLFNBQVM7QUFFeEMsU0FBTyxjQUFjLFdBQVcsVUFBVSxRQUFRO0FBQ3BEOyIsInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswLDEsMl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { t as u, b as d } from "./toDate-DQg4ZFnf.js";
|
|
2
|
+
function f(n, r, e) {
|
|
3
|
+
const t = u(n, e == null ? void 0 : e.in);
|
|
4
|
+
return t.setTime(t.getTime() + r * d), t;
|
|
5
|
+
}
|
|
6
|
+
function c(n) {
|
|
7
|
+
return (r) => {
|
|
8
|
+
const t = (n ? Math[n] : Math.trunc)(r);
|
|
9
|
+
return t === 0 ? 0 : t;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function i(n, r) {
|
|
13
|
+
return +u(n) - +u(r);
|
|
14
|
+
}
|
|
15
|
+
function s(n, r, e) {
|
|
16
|
+
const t = i(n, r) / d;
|
|
17
|
+
return c(e == null ? void 0 : e.roundingMethod)(t);
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
f as a,
|
|
21
|
+
s as d,
|
|
22
|
+
c as g
|
|
23
|
+
};
|