@sbb-esta/lyne-elements-experimental-dev 5.0.0-next-dev.1777273013 → 5.0.0-next-dev.1777275996

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/custom-elements.json +200 -200
  2. package/development/pearl-chain/pearl-chain.component.d.ts.map +1 -1
  3. package/development/pearl-chain/pearl-chain.component.js +1 -1
  4. package/development/{pearl-chain.component-Dl2RvtJo.js → pearl-chain.component-CngXp3rK.js} +2 -2
  5. package/development/pearl-chain.js +1 -1
  6. package/development/pearl-chain.pure.js +1 -1
  7. package/development/seat-reservation/common/translations/i18n.d.ts.map +1 -1
  8. package/development/seat-reservation/common/translations/i18n.js +1 -1
  9. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.d.ts.map +1 -1
  10. package/development/seat-reservation/seat-reservation/seat-reservation-base-element.js +1 -1
  11. package/development/seat-reservation/seat-reservation/seat-reservation.component.d.ts.map +1 -1
  12. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.d.ts.map +1 -1
  13. package/development/seat-reservation/seat-reservation-place-control/seat-reservation-place-control.component.js +1 -1
  14. package/development/{seat-reservation-place-control.component-QF_px_in.js → seat-reservation-place-control.component-BQ7fOSHM.js} +2 -2
  15. package/development/seat-reservation.component-wkvc3Frp.js +1 -1
  16. package/development/seat-reservation.js +1 -1
  17. package/development/seat-reservation.pure.js +1 -1
  18. package/development/timetable-row/timetable-row.component.d.ts.map +1 -1
  19. package/development/timetable-row/timetable-row.component.js +1 -1
  20. package/development/{timetable-row.component-Binmks-o.js → timetable-row.component-B884Zj89.js} +2 -2
  21. package/development/timetable-row.js +1 -1
  22. package/development/timetable-row.pure.js +1 -1
  23. package/package.json +2 -2
@@ -2897,6 +2897,206 @@
2897
2897
  "declarations": [],
2898
2898
  "exports": []
2899
2899
  },
2900
+ {
2901
+ "kind": "javascript-module",
2902
+ "path": "seat-reservation/seat-reservation-area/seat-reservation-area.component.js",
2903
+ "declarations": [
2904
+ {
2905
+ "kind": "class",
2906
+ "description": "Visualize an area with a special meaning within a wagon.",
2907
+ "name": "SbbSeatReservationAreaElement",
2908
+ "members": [
2909
+ {
2910
+ "kind": "field",
2911
+ "name": "elementName",
2912
+ "type": {
2913
+ "text": "string"
2914
+ },
2915
+ "privacy": "public",
2916
+ "static": true,
2917
+ "readonly": true,
2918
+ "default": "'sbb-seat-reservation-area'"
2919
+ },
2920
+ {
2921
+ "kind": "field",
2922
+ "name": "mounting",
2923
+ "type": {
2924
+ "text": "'free' | 'upper-border' | 'lower-border' | 'upper-to-lower-border'"
2925
+ },
2926
+ "privacy": "public",
2927
+ "default": "'free'",
2928
+ "description": "Mounting Prop",
2929
+ "attribute": "mounting",
2930
+ "reflects": true
2931
+ },
2932
+ {
2933
+ "kind": "field",
2934
+ "name": "background",
2935
+ "type": {
2936
+ "text": "'light' | 'dark'"
2937
+ },
2938
+ "privacy": "public",
2939
+ "default": "'light'",
2940
+ "description": "the background of the area",
2941
+ "attribute": "background",
2942
+ "reflects": true
2943
+ }
2944
+ ],
2945
+ "attributes": [
2946
+ {
2947
+ "name": "mounting",
2948
+ "type": {
2949
+ "text": "'free' | 'upper-border' | 'lower-border' | 'upper-to-lower-border'"
2950
+ },
2951
+ "default": "'free'",
2952
+ "description": "Mounting Prop",
2953
+ "fieldName": "mounting"
2954
+ },
2955
+ {
2956
+ "name": "background",
2957
+ "type": {
2958
+ "text": "'light' | 'dark'"
2959
+ },
2960
+ "default": "'light'",
2961
+ "description": "the background of the area",
2962
+ "fieldName": "background"
2963
+ }
2964
+ ],
2965
+ "superclass": {
2966
+ "name": "SbbElement",
2967
+ "package": "@sbb-esta/lyne-elements/core.js"
2968
+ },
2969
+ "tagName": "sbb-seat-reservation-area",
2970
+ "customElement": true
2971
+ }
2972
+ ],
2973
+ "exports": [
2974
+ {
2975
+ "kind": "js",
2976
+ "name": "SbbSeatReservationAreaElement",
2977
+ "declaration": {
2978
+ "name": "SbbSeatReservationAreaElement",
2979
+ "module": "seat-reservation/seat-reservation-area/seat-reservation-area.component.js"
2980
+ }
2981
+ }
2982
+ ]
2983
+ },
2984
+ {
2985
+ "kind": "javascript-module",
2986
+ "path": "seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js",
2987
+ "declarations": [
2988
+ {
2989
+ "kind": "class",
2990
+ "description": "Output one of the SVG graphics based on its code.",
2991
+ "name": "SbbSeatReservationGraphicElement",
2992
+ "members": [
2993
+ {
2994
+ "kind": "field",
2995
+ "name": "elementName",
2996
+ "type": {
2997
+ "text": "string"
2998
+ },
2999
+ "privacy": "public",
3000
+ "static": true,
3001
+ "readonly": true,
3002
+ "default": "'sbb-seat-reservation-graphic'"
3003
+ },
3004
+ {
3005
+ "kind": "field",
3006
+ "name": "elementDependencies",
3007
+ "type": {
3008
+ "text": "SbbElementType[]"
3009
+ },
3010
+ "privacy": "public",
3011
+ "static": true,
3012
+ "default": "[SbbIconElement]"
3013
+ },
3014
+ {
3015
+ "kind": "field",
3016
+ "name": "name",
3017
+ "type": {
3018
+ "text": "string"
3019
+ },
3020
+ "privacy": "public",
3021
+ "default": "''",
3022
+ "description": "Name of the SVG graphic to be displayed.",
3023
+ "attribute": "name"
3024
+ },
3025
+ {
3026
+ "kind": "field",
3027
+ "name": "stretch",
3028
+ "type": {
3029
+ "text": "boolean"
3030
+ },
3031
+ "privacy": "public",
3032
+ "default": "false",
3033
+ "description": "if true, scale the graphic content of the given element non-uniformly if necessary",
3034
+ "attribute": "stretch"
3035
+ },
3036
+ {
3037
+ "kind": "field",
3038
+ "name": "_language",
3039
+ "privacy": "private",
3040
+ "default": "new SbbLanguageController(this)"
3041
+ },
3042
+ {
3043
+ "kind": "method",
3044
+ "name": "_getSvgElement",
3045
+ "privacy": "private",
3046
+ "return": {
3047
+ "type": {
3048
+ "text": "Element | null"
3049
+ }
3050
+ },
3051
+ "parameters": [
3052
+ {
3053
+ "name": "svg",
3054
+ "type": {
3055
+ "text": "string"
3056
+ }
3057
+ }
3058
+ ]
3059
+ }
3060
+ ],
3061
+ "attributes": [
3062
+ {
3063
+ "name": "name",
3064
+ "type": {
3065
+ "text": "string"
3066
+ },
3067
+ "default": "''",
3068
+ "description": "Name of the SVG graphic to be displayed.",
3069
+ "fieldName": "name"
3070
+ },
3071
+ {
3072
+ "name": "stretch",
3073
+ "type": {
3074
+ "text": "boolean"
3075
+ },
3076
+ "default": "false",
3077
+ "description": "if true, scale the graphic content of the given element non-uniformly if necessary",
3078
+ "fieldName": "stretch"
3079
+ }
3080
+ ],
3081
+ "superclass": {
3082
+ "name": "SbbElement",
3083
+ "package": "@sbb-esta/lyne-elements/core.js"
3084
+ },
3085
+ "tagName": "sbb-seat-reservation-graphic",
3086
+ "customElement": true
3087
+ }
3088
+ ],
3089
+ "exports": [
3090
+ {
3091
+ "kind": "js",
3092
+ "name": "SbbSeatReservationGraphicElement",
3093
+ "declaration": {
3094
+ "name": "SbbSeatReservationGraphicElement",
3095
+ "module": "seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js"
3096
+ }
3097
+ }
3098
+ ]
3099
+ },
2900
3100
  {
2901
3101
  "kind": "javascript-module",
2902
3102
  "path": "seat-reservation/seat-reservation/seat-reservation-base-element.js",
@@ -7076,206 +7276,6 @@
7076
7276
  }
7077
7277
  ]
7078
7278
  },
