bbj-screen-widget 2.4.70 → 2.4.71

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.
@@ -113,8 +113,14 @@ let TiandituComponent = class TiandituComponent {
113
113
  yield this.lazy.loadScript('https://api.tianditu.gov.cn/api?v=4.0&tk=acbe009b9b9cc2c8f369b6415fc8dc99');
114
114
  if (!this.destroyed) {
115
115
  this.zone.runOutsideAngular(() => {
116
+ const options = {
117
+ zoom: this.zoom,
118
+ };
119
+ if (this.centerLng && this.centerLat) {
120
+ options.center = this.createLngLat(this.centerLng, this.centerLat);
121
+ }
116
122
  this.map = new T.Map(this.container.nativeElement, {
117
- center: this.createLngLat(this.centerLng, this.centerLat),
123
+ center: this.createLngLat(this.centerLng || 120.7, this.centerLat || 28),
118
124
  zoom: this.zoom,
119
125
  });
120
126
  // this.mapTypeChange(this.mapTypeValue);
@@ -161,7 +167,7 @@ let TiandituComponent = class TiandituComponent {
161
167
  });
162
168
  this.map.addEventListener('click', (event) => {
163
169
  console.log(event);
164
- this.mapClick.emit(this.transferCoordinate(event.latlng));
170
+ this.mapClick.emit(this.transferCoordinate(event.lnglat));
165
171
  });
166
172
  this.map.addEventListener('zoomend', (event) => {
167
173
  this.zoomChange.emit(this.map.getZoom());
@@ -175,9 +181,10 @@ let TiandituComponent = class TiandituComponent {
175
181
  }
176
182
  ngOnChanges(changes) {
177
183
  if (changes.data && this.data[0]) {
178
- this.centerLng = +this.data[0].lng;
179
- this.centerLat = +this.data[0].lat;
180
- this.setCenter(this.centerLng, this.centerLat);
184
+ const { lng, lat } = this.data[0];
185
+ if (lng && lat) {
186
+ this.setCenter(+lng, +lat);
187
+ }
181
188
  }
182
189
  }
183
190
  ngOnDestroy() {
@@ -195,6 +202,9 @@ let TiandituComponent = class TiandituComponent {
195
202
  return new T.LngLat(lng, lat);
196
203
  }
197
204
  transferCoordinate(latlng) {
205
+ if (!latlng) {
206
+ return {};
207
+ }
198
208
  let { lng, lat } = latlng;
199
209
  if (this.coordinateType === 'BD-09') {
200
210
  [lng, lat] = wgs84tobd09(lng, lat);
@@ -398,4 +408,4 @@ TiandituComponent = __decorate([
398
408
  WidgetRef])
399
409
  ], TiandituComponent);
400
410
  export { TiandituComponent };
401
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlhbmRpdHUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NyZWVuLXdpZGdldC9zcmMvbGliL3RpYW5kaXR1L3RpYW5kaXR1LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUVaLE1BQU0sRUFJTixRQUFRLEVBRVIsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztJQXNCbEIsaUJBQWlCLFNBQWpCLGlCQUFpQjtJQW9JNUIsWUFDVSxJQUFpQixFQUNqQixVQUFzQixFQUN0QixJQUFZLEVBQ0EsTUFBb0IsRUFDaEMsU0FBb0I7UUFKcEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDQSxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFqSTlCLG1CQUFjLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsT0FBTztRQUNQLHdCQUF3QjtRQUN4QiwwQkFBMEI7UUFDMUIsK0dBQStHO1FBQy9HLHlCQUF5QjtRQUN6QixzQkFBc0I7UUFDdEIsK0JBQStCO1FBQy9C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REFDbUM7QUFJckM7SUFIQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2IsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtLQUN2RyxDQUFDOzttREFDaUM7QUFySHhCLGlCQUFpQjtJQWI3QixNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2IsUUFBUSxFQUFFO1lBQ1I7Z0JBQ0UsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsTUFBTSxFQUFFLElBQUk7Z0JBQ1osU0FBUyxFQUFFLElBQUk7YUFDaEI7U0FDRjtRQUNELFVBQVUsRUFBRSxDQUFDLG9CQUFvQixDQUFDO1FBQ2xDLFdBQVcsRUFBRSxjQUFjO0tBQzVCLENBQUM7cUNBc0lnQixXQUFXO1FBQ0wsVUFBVTtRQUNoQixNQUFNO1FBQ1EsWUFBWTtRQUNyQixTQUFTO0dBekluQixpQkFBaUIsQ0EyWDdCO1NBM1hZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgTmdab25lLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhenlTZXJ2aWNlIH0gZnJvbSAnQGRlbG9uL3V0aWwnO1xuaW1wb3J0IHsgRGF0YSwgRGF0YU91dHB1dCwgUHJvcGVydHksIFNjYWxlU3ViamVjdCwgV2lkZ2V0LCBXaWRnZXRSZWYsIEV2ZW50LCBEYXRhSW5wdXQgfSBmcm9tICdiYmotd2lkZ2V0LWJhc2UnO1xuaW1wb3J0IHsgc2NhbGVBZGFwdGVyLCBiZDA5dG93Z3M4NCwgZ2NqMDJ0b3dnczg0LCB3Z3M4NHRvZ2NqMDIsIHdnczg0dG9iZDA5IH0gZnJvbSAnYmJqLXNjcmVlbi13aWRnZXQvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmRlY2xhcmUgdmFyIFQ6IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2MtdGlhbmRpdHUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGlhbmRpdHUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90aWFuZGl0dS5jb21wb25lbnQubGVzcyddLFxufSlcbkBXaWRnZXQoJ+WkqeWcsOWbvicsIHtcbiAgY2hpbGRyZW46IFtcbiAgICB7XG4gICAgICB0aXRsZTogJ+agh+iusOWxgicsXG4gICAgICB0eXBlOiAnc2MtdGlhbmRpdHUtbWFya2VyJyxcbiAgICAgIG9wdGlvbjoge30sXG4gICAgICBoaWRkZW46IHRydWUsXG4gICAgICBoaWRlQ2hpbGQ6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgY2hpbGRUeXBlczogWydzYy10aWFuZGl0dS1tYXJrZXInXSxcbiAgZGVzY3JpcHRpb246ICdoYXNDaGlsZEl0ZW0nLFxufSlcbmV4cG9ydCBjbGFzcyBUaWFuZGl0dUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBAUHJvcGVydHkoJ+WdkOagh+ezuycsIHtcbiAgICBlbnVtOiBbXG4gICAgICB7IGxhYmVsOiAn55m+5bqm5Z2Q5qCHJywgdmFsdWU6ICdCRC0wOScgfSxcbiAgICAgIHsgbGFiZWw6ICfpq5jlvrcv6IW+6K6v5Z2Q5qCHJywgdmFsdWU6ICdHQ0otMDInIH0sXG4gICAgICB7IGxhYmVsOiAn5aSp5Zyw5Zu+5Z2Q5qCHJywgdmFsdWU6ICdXR1M4NCcgfSxcbiAgICBdLFxuICB9KVxuICBjb29yZGluYXRlVHlwZSA9ICdCRC0wOSc7XG4gIC8vICBAUHJvcGVydHkoJ+WcsOWbvuexu+WeiycsIHtcbiAgLy8gICAgIGVudW06IE1hcFR5cGVFbnVtLFxuICAvLyAgIH0pXG4gIC8vICAgbWFwVHlwZSA9ICdub3JtYWwnO1xuICAvLyAgIG1hcFR5cGVWYWx1ZTogc3RyaW5nO1xuICAvLyAgIEBQcm9wZXJ0eSgn5LiK5Lyg5qC35byPJywgeyB0eXBlOiAnc3RyaW5nJywgdWk6IHsgd2lkZ2V0OiAnbXlVcGxvYWRBdWRpbycsIHZpc2libGVJZjogeyBtYXBUeXBlOiBbJ2N1c3RvbSddIH0gfSB9KVxuICAvLyAgIHVwbG9hZFN0eWxlOiBzdHJpbmc7XG4gIC8vICAgQFByb3BlcnR5KCfliIfmjaLmjInpkq4nKVxuICAvLyAgIHNob3dNYXBUeXBlUmFkaW86IGJvb2xlYW47XG4gIC8vICAgQFByb3BlcnR5KCflhajmma/lnLDlm74nLCB7IHR5cGU6ICdib29sZWFuJyB9KVxuICAvLyAgIG1pbk1hcFNob3cgPSBmYWxzZTtcbiAgLy8gICBAUHJvcGVydHkoJ+aYvuekuuS/oeaBrycsIHtcbiAgLy8gICAgIHVpOiB7IHdpZGdldDogJ3NlbGVjdCcgfSxcbiAgLy8gICAgIGVudW06IFtcbiAgLy8gICAgICAgeyBsYWJlbDogJ+eCueWHuycsIHZhbHVlOiAnY2xpY2snIH0sXG4gIC8vICAgICAgIHsgbGFiZWw6ICfmgqzlgZwnLCB2YWx1ZTogJ21vdXNlb3ZlcicgfSxcbiAgLy8gICAgIF0sXG4gIC8vICAgfSlcbiAgLy8gICBzaG93VHlwZSA9ICdjbGljayc7XG4gIC8vICAgQFByb3BlcnR5KCfkv6Hmga/nqpfog4zmma8nLCB7IHVpOiB7IHdpZGdldDogJ215Q29sb3InIH0gfSlcbiAgLy8gICBpbmZvV2luZG93QmFja2dyb3VuZDogc3RyaW5nO1xuICAvLyAgIEBQcm9wZXJ0eSgn5L+h5oGv56qX5a2X5L2TJywgeyB1aTogeyB3aWRnZXQ6ICdteUNvbG9yJyB9IH0pXG4gIC8vICAgaW5mb1dpbmRvd0NvbG9yOiBzdHJpbmc7XG4gIC8vICAgQFByb3BlcnR5KCfkv6Hmga/nqpflrr3luqYnKVxuICAvLyAgIGluZm9XaW5kb3dXaWR0aDogbnVtYmVyO1xuICAvLyAgIEBQcm9wZXJ0eSgn5L+h5oGv56qX6auY5bqmJylcbiAgLy8gICBpbmZvV2luZG93SGVpZ2h0OiBudW1iZXI7XG4gIC8vICAgQFByb3BlcnR5KCfkv6Hmga/nqpfmqKHmnb8nLCB7IHVpOiB7IHdpZGdldDogJ3RleHRhcmVhJyB9IH0pXG4gIC8vICAgaW5mb1dpbmRvd1RlbXBsYXRlOiBzdHJpbmc7XG4gIC8vICAgQFByb3BlcnR5KCfkv6Hmga/nqpfovrnmoYYnLCB7XG4gIC8vICAgICB1aTogeyB3aWRnZXQ6ICdteUNvbG9yJyB9LFxuICAvLyAgICAgZXhhbXBsZTogWycjZmZmZmZmJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgbnVsbF0sXG4gIC8vICAgfSlcbiAgLy8gICBpbmZvV2luZG93Qm9yZGVyQ29sb3I6IHN0cmluZztcbiAgLy8gICBAUHJvcGVydHkoJ+makOiXj+WwluinkicpXG4gIC8vICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oaWRlSW5mb1dpbmRvd1RhaWwnKVxuICAvLyAgIGhpZGVJbmZvV2luZG93VGFpbDogYm9vbGVhbjtcbiAgLy8gICBAUHJvcGVydHkoJ+makOiXj+WFs+mXreaMiemSricpXG4gIC8vICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oaWRlSW5mb1dpbmRvd1RvcCcpXG4gIC8vICAgaGlkZUluZm9XaW5kb3dUb3A6IGJvb2xlYW47XG4gIEBQcm9wZXJ0eSgn5Zyw5Zu+5ouW5YqoJywgeyB0eXBlOiAnYm9vbGVhbicgfSlcbiAgZHJhZ2dpbmcgPSB0cnVlO1xuXG4gIC8vIEBQcm9wZXJ0eSgn6YGu572p6aKc6ImyJywge1xuICAvLyAgIHVpOiB7IHdpZGdldDogJ215Q29sb3InIH0sXG4gIC8vICAgZXhhbXBsZTogWycjZmZmZmZmJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgbnVsbF0sXG4gIC8vIH0pXG4gIC8vIHNoYWRlQ29sb3IgPSAnIzAwNDM5NSc7XG4gIC8vIEBQcm9wZXJ0eSgn6IOM5pmv6aKc6ImyJywge1xuICAvLyAgIHVpOiB7IHdpZGdldDogJ215Q29sb3InIH0sXG4gIC8vICAgZXhhbXBsZTogWycjZmZmZmZmJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgbnVsbF0sXG4gIC8vIH0pXG4gIC8vIG1hcEJhY2tDb2xvcjogc3RyaW5nO1xuXG4gIC8vIEBQcm9wZXJ0eSgn5aSa6L6557q/6ImyJywge1xuICAvLyAgIHVpOiB7IHdpZGdldDogJ215Q29sb3InIH0sXG4gIC8vICAgZXhhbXBsZTogWycjZmZmZmZmJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgbnVsbF0sXG4gIC8vIH0pXG4gIC8vIG1hcENpdHlDb2xvciA9ICcjNDFiN2ZmJztcbiAgQFByb3BlcnR5KCflnLDlm77nvKnmlL4nLCB7XG4gICAgdWk6IHsgd2lkZ2V0OiAnbXlSYW5nZScsIG1pbjogMSwgbWF4OiA0MCwgc3RlcDogMSB9LFxuICB9KVxuICB6b29tID0gMTI7XG4gIC8vIEBQcm9wZXJ0eSgn6YGu572p6YCP5piOJywgeyB0eXBlOiAnbnVtYmVyJyB9KVxuICAvLyBmaWxsT3BhY2l0eSA9IDA7XG4gIC8vIEBQcm9wZXJ0eSgn5aSa6L6557q/57KXJywgeyB0eXBlOiAnbnVtYmVyJyB9KVxuICAvLyBzdHJva2VzaXplID0gMjtcbiAgLy8gQFByb3BlcnR5KCfpu5HlpJzmqKHlvI8nLCB7IHR5cGU6ICdib29sZWFuJywgdWk6IHsgaGlkZGVuOiB0cnVlIH0gfSlcbiAgLy8gbmlnaHRNb2RlID0gZmFsc2U7XG4gIC8vIEBQcm9wZXJ0eSgnM0Top4bop5InKVxuICAvLyBlbmFibGUzRDogYm9vbGVhbjtcbiAgLy8gQFByb3BlcnR5KCflrprkvY3mjqfku7YnKVxuICAvLyBzaG93TG9jYXRpb25Db250cm9sOiBib29sZWFuO1xuICAvLyBAUHJvcGVydHkoJ+WIneWni+inkuW6picsIHsgdHlwZTogJ251bWJlcicsIHVpOiB7IHZpc2libGVJZjogeyBlbmFibGUzRDogW3RydWVdIH0gfSB9KVxuICAvLyB0aWx0ID0gNzM7XG5cbiAgLy8gY2VudGVyTG5nID0gMTIwLjc7XG5cbiAgLy8gY2VudGVyTGF0ID0gMjg7XG4gIC8vIEBQcm9wZXJ0eSgn5pi+56S655yB5biCJywge1xuICAvLyAgIHVpOiB7XG4gIC8vICAgICB3aWRnZXQ6ICdteVVybFNlbGVjdCcsXG4gIC8vICAgICBhbGxvd0NsZWFyOiB0cnVlLFxuICAvLyAgICAgdXJsOiAnL2Fzc2V0cy9tYXBMaXN0SXRlbS5qc29uJyxcbiAgLy8gICB9LFxuICAvLyB9KVxuICAvLyBjaXR5TmFtZSA9IG51bGw7XG4gIEBEYXRhKHtcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBsbmc6IHsgdHlwZTogJ251bWJlcicsIHRpdGxlOiAn57uP5bqmJyB9LFxuICAgICAgbGF0OiB7IHR5cGU6ICdudW1iZXInLCB0aXRsZTogJ+e6rOW6picgfSxcbiAgICB9LFxuICB9KVxuICBkYXRhOiBhbnlbXSA9IFt7IGxuZzogMTIwLjcsIGxhdDogMjggfV07XG4gIEBEYXRhT3V0cHV0KFsnbG5nJywgJ2xhdCddKVxuICBARXZlbnQoJ+S4reW/g+eCueaUueWPmCcsIHtcbiAgICBwYXJhbXM6IHsgcHJvcGVydGllczogeyBsbmc6IHsgdGl0bGU6ICfnu4/luqYnLCB0eXBlOiAnbnVtYmVyJyB9LCBsYXQ6IHsgdGl0bGU6ICfnuqzluqYnLCB0eXBlOiAnbnVtYmVyJyB9IH0gfSxcbiAgfSlcbiAgZGF0YUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBEYXRhT3V0cHV0KCfnvKnmlL7nrYnnuqcnKVxuICBARXZlbnQoJ+e8qeaUvicsIHtcbiAgICBwYXJhbXM6ICfnvKnmlL7nrYnnuqcnLFxuICB9KVxuICB6b29tQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBFdmVudCgn5Zyw5Zu+54K55Ye7Jywge1xuICAgIHBhcmFtczogeyBwcm9wZXJ0aWVzOiB7IGxuZzogeyB0aXRsZTogJ+e7j+W6picsIHR5cGU6ICdudW1iZXInIH0sIGxhdDogeyB0aXRsZTogJ+e6rOW6picsIHR5cGU6ICdudW1iZXInIH0gfSB9LFxuICB9KVxuICBtYXBDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAVmlld0NoaWxkKCdjb250YWluZXInKVxuICBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgZWRpdDogYm9vbGVhbjtcbiAgY2hpbGRyZW46IGFueVtdO1xuICBtYXA6IGFueTtcbiAgY2VudGVyTG5nOiBudW1iZXI7XG4gIGNlbnRlckxhdDogbnVtYmVyO1xuICBkZXN0cm95ZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgaW5pdGVkOiAobWFwOiBhbnkpID0+IHZvaWQ7XG4gIGluaXQkID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICB0aGlzLmluaXRlZCA9IHJlc29sdmU7XG4gIH0pO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGxhenk6IExhenlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHNjYWxlJDogU2NhbGVTdWJqZWN0LFxuICAgIHByaXZhdGUgd2lkZ2V0UmVmOiBXaWRnZXRSZWYsXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5zY2FsZSQpIHtcbiAgICAgIHNjYWxlQWRhcHRlcih0aGlzLnNjYWxlJCwgdGhpcy5kZXN0cm95JCwgdGhpcy56b25lLCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgdGhpcy53aWRnZXRSZWYpO1xuICAgIH1cbiAgICB0aGlzLmluaXRNYXAoKTtcbiAgfVxuXG4gIGFzeW5jIGluaXRNYXAoKSB7XG4gICAgYXdhaXQgdGhpcy5sYXp5LmxvYWRTY3JpcHQoJ2h0dHBzOi8vYXBpLnRpYW5kaXR1Lmdvdi5jbi9hcGk/dj00LjAmdGs9YWNiZTAwOWI5YjljYzJjOGYzNjliNjQxNWZjOGRjOTknKTtcbiAgICBpZiAoIXRoaXMuZGVzdHJveWVkKSB7XG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLm1hcCA9IG5ldyBULk1hcCh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgICAgY2VudGVyOiB0aGlzLmNyZWF0ZUxuZ0xhdCh0aGlzLmNlbnRlckxuZywgdGhpcy5jZW50ZXJMYXQpLFxuICAgICAgICAgIHpvb206IHRoaXMuem9vbSxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHRoaXMubWFwVHlwZUNoYW5nZSh0aGlzLm1hcFR5cGVWYWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLmVkaXQgfHwgdGhpcy5kcmFnZ2luZyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICB0aGlzLm1hcC5kaXNhYmxlRHJhZygpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmICh0aGlzLmVuYWJsZTNEKSB7XG4gICAgICAgIC8vICAgdGhpcy5tYXAuc2V0VGlsdCh0aGlzLnRpbHQgPT0gbnVsbCA/IDczIDogdGhpcy50aWx0LCB7IG5vQW5pbWF0aW9uOiB0cnVlIH0pO1xuICAgICAgICAvLyAgIHRoaXMubWFwLnNldERpc3BsYXlPcHRpb25zKHsgc2t5Q29sb3JzOiBbJ3JnYmEoMCwgMCwgMCwgMCknXSB9KTsgLy8g6ZqQ6JeP5aSp56m6XG4gICAgICAgIC8vICAgLy8gY29uc3QgbmF2aTNEQ3RybCA9IG5ldyBCTWFwR0wuTmF2aWdhdGlvbkNvbnRyb2wzRCgpOyAvLyDmt7vliqAzROaOp+S7tlxuICAgICAgICAvLyAgIC8vIHRoaXMubWFwLmFkZENvbnRyb2wobmF2aTNEQ3RybCk7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgdGhpcy5tYXAuZGlzYWJsZVRpbHQoKTtcbiAgICAgICAgLy8gICB0aGlzLm1hcC5kaXNhYmxlUm90YXRlKCk7XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gaWYgKHRoaXMuc2hvd0xvY2F0aW9uQ29udHJvbCkge1xuICAgICAgICAvLyAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIC8vICAgICAvLyDmjqfku7bnmoTlgZzpnaDkvY3nva7vvIjlj6/pgInvvIzpu5jorqTlt6bkuIrop5LvvIlcbiAgICAgICAgLy8gICAgIGFuY2hvcjogQk1BUF9BTkNIT1JfVE9QX0xFRlQsXG4gICAgICAgIC8vICAgICAvLyDmjqfku7bln7rkuo7lgZzpnaDkvY3nva7nmoTlgY/np7vph4/vvIjlj6/pgInvvIlcbiAgICAgICAgLy8gICAgIG9mZnNldDogbmV3IEJNYXBHTC5TaXplKDIwLCAyMCksXG4gICAgICAgIC8vICAgfTtcbiAgICAgICAgLy8gICBsZXQgbG9jYXRpb25Db250cm9sID0gbmV3IEJNYXBHTC5Mb2NhdGlvbkNvbnRyb2wob3B0aW9ucyk7XG4gICAgICAgIC8vICAgLy8g5bCG5o6n5Lu25re75Yqg5Yiw5Zyw5Zu+5LiKXG4gICAgICAgIC8vICAgdGhpcy5tYXAuYWRkQ29udHJvbChsb2NhdGlvbkNvbnRyb2wpO1xuICAgICAgICAvLyB9XG4gICAgICAgIC8vIGlmICh0aGlzLm1pbk1hcFNob3cpIHtcbiAgICAgICAgLy8gICBjb25zdCBzdEN0cmwgPSBuZXcgQk1hcEdMLlBhbm9yYW1hQ29udHJvbCgpO1xuICAgICAgICAvLyAgIHN0Q3RybC5zZXRPZmZzZXQobmV3IEJNYXBHTC5TaXplKDIwLCAyMCkpO1xuICAgICAgICAvLyAgIHRoaXMubWFwLmFkZENvbnRyb2woc3RDdHJsKTtcbiAgICAgICAgLy8gfVxuICAgICAgICAvLyBpZiAodGhpcy5pbmZvV2luZG93QmFja2dyb3VuZCkge1xuICAgICAgICAvLyAgIHRoaXMuZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLXdpbmRvdy1iYWNrZ3JvdW5kJywgdGhpcy5pbmZvV2luZG93QmFja2dyb3VuZCk7XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gaWYgKHRoaXMuaW5mb1dpbmRvd0NvbG9yKSB7XG4gICAgICAgIC8vICAgdGhpcy5lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8td2luZG93LWNvbG9yJywgdGhpcy5pbmZvV2luZG93Q29sb3IpO1xuICAgICAgICAvLyB9XG4gICAgICAgIC8vIGlmICh0aGlzLmluZm9XaW5kb3dCb3JkZXJDb2xvcikge1xuICAgICAgICAvLyAgIHRoaXMuZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLXdpbmRvdy1ib3JkZXItY29sb3InLCB0aGlzLmluZm9XaW5kb3dCb3JkZXJDb2xvcik7XG4gICAgICAgIC8vIH1cbiAgICAgICAgdGhpcy5tYXAuYWRkRXZlbnRMaXN0ZW5lcignbW92ZWVuZCcsIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNlbnRlciA9IHRoaXMubWFwLmdldENlbnRlcigpO1xuICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZS5lbWl0KHRoaXMudHJhbnNmZXJDb29yZGluYXRlKGNlbnRlcikpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tYXAuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhldmVudCk7XG4gICAgICAgICAgdGhpcy5tYXBDbGljay5lbWl0KHRoaXMudHJhbnNmZXJDb29yZGluYXRlKGV2ZW50LmxhdGxuZykpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tYXAuYWRkRXZlbnRMaXN0ZW5lcignem9vbWVuZCcsIChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuem9vbUNoYW5nZS5lbWl0KHRoaXMubWFwLmdldFpvb20oKSk7XG4gICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQodGhpcy50cmFuc2ZlckNvb3JkaW5hdGUodGhpcy5tYXAuZ2V0Q2VudGVyKCkpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubWFwTG9hZGVkKHRoaXMubWFwKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5pbml0ZWQodGhpcy5tYXApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kYXRhICYmIHRoaXMuZGF0YVswXSkge1xuICAgICAgdGhpcy5jZW50ZXJMbmcgPSArdGhpcy5kYXRhWzBdLmxuZztcbiAgICAgIHRoaXMuY2VudGVyTGF0ID0gK3RoaXMuZGF0YVswXS5sYXQ7XG4gICAgICB0aGlzLnNldENlbnRlcih0aGlzLmNlbnRlckxuZywgdGhpcy5jZW50ZXJMYXQpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCA9IHRydWU7XG4gIH1cblxuICBjcmVhdGVMbmdMYXQobG5nOiBudW1iZXIsIGxhdDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuY29vcmRpbmF0ZVR5cGUgPT09ICdCRC0wOScpIHtcbiAgICAgIFtsbmcsIGxhdF0gPSBiZDA5dG93Z3M4NChsbmcsIGxhdCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvb3JkaW5hdGVUeXBlID09PSAnR0NKLTAyJykge1xuICAgICAgW2xuZywgbGF0XSA9IGdjajAydG93Z3M4NChsbmcsIGxhdCk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgVC5MbmdMYXQobG5nLCBsYXQpO1xuICB9XG5cbiAgdHJhbnNmZXJDb29yZGluYXRlKGxhdGxuZzogeyBsYXQ6IG51bWJlcjsgbG5nOiBudW1iZXIgfSkge1xuICAgIGxldCB7IGxuZywgbGF0IH0gPSBsYXRsbmc7XG4gICAgaWYgKHRoaXMuY29vcmRpbmF0ZVR5cGUgPT09ICdCRC0wOScpIHtcbiAgICAgIFtsbmcsIGxhdF0gPSB3Z3M4NHRvYmQwOShsbmcsIGxhdCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvb3JkaW5hdGVUeXBlID09PSAnR0NKLTAyJykge1xuICAgICAgW2xuZywgbGF0XSA9IHdnczg0dG9nY2owMihsbmcsIGxhdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBsYXRsbmc7XG4gICAgfVxuICAgIHJldHVybiB7IGxuZywgbGF0IH07XG4gIH1cblxuICBzZXRDZW50ZXIobG5nOiBudW1iZXIsIGxhdDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMubWFwICYmIGxuZyAmJiBsYXQpIHtcbiAgICAgIGNvbnN0IGNlbnRlciA9IHRoaXMubWFwLmdldENlbnRlcigpO1xuICAgICAgaWYgKGNlbnRlci5sbmcgIT0gbG5nIHx8IGNlbnRlci5sYXQgIT0gbGF0KSB7XG4gICAgICAgIHRoaXMuc2V0Q2VudGVyQW5kWm9vbShsbmcsIGxhdCwgdGhpcy5tYXAuZ2V0Wm9vbSgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRDZW50ZXJBbmRab29tKGxuZzogbnVtYmVyLCBsYXQ6IG51bWJlciwgem9vbTogbnVtYmVyKSB7XG4gICAgY29uc3QgY2VudGVyID0gdGhpcy5tYXAuZ2V0Q2VudGVyKCk7XG4gICAgY29uc3QgY3VycmVudFpvb20gPSB0aGlzLm1hcC5nZXRab29tKCk7XG4gICAgLy8g6K+v5beu6IyD5Zu05YaF5LiN56e75YqoLOmYsuatouiDjOaZr+aKluWKqFxuICAgIGlmICh6b29tICE9IGN1cnJlbnRab29tIHx8IE1hdGguYWJzKGxuZyAtIGNlbnRlci5sbmcpID4gMWUtMTMgfHwgTWF0aC5hYnMobGF0IC0gY2VudGVyLmxhdCkgPiAxZS03KSB7XG4gICAgICBjb25zdCBwb2ludCA9IHRoaXMuY3JlYXRlTG5nTGF0KGxuZywgbGF0KTtcbiAgICAgIHRoaXMubWFwLmNlbnRlckFuZFpvb20ocG9pbnQsIHpvb20pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja7nu4/nuqzluqbojIPlm7Torr7nva7kuK3lv4PlkoznvKnmlL7nrYnnuqdcbiAgICogQHBhcmFtIG1pbkxuZ1xuICAgKiBAcGFyYW0gbWF4TG5nXG4gICAqIEBwYXJhbSBtaW5MYXRcbiAgICogQHBhcmFtIG1heExhdFxuICAgKi9cbiAgc2V0UmVjdENlbnRlckFuZFpvb20obWluTG5nOiBudW1iZXIsIG1heExuZzogbnVtYmVyLCBtaW5MYXQ6IG51bWJlciwgbWF4TGF0OiBudW1iZXIpIHtcbiAgICBjb25zdCBwb2ludEIgPSB0aGlzLmNyZWF0ZUxuZ0xhdChtaW5MbmcsIG1pbkxhdCk7XG4gICAgY29uc3QgcG9pbnRBID0gdGhpcy5jcmVhdGVMbmdMYXQobWF4TG5nLCBtYXhMYXQpO1xuICAgIHRoaXMubWFwLnNldFZpZXdwb3J0KFtwb2ludEEsIHBvaW50Ql0pO1xuICB9XG5cbiAgYXN5bmMgbWFwTG9hZGVkKG1hcDogYW55KSB7XG4gICAgLy8gaWYgKHRoaXMuY2l0eU5hbWUpIHtcbiAgICAvLyAgIGlmICh0aGlzLmNpdHlOYW1lID09PSAn5rip5beeJykge1xuICAgIC8vICAgICB0aGlzLmNpdHlOYW1lID0gJ3dlbnpob3UnO1xuICAgIC8vICAgfVxuICAgIC8vICAgY29uc3QganNvbjogYW55ID0gYXdhaXQgdGhpcy5odHRwLmdldCgnYXNzZXRzL2VjaGFydHMvbWFwL2pzb24vJyArIHRoaXMuY2l0eU5hbWUgKyAnLmpzb24nKS50b1Byb21pc2UoKTtcbiAgICAvLyAgIGNvbnN0IHBvbHlnb25EYXRhID0gW107XG4gICAgLy8gICBsZXQgZW5jb2RlU2NhbGUgPSBqc29uLlVURjhTY2FsZSB8fCAxMDI0O1xuICAgIC8vICAganNvbi5mZWF0dXJlcy5mb3JFYWNoKCh7IGdlb21ldHJ5IH0pID0+IHtcbiAgICAvLyAgICAgZ2VvbWV0cnkuY29vcmRpbmF0ZXMgPSAoZ2VvbWV0cnkuY29vcmRpbmF0ZXMgYXMgYW55W10pLmZvckVhY2goKGNvb3JkaW5hdGUsIGkpID0+IHtcbiAgICAvLyAgICAgICBpZiAoZ2VvbWV0cnkudHlwZSA9PT0gJ011bHRpUG9seWdvbicpIHtcbiAgICAvLyAgICAgICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gKGNvb3JkaW5hdGUgYXMgYW55W10pLm1hcCgocG9pbnRzLCBqKSA9PiB7XG4gICAgLy8gICAgICAgICAgIGlmIChqc29uLlVURjhFbmNvZGluZykge1xuICAgIC8vICAgICAgICAgICAgIHBvaW50cyA9IHRoaXMuZGVjb2RlUG9seWdvbihwb2ludHMsIGdlb21ldHJ5LmVuY29kZU9mZnNldHNbaV1bal0sIGVuY29kZVNjYWxlKTtcbiAgICAvLyAgICAgICAgICAgfVxuICAgIC8vICAgICAgICAgICByZXR1cm4gcG9pbnRzO1xuICAgIC8vICAgICAgICAgfSk7XG4gICAgLy8gICAgICAgICBwb2x5Z29uRGF0YS5wdXNoKGNvb3JkaW5hdGVzKTtcbiAgICAvLyAgICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgICAgaWYgKGpzb24uVVRGOEVuY29kaW5nKSB7XG4gICAgLy8gICAgICAgICAgIGNvb3JkaW5hdGUgPSB0aGlzLmRlY29kZVBvbHlnb24oY29vcmRpbmF0ZSwgZ2VvbWV0cnkuZW5jb2RlT2Zmc2V0c1tpXSwgZW5jb2RlU2NhbGUpO1xuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgICAgcG9seWdvbkRhdGEucHVzaChbY29vcmRpbmF0ZV0pO1xuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgfSk7XG4gICAgLy8gICB9KTtcbiAgICAvLyAgIGNvbnN0IGRhdGEgPSBbXG4gICAgLy8gICAgIHtcbiAgICAvLyAgICAgICBnZW9tZXRyeToge1xuICAgIC8vICAgICAgICAgdHlwZTogJ011bHRpUG9seWdvbicsXG4gICAgLy8gICAgICAgICBjb29yZGluYXRlczogcG9seWdvbkRhdGEsXG4gICAgLy8gICAgICAgfSxcbiAgICAvLyAgICAgfSxcbiAgICAvLyAgIF07XG4gICAgLy8gICB2YXIgbGF5ZXIgPSBuZXcgbWFwdmdsLlBvbHlnb25MYXllcih7XG4gICAgLy8gICAgIGxpbmVDb2xvcjogdGhpcy5tYXBDaXR5Q29sb3IsXG4gICAgLy8gICAgIGxpbmVXaWR0aDogdGhpcy5zdHJva2VzaXplIHx8IDIsXG4gICAgLy8gICAgIGZpbGxDb2xvcjogdGhpcy5zaGFkZUNvbG9yLFxuICAgIC8vICAgICBkYXRhLFxuICAgIC8vICAgICByZW5kZXJPcmRlcjogLTIsXG4gICAgLy8gICB9KTtcbiAgICAvLyAgIHRoaXMudmlldy5hZGRMYXllcihsYXllcik7XG4gICAgLy8gICBpZiAodGhpcy5tYXBCYWNrQ29sb3IgJiYgIXRoaXMubWFwQmFja0NvbG9yLm1hdGNoKC9yZ2JhXFwoXFxkKyxcXGQrLFxcZCssMFxcKS8pKSB7XG4gICAgLy8gICAgIHZhciBtYXNrTGF5ZXIgPSBuZXcgbWFwdmdsLk1hc2tMYXllcih7XG4gICAgLy8gICAgICAgY29sb3I6IHRoaXMubWFwQmFja0NvbG9yLFxuICAgIC8vICAgICAgIGRhdGEsXG4gICAgLy8gICAgICAgcmVuZGVyT3JkZXI6IC0zLFxuICAgIC8vICAgICB9KTtcbiAgICAvLyAgICAgdGhpcy52aWV3LmFkZExheWVyKG1hc2tMYXllcik7XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICB9XG5cbiAgZGVjb2RlUG9seWdvbihjb29yZGluYXRlOiBzdHJpbmcsIGVuY29kZU9mZnNldHM6IG51bWJlcltdLCBlbmNvZGVTY2FsZTogbnVtYmVyKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW107XG4gICAgbGV0IHByZXZYID0gZW5jb2RlT2Zmc2V0c1swXTtcbiAgICBsZXQgcHJldlkgPSBlbmNvZGVPZmZzZXRzWzFdO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb29yZGluYXRlLmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICB2YXIgeCA9IGNvb3JkaW5hdGUuY2hhckNvZGVBdChpKSAtIDY0O1xuICAgICAgdmFyIHkgPSBjb29yZGluYXRlLmNoYXJDb2RlQXQoaSArIDEpIC0gNjQ7XG4gICAgICAvLyBaaWdaYWcgZGVjb2RpbmdcbiAgICAgIHggPSAoeCA+PiAxKSBeIC0oeCAmIDEpO1xuICAgICAgeSA9ICh5ID4+IDEpIF4gLSh5ICYgMSk7XG4gICAgICAvLyBEZWx0YSBkZW9jZGluZ1xuICAgICAgeCArPSBwcmV2WDtcbiAgICAgIHkgKz0gcHJldlk7XG5cbiAgICAgIHByZXZYID0geDtcbiAgICAgIHByZXZZID0geTtcbiAgICAgIC8vIERlcXVhbnRpemVcbiAgICAgIHJlc3VsdC5wdXNoKFt4IC8gZW5jb2RlU2NhbGUsIHkgLyBlbmNvZGVTY2FsZV0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvLyBhc3luYyBtYXBUeXBlQ2hhbmdlKG1hcFR5cGU6IHN0cmluZykge1xuICAvLyAgIHN3aXRjaCAobWFwVHlwZSkge1xuICAvLyAgICAgY2FzZSAnZGFyayc6XG4gIC8vICAgICAgIGlmICghdGhpcy5kYXJrU3R5bGUpIHtcbiAgLy8gICAgICAgICB0aGlzLmRhcmtTdHlsZSA9IGF3YWl0IHRoaXMuaHR0cC5nZXQoJ2Fzc2V0cy9lY2hhcnRzL21hcC9qc29uL2N1c3RvbV9tYXAuanNvbicpLnRvUHJvbWlzZSgpO1xuICAvLyAgICAgICB9XG4gIC8vICAgICAgIHRoaXMubWFwLnNldE1hcFR5cGUoQk1BUF9OT1JNQUxfTUFQKTtcbiAgLy8gICAgICAgdGhpcy5tYXAuc2V0TWFwU3R5bGVWMih7IHN0eWxlSnNvbjogdGhpcy5kYXJrU3R5bGUgfSk7XG4gIC8vICAgICAgIGJyZWFrO1xuICAvLyAgICAgY2FzZSAnc2F0ZWxsaXRlJzpcbiAgLy8gICAgICAgdGhpcy5tYXAuc2V0TWFwVHlwZShCTUFQX1NBVEVMTElURV9NQVApO1xuICAvLyAgICAgICBicmVhaztcbiAgLy8gICAgIGNhc2UgJ2N1c3RvbSc6XG4gIC8vICAgICAgIGlmICh0aGlzLnVwbG9hZFN0eWxlKSB7XG4gIC8vICAgICAgICAgY29uc3Qgc3R5bGVKc29uID0gYXdhaXQgdGhpcy5odHRwLmdldCh0aGlzLnVwbG9hZFN0eWxlKS50b1Byb21pc2UoKTtcbiAgLy8gICAgICAgICB0aGlzLm1hcC5zZXRNYXBUeXBlKEJNQVBfTk9STUFMX01BUCk7XG4gIC8vICAgICAgICAgdGhpcy5tYXAuc2V0TWFwU3R5bGVWMih7IHN0eWxlSnNvbiB9KTtcbiAgLy8gICAgICAgfVxuICAvLyAgICAgICBicmVhaztcbiAgLy8gICAgIGRlZmF1bHQ6XG4gIC8vICAgICAgIHRoaXMubWFwLnNldE1hcFR5cGUoQk1BUF9OT1JNQUxfTUFQKTtcbiAgLy8gICAgICAgdGhpcy5tYXAuc2V0TWFwU3R5bGVWMih7IHN0eWxlSnNvbjogbnVsbCB9KTtcbiAgLy8gICB9XG4gIC8vIH1cbn1cbiJdfQ==
411
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlhbmRpdHUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2NyZWVuLXdpZGdldC9zcmMvbGliL3RpYW5kaXR1L3RpYW5kaXR1LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUVaLE1BQU0sRUFJTixRQUFRLEVBRVIsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hILE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztJQXNCbEIsaUJBQWlCLFNBQWpCLGlCQUFpQjtJQW9JNUIsWUFDVSxJQUFpQixFQUNqQixVQUFzQixFQUN0QixJQUFZLEVBQ0EsTUFBb0IsRUFDaEMsU0FBb0I7UUFKcEIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNqQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDQSxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFqSTlCLG1CQUFjLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsT0FBTztRQUNQLHdCQUF3QjtRQUN4QiwwQkFBMEI7UUFDMUIsK0dBQStHO1FBQy9HLHlCQUF5QjtRQUN6QixzQkFBc0I7UUFDdEIsK0JBQStCO1FBQy9C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RSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO0tBQ3ZHLENBQUM7O3FEQUNtQztBQU1yQztJQUpDLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFDbEIsS0FBSyxDQUFDLElBQUksRUFBRTtRQUNYLE1BQU0sRUFBRSxNQUFNO0tBQ2YsQ0FBQzs7cURBQ21DO0FBSXJDO0lBSEMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUNiLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7S0FDdkcsQ0FBQzs7bURBQ2lDO0FBckh4QixpQkFBaUI7SUFiN0IsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUNiLFFBQVEsRUFBRTtZQUNSO2dCQUNFLEtBQUssRUFBRSxLQUFLO2dCQUNaLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLE1BQU0sRUFBRSxFQUFFO2dCQUNWLE1BQU0sRUFBRSxJQUFJO2dCQUNaLFNBQVMsRUFBRSxJQUFJO2FBQ2hCO1NBQ0Y7UUFDRCxVQUFVLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztRQUNsQyxXQUFXLEVBQUUsY0FBYztLQUM1QixDQUFDO3FDQXNJZ0IsV0FBVztRQUNMLFVBQVU7UUFDaEIsTUFBTTtRQUNRLFlBQVk7UUFDckIsU0FBUztHQXpJbkIsaUJBQWlCLENBcVk3QjtTQXJZWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYXp5U2VydmljZSB9IGZyb20gJ0BkZWxvbi91dGlsJztcbmltcG9ydCB7IERhdGEsIERhdGFPdXRwdXQsIFByb3BlcnR5LCBTY2FsZVN1YmplY3QsIFdpZGdldCwgV2lkZ2V0UmVmLCBFdmVudCwgRGF0YUlucHV0IH0gZnJvbSAnYmJqLXdpZGdldC1iYXNlJztcbmltcG9ydCB7IHNjYWxlQWRhcHRlciwgYmQwOXRvd2dzODQsIGdjajAydG93Z3M4NCwgd2dzODR0b2djajAyLCB3Z3M4NHRvYmQwOSB9IGZyb20gJ2Jiai1zY3JlZW4td2lkZ2V0L2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5kZWNsYXJlIHZhciBUOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NjLXRpYW5kaXR1JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RpYW5kaXR1LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGlhbmRpdHUuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5AV2lkZ2V0KCflpKnlnLDlm74nLCB7XG4gIGNoaWxkcmVuOiBbXG4gICAge1xuICAgICAgdGl0bGU6ICfmoIforrDlsYInLFxuICAgICAgdHlwZTogJ3NjLXRpYW5kaXR1LW1hcmtlcicsXG4gICAgICBvcHRpb246IHt9LFxuICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgaGlkZUNoaWxkOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGNoaWxkVHlwZXM6IFsnc2MtdGlhbmRpdHUtbWFya2VyJ10sXG4gIGRlc2NyaXB0aW9uOiAnaGFzQ2hpbGRJdGVtJyxcbn0pXG5leHBvcnQgY2xhc3MgVGlhbmRpdHVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQFByb3BlcnR5KCflnZDmoIfns7snLCB7XG4gICAgZW51bTogW1xuICAgICAgeyBsYWJlbDogJ+eZvuW6puWdkOaghycsIHZhbHVlOiAnQkQtMDknIH0sXG4gICAgICB7IGxhYmVsOiAn6auY5b63L+iFvuiur+WdkOaghycsIHZhbHVlOiAnR0NKLTAyJyB9LFxuICAgICAgeyBsYWJlbDogJ+WkqeWcsOWbvuWdkOaghycsIHZhbHVlOiAnV0dTODQnIH0sXG4gICAgXSxcbiAgfSlcbiAgY29vcmRpbmF0ZVR5cGUgPSAnQkQtMDknO1xuICAvLyAgQFByb3BlcnR5KCflnLDlm77nsbvlnosnLCB7XG4gIC8vICAgICBlbnVtOiBNYXBUeXBlRW51bSxcbiAgLy8gICB9KVxuICAvLyAgIG1hcFR5cGUgPSAnbm9ybWFsJztcbiAgLy8gICBtYXBUeXBlVmFsdWU6IHN0cmluZztcbiAgLy8gICBAUHJvcGVydHkoJ+S4iuS8oOagt+W8jycsIHsgdHlwZTogJ3N0cmluZycsIHVpOiB7IHdpZGdldDogJ215VXBsb2FkQXVkaW8nLCB2aXNpYmxlSWY6IHsgbWFwVHlwZTogWydjdXN0b20nXSB9IH0gfSlcbiAgLy8gICB1cGxvYWRTdHlsZTogc3RyaW5nO1xuICAvLyAgIEBQcm9wZXJ0eSgn5YiH5o2i5oyJ6ZKuJylcbiAgLy8gICBzaG93TWFwVHlwZVJhZGlvOiBib29sZWFuO1xuICAvLyAgIEBQcm9wZXJ0eSgn5YWo5pmv5Zyw5Zu+JywgeyB0eXBlOiAnYm9vbGVhbicgfSlcbiAgLy8gICBtaW5NYXBTaG93ID0gZmFsc2U7XG4gIC8vICAgQFByb3BlcnR5KCfmmL7npLrkv6Hmga8nLCB7XG4gIC8vICAgICB1aTogeyB3aWRnZXQ6ICdzZWxlY3QnIH0sXG4gIC8vICAgICBlbnVtOiBbXG4gIC8vICAgICAgIHsgbGFiZWw6ICfngrnlh7snLCB2YWx1ZTogJ2NsaWNrJyB9LFxuICAvLyAgICAgICB7IGxhYmVsOiAn5oKs5YGcJywgdmFsdWU6ICdtb3VzZW92ZXInIH0sXG4gIC8vICAgICBdLFxuICAvLyAgIH0pXG4gIC8vICAgc2hvd1R5cGUgPSAnY2xpY2snO1xuICAvLyAgIEBQcm9wZXJ0eSgn5L+h5oGv56qX6IOM5pmvJywgeyB1aTogeyB3aWRnZXQ6ICdteUNvbG9yJyB9IH0pXG4gIC8vICAgaW5mb1dpbmRvd0JhY2tncm91bmQ6IHN0cmluZztcbiAgLy8gICBAUHJvcGVydHkoJ+S/oeaBr+eql+Wtl+S9kycsIHsgdWk6IHsgd2lkZ2V0OiAnbXlDb2xvcicgfSB9KVxuICAvLyAgIGluZm9XaW5kb3dDb2xvcjogc3RyaW5nO1xuICAvLyAgIEBQcm9wZXJ0eSgn5L+h5oGv56qX5a695bqmJylcbiAgLy8gICBpbmZvV2luZG93V2lkdGg6IG51bWJlcjtcbiAgLy8gICBAUHJvcGVydHkoJ+S/oeaBr+eql+mrmOW6picpXG4gIC8vICAgaW5mb1dpbmRvd0hlaWdodDogbnVtYmVyO1xuICAvLyAgIEBQcm9wZXJ0eSgn5L+h5oGv56qX5qih5p2/JywgeyB1aTogeyB3aWRnZXQ6ICd0ZXh0YXJlYScgfSB9KVxuICAvLyAgIGluZm9XaW5kb3dUZW1wbGF0ZTogc3RyaW5nO1xuICAvLyAgIEBQcm9wZXJ0eSgn5L+h5oGv56qX6L655qGGJywge1xuICAvLyAgICAgdWk6IHsgd2lkZ2V0OiAnbXlDb2xvcicgfSxcbiAgLy8gICAgIGV4YW1wbGU6IFsnI2ZmZmZmZicsICcjRjVBNjIzJywgJyNGOEU3MUMnLCAnIzUwRTNDMicsICcjMzI4NUZGJywgJyNCNDVGRkYnLCAnIzlCOUI5QicsIG51bGxdLFxuICAvLyAgIH0pXG4gIC8vICAgaW5mb1dpbmRvd0JvcmRlckNvbG9yOiBzdHJpbmc7XG4gIC8vICAgQFByb3BlcnR5KCfpmpDol4/lsJbop5InKVxuICAvLyAgIEBIb3N0QmluZGluZygnY2xhc3MuaGlkZUluZm9XaW5kb3dUYWlsJylcbiAgLy8gICBoaWRlSW5mb1dpbmRvd1RhaWw6IGJvb2xlYW47XG4gIC8vICAgQFByb3BlcnR5KCfpmpDol4/lhbPpl63mjInpkq4nKVxuICAvLyAgIEBIb3N0QmluZGluZygnY2xhc3MuaGlkZUluZm9XaW5kb3dUb3AnKVxuICAvLyAgIGhpZGVJbmZvV2luZG93VG9wOiBib29sZWFuO1xuICBAUHJvcGVydHkoJ+WcsOWbvuaLluWKqCcsIHsgdHlwZTogJ2Jvb2xlYW4nIH0pXG4gIGRyYWdnaW5nID0gdHJ1ZTtcblxuICAvLyBAUHJvcGVydHkoJ+mBrue9qeminOiJsicsIHtcbiAgLy8gICB1aTogeyB3aWRnZXQ6ICdteUNvbG9yJyB9LFxuICAvLyAgIGV4YW1wbGU6IFsnI2ZmZmZmZicsICcjRjVBNjIzJywgJyNGOEU3MUMnLCAnIzUwRTNDMicsICcjMzI4NUZGJywgJyNCNDVGRkYnLCAnIzlCOUI5QicsIG51bGxdLFxuICAvLyB9KVxuICAvLyBzaGFkZUNvbG9yID0gJyMwMDQzOTUnO1xuICAvLyBAUHJvcGVydHkoJ+iDjOaZr+minOiJsicsIHtcbiAgLy8gICB1aTogeyB3aWRnZXQ6ICdteUNvbG9yJyB9LFxuICAvLyAgIGV4YW1wbGU6IFsnI2ZmZmZmZicsICcjRjVBNjIzJywgJyNGOEU3MUMnLCAnIzUwRTNDMicsICcjMzI4NUZGJywgJyNCNDVGRkYnLCAnIzlCOUI5QicsIG51bGxdLFxuICAvLyB9KVxuICAvLyBtYXBCYWNrQ29sb3I6IHN0cmluZztcblxuICAvLyBAUHJvcGVydHkoJ+Wkmui+uee6v+iJsicsIHtcbiAgLy8gICB1aTogeyB3aWRnZXQ6ICdteUNvbG9yJyB9LFxuICAvLyAgIGV4YW1wbGU6IFsnI2ZmZmZmZicsICcjRjVBNjIzJywgJyNGOEU3MUMnLCAnIzUwRTNDMicsICcjMzI4NUZGJywgJyNCNDVGRkYnLCAnIzlCOUI5QicsIG51bGxdLFxuICAvLyB9KVxuICAvLyBtYXBDaXR5Q29sb3IgPSAnIzQxYjdmZic7XG4gIEBQcm9wZXJ0eSgn5Zyw5Zu+57yp5pS+Jywge1xuICAgIHVpOiB7IHdpZGdldDogJ215UmFuZ2UnLCBtaW46IDEsIG1heDogNDAsIHN0ZXA6IDEgfSxcbiAgfSlcbiAgem9vbSA9IDEyO1xuICAvLyBAUHJvcGVydHkoJ+mBrue9qemAj+aYjicsIHsgdHlwZTogJ251bWJlcicgfSlcbiAgLy8gZmlsbE9wYWNpdHkgPSAwO1xuICAvLyBAUHJvcGVydHkoJ+Wkmui+uee6v+eylycsIHsgdHlwZTogJ251bWJlcicgfSlcbiAgLy8gc3Ryb2tlc2l6ZSA9IDI7XG4gIC8vIEBQcm9wZXJ0eSgn6buR5aSc5qih5byPJywgeyB0eXBlOiAnYm9vbGVhbicsIHVpOiB7IGhpZGRlbjogdHJ1ZSB9IH0pXG4gIC8vIG5pZ2h0TW9kZSA9IGZhbHNlO1xuICAvLyBAUHJvcGVydHkoJzNE6KeG6KeSJylcbiAgLy8gZW5hYmxlM0Q6IGJvb2xlYW47XG4gIC8vIEBQcm9wZXJ0eSgn5a6a5L2N5o6n5Lu2JylcbiAgLy8gc2hvd0xvY2F0aW9uQ29udHJvbDogYm9vbGVhbjtcbiAgLy8gQFByb3BlcnR5KCfliJ3lp4vop5LluqYnLCB7IHR5cGU6ICdudW1iZXInLCB1aTogeyB2aXNpYmxlSWY6IHsgZW5hYmxlM0Q6IFt0cnVlXSB9IH0gfSlcbiAgLy8gdGlsdCA9IDczO1xuXG4gIC8vIGNlbnRlckxuZyA9IDEyMC43O1xuXG4gIC8vIGNlbnRlckxhdCA9IDI4O1xuICAvLyBAUHJvcGVydHkoJ+aYvuekuuecgeW4gicsIHtcbiAgLy8gICB1aToge1xuICAvLyAgICAgd2lkZ2V0OiAnbXlVcmxTZWxlY3QnLFxuICAvLyAgICAgYWxsb3dDbGVhcjogdHJ1ZSxcbiAgLy8gICAgIHVybDogJy9hc3NldHMvbWFwTGlzdEl0ZW0uanNvbicsXG4gIC8vICAgfSxcbiAgLy8gfSlcbiAgLy8gY2l0eU5hbWUgPSBudWxsO1xuICBARGF0YSh7XG4gICAgcHJvcGVydGllczoge1xuICAgICAgbG5nOiB7IHR5cGU6ICdudW1iZXInLCB0aXRsZTogJ+e7j+W6picgfSxcbiAgICAgIGxhdDogeyB0eXBlOiAnbnVtYmVyJywgdGl0bGU6ICfnuqzluqYnIH0sXG4gICAgfSxcbiAgfSlcbiAgZGF0YTogYW55W10gPSBbeyBsbmc6IDEyMC43LCBsYXQ6IDI4IH1dO1xuICBARGF0YU91dHB1dChbJ2xuZycsICdsYXQnXSlcbiAgQEV2ZW50KCfkuK3lv4PngrnmlLnlj5gnLCB7XG4gICAgcGFyYW1zOiB7IHByb3BlcnRpZXM6IHsgbG5nOiB7IHRpdGxlOiAn57uP5bqmJywgdHlwZTogJ251bWJlcicgfSwgbGF0OiB7IHRpdGxlOiAn57qs5bqmJywgdHlwZTogJ251bWJlcicgfSB9IH0sXG4gIH0pXG4gIGRhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBARGF0YU91dHB1dCgn57yp5pS+562J57qnJylcbiAgQEV2ZW50KCfnvKnmlL4nLCB7XG4gICAgcGFyYW1zOiAn57yp5pS+562J57qnJyxcbiAgfSlcbiAgem9vbUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBARXZlbnQoJ+WcsOWbvueCueWHuycsIHtcbiAgICBwYXJhbXM6IHsgcHJvcGVydGllczogeyBsbmc6IHsgdGl0bGU6ICfnu4/luqYnLCB0eXBlOiAnbnVtYmVyJyB9LCBsYXQ6IHsgdGl0bGU6ICfnuqzluqYnLCB0eXBlOiAnbnVtYmVyJyB9IH0gfSxcbiAgfSlcbiAgbWFwQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJylcbiAgY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGVkaXQ6IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBhbnlbXTtcbiAgbWFwOiBhbnk7XG4gIGNlbnRlckxuZzogbnVtYmVyO1xuICBjZW50ZXJMYXQ6IG51bWJlcjtcbiAgZGVzdHJveWVkOiBib29sZWFuO1xuICBwcml2YXRlIGluaXRlZDogKG1hcDogYW55KSA9PiB2b2lkO1xuICBpbml0JCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgdGhpcy5pbml0ZWQgPSByZXNvbHZlO1xuICB9KTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsYXp5OiBMYXp5U2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBzY2FsZSQ6IFNjYWxlU3ViamVjdCxcbiAgICBwcml2YXRlIHdpZGdldFJlZjogV2lkZ2V0UmVmLFxuICApIHt9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuc2NhbGUkKSB7XG4gICAgICBzY2FsZUFkYXB0ZXIodGhpcy5zY2FsZSQsIHRoaXMuZGVzdHJveSQsIHRoaXMuem9uZSwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMud2lkZ2V0UmVmKTtcbiAgICB9XG4gICAgdGhpcy5pbml0TWFwKCk7XG4gIH1cblxuICBhc3luYyBpbml0TWFwKCkge1xuICAgIGF3YWl0IHRoaXMubGF6eS5sb2FkU2NyaXB0KCdodHRwczovL2FwaS50aWFuZGl0dS5nb3YuY24vYXBpP3Y9NC4wJnRrPWFjYmUwMDliOWI5Y2MyYzhmMzY5YjY0MTVmYzhkYzk5Jyk7XG4gICAgaWYgKCF0aGlzLmRlc3Ryb3llZCkge1xuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogYW55ID0ge1xuICAgICAgICAgIHpvb206IHRoaXMuem9vbSxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHRoaXMuY2VudGVyTG5nICYmIHRoaXMuY2VudGVyTGF0KSB7XG4gICAgICAgICAgb3B0aW9ucy5jZW50ZXIgPSB0aGlzLmNyZWF0ZUxuZ0xhdCh0aGlzLmNlbnRlckxuZywgdGhpcy5jZW50ZXJMYXQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWFwID0gbmV3IFQuTWFwKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICBjZW50ZXI6IHRoaXMuY3JlYXRlTG5nTGF0KHRoaXMuY2VudGVyTG5nIHx8IDEyMC43LCB0aGlzLmNlbnRlckxhdCB8fCAyOCksXG4gICAgICAgICAgem9vbTogdGhpcy56b29tLFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gdGhpcy5tYXBUeXBlQ2hhbmdlKHRoaXMubWFwVHlwZVZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuZWRpdCB8fCB0aGlzLmRyYWdnaW5nID09PSBmYWxzZSkge1xuICAgICAgICAgIHRoaXMubWFwLmRpc2FibGVEcmFnKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgKHRoaXMuZW5hYmxlM0QpIHtcbiAgICAgICAgLy8gICB0aGlzLm1hcC5zZXRUaWx0KHRoaXMudGlsdCA9PSBudWxsID8gNzMgOiB0aGlzLnRpbHQsIHsgbm9BbmltYXRpb246IHRydWUgfSk7XG4gICAgICAgIC8vICAgdGhpcy5tYXAuc2V0RGlzcGxheU9wdGlvbnMoeyBza3lDb2xvcnM6IFsncmdiYSgwLCAwLCAwLCAwKSddIH0pOyAvLyDpmpDol4/lpKnnqbpcbiAgICAgICAgLy8gICAvLyBjb25zdCBuYXZpM0RDdHJsID0gbmV3IEJNYXBHTC5OYXZpZ2F0aW9uQ29udHJvbDNEKCk7IC8vIOa3u+WKoDNE5o6n5Lu2XG4gICAgICAgIC8vICAgLy8gdGhpcy5tYXAuYWRkQ29udHJvbChuYXZpM0RDdHJsKTtcbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgLy8gICB0aGlzLm1hcC5kaXNhYmxlVGlsdCgpO1xuICAgICAgICAvLyAgIHRoaXMubWFwLmRpc2FibGVSb3RhdGUoKTtcbiAgICAgICAgLy8gfVxuICAgICAgICAvLyBpZiAodGhpcy5zaG93TG9jYXRpb25Db250cm9sKSB7XG4gICAgICAgIC8vICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgLy8gICAgIC8vIOaOp+S7tueahOWBnOmdoOS9jee9ru+8iOWPr+mAie+8jOm7mOiupOW3puS4iuinku+8iVxuICAgICAgICAvLyAgICAgYW5jaG9yOiBCTUFQX0FOQ0hPUl9UT1BfTEVGVCxcbiAgICAgICAgLy8gICAgIC8vIOaOp+S7tuWfuuS6juWBnOmdoOS9jee9rueahOWBj+enu+mHj++8iOWPr+mAie+8iVxuICAgICAgICAvLyAgICAgb2Zmc2V0OiBuZXcgQk1hcEdMLlNpemUoMjAsIDIwKSxcbiAgICAgICAgLy8gICB9O1xuICAgICAgICAvLyAgIGxldCBsb2NhdGlvbkNvbnRyb2wgPSBuZXcgQk1hcEdMLkxvY2F0aW9uQ29udHJvbChvcHRpb25zKTtcbiAgICAgICAgLy8gICAvLyDlsIbmjqfku7bmt7vliqDliLDlnLDlm77kuIpcbiAgICAgICAgLy8gICB0aGlzLm1hcC5hZGRDb250cm9sKGxvY2F0aW9uQ29udHJvbCk7XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gaWYgKHRoaXMubWluTWFwU2hvdykge1xuICAgICAgICAvLyAgIGNvbnN0IHN0Q3RybCA9IG5ldyBCTWFwR0wuUGFub3JhbWFDb250cm9sKCk7XG4gICAgICAgIC8vICAgc3RDdHJsLnNldE9mZnNldChuZXcgQk1hcEdMLlNpemUoMjAsIDIwKSk7XG4gICAgICAgIC8vICAgdGhpcy5tYXAuYWRkQ29udHJvbChzdEN0cmwpO1xuICAgICAgICAvLyB9XG4gICAgICAgIC8vIGlmICh0aGlzLmluZm9XaW5kb3dCYWNrZ3JvdW5kKSB7XG4gICAgICAgIC8vICAgdGhpcy5lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8td2luZG93LWJhY2tncm91bmQnLCB0aGlzLmluZm9XaW5kb3dCYWNrZ3JvdW5kKTtcbiAgICAgICAgLy8gfVxuICAgICAgICAvLyBpZiAodGhpcy5pbmZvV2luZG93Q29sb3IpIHtcbiAgICAgICAgLy8gICB0aGlzLmVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby13aW5kb3ctY29sb3InLCB0aGlzLmluZm9XaW5kb3dDb2xvcik7XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gaWYgKHRoaXMuaW5mb1dpbmRvd0JvcmRlckNvbG9yKSB7XG4gICAgICAgIC8vICAgdGhpcy5lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8td2luZG93LWJvcmRlci1jb2xvcicsIHRoaXMuaW5mb1dpbmRvd0JvcmRlckNvbG9yKTtcbiAgICAgICAgLy8gfVxuICAgICAgICB0aGlzLm1hcC5hZGRFdmVudExpc3RlbmVyKCdtb3ZlZW5kJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgY2VudGVyID0gdGhpcy5tYXAuZ2V0Q2VudGVyKCk7XG4gICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQodGhpcy50cmFuc2ZlckNvb3JkaW5hdGUoY2VudGVyKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1hcC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChldmVudCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGV2ZW50KTtcbiAgICAgICAgICB0aGlzLm1hcENsaWNrLmVtaXQodGhpcy50cmFuc2ZlckNvb3JkaW5hdGUoZXZlbnQubG5nbGF0KSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1hcC5hZGRFdmVudExpc3RlbmVyKCd6b29tZW5kJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy56b29tQ2hhbmdlLmVtaXQodGhpcy5tYXAuZ2V0Wm9vbSgpKTtcbiAgICAgICAgICB0aGlzLmRhdGFDaGFuZ2UuZW1pdCh0aGlzLnRyYW5zZmVyQ29vcmRpbmF0ZSh0aGlzLm1hcC5nZXRDZW50ZXIoKSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tYXBMb2FkZWQodGhpcy5tYXApO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmluaXRlZCh0aGlzLm1hcCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmRhdGEgJiYgdGhpcy5kYXRhWzBdKSB7XG4gICAgICBjb25zdCB7IGxuZywgbGF0IH0gPSB0aGlzLmRhdGFbMF07XG4gICAgICBpZiAobG5nICYmIGxhdCkge1xuICAgICAgICB0aGlzLnNldENlbnRlcigrbG5nLCArbGF0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xuICB9XG5cbiAgY3JlYXRlTG5nTGF0KGxuZzogbnVtYmVyLCBsYXQ6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmNvb3JkaW5hdGVUeXBlID09PSAnQkQtMDknKSB7XG4gICAgICBbbG5nLCBsYXRdID0gYmQwOXRvd2dzODQobG5nLCBsYXQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb29yZGluYXRlVHlwZSA9PT0gJ0dDSi0wMicpIHtcbiAgICAgIFtsbmcsIGxhdF0gPSBnY2owMnRvd2dzODQobG5nLCBsYXQpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFQuTG5nTGF0KGxuZywgbGF0KTtcbiAgfVxuXG4gIHRyYW5zZmVyQ29vcmRpbmF0ZShsYXRsbmc6IHsgbGF0OiBudW1iZXI7IGxuZzogbnVtYmVyIH0pIHtcbiAgICBpZiAoIWxhdGxuZykge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBsZXQgeyBsbmcsIGxhdCB9ID0gbGF0bG5nO1xuICAgIGlmICh0aGlzLmNvb3JkaW5hdGVUeXBlID09PSAnQkQtMDknKSB7XG4gICAgICBbbG5nLCBsYXRdID0gd2dzODR0b2JkMDkobG5nLCBsYXQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb29yZGluYXRlVHlwZSA9PT0gJ0dDSi0wMicpIHtcbiAgICAgIFtsbmcsIGxhdF0gPSB3Z3M4NHRvZ2NqMDIobG5nLCBsYXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbGF0bG5nO1xuICAgIH1cbiAgICByZXR1cm4geyBsbmcsIGxhdCB9O1xuICB9XG5cbiAgc2V0Q2VudGVyKGxuZzogbnVtYmVyLCBsYXQ6IG51bWJlcikge1xuICAgIGlmICh0aGlzLm1hcCAmJiBsbmcgJiYgbGF0KSB7XG4gICAgICBjb25zdCBjZW50ZXIgPSB0aGlzLm1hcC5nZXRDZW50ZXIoKTtcbiAgICAgIGlmIChjZW50ZXIubG5nICE9IGxuZyB8fCBjZW50ZXIubGF0ICE9IGxhdCkge1xuICAgICAgICB0aGlzLnNldENlbnRlckFuZFpvb20obG5nLCBsYXQsIHRoaXMubWFwLmdldFpvb20oKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0Q2VudGVyQW5kWm9vbShsbmc6IG51bWJlciwgbGF0OiBudW1iZXIsIHpvb206IG51bWJlcikge1xuICAgIGNvbnN0IGNlbnRlciA9IHRoaXMubWFwLmdldENlbnRlcigpO1xuICAgIGNvbnN0IGN1cnJlbnRab29tID0gdGhpcy5tYXAuZ2V0Wm9vbSgpO1xuICAgIC8vIOivr+W3ruiMg+WbtOWGheS4jeenu+WKqCzpmLLmraLog4zmma/mipbliqhcbiAgICBpZiAoem9vbSAhPSBjdXJyZW50Wm9vbSB8fCBNYXRoLmFicyhsbmcgLSBjZW50ZXIubG5nKSA+IDFlLTEzIHx8IE1hdGguYWJzKGxhdCAtIGNlbnRlci5sYXQpID4gMWUtNykge1xuICAgICAgY29uc3QgcG9pbnQgPSB0aGlzLmNyZWF0ZUxuZ0xhdChsbmcsIGxhdCk7XG4gICAgICB0aGlzLm1hcC5jZW50ZXJBbmRab29tKHBvaW50LCB6b29tKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog5qC55o2u57uP57qs5bqm6IyD5Zu06K6+572u5Lit5b+D5ZKM57yp5pS+562J57qnXG4gICAqIEBwYXJhbSBtaW5MbmdcbiAgICogQHBhcmFtIG1heExuZ1xuICAgKiBAcGFyYW0gbWluTGF0XG4gICAqIEBwYXJhbSBtYXhMYXRcbiAgICovXG4gIHNldFJlY3RDZW50ZXJBbmRab29tKG1pbkxuZzogbnVtYmVyLCBtYXhMbmc6IG51bWJlciwgbWluTGF0OiBudW1iZXIsIG1heExhdDogbnVtYmVyKSB7XG4gICAgY29uc3QgcG9pbnRCID0gdGhpcy5jcmVhdGVMbmdMYXQobWluTG5nLCBtaW5MYXQpO1xuICAgIGNvbnN0IHBvaW50QSA9IHRoaXMuY3JlYXRlTG5nTGF0KG1heExuZywgbWF4TGF0KTtcbiAgICB0aGlzLm1hcC5zZXRWaWV3cG9ydChbcG9pbnRBLCBwb2ludEJdKTtcbiAgfVxuXG4gIGFzeW5jIG1hcExvYWRlZChtYXA6IGFueSkge1xuICAgIC8vIGlmICh0aGlzLmNpdHlOYW1lKSB7XG4gICAgLy8gICBpZiAodGhpcy5jaXR5TmFtZSA9PT0gJ+a4qeW3nicpIHtcbiAgICAvLyAgICAgdGhpcy5jaXR5TmFtZSA9ICd3ZW56aG91JztcbiAgICAvLyAgIH1cbiAgICAvLyAgIGNvbnN0IGpzb246IGFueSA9IGF3YWl0IHRoaXMuaHR0cC5nZXQoJ2Fzc2V0cy9lY2hhcnRzL21hcC9qc29uLycgKyB0aGlzLmNpdHlOYW1lICsgJy5qc29uJykudG9Qcm9taXNlKCk7XG4gICAgLy8gICBjb25zdCBwb2x5Z29uRGF0YSA9IFtdO1xuICAgIC8vICAgbGV0IGVuY29kZVNjYWxlID0ganNvbi5VVEY4U2NhbGUgfHwgMTAyNDtcbiAgICAvLyAgIGpzb24uZmVhdHVyZXMuZm9yRWFjaCgoeyBnZW9tZXRyeSB9KSA9PiB7XG4gICAgLy8gICAgIGdlb21ldHJ5LmNvb3JkaW5hdGVzID0gKGdlb21ldHJ5LmNvb3JkaW5hdGVzIGFzIGFueVtdKS5mb3JFYWNoKChjb29yZGluYXRlLCBpKSA9PiB7XG4gICAgLy8gICAgICAgaWYgKGdlb21ldHJ5LnR5cGUgPT09ICdNdWx0aVBvbHlnb24nKSB7XG4gICAgLy8gICAgICAgICBjb25zdCBjb29yZGluYXRlcyA9IChjb29yZGluYXRlIGFzIGFueVtdKS5tYXAoKHBvaW50cywgaikgPT4ge1xuICAgIC8vICAgICAgICAgICBpZiAoanNvbi5VVEY4RW5jb2RpbmcpIHtcbiAgICAvLyAgICAgICAgICAgICBwb2ludHMgPSB0aGlzLmRlY29kZVBvbHlnb24ocG9pbnRzLCBnZW9tZXRyeS5lbmNvZGVPZmZzZXRzW2ldW2pdLCBlbmNvZGVTY2FsZSk7XG4gICAgLy8gICAgICAgICAgIH1cbiAgICAvLyAgICAgICAgICAgcmV0dXJuIHBvaW50cztcbiAgICAvLyAgICAgICAgIH0pO1xuICAgIC8vICAgICAgICAgcG9seWdvbkRhdGEucHVzaChjb29yZGluYXRlcyk7XG4gICAgLy8gICAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIGlmIChqc29uLlVURjhFbmNvZGluZykge1xuICAgIC8vICAgICAgICAgICBjb29yZGluYXRlID0gdGhpcy5kZWNvZGVQb2x5Z29uKGNvb3JkaW5hdGUsIGdlb21ldHJ5LmVuY29kZU9mZnNldHNbaV0sIGVuY29kZVNjYWxlKTtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgICAgIHBvbHlnb25EYXRhLnB1c2goW2Nvb3JkaW5hdGVdKTtcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH0pO1xuICAgIC8vICAgfSk7XG4gICAgLy8gICBjb25zdCBkYXRhID0gW1xuICAgIC8vICAgICB7XG4gICAgLy8gICAgICAgZ2VvbWV0cnk6IHtcbiAgICAvLyAgICAgICAgIHR5cGU6ICdNdWx0aVBvbHlnb24nLFxuICAgIC8vICAgICAgICAgY29vcmRpbmF0ZXM6IHBvbHlnb25EYXRhLFxuICAgIC8vICAgICAgIH0sXG4gICAgLy8gICAgIH0sXG4gICAgLy8gICBdO1xuICAgIC8vICAgdmFyIGxheWVyID0gbmV3IG1hcHZnbC5Qb2x5Z29uTGF5ZXIoe1xuICAgIC8vICAgICBsaW5lQ29sb3I6IHRoaXMubWFwQ2l0eUNvbG9yLFxuICAgIC8vICAgICBsaW5lV2lkdGg6IHRoaXMuc3Ryb2tlc2l6ZSB8fCAyLFxuICAgIC8vICAgICBmaWxsQ29sb3I6IHRoaXMuc2hhZGVDb2xvcixcbiAgICAvLyAgICAgZGF0YSxcbiAgICAvLyAgICAgcmVuZGVyT3JkZXI6IC0yLFxuICAgIC8vICAgfSk7XG4gICAgLy8gICB0aGlzLnZpZXcuYWRkTGF5ZXIobGF5ZXIpO1xuICAgIC8vICAgaWYgKHRoaXMubWFwQmFja0NvbG9yICYmICF0aGlzLm1hcEJhY2tDb2xvci5tYXRjaCgvcmdiYVxcKFxcZCssXFxkKyxcXGQrLDBcXCkvKSkge1xuICAgIC8vICAgICB2YXIgbWFza0xheWVyID0gbmV3IG1hcHZnbC5NYXNrTGF5ZXIoe1xuICAgIC8vICAgICAgIGNvbG9yOiB0aGlzLm1hcEJhY2tDb2xvcixcbiAgICAvLyAgICAgICBkYXRhLFxuICAgIC8vICAgICAgIHJlbmRlck9yZGVyOiAtMyxcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gICAgIHRoaXMudmlldy5hZGRMYXllcihtYXNrTGF5ZXIpO1xuICAgIC8vICAgfVxuICAgIC8vIH1cbiAgfVxuXG4gIGRlY29kZVBvbHlnb24oY29vcmRpbmF0ZTogc3RyaW5nLCBlbmNvZGVPZmZzZXRzOiBudW1iZXJbXSwgZW5jb2RlU2NhbGU6IG51bWJlcikge1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgIGxldCBwcmV2WCA9IGVuY29kZU9mZnNldHNbMF07XG4gICAgbGV0IHByZXZZID0gZW5jb2RlT2Zmc2V0c1sxXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29vcmRpbmF0ZS5sZW5ndGg7IGkgKz0gMikge1xuICAgICAgdmFyIHggPSBjb29yZGluYXRlLmNoYXJDb2RlQXQoaSkgLSA2NDtcbiAgICAgIHZhciB5ID0gY29vcmRpbmF0ZS5jaGFyQ29kZUF0KGkgKyAxKSAtIDY0O1xuICAgICAgLy8gWmlnWmFnIGRlY29kaW5nXG4gICAgICB4ID0gKHggPj4gMSkgXiAtKHggJiAxKTtcbiAgICAgIHkgPSAoeSA+PiAxKSBeIC0oeSAmIDEpO1xuICAgICAgLy8gRGVsdGEgZGVvY2RpbmdcbiAgICAgIHggKz0gcHJldlg7XG4gICAgICB5ICs9IHByZXZZO1xuXG4gICAgICBwcmV2WCA9IHg7XG4gICAgICBwcmV2WSA9IHk7XG4gICAgICAvLyBEZXF1YW50aXplXG4gICAgICByZXN1bHQucHVzaChbeCAvIGVuY29kZVNjYWxlLCB5IC8gZW5jb2RlU2NhbGVdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gYXN5bmMgbWFwVHlwZUNoYW5nZShtYXBUeXBlOiBzdHJpbmcpIHtcbiAgLy8gICBzd2l0Y2ggKG1hcFR5cGUpIHtcbiAgLy8gICAgIGNhc2UgJ2RhcmsnOlxuICAvLyAgICAgICBpZiAoIXRoaXMuZGFya1N0eWxlKSB7XG4gIC8vICAgICAgICAgdGhpcy5kYXJrU3R5bGUgPSBhd2FpdCB0aGlzLmh0dHAuZ2V0KCdhc3NldHMvZWNoYXJ0cy9tYXAvanNvbi9jdXN0b21fbWFwLmpzb24nKS50b1Byb21pc2UoKTtcbiAgLy8gICAgICAgfVxuICAvLyAgICAgICB0aGlzLm1hcC5zZXRNYXBUeXBlKEJNQVBfTk9STUFMX01BUCk7XG4gIC8vICAgICAgIHRoaXMubWFwLnNldE1hcFN0eWxlVjIoeyBzdHlsZUpzb246IHRoaXMuZGFya1N0eWxlIH0pO1xuICAvLyAgICAgICBicmVhaztcbiAgLy8gICAgIGNhc2UgJ3NhdGVsbGl0ZSc6XG4gIC8vICAgICAgIHRoaXMubWFwLnNldE1hcFR5cGUoQk1BUF9TQVRFTExJVEVfTUFQKTtcbiAgLy8gICAgICAgYnJlYWs7XG4gIC8vICAgICBjYXNlICdjdXN0b20nOlxuICAvLyAgICAgICBpZiAodGhpcy51cGxvYWRTdHlsZSkge1xuICAvLyAgICAgICAgIGNvbnN0IHN0eWxlSnNvbiA9IGF3YWl0IHRoaXMuaHR0cC5nZXQodGhpcy51cGxvYWRTdHlsZSkudG9Qcm9taXNlKCk7XG4gIC8vICAgICAgICAgdGhpcy5tYXAuc2V0TWFwVHlwZShCTUFQX05PUk1BTF9NQVApO1xuICAvLyAgICAgICAgIHRoaXMubWFwLnNldE1hcFN0eWxlVjIoeyBzdHlsZUpzb24gfSk7XG4gIC8vICAgICAgIH1cbiAgLy8gICAgICAgYnJlYWs7XG4gIC8vICAgICBkZWZhdWx0OlxuICAvLyAgICAgICB0aGlzLm1hcC5zZXRNYXBUeXBlKEJNQVBfTk9STUFMX01BUCk7XG4gIC8vICAgICAgIHRoaXMubWFwLnNldE1hcFN0eWxlVjIoeyBzdHlsZUpzb246IG51bGwgfSk7XG4gIC8vICAgfVxuICAvLyB9XG59XG4iXX0=
@@ -19606,8 +19606,14 @@ let TiandituComponent = class TiandituComponent {
19606
19606
  yield this.lazy.loadScript('https://api.tianditu.gov.cn/api?v=4.0&tk=acbe009b9b9cc2c8f369b6415fc8dc99');
19607
19607
  if (!this.destroyed) {
19608
19608
  this.zone.runOutsideAngular(() => {
19609
+ const options = {
19610
+ zoom: this.zoom,
19611
+ };
19612
+ if (this.centerLng && this.centerLat) {
19613
+ options.center = this.createLngLat(this.centerLng, this.centerLat);
19614
+ }
19609
19615
  this.map = new T.Map(this.container.nativeElement, {
19610
- center: this.createLngLat(this.centerLng, this.centerLat),
19616
+ center: this.createLngLat(this.centerLng || 120.7, this.centerLat || 28),
19611
19617
  zoom: this.zoom,
19612
19618
  });
19613
19619
  // this.mapTypeChange(this.mapTypeValue);
@@ -19654,7 +19660,7 @@ let TiandituComponent = class TiandituComponent {
19654
19660
  });
19655
19661
  this.map.addEventListener('click', (event) => {
19656
19662
  console.log(event);
19657
- this.mapClick.emit(this.transferCoordinate(event.latlng));
19663
+ this.mapClick.emit(this.transferCoordinate(event.lnglat));
19658
19664
  });
19659
19665
  this.map.addEventListener('zoomend', (event) => {
19660
19666
  this.zoomChange.emit(this.map.getZoom());
@@ -19668,9 +19674,10 @@ let TiandituComponent = class TiandituComponent {
19668
19674
  }
19669
19675
  ngOnChanges(changes) {
19670
19676
  if (changes.data && this.data[0]) {
19671
- this.centerLng = +this.data[0].lng;
19672
- this.centerLat = +this.data[0].lat;
19673
- this.setCenter(this.centerLng, this.centerLat);
19677
+ const { lng, lat } = this.data[0];
19678
+ if (lng && lat) {
19679
+ this.setCenter(+lng, +lat);
19680
+ }
19674
19681
  }
19675
19682
  }
19676
19683
  ngOnDestroy() {
@@ -19688,6 +19695,9 @@ let TiandituComponent = class TiandituComponent {
19688
19695
  return new T.LngLat(lng, lat);
19689
19696
  }
19690
19697
  transferCoordinate(latlng) {
19698
+ if (!latlng) {
19699
+ return {};
19700
+ }
19691
19701
  let { lng, lat } = latlng;
19692
19702
  if (this.coordinateType === 'BD-09') {
19693
19703
  [lng, lat] = wgs84tobd09(lng, lat);