text: import { __decorate } from "tslib";
  import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/core';
  import { NavigationEvent } from './datepicker-view-model';
  import { NgbDatepickerI18n } from './datepicker-i18n';
  import * as ɵngcc0 from '@angular/core';
  import * as ɵngcc1 from '@angular/common';
  import * as ɵngcc2 from './datepicker-navigation-select';
  
  var I18N_0;
  if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
      const MSG_EXTERNAL_ngb_datepicker_previous_month$$ESM2015_DATEPICKER_DATEPICKER_NAVIGATION_JS_1 = goog.getMsg("Previous month");
      I18N_0 = MSG_EXTERNAL_ngb_datepicker_previous_month$$ESM2015_DATEPICKER_DATEPICKER_NAVIGATION_JS_1;
  }
  else {
      I18N_0 = $localize `:@@ngb.datepicker.previous-month␟c3b08b07b5ab98e7cdcf18df39355690ab7d3884␟8586908745456864217:Previous month`;
  }
  var I18N_2;
  if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
      const MSG_EXTERNAL_ngb_datepicker_previous_month$$ESM2015_DATEPICKER_DATEPICKER_NAVIGATION_JS_3 = goog.getMsg("Previous month");
      I18N_2 = MSG_EXTERNAL_ngb_datepicker_previous_month$$ESM2015_DATEPICKER_DATEPICKER_NAVIGATION_JS_3;
  }
  else {
      I18N_2 = $localize `:@@ngb.datepicker.previous-month␟c3b08b07b5ab98e7cdcf18df39355690ab7d3884␟8586908745456864217:Previous month`;
  }
  const _c4 = ["aria-label", I18N_0, "title", I18N_2];
  var I18N_5;
  if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
      const MSG_EXTERNAL_ngb_datepicker_next_month$$ESM2015_DATEPICKER_DATEPICKER_NAVIGATION_JS_6 = goog.getMsg("Next month");
      I18N_5 = MSG_EXTERNAL_ngb_datepicker_next_month$$ESM2015_DATEPICKER_DATEPICKER_NAVIGATION_JS_6;
  }
  else {
      I18N_5 = $localize `:@@ngb.datepicker.next-month␟4bd046985cfe13040d5ef0cd881edce0968a111a␟3628374603023447227:Next month`;
  }
  var I18N_7;
  if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) {
      const MSG_EXTERNAL_ngb_datepicker_next_month$$ESM2015_DATEPICKER_DATEPICKER_NAVIGATION_JS_8 = goog.getMsg("Next month");
      I18N_7 = MSG_EXTERNAL_ngb_datepicker_next_month$$ESM2015_DATEPICKER_DATEPICKER_NAVIGATION_JS_8;
  }
  else {
      I18N_7 = $localize `:@@ngb.datepicker.next-month␟4bd046985cfe13040d5ef0cd881edce0968a111a␟3628374603023447227:Next month`;
  }
  const _c9 = ["aria-label", I18N_5, "title", I18N_7];
  function NgbDatepickerNavigation_ngb_datepicker_navigation_select_4_Template(rf, ctx) { if (rf & 1) {
      const _r137 = ɵngcc0.ɵɵgetCurrentView();
      ɵngcc0.ɵɵelementStart(0, "ngb-datepicker-navigation-select", 6);
      ɵngcc0.ɵɵlistener("select", function NgbDatepickerNavigation_ngb_datepicker_navigation_select_4_Template_ngb_datepicker_navigation_select_select_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r137); const ctx_r136 = ɵngcc0.ɵɵnextContext(); return ctx_r136.select.emit($event); });
      ɵngcc0.ɵɵelementEnd();
  } if (rf & 2) {
      const ctx_r134 = ɵngcc0.ɵɵnextContext();
      ɵngcc0.ɵɵproperty("date", ctx_r134.date)("disabled", ctx_r134.disabled)("months", ctx_r134.selectBoxes.months)("years", ctx_r134.selectBoxes.years);
  } }
  function NgbDatepickerNavigation_5_ng_template_0_div_0_Template(rf, ctx) { if (rf & 1) {
      ɵngcc0.ɵɵelement(0, "div", 0);
  } }
  function NgbDatepickerNavigation_5_ng_template_0_div_3_Template(rf, ctx) { if (rf & 1) {
      ɵngcc0.ɵɵelement(0, "div", 0);
  } }
  function NgbDatepickerNavigation_5_ng_template_0_Template(rf, ctx) { if (rf & 1) {
      ɵngcc0.ɵɵtemplate(0, NgbDatepickerNavigation_5_ng_template_0_div_0_Template, 1, 0, "div", 8);
      ɵngcc0.ɵɵelementStart(1, "div", 9);
      ɵngcc0.ɵɵtext(2);
      ɵngcc0.ɵɵelementEnd();
      ɵngcc0.ɵɵtemplate(3, NgbDatepickerNavigation_5_ng_template_0_div_3_Template, 1, 0, "div", 8);
  } if (rf & 2) {
      const month_r139 = ctx.$implicit;
      const i_r140 = ctx.index;
      const ctx_r138 = ɵngcc0.ɵɵnextContext(2);
      ɵngcc0.ɵɵproperty("ngIf", i_r140 > 0);
      ɵngcc0.ɵɵadvance(2);
      ɵngcc0.ɵɵtextInterpolate2(" ", ctx_r138.i18n.getMonthFullName(month_r139.number, month_r139.year), " ", ctx_r138.i18n.getYearNumerals(month_r139.year), " ");
      ɵngcc0.ɵɵadvance(1);
      ɵngcc0.ɵɵproperty("ngIf", i_r140 !== ctx_r138.months.length - 1);
  } }
  function NgbDatepickerNavigation_5_Template(rf, ctx) { if (rf & 1) {
      ɵngcc0.ɵɵtemplate(0, NgbDatepickerNavigation_5_ng_template_0_Template, 4, 4, "ng-template", 7);
  } if (rf & 2) {
      const ctx_r135 = ɵngcc0.ɵɵnextContext();
      ɵngcc0.ɵɵproperty("ngForOf", ctx_r135.months);
  } }
  let NgbDatepickerNavigation = class NgbDatepickerNavigation {
      constructor(i18n) {
          this.i18n = i18n;
          this.navigation = NavigationEvent;
          this.months = [];
          this.navigate = new EventEmitter();
          this.select = new EventEmitter();
      }
      onClickPrev(event) {
          event.currentTarget.focus();
          this.navigate.emit(this.navigation.PREV);
      }
      onClickNext(event) {
          event.currentTarget.focus();
          this.navigate.emit(this.navigation.NEXT);
      }
  };
  NgbDatepickerNavigation.ɵfac = function NgbDatepickerNavigation_Factory(t) { return new (t || NgbDatepickerNavigation)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n)); };
  NgbDatepickerNavigation.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: NgbDatepickerNavigation, selectors: [["ngb-datepicker-navigation"]], inputs: { months: "months", date: "date", disabled: "disabled", showSelect: "showSelect", prevDisabled: "prevDisabled", nextDisabled: "nextDisabled", selectBoxes: "selectBoxes" }, outputs: { navigate: "navigate", select: "select" }, decls: 10, vars: 4, consts: [[1, "ngb-dp-arrow"], ["type", "button", 1, "btn", "btn-link", "ngb-dp-arrow-btn", 3, "disabled", "click", 6, "aria-label", "title"], [1, "ngb-dp-navigation-chevron"], ["class", "ngb-dp-navigation-select", 3, "date", "disabled", "months", "years", "select", 4, "ngIf"], [4, "ngIf"], [1, "ngb-dp-arrow", "right"], [1, "ngb-dp-navigation-select", 3, "date", "disabled", "months", "years", "select"], ["ngFor", "", 3, "ngForOf"], ["class", "ngb-dp-arrow", 4, "ngIf"], [1, "ngb-dp-month-name"]], template: function NgbDatepickerNavigation_Template(rf, ctx) { if (rf & 1) {
          ɵngcc0.ɵɵelementStart(0, "div", 0);
          ɵngcc0.ɵɵelementStart(1, "button", 1);
          ɵngcc0.ɵɵi18nAttributes(2, _c4);
          ɵngcc0.ɵɵlistener("click", function NgbDatepickerNavigation_Template_button_click_1_listener($event) { return ctx.onClickPrev($event); });
          ɵngcc0.ɵɵelement(3, "span", 2);
          ɵngcc0.ɵɵelementEnd();
          ɵngcc0.ɵɵelementEnd();
          ɵngcc0.ɵɵtemplate(4, NgbDatepickerNavigation_ngb_datepicker_navigation_select_4_Template, 1, 4, "ngb-datepicker-navigation-select", 3);
          ɵngcc0.ɵɵtemplate(5, NgbDatepickerNavigation_5_Template, 1, 1, undefined, 4);
          ɵngcc0.ɵɵelementStart(6, "div", 5);
          ɵngcc0.ɵɵelementStart(7, "button", 1);
          ɵngcc0.ɵɵi18nAttributes(8, _c9);
          ɵngcc0.ɵɵlistener("click", function NgbDatepickerNavigation_Template_button_click_7_listener($event) { return ctx.onClickNext($event); });
          ɵngcc0.ɵɵelement(9, "span", 2);
          ɵngcc0.ɵɵelementEnd();
          ɵngcc0.ɵɵelementEnd();
      } if (rf & 2) {
          ɵngcc0.ɵɵadvance(1);
          ɵngcc0.ɵɵproperty("disabled", ctx.prevDisabled);
          ɵngcc0.ɵɵadvance(3);
          ɵngcc0.ɵɵproperty("ngIf", ctx.showSelect);
          ɵngcc0.ɵɵadvance(1);
          ɵngcc0.ɵɵproperty("ngIf", !ctx.showSelect);
          ɵngcc0.ɵɵadvance(2);
          ɵngcc0.ɵɵproperty("disabled", ctx.nextDisabled);
      } }, directives: [ɵngcc1.NgIf, ɵngcc2.NgbDatepickerNavigationSelect, ɵngcc1.NgForOf], styles: ["ngb-datepicker-navigation{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;width:.75em;height:.75em;margin-left:.25em;margin-right:.15em;-webkit-transform:rotate(-135deg);transform:rotate(-135deg)}.right .ngb-dp-navigation-chevron{-webkit-transform:rotate(45deg);transform:rotate(45deg);margin-left:.15em;margin-right:.25em}.ngb-dp-arrow{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;padding-right:0;padding-left:0;margin:0;width:2rem;height:2rem}.ngb-dp-arrow.right{-ms-flex-pack:end;justify-content:flex-end}.ngb-dp-arrow-btn{padding:0 .25rem;margin:0 .5rem;border:none;background-color:transparent;z-index:1}.ngb-dp-arrow-btn:focus{outline-width:1px;outline-style:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{display:-ms-flexbox;display:flex;-ms-flex:1 1 9rem;flex:1 1 9rem}"], encapsulation: 2, changeDetection: 0 });
  NgbDatepickerNavigation.ctorParameters = () => [
      { type: NgbDatepickerI18n }
  ];
  __decorate([
      Input()
  ], NgbDatepickerNavigation.prototype, "date", void 0);
  __decorate([
      Input()
  ], NgbDatepickerNavigation.prototype, "disabled", void 0);
  __decorate([
      Input()
  ], NgbDatepickerNavigation.prototype, "months", void 0);
  __decorate([
      Input()
  ], NgbDatepickerNavigation.prototype, "showSelect", void 0);
  __decorate([
      Input()
  ], NgbDatepickerNavigation.prototype, "prevDisabled", void 0);
  __decorate([
      Input()
  ], NgbDatepickerNavigation.prototype, "nextDisabled", void 0);
  __decorate([
      Input()
  ], NgbDatepickerNavigation.prototype, "selectBoxes", void 0);
  __decorate([
      Output()
  ], NgbDatepickerNavigation.prototype, "navigate", void 0);
  __decorate([
      Output()
  ], NgbDatepickerNavigation.prototype, "select", void 0);
  /*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbDatepickerNavigation, [{
          type: Component,
          args: [{
                  selector: 'ngb-datepicker-navigation',
                  changeDetection: ChangeDetectionStrategy.OnPush,
                  encapsulation: ViewEncapsulation.None,
                  template: `
      <div class="ngb-dp-arrow">
        <button type="button" class="btn btn-link ngb-dp-arrow-btn" (click)="onClickPrev($event)" [disabled]="prevDisabled"
                i18n-aria-label="@@ngb.datepicker.previous-month" aria-label="Previous month"
                i18n-title="@@ngb.datepicker.previous-month" title="Previous month">
          <span class="ngb-dp-navigation-chevron"></span>
        </button>
      </div>
      <ngb-datepicker-navigation-select *ngIf="showSelect" class="ngb-dp-navigation-select"
        [date]="date"
        [disabled] = "disabled"
        [months]="selectBoxes.months"
        [years]="selectBoxes.years"
        (select)="select.emit($event)">
      </ngb-datepicker-navigation-select>
  
      <ng-template *ngIf="!showSelect" ngFor let-month [ngForOf]="months" let-i="index">
        <div class="ngb-dp-arrow" *ngIf="i > 0"></div>
        <div class="ngb-dp-month-name">
          {{ i18n.getMonthFullName(month.number, month.year) }} {{ i18n.getYearNumerals(month.year) }}
        </div>
        <div class="ngb-dp-arrow" *ngIf="i !== months.length - 1"></div>
      </ng-template>
      <div class="ngb-dp-arrow right">
        <button type="button" class="btn btn-link ngb-dp-arrow-btn" (click)="onClickNext($event)" [disabled]="nextDisabled"
                i18n-aria-label="@@ngb.datepicker.next-month" aria-label="Next month"
                i18n-title="@@ngb.datepicker.next-month" title="Next month">
          <span class="ngb-dp-navigation-chevron"></span>
        </button>
      </div>
      `,
                  styles: ["ngb-datepicker-navigation{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;width:.75em;height:.75em;margin-left:.25em;margin-right:.15em;-webkit-transform:rotate(-135deg);transform:rotate(-135deg)}.right .ngb-dp-navigation-chevron{-webkit-transform:rotate(45deg);transform:rotate(45deg);margin-left:.15em;margin-right:.25em}.ngb-dp-arrow{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;padding-right:0;padding-left:0;margin:0;width:2rem;height:2rem}.ngb-dp-arrow.right{-ms-flex-pack:end;justify-content:flex-end}.ngb-dp-arrow-btn{padding:0 .25rem;margin:0 .5rem;border:none;background-color:transparent;z-index:1}.ngb-dp-arrow-btn:focus{outline-width:1px;outline-style:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{display:-ms-flexbox;display:flex;-ms-flex:1 1 9rem;flex:1 1 9rem}"]
              }]
      }], function () { return [{ type: NgbDatepickerI18n }]; }, { months: [{
              type: Input
          }], navigate: [{
              type: Output
          }], select: [{
              type: Output
          }], date: [{
              type: Input
          }], disabled: [{
              type: Input
          }], showSelect: [{
              type: Input
          }], prevDisabled: [{
              type: Input
          }], nextDisabled: [{
              type: Input
          }], selectBoxes: [{
              type: Input
          }] }); })();
  export { NgbDatepickerNavigation };
  
  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1uYXZpZ2F0aW9uLmpzIiwic291cmNlcyI6WyJuZzovQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAvZGF0ZXBpY2tlci9kYXRlcGlja2VyLW5hdmlnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFDLGVBQWUsRUFBaUIsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVDcEQsSUFBYSx1QkFBdUIsR0FBcEMsTUFBYSx1QkFBdUI7SUFjbEMsWUFBbUIsSUFBdUI7UUFBdkIsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFiMUMsZUFBVSxHQUFHLGVBQWUsQ0FBQztRQUlwQixXQUFNLEdBQXFCLEVBQUUsQ0FBQztRQU03QixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDL0MsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFRixDQUFDO0lBRTlDLFdBQVcsQ0FBQyxLQUFpQjtRQUMxQixLQUFLLENBQUMsYUFBNkIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBaUI7UUFDMUIsS0FBSyxDQUFDLGFBQTZCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7d3RDQUFBOztZQVgwQixpQkFBaUI7O0FBWGpDO0lBQVIsS0FBSyxFQUFFO3FEQUFlO0FBQ2Q7SUFBUixLQUFLLEVBQUU7eURBQW1CO0FBQ2xCO0lBQVIsS0FBSyxFQUFFO3VEQUErQjtBQUM5QjtJQUFSLEtBQUssRUFBRTsyREFBcUI7QUFDcEI7SUFBUixLQUFLLEVBQUU7NkRBQXVCO0FBQ3RCO0lBQVIsS0FBSyxFQUFFOzZEQUF1QjtBQUN0QjtJQUFSLEtBQUssRUFBRTs0REFBa0Q7QUFFaEQ7SUFBVCxNQUFNLEVBQUU7eURBQWdEO0FBQy9DO0lBQVQsTUFBTSxFQUFFO3VEQUFzQyxDQUNqRDtBQWJhLHVCQUF1QixvQkFyQ25DLFNBQVMsQ0FBQyxVQUNULFFBQVEsRUFBRTtrQkFBMkI7R0FDckM7Q0FBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU0sVUFDL0M7Q0FBYSxFQUFFLGlCQUFpQixDQUFDLElBQUksVUFFckMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhEQThCUDs7Ozs7Ni9CQUNKLENBQUMsSUFDVyx1QkFBdUIsQ0F5Qm5DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkFDRDtTQTFCYSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRXZlbnQsIE1vbnRoVmlld01vZGVsfSBmcm9tICcuL2RhdGVwaWNrZXItdmlldy1tb2RlbCc7XG5pbXBvcnQge05nYkRhdGV9IGZyb20gJy4vbmdiLWRhdGUnO1xuaW1wb3J0IHtOZ2JEYXRlcGlja2VySTE4bn0gZnJvbSAnLi9kYXRlcGlja2VyLWkxOG4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2ItZGF0ZXBpY2tlci1uYXZpZ2F0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXItbmF2aWdhdGlvbi5zY3NzJ10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cIm5nYi1kcC1hcnJvd1wiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpbmsgbmdiLWRwLWFycm93LWJ0blwiIChjbGljayk9XCJvbkNsaWNrUHJldigkZXZlbnQpXCIgW2Rpc2FibGVkXT1cInByZXZEaXNhYmxlZFwiXG4gICAgICAgICAgICAgIGkxOG4tYXJpYS1sYWJlbD1cIkBAbmdiLmRhdGVwaWNrZXIucHJldmlvdXMtbW9udGhcIiBhcmlhLWxhYmVsPVwiUHJldmlvdXMgbW9udGhcIlxuICAgICAgICAgICAgICBpMThuLXRpdGxlPVwiQEBuZ2IuZGF0ZXBpY2tlci5wcmV2aW91cy1tb250aFwiIHRpdGxlPVwiUHJldmlvdXMgbW9udGhcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJuZ2ItZHAtbmF2aWdhdGlvbi1jaGV2cm9uXCI+PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nYi1kYXRlcGlja2VyLW5hdmlnYXRpb24tc2VsZWN0ICpuZ0lmPVwic2hvd1NlbGVjdFwiIGNsYXNzPVwibmdiLWRwLW5hdmlnYXRpb24tc2VsZWN0XCJcbiAgICAgIFtkYXRlXT1cImRhdGVcIlxuICAgICAgW2Rpc2FibGVkXSA9IFwiZGlzYWJsZWRcIlxuICAgICAgW21vbnRoc109XCJzZWxlY3RCb3hlcy5tb250aHNcIlxuICAgICAgW3llYXJzXT1cInNlbGVjdEJveGVzLnllYXJzXCJcbiAgICAgIChzZWxlY3QpPVwic2VsZWN0LmVtaXQoJGV2ZW50KVwiPlxuICAgIDwvbmdiLWRhdGVwaWNrZXItbmF2aWdhdGlvbi1zZWxlY3Q+XG5cbiAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCIhc2hvd1NlbGVjdFwiIG5nRm9yIGxldC1tb250aCBbbmdGb3JPZl09XCJtb250aHNcIiBsZXQtaT1cImluZGV4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibmdiLWRwLWFycm93XCIgKm5nSWY9XCJpID4gMFwiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm5nYi1kcC1tb250aC1uYW1lXCI+XG4gICAgICAgIHt7IGkxOG4uZ2V0TW9udGhGdWxsTmFtZShtb250aC5udW1iZXIsIG1vbnRoLnllYXIpIH19IHt7IGkxOG4uZ2V0WWVhck51bWVyYWxzKG1vbnRoLnllYXIpIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJuZ2ItZHAtYXJyb3dcIiAqbmdJZj1cImkgIT09IG1vbnRocy5sZW5ndGggLSAxXCI+PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwibmdiLWRwLWFycm93IHJpZ2h0XCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tbGluayBuZ2ItZHAtYXJyb3ctYnRuXCIgKGNsaWNrKT1cIm9uQ2xpY2tOZXh0KCRldmVudClcIiBbZGlzYWJsZWRdPVwibmV4dERpc2FibGVkXCJcbiAgICAgICAgICAgICAgaTE4bi1hcmlhLWxhYmVsPVwiQEBuZ2IuZGF0ZXBpY2tlci5uZXh0LW1vbnRoXCIgYXJpYS1sYWJlbD1cIk5leHQgbW9udGhcIlxuICAgICAgICAgICAgICBpMThuLXRpdGxlPVwiQEBuZ2IuZGF0ZXBpY2tlci5uZXh0LW1vbnRoXCIgdGl0bGU9XCJOZXh0IG1vbnRoXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibmdiLWRwLW5hdmlnYXRpb24tY2hldnJvblwiPjwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgTmdiRGF0ZXBpY2tlck5hdmlnYXRpb24ge1xuICBuYXZpZ2F0aW9uID0gTmF2aWdhdGlvbkV2ZW50O1xuXG4gIEBJbnB1dCgpIGRhdGU6IE5nYkRhdGU7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBtb250aHM6IE1vbnRoVmlld01vZGVsW10gPSBbXTtcbiAgQElucHV0KCkgc2hvd1NlbGVjdDogYm9vbGVhbjtcbiAgQElucHV0KCkgcHJldkRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBuZXh0RGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNlbGVjdEJveGVzOiB7eWVhcnM6IG51bWJlcltdLCBtb250aHM6IG51bWJlcltdfTtcblxuICBAT3V0cHV0KCkgbmF2aWdhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPE5hdmlnYXRpb25FdmVudD4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8TmdiRGF0ZT4oKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaTE4bjogTmdiRGF0ZXBpY2tlckkxOG4pIHt9XG5cbiAgb25DbGlja1ByZXYoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAoZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICB0aGlzLm5hdmlnYXRlLmVtaXQodGhpcy5uYXZpZ2F0aW9uLlBSRVYpO1xuICB9XG5cbiAgb25DbGlja05leHQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAoZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICB0aGlzLm5hdmlnYXRlLmVtaXQodGhpcy5uYXZpZ2F0aW9uLk5FWFQpO1xuICB9XG59XG4iXX0=