7079
- {
7080
- "kind": "javascript-module",
7081
- "path": "seat-reservation/seat-reservation-area/seat-reservation-area.component.js",
7082
- "declarations": [
7083
- {
7084
- "kind": "class",
7085
- "description": "Visualize an area with a special meaning within a wagon.",
7086
- "name": "SbbSeatReservationAreaElement",
7087
- "members": [
7088
- {
7089
- "kind": "field",
7090
- "name": "elementName",
7091
- "type": {
7092
- "text": "string"
7093
- },
7094
- "privacy": "public",
7095
- "static": true,
7096
- "readonly": true,
7097
- "default": "'sbb-seat-reservation-area'"
7098
- },
7099
- {
7100
- "kind": "field",
7101
- "name": "mounting",
7102
- "type": {
7103
- "text": "'free' | 'upper-border' | 'lower-border' | 'upper-to-lower-border'"
7104
- },
7105
- "privacy": "public",
7106
- "default": "'free'",
7107
- "description": "Mounting Prop",
7108
- "attribute": "mounting",
7109
- "reflects": true
7110
- },
7111
- {
7112
- "kind": "field",
7113
- "name": "background",
7114
- "type": {
7115
- "text": "'light' | 'dark'"
7116
- },
7117
- "privacy": "public",
7118
- "default": "'light'",
7119
- "description": "the background of the area",
7120
- "attribute": "background",
7121
- "reflects": true
7122
- }
7123
- ],
7124
- "attributes": [
7125
- {
7126
- "name": "mounting",
7127
- "type": {
7128
- "text": "'free' | 'upper-border' | 'lower-border' | 'upper-to-lower-border'"
7129
- },
7130
- "default": "'free'",
7131
- "description": "Mounting Prop",
7132
- "fieldName": "mounting"
7133
- },
7134
- {
7135
- "name": "background",
7136
- "type": {
7137
- "text": "'light' | 'dark'"
7138
- },
7139
- "default": "'light'",
7140
- "description": "the background of the area",
7141
- "fieldName": "background"
7142
- }
7143
- ],
7144
- "superclass": {
7145
- "name": "SbbElement",
7146
- "package": "@sbb-esta/lyne-elements/core.js"
7147
- },
7148
- "tagName": "sbb-seat-reservation-area",
7149
- "customElement": true
7150
- }
7151
- ],
7152
- "exports": [
7153
- {
7154
- "kind": "js",
7155
- "name": "SbbSeatReservationAreaElement",
7156
- "declaration": {
7157
- "name": "SbbSeatReservationAreaElement",
7158
- "module": "seat-reservation/seat-reservation-area/seat-reservation-area.component.js"
7159
- }
7160
- }
7161
- ]
7162
- },
7163
- {
7164
- "kind": "javascript-module",
7165
- "path": "seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js",
7166
- "declarations": [
7167
- {
7168
- "kind": "class",
7169
- "description": "Output one of the SVG graphics based on its code.",
7170
- "name": "SbbSeatReservationGraphicElement",
7171
- "members": [
7172
- {
7173
- "kind": "field",
7174
- "name": "elementName",
7175
- "type": {
7176
- "text": "string"
7177
- },
7178
- "privacy": "public",
7179
- "static": true,
7180
- "readonly": true,
7181
- "default": "'sbb-seat-reservation-graphic'"
7182
- },
7183
- {
7184
- "kind": "field",
7185
- "name": "elementDependencies",
7186
- "type": {
7187
- "text": "SbbElementType[]"
7188
- },
7189
- "privacy": "public",
7190
- "static": true,
7191
- "default": "[SbbIconElement]"
7192
- },
7193
- {
7194
- "kind": "field",
7195
- "name": "name",
7196
- "type": {
7197
- "text": "string"
7198
- },
7199
- "privacy": "public",
7200
- "default": "''",
7201
- "description": "Name of the SVG graphic to be displayed.",
7202
- "attribute": "name"
7203
- },
7204
- {
7205
- "kind": "field",
7206
- "name": "stretch",
7207
- "type": {
7208
- "text": "boolean"
7209
- },
7210
- "privacy": "public",
7211
- "default": "false",
7212
- "description": "if true, scale the graphic content of the given element non-uniformly if necessary",
7213
- "attribute": "stretch"
7214
- },
7215
- {
7216
- "kind": "field",
7217
- "name": "_language",
7218
- "privacy": "private",
7219
- "default": "new SbbLanguageController(this)"
7220
- },
7221
- {
7222
- "kind": "method",
7223
- "name": "_getSvgElement",
7224
- "privacy": "private",
7225
- "return": {
7226
- "type": {
7227
- "text": "Element | null"
7228
- }
7229
- },
7230
- "parameters": [
7231
- {
7232
- "name": "svg",
7233
- "type": {
7234
- "text": "string"
7235
- }
7236
- }
7237
- ]
7238
- }
7239
- ],
7240
- "attributes": [
7241
- {
7242
- "name": "name",
7243
- "type": {
7244
- "text": "string"
7245
- },
7246
- "default": "''",
7247
- "description": "Name of the SVG graphic to be displayed.",
7248
- "fieldName": "name"
7249
- },
7250
- {
7251
- "name": "stretch",
7252
- "type": {
7253
- "text": "boolean"
7254
- },
7255
- "default": "false",
7256
- "description": "if true, scale the graphic content of the given element non-uniformly if necessary",
7257
- "fieldName": "stretch"
7258
- }
7259
- ],
7260
- "superclass": {
7261
- "name": "SbbElement",
7262
- "package": "@sbb-esta/lyne-elements/core.js"
7263
- },
7264
- "tagName": "sbb-seat-reservation-graphic",
7265
- "customElement": true
7266
- }
7267
- ],
7268
- "exports": [
7269
- {
7270
- "kind": "js",
7271
- "name": "SbbSeatReservationGraphicElement",
7272
- "declaration": {
7273
- "name": "SbbSeatReservationGraphicElement",
7274
- "module": "seat-reservation/seat-reservation-graphic/seat-reservation-graphic.component.js"
7275
- }
7276
- }
7277
- ]
7278
- },
7279
7279
  {
7280
7280
  "kind": "javascript-module",
7281
7281
  "path": "seat-reservation/seat-reservation-navigation-coach/seat-reservation-navigation-coach.component.js",
@@ -1 +1 @@
1
- {"version":3,"file":"pearl-chain.component.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/pearl-chain/pearl-chain.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,UAAU,EACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,cAAc,EAAiB,KAAK,cAAc,EAAa,MAAM,KAAK,CAAC;AAIzF,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAWjD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;IAClD,gBAAgC,WAAW,EAAE,MAAM,CAAqB;IACxE,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF;;;;;;;OAOG;IACH,SAA2C,IAAI,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,CAAM;IAE1E;;;OAGG;IACH,SAEgB,gBAAgB,EAAE,OAAO,CAAS;IAElD;;;OAGG;IACH,IACW,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,EAEhC;IACD,IAAW,GAAG,IAAI,IAAI,GAAG,IAAI,CAE5B;IACD,OAAO,CAAC,IAAI,CAAqB;IAEjC,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,eAAe;cAmBJ,MAAM,IAAI,cAAc;CA+I5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,iBAAiB,EAAE,oBAAoB,CAAC;KACzC;CACF"}
1
+ {"version":3,"file":"pearl-chain.component.d.ts","sourceRoot":"","sources":["../../../../src/elements-experimental/pearl-chain/pearl-chain.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,UAAU,EACX,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,cAAc,EAAiB,KAAK,cAAc,EAAa,MAAM,KAAK,CAAC;AAIzF,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAWjD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;IAClD,gBAAgC,WAAW,EAAE,MAAM,CAAqB;IACxE,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF;;;;;;;OAOG;IACH,SAA2C,IAAI,EAAE,CAAC,GAAG,GAAG,SAAS,CAAC,EAAE,CAAM;IAE1E;;;OAGG;IACH,SAEgB,gBAAgB,EAAE,OAAO,CAAS;IAElD;;;OAGG;IACH,IACW,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,EAEhC;IACD,IAAW,GAAG,IAAI,IAAI,GAAG,IAAI,CAE5B;IACD,OAAO,CAAC,IAAI,CAAqB;IAEjC,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,eAAe;cAqBJ,MAAM,IAAI,cAAc;CA+I5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,iBAAiB,EAAE,oBAAoB,CAAC;KACzC;CACF"}
@@ -1,2 +1,2 @@
1
- import { t as SbbPearlChainElement } from "../pearl-chain.component-Dl2RvtJo.js";
1
+ import { t as SbbPearlChainElement } from "../pearl-chain.component-CngXp3rK.js";
2
2
  export { SbbPearlChainElement };
@@ -212,7 +212,7 @@ var SbbPearlChainElement = (() => {
212
212
  }
213
213
  _renderPosition(now, start, end) {
214
214
  const currentPosition = this._getProgress(now, start, end);
215
- if (currentPosition < 0 && currentPosition > 100) return void 0;
215
+ if (currentPosition < 0 && currentPosition > 100) return;
216
216
  const statusStyle = () => {
217
217
  return {
218
218
  "--sbb-pearl-chain-status-position": `${currentPosition}%`,
@@ -309,4 +309,4 @@ var SbbPearlChainElement = (() => {
309
309
  //#endregion
310
310
  export { SbbPearlChainElement as t };
311
311
 
312
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVhcmwtY2hhaW4uY29tcG9uZW50LURsMlJ2dEpvLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0FmdGVyLmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2lzQmVmb3JlLmpzIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9wZWFybC1jaGFpbi9wZWFybC1jaGFpbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvcGVhcmwtY2hhaW4vcGVhcmwtY2hhaW4uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGlzQWZ0ZXJcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGZpcnN0IGRhdGUgYWZ0ZXIgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZmlyc3QgZGF0ZSBhZnRlciB0aGUgc2Vjb25kIG9uZT9cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRoYXQgc2hvdWxkIGJlIGFmdGVyIHRoZSBvdGhlciBvbmUgdG8gcmV0dXJuIHRydWVcbiAqIEBwYXJhbSBkYXRlVG9Db21wYXJlIC0gVGhlIGRhdGUgdG8gY29tcGFyZSB3aXRoXG4gKlxuICogQHJldHVybnMgVGhlIGZpcnN0IGRhdGUgaXMgYWZ0ZXIgdGhlIHNlY29uZCBkYXRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElzIDEwIEp1bHkgMTk4OSBhZnRlciAxMSBGZWJydWFyeSAxOTg3P1xuICogY29uc3QgcmVzdWx0ID0gaXNBZnRlcihuZXcgRGF0ZSgxOTg5LCA2LCAxMCksIG5ldyBEYXRlKDE5ODcsIDEsIDExKSlcbiAqIC8vPT4gdHJ1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBZnRlcihkYXRlLCBkYXRlVG9Db21wYXJlKSB7XG4gIHJldHVybiArdG9EYXRlKGRhdGUpID4gK3RvRGF0ZShkYXRlVG9Db21wYXJlKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc0FmdGVyO1xuIiwiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgaXNCZWZvcmVcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGZpcnN0IGRhdGUgYmVmb3JlIHRoZSBzZWNvbmQgb25lP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGZpcnN0IGRhdGUgYmVmb3JlIHRoZSBzZWNvbmQgb25lP1xuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdGhhdCBzaG91bGQgYmUgYmVmb3JlIHRoZSBvdGhlciBvbmUgdG8gcmV0dXJuIHRydWVcbiAqIEBwYXJhbSBkYXRlVG9Db21wYXJlIC0gVGhlIGRhdGUgdG8gY29tcGFyZSB3aXRoXG4gKlxuICogQHJldHVybnMgVGhlIGZpcnN0IGRhdGUgaXMgYmVmb3JlIHRoZSBzZWNvbmQgZGF0ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJcyAxMCBKdWx5IDE5ODkgYmVmb3JlIDExIEZlYnJ1YXJ5IDE5ODc/XG4gKiBjb25zdCByZXN1bHQgPSBpc0JlZm9yZShuZXcgRGF0ZSgxOTg5LCA2LCAxMCksIG5ldyBEYXRlKDE5ODcsIDEsIDExKSlcbiAqIC8vPT4gZmFsc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmVmb3JlKGRhdGUsIGRhdGVUb0NvbXBhcmUpIHtcbiAgcmV0dXJuICt0b0RhdGUoZGF0ZSkgPCArdG9EYXRlKGRhdGVUb0NvbXBhcmUpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzQmVmb3JlO1xuIiwiQHVzZSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuQG1peGluIHNiYi1wZWFybC1jaGFpbi1kb3R0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBjdXJyZW50Y29sb3IgMCUsIGN1cnJlbnRjb2xvciA1MCUsIENhbnZhcyA1MCUpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGJhY2tncm91bmQtc2l6ZTogY2FsYygyICogdmFyKC0tc2JiLXBlYXJsLWNoYWluLXNwYWNpbmctc21hbGwpKSB2YXIoLS1zYmItcGVhcmwtY2hhaW4taGVpZ2h0KTtcbiAgaW5zZXQtaW5saW5lLWVuZDogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWhlaWdodCk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGJhY2tncm91bmQ6IHVuc2V0O1xuICAgIGJvcmRlci1ibG9jay1zdGFydDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEpfSBkYXNoZWQgSGlnaGxpZ2h0O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgje3NiYi5weC10by1yZW0tYnVpbGQoMSl9KTtcbiAgfVxufVxuXG46aG9zdCB7XG4gIC0tc2JiLXBlYXJsLWNoYWluLWhlaWdodDogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0yeCk7XG4gIC0tc2JiLXBlYXJsLWNoYWluLXNwYWNpbmctc21hbGw6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgyKX07XG4gIC0tc2JiLXBlYXJsLWNoYWluLWNvbG9yOiB2YXIoLS1zYmItcGVhcmwtY2hhaW4tYnVsbGV0LWNvbG9yKTtcbiAgLS1zYmItcGVhcmwtY2hhaW4tY29sb3ItZGlzcnVwdGlvbjogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWJ1bGxldC1jb2xvci1kaXNydXB0aW9uKTtcbiAgLS1zYmItcGVhcmwtY2hhaW4tY29sb3ItcGFzdDogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWJ1bGxldC1jb2xvci1wYXN0KTtcbiAgLS1zYmItcGVhcmwtY2hhaW4tbGVnLXdpZHRoOiAxMDAlO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIEBpbmNsdWRlIHNiYi5wZWFybC1jaGFpbi1idWxsZXQtdmFyaWFibGVzO1xufVxuXG4uc2JiLXBlYXJsLWNoYWluIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBjb2xvcjogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWNvbG9yKTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYmxvY2s6IGNhbGMoXG4gICAgKHZhcigtLXNiYi1wZWFybC1jaGFpbi1idWxsZXQtc2l6ZS1zdGFydC1lbmQpIC0gdmFyKC0tc2JiLXBlYXJsLWNoYWluLWhlaWdodCkpIC8gMlxuICApO1xuICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXNiYi1wZWFybC1jaGFpbi1idWxsZXQtc2l6ZS1zdGFydC1lbmQpO1xufVxuXG4vLyBmaXJzdCBhbmQgbGFzdCBidWxsZXRcbi5zYmItcGVhcmwtY2hhaW5fX2J1bGxldCB7XG4gIEBpbmNsdWRlIHNiYi5wZWFybC1jaGFpbi1idWxsZXQtc3RhcnQtZW5kO1xuICBAaW5jbHVkZSBzYmIucGVhcmwtY2hhaW4tYnVsbGV0O1xuXG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRjb2xvcjtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IDA7XG4gIHotaW5kZXg6IDM7XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2J1bGxldDpmaXJzdC1vZi10eXBlIHtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xufVxuXG4uc2JiLXBlYXJsLWNoYWluX19idWxsZXQ6bGFzdC1vZi10eXBlIHtcbiAgaW5zZXQtaW5saW5lLWVuZDogMDtcbn1cblxuLnNiYi1wZWFybC1jaGFpbl9fbGVnIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtZ3JvdzogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1wZWFybC1jaGFpbi1oZWlnaHQpO1xuICBib3JkZXItaW5saW5lLWVuZDogdmFyKC0tc2JiLXBlYXJsLWNoYWluLXNwYWNpbmctc21hbGwpIHNvbGlkIENhbnZhcztcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudGNvbG9yO1xuICB3aWR0aDogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWxlZy13aWR0aCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IENhbnZhc1RleHQ7XG5cbiAgICAuc2JiLXBlYXJsLWNoYWluLS1wYXN0ICYge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogR3JheVRleHQ7XG4gICAgfVxuICB9XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2xlZzpsYXN0LW9mLXR5cGUge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi8vIGRvdCBvbiBsZWdcbi5zYmItcGVhcmwtY2hhaW5fX3N0b3Age1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG5cbiAgQGluY2x1ZGUgc2JiLnBlYXJsLWNoYWluLWJ1bGxldDtcbiAgQGluY2x1ZGUgc2JiLnBlYXJsLWNoYWluLWJ1bGxldC1zdG9wO1xufVxuXG4uc2JiLXBlYXJsLWNoYWluX19idWxsZXQtLWZ1dHVyZSB7XG4gIEBpbmNsdWRlIHNiYi5wZWFybC1jaGFpbi1idWxsZXQ7XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2xlZy0tcGFzdCxcbi5zYmItcGVhcmwtY2hhaW4tLXBhc3QsXG4uc2JiLXBlYXJsLWNoYWluX19sZWctLXBhc3Q6OmFmdGVyLFxuLnNiYi1wZWFybC1jaGFpbl9fbGVnLS1wcm9ncmVzczo6YWZ0ZXIsXG4uc2JiLXBlYXJsLWNoYWluX19sZWctLXByb2dyZXNzIC5zYmItcGVhcmwtY2hhaW5fX3N0b3AsXG4uc2JiLXBlYXJsLWNoYWluLS1wcm9ncmVzcyxcbi5zYmItcGVhcmwtY2hhaW5fX2J1bGxldC0tcGFzdCB7XG4gIGNvbG9yOiB2YXIoLS1zYmItcGVhcmwtY2hhaW4tY29sb3ItcGFzdCk7XG5cbiAgQGluY2x1ZGUgc2JiLnBlYXJsLWNoYWluLWJ1bGxldC1wYXN0O1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBHcmF5VGV4dCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2J1bGxldC0tcHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zYmItcGVhcmwtY2hhaW4tYnVsbGV0LWNvbG9yKTtcblxuICBAaW5jbHVkZSBzYmIucGVhcmwtY2hhaW4tYnVsbGV0LXBhc3Q7XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2J1bGxldC0tZGVwYXJ0dXJlLWRpc3J1cHRpb24sXG4uc2JiLXBlYXJsLWNoYWluLS1hcnJpdmFsLWRpc3J1cHRpb24sXG4uc2JiLXBlYXJsLWNoYWluLS1kZXBhcnR1cmUtZGlzcnVwdGlvbixcbi5zYmItcGVhcmwtY2hhaW5fX2xlZy0tZGlzcnVwdGlvbiB7XG4gIGNvbG9yOiB2YXIoLS1zYmItcGVhcmwtY2hhaW4tY29sb3ItZGlzcnVwdGlvbik7XG5cbiAgQGluY2x1ZGUgc2JiLnBlYXJsLWNoYWluLWJ1bGxldC1kaXNydXB0aW9uO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICBjb2xvcjogSGlnaGxpZ2h0O1xuICAgIGJhY2tncm91bmQ6IEhpZ2hsaWdodDtcbiAgfVxufVxuXG4uc2JiLXBlYXJsLWNoYWluX19sZWctLWRpc3J1cHRpb24gLnNiYi1wZWFybC1jaGFpbl9fc3RvcCB7XG4gIEBpbmNsdWRlIHNiYi5wZWFybC1jaGFpbi1idWxsZXQtZGlzcnVwdGlvbjtcbn1cblxuLnNiYi1wZWFybC1jaGFpbl9fbGVnLS1wYXN0IC5zYmItcGVhcmwtY2hhaW5fX3N0b3Age1xuICBAaW5jbHVkZSBzYmIucGVhcmwtY2hhaW4tYnVsbGV0LXBhc3Q7XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2xlZy0tZGlzcnVwdGlvbjo6YWZ0ZXIge1xuICBAaW5jbHVkZSBzYmItcGVhcmwtY2hhaW4tZG90dGVkO1xufVxuXG4uc2JiLXBlYXJsLWNoYWluX19sZWctLXNraXBwZWQge1xuICBjb2xvcjogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWNvbG9yLWRpc3J1cHRpb24pO1xuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBzYmItcGVhcmwtY2hhaW4tZG90dGVkO1xuICB9XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX3N0b3AtLWRlcGFydHVyZS1za2lwcGVkIHtcbiAgQGluY2x1ZGUgc2JiLnBlYXJsLWNoYWluLWJ1bGxldC1zdG9wO1xuICBAaW5jbHVkZSBzYmIucGVhcmwtY2hhaW4tYnVsbGV0LXNraXBwZWQ7XG59XG5cbi5zYmItcGVhcmwtY2hhaW4tLWFycml2YWwtc2tpcHBlZCxcbi5zYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1za2lwcGVkIHtcbiAgQGluY2x1ZGUgc2JiLnBlYXJsLWNoYWluLWJ1bGxldC1zdGFydC1lbmQ7XG4gIEBpbmNsdWRlIHNiYi5wZWFybC1jaGFpbi1idWxsZXQtc2tpcHBlZDtcbn1cblxuLy8gbGluZSBvbiBsZWdcbi5zYmItcGVhcmwtY2hhaW5fX2xlZzo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldC1ibG9jazogMDtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Y29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1wZWFybC1jaGFpbi1oZWlnaHQpO1xuICB6LWluZGV4OiAxO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBDYW52YXNUZXh0O1xuXG4gICAgLnNiYi1wZWFybC1jaGFpbi0tcGFzdCAmIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEdyYXlUZXh0O1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLXBlYXJsLWNoYWluX19sZWc6bGFzdC1vZi10eXBlOjphZnRlciB7XG4gIGluc2V0LWlubGluZS1lbmQ6IGNhbGMoLTEgKiB2YXIoLS1zYmItcGVhcmwtY2hhaW4taGVpZ2h0KSk7XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2xlZy0tcHJvZ3Jlc3M6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWNvbG9yLXBhc3QpO1xuXG4gIC8vIC0tc2JiLXBlYXJsLWNoYWluLWxlZy1zdGF0dXM6IGRlZmluZWQgaW4gLnRzIGZpbGVcbiAgd2lkdGg6IHZhcigtLXNiYi1wZWFybC1jaGFpbi1sZWctc3RhdHVzKTtcbn1cblxuLnNiYi1wZWFybC1jaGFpbl9fcG9zaXRpb24ge1xuICBAaW5jbHVkZSBzYmIucGVhcmwtY2hhaW4tYnVsbGV0LXBvc2l0aW9uO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IC0yMDAlO1xuICB6LWluZGV4OiA0O1xuXG4gIC8vIC0tc2JiLXBlYXJsLWNoYWluLXN0YXR1cy1wb3NpdGlvbjogZGVmaW5lZCBpbiAudHMgZmlsZVxuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1wZWFybC1jaGFpbi1zdGF0dXMtcG9zaXRpb24pO1xufVxuXG4uc2JiLXBlYXJsLWNoYWluX19wb3NpdGlvbi0tbm8tYW5pbWF0aW9uIHtcbiAgYW5pbWF0aW9uOiB1bnNldDtcbn1cblxuLnNiYi1zY3JlZW4tcmVhZGVyLW9ubHkge1xuICBAaW5jbHVkZSBzYmIuc2NyZWVuLXJlYWRlci1vbmx5O1xufVxuIiwiaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBkZWZhdWx0RGF0ZUFkYXB0ZXIsXG4gIGZvcmNlVHlwZSxcbiAgU2JiRWxlbWVudCxcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS5qcyc7XG5pbXBvcnQgeyBhZGRNaW51dGVzLCBkaWZmZXJlbmNlSW5NaW51dGVzLCBpc0FmdGVyLCBpc0JlZm9yZSB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHN0eWxlTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvc3R5bGUtbWFwLmpzJztcblxuaW1wb3J0IHR5cGUgeyBMZWcsIFB0UmlkZUxlZyB9IGZyb20gJy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgaXNSaWRlTGVnLCByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nIH0gZnJvbSAnLi4vY29yZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3BlYXJsLWNoYWluLnNjc3M/aW5saW5lJztcblxudHlwZSBTdGF0dXMgPSAncHJvZ3Jlc3MnIHwgJ2Z1dHVyZScgfCAncGFzdCc7XG5pbnRlcmZhY2UgVGltZSB7XG4gIHRpbWU/OiBEYXRlO1xuICBkZWxheTogbnVtYmVyO1xufVxuXG4vKipcbiAqIEl0IHZpc3VhbGx5IGRpc3BsYXlzIGpvdXJuZXkgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJQZWFybENoYWluRWxlbWVudCBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXBlYXJsLWNoYWluJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgbGVncyBvZiB0aGUgcGVhcmwtY2hhaW4uXG4gICAqIEZvcm1hdDpcbiAgICogYHtcImxlZ3NcIjogW3tcImR1cmF0aW9uXCI6IDI1fSwgLi4uXX1gXG4gICAqIGBkdXJhdGlvbmAgaW4gbWludXRlcy4gRHVyYXRpb24gb2YgdGhlIGxlZyBpcyByZWxhdGl2ZVxuICAgKiB0byB0aGUgdG90YWwgdHJhdmVsIHRpbWUuIEV4YW1wbGU6IGRlcGFydHVyZSAxNjozMCwgY2hhbmdlIGF0IDE2OjQwLFxuICAgKiBhcnJpdmFsIGF0IDE3OjAwLiBTbyB0aGUgY2hhbmdlIHNob3VsZCBoYXZlIGEgZHVyYXRpb24gb2YgMzMuMzMlLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSkgcHVibGljIGFjY2Vzc29yIGxlZ3M6IChMZWcgfCBQdFJpZGVMZWcpW10gPSBbXTtcblxuICAvKipcbiAgICogUGVyIGRlZmF1bHQsIHRoZSBjdXJyZW50IGxvY2F0aW9uIGhhcyBhIHB1bHNhdGluZyBhbmltYXRpb24uIFlvdSBjYW5cbiAgICogZGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdpdGggdGhpcyBwcm9wZXJ0eS5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXNhYmxlLWFuaW1hdGlvbicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVBbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBjb25maWd1cmVkIGRhdGUgd2hpY2ggYWN0cyBhcyB0aGUgY3VycmVudCBkYXRlIGluc3RlYWQgb2YgdGhlIHJlYWwgY3VycmVudCBkYXRlLlxuICAgKiBPbmx5IHJlY29tbWVuZGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBub3codmFsdWU6IERhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5fbm93ID0gZGVmYXVsdERhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbChkZWZhdWx0RGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5vdygpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX25vdztcbiAgfVxuICBwcml2YXRlIF9ub3c6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9nZXRBbGxEdXJhdGlvbihsZWdzOiBQdFJpZGVMZWdbXSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGxlZ3M/LnJlZHVjZSgoc3VtOiBudW1iZXIsIGxlZykgPT4ge1xuICAgICAgY29uc3QgYXJyaXZhbE5vVHogPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5hcnJpdmFsPy50aW1lKTtcbiAgICAgIGNvbnN0IGRlcGFydHVyZU5vVHogPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5kZXBhcnR1cmU/LnRpbWUpO1xuICAgICAgaWYgKGFycml2YWxOb1R6ICYmIGRlcGFydHVyZU5vVHopIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBzdW0gK1xuICAgICAgICAgIGRpZmZlcmVuY2VJbk1pbnV0ZXMoXG4gICAgICAgICAgICByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5hcnJpdmFsLnRpbWUpISxcbiAgICAgICAgICAgIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZS50aW1lKSEsXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN1bTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQWxsQ2FuY2VsbGVkKGxlZ3M6IFB0UmlkZUxlZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGxlZ3M/LmV2ZXJ5KChsZWcpID0+IGxlZz8uc2VydmljZUpvdXJuZXk/LnNlcnZpY2VBbHRlcmF0aW9uPy5jYW5jZWxsZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVsYXRpdmVEdXJhdGlvbihsZWdzOiBQdFJpZGVMZWdbXSwgbGVnOiBQdFJpZGVMZWcpOiBudW1iZXIge1xuICAgIGNvbnN0IGFycml2YWxOb1R6ID0gcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuYXJyaXZhbD8udGltZSk7XG4gICAgY29uc3QgZGVwYXJ0dXJlTm9UeiA9IHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZT8udGltZSk7XG4gICAgaWYgKGFycml2YWxOb1R6ICYmIGRlcGFydHVyZU5vVHopIHtcbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gZGlmZmVyZW5jZUluTWludXRlcyhcbiAgICAgICAgcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuYXJyaXZhbC50aW1lKSEsXG4gICAgICAgIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZS50aW1lKSEsXG4gICAgICApO1xuICAgICAgY29uc3QgYWxsRHVyYXRpb25zID0gdGhpcy5fZ2V0QWxsRHVyYXRpb24obGVncyk7XG5cbiAgICAgIGlmIChhbGxEdXJhdGlvbnMgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDEwMDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChkdXJhdGlvbiAvIGFsbER1cmF0aW9ucykgKiAxMDA7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UHJvZ3Jlc3Mobm93OiBEYXRlLCBzdGFydD86IFRpbWUsIGVuZD86IFRpbWUpOiBudW1iZXIge1xuICAgIGlmICghc3RhcnQ/LnRpbWUgfHwgIWVuZD8udGltZSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRXaXRoRGVsYXkgPSBhZGRNaW51dGVzKHN0YXJ0LnRpbWUsIHN0YXJ0LmRlbGF5ID8/IDApO1xuICAgIGNvbnN0IGVuZFdpdGhEZWxheSA9IGFkZE1pbnV0ZXMoZW5kLnRpbWUsIGVuZC5kZWxheSA/PyAwKTtcbiAgICBjb25zdCB0b3RhbCA9IGRpZmZlcmVuY2VJbk1pbnV0ZXMoZW5kV2l0aERlbGF5LCBzdGFydFdpdGhEZWxheSk7XG4gICAgY29uc3QgcHJvZ3Jlc3MgPSBkaWZmZXJlbmNlSW5NaW51dGVzKG5vdywgc3RhcnRXaXRoRGVsYXkpO1xuXG4gICAgcmV0dXJuIHRvdGFsICYmIChwcm9ncmVzcyAvIHRvdGFsKSAqIDEwMDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFN0YXR1cyhub3c6IERhdGUsIHN0YXJ0PzogVGltZSwgZW5kPzogVGltZSk6IFN0YXR1cyB7XG4gICAgY29uc3Qgc3RhcnRXaXRoRGVsYXkgPSBzdGFydCAmJiBzdGFydC50aW1lICYmIGFkZE1pbnV0ZXMoc3RhcnQudGltZSwgc3RhcnQuZGVsYXkgPz8gMCk7XG4gICAgY29uc3QgZW5kV2l0aERlbGF5ID0gZW5kICYmIGVuZC50aW1lICYmIGFkZE1pbnV0ZXMoZW5kLnRpbWUsIGVuZC5kZWxheSA/PyAwKTtcblxuICAgIGlmIChcbiAgICAgIHN0YXJ0V2l0aERlbGF5ICYmXG4gICAgICBpc0JlZm9yZShzdGFydFdpdGhEZWxheSwgbm93KSAmJlxuICAgICAgZW5kV2l0aERlbGF5ICYmXG4gICAgICBpc0FmdGVyKGVuZFdpdGhEZWxheSwgbm93KVxuICAgICkge1xuICAgICAgcmV0dXJuICdwcm9ncmVzcyc7XG4gICAgfSBlbHNlIGlmIChlbmRXaXRoRGVsYXkgJiYgaXNCZWZvcmUoZW5kV2l0aERlbGF5LCBub3cpKSB7XG4gICAgICByZXR1cm4gJ3Bhc3QnO1xuICAgIH1cbiAgICByZXR1cm4gJ2Z1dHVyZSc7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJQb3NpdGlvbihub3c6IERhdGUsIHN0YXJ0PzogVGltZSwgZW5kPzogVGltZSk6IFRlbXBsYXRlUmVzdWx0IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjdXJyZW50UG9zaXRpb24gPSB0aGlzLl9nZXRQcm9ncmVzcyhub3csIHN0YXJ0LCBlbmQpO1xuICAgIGlmIChjdXJyZW50UG9zaXRpb24gPCAwICYmIGN1cnJlbnRQb3NpdGlvbiA+IDEwMCkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHN0YXR1c1N0eWxlID0gKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJy0tc2JiLXBlYXJsLWNoYWluLXN0YXR1cy1wb3NpdGlvbic6IGAke2N1cnJlbnRQb3NpdGlvbn0lYCxcbiAgICAgICAgLi4uKGN1cnJlbnRQb3NpdGlvbiA+PSA1MCA/IHsgdHJhbnNmb3JtOiBgdHJhbnNsYXRlWCgtMTAwJSlgIH0gOiB7fSksXG4gICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBhbmltYXRpb24gPSB0aGlzLmRpc2FibGVBbmltYXRpb24gPyAnc2JiLXBlYXJsLWNoYWluX19wb3NpdGlvbi0tbm8tYW5pbWF0aW9uJyA6ICcnO1xuXG4gICAgcmV0dXJuIGh0bWxgPHNwYW5cbiAgICAgIHN0eWxlPSR7c3R5bGVNYXAoc3RhdHVzU3R5bGUoKSl9XG4gICAgICBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fcG9zaXRpb24gJHthbmltYXRpb259XCJcbiAgICA+PC9zcGFuPmA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICBjb25zdCBub3cgPSB0aGlzLm5vdyA/PyBuZXcgRGF0ZSgpO1xuXG4gICAgY29uc3QgcmlkZUxlZ3M6IFB0UmlkZUxlZ1tdID0gdGhpcy5sZWdzPy5maWx0ZXIoKGxlZykgPT4gaXNSaWRlTGVnKGxlZykpIGFzIFB0UmlkZUxlZ1tdO1xuXG4gICAgY29uc3QgZGVwYXJ0dXJlVGltZSA9XG4gICAgICByaWRlTGVncz8ubGVuZ3RoICYmIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcocmlkZUxlZ3NbMF0/LmRlcGFydHVyZT8udGltZSk7XG4gICAgY29uc3QgZGVwYXJ0dXJlV2l0aERlbGF5ID0gZGVwYXJ0dXJlVGltZSAmJiB7XG4gICAgICB0aW1lOiBkZXBhcnR1cmVUaW1lLFxuICAgICAgZGVsYXk6IHJpZGVMZWdzWzBdLmRlcGFydHVyZS5kZWxheSA/PyAwLFxuICAgIH07XG5cbiAgICBjb25zdCBhcnJpdmFsVGltZSA9XG4gICAgICByaWRlTGVncz8ubGVuZ3RoICYmXG4gICAgICByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKHJpZGVMZWdzW3JpZGVMZWdzLmxlbmd0aCAtIDFdLmFycml2YWw/LnRpbWUpO1xuICAgIGNvbnN0IGFycml2YWxUaW1lRGVsYXkgPSBhcnJpdmFsVGltZSAmJiB7XG4gICAgICB0aW1lOiBhcnJpdmFsVGltZSxcbiAgICAgIGRlbGF5OiByaWRlTGVnc1tyaWRlTGVncy5sZW5ndGggLSAxXT8uYXJyaXZhbC5kZWxheSA/PyAwLFxuICAgIH07XG5cbiAgICBjb25zdCBkZXBhcnR1cmVOb3RTZXJ2aWNlZCA9ICgoKTogc3RyaW5nID0+IHtcbiAgICAgIHJldHVybiByaWRlTGVncyAmJlxuICAgICAgICByaWRlTGVnc1swXT8uc2VydmljZUpvdXJuZXk/LnN0b3BQb2ludHMgJiZcbiAgICAgICAgcmlkZUxlZ3NbMF0/LnNlcnZpY2VKb3VybmV5Py5zdG9wUG9pbnRzWzBdLnN0b3BTdGF0dXMgPT09ICdOT1RfU0VSVklDRUQnXG4gICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbi0tZGVwYXJ0dXJlLXNraXBwZWQnXG4gICAgICAgIDogJyc7XG4gICAgfSkoKTtcblxuICAgIGNvbnN0IGFycml2YWxOb3RTZXJ2aWNlZCA9ICgoKTogc3RyaW5nID0+IHtcbiAgICAgIGNvbnN0IGxhc3RMZWcgPSByaWRlTGVncyAmJiByaWRlTGVnc1tyaWRlTGVncy5sZW5ndGggLSAxXTtcbiAgICAgIGNvbnN0IHN0b3BzID0gbGFzdExlZyAmJiBsYXN0TGVnLnNlcnZpY2VKb3VybmV5Py5zdG9wUG9pbnRzO1xuXG4gICAgICByZXR1cm4gc3RvcHMgJiYgc3RvcHNbc3RvcHMubGVuZ3RoIC0gMV0uc3RvcFN0YXR1cyA9PT0gJ05PVF9TRVJWSUNFRCdcbiAgICAgICAgPyAnc2JiLXBlYXJsLWNoYWluLS1hcnJpdmFsLXNraXBwZWQnXG4gICAgICAgIDogJyc7XG4gICAgfSkoKTtcblxuICAgIGNvbnN0IGRlcGFydHVyZUNhbmNlbENsYXNzID0gKCgpOiBzdHJpbmcgPT4ge1xuICAgICAgcmV0dXJuIHJpZGVMZWdzICYmIHJpZGVMZWdzWzBdPy5zZXJ2aWNlSm91cm5leT8uc2VydmljZUFsdGVyYXRpb24/LmNhbmNlbGxlZFxuICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1kaXNydXB0aW9uJ1xuICAgICAgICA6ICcnO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBhcnJpdmFsQ2FuY2VsQ2xhc3MgPSAoKCk6IHN0cmluZyA9PiB7XG4gICAgICByZXR1cm4gcmlkZUxlZ3MgJiYgcmlkZUxlZ3NbcmlkZUxlZ3MubGVuZ3RoIC0gMV0/LnNlcnZpY2VKb3VybmV5Py5zZXJ2aWNlQWx0ZXJhdGlvbj8uY2FuY2VsbGVkXG4gICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbi0tYXJyaXZhbC1kaXNydXB0aW9uJ1xuICAgICAgICA6ICcnO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBzdGF0dXMgPVxuICAgICAgZGVwYXJ0dXJlV2l0aERlbGF5ICYmXG4gICAgICBhcnJpdmFsVGltZURlbGF5ICYmXG4gICAgICB0aGlzLl9nZXRTdGF0dXMobm93LCBkZXBhcnR1cmVXaXRoRGVsYXksIGFycml2YWxUaW1lRGVsYXkpO1xuXG4gICAgY29uc3Qgc3RhdHVzQ2xhc3NEZXBhcnR1cmUgPVxuICAgICAgcmlkZUxlZ3MgJiYgc3RhdHVzICYmICFkZXBhcnR1cmVDYW5jZWxDbGFzcyA/ICdzYmItcGVhcmwtY2hhaW5fX2J1bGxldC0tJyArIHN0YXR1cyA6ICcnO1xuXG4gICAgY29uc3Qgc3RhdHVzQ2xhc3NBcnJpdmFsID1cbiAgICAgIHJpZGVMZWdzICYmIHN0YXR1cyAmJiAhYXJyaXZhbENhbmNlbENsYXNzXG4gICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbl9fYnVsbGV0LS0nICsgdGhpcy5fZ2V0U3RhdHVzKG5vdywgdW5kZWZpbmVkLCBhcnJpdmFsVGltZURlbGF5KVxuICAgICAgICA6ICcnO1xuXG4gICAgaWYgKHRoaXMuX2lzQWxsQ2FuY2VsbGVkKHJpZGVMZWdzKSkge1xuICAgICAgcmV0dXJuIGh0bWxgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fYnVsbGV0IHNiYi1wZWFybC1jaGFpbi0tZGVwYXJ0dXJlLWRpc3J1cHRpb25cIj48L3NwYW4+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fbGVnIHNiYi1wZWFybC1jaGFpbl9fbGVnLS1kaXNydXB0aW9uXCI+PC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2J1bGxldCBzYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1kaXNydXB0aW9uXCI+PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIGA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXBlYXJsLWNoYWluXCI+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2J1bGxldCAke3N0YXR1c0NsYXNzRGVwYXJ0dXJlfSAke2RlcGFydHVyZU5vdFNlcnZpY2VkfSAke2RlcGFydHVyZUNhbmNlbENsYXNzfVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICAgICR7cmlkZUxlZ3M/Lm1hcCgobGVnOiBQdFJpZGVMZWcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICBjb25zdCB7IHN0b3BQb2ludHMsIHNlcnZpY2VBbHRlcmF0aW9uIH0gPSBsZWc/LnNlcnZpY2VKb3VybmV5IHx8IHt9O1xuXG4gICAgICAgICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLl9nZXRSZWxhdGl2ZUR1cmF0aW9uKHJpZGVMZWdzLCBsZWcpO1xuICAgICAgICAgIGNvbnN0IGRlcGFydHVyZSA9IHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZT8udGltZSk7XG4gICAgICAgICAgY29uc3QgYXJyaXZhbCA9IHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmFycml2YWw/LnRpbWUpO1xuXG4gICAgICAgICAgY29uc3QgaXNBcnJpdmFsTm90U2VydmljZWQgPVxuICAgICAgICAgICAgc3RvcFBvaW50cyAmJiBzdG9wUG9pbnRzW3N0b3BQb2ludHMubGVuZ3RoIC0gMV0/LnN0b3BTdGF0dXMgPT09ICdOT1RfU0VSVklDRUQnO1xuICAgICAgICAgIGNvbnN0IGlzQXJyaXZhbFBsYW5uZWQgPVxuICAgICAgICAgICAgc3RvcFBvaW50cyAmJiBzdG9wUG9pbnRzW3N0b3BQb2ludHMubGVuZ3RoIC0gMV0/LnN0b3BTdGF0dXMgPT09ICdQTEFOTkVEJztcbiAgICAgICAgICBjb25zdCBpc0RlcGFydHVyZU5vdFNlcnZpY2VkID0gc3RvcFBvaW50cyAmJiBzdG9wUG9pbnRzWzBdPy5zdG9wU3RhdHVzID09PSAnTk9UX1NFUlZJQ0VEJztcblxuICAgICAgICAgIGNvbnN0IHN0b3BQb2ludHNCZWZvcmUgPSBpbmRleCA+IDAgJiYgcmlkZUxlZ3NbaW5kZXggLSAxXS5zZXJ2aWNlSm91cm5leS5zdG9wUG9pbnRzO1xuICAgICAgICAgIGNvbnN0IGlzQmVmb3JlTGVnQXJyaXZhbE5vdFNlcnZpY2VkID1cbiAgICAgICAgICAgIHN0b3BQb2ludHNCZWZvcmUgJiZcbiAgICAgICAgICAgIHN0b3BQb2ludHNCZWZvcmVbc3RvcFBvaW50c0JlZm9yZS5sZW5ndGggLSAxXT8uc3RvcFN0YXR1cyA9PT0gJ05PVF9TRVJWSUNFRCc7XG5cbiAgICAgICAgICBjb25zdCBza2lwcGVkTGVnID1cbiAgICAgICAgICAgIGlzQXJyaXZhbE5vdFNlcnZpY2VkIHx8IChpc0RlcGFydHVyZU5vdFNlcnZpY2VkICYmIGlzQXJyaXZhbFBsYW5uZWQpXG4gICAgICAgICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbl9fbGVnLS1za2lwcGVkJ1xuICAgICAgICAgICAgICA6ICcnO1xuICAgICAgICAgIGNvbnN0IGRlcGFydHVyZVNraXBwZWRCdWxsZXQgPVxuICAgICAgICAgICAgaXNEZXBhcnR1cmVOb3RTZXJ2aWNlZCB8fCBpc0JlZm9yZUxlZ0Fycml2YWxOb3RTZXJ2aWNlZFxuICAgICAgICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW5fX3N0b3AtLWRlcGFydHVyZS1za2lwcGVkJ1xuICAgICAgICAgICAgICA6ICcnO1xuXG4gICAgICAgICAgY29uc3QgY2FuY2VsbGVkID1cbiAgICAgICAgICAgIHNlcnZpY2VBbHRlcmF0aW9uPy5jYW5jZWxsZWQgfHwgc2VydmljZUFsdGVyYXRpb24/LnBhcnRpYWxseUNhbmNlbGxlZFxuICAgICAgICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW5fX2xlZy0tZGlzcnVwdGlvbidcbiAgICAgICAgICAgICAgOiAnJztcblxuICAgICAgICAgIGNvbnN0IGxlZ0RlcGFydHVyZVdpdGhEZWxheSA9IHsgdGltZTogZGVwYXJ0dXJlLCBkZWxheTogbGVnLmRlcGFydHVyZT8uZGVsYXkgPz8gMCB9O1xuICAgICAgICAgIGNvbnN0IGxlZ0Fycml2YWxXaXRoRGVsYXkgPSB7IHRpbWU6IGFycml2YWwsIGRlbGF5OiBsZWcuYXJyaXZhbD8uZGVsYXkgPz8gMCB9O1xuICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuX2dldFN0YXR1cyhub3csIGxlZ0RlcGFydHVyZVdpdGhEZWxheSwgbGVnQXJyaXZhbFdpdGhEZWxheSk7XG5cbiAgICAgICAgICBjb25zdCBsZWdTdGF0dXMgPSAhY2FuY2VsbGVkICYmICFza2lwcGVkTGVnICYmICdzYmItcGVhcmwtY2hhaW5fX2xlZy0tJyArIHN0YXR1cztcbiAgICAgICAgICBjb25zdCBsZWdTdHlsZSA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICctLXNiYi1wZWFybC1jaGFpbi1sZWctd2lkdGgnOiBgJHtkdXJhdGlvbn0lYCxcbiAgICAgICAgICAgICAgLi4uKHN0YXR1cyA9PT0gJ3Byb2dyZXNzJyAmJiAhY2FuY2VsbGVkICYmICFza2lwcGVkTGVnXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICctLXNiYi1wZWFybC1jaGFpbi1sZWctc3RhdHVzJzogYCR7dGhpcy5fZ2V0UHJvZ3Jlc3Mobm93LCBsZWdEZXBhcnR1cmVXaXRoRGVsYXksIGxlZ0Fycml2YWxXaXRoRGVsYXkpfSVgLFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmV0dXJuIGh0bWxgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwic2JiLXBlYXJsLWNoYWluX19sZWcgJHtsZWdTdGF0dXMgfHwgJyd9ICR7Y2FuY2VsbGVkfSAke3NraXBwZWRMZWd9XCJcbiAgICAgICAgICAgIHN0eWxlPSR7c3R5bGVNYXAobGVnU3R5bGUoKSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgJHtpbmRleCA+IDAgJiYgaW5kZXggPCByaWRlTGVncy5sZW5ndGhcbiAgICAgICAgICAgICAgPyBodG1sYDxzcGFuIGNsYXNzPVwic2JiLXBlYXJsLWNoYWluX19zdG9wICR7ZGVwYXJ0dXJlU2tpcHBlZEJ1bGxldH1cIj48L3NwYW4+YFxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgICAke3N0YXR1cyA9PT0gJ3Byb2dyZXNzJyAmJiAhY2FuY2VsbGVkICYmICFza2lwcGVkTGVnXG4gICAgICAgICAgICAgID8gdGhpcy5fcmVuZGVyUG9zaXRpb24obm93LCBsZWdEZXBhcnR1cmVXaXRoRGVsYXksIGxlZ0Fycml2YWxXaXRoRGVsYXkpXG4gICAgICAgICAgICAgIDogbm90aGluZ31cbiAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICB9KX1cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fYnVsbGV0ICR7c3RhdHVzQ2xhc3NBcnJpdmFsfSAke2Fycml2YWxOb3RTZXJ2aWNlZH0gJHthcnJpdmFsQ2FuY2VsQ2xhc3N9XCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1wZWFybC1jaGFpbic6IFNiYlBlYXJsQ2hhaW5FbGVtZW50O1xuICB9XG59XG4iXSwieF9nb29nbGVfaWdub3JlTGlzdCI6WzAsMV0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkEsU0FBZ0IsUUFBUSxNQUFNLGVBQWU7QUFDM0MsUUFBTyxDQUFDLE9BQU8sS0FBSyxHQUFHLENBQUMsT0FBTyxjQUFjOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDRC9DLFNBQWdCLFNBQVMsTUFBTSxlQUFlO0FBQzVDLFFBQU8sQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLE9BQU8sY0FBYzs7Ozs7Ozs7OztJRUlsQyw4QkFBb0I7bUJBQVM7Ozs7Ozs7OztjQUE3Qiw2QkFBNkIsWUFBVTs7O0FBWVAsU0FBQSx5QkFaaEMsa0JBQUEsTUFBQSwyQkFBb0IsRUFBQSxrQkFBQSxNQUFBLG9CQVl3QyxFQUFFLENBQUE7QUFRekQsU0FBQSxx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
312
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVhcmwtY2hhaW4uY29tcG9uZW50LUNuZ1hwM3JLLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kYXRlLWZucy9pc0FmdGVyLmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RhdGUtZm5zL2lzQmVmb3JlLmpzIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzLWV4cGVyaW1lbnRhbC9wZWFybC1jaGFpbi9wZWFybC1jaGFpbi5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy1leHBlcmltZW50YWwvcGVhcmwtY2hhaW4vcGVhcmwtY2hhaW4uY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvRGF0ZSB9IGZyb20gXCIuL3RvRGF0ZS5qc1wiO1xuXG4vKipcbiAqIEBuYW1lIGlzQWZ0ZXJcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGZpcnN0IGRhdGUgYWZ0ZXIgdGhlIHNlY29uZCBvbmU/XG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKiBJcyB0aGUgZmlyc3QgZGF0ZSBhZnRlciB0aGUgc2Vjb25kIG9uZT9cbiAqXG4gKiBAcGFyYW0gZGF0ZSAtIFRoZSBkYXRlIHRoYXQgc2hvdWxkIGJlIGFmdGVyIHRoZSBvdGhlciBvbmUgdG8gcmV0dXJuIHRydWVcbiAqIEBwYXJhbSBkYXRlVG9Db21wYXJlIC0gVGhlIGRhdGUgdG8gY29tcGFyZSB3aXRoXG4gKlxuICogQHJldHVybnMgVGhlIGZpcnN0IGRhdGUgaXMgYWZ0ZXIgdGhlIHNlY29uZCBkYXRlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIElzIDEwIEp1bHkgMTk4OSBhZnRlciAxMSBGZWJydWFyeSAxOTg3P1xuICogY29uc3QgcmVzdWx0ID0gaXNBZnRlcihuZXcgRGF0ZSgxOTg5LCA2LCAxMCksIG5ldyBEYXRlKDE5ODcsIDEsIDExKSlcbiAqIC8vPT4gdHJ1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBZnRlcihkYXRlLCBkYXRlVG9Db21wYXJlKSB7XG4gIHJldHVybiArdG9EYXRlKGRhdGUpID4gK3RvRGF0ZShkYXRlVG9Db21wYXJlKTtcbn1cblxuLy8gRmFsbGJhY2sgZm9yIG1vZHVsYXJpemVkIGltcG9ydHM6XG5leHBvcnQgZGVmYXVsdCBpc0FmdGVyO1xuIiwiaW1wb3J0IHsgdG9EYXRlIH0gZnJvbSBcIi4vdG9EYXRlLmpzXCI7XG5cbi8qKlxuICogQG5hbWUgaXNCZWZvcmVcbiAqIEBjYXRlZ29yeSBDb21tb24gSGVscGVyc1xuICogQHN1bW1hcnkgSXMgdGhlIGZpcnN0IGRhdGUgYmVmb3JlIHRoZSBzZWNvbmQgb25lP1xuICpcbiAqIEBkZXNjcmlwdGlvblxuICogSXMgdGhlIGZpcnN0IGRhdGUgYmVmb3JlIHRoZSBzZWNvbmQgb25lP1xuICpcbiAqIEBwYXJhbSBkYXRlIC0gVGhlIGRhdGUgdGhhdCBzaG91bGQgYmUgYmVmb3JlIHRoZSBvdGhlciBvbmUgdG8gcmV0dXJuIHRydWVcbiAqIEBwYXJhbSBkYXRlVG9Db21wYXJlIC0gVGhlIGRhdGUgdG8gY29tcGFyZSB3aXRoXG4gKlxuICogQHJldHVybnMgVGhlIGZpcnN0IGRhdGUgaXMgYmVmb3JlIHRoZSBzZWNvbmQgZGF0ZVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBJcyAxMCBKdWx5IDE5ODkgYmVmb3JlIDExIEZlYnJ1YXJ5IDE5ODc/XG4gKiBjb25zdCByZXN1bHQgPSBpc0JlZm9yZShuZXcgRGF0ZSgxOTg5LCA2LCAxMCksIG5ldyBEYXRlKDE5ODcsIDEsIDExKSlcbiAqIC8vPT4gZmFsc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmVmb3JlKGRhdGUsIGRhdGVUb0NvbXBhcmUpIHtcbiAgcmV0dXJuICt0b0RhdGUoZGF0ZSkgPCArdG9EYXRlKGRhdGVUb0NvbXBhcmUpO1xufVxuXG4vLyBGYWxsYmFjayBmb3IgbW9kdWxhcml6ZWQgaW1wb3J0czpcbmV4cG9ydCBkZWZhdWx0IGlzQmVmb3JlO1xuIiwiQHVzZSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuQG1peGluIHNiYi1wZWFybC1jaGFpbi1kb3R0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB1bnNldDtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCBjdXJyZW50Y29sb3IgMCUsIGN1cnJlbnRjb2xvciA1MCUsIENhbnZhcyA1MCUpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gIGJhY2tncm91bmQtc2l6ZTogY2FsYygyICogdmFyKC0tc2JiLXBlYXJsLWNoYWluLXNwYWNpbmctc21hbGwpKSB2YXIoLS1zYmItcGVhcmwtY2hhaW4taGVpZ2h0KTtcbiAgaW5zZXQtaW5saW5lLWVuZDogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWhlaWdodCk7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGJhY2tncm91bmQ6IHVuc2V0O1xuICAgIGJvcmRlci1ibG9jay1zdGFydDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDEpfSBkYXNoZWQgSGlnaGxpZ2h0O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgje3NiYi5weC10by1yZW0tYnVpbGQoMSl9KTtcbiAgfVxufVxuXG46aG9zdCB7XG4gIC0tc2JiLXBlYXJsLWNoYWluLWhlaWdodDogdmFyKC0tc2JiLWJvcmRlci13aWR0aC0yeCk7XG4gIC0tc2JiLXBlYXJsLWNoYWluLXNwYWNpbmctc21hbGw6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgyKX07XG4gIC0tc2JiLXBlYXJsLWNoYWluLWNvbG9yOiB2YXIoLS1zYmItcGVhcmwtY2hhaW4tYnVsbGV0LWNvbG9yKTtcbiAgLS1zYmItcGVhcmwtY2hhaW4tY29sb3ItZGlzcnVwdGlvbjogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWJ1bGxldC1jb2xvci1kaXNydXB0aW9uKTtcbiAgLS1zYmItcGVhcmwtY2hhaW4tY29sb3ItcGFzdDogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWJ1bGxldC1jb2xvci1wYXN0KTtcbiAgLS1zYmItcGVhcmwtY2hhaW4tbGVnLXdpZHRoOiAxMDAlO1xuXG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIEBpbmNsdWRlIHNiYi5wZWFybC1jaGFpbi1idWxsZXQtdmFyaWFibGVzO1xufVxuXG4uc2JiLXBlYXJsLWNoYWluIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGZsZXgtd3JhcDogbm93cmFwO1xuICBjb2xvcjogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWNvbG9yKTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYmxvY2s6IGNhbGMoXG4gICAgKHZhcigtLXNiYi1wZWFybC1jaGFpbi1idWxsZXQtc2l6ZS1zdGFydC1lbmQpIC0gdmFyKC0tc2JiLXBlYXJsLWNoYWluLWhlaWdodCkpIC8gMlxuICApO1xuICBwYWRkaW5nLWlubGluZS1lbmQ6IHZhcigtLXNiYi1wZWFybC1jaGFpbi1idWxsZXQtc2l6ZS1zdGFydC1lbmQpO1xufVxuXG4vLyBmaXJzdCBhbmQgbGFzdCBidWxsZXRcbi5zYmItcGVhcmwtY2hhaW5fX2J1bGxldCB7XG4gIEBpbmNsdWRlIHNiYi5wZWFybC1jaGFpbi1idWxsZXQtc3RhcnQtZW5kO1xuICBAaW5jbHVkZSBzYmIucGVhcmwtY2hhaW4tYnVsbGV0O1xuXG4gIGNvbnRlbnQ6ICcnO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQtY29sb3I6IGN1cnJlbnRjb2xvcjtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IDA7XG4gIHotaW5kZXg6IDM7XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2J1bGxldDpmaXJzdC1vZi10eXBlIHtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xufVxuXG4uc2JiLXBlYXJsLWNoYWluX19idWxsZXQ6bGFzdC1vZi10eXBlIHtcbiAgaW5zZXQtaW5saW5lLWVuZDogMDtcbn1cblxuLnNiYi1wZWFybC1jaGFpbl9fbGVnIHtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGZsZXgtZ3JvdzogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1wZWFybC1jaGFpbi1oZWlnaHQpO1xuICBib3JkZXItaW5saW5lLWVuZDogdmFyKC0tc2JiLXBlYXJsLWNoYWluLXNwYWNpbmctc21hbGwpIHNvbGlkIENhbnZhcztcbiAgYmFja2dyb3VuZC1jb2xvcjogY3VycmVudGNvbG9yO1xuICB3aWR0aDogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWxlZy13aWR0aCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6IENhbnZhc1RleHQ7XG5cbiAgICAuc2JiLXBlYXJsLWNoYWluLS1wYXN0ICYge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogR3JheVRleHQ7XG4gICAgfVxuICB9XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2xlZzpsYXN0LW9mLXR5cGUge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi8vIGRvdCBvbiBsZWdcbi5zYmItcGVhcmwtY2hhaW5fX3N0b3Age1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDI7XG5cbiAgQGluY2x1ZGUgc2JiLnBlYXJsLWNoYWluLWJ1bGxldDtcbiAgQGluY2x1ZGUgc2JiLnBlYXJsLWNoYWluLWJ1bGxldC1zdG9wO1xufVxuXG4uc2JiLXBlYXJsLWNoYWluX19idWxsZXQtLWZ1dHVyZSB7XG4gIEBpbmNsdWRlIHNiYi5wZWFybC1jaGFpbi1idWxsZXQ7XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2xlZy0tcGFzdCxcbi5zYmItcGVhcmwtY2hhaW4tLXBhc3QsXG4uc2JiLXBlYXJsLWNoYWluX19sZWctLXBhc3Q6OmFmdGVyLFxuLnNiYi1wZWFybC1jaGFpbl9fbGVnLS1wcm9ncmVzczo6YWZ0ZXIsXG4uc2JiLXBlYXJsLWNoYWluX19sZWctLXByb2dyZXNzIC5zYmItcGVhcmwtY2hhaW5fX3N0b3AsXG4uc2JiLXBlYXJsLWNoYWluLS1wcm9ncmVzcyxcbi5zYmItcGVhcmwtY2hhaW5fX2J1bGxldC0tcGFzdCB7XG4gIGNvbG9yOiB2YXIoLS1zYmItcGVhcmwtY2hhaW4tY29sb3ItcGFzdCk7XG5cbiAgQGluY2x1ZGUgc2JiLnBlYXJsLWNoYWluLWJ1bGxldC1wYXN0O1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBHcmF5VGV4dCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2J1bGxldC0tcHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1zYmItcGVhcmwtY2hhaW4tYnVsbGV0LWNvbG9yKTtcblxuICBAaW5jbHVkZSBzYmIucGVhcmwtY2hhaW4tYnVsbGV0LXBhc3Q7XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2J1bGxldC0tZGVwYXJ0dXJlLWRpc3J1cHRpb24sXG4uc2JiLXBlYXJsLWNoYWluLS1hcnJpdmFsLWRpc3J1cHRpb24sXG4uc2JiLXBlYXJsLWNoYWluLS1kZXBhcnR1cmUtZGlzcnVwdGlvbixcbi5zYmItcGVhcmwtY2hhaW5fX2xlZy0tZGlzcnVwdGlvbiB7XG4gIGNvbG9yOiB2YXIoLS1zYmItcGVhcmwtY2hhaW4tY29sb3ItZGlzcnVwdGlvbik7XG5cbiAgQGluY2x1ZGUgc2JiLnBlYXJsLWNoYWluLWJ1bGxldC1kaXNydXB0aW9uO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICBjb2xvcjogSGlnaGxpZ2h0O1xuICAgIGJhY2tncm91bmQ6IEhpZ2hsaWdodDtcbiAgfVxufVxuXG4uc2JiLXBlYXJsLWNoYWluX19sZWctLWRpc3J1cHRpb24gLnNiYi1wZWFybC1jaGFpbl9fc3RvcCB7XG4gIEBpbmNsdWRlIHNiYi5wZWFybC1jaGFpbi1idWxsZXQtZGlzcnVwdGlvbjtcbn1cblxuLnNiYi1wZWFybC1jaGFpbl9fbGVnLS1wYXN0IC5zYmItcGVhcmwtY2hhaW5fX3N0b3Age1xuICBAaW5jbHVkZSBzYmIucGVhcmwtY2hhaW4tYnVsbGV0LXBhc3Q7XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2xlZy0tZGlzcnVwdGlvbjo6YWZ0ZXIge1xuICBAaW5jbHVkZSBzYmItcGVhcmwtY2hhaW4tZG90dGVkO1xufVxuXG4uc2JiLXBlYXJsLWNoYWluX19sZWctLXNraXBwZWQge1xuICBjb2xvcjogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWNvbG9yLWRpc3J1cHRpb24pO1xuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBzYmItcGVhcmwtY2hhaW4tZG90dGVkO1xuICB9XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX3N0b3AtLWRlcGFydHVyZS1za2lwcGVkIHtcbiAgQGluY2x1ZGUgc2JiLnBlYXJsLWNoYWluLWJ1bGxldC1zdG9wO1xuICBAaW5jbHVkZSBzYmIucGVhcmwtY2hhaW4tYnVsbGV0LXNraXBwZWQ7XG59XG5cbi5zYmItcGVhcmwtY2hhaW4tLWFycml2YWwtc2tpcHBlZCxcbi5zYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1za2lwcGVkIHtcbiAgQGluY2x1ZGUgc2JiLnBlYXJsLWNoYWluLWJ1bGxldC1zdGFydC1lbmQ7XG4gIEBpbmNsdWRlIHNiYi5wZWFybC1jaGFpbi1idWxsZXQtc2tpcHBlZDtcbn1cblxuLy8gbGluZSBvbiBsZWdcbi5zYmItcGVhcmwtY2hhaW5fX2xlZzo6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldC1ibG9jazogMDtcbiAgaW5zZXQtaW5saW5lLXN0YXJ0OiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBjdXJyZW50Y29sb3I7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi1wZWFybC1jaGFpbi1oZWlnaHQpO1xuICB6LWluZGV4OiAxO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBDYW52YXNUZXh0O1xuXG4gICAgLnNiYi1wZWFybC1jaGFpbi0tcGFzdCAmIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IEdyYXlUZXh0O1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLXBlYXJsLWNoYWluX19sZWc6bGFzdC1vZi10eXBlOjphZnRlciB7XG4gIGluc2V0LWlubGluZS1lbmQ6IGNhbGMoLTEgKiB2YXIoLS1zYmItcGVhcmwtY2hhaW4taGVpZ2h0KSk7XG59XG5cbi5zYmItcGVhcmwtY2hhaW5fX2xlZy0tcHJvZ3Jlc3M6OmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXBlYXJsLWNoYWluLWNvbG9yLXBhc3QpO1xuXG4gIC8vIC0tc2JiLXBlYXJsLWNoYWluLWxlZy1zdGF0dXM6IGRlZmluZWQgaW4gLnRzIGZpbGVcbiAgd2lkdGg6IHZhcigtLXNiYi1wZWFybC1jaGFpbi1sZWctc3RhdHVzKTtcbn1cblxuLnNiYi1wZWFybC1jaGFpbl9fcG9zaXRpb24ge1xuICBAaW5jbHVkZSBzYmIucGVhcmwtY2hhaW4tYnVsbGV0LXBvc2l0aW9uO1xuXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IC0yMDAlO1xuICB6LWluZGV4OiA0O1xuXG4gIC8vIC0tc2JiLXBlYXJsLWNoYWluLXN0YXR1cy1wb3NpdGlvbjogZGVmaW5lZCBpbiAudHMgZmlsZVxuICBpbnNldC1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1wZWFybC1jaGFpbi1zdGF0dXMtcG9zaXRpb24pO1xufVxuXG4uc2JiLXBlYXJsLWNoYWluX19wb3NpdGlvbi0tbm8tYW5pbWF0aW9uIHtcbiAgYW5pbWF0aW9uOiB1bnNldDtcbn1cblxuLnNiYi1zY3JlZW4tcmVhZGVyLW9ubHkge1xuICBAaW5jbHVkZSBzYmIuc2NyZWVuLXJlYWRlci1vbmx5O1xufVxuIiwiaW1wb3J0IHtcbiAgYm94U2l6aW5nU3R5bGVzLFxuICBkZWZhdWx0RGF0ZUFkYXB0ZXIsXG4gIGZvcmNlVHlwZSxcbiAgU2JiRWxlbWVudCxcbn0gZnJvbSAnQHNiYi1lc3RhL2x5bmUtZWxlbWVudHMvY29yZS5qcyc7XG5pbXBvcnQgeyBhZGRNaW51dGVzLCBkaWZmZXJlbmNlSW5NaW51dGVzLCBpc0FmdGVyLCBpc0JlZm9yZSB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIG5vdGhpbmcsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IHN0eWxlTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvc3R5bGUtbWFwLmpzJztcblxuaW1wb3J0IHR5cGUgeyBMZWcsIFB0UmlkZUxlZyB9IGZyb20gJy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgaXNSaWRlTGVnLCByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nIH0gZnJvbSAnLi4vY29yZS50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3BlYXJsLWNoYWluLnNjc3M/aW5saW5lJztcblxudHlwZSBTdGF0dXMgPSAncHJvZ3Jlc3MnIHwgJ2Z1dHVyZScgfCAncGFzdCc7XG5pbnRlcmZhY2UgVGltZSB7XG4gIHRpbWU/OiBEYXRlO1xuICBkZWxheTogbnVtYmVyO1xufVxuXG4vKipcbiAqIEl0IHZpc3VhbGx5IGRpc3BsYXlzIGpvdXJuZXkgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJQZWFybENoYWluRWxlbWVudCBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXBlYXJsLWNoYWluJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgbGVncyBvZiB0aGUgcGVhcmwtY2hhaW4uXG4gICAqIEZvcm1hdDpcbiAgICogYHtcImxlZ3NcIjogW3tcImR1cmF0aW9uXCI6IDI1fSwgLi4uXX1gXG4gICAqIGBkdXJhdGlvbmAgaW4gbWludXRlcy4gRHVyYXRpb24gb2YgdGhlIGxlZyBpcyByZWxhdGl2ZVxuICAgKiB0byB0aGUgdG90YWwgdHJhdmVsIHRpbWUuIEV4YW1wbGU6IGRlcGFydHVyZSAxNjozMCwgY2hhbmdlIGF0IDE2OjQwLFxuICAgKiBhcnJpdmFsIGF0IDE3OjAwLiBTbyB0aGUgY2hhbmdlIHNob3VsZCBoYXZlIGEgZHVyYXRpb24gb2YgMzMuMzMlLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSkgcHVibGljIGFjY2Vzc29yIGxlZ3M6IChMZWcgfCBQdFJpZGVMZWcpW10gPSBbXTtcblxuICAvKipcbiAgICogUGVyIGRlZmF1bHQsIHRoZSBjdXJyZW50IGxvY2F0aW9uIGhhcyBhIHB1bHNhdGluZyBhbmltYXRpb24uIFlvdSBjYW5cbiAgICogZGlzYWJsZSB0aGUgYW5pbWF0aW9uIHdpdGggdGhpcyBwcm9wZXJ0eS5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdkaXNhYmxlLWFuaW1hdGlvbicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVBbmltYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBjb25maWd1cmVkIGRhdGUgd2hpY2ggYWN0cyBhcyB0aGUgY3VycmVudCBkYXRlIGluc3RlYWQgb2YgdGhlIHJlYWwgY3VycmVudCBkYXRlLlxuICAgKiBPbmx5IHJlY29tbWVuZGVkIGZvciB0ZXN0aW5nIHB1cnBvc2VzLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCBub3codmFsdWU6IERhdGUgfCBudWxsKSB7XG4gICAgdGhpcy5fbm93ID0gZGVmYXVsdERhdGVBZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbChkZWZhdWx0RGF0ZUFkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IG5vdygpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX25vdztcbiAgfVxuICBwcml2YXRlIF9ub3c6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9nZXRBbGxEdXJhdGlvbihsZWdzOiBQdFJpZGVMZWdbXSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGxlZ3M/LnJlZHVjZSgoc3VtOiBudW1iZXIsIGxlZykgPT4ge1xuICAgICAgY29uc3QgYXJyaXZhbE5vVHogPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5hcnJpdmFsPy50aW1lKTtcbiAgICAgIGNvbnN0IGRlcGFydHVyZU5vVHogPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5kZXBhcnR1cmU/LnRpbWUpO1xuICAgICAgaWYgKGFycml2YWxOb1R6ICYmIGRlcGFydHVyZU5vVHopIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBzdW0gK1xuICAgICAgICAgIGRpZmZlcmVuY2VJbk1pbnV0ZXMoXG4gICAgICAgICAgICByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5hcnJpdmFsLnRpbWUpISxcbiAgICAgICAgICAgIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZS50aW1lKSEsXG4gICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN1bTtcbiAgICB9LCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQWxsQ2FuY2VsbGVkKGxlZ3M6IFB0UmlkZUxlZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGxlZ3M/LmV2ZXJ5KChsZWcpID0+IGxlZz8uc2VydmljZUpvdXJuZXk/LnNlcnZpY2VBbHRlcmF0aW9uPy5jYW5jZWxsZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmVsYXRpdmVEdXJhdGlvbihsZWdzOiBQdFJpZGVMZWdbXSwgbGVnOiBQdFJpZGVMZWcpOiBudW1iZXIge1xuICAgIGNvbnN0IGFycml2YWxOb1R6ID0gcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuYXJyaXZhbD8udGltZSk7XG4gICAgY29uc3QgZGVwYXJ0dXJlTm9UeiA9IHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZT8udGltZSk7XG4gICAgaWYgKGFycml2YWxOb1R6ICYmIGRlcGFydHVyZU5vVHopIHtcbiAgICAgIGNvbnN0IGR1cmF0aW9uID0gZGlmZmVyZW5jZUluTWludXRlcyhcbiAgICAgICAgcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhsZWcuYXJyaXZhbC50aW1lKSEsXG4gICAgICAgIHJlbW92ZVRpbWV6b25lRnJvbUlTT1RpbWVTdHJpbmcobGVnLmRlcGFydHVyZS50aW1lKSEsXG4gICAgICApO1xuICAgICAgY29uc3QgYWxsRHVyYXRpb25zID0gdGhpcy5fZ2V0QWxsRHVyYXRpb24obGVncyk7XG5cbiAgICAgIGlmIChhbGxEdXJhdGlvbnMgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDEwMDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChkdXJhdGlvbiAvIGFsbER1cmF0aW9ucykgKiAxMDA7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UHJvZ3Jlc3Mobm93OiBEYXRlLCBzdGFydD86IFRpbWUsIGVuZD86IFRpbWUpOiBudW1iZXIge1xuICAgIGlmICghc3RhcnQ/LnRpbWUgfHwgIWVuZD8udGltZSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhcnRXaXRoRGVsYXkgPSBhZGRNaW51dGVzKHN0YXJ0LnRpbWUsIHN0YXJ0LmRlbGF5ID8/IDApO1xuICAgIGNvbnN0IGVuZFdpdGhEZWxheSA9IGFkZE1pbnV0ZXMoZW5kLnRpbWUsIGVuZC5kZWxheSA/PyAwKTtcbiAgICBjb25zdCB0b3RhbCA9IGRpZmZlcmVuY2VJbk1pbnV0ZXMoZW5kV2l0aERlbGF5LCBzdGFydFdpdGhEZWxheSk7XG4gICAgY29uc3QgcHJvZ3Jlc3MgPSBkaWZmZXJlbmNlSW5NaW51dGVzKG5vdywgc3RhcnRXaXRoRGVsYXkpO1xuXG4gICAgcmV0dXJuIHRvdGFsICYmIChwcm9ncmVzcyAvIHRvdGFsKSAqIDEwMDtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFN0YXR1cyhub3c6IERhdGUsIHN0YXJ0PzogVGltZSwgZW5kPzogVGltZSk6IFN0YXR1cyB7XG4gICAgY29uc3Qgc3RhcnRXaXRoRGVsYXkgPSBzdGFydCAmJiBzdGFydC50aW1lICYmIGFkZE1pbnV0ZXMoc3RhcnQudGltZSwgc3RhcnQuZGVsYXkgPz8gMCk7XG4gICAgY29uc3QgZW5kV2l0aERlbGF5ID0gZW5kICYmIGVuZC50aW1lICYmIGFkZE1pbnV0ZXMoZW5kLnRpbWUsIGVuZC5kZWxheSA/PyAwKTtcblxuICAgIGlmIChcbiAgICAgIHN0YXJ0V2l0aERlbGF5ICYmXG4gICAgICBpc0JlZm9yZShzdGFydFdpdGhEZWxheSwgbm93KSAmJlxuICAgICAgZW5kV2l0aERlbGF5ICYmXG4gICAgICBpc0FmdGVyKGVuZFdpdGhEZWxheSwgbm93KVxuICAgICkge1xuICAgICAgcmV0dXJuICdwcm9ncmVzcyc7XG4gICAgfSBlbHNlIGlmIChlbmRXaXRoRGVsYXkgJiYgaXNCZWZvcmUoZW5kV2l0aERlbGF5LCBub3cpKSB7XG4gICAgICByZXR1cm4gJ3Bhc3QnO1xuICAgIH1cbiAgICByZXR1cm4gJ2Z1dHVyZSc7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJQb3NpdGlvbihub3c6IERhdGUsIHN0YXJ0PzogVGltZSwgZW5kPzogVGltZSk6IFRlbXBsYXRlUmVzdWx0IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBjdXJyZW50UG9zaXRpb24gPSB0aGlzLl9nZXRQcm9ncmVzcyhub3csIHN0YXJ0LCBlbmQpO1xuICAgIGlmIChjdXJyZW50UG9zaXRpb24gPCAwICYmIGN1cnJlbnRQb3NpdGlvbiA+IDEwMCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBzdGF0dXNTdHlsZSA9ICgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICctLXNiYi1wZWFybC1jaGFpbi1zdGF0dXMtcG9zaXRpb24nOiBgJHtjdXJyZW50UG9zaXRpb259JWAsXG4gICAgICAgIC4uLihjdXJyZW50UG9zaXRpb24gPj0gNTAgPyB7IHRyYW5zZm9ybTogYHRyYW5zbGF0ZVgoLTEwMCUpYCB9IDoge30pLFxuICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYW5pbWF0aW9uID0gdGhpcy5kaXNhYmxlQW5pbWF0aW9uID8gJ3NiYi1wZWFybC1jaGFpbl9fcG9zaXRpb24tLW5vLWFuaW1hdGlvbicgOiAnJztcblxuICAgIHJldHVybiBodG1sYDxzcGFuXG4gICAgICBzdHlsZT0ke3N0eWxlTWFwKHN0YXR1c1N0eWxlKCkpfVxuICAgICAgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX3Bvc2l0aW9uICR7YW5pbWF0aW9ufVwiXG4gICAgPjwvc3Bhbj5gO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgY29uc3Qgbm93ID0gdGhpcy5ub3cgPz8gbmV3IERhdGUoKTtcblxuICAgIGNvbnN0IHJpZGVMZWdzOiBQdFJpZGVMZWdbXSA9IHRoaXMubGVncz8uZmlsdGVyKChsZWcpID0+IGlzUmlkZUxlZyhsZWcpKSBhcyBQdFJpZGVMZWdbXTtcblxuICAgIGNvbnN0IGRlcGFydHVyZVRpbWUgPVxuICAgICAgcmlkZUxlZ3M/Lmxlbmd0aCAmJiByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKHJpZGVMZWdzWzBdPy5kZXBhcnR1cmU/LnRpbWUpO1xuICAgIGNvbnN0IGRlcGFydHVyZVdpdGhEZWxheSA9IGRlcGFydHVyZVRpbWUgJiYge1xuICAgICAgdGltZTogZGVwYXJ0dXJlVGltZSxcbiAgICAgIGRlbGF5OiByaWRlTGVnc1swXS5kZXBhcnR1cmUuZGVsYXkgPz8gMCxcbiAgICB9O1xuXG4gICAgY29uc3QgYXJyaXZhbFRpbWUgPVxuICAgICAgcmlkZUxlZ3M/Lmxlbmd0aCAmJlxuICAgICAgcmVtb3ZlVGltZXpvbmVGcm9tSVNPVGltZVN0cmluZyhyaWRlTGVnc1tyaWRlTGVncy5sZW5ndGggLSAxXS5hcnJpdmFsPy50aW1lKTtcbiAgICBjb25zdCBhcnJpdmFsVGltZURlbGF5ID0gYXJyaXZhbFRpbWUgJiYge1xuICAgICAgdGltZTogYXJyaXZhbFRpbWUsXG4gICAgICBkZWxheTogcmlkZUxlZ3NbcmlkZUxlZ3MubGVuZ3RoIC0gMV0/LmFycml2YWwuZGVsYXkgPz8gMCxcbiAgICB9O1xuXG4gICAgY29uc3QgZGVwYXJ0dXJlTm90U2VydmljZWQgPSAoKCk6IHN0cmluZyA9PiB7XG4gICAgICByZXR1cm4gcmlkZUxlZ3MgJiZcbiAgICAgICAgcmlkZUxlZ3NbMF0/LnNlcnZpY2VKb3VybmV5Py5zdG9wUG9pbnRzICYmXG4gICAgICAgIHJpZGVMZWdzWzBdPy5zZXJ2aWNlSm91cm5leT8uc3RvcFBvaW50c1swXS5zdG9wU3RhdHVzID09PSAnTk9UX1NFUlZJQ0VEJ1xuICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1za2lwcGVkJ1xuICAgICAgICA6ICcnO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBhcnJpdmFsTm90U2VydmljZWQgPSAoKCk6IHN0cmluZyA9PiB7XG4gICAgICBjb25zdCBsYXN0TGVnID0gcmlkZUxlZ3MgJiYgcmlkZUxlZ3NbcmlkZUxlZ3MubGVuZ3RoIC0gMV07XG4gICAgICBjb25zdCBzdG9wcyA9IGxhc3RMZWcgJiYgbGFzdExlZy5zZXJ2aWNlSm91cm5leT8uc3RvcFBvaW50cztcblxuICAgICAgcmV0dXJuIHN0b3BzICYmIHN0b3BzW3N0b3BzLmxlbmd0aCAtIDFdLnN0b3BTdGF0dXMgPT09ICdOT1RfU0VSVklDRUQnXG4gICAgICAgID8gJ3NiYi1wZWFybC1jaGFpbi0tYXJyaXZhbC1za2lwcGVkJ1xuICAgICAgICA6ICcnO1xuICAgIH0pKCk7XG5cbiAgICBjb25zdCBkZXBhcnR1cmVDYW5jZWxDbGFzcyA9ICgoKTogc3RyaW5nID0+IHtcbiAgICAgIHJldHVybiByaWRlTGVncyAmJiByaWRlTGVnc1swXT8uc2VydmljZUpvdXJuZXk/LnNlcnZpY2VBbHRlcmF0aW9uPy5jYW5jZWxsZWRcbiAgICAgICAgPyAnc2JiLXBlYXJsLWNoYWluLS1kZXBhcnR1cmUtZGlzcnVwdGlvbidcbiAgICAgICAgOiAnJztcbiAgICB9KSgpO1xuXG4gICAgY29uc3QgYXJyaXZhbENhbmNlbENsYXNzID0gKCgpOiBzdHJpbmcgPT4ge1xuICAgICAgcmV0dXJuIHJpZGVMZWdzICYmIHJpZGVMZWdzW3JpZGVMZWdzLmxlbmd0aCAtIDFdPy5zZXJ2aWNlSm91cm5leT8uc2VydmljZUFsdGVyYXRpb24/LmNhbmNlbGxlZFxuICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW4tLWFycml2YWwtZGlzcnVwdGlvbidcbiAgICAgICAgOiAnJztcbiAgICB9KSgpO1xuXG4gICAgY29uc3Qgc3RhdHVzID1cbiAgICAgIGRlcGFydHVyZVdpdGhEZWxheSAmJlxuICAgICAgYXJyaXZhbFRpbWVEZWxheSAmJlxuICAgICAgdGhpcy5fZ2V0U3RhdHVzKG5vdywgZGVwYXJ0dXJlV2l0aERlbGF5LCBhcnJpdmFsVGltZURlbGF5KTtcblxuICAgIGNvbnN0IHN0YXR1c0NsYXNzRGVwYXJ0dXJlID1cbiAgICAgIHJpZGVMZWdzICYmIHN0YXR1cyAmJiAhZGVwYXJ0dXJlQ2FuY2VsQ2xhc3MgPyAnc2JiLXBlYXJsLWNoYWluX19idWxsZXQtLScgKyBzdGF0dXMgOiAnJztcblxuICAgIGNvbnN0IHN0YXR1c0NsYXNzQXJyaXZhbCA9XG4gICAgICByaWRlTGVncyAmJiBzdGF0dXMgJiYgIWFycml2YWxDYW5jZWxDbGFzc1xuICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW5fX2J1bGxldC0tJyArIHRoaXMuX2dldFN0YXR1cyhub3csIHVuZGVmaW5lZCwgYXJyaXZhbFRpbWVEZWxheSlcbiAgICAgICAgOiAnJztcblxuICAgIGlmICh0aGlzLl9pc0FsbENhbmNlbGxlZChyaWRlTGVncykpIHtcbiAgICAgIHJldHVybiBodG1sYFxuICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXBlYXJsLWNoYWluXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2J1bGxldCBzYmItcGVhcmwtY2hhaW4tLWRlcGFydHVyZS1kaXNydXB0aW9uXCI+PC9zcGFuPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2xlZyBzYmItcGVhcmwtY2hhaW5fX2xlZy0tZGlzcnVwdGlvblwiPjwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXBlYXJsLWNoYWluX19idWxsZXQgc2JiLXBlYXJsLWNoYWluLS1kZXBhcnR1cmUtZGlzcnVwdGlvblwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICBgO1xuICAgIH1cblxuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1wZWFybC1jaGFpblwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2JiLXBlYXJsLWNoYWluX19idWxsZXQgJHtzdGF0dXNDbGFzc0RlcGFydHVyZX0gJHtkZXBhcnR1cmVOb3RTZXJ2aWNlZH0gJHtkZXBhcnR1cmVDYW5jZWxDbGFzc31cIlxuICAgICAgICA+PC9zcGFuPlxuICAgICAgICAke3JpZGVMZWdzPy5tYXAoKGxlZzogUHRSaWRlTGVnLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBzdG9wUG9pbnRzLCBzZXJ2aWNlQWx0ZXJhdGlvbiB9ID0gbGVnPy5zZXJ2aWNlSm91cm5leSB8fCB7fTtcblxuICAgICAgICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy5fZ2V0UmVsYXRpdmVEdXJhdGlvbihyaWRlTGVncywgbGVnKTtcbiAgICAgICAgICBjb25zdCBkZXBhcnR1cmUgPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5kZXBhcnR1cmU/LnRpbWUpO1xuICAgICAgICAgIGNvbnN0IGFycml2YWwgPSByZW1vdmVUaW1lem9uZUZyb21JU09UaW1lU3RyaW5nKGxlZy5hcnJpdmFsPy50aW1lKTtcblxuICAgICAgICAgIGNvbnN0IGlzQXJyaXZhbE5vdFNlcnZpY2VkID1cbiAgICAgICAgICAgIHN0b3BQb2ludHMgJiYgc3RvcFBvaW50c1tzdG9wUG9pbnRzLmxlbmd0aCAtIDFdPy5zdG9wU3RhdHVzID09PSAnTk9UX1NFUlZJQ0VEJztcbiAgICAgICAgICBjb25zdCBpc0Fycml2YWxQbGFubmVkID1cbiAgICAgICAgICAgIHN0b3BQb2ludHMgJiYgc3RvcFBvaW50c1tzdG9wUG9pbnRzLmxlbmd0aCAtIDFdPy5zdG9wU3RhdHVzID09PSAnUExBTk5FRCc7XG4gICAgICAgICAgY29uc3QgaXNEZXBhcnR1cmVOb3RTZXJ2aWNlZCA9IHN0b3BQb2ludHMgJiYgc3RvcFBvaW50c1swXT8uc3RvcFN0YXR1cyA9PT0gJ05PVF9TRVJWSUNFRCc7XG5cbiAgICAgICAgICBjb25zdCBzdG9wUG9pbnRzQmVmb3JlID0gaW5kZXggPiAwICYmIHJpZGVMZWdzW2luZGV4IC0gMV0uc2VydmljZUpvdXJuZXkuc3RvcFBvaW50cztcbiAgICAgICAgICBjb25zdCBpc0JlZm9yZUxlZ0Fycml2YWxOb3RTZXJ2aWNlZCA9XG4gICAgICAgICAgICBzdG9wUG9pbnRzQmVmb3JlICYmXG4gICAgICAgICAgICBzdG9wUG9pbnRzQmVmb3JlW3N0b3BQb2ludHNCZWZvcmUubGVuZ3RoIC0gMV0/LnN0b3BTdGF0dXMgPT09ICdOT1RfU0VSVklDRUQnO1xuXG4gICAgICAgICAgY29uc3Qgc2tpcHBlZExlZyA9XG4gICAgICAgICAgICBpc0Fycml2YWxOb3RTZXJ2aWNlZCB8fCAoaXNEZXBhcnR1cmVOb3RTZXJ2aWNlZCAmJiBpc0Fycml2YWxQbGFubmVkKVxuICAgICAgICAgICAgICA/ICdzYmItcGVhcmwtY2hhaW5fX2xlZy0tc2tpcHBlZCdcbiAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICBjb25zdCBkZXBhcnR1cmVTa2lwcGVkQnVsbGV0ID1cbiAgICAgICAgICAgIGlzRGVwYXJ0dXJlTm90U2VydmljZWQgfHwgaXNCZWZvcmVMZWdBcnJpdmFsTm90U2VydmljZWRcbiAgICAgICAgICAgICAgPyAnc2JiLXBlYXJsLWNoYWluX19zdG9wLS1kZXBhcnR1cmUtc2tpcHBlZCdcbiAgICAgICAgICAgICAgOiAnJztcblxuICAgICAgICAgIGNvbnN0IGNhbmNlbGxlZCA9XG4gICAgICAgICAgICBzZXJ2aWNlQWx0ZXJhdGlvbj8uY2FuY2VsbGVkIHx8IHNlcnZpY2VBbHRlcmF0aW9uPy5wYXJ0aWFsbHlDYW5jZWxsZWRcbiAgICAgICAgICAgICAgPyAnc2JiLXBlYXJsLWNoYWluX19sZWctLWRpc3J1cHRpb24nXG4gICAgICAgICAgICAgIDogJyc7XG5cbiAgICAgICAgICBjb25zdCBsZWdEZXBhcnR1cmVXaXRoRGVsYXkgPSB7IHRpbWU6IGRlcGFydHVyZSwgZGVsYXk6IGxlZy5kZXBhcnR1cmU/LmRlbGF5ID8/IDAgfTtcbiAgICAgICAgICBjb25zdCBsZWdBcnJpdmFsV2l0aERlbGF5ID0geyB0aW1lOiBhcnJpdmFsLCBkZWxheTogbGVnLmFycml2YWw/LmRlbGF5ID8/IDAgfTtcbiAgICAgICAgICBjb25zdCBzdGF0dXMgPSB0aGlzLl9nZXRTdGF0dXMobm93LCBsZWdEZXBhcnR1cmVXaXRoRGVsYXksIGxlZ0Fycml2YWxXaXRoRGVsYXkpO1xuXG4gICAgICAgICAgY29uc3QgbGVnU3RhdHVzID0gIWNhbmNlbGxlZCAmJiAhc2tpcHBlZExlZyAmJiAnc2JiLXBlYXJsLWNoYWluX19sZWctLScgKyBzdGF0dXM7XG4gICAgICAgICAgY29uc3QgbGVnU3R5bGUgPSAoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAnLS1zYmItcGVhcmwtY2hhaW4tbGVnLXdpZHRoJzogYCR7ZHVyYXRpb259JWAsXG4gICAgICAgICAgICAgIC4uLihzdGF0dXMgPT09ICdwcm9ncmVzcycgJiYgIWNhbmNlbGxlZCAmJiAhc2tpcHBlZExlZ1xuICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAnLS1zYmItcGVhcmwtY2hhaW4tbGVnLXN0YXR1cyc6IGAke3RoaXMuX2dldFByb2dyZXNzKG5vdywgbGVnRGVwYXJ0dXJlV2l0aERlbGF5LCBsZWdBcnJpdmFsV2l0aERlbGF5KX0lYCxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJldHVybiBodG1sYCA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fbGVnICR7bGVnU3RhdHVzIHx8ICcnfSAke2NhbmNlbGxlZH0gJHtza2lwcGVkTGVnfVwiXG4gICAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKGxlZ1N0eWxlKCkpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgICR7aW5kZXggPiAwICYmIGluZGV4IDwgcmlkZUxlZ3MubGVuZ3RoXG4gICAgICAgICAgICAgID8gaHRtbGA8c3BhbiBjbGFzcz1cInNiYi1wZWFybC1jaGFpbl9fc3RvcCAke2RlcGFydHVyZVNraXBwZWRCdWxsZXR9XCI+PC9zcGFuPmBcbiAgICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICAgICAgJHtzdGF0dXMgPT09ICdwcm9ncmVzcycgJiYgIWNhbmNlbGxlZCAmJiAhc2tpcHBlZExlZ1xuICAgICAgICAgICAgICA/IHRoaXMuX3JlbmRlclBvc2l0aW9uKG5vdywgbGVnRGVwYXJ0dXJlV2l0aERlbGF5LCBsZWdBcnJpdmFsV2l0aERlbGF5KVxuICAgICAgICAgICAgICA6IG5vdGhpbmd9XG4gICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfSl9XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJzYmItcGVhcmwtY2hhaW5fX2J1bGxldCAke3N0YXR1c0NsYXNzQXJyaXZhbH0gJHthcnJpdmFsTm90U2VydmljZWR9ICR7YXJyaXZhbENhbmNlbENsYXNzfVwiXG4gICAgICAgID48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItcGVhcmwtY2hhaW4nOiBTYmJQZWFybENoYWluRWxlbWVudDtcbiAgfVxufVxuIl0sInhfZ29vZ2xlX2lnbm9yZUxpc3QiOlswLDFdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLFNBQWdCLFFBQVEsTUFBTSxlQUFlO0FBQzNDLFFBQU8sQ0FBQyxPQUFPLEtBQUssR0FBRyxDQUFDLE9BQU8sY0FBYzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0QvQyxTQUFnQixTQUFTLE1BQU0sZUFBZTtBQUM1QyxRQUFPLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxPQUFPLGNBQWM7Ozs7Ozs7Ozs7SUVJbEMsOEJBQW9CO21CQUFTOzs7Ozs7Ozs7Y0FBN0IsNkJBQTZCLFlBQVU7OztBQVlQLFNBQUEseUJBWmhDLGtCQUFBLE1BQUEsMkJBQW9CLEVBQUEsa0JBQUEsTUFBQSxvQkFZd0MsRUFBRSxD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
@@ -1,4 +1,4 @@
1
- import { t as SbbPearlChainElement } from "./pearl-chain.component-Dl2RvtJo.js";
1
+ import { t as SbbPearlChainElement } from "./pearl-chain.component-CngXp3rK.js";
2
2
  import "./pearl-chain.pure.js";
3
3
  //#region src/elements-experimental/pearl-chain.ts
4
4
  /** @entrypoint */
@@ -1,2 +1,2 @@
1
- import { t as SbbPearlChainElement } from "./pearl-chain.component-Dl2RvtJo.js";
1
+ import { t as SbbPearlChainElement } from "./pearl-chain.component-CngXp3rK.js";
2
2
  export { SbbPearlChainElement };
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../../src/elements-experimental/seat-reservation/common/translations/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAo4BH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,EAAE,OAAO,GAAG,EAAE,KAAG,MAmBpF,CAAC"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../../src/elements-experimental/seat-reservation/common/translations/i18n.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAo4BH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,EAAE,OAAO,GAAG,EAAE,KAAG,MAqBpF,CAAC"}