New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@firestitch/address

Package Overview
Dependencies
Maintainers
6
Versions
188
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@firestitch/address - npm Package Compare versions

Comparing version 12.1.7 to 12.1.8

0

app/classes/googlemapconfig.d.ts

@@ -0,0 +0,0 @@ import { LazyMapsAPILoaderConfigLiteral } from '@agm/core';

@@ -0,0 +0,0 @@ /// <reference types="googlemaps" />

@@ -0,0 +0,0 @@ import { EventEmitter, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';

@@ -0,0 +0,0 @@ import { MatDialogRef } from '@angular/material/dialog';

@@ -0,0 +0,0 @@ import { OnInit } from '@angular/core';

@@ -0,0 +0,0 @@ import { EventEmitter, OnDestroy, ChangeDetectorRef, OnChanges, SimpleChanges } from '@angular/core';

@@ -0,0 +0,0 @@ import { EventEmitter, OnInit } from '@angular/core';

2

app/components/address-region/address-region.component.d.ts

@@ -31,3 +31,3 @@ import { EventEmitter, OnInit, OnChanges, SimpleChanges } from '@angular/core';

displayWith: (data: any) => any;
selectUserOption(kw: string): void;
selectUserOption(keyword: any): void;
regionChanged(): void;

@@ -34,0 +34,0 @@ updateCountryRegionLabels(): void;

@@ -0,0 +0,0 @@ import { EventEmitter, OnDestroy } from '@angular/core';

@@ -0,0 +0,0 @@ import { FsAddress } from '../../interfaces/address.interface';

@@ -0,0 +0,0 @@ import { EventEmitter, OnChanges, OnDestroy, OnInit } from '@angular/core';

@@ -0,0 +0,0 @@ export declare const Countries: ({

import { InjectionToken } from '@angular/core';
export declare const COUNTRIES: InjectionToken<any>;
import { InjectionToken } from '@angular/core';
export declare const GOOGLE_MAP_KEY: InjectionToken<any>;

@@ -0,0 +0,0 @@ export declare enum AddressFormat {

@@ -0,0 +0,0 @@ export declare enum Country {

@@ -0,0 +0,0 @@ import * as i0 from "@angular/core";

@@ -0,0 +0,0 @@ import * as i0 from "@angular/core";

@@ -0,0 +0,0 @@ import * as i0 from "@angular/core";

@@ -0,0 +0,0 @@ import * as i0 from "@angular/core";

@@ -0,0 +0,0 @@ import { ModuleWithProviders } from '@angular/core';

@@ -0,0 +0,0 @@ import { AddressFormat } from './../enums/address-format.enum';

import { FsAddress } from '../interfaces/address.interface';
export declare function addressIsEmpty(value: FsAddress): boolean;
export declare function addressOneLineFormat(address: any, options?: {
includeFirst?: number;
}): any[];
export declare function addressSummaryFormat(address: any): any[];
export declare function addressTwoLineFormat(address: any, options?: {
includeFirst?: number;
}): any[];
import { FsAddress } from '../interfaces/address.interface';
export declare function createEmptyAddress(): FsAddress;

@@ -0,0 +0,0 @@ export declare function extractUnit(text: string): {

@@ -0,0 +0,0 @@ /// <reference types="googlemaps" />

@@ -0,0 +0,0 @@ export * from './address-format';

import { IAddressRegion } from '../interfaces/address-region.interface';
import { IAddressCountry } from '../interfaces/address-country.interface';
export declare function searchCountryRegions(text: string, regions: IAddressRegion[] | IAddressCountry[], limit?: number): IAddressRegion[];

@@ -0,0 +0,0 @@ export interface FsAddressCollapseButtonConfig {

@@ -0,0 +0,0 @@ import { FsAddressMapConfig } from './address-map-config.interface';

@@ -0,0 +0,0 @@ import { IAddressRegion } from './address-region.interface';

@@ -0,0 +0,0 @@ export interface FsAddressFormatConfig {

@@ -0,0 +0,0 @@ export interface FsAddressMapConfig {

@@ -0,0 +0,0 @@ import { FsAddressFieldSetting } from './address-config.interface';

@@ -0,0 +0,0 @@ export interface IAddressRegion {

@@ -0,0 +0,0 @@ export interface FsAddress {

@@ -0,0 +0,0 @@ /// <reference types="googlemaps" />

@@ -0,0 +0,0 @@ import { Inject, Optional, Injectable } from '@angular/core';

@@ -24,3 +24,4 @@ import { Component, ElementRef, EventEmitter, Input, NgZone, Output, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef, HostBinding, Optional, Self, } from '@angular/core';

import * as i6 from "@angular/material/input";
import * as i7 from "@angular/common";
import * as i7 from "@firestitch/form";
import * as i8 from "@angular/common";
export class FsAddressAutocompleteComponent {

@@ -354,3 +355,3 @@ constructor(ngControl, _mapsAPILoader, _ngZone, _fm, _elementRef, _cdRef, _ngModel) {

},
], viewQueries: [{ propertyName: "searchElement", first: true, predicate: ["searchInput"], descendants: true, static: true }, { propertyName: "autoCompleteRef", first: true, predicate: MatAutocomplete, descendants: true, static: true }], ngImport: i0, template: "<input\n matInput\n type=\"search\"\n autocomplete=\"off\"\n [(ngModel)]=\"inputAddress\"\n (blur)=\"blurAutocompleteInput()\"\n [matAutocomplete]=\"autocomplete\"\n [name]=\"autocompleteName\"\n [disabled]=\"disabled\"\n #searchInput>\n\n<mat-autocomplete\n [displayWith]=\"displayWith\"\n (closed)=\"autocompletePanelClosed()\"\n autoActiveFirstOption\n #autocomplete=\"matAutocomplete\">\n <mat-option *ngFor=\"let option of predictions\" [value]=\"option\">\n {{ option.description }}\n </mat-option>\n <div *ngIf=\"!config.hideEnterManually\" class=\"static-options\">\n <mat-option [value]=\"{id: 'manual', name: inputAddress}\">\n Enter address manually\n </mat-option>\n </div>\n</mat-autocomplete>\n", styles: [".static-options{position:-webkit-sticky;position:sticky;bottom:0;width:100%;background:#fff;border-top:1px solid #e0e0e0}\n"], components: [{ type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
], viewQueries: [{ propertyName: "searchElement", first: true, predicate: ["searchInput"], descendants: true, static: true }, { propertyName: "autoCompleteRef", first: true, predicate: MatAutocomplete, descendants: true, static: true }], ngImport: i0, template: "<input\n matInput\n type=\"search\"\n autocomplete=\"off\"\n [(ngModel)]=\"inputAddress\"\n (blur)=\"blurAutocompleteInput()\"\n [matAutocomplete]=\"autocomplete\"\n [name]=\"autocompleteName\"\n [disabled]=\"disabled\"\n #searchInput>\n\n<mat-autocomplete\n [displayWith]=\"displayWith\"\n (closed)=\"autocompletePanelClosed()\"\n autoActiveFirstOption\n #autocomplete=\"matAutocomplete\">\n <mat-option *ngFor=\"let option of predictions\" [value]=\"option\">\n {{ option.description }}\n </mat-option>\n <div *ngIf=\"!config.hideEnterManually\" class=\"static-options\">\n <mat-option [value]=\"{id: 'manual', name: inputAddress}\">\n Enter address manually\n </mat-option>\n </div>\n</mat-autocomplete>\n", styles: [".static-options{position:-webkit-sticky;position:sticky;bottom:0;width:100%;background:#fff;border-top:1px solid #e0e0e0}\n"], components: [{ type: i4.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FsAddressAutocompleteComponent, decorators: [{

@@ -404,2 +405,2 @@ type: Component,

}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1hdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2FkZHJlc3MtYXV0b2NvbXBsZXRlL2FkZHJlc3MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hZGRyZXNzLWF1dG9jb21wbGV0ZS9hZGRyZXNzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBQ04sU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLFFBQVEsRUFDUixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFLVCxPQUFPLEdBQ1IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUFFLEdBQUcsR0FDZixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7OztBQWV6RCxNQUFNLE9BQU8sOEJBQThCO0lBOEV6QyxZQUM2QixTQUFvQixFQUN2QyxjQUE2QixFQUM3QixPQUFlLEVBQ2YsR0FBaUIsRUFDakIsV0FBdUIsRUFDdkIsTUFBeUIsRUFDekIsUUFBaUI7UUFORSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3ZDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFjO1FBQ2pCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQVM7UUEvRXBCLFdBQU0sR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDO1FBRy9CLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsU0FBSSxHQUFHLElBQUksQ0FBQztRQUdaLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBdUJYLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVM1QyxPQUFFLEdBQUcsMkJBQTJCLDhCQUE4QixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFFMUUsaUJBQVksR0FBdUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDL0QsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFDeEIsOEJBQXlCLEdBQTJDLElBQUksQ0FBQztRQUN6RSx3QkFBbUIsR0FBcUMsSUFBSSxDQUFDO1FBRXBFLG1CQUFtQjtRQUNaLGFBQVEsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQzdCLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFNUIsV0FBVztRQUNKLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDMUMsRUFBRTtRQUVjLHFCQUFnQixHQUFHLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFFeEQsWUFBTyxHQUFvQixFQUFFLENBQUM7UUFDOUIsYUFBUSxHQUFjLEVBQUUsQ0FBQztRQUN6QixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUV6QixXQUFXO1FBQ0gsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTFCLEVBQUU7UUFFTSxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQTZHakMsZ0JBQVcsR0FBRyxDQUFDLEtBQWdCLEVBQUUsRUFBRTs7WUFDeEMsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUN0QyxPQUFPLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsTUFBTSxDQUFDO2FBQzNCO2lCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUN0QixPQUFPLEdBQUcsQ0FBQzthQUNaO1FBQ0gsQ0FBQyxDQUFDO1FBeEdBLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQXpFRCxJQUNXLE1BQU0sQ0FBQyxLQUFzQjtRQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFFBQVE7Z0JBQ2IsQ0FBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDL0MsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7b0JBQ3JELENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO29CQUNuRCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDL0MsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7b0JBQ25ELENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO29CQUN2RCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztvQkFDdkQsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBeURELElBQVcsS0FBSyxDQUFDLEtBQWdCO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQ0ksUUFBUSxLQUFjLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsR0FBRztRQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxHQUFHO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQ1csZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQVcsS0FBSzs7UUFDZCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxNQUFNLENBQUEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxNQUFNLENBQUEsQ0FBQyxDQUFDO1NBQ2xHO2FBQU07WUFDTCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXZGLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTdCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUF1QjtRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE1BQU0sRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0saUJBQWlCLENBQUMsR0FBYTtRQUNwQyxPQUFPO0lBQ1QsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQWlCO1FBQ3ZDLElBQUssS0FBSyxDQUFDLE1BQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLE9BQU8sRUFBRTtZQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBdUI7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEVBQWM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQVVNLFFBQVEsQ0FBQyxPQUF3QjtRQUN0QyxNQUFNLGdCQUFnQixHQUFxQixFQUFFLENBQUM7UUFFOUMsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUVyRSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ2xDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDeEUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQzVCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQ2hELENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3RDLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQzthQUM5QztZQUVELElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRTtnQkFDeEIsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDOUIsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7aUJBQ2xFO3FCQUFNO29CQUNMLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDakMsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLGVBQWUsQ0FBQztpQkFDdkY7YUFDRjtTQUNGO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRU0sS0FBSzs7UUFDVixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztRQUNsQyxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSx1QkFBdUI7UUFDNUIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzlDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixJQUFJLElBQUksQ0FBQyxLQUFLO2VBQ1QsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFFBQVE7ZUFDckMsSUFBSSxDQUFDLFlBQVksS0FBSyxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsNEZBQTRGO0lBQzVGLCtFQUErRTtJQUMvRSxtRUFBbUU7SUFDM0Qsb0JBQW9CO1FBQzFCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNsQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO2lCQUNqRCxJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FBQyxFQUNGLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsTUFBTSxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFO2dCQUM5QixPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtnQkFDM0IsT0FBUSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUM7WUFDbEQsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLFFBQVEsbUNBQ1IsSUFBSSxDQUFDLFFBQVEsS0FDaEIsTUFBTSxFQUFFLEtBQUssR0FDZCxDQUFDO29CQUVGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNyQztZQUNILENBQUMsQ0FBQyxFQUNGLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNkLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBRTFCLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7b0JBRXRCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQzVCO2dCQUVELE9BQU8sVUFBVSxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxFQUNGLG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO2dCQUN6QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjtpQkFDQSxTQUFTLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxXQUFXLEVBQUMsRUFBRSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUc7d0JBQ2pCLEdBQUcsV0FBVztxQkFDZixDQUFDO29CQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxDQUFBO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyw0QkFBNEI7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjO2FBQ2hDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNiLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDN0IsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDdkMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakI7WUFFRCxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7Z0JBQzVCLE9BQU8sRUFBRSxpQ0FDSixJQUFJLENBQUMsS0FBSyxLQUNiLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxFQUNsQixNQUFNLEVBQUUsSUFBSSxJQUNaLENBQUM7YUFDSjtZQUVELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsSUFBSSxPQUFrQixDQUFDO1lBRXZCLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDbkIsT0FBTyxHQUFHLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvRCxPQUFPLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2FBQ2xEO2lCQUFNO2dCQUNMLE9BQU8sR0FBRyxRQUFRLENBQUM7YUFDcEI7WUFFRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO2dCQUVyQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxJQUFJLEVBQUU7b0JBQ1IsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7aUJBQ3pCO2dCQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztnQkFFNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGNBQWM7aUJBQ2hCLElBQUksRUFBRTtpQkFDTixJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNULElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQzlFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BHLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsT0FBZTtRQUMxQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyx5QkFBeUI7YUFDakQsbUJBQW1CLENBQ2xCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUNmLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FDMEUsQ0FBQztRQUV2RixPQUFPLGFBQWE7YUFDakIsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDZixPQUFPO2dCQUNMLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxXQUFXLEtBQUksRUFBRTthQUN2QyxDQUFBO1FBQ0gsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNWLE9BQU87Z0JBQ0wsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLEVBQUU7YUFDaEIsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGdCQUFnQixDQUN0QixLQUE2QztRQUU3QyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FDcEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQzVELENBQUM7UUFFVCxPQUFPLGlCQUFpQixDQUFDLEtBQUssQ0FBQzthQUM1QixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUN2QixJQUFJLE1BQU0sS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hELE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsT0FBTztvQkFDTCxLQUFLO29CQUNMLE1BQU07aUJBQ1AsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUM7YUFDckMsSUFBSSxDQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDNUIsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7O0FBL2FhLHFDQUFNLEdBQUcsQ0FBQyxDQUFDOzRIQUhkLDhCQUE4QjtnSEFBOUIsOEJBQThCLDZXQVI5QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixXQUFXLEVBQUUsOEJBQThCO1NBQzVDO0tBQ0Ysd0xBOENVLGVBQWUsOERDL0c1QixxdUJBeUJBOzRGRDJDYSw4QkFBOEI7a0JBWjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsV0FBVyxFQUFFLHVDQUF1QztvQkFDcEQsU0FBUyxFQUFFLENBQUMsdUNBQXVDLENBQUM7b0JBQ3BELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLGdDQUFnQzt5QkFDNUM7cUJBQ0Y7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzswQkFnRkksUUFBUTs7MEJBQUksSUFBSTt1TUF6RVosTUFBTTtzQkFEWixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJSyxNQUFNO3NCQURoQixLQUFLO2dCQXFCVSxhQUFhO3NCQUQ1QixNQUFNO2dCQUlTLGFBQWE7c0JBRDVCLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJMUIsZUFBZTtzQkFEOUIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlyQyxFQUFFO3NCQURSLFdBQVc7Z0JBd0RSLFFBQVE7c0JBRFgsS0FBSztnQkFRRixRQUFRO3NCQURYLEtBQUs7Z0JBVUYsV0FBVztzQkFEZCxLQUFLO2dCQVVLLGdCQUFnQjtzQkFEMUIsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBPcHRpb25hbCxcbiAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBOZ0NvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIEFic3RyYWN0Q29udHJvbCxcbiAgTmdNb2RlbCxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuXG5pbXBvcnQgeyBndWlkIH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29tbW9uJztcblxuaW1wb3J0IHsgTWFwc0FQSUxvYWRlciB9IGZyb20gJ0BhZ20vY29yZSc7XG5cbmltcG9ydCB7IGJpbmRDYWxsYmFjaywgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGVib3VuY2VUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZVVudGlsLCB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgRnNBZGRyZXNzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hZGRyZXNzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGc0FkZHJlc3NDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2FkZHJlc3MtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBZGRyZXNzRm9ybWF0IH0gZnJvbSAnLi4vLi4vZW51bXMvYWRkcmVzcy1mb3JtYXQuZW51bSc7XG5pbXBvcnQgeyBnb29nbGVEZXRhaWxzVG9BZGRyZXNzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9nb29nbGUtZGV0YWlscy10by1hZGRyZXNzJztcbmltcG9ydCB7IGNyZWF0ZUVtcHR5QWRkcmVzcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLWVtcHR5LWFkZHJlc3MnO1xuaW1wb3J0IHsgYWRkcmVzc0lzRW1wdHkgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2FkZHJlc3MtaXMtZW1wdHknO1xuaW1wb3J0IHsgZXh0cmFjdFVuaXQgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2V4dHJhY3QtdW5pdCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtYWRkcmVzcy1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkcmVzcy1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGRyZXNzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZzQWRkcmVzc0F1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRnNBZGRyZXNzQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE1hdEZvcm1GaWVsZENvbnRyb2w8RnNBZGRyZXNzPiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG5cbiAgcHVibGljIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3JtYXQgPSBBZGRyZXNzRm9ybWF0LlR3b0xpbmU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlYWRvbmx5ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG5hbWUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdWdnZXN0aW9ucyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29uZmlnKHZhbHVlOiBGc0FkZHJlc3NDb25maWcpIHtcbiAgICB0aGlzLl9jb25maWcgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5fY29uZmlnKSB7XG4gICAgICB0aGlzLnJlcXVpcmVkID1cbiAgICAgICggKHRoaXMuY29uZmlnLm5hbWUgJiYgdGhpcy5jb25maWcubmFtZS5yZXF1aXJlZCkgfHxcbiAgICAgICAgKHRoaXMuY29uZmlnLmNvdW50cnkgJiYgdGhpcy5jb25maWcuY291bnRyeS5yZXF1aXJlZCkgfHxcbiAgICAgICAgKHRoaXMuY29uZmlnLnJlZ2lvbiAmJiB0aGlzLmNvbmZpZy5yZWdpb24ucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy5jaXR5ICYmIHRoaXMuY29uZmlnLmNpdHkucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy5zdHJlZXQgJiYgdGhpcy5jb25maWcuc3RyZWV0LnJlcXVpcmVkKSB8fFxuICAgICAgICAodGhpcy5jb25maWcuYWRkcmVzczIgJiYgdGhpcy5jb25maWcuYWRkcmVzczIucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy5hZGRyZXNzMyAmJiB0aGlzLmNvbmZpZy5hZGRyZXNzMy5yZXF1aXJlZCkgfHxcbiAgICAgICAgKHRoaXMuY29uZmlnLnppcCAmJiB0aGlzLmNvbmZpZy56aXAucmVxdWlyZWQpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBGc0FkZHJlc3NDb25maWcge1xuICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGFkZHJlc3NDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgcmVhZG9ubHkgc2VhcmNoRWxlbWVudDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHJlYWRvbmx5IGF1dG9Db21wbGV0ZVJlZjogTWF0QXV0b2NvbXBsZXRlO1xuXG4gIEBIb3N0QmluZGluZygpXG4gIHB1YmxpYyBpZCA9IGBmcy1hZGRyZXNzLWF1dG9jb21wbGV0ZS0ke0ZzQWRkcmVzc0F1dG9jb21wbGV0ZUNvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gIHB1YmxpYyBpbnB1dEFkZHJlc3M6IHN0cmluZyB8IEZzQWRkcmVzcyA9IHRoaXMuX2RlZmF1bHRJbnB1dEFkZHJlc3MoKTtcbiAgcHVibGljIHByZWRpY3Rpb25zOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgZ29vZ2xlQXV0b2NvbXBsZXRlU2VydmljZTogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlcnZpY2UgPSBudWxsO1xuICBwdWJsaWMgZ29vZ2xlUGxhY2VzU2VydmljZTogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2UgPSBudWxsO1xuXG4gIC8vIENvbnRyb2wgQWNjZXNzb3JcbiAgcHVibGljIG9uQ2hhbmdlID0gKGRhdGE6IGFueSkgPT4ge307XG4gIHB1YmxpYyBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICAvLyBNYXRlcmlhbFxuICBwdWJsaWMgZXJyb3JTdGF0ZSA9IGZhbHNlO1xuICBwdWJsaWMgZm9jdXNlZCA9IGZhbHNlO1xuICBwdWJsaWMgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgLy9cblxuICBwdWJsaWMgcmVhZG9ubHkgYXV0b2NvbXBsZXRlTmFtZSA9IGBzZWFyY2gtJHtndWlkKCd4eHh4eHh4eCcpfWA7XG5cbiAgcHJpdmF0ZSBfY29uZmlnOiBGc0FkZHJlc3NDb25maWcgPSB7fTtcbiAgcHJpdmF0ZSBfYWRkcmVzczogRnNBZGRyZXNzID0ge307XG4gIHByaXZhdGUgX3NlYXJjaFRleHQgPSAnJztcblxuICAvLyBNYXRlcmlhbFxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xuICAvL1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIF9tYXBzQVBJTG9hZGVyOiBNYXBzQVBJTG9hZGVyLFxuICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgX2ZtOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfbmdNb2RlbDogTmdNb2RlbCxcbiAgKSB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IEZzQWRkcmVzcykge1xuICAgIHRoaXMuX2FkZHJlc3MgPSB2YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX2FkZHJlc3MpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBGc0FkZHJlc3Mge1xuICAgIHJldHVybiB0aGlzLl9hZGRyZXNzO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7IH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gIH1cbiAgc2V0IHJlcXVpcmVkKHJlcSkge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHJlcSk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHBsYWNlaG9sZGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgfVxuICBzZXQgcGxhY2Vob2xkZXIocGxoKSB7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGg7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mbG9hdGluZycpXG4gIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICEodGhpcy52YWx1ZSAmJiAhdGhpcy52YWx1ZS5zdHJlZXQpO1xuICB9XG5cbiAgcHVibGljIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zdWdnZXN0aW9ucykge1xuICAgICAgcmV0dXJuICghdGhpcy5pbnB1dEFkZHJlc3MgJiYgIXRoaXMudmFsdWU/LnN0cmVldCkgfHwgKHRoaXMuaW5wdXRBZGRyZXNzICYmICF0aGlzLnZhbHVlPy5zdHJlZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbnB1dFZhbHVlID0gKHR5cGVvZiB0aGlzLmlucHV0QWRkcmVzcyA9PT0gJ3N0cmluZycpICYmIHRoaXMuaW5wdXRBZGRyZXNzLnRyaW0oKTtcblxuICAgICAgcmV0dXJuIHRoaXMuYWRkcmVzc0lzRW1wdHkgJiYgIWlucHV0VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBhZGRyZXNzSXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYWRkcmVzc0lzRW1wdHkodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0R29vZ2xlTWFwKCk7XG5cbiAgICB0aGlzLl9saXN0ZW5Vc2VyVHlwaW5nKCk7XG4gICAgdGhpcy5fbGlzdGVuQXV0b2NvbXBsZXRlU2VsZWN0aW9uKCk7XG4gICAgdGhpcy5fcmVnaXN0ZXJGb2N1c01vbml0b3IoKTtcblxuICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbdGhpcy52YWxpZGF0ZS5iaW5kKHRoaXMpXSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRnNBZGRyZXNzIHwgbnVsbCkge1xuICAgIHRoaXMuX2FkZHJlc3MgPSB2YWx1ZTtcbiAgICB0aGlzLmlucHV0QWRkcmVzcyA9IHZhbHVlPy5zdHJlZXQgPyBjbG9uZURlZXAodmFsdWUpIDogJyAnO1xuICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcbiAgICAvLyBUT0RPXG4gIH1cblxuICBwdWJsaWMgb25Db250YWluZXJDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICgoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLnRhZ05hbWUudG9Mb3dlckNhc2UoKSAhPSAnaW5wdXQnKSB7XG4gICAgICB0aGlzLnNlYXJjaEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGRhdGE6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheVdpdGggPSAodmFsdWU6IEZzQWRkcmVzcykgPT4ge1xuICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZT8uc3RyZWV0O1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuZW1wdHkpIHtcbiAgICAgIHJldHVybiAnICc7XG4gICAgfVxuICB9O1xuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsaWRhdGlvbkVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHt9O1xuXG4gICAgY29uc3QgcmVxdWlyZWRGaWVsZCA9IFtdO1xuICAgIGNvbnN0IHBhcnRzID0gWyduYW1lJywgJ3N0cmVldCcsICdjaXR5JywgJ3JlZ2lvbicsICd6aXAnLCAnY291bnRyeSddO1xuXG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgdGhpcy5hZGRyZXNzSXNFbXB0eSkge1xuICAgICAgdmFsaWRhdGlvbkVycm9ycy5yZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFkZHJlc3NJc0VtcHR5KSB7XG4gICAgICBwYXJ0cy5mb3JFYWNoKHBhcnQgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb25maWdbcGFydF0gJiYgdGhpcy5jb25maWdbcGFydF0ucmVxdWlyZWQgJiYgIXRoaXMudmFsdWVbcGFydF0pIHtcbiAgICAgICAgICByZXF1aXJlZEZpZWxkLnB1c2goW3BhcnRdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICgoKHRoaXMuY29uZmlnLmxhdCAmJiB0aGlzLmNvbmZpZy5sYXQucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy5sbmcgJiYgdGhpcy5jb25maWcubG5nLnJlcXVpcmVkKSkgJiZcbiAgICAgICAgKCF0aGlzLnZhbHVlLmxhdCB8fCAhdGhpcy52YWx1ZS5sYXQpKSB7XG4gICAgICAgIHZhbGlkYXRpb25FcnJvcnMuaW52YWxpZCA9ICdwb3NpdGlvbiBvbiBtYXAnO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVxdWlyZWRGaWVsZC5sZW5ndGgpIHtcbiAgICAgICAgaWYgKHJlcXVpcmVkRmllbGQubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdmFsaWRhdGlvbkVycm9ycy5pbnZhbGlkID0gYFRoZSAke3JlcXVpcmVkRmllbGRbMF19IGlzIHJlcXVpcmVkYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBsYXN0ID0gcmVxdWlyZWRGaWVsZC5wb3AoKTtcbiAgICAgICAgICB2YWxpZGF0aW9uRXJyb3JzLmludmFsaWQgPSBgVGhlICR7cmVxdWlyZWRGaWVsZC5qb2luKCcsICcpfSBhbmQgJHtsYXN0fSBhcmUgcmVxdWlyZWRgO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRpb25FcnJvcnM7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEFkZHJlc3MgPSB0aGlzLl9kZWZhdWx0SW5wdXRBZGRyZXNzKCk7XG4gICAgdGhpcy52YWx1ZSA9IGNyZWF0ZUVtcHR5QWRkcmVzcygpO1xuICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMubmdDb250cm9sLnJlc2V0KGNyZWF0ZUVtcHR5QWRkcmVzcygpKTtcbiAgfVxuXG4gIHB1YmxpYyBhdXRvY29tcGxldGVQYW5lbENsb3NlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZGRyZXNzSXNFbXB0eSAmJiAhIXRoaXMuaW5wdXRBZGRyZXNzKSB7XG4gICAgICB0aGlzLmlucHV0QWRkcmVzcyA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJsdXJBdXRvY29tcGxldGVJbnB1dCgpIHtcbiAgICBpZiAodGhpcy5lbXB0eVxuICAgICAgJiYgdHlwZW9mIHRoaXMuaW5wdXRBZGRyZXNzID09PSAnc3RyaW5nJ1xuICAgICAgJiYgdGhpcy5pbnB1dEFkZHJlc3MgIT09ICcnKSB7XG4gICAgICB0aGlzLmlucHV0QWRkcmVzcyA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNlYXJjaCBpbnB1dCBjYW4ndCBiZSBudWxsLiBXZSBpbXBsZW1lbnRlZCByZXF1aXJlZCB2YWxpZGF0aW9uIHRvIHNob3cgYXN0ZXJpc2sgaWYgbmVlZGVkXG4gIC8vIEJ1dCBnZW5lcmFsIHZhbGlkYXRpb24gcGxhY2VkIGluIGFub3RoZXIgbGV2ZWwgYW5kIG5vdCBkZXBlbmRzIG9mIHRoaXMgaW5wdXRcbiAgLy8gVGhpcyBoYWNrIGFsbG93IHVzIHRvIHNob3cgYXN0ZXJpc2sgYnV0IGRpc2FibGUgZXh0cmEgdmFsaWRhdGlvblxuICBwcml2YXRlIF9kZWZhdWx0SW5wdXRBZGRyZXNzKCkge1xuICAgIHJldHVybiAnICc7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5Vc2VyVHlwaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBmcm9tRXZlbnQodGhpcy5zZWFyY2hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICAgICAgZmlsdGVyKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmNvZGUgIT09ICdFbnRlcicgJiYgZXZlbnQuY29kZSAhPT0gJ1RhYic7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgbWFwKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoVGV4dCA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgICB0aGlzLl9hZGRyZXNzID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2FkZHJlc3MsXG4gICAgICAgICAgICAgICAgc3RyZWV0OiB2YWx1ZSxcbiAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5fYWRkcmVzcztcbiAgICAgICAgICAgICAgdGhpcy5hZGRyZXNzQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZmlsdGVyKCh0ZXh0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0RXhpc3RzID0gISF0ZXh0O1xuXG4gICAgICAgICAgICBpZiAoIXRleHRFeGlzdHMpIHtcbiAgICAgICAgICAgICAgdGhpcy5wcmVkaWN0aW9ucyA9IFtdO1xuXG4gICAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGV4dEV4aXN0cztcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgIHN3aXRjaE1hcCgodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0UGxhY2VQcmVkaWN0aW9ucyh0ZXh0KTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHt2YWx1ZSwgcHJlZGljdGlvbnN9KSA9PiB7XG4gICAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByZWRpY3Rpb25zID0gW1xuICAgICAgICAgICAgICAuLi5wcmVkaWN0aW9ucyxcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH0pXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuQXV0b2NvbXBsZXRlU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuYXV0b0NvbXBsZXRlUmVmLm9wdGlvblNlbGVjdGVkXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICByZXR1cm4gb3B0aW9uLm9wdGlvbi52YWx1ZTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcCgocGxhY2UpID0+IHtcbiAgICAgICAgICBpZiAoIXBsYWNlIHx8ICF0aGlzLmdvb2dsZVBsYWNlc1NlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocGxhY2UgJiYgIXBsYWNlLnBsYWNlX2lkKSB7XG4gICAgICAgICAgICByZXR1cm4gb2Yoe1xuICAgICAgICAgICAgICAuLi50aGlzLnZhbHVlLFxuICAgICAgICAgICAgICBzdHJlZXQ6IHBsYWNlLm5hbWUsXG4gICAgICAgICAgICAgIG1hbnVhbDogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aGlzLl9nZXRQbGFjZURldGFpbHMocGxhY2UpO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGxldCBhZGRyZXNzOiBGc0FkZHJlc3M7XG5cbiAgICAgICAgICBpZiAocmVzcG9uc2UucmVzdWx0KSB7XG4gICAgICAgICAgICBhZGRyZXNzID0gZ29vZ2xlRGV0YWlsc1RvQWRkcmVzcyhyZXNwb25zZS5yZXN1bHQsIHRoaXMuY29uZmlnKTtcbiAgICAgICAgICAgIGFkZHJlc3MuZGVzY3JpcHRpb24gPSByZXNwb25zZS5wbGFjZS5kZXNjcmlwdGlvbjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYWRkcmVzcyA9IHJlc3BvbnNlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBhZGRyZXNzO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGFkZHJlc3MpID0+IHtcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgICAgIHRoaXMudmFsdWUgPSBhZGRyZXNzO1xuXG4gICAgICAgICAgY29uc3QgeyB1bml0IH0gPSBleHRyYWN0VW5pdCh0aGlzLl9zZWFyY2hUZXh0KTtcbiAgICAgICAgICBpZiAodW5pdCkge1xuICAgICAgICAgICAgYWRkcmVzcy5hZGRyZXNzMiA9IHVuaXQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5hZGRyZXNzQ2hhbmdlLmVtaXQoYWRkcmVzcyk7XG4gICAgICAgICAgdGhpcy5pbnB1dEFkZHJlc3MgPSBhZGRyZXNzO1xuXG4gICAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEdvb2dsZU1hcCgpIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5fbWFwc0FQSUxvYWRlclxuICAgICAgICAubG9hZCgpXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmdvb2dsZUF1dG9jb21wbGV0ZVNlcnZpY2UgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlcnZpY2UoKTtcbiAgICAgICAgICB0aGlzLmdvb2dsZVBsYWNlc1NlcnZpY2UgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2UodGhpcy5zZWFyY2hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFBsYWNlUHJlZGljdGlvbnMoYWRkcmVzczogc3RyaW5nKSB7XG4gICAgY29uc3QgeyB0ZXh0IH0gPSBleHRyYWN0VW5pdChhZGRyZXNzKTtcbiAgICBjb25zdCBwbGFjZXNSZXF1ZXN0ID0gdGhpcy5nb29nbGVBdXRvY29tcGxldGVTZXJ2aWNlXG4gICAgICAuZ2V0UGxhY2VQcmVkaWN0aW9ucyhcbiAgICAgICAgeyBpbnB1dDogdGV4dCB9LFxuICAgICAgICAoKSA9PiB7fVxuICAgICAgKSBhcyB1bmtub3duIGFzIFByb21pc2U8eyBwcmVkaWN0aW9uczogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVByZWRpY3Rpb25bXX0+O1xuXG4gICAgcmV0dXJuIHBsYWNlc1JlcXVlc3RcbiAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdGV4dCxcbiAgICAgICAgICBwcmVkaWN0aW9uczogcmVzdWx0Py5wcmVkaWN0aW9ucyB8fCBbXSxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IHRleHQsXG4gICAgICAgICAgcHJlZGljdGlvbnM6IFtdLFxuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFBsYWNlRGV0YWlscyhcbiAgICBwbGFjZTogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlRGV0YWlsc1JlcXVlc3RcbiAgKTogT2JzZXJ2YWJsZTx7IHJlc3VsdDogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlUmVzdWx0LCBwbGFjZTogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlRGV0YWlsc1JlcXVlc3QgfT4ge1xuICAgIGNvbnN0IGdldERldGFpbHNGYWN0b3J5ID0gYmluZENhbGxiYWNrKFxuICAgICAgdGhpcy5nb29nbGVQbGFjZXNTZXJ2aWNlLmdldERldGFpbHMuYmluZCh0aGlzLmdvb2dsZVBsYWNlc1NlcnZpY2UpXG4gICAgKSBhcyBhbnk7XG5cbiAgICByZXR1cm4gZ2V0RGV0YWlsc0ZhY3RvcnkocGxhY2UpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbcmVzdWx0LCBzdGF0dXNdKSA9PiB7XG4gICAgICAgICAgaWYgKHN0YXR1cyAhPT0gZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2VTdGF0dXMuT0spIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBwbGFjZSxcbiAgICAgICAgICAgICAgcmVzdWx0LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVnaXN0ZXJGb2N1c01vbml0b3IoKTogdm9pZCB7XG4gICAgdGhpcy5fZm0ubW9uaXRvcih0aGlzLl9lbGVtZW50UmVmLCB0cnVlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5kaXNhYmxlZCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChvcmlnaW4pID0+IHtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gISFvcmlnaW47XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICAgIH0pXG4gIH1cbn1cbiIsIjxpbnB1dFxuICBtYXRJbnB1dFxuICB0eXBlPVwic2VhcmNoXCJcbiAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgWyhuZ01vZGVsKV09XCJpbnB1dEFkZHJlc3NcIlxuICAoYmx1cik9XCJibHVyQXV0b2NvbXBsZXRlSW5wdXQoKVwiXG4gIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgW25hbWVdPVwiYXV0b2NvbXBsZXRlTmFtZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICNzZWFyY2hJbnB1dD5cblxuPG1hdC1hdXRvY29tcGxldGVcbiAgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlXaXRoXCJcbiAgKGNsb3NlZCk9XCJhdXRvY29tcGxldGVQYW5lbENsb3NlZCgpXCJcbiAgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uXG4gICNhdXRvY29tcGxldGU9XCJtYXRBdXRvY29tcGxldGVcIj5cbiAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBwcmVkaWN0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb25cIj5cbiAgICB7eyBvcHRpb24uZGVzY3JpcHRpb24gfX1cbiAgPC9tYXQtb3B0aW9uPlxuICA8ZGl2ICpuZ0lmPVwiIWNvbmZpZy5oaWRlRW50ZXJNYW51YWxseVwiIGNsYXNzPVwic3RhdGljLW9wdGlvbnNcIj5cbiAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwie2lkOiAnbWFudWFsJywgbmFtZTogaW5wdXRBZGRyZXNzfVwiPlxuICAgICAgRW50ZXIgYWRkcmVzcyBtYW51YWxseVxuICAgIDwvbWF0LW9wdGlvbj5cbiAgPC9kaXY+XG48L21hdC1hdXRvY29tcGxldGU+XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1hdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2FkZHJlc3MtYXV0b2NvbXBsZXRlL2FkZHJlc3MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hZGRyZXNzLWF1dG9jb21wbGV0ZS9hZGRyZXNzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBQ04sU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLFFBQVEsRUFDUixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFLVCxPQUFPLEdBQ1IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxTQUFTLEVBQ1Qs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QVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJckMsRUFBRTtzQkFEUixXQUFXO2dCQXdEUixRQUFRO3NCQURYLEtBQUs7Z0JBUUYsUUFBUTtzQkFEWCxLQUFLO2dCQVVGLFdBQVc7c0JBRGQsS0FBSztnQkFVSyxnQkFBZ0I7c0JBRDFCLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBIb3N0QmluZGluZyxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTmdDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBBYnN0cmFjdENvbnRyb2wsXG4gIE5nTW9kZWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcblxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcblxuaW1wb3J0IHsgZ3VpZCB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5cbmltcG9ydCB7IE1hcHNBUElMb2FkZXIgfSBmcm9tICdAYWdtL2NvcmUnO1xuXG5pbXBvcnQgeyBiaW5kQ2FsbGJhY2ssIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCwgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmltcG9ydCB7IEZzQWRkcmVzcyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYWRkcmVzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRnNBZGRyZXNzQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hZGRyZXNzLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQWRkcmVzc0Zvcm1hdCB9IGZyb20gJy4uLy4uL2VudW1zL2FkZHJlc3MtZm9ybWF0LmVudW0nO1xuaW1wb3J0IHsgZ29vZ2xlRGV0YWlsc1RvQWRkcmVzcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ29vZ2xlLWRldGFpbHMtdG8tYWRkcmVzcyc7XG5pbXBvcnQgeyBjcmVhdGVFbXB0eUFkZHJlc3MgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS1lbXB0eS1hZGRyZXNzJztcbmltcG9ydCB7IGFkZHJlc3NJc0VtcHR5IH0gZnJvbSAnLi4vLi4vaGVscGVycy9hZGRyZXNzLWlzLWVtcHR5JztcbmltcG9ydCB7IGV4dHJhY3RVbml0IH0gZnJvbSAnLi4vLi4vaGVscGVycy9leHRyYWN0LXVuaXQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWFkZHJlc3MtYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZHJlc3MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkcmVzcy1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCxcbiAgICAgIHVzZUV4aXN0aW5nOiBGc0FkZHJlc3NBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzQWRkcmVzc0F1dG9jb21wbGV0ZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBNYXRGb3JtRmllbGRDb250cm9sPEZzQWRkcmVzcz4sIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuXG4gIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybWF0ID0gQWRkcmVzc0Zvcm1hdC5Ud29MaW5lO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBuYW1lID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3VnZ2VzdGlvbnMgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbmZpZyh2YWx1ZTogRnNBZGRyZXNzQ29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuX2NvbmZpZykge1xuICAgICAgdGhpcy5yZXF1aXJlZCA9XG4gICAgICAoICh0aGlzLmNvbmZpZy5uYW1lICYmIHRoaXMuY29uZmlnLm5hbWUucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy5jb3VudHJ5ICYmIHRoaXMuY29uZmlnLmNvdW50cnkucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy5yZWdpb24gJiYgdGhpcy5jb25maWcucmVnaW9uLnJlcXVpcmVkKSB8fFxuICAgICAgICAodGhpcy5jb25maWcuY2l0eSAmJiB0aGlzLmNvbmZpZy5jaXR5LnJlcXVpcmVkKSB8fFxuICAgICAgICAodGhpcy5jb25maWcuc3RyZWV0ICYmIHRoaXMuY29uZmlnLnN0cmVldC5yZXF1aXJlZCkgfHxcbiAgICAgICAgKHRoaXMuY29uZmlnLmFkZHJlc3MyICYmIHRoaXMuY29uZmlnLmFkZHJlc3MyLnJlcXVpcmVkKSB8fFxuICAgICAgICAodGhpcy5jb25maWcuYWRkcmVzczMgJiYgdGhpcy5jb25maWcuYWRkcmVzczMucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy56aXAgJiYgdGhpcy5jb25maWcuemlwLnJlcXVpcmVkKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjb25maWcoKTogRnNBZGRyZXNzQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBhZGRyZXNzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHJlYWRvbmx5IHNlYXJjaEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZChNYXRBdXRvY29tcGxldGUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyByZWFkb25seSBhdXRvQ29tcGxldGVSZWY6IE1hdEF1dG9jb21wbGV0ZTtcblxuICBASG9zdEJpbmRpbmcoKVxuICBwdWJsaWMgaWQgPSBgZnMtYWRkcmVzcy1hdXRvY29tcGxldGUtJHtGc0FkZHJlc3NBdXRvY29tcGxldGVDb21wb25lbnQubmV4dElkKyt9YDtcblxuICBwdWJsaWMgaW5wdXRBZGRyZXNzOiBzdHJpbmcgfCBGc0FkZHJlc3MgPSB0aGlzLl9kZWZhdWx0SW5wdXRBZGRyZXNzKCk7XG4gIHB1YmxpYyBwcmVkaWN0aW9uczogYW55W10gPSBbXTtcbiAgcHVibGljIGdvb2dsZUF1dG9jb21wbGV0ZVNlcnZpY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlID0gbnVsbDtcbiAgcHVibGljIGdvb2dsZVBsYWNlc1NlcnZpY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlID0gbnVsbDtcblxuICAvLyBDb250cm9sIEFjY2Vzc29yXG4gIHB1YmxpYyBvbkNoYW5nZSA9IChkYXRhOiBhbnkpID0+IHt9O1xuICBwdWJsaWMgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgLy8gTWF0ZXJpYWxcbiAgcHVibGljIGVycm9yU3RhdGUgPSBmYWxzZTtcbiAgcHVibGljIGZvY3VzZWQgPSBmYWxzZTtcbiAgcHVibGljIHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIC8vXG5cbiAgcHVibGljIHJlYWRvbmx5IGF1dG9jb21wbGV0ZU5hbWUgPSBgc2VhcmNoLSR7Z3VpZCgneHh4eHh4eHgnKX1gO1xuXG4gIHByaXZhdGUgX2NvbmZpZzogRnNBZGRyZXNzQ29uZmlnID0ge307XG4gIHByaXZhdGUgX2FkZHJlc3M6IEZzQWRkcmVzcyA9IHt9O1xuICBwcml2YXRlIF9zZWFyY2hUZXh0ID0gJyc7XG5cbiAgLy8gTWF0ZXJpYWxcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgLy9cblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJpdmF0ZSBfbWFwc0FQSUxvYWRlcjogTWFwc0FQSUxvYWRlcixcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIF9mbTogRm9jdXNNb25pdG9yLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX25nTW9kZWw6IE5nTW9kZWwsXG4gICkge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBGc0FkZHJlc3MpIHtcbiAgICB0aGlzLl9hZGRyZXNzID0gdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLl9hZGRyZXNzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogRnNBZGRyZXNzIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkcmVzcztcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICB9XG4gIHNldCByZXF1aXJlZChyZXEpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXEpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBwbGFjZWhvbGRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gIH1cbiAgc2V0IHBsYWNlaG9sZGVyKHBsaCkge1xuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxoO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmxvYXRpbmcnKVxuICBwdWJsaWMgZ2V0IHNob3VsZExhYmVsRmxvYXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhKHRoaXMudmFsdWUgJiYgIXRoaXMudmFsdWUuc3RyZWV0KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuc3VnZ2VzdGlvbnMpIHtcbiAgICAgIHJldHVybiAoIXRoaXMuaW5wdXRBZGRyZXNzICYmICF0aGlzLnZhbHVlPy5zdHJlZXQpIHx8ICh0aGlzLmlucHV0QWRkcmVzcyAmJiAhdGhpcy52YWx1ZT8uc3RyZWV0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9ICh0eXBlb2YgdGhpcy5pbnB1dEFkZHJlc3MgPT09ICdzdHJpbmcnKSAmJiB0aGlzLmlucHV0QWRkcmVzcy50cmltKCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmFkZHJlc3NJc0VtcHR5ICYmICFpbnB1dFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWRkcmVzc0lzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGFkZHJlc3NJc0VtcHR5KHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdEdvb2dsZU1hcCgpO1xuXG4gICAgdGhpcy5fbGlzdGVuVXNlclR5cGluZygpO1xuICAgIHRoaXMuX2xpc3RlbkF1dG9jb21wbGV0ZVNlbGVjdGlvbigpO1xuICAgIHRoaXMuX3JlZ2lzdGVyRm9jdXNNb25pdG9yKCk7XG5cbiAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLnNldFZhbGlkYXRvcnMoW3RoaXMudmFsaWRhdGUuYmluZCh0aGlzKV0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IEZzQWRkcmVzcyB8IG51bGwpIHtcbiAgICB0aGlzLl9hZGRyZXNzID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dEFkZHJlc3MgPSB2YWx1ZT8uc3RyZWV0ID8gY2xvbmVEZWVwKHZhbHVlKSA6ICcgJztcbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XG4gICAgLy8gVE9ET1xuICB9XG5cbiAgcHVibGljIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT0gJ2lucHV0Jykge1xuICAgICAgdGhpcy5zZWFyY2hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChkYXRhOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIGRpc3BsYXlXaXRoID0gKHZhbHVlOiBGc0FkZHJlc3MpID0+IHtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWU/LnN0cmVldDtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmVtcHR5KSB7XG4gICAgICByZXR1cm4gJyAnO1xuICAgIH1cbiAgfTtcblxuICBwdWJsaWMgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IHZhbGlkYXRpb25FcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgPSB7fTtcblxuICAgIGNvbnN0IHJlcXVpcmVkRmllbGQgPSBbXTtcbiAgICBjb25zdCBwYXJ0cyA9IFsnbmFtZScsICdzdHJlZXQnLCAnY2l0eScsICdyZWdpb24nLCAnemlwJywgJ2NvdW50cnknXTtcblxuICAgIGlmICh0aGlzLnJlcXVpcmVkICYmIHRoaXMuYWRkcmVzc0lzRW1wdHkpIHtcbiAgICAgIHZhbGlkYXRpb25FcnJvcnMucmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hZGRyZXNzSXNFbXB0eSkge1xuICAgICAgcGFydHMuZm9yRWFjaChwYXJ0ID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnW3BhcnRdICYmIHRoaXMuY29uZmlnW3BhcnRdLnJlcXVpcmVkICYmICF0aGlzLnZhbHVlW3BhcnRdKSB7XG4gICAgICAgICAgcmVxdWlyZWRGaWVsZC5wdXNoKFtwYXJ0XSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAoKCh0aGlzLmNvbmZpZy5sYXQgJiYgdGhpcy5jb25maWcubGF0LnJlcXVpcmVkKSB8fFxuICAgICAgICAodGhpcy5jb25maWcubG5nICYmIHRoaXMuY29uZmlnLmxuZy5yZXF1aXJlZCkpICYmXG4gICAgICAgICghdGhpcy52YWx1ZS5sYXQgfHwgIXRoaXMudmFsdWUubGF0KSkge1xuICAgICAgICB2YWxpZGF0aW9uRXJyb3JzLmludmFsaWQgPSAncG9zaXRpb24gb24gbWFwJztcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcXVpcmVkRmllbGQubGVuZ3RoKSB7XG4gICAgICAgIGlmIChyZXF1aXJlZEZpZWxkLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIHZhbGlkYXRpb25FcnJvcnMuaW52YWxpZCA9IGBUaGUgJHtyZXF1aXJlZEZpZWxkWzBdfSBpcyByZXF1aXJlZGA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgbGFzdCA9IHJlcXVpcmVkRmllbGQucG9wKCk7XG4gICAgICAgICAgdmFsaWRhdGlvbkVycm9ycy5pbnZhbGlkID0gYFRoZSAke3JlcXVpcmVkRmllbGQuam9pbignLCAnKX0gYW5kICR7bGFzdH0gYXJlIHJlcXVpcmVkYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0aW9uRXJyb3JzO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRBZGRyZXNzID0gdGhpcy5fZGVmYXVsdElucHV0QWRkcmVzcygpO1xuICAgIHRoaXMudmFsdWUgPSBjcmVhdGVFbXB0eUFkZHJlc3MoKTtcbiAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbC5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLm5nQ29udHJvbC5yZXNldChjcmVhdGVFbXB0eUFkZHJlc3MoKSk7XG4gIH1cblxuICBwdWJsaWMgYXV0b2NvbXBsZXRlUGFuZWxDbG9zZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWRkcmVzc0lzRW1wdHkgJiYgISF0aGlzLmlucHV0QWRkcmVzcykge1xuICAgICAgdGhpcy5pbnB1dEFkZHJlc3MgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBibHVyQXV0b2NvbXBsZXRlSW5wdXQoKSB7XG4gICAgaWYgKHRoaXMuZW1wdHlcbiAgICAgICYmIHR5cGVvZiB0aGlzLmlucHV0QWRkcmVzcyA9PT0gJ3N0cmluZydcbiAgICAgICYmIHRoaXMuaW5wdXRBZGRyZXNzICE9PSAnJykge1xuICAgICAgdGhpcy5pbnB1dEFkZHJlc3MgPSAnJztcbiAgICB9XG4gIH1cblxuICAvLyBTZWFyY2ggaW5wdXQgY2FuJ3QgYmUgbnVsbC4gV2UgaW1wbGVtZW50ZWQgcmVxdWlyZWQgdmFsaWRhdGlvbiB0byBzaG93IGFzdGVyaXNrIGlmIG5lZWRlZFxuICAvLyBCdXQgZ2VuZXJhbCB2YWxpZGF0aW9uIHBsYWNlZCBpbiBhbm90aGVyIGxldmVsIGFuZCBub3QgZGVwZW5kcyBvZiB0aGlzIGlucHV0XG4gIC8vIFRoaXMgaGFjayBhbGxvdyB1cyB0byBzaG93IGFzdGVyaXNrIGJ1dCBkaXNhYmxlIGV4dHJhIHZhbGlkYXRpb25cbiAgcHJpdmF0ZSBfZGVmYXVsdElucHV0QWRkcmVzcygpIHtcbiAgICByZXR1cm4gJyAnO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuVXNlclR5cGluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbUV2ZW50KHRoaXMuc2VhcmNoRWxlbWVudC5uYXRpdmVFbGVtZW50LCAna2V5dXAnKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGRlYm91bmNlVGltZSgyMDApLFxuICAgICAgICAgIGZpbHRlcigoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBldmVudC5jb2RlICE9PSAnRW50ZXInICYmIGV2ZW50LmNvZGUgIT09ICdUYWInO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIG1hcCgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRhcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaFRleHQgPSB2YWx1ZTtcbiAgICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgICAgdGhpcy5fYWRkcmVzcyA9IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9hZGRyZXNzLFxuICAgICAgICAgICAgICAgIHN0cmVldDogdmFsdWUsXG4gICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX2FkZHJlc3M7XG4gICAgICAgICAgICAgIHRoaXMuYWRkcmVzc0NoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGZpbHRlcigodGV4dCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGV4dEV4aXN0cyA9ICEhdGV4dDtcblxuICAgICAgICAgICAgaWYgKCF0ZXh0RXhpc3RzKSB7XG4gICAgICAgICAgICAgIHRoaXMucHJlZGljdGlvbnMgPSBbXTtcblxuICAgICAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRleHRFeGlzdHM7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICBzd2l0Y2hNYXAoKHRleHQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2dldFBsYWNlUHJlZGljdGlvbnModGV4dCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCh7dmFsdWUsIHByZWRpY3Rpb25zfSkgPT4ge1xuICAgICAgICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcmVkaWN0aW9ucyA9IFtcbiAgICAgICAgICAgICAgLi4ucHJlZGljdGlvbnMsXG4gICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlbkF1dG9jb21wbGV0ZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmF1dG9Db21wbGV0ZVJlZi5vcHRpb25TZWxlY3RlZFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9wdGlvbi5vcHRpb24udmFsdWU7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKHBsYWNlKSA9PiB7XG4gICAgICAgICAgaWYgKCFwbGFjZSB8fCAhdGhpcy5nb29nbGVQbGFjZXNTZXJ2aWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHBsYWNlICYmICFwbGFjZS5wbGFjZV9pZCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgICAgICAgLi4udGhpcy52YWx1ZSxcbiAgICAgICAgICAgICAgc3RyZWV0OiBwbGFjZS5uYW1lLFxuICAgICAgICAgICAgICBtYW51YWw6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0UGxhY2VEZXRhaWxzKHBsYWNlKTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBsZXQgYWRkcmVzczogRnNBZGRyZXNzO1xuXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnJlc3VsdCkge1xuICAgICAgICAgICAgYWRkcmVzcyA9IGdvb2dsZURldGFpbHNUb0FkZHJlc3MocmVzcG9uc2UucmVzdWx0LCB0aGlzLmNvbmZpZyk7XG4gICAgICAgICAgICBhZGRyZXNzLmRlc2NyaXB0aW9uID0gcmVzcG9uc2UucGxhY2UuZGVzY3JpcHRpb247XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFkZHJlc3MgPSByZXNwb25zZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gYWRkcmVzcztcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChhZGRyZXNzKSA9PiB7XG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2VhcmNoRWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgICB0aGlzLnZhbHVlID0gYWRkcmVzcztcblxuICAgICAgICAgIGNvbnN0IHsgdW5pdCB9ID0gZXh0cmFjdFVuaXQodGhpcy5fc2VhcmNoVGV4dCk7XG4gICAgICAgICAgaWYgKHVuaXQpIHtcbiAgICAgICAgICAgIGFkZHJlc3MuYWRkcmVzczIgPSB1bml0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuYWRkcmVzc0NoYW5nZS5lbWl0KGFkZHJlc3MpO1xuICAgICAgICAgIHRoaXMuaW5wdXRBZGRyZXNzID0gYWRkcmVzcztcblxuICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGluaXRHb29nbGVNYXAoKSB7XG4gICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuX21hcHNBUElMb2FkZXJcbiAgICAgICAgLmxvYWQoKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5nb29nbGVBdXRvY29tcGxldGVTZXJ2aWNlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlKCk7XG4gICAgICAgICAgdGhpcy5nb29nbGVQbGFjZXNTZXJ2aWNlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlKHRoaXMuc2VhcmNoRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRQbGFjZVByZWRpY3Rpb25zKGFkZHJlc3M6IHN0cmluZykge1xuICAgIGNvbnN0IHsgdGV4dCB9ID0gZXh0cmFjdFVuaXQoYWRkcmVzcyk7XG4gICAgY29uc3QgcGxhY2VzUmVxdWVzdCA9IHRoaXMuZ29vZ2xlQXV0b2NvbXBsZXRlU2VydmljZVxuICAgICAgLmdldFBsYWNlUHJlZGljdGlvbnMoXG4gICAgICAgIHsgaW5wdXQ6IHRleHQgfSxcbiAgICAgICAgKCkgPT4ge31cbiAgICAgICkgYXMgdW5rbm93biBhcyBQcm9taXNlPHsgcHJlZGljdGlvbnM6IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVQcmVkaWN0aW9uW119PjtcblxuICAgIHJldHVybiBwbGFjZXNSZXF1ZXN0XG4gICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IHRleHQsXG4gICAgICAgICAgcHJlZGljdGlvbnM6IHJlc3VsdD8ucHJlZGljdGlvbnMgfHwgW10sXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiB0ZXh0LFxuICAgICAgICAgIHByZWRpY3Rpb25zOiBbXSxcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRQbGFjZURldGFpbHMoXG4gICAgcGxhY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZURldGFpbHNSZXF1ZXN0XG4gICk6IE9ic2VydmFibGU8eyByZXN1bHQ6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdCwgcGxhY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZURldGFpbHNSZXF1ZXN0IH0+IHtcbiAgICBjb25zdCBnZXREZXRhaWxzRmFjdG9yeSA9IGJpbmRDYWxsYmFjayhcbiAgICAgIHRoaXMuZ29vZ2xlUGxhY2VzU2VydmljZS5nZXREZXRhaWxzLmJpbmQodGhpcy5nb29nbGVQbGFjZXNTZXJ2aWNlKVxuICAgICkgYXMgYW55O1xuXG4gICAgcmV0dXJuIGdldERldGFpbHNGYWN0b3J5KHBsYWNlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoW3Jlc3VsdCwgc3RhdHVzXSkgPT4ge1xuICAgICAgICAgIGlmIChzdGF0dXMgIT09IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlU3RhdHVzLk9LKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcGxhY2UsXG4gICAgICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlZ2lzdGVyRm9jdXNNb25pdG9yKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZtLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuZGlzYWJsZWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgob3JpZ2luKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgICB9KVxuICB9XG59XG4iLCI8aW5wdXRcbiAgbWF0SW5wdXRcbiAgdHlwZT1cInNlYXJjaFwiXG4gIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gIFsobmdNb2RlbCldPVwiaW5wdXRBZGRyZXNzXCJcbiAgKGJsdXIpPVwiYmx1ckF1dG9jb21wbGV0ZUlucHV0KClcIlxuICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gIFtuYW1lXT1cImF1dG9jb21wbGV0ZU5hbWVcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAjc2VhcmNoSW5wdXQ+XG5cbjxtYXQtYXV0b2NvbXBsZXRlXG4gIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5V2l0aFwiXG4gIChjbG9zZWQpPVwiYXV0b2NvbXBsZXRlUGFuZWxDbG9zZWQoKVwiXG4gIGF1dG9BY3RpdmVGaXJzdE9wdGlvblxuICAjYXV0b2NvbXBsZXRlPVwibWF0QXV0b2NvbXBsZXRlXCI+XG4gIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcHJlZGljdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCI+XG4gICAge3sgb3B0aW9uLmRlc2NyaXB0aW9uIH19XG4gIDwvbWF0LW9wdGlvbj5cbiAgPGRpdiAqbmdJZj1cIiFjb25maWcuaGlkZUVudGVyTWFudWFsbHlcIiBjbGFzcz1cInN0YXRpYy1vcHRpb25zXCI+XG4gICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIntpZDogJ21hbnVhbCcsIG5hbWU6IGlucHV0QWRkcmVzc31cIj5cbiAgICAgIEVudGVyIGFkZHJlc3MgbWFudWFsbHlcbiAgICA8L21hdC1vcHRpb24+XG4gIDwvZGl2PlxuPC9tYXQtYXV0b2NvbXBsZXRlPlxuIl19

@@ -71,3 +71,3 @@ import { Component, EventEmitter, Input, Output, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, Optional, } from '@angular/core';

useExisting: forwardRef(() => FsAddressCountryComponent),
}], usesOnChanges: true, ngImport: i0, template: "<fs-autocomplete\n [fetch]=\"fetch\"\n [displayWith]=\"displayWith\"\n [fetchOnFocus]=\"true\"\n [(ngModel)]=\"country\"\n (ngModelChange)=\"changed($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [fsFormRequired]=\"required\"\n name=\"country\">\n <ng-template fsAutocompleteTemplate let-data=\"data\">\n {{ data.name }}\n </ng-template>\n</fs-autocomplete>\n", styles: [""], components: [{ type: i1.FsAutocompleteComponent, selector: "fs-autocomplete", inputs: ["fetch", "placeholder", "displayWith", "fetchOnFocus", "readonly", "required", "disabled", "hint", "panelClass", "showClear"], outputs: ["cleared"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i1.FsAutocompleteTemplateDirective, selector: "[fsAutocompleteTemplate]" }], viewProviders: [
}], usesOnChanges: true, ngImport: i0, template: "<fs-autocomplete\n [fetch]=\"fetch\"\n [displayWith]=\"displayWith\"\n [fetchOnFocus]=\"true\"\n [(ngModel)]=\"country\"\n (ngModelChange)=\"changed($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [fsFormRequired]=\"required\"\n name=\"country\">\n <ng-template fsAutocompleteTemplate let-data=\"data\">\n {{ data.name }}\n </ng-template>\n</fs-autocomplete>\n", styles: [""], components: [{ type: i1.FsAutocompleteComponent, selector: "fs-autocomplete", inputs: ["fetch", "placeholder", "displayWith", "fetchOnFocus", "readonly", "required", "disabled", "appearance", "hint", "panelWidth", "panelClass", "showClear"], outputs: ["cleared"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i1.FsAutocompleteTemplateDirective, selector: "[fsAutocompleteTemplate]" }], viewProviders: [
{

@@ -112,2 +112,2 @@ provide: ControlContainer,

}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1jb3VudHJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hZGRyZXNzLWNvdW50cnkvYWRkcmVzcy1jb3VudHJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hZGRyZXNzLWNvdW50cnkvYWRkcmVzcy1jb3VudHJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLHVCQUF1QixFQUd2QixpQkFBaUIsRUFDakIsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFxQnJELE1BQU0sT0FBTyx5QkFBeUI7SUF1QnBDLFlBQW9CLE1BQXlCO1FBQXpCLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBckJwQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQVVyQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFHN0MsYUFBUSxHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUUsR0FBRSxDQUFD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O29CQUMvQyxTQUFTLEVBQUUsQ0FBSTs0QkFDYixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzt5QkFDekQsQ0FBRTtvQkFDSCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFVBQVUsRUFBRSx1QkFBdUI7NEJBQ25DLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQzt5QkFDakM7cUJBQ0Y7aUJBQ0Y7d0dBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBU0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBmb3J3YXJkUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IGNvbnRyb2xDb250YWluZXJGYWN0b3J5IH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29yZSc7XG5cbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENvdW50cmllcyB9IGZyb20gJy4uLy4uL2NvbnN0cy9jb3VudHJpZXMuY29uc3QnO1xuaW1wb3J0IHsgc2VhcmNoQ291bnRyeVJlZ2lvbnMgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1hZGRyZXNzLWNvdW50cnknLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkcmVzcy1jb3VudHJ5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkcmVzcy1jb3VudHJ5LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogWyAgIHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICBtdWx0aTogdHJ1ZSxcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGc0FkZHJlc3NDb3VudHJ5Q29tcG9uZW50KSxcbiAgfSBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsXG4gICAgICB1c2VGYWN0b3J5OiBjb250cm9sQ29udGFpbmVyRmFjdG9yeSxcbiAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIE5nRm9ybV1dLFxuICAgIH1cbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNBZGRyZXNzQ291bnRyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGV4Y2x1ZGVDb3VudHJpZXM6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBjb3VudHJpZXMgPSBDb3VudHJpZXM7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWUpIHtcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlIHx8ICdDb3VudHJ5JztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gIH1cblxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHVibGljIGNvdW50cnk7XG4gIHB1YmxpYyBvbkNoYW5nZSA9IChkYXRhOiBhbnkpID0+IHt9O1xuICBwdWJsaWMgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHB1YmxpYyBmZXRjaCA9IChrZXl3b3JkOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gb2Yoa2V5d29yZClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGt3KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHNlYXJjaENvdW50cnlSZWdpb25zKGt3LCB0aGlzLmNvdW50cmllcywgMTApO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgfVxuXG4gIHB1YmxpYyBkaXNwbGF5V2l0aCA9IChkYXRhKSA9PiB7XG4gICAgcmV0dXJuIGRhdGEubmFtZTtcbiAgfTtcblxuICBwdWJsaWMgd3JpdGVWYWx1ZShkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5jb3VudHJ5ID0gdGhpcy5jb3VudHJpZXMuZmluZCgoY291bnRyeSkgPT4gY291bnRyeS5jb2RlID09PSBkYXRhKTtcbiAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvdW50cnkgPSBkYXRhO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VkKHZhbHVlKSB7XG4gICAgY29uc3QgY29kZSA9IHZhbHVlPy5jb2RlO1xuXG4gICAgdGhpcy5vbkNoYW5nZShjb2RlKTtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KGNvZGUpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChkYXRhOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5leGNsdWRlQ291bnRyaWVzICYmIGNoYW5nZXMuZXhjbHVkZUNvdW50cmllcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY291bnRyaWVzID0gdGhpcy5jb3VudHJpZXMuZmlsdGVyKChjb3VudHJ5KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4Y2x1ZGVDb3VudHJpZXMuaW5kZXhPZihjb3VudHJ5LmNvZGUpID09PSAtMTtcbiAgICAgIH0pXG4gICAgfVxuICB9XG59XG4iLCI8ZnMtYXV0b2NvbXBsZXRlXG4gIFtmZXRjaF09XCJmZXRjaFwiXG4gIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5V2l0aFwiXG4gIFtmZXRjaE9uRm9jdXNdPVwidHJ1ZVwiXG4gIFsobmdNb2RlbCldPVwiY291bnRyeVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZWQoJGV2ZW50KVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtmc0Zvcm1SZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIG5hbWU9XCJjb3VudHJ5XCI+XG4gIDxuZy10ZW1wbGF0ZSBmc0F1dG9jb21wbGV0ZVRlbXBsYXRlIGxldC1kYXRhPVwiZGF0YVwiPlxuICAgIHt7IGRhdGEubmFtZSB9fVxuICA8L25nLXRlbXBsYXRlPlxuPC9mcy1hdXRvY29tcGxldGU+XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1jb3VudHJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hZGRyZXNzLWNvdW50cnkvYWRkcmVzcy1jb3VudHJ5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hZGRyZXNzLWNvdW50cnkvYWRkcmVzcy1jb3VudHJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLHVCQUF1QixFQUd2QixpQkFBaUIsRUFDakIsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFxQnJELE1BQU0sT0FBTyx5QkFBeUI7SUF1QnBDLFlBQW9CLE1BQXlCO1FBQXpCLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBckJwQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQVVyQixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFHN0MsYUFBUSxHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUUsR0FBRSxDQUFD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O29CQUMvQyxTQUFTLEVBQUUsQ0FBSTs0QkFDYixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzt5QkFDekQsQ0FBRTtvQkFDSCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFVBQVUsRUFBRSx1QkFBdUI7NEJBQ25DLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQzt5QkFDakM7cUJBQ0Y7aUJBQ0Y7d0dBR1UsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBU0ksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBmb3J3YXJkUmVmLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IGNvbnRyb2xDb250YWluZXJGYWN0b3J5IH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29yZSc7XG5cbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENvdW50cmllcyB9IGZyb20gJy4uLy4uL2NvbnN0cy9jb3VudHJpZXMuY29uc3QnO1xuaW1wb3J0IHsgc2VhcmNoQ291bnRyeVJlZ2lvbnMgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1hZGRyZXNzLWNvdW50cnknLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkcmVzcy1jb3VudHJ5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkcmVzcy1jb3VudHJ5LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogWyAgIHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICBtdWx0aTogdHJ1ZSxcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGc0FkZHJlc3NDb3VudHJ5Q29tcG9uZW50KSxcbiAgfSBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdmlld1Byb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsXG4gICAgICB1c2VGYWN0b3J5OiBjb250cm9sQ29udGFpbmVyRmFjdG9yeSxcbiAgICAgIGRlcHM6IFtbbmV3IE9wdGlvbmFsKCksIE5nRm9ybV1dLFxuICAgIH1cbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRnNBZGRyZXNzQ291bnRyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGV4Y2x1ZGVDb3VudHJpZXM6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBjb3VudHJpZXMgPSBDb3VudHJpZXM7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWUpIHtcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlIHx8ICdDb3VudHJ5JztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gIH1cblxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHVibGljIGNvdW50cnk7XG4gIHB1YmxpYyBvbkNoYW5nZSA9IChkYXRhOiBhbnkpID0+IHt9O1xuICBwdWJsaWMgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZyA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHB1YmxpYyBmZXRjaCA9IChrZXl3b3JkOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gb2Yoa2V5d29yZClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGt3KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHNlYXJjaENvdW50cnlSZWdpb25zKGt3LCB0aGlzLmNvdW50cmllcywgMTApO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgfVxuXG4gIHB1YmxpYyBkaXNwbGF5V2l0aCA9IChkYXRhKSA9PiB7XG4gICAgcmV0dXJuIGRhdGEubmFtZTtcbiAgfTtcblxuICBwdWJsaWMgd3JpdGVWYWx1ZShkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgdGhpcy5jb3VudHJ5ID0gdGhpcy5jb3VudHJpZXMuZmluZCgoY291bnRyeSkgPT4gY291bnRyeS5jb2RlID09PSBkYXRhKTtcbiAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvdW50cnkgPSBkYXRhO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VkKHZhbHVlKSB7XG4gICAgY29uc3QgY29kZSA9IHZhbHVlPy5jb2RlO1xuXG4gICAgdGhpcy5vbkNoYW5nZShjb2RlKTtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KGNvZGUpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChkYXRhOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5leGNsdWRlQ291bnRyaWVzICYmIGNoYW5nZXMuZXhjbHVkZUNvdW50cmllcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY291bnRyaWVzID0gdGhpcy5jb3VudHJpZXMuZmlsdGVyKChjb3VudHJ5KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4Y2x1ZGVDb3VudHJpZXMuaW5kZXhPZihjb3VudHJ5LmNvZGUpID09PSAtMTtcbiAgICAgIH0pXG4gICAgfVxuICB9XG59XG4iLCI8ZnMtYXV0b2NvbXBsZXRlXG4gIFtmZXRjaF09XCJmZXRjaFwiXG4gIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5V2l0aFwiXG4gIFtmZXRjaE9uRm9jdXNdPVwidHJ1ZVwiXG4gIFsobmdNb2RlbCldPVwiY291bnRyeVwiXG4gIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZWQoJGV2ZW50KVwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtmc0Zvcm1SZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIG5hbWU9XCJjb3VudHJ5XCI+XG4gIDxuZy10ZW1wbGF0ZSBmc0F1dG9jb21wbGV0ZVRlbXBsYXRlIGxldC1kYXRhPVwiZGF0YVwiPlxuICAgIHt7IGRhdGEubmFtZSB9fVxuICA8L25nLXRlbXBsYXRlPlxuPC9mcy1hdXRvY29tcGxldGU+XG4iXX0=

@@ -0,0 +0,0 @@ import { Component, ChangeDetectionStrategy, Inject, ViewChild } from '@angular/core';

@@ -0,0 +0,0 @@ import { Component, Input, ChangeDetectionStrategy, } from '@angular/core';

@@ -0,0 +0,0 @@ import { Component, EventEmitter, Input, Output, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef, } from '@angular/core';

@@ -0,0 +0,0 @@ import { Component, EventEmitter, Input, Output, HostBinding, ChangeDetectionStrategy } from '@angular/core';

@@ -92,8 +92,8 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, Optional, } from '@angular/core';

}
selectUserOption(kw) {
selectUserOption(keyword) {
this.model = {
code: kw,
name: kw,
code: keyword,
name: keyword,
};
this.regionChange.emit(kw);
this.regionChange.emit(keyword);
}

@@ -141,3 +141,3 @@ regionChanged() {

FsAddressRegionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FsAddressRegionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
FsAddressRegionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FsAddressRegionComponent, selector: "fs-address-region", inputs: { region: "region", countries: "countries", disabled: "disabled", label: "label", required: "required", regionCountryOrder: "regionCountryOrder", country: "country" }, outputs: { regionChange: "regionChange" }, usesOnChanges: true, ngImport: i0, template: "<fs-autocomplete\n [fetch]=\"fetch\"\n [displayWith]=\"displayWith\"\n [fetchOnFocus]=\"true\"\n [(ngModel)]=\"model\"\n (ngModelChange)=\"regionChanged()\"\n [placeholder]=\"regionLabel\"\n [disabled]=\"disabled\"\n [fsFormRequired]=\"required\"\n [name]=\"controlName\">\n\n <ng-template fsAutocompleteTemplate let-data=\"data\">\n <span>{{ data.name }}</span>\n <ng-container *ngIf=\"!country || country !== data.country\">\n <ng-container [ngSwitch]=\"data.country\">\n <ng-container *ngSwitchCase=\"countryEnum.Canada\"><!--\n -->, {{ canadaCountryItem.name }}\n </ng-container>\n <ng-container *ngSwitchCase=\"countryEnum.UnitedStates\"><!--\n -->, {{ usCountryItem.name }}\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-template>\n\n\n <ng-template fsAutocompleteStatic\n let-keyword\n [showWhenKeyword]=\"true\">\n <div (click)=\"selectUserOption(keyword)\">\n Just Use \"{{ keyword }}\"\n </div>\n </ng-template>\n\n <ng-template fsAutocompleteNoResults></ng-template>\n\n</fs-autocomplete>\n", styles: [""], components: [{ type: i1.FsAutocompleteComponent, selector: "fs-autocomplete", inputs: ["fetch", "placeholder", "displayWith", "fetchOnFocus", "readonly", "required", "disabled", "hint", "panelClass", "showClear"], outputs: ["cleared"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i1.FsAutocompleteTemplateDirective, selector: "[fsAutocompleteTemplate]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1.FsAutocompleteStaticDirective, selector: "[fsAutocompleteStatic],[fsAutocompleteStaticTemplate]", inputs: ["showWhenKeyword"], outputs: ["selected"] }, { type: i1.FsAutocompleteNoResultsDirective, selector: "[fsAutocompleteNoResults]" }], viewProviders: [
FsAddressRegionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FsAddressRegionComponent, selector: "fs-address-region", inputs: { region: "region", countries: "countries", disabled: "disabled", label: "label", required: "required", regionCountryOrder: "regionCountryOrder", country: "country" }, outputs: { regionChange: "regionChange" }, usesOnChanges: true, ngImport: i0, template: "<fs-autocomplete\n [fetch]=\"fetch\"\n [displayWith]=\"displayWith\"\n [fetchOnFocus]=\"true\"\n [(ngModel)]=\"model\"\n (ngModelChange)=\"regionChanged()\"\n [placeholder]=\"regionLabel\"\n [disabled]=\"disabled\"\n [fsFormRequired]=\"required\"\n [name]=\"controlName\">\n\n <ng-template fsAutocompleteTemplate let-data=\"data\">\n <span>{{ data.name }}</span>\n <ng-container *ngIf=\"!country || country !== data.country\">\n <ng-container [ngSwitch]=\"data.country\">\n <ng-container *ngSwitchCase=\"countryEnum.Canada\"><!--\n -->, {{ canadaCountryItem.name }}\n </ng-container>\n <ng-container *ngSwitchCase=\"countryEnum.UnitedStates\"><!--\n -->, {{ usCountryItem.name }}\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-template>\n\n\n <ng-template\n fsAutocompleteStatic\n let-keyword\n (selected)=\"selectUserOption($event)\"\n [showWhenKeyword]=\"true\">\n Just Use \"{{ keyword }}\"\n </ng-template>\n\n <ng-template fsAutocompleteNoResults></ng-template>\n\n</fs-autocomplete>\n", styles: [""], components: [{ type: i1.FsAutocompleteComponent, selector: "fs-autocomplete", inputs: ["fetch", "placeholder", "displayWith", "fetchOnFocus", "readonly", "required", "disabled", "appearance", "hint", "panelWidth", "panelClass", "showClear"], outputs: ["cleared"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i1.FsAutocompleteTemplateDirective, selector: "[fsAutocompleteTemplate]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1.FsAutocompleteStaticDirective, selector: "[fsAutocompleteStatic],[fsAutocompleteStaticTemplate]", inputs: ["showWhenKeyword"], outputs: ["selected"] }, { type: i1.FsAutocompleteNoResultsDirective, selector: "[fsAutocompleteNoResults]" }], viewProviders: [
{

@@ -182,2 +182,2 @@ provide: ControlContainer,

}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1yZWdpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2FkZHJlc3MtcmVnaW9uL2FkZHJlc3MtcmVnaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hZGRyZXNzLXJlZ2lvbi9hZGRyZXNzLXJlZ2lvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFJTixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFnQm5ELE1BQU0sT0FBTyx3QkFBd0I7SUFnQ25DO1FBN0JnQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRzFCLHVCQUFrQixHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVVwRCxnQkFBVyxHQUFHLFVBQVUsSUFBSSxDQUFDLFFB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QUNFLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFVBQVUsRUFBRSx1QkFBdUI7NEJBQ25DLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQzt5QkFDakM7cUJBQ0Y7aUJBQ0Y7MEVBR2lCLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFHQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBR1csWUFBWTtzQkFBNUIsTUFBTTtnQkFHSSxPQUFPO3NCQURqQixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIE9uSW5pdCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGNvbnRyb2xDb250YWluZXJGYWN0b3J5IH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29yZSc7XG5pbXBvcnQgeyBndWlkIH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29tbW9uJztcblxuaW1wb3J0IHsgc2VhcmNoQ291bnRyeVJlZ2lvbnMgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcbmltcG9ydCB7IElBZGRyZXNzQ291bnRyeSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYWRkcmVzcy1jb3VudHJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJQWRkcmVzc1JlZ2lvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYWRkcmVzcy1yZWdpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENvdW50cnkgfSBmcm9tICcuLi8uLi9lbnVtcy9jb3VudHJ5LmVudW0nO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWFkZHJlc3MtcmVnaW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZHJlc3MtcmVnaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkcmVzcy1yZWdpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgdXNlRmFjdG9yeTogY29udHJvbENvbnRhaW5lckZhY3RvcnksXG4gICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBOZ0Zvcm1dXSxcbiAgICB9XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzQWRkcmVzc1JlZ2lvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBwdWJsaWMgcmVnaW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb3VudHJpZXMgPSBbXTtcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDtcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlZ2lvbkNvdW50cnlPcmRlciA9IFsnQ0EnLCAnVVMnXTtcblxuICBAT3V0cHV0KCkgcHVibGljIHJlZ2lvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBJbnB1dCgnY291bnRyeScpXG4gIHB1YmxpYyBzZXQgY291bnRyeSh2YWx1ZSkge1xuICAgIHRoaXMuX2NvdW50cnkgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUNvdW50cnlSZWdpb25MYWJlbHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbDtcblxuICBwdWJsaWMgY29udHJvbE5hbWUgPSBgcmVnaW9uXyR7Z3VpZCgneHh4eHh4Jyl9YFxuICBwdWJsaWMgcmVnaW9uTGFiZWw7XG4gIHB1YmxpYyBjYW5hZGFDb3VudHJ5SXRlbTogSUFkZHJlc3NDb3VudHJ5O1xuICBwdWJsaWMgdXNDb3VudHJ5SXRlbTogSUFkZHJlc3NDb3VudHJ5O1xuICBwdWJsaWMgY2FuYWRhUmVnaW9uczogSUFkZHJlc3NSZWdpb25bXTtcbiAgcHVibGljIHVzUmVnaW9uczogSUFkZHJlc3NSZWdpb25bXTtcbiAgcHVibGljIGNhbmFkYVJlZ2lvbnNJc0ZpcnN0ID0gZmFsc2U7XG4gIHB1YmxpYyBjb3VudHJ5RW51bSA9IENvdW50cnk7XG5cbiAgcHJpdmF0ZSBfY291bnRyeTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBnZXQgY291bnRyeSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jb3VudHJ5O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2RldGVjdENvdW50cmllc09yZGVyKCk7XG4gICAgdGhpcy5faW5pdENhbmFkYUl0ZW1zKCk7XG4gICAgdGhpcy5faW5pdFVzSXRlbXMoKTtcbiAgICB0aGlzLnVwZGF0ZUNvdW50cnlSZWdpb25MYWJlbHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMucmVnaW9uICYmICEhdGhpcy5yZWdpb24pIHtcbiAgICAgIGNvbnN0IGNvdW50cnkgID0gdGhpcy5jb3VudHJpZXMuZmluZCgoYykgPT4gYy5jb2RlID09PSB0aGlzLmNvdW50cnkpO1xuICAgICAgaWYgKGNvdW50cnkgJiYgY291bnRyeS5yZWdpb25zKSB7XG4gICAgICAgIHRoaXMubW9kZWwgPSBjb3VudHJ5LnJlZ2lvbnMuZmluZCgocmVnaW9uKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlZ2lvbi5jb2RlID09PSB0aGlzLnJlZ2lvbjtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5tb2RlbCkge1xuICAgICAgICB0aGlzLm1vZGVsID0geyBuYW1lOiB0aGlzLnJlZ2lvbiwgY29kZTogdGhpcy5yZWdpb24gfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5jb3VudHJ5ICYmICF0aGlzLl9jb3VudHJ5KSB7XG4gICAgICB0aGlzLm1vZGVsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmV0Y2ggPSAoa2V5d29yZDogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIG9mKGtleXdvcmQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChrdykgPT4ge1xuICAgICAgICAgIGNvbnN0IGNhbmFkYU1hdGNoZXMgPSBzZWFyY2hDb3VudHJ5UmVnaW9ucyhrdywgdGhpcy5jYW5hZGFSZWdpb25zKTtcbiAgICAgICAgICBjb25zdCB1c01hdGNoZXMgPSBzZWFyY2hDb3VudHJ5UmVnaW9ucyhrdywgdGhpcy51c1JlZ2lvbnMpO1xuXG4gICAgICAgICAgc3dpdGNoICh0aGlzLl9jb3VudHJ5KSB7XG4gICAgICAgICAgICBjYXNlIENvdW50cnkuQ2FuYWRhOiB7XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgLi4uY2FuYWRhTWF0Y2hlcyxcbiAgICAgICAgICAgICAgICAuLi51c01hdGNoZXMsXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSBDb3VudHJ5LlVuaXRlZFN0YXRlczoge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIC4uLnVzTWF0Y2hlcyxcbiAgICAgICAgICAgICAgICAuLi5jYW5hZGFNYXRjaGVzLFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY2FuYWRhUmVnaW9uc0lzRmlyc3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgLi4uY2FuYWRhTWF0Y2hlcyxcbiAgICAgICAgICAgICAgICAgIC4uLnVzTWF0Y2hlcyxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAuLi51c01hdGNoZXMsXG4gICAgICAgICAgICAgICAgICAuLi5jYW5hZGFNYXRjaGVzLFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuICB9XG5cbiAgcHVibGljIGRpc3BsYXlXaXRoID0gKGRhdGEpID0+IHtcbiAgICByZXR1cm4gZGF0YS5uYW1lO1xuICB9O1xuXG4gIHB1YmxpYyBzZWxlY3RVc2VyT3B0aW9uKGt3OiBzdHJpbmcpIHtcbiAgICB0aGlzLm1vZGVsID0ge1xuICAgICAgY29kZToga3csXG4gICAgICBuYW1lOiBrdyxcbiAgICB9O1xuICAgIHRoaXMucmVnaW9uQ2hhbmdlLmVtaXQoa3cpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lvbkNoYW5nZWQoKSB7XG4gICAgdGhpcy5yZWdpb25DaGFuZ2UuZW1pdCh0aGlzLm1vZGVsPy5jb2RlKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb3VudHJ5UmVnaW9uTGFiZWxzKCkge1xuICAgIGlmICh0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLnJlZ2lvbkxhYmVsID0gdGhpcy5sYWJlbFxuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVnaW9uTGFiZWwgPSB0aGlzLl9jb3VudHJ5ID09PSBDb3VudHJ5LkNhbmFkYVxuICAgICAgPyAnUHJvdmluY2UnXG4gICAgICA6IHRoaXMuX2NvdW50cnkgPT09IENvdW50cnkuVW5pdGVkU3RhdGVzID8gJ1N0YXRlJyA6ICdQcm92aW5jZS9TdGF0ZSc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdENhbmFkYUl0ZW1zKCk6IHZvaWQge1xuICAgIHRoaXMuY2FuYWRhQ291bnRyeUl0ZW0gPSB0aGlzLmNvdW50cmllc1xuICAgICAgLmZpbmQoKGNvdW50cnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvdW50cnkuY29kZSA9PT0gQ291bnRyeS5DYW5hZGE7XG4gICAgICB9KTtcblxuICAgIHRoaXMuY2FuYWRhUmVnaW9ucyA9IHRoaXMuY2FuYWRhQ291bnRyeUl0ZW0/LnJlZ2lvbnM7XG4gICAgdGhpcy5jYW5hZGFSZWdpb25zLmZvckVhY2goKHJlZ2lvbikgPT4ge1xuICAgICAgcmVnaW9uLmNvdW50cnkgPSB0aGlzLmNhbmFkYUNvdW50cnlJdGVtLmNvZGU7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0VXNJdGVtcygpOiB2b2lkIHtcbiAgICB0aGlzLnVzQ291bnRyeUl0ZW0gPSB0aGlzLmNvdW50cmllc1xuICAgICAgLmZpbmQoKGNvdW50cnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvdW50cnkuY29kZSA9PT0gQ291bnRyeS5Vbml0ZWRTdGF0ZXM7XG4gICAgICB9KTtcblxuICAgIHRoaXMudXNSZWdpb25zID0gdGhpcy51c0NvdW50cnlJdGVtPy5yZWdpb25zO1xuICAgIHRoaXMudXNSZWdpb25zLmZvckVhY2goKHJlZ2lvbikgPT4ge1xuICAgICAgcmVnaW9uLmNvdW50cnkgPSB0aGlzLnVzQ291bnRyeUl0ZW0uY29kZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2RldGVjdENvdW50cmllc09yZGVyKCkge1xuICAgIHRoaXMuY2FuYWRhUmVnaW9uc0lzRmlyc3QgPSB0aGlzLnJlZ2lvbkNvdW50cnlPcmRlci5pbmRleE9mKENvdW50cnkuQ2FuYWRhKSA9PT0gMDtcbiAgfVxuXG59XG4iLCI8ZnMtYXV0b2NvbXBsZXRlXG4gIFtmZXRjaF09XCJmZXRjaFwiXG4gIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5V2l0aFwiXG4gIFtmZXRjaE9uRm9jdXNdPVwidHJ1ZVwiXG4gIFsobmdNb2RlbCldPVwibW9kZWxcIlxuICAobmdNb2RlbENoYW5nZSk9XCJyZWdpb25DaGFuZ2VkKClcIlxuICBbcGxhY2Vob2xkZXJdPVwicmVnaW9uTGFiZWxcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbZnNGb3JtUmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICBbbmFtZV09XCJjb250cm9sTmFtZVwiPlxuXG4gIDxuZy10ZW1wbGF0ZSBmc0F1dG9jb21wbGV0ZVRlbXBsYXRlIGxldC1kYXRhPVwiZGF0YVwiPlxuICAgIDxzcGFuPnt7IGRhdGEubmFtZSB9fTwvc3Bhbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvdW50cnkgfHwgY291bnRyeSAhPT0gZGF0YS5jb3VudHJ5XCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJkYXRhLmNvdW50cnlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY291bnRyeUVudW0uQ2FuYWRhXCI+PCEtLVxuICAgICAgICAgIC0tPiwge3sgY2FuYWRhQ291bnRyeUl0ZW0ubmFtZSB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY291bnRyeUVudW0uVW5pdGVkU3RhdGVzXCI+PCEtLVxuICAgICAgICAgIC0tPiwge3sgdXNDb3VudHJ5SXRlbS5uYW1lIH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cblxuICA8bmctdGVtcGxhdGUgZnNBdXRvY29tcGxldGVTdGF0aWNcbiAgICAgICAgICAgICAgIGxldC1rZXl3b3JkXG4gICAgICAgICAgICAgICBbc2hvd1doZW5LZXl3b3JkXT1cInRydWVcIj5cbiAgICA8ZGl2IChjbGljayk9XCJzZWxlY3RVc2VyT3B0aW9uKGtleXdvcmQpXCI+XG4gICAgICBKdXN0IFVzZSBcInt7IGtleXdvcmQgfX1cIlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSBmc0F1dG9jb21wbGV0ZU5vUmVzdWx0cz48L25nLXRlbXBsYXRlPlxuXG48L2ZzLWF1dG9jb21wbGV0ZT5cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1yZWdpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2FkZHJlc3MtcmVnaW9uL2FkZHJlc3MtcmVnaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hZGRyZXNzLXJlZ2lvbi9hZGRyZXNzLXJlZ2lvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFJTixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFnQm5ELE1BQU0sT0FBTyx3QkFBd0I7SUFnQ25DO1FBN0JnQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRzFCLHVCQUFrQixHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXhCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVVwRCxnQkFBVyxHQUFHLFVBQVUsSUFBSSxDQUFDLFFB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QUNFLE9BQU8sRUFBRSxnQkFBZ0I7NEJBQ3pCLFVBQVUsRUFBRSx1QkFBdUI7NEJBQ25DLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQzt5QkFDakM7cUJBQ0Y7aUJBQ0Y7MEVBR2lCLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFHQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBR1csWUFBWTtzQkFBNUIsTUFBTTtnQkFHSSxPQUFPO3NCQURqQixLQUFLO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIE9uSW5pdCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGNvbnRyb2xDb250YWluZXJGYWN0b3J5IH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29yZSc7XG5pbXBvcnQgeyBndWlkIH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29tbW9uJztcblxuaW1wb3J0IHsgc2VhcmNoQ291bnRyeVJlZ2lvbnMgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcbmltcG9ydCB7IElBZGRyZXNzQ291bnRyeSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYWRkcmVzcy1jb3VudHJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJQWRkcmVzc1JlZ2lvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYWRkcmVzcy1yZWdpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENvdW50cnkgfSBmcm9tICcuLi8uLi9lbnVtcy9jb3VudHJ5LmVudW0nO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWFkZHJlc3MtcmVnaW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZHJlc3MtcmVnaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkcmVzcy1yZWdpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgdXNlRmFjdG9yeTogY29udHJvbENvbnRhaW5lckZhY3RvcnksXG4gICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBOZ0Zvcm1dXSxcbiAgICB9XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZzQWRkcmVzc1JlZ2lvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBwdWJsaWMgcmVnaW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb3VudHJpZXMgPSBbXTtcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDtcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlZ2lvbkNvdW50cnlPcmRlciA9IFsnQ0EnLCAnVVMnXTtcblxuICBAT3V0cHV0KCkgcHVibGljIHJlZ2lvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBJbnB1dCgnY291bnRyeScpXG4gIHB1YmxpYyBzZXQgY291bnRyeSh2YWx1ZSkge1xuICAgIHRoaXMuX2NvdW50cnkgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUNvdW50cnlSZWdpb25MYWJlbHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbDtcblxuICBwdWJsaWMgY29udHJvbE5hbWUgPSBgcmVnaW9uXyR7Z3VpZCgneHh4eHh4Jyl9YFxuICBwdWJsaWMgcmVnaW9uTGFiZWw7XG4gIHB1YmxpYyBjYW5hZGFDb3VudHJ5SXRlbTogSUFkZHJlc3NDb3VudHJ5O1xuICBwdWJsaWMgdXNDb3VudHJ5SXRlbTogSUFkZHJlc3NDb3VudHJ5O1xuICBwdWJsaWMgY2FuYWRhUmVnaW9uczogSUFkZHJlc3NSZWdpb25bXTtcbiAgcHVibGljIHVzUmVnaW9uczogSUFkZHJlc3NSZWdpb25bXTtcbiAgcHVibGljIGNhbmFkYVJlZ2lvbnNJc0ZpcnN0ID0gZmFsc2U7XG4gIHB1YmxpYyBjb3VudHJ5RW51bSA9IENvdW50cnk7XG5cbiAgcHJpdmF0ZSBfY291bnRyeTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBnZXQgY291bnRyeSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9jb3VudHJ5O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2RldGVjdENvdW50cmllc09yZGVyKCk7XG4gICAgdGhpcy5faW5pdENhbmFkYUl0ZW1zKCk7XG4gICAgdGhpcy5faW5pdFVzSXRlbXMoKTtcbiAgICB0aGlzLnVwZGF0ZUNvdW50cnlSZWdpb25MYWJlbHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMucmVnaW9uICYmICEhdGhpcy5yZWdpb24pIHtcbiAgICAgIGNvbnN0IGNvdW50cnkgID0gdGhpcy5jb3VudHJpZXMuZmluZCgoYykgPT4gYy5jb2RlID09PSB0aGlzLmNvdW50cnkpO1xuICAgICAgaWYgKGNvdW50cnkgJiYgY291bnRyeS5yZWdpb25zKSB7XG4gICAgICAgIHRoaXMubW9kZWwgPSBjb3VudHJ5LnJlZ2lvbnMuZmluZCgocmVnaW9uKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHJlZ2lvbi5jb2RlID09PSB0aGlzLnJlZ2lvbjtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5tb2RlbCkge1xuICAgICAgICB0aGlzLm1vZGVsID0geyBuYW1lOiB0aGlzLnJlZ2lvbiwgY29kZTogdGhpcy5yZWdpb24gfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlcy5jb3VudHJ5ICYmICF0aGlzLl9jb3VudHJ5KSB7XG4gICAgICB0aGlzLm1vZGVsID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmV0Y2ggPSAoa2V5d29yZDogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIG9mKGtleXdvcmQpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChrdykgPT4ge1xuICAgICAgICAgIGNvbnN0IGNhbmFkYU1hdGNoZXMgPSBzZWFyY2hDb3VudHJ5UmVnaW9ucyhrdywgdGhpcy5jYW5hZGFSZWdpb25zKTtcbiAgICAgICAgICBjb25zdCB1c01hdGNoZXMgPSBzZWFyY2hDb3VudHJ5UmVnaW9ucyhrdywgdGhpcy51c1JlZ2lvbnMpO1xuXG4gICAgICAgICAgc3dpdGNoICh0aGlzLl9jb3VudHJ5KSB7XG4gICAgICAgICAgICBjYXNlIENvdW50cnkuQ2FuYWRhOiB7XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgLi4uY2FuYWRhTWF0Y2hlcyxcbiAgICAgICAgICAgICAgICAuLi51c01hdGNoZXMsXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY2FzZSBDb3VudHJ5LlVuaXRlZFN0YXRlczoge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIC4uLnVzTWF0Y2hlcyxcbiAgICAgICAgICAgICAgICAuLi5jYW5hZGFNYXRjaGVzLFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY2FuYWRhUmVnaW9uc0lzRmlyc3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgLi4uY2FuYWRhTWF0Y2hlcyxcbiAgICAgICAgICAgICAgICAgIC4uLnVzTWF0Y2hlcyxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAuLi51c01hdGNoZXMsXG4gICAgICAgICAgICAgICAgICAuLi5jYW5hZGFNYXRjaGVzLFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuICB9XG5cbiAgcHVibGljIGRpc3BsYXlXaXRoID0gKGRhdGEpID0+IHtcbiAgICByZXR1cm4gZGF0YS5uYW1lO1xuICB9O1xuXG4gIHB1YmxpYyBzZWxlY3RVc2VyT3B0aW9uKGtleXdvcmQpIHtcbiAgICB0aGlzLm1vZGVsID0ge1xuICAgICAgY29kZToga2V5d29yZCxcbiAgICAgIG5hbWU6IGtleXdvcmQsXG4gICAgfTtcbiAgICBcbiAgICB0aGlzLnJlZ2lvbkNoYW5nZS5lbWl0KGtleXdvcmQpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lvbkNoYW5nZWQoKSB7XG4gICAgdGhpcy5yZWdpb25DaGFuZ2UuZW1pdCh0aGlzLm1vZGVsPy5jb2RlKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb3VudHJ5UmVnaW9uTGFiZWxzKCkge1xuICAgIGlmICh0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLnJlZ2lvbkxhYmVsID0gdGhpcy5sYWJlbFxuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVnaW9uTGFiZWwgPSB0aGlzLl9jb3VudHJ5ID09PSBDb3VudHJ5LkNhbmFkYVxuICAgICAgPyAnUHJvdmluY2UnXG4gICAgICA6IHRoaXMuX2NvdW50cnkgPT09IENvdW50cnkuVW5pdGVkU3RhdGVzID8gJ1N0YXRlJyA6ICdQcm92aW5jZS9TdGF0ZSc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdENhbmFkYUl0ZW1zKCk6IHZvaWQge1xuICAgIHRoaXMuY2FuYWRhQ291bnRyeUl0ZW0gPSB0aGlzLmNvdW50cmllc1xuICAgICAgLmZpbmQoKGNvdW50cnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvdW50cnkuY29kZSA9PT0gQ291bnRyeS5DYW5hZGE7XG4gICAgICB9KTtcblxuICAgIHRoaXMuY2FuYWRhUmVnaW9ucyA9IHRoaXMuY2FuYWRhQ291bnRyeUl0ZW0/LnJlZ2lvbnM7XG4gICAgdGhpcy5jYW5hZGFSZWdpb25zLmZvckVhY2goKHJlZ2lvbikgPT4ge1xuICAgICAgcmVnaW9uLmNvdW50cnkgPSB0aGlzLmNhbmFkYUNvdW50cnlJdGVtLmNvZGU7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0VXNJdGVtcygpOiB2b2lkIHtcbiAgICB0aGlzLnVzQ291bnRyeUl0ZW0gPSB0aGlzLmNvdW50cmllc1xuICAgICAgLmZpbmQoKGNvdW50cnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvdW50cnkuY29kZSA9PT0gQ291bnRyeS5Vbml0ZWRTdGF0ZXM7XG4gICAgICB9KTtcblxuICAgIHRoaXMudXNSZWdpb25zID0gdGhpcy51c0NvdW50cnlJdGVtPy5yZWdpb25zO1xuICAgIHRoaXMudXNSZWdpb25zLmZvckVhY2goKHJlZ2lvbikgPT4ge1xuICAgICAgcmVnaW9uLmNvdW50cnkgPSB0aGlzLnVzQ291bnRyeUl0ZW0uY29kZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2RldGVjdENvdW50cmllc09yZGVyKCkge1xuICAgIHRoaXMuY2FuYWRhUmVnaW9uc0lzRmlyc3QgPSB0aGlzLnJlZ2lvbkNvdW50cnlPcmRlci5pbmRleE9mKENvdW50cnkuQ2FuYWRhKSA9PT0gMDtcbiAgfVxuXG59XG4iLCI8ZnMtYXV0b2NvbXBsZXRlXG4gIFtmZXRjaF09XCJmZXRjaFwiXG4gIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5V2l0aFwiXG4gIFtmZXRjaE9uRm9jdXNdPVwidHJ1ZVwiXG4gIFsobmdNb2RlbCldPVwibW9kZWxcIlxuICAobmdNb2RlbENoYW5nZSk9XCJyZWdpb25DaGFuZ2VkKClcIlxuICBbcGxhY2Vob2xkZXJdPVwicmVnaW9uTGFiZWxcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbZnNGb3JtUmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICBbbmFtZV09XCJjb250cm9sTmFtZVwiPlxuXG4gIDxuZy10ZW1wbGF0ZSBmc0F1dG9jb21wbGV0ZVRlbXBsYXRlIGxldC1kYXRhPVwiZGF0YVwiPlxuICAgIDxzcGFuPnt7IGRhdGEubmFtZSB9fTwvc3Bhbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvdW50cnkgfHwgY291bnRyeSAhPT0gZGF0YS5jb3VudHJ5XCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJkYXRhLmNvdW50cnlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY291bnRyeUVudW0uQ2FuYWRhXCI+PCEtLVxuICAgICAgICAgIC0tPiwge3sgY2FuYWRhQ291bnRyeUl0ZW0ubmFtZSB9fVxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY291bnRyeUVudW0uVW5pdGVkU3RhdGVzXCI+PCEtLVxuICAgICAgICAgIC0tPiwge3sgdXNDb3VudHJ5SXRlbS5uYW1lIH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cblxuICA8bmctdGVtcGxhdGVcbiAgICAgIGZzQXV0b2NvbXBsZXRlU3RhdGljXG4gICAgICBsZXQta2V5d29yZFxuICAgICAgKHNlbGVjdGVkKT1cInNlbGVjdFVzZXJPcHRpb24oJGV2ZW50KVwiXG4gICAgICBbc2hvd1doZW5LZXl3b3JkXT1cInRydWVcIj5cbiAgICBKdXN0IFVzZSBcInt7IGtleXdvcmQgfX1cIlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSBmc0F1dG9jb21wbGV0ZU5vUmVzdWx0cz48L25nLXRlbXBsYXRlPlxuXG48L2ZzLWF1dG9jb21wbGV0ZT5cbiJdfQ==

@@ -0,0 +0,0 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Optional, Output, ViewChild, } from '@angular/core';

export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1zZWFyY2guaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2FkZHJlc3Mtc2VhcmNoL2FkZHJlc3Mtc2VhcmNoLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRnNBZGRyZXNzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hZGRyZXNzLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzc1NlYXJjaEVkaXRFdmVudCB7XG4gIGluaXRpYWxDaGFuZ2U6IGJvb2xlYW47XG4gIHZhbHVlOiBGc0FkZHJlc3M7XG59XG4iXX0=

@@ -267,3 +267,3 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, Optional, } from '@angular/core';

FsAddressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FsAddressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
FsAddressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FsAddressComponent, selector: "fs-address", inputs: { address: "address", excludeCountries: "excludeCountries", regionCountryOrder: "regionCountryOrder", suggestions: "suggestions", setConfig: ["config", "setConfig"] }, outputs: { addressChange: "addressChange", collapseChange: "collapseChange" }, viewQueries: [{ propertyName: "agmMap", first: true, predicate: AgmMap, descendants: true }, { propertyName: "agmMarker", first: true, predicate: AgmMarker, descendants: true }, { propertyName: "fsAddressRegionComponent", first: true, predicate: FsAddressRegionComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field\n *ngIf=\"config.name.visible!==false\"\n class=\"name\">\n <input\n matInput\n autocomplete=\"nope\"\n [(ngModel)]=\"address.name\"\n [disabled]=\"config.name.disabled\"\n [fsFormRequired]=\"config.name.required\"\n [name]=\"controlNames.locationName\"\n placeholder=\"Location name\"\n (change)=\"change($event)\"\n autocomplete=\"off\">\n</mat-form-field>\n\n<ng-container *ngIf=\"config.street.visible!==false\">\n <mat-form-field class=\"street\">\n <ng-container *ngIf=\"suggestions; else textStreetField\">\n <fs-address-autocomplete\n [config]=\"config\"\n [(ngModel)]=\"address\"\n (ngModelChange)=\"change()\"\n [suggestions]=\"suggestions\"\n [placeholder]=\"config.street.placeholder || 'Street'\"\n name=\"{{controlNames.street}}\">\n </fs-address-autocomplete>\n </ng-container>\n\n <ng-template #textStreetField>\n <input\n matInput\n type=\"search\"\n autocomplete=\"nope\"\n [(ngModel)]=\"address.street\"\n [disabled]=\"config.street.disabled\"\n [fsFormRequired]=\"config.street.required\"\n [name]=\"controlNames.street\"\n [placeholder]=\"config.street.placeholder || 'Street'\"\n (change)=\"change()\"\n autocomplete=\"off\">\n </ng-template>\n </mat-form-field>\n</ng-container>\n\n<mat-form-field\n *ngIf=\"config.address2.visible\"\n class=\"address2\">\n <input\n matInput\n type=\"search\"\n autocomplete=\"nope\"\n [(ngModel)]=\"address.address2\"\n [disabled]=\"config.address2.disabled\"\n [fsFormRequired]=\"config.address2.required\"\n [name]=\"controlNames.address2\"\n [placeholder]=\"config.address2.placeholder || 'Address 2'\"\n (change)=\"change($event)\"\n autocomplete=\"off\">\n</mat-form-field>\n\n<mat-form-field\n *ngIf=\"config.address3.visible\"\n class=\"address3\">\n <input\n matInput\n type=\"search\"\n autocomplete=\"nope\"\n [(ngModel)]=\"address.address3\"\n [disabled]=\"config.address3.disabled\"\n [fsFormRequired]=\"config.address3.required\"\n [name]=\"controlNames.address3\"\n [placeholder]=\"config.address3.placeholder || 'Address 3'\"\n (change)=\"change($event)\"\n autocomplete=\"off\">\n</mat-form-field>\n\n<div class=\"city-region-zip-country\" fxLayout.lt-sm=\"column\">\n\n <div class=\"city\">\n <mat-form-field *ngIf=\"config.city.visible!==false\">\n <mat-label [attr.data-after-content]=\"config.city.placeholder || 'City'\"></mat-label>\n <input\n matInput\n type=\"search\"\n autocomplete=\"nope\"\n [(ngModel)]=\"address.city\"\n [disabled]=\"config.city.disabled\"\n [fsFormRequired]=\"config.city.required\"\n [name]=\"controlNames.city\"\n (change)=\"change($event)\"\n autocomplete=\"off\">\n </mat-form-field>\n </div>\n\n <div class=\"region\">\n <fs-address-region\n *ngIf=\"config.region.visible!==false\"\n [(region)]=\"address.region\"\n (regionChange)=\"changeRegion()\"\n [country]=\"address.country\"\n [countries]=\"countries\"\n [label]=\"config.region.placeholder\"\n [disabled]=\"config.region.disabled\"\n [required]=\"config.region.required\"\n [regionCountryOrder]=\"regionCountryOrder\">\n </fs-address-region>\n </div>\n\n <div class=\"country\">\n <fs-address-country\n *ngIf=\"config.country.visible!==false\"\n [disabled]=\"config.country.disabled\"\n [required]=\"config.country.required\"\n [placeholder]=\"config.country.placeholder\"\n [excludeCountries]=\"excludeCountries\"\n [(ngModel)]=\"address.country\"\n (selectionChange)=\"changeCountry()\"\n [name]=\"controlNames.addressCountry\">\n </fs-address-country>\n </div>\n\n <div class=\"zip\">\n <mat-form-field\n *ngIf=\"config.zip.visible!==false\">\n <mat-label>{{ zipLabel }}</mat-label>\n <input\n matInput\n type=\"search\"\n autocomplete=\"nope\"\n [(ngModel)]=\"address.zip\"\n [disabled]=\"config.zip.disabled\"\n [fsFormRequired]=\"config.zip.required\"\n [name]=\"controlNames.zip\"\n (change)=\"change($event)\"\n autocomplete=\"off\">\n </mat-form-field>\n </div>\n\n</div>\n\n<div class=\"map-container\" *ngIf=\"mapConfig.showMap\">\n <agm-map\n [ngStyle.xs]=\"{'height': '300px'}\"\n [latitude]=\"mapConfig.center.latitude\"\n [longitude]=\"mapConfig.center.longitude\"\n [zoom]=\"mapConfig.zoom\"\n [scrollwheel]=\"mapConfig.scrollwheel\"\n [streetViewControl]=\"mapConfig.streetViewControl\"\n [zoomControl]=\"mapConfig.zoomControl\"\n [mapTypeControlOptions]=\"mapConfig.mapTypeControlOptions\">\n <agm-marker\n [latitude]=\"mapConfig.marker.coords.latitude\"\n [longitude]=\"mapConfig.marker.coords.longitude\"\n [markerDraggable]=\"mapConfig.marker.options.draggable\"\n (dragEnd)=\"dragEnded($event)\">\n </agm-marker>\n </agm-map>\n\n <div class=\"address-incomplete\" *ngIf=\"!address.lat && !address.lng\">\n <div *ngIf=\"!isSearched\">Please populate the address above to locate it on the map</div>\n <div *ngIf=\"isSearched\">Could not find address \"{{ searchedAddress }}\"</div>\n </div>\n</div>\n", styles: ["agm-map{width:100%;height:400px;background-color:gray}mat-label:after{content:attr(data-after-content)}.map-container{position:relative}.map-container .address-incomplete{position:absolute;top:0;bottom:0;left:0;background:#fff;border:1px solid #efefef;opacity:.87;font-size:larger;padding:40px;align-items:center;display:flex;right:0;flex-direction:column;justify-content:center;text-align:center}.map-container .center{position:absolute;right:20px;top:20px;right:5px;top:5px;z-index:5;background-color:#fff}.name,.address2,.address3,.street{width:100%;display:block}.city-region-zip-country{display:flex;flex-wrap:wrap}.city-region-zip-country .city,.city-region-zip-country .region,.city-region-zip-country .zip,.city-region-zip-country .country{flex:1 0 50%}.city-region-zip-country .city>*,.city-region-zip-country .region>*,.city-region-zip-country .zip>*,.city-region-zip-country .country>*{padding-right:5px;box-sizing:border-box;display:block}.city-region-zip-country:last-child>*{margin-right:0}.city-region-zip-country ::ng-deep .mat-form-field{width:100%}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.FsAddressAutocompleteComponent, selector: "fs-address-autocomplete", inputs: ["format", "readonly", "name", "suggestions", "config", "disabled", "required", "placeholder"], outputs: ["addressChange"] }, { type: i3.FsAddressRegionComponent, selector: "fs-address-region", inputs: ["region", "countries", "disabled", "label", "required", "regionCountryOrder", "country"], outputs: ["regionChange"] }, { type: i4.FsAddressCountryComponent, selector: "fs-address-country", inputs: ["disabled", "required", "excludeCountries", "countries", "placeholder"], outputs: ["selectionChange"] }, { type: i5.AgmMap, selector: "agm-map", inputs: ["longitude", "latitude", "zoom", "mapDraggable", "disableDoubleClickZoom", "disableDefaultUI", "scrollwheel", "keyboardShortcuts", "styles", "usePanning", "fitBounds", "scaleControl", "mapTypeControl", "panControl", "rotateControl", "fullscreenControl", "mapTypeId", "clickableIcons", "showDefaultInfoWindow", "gestureHandling", "tilt", "minZoom", "maxZoom", "controlSize", "backgroundColor", "draggableCursor", "draggingCursor", "zoomControl", "zoomControlOptions", "streetViewControl", "streetViewControlOptions", "fitBoundsPadding", "scaleControlOptions", "mapTypeControlOptions", "panControlOptions", "rotateControlOptions", "fullscreenControlOptions", "restriction"], outputs: ["mapClick", "mapRightClick", "mapDblClick", "centerChange", "boundsChange", "mapTypeIdChange", "idle", "zoomChange", "mapReady", "tilesLoaded"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i1.MatLabel, selector: "mat-label" }, { type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i11.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i5.AgmMarker, selector: "agm-marker", inputs: ["latitude", "longitude", "title", "label", "markerDraggable", "iconUrl", "openInfoWindow", "opacity", "visible", "zIndex", "animation", "markerClickable"], outputs: ["markerClick", "dragStart", "drag", "dragEnd", "mouseOver", "mouseOut", "animationChange", "markerDblClick", "markerRightClick"] }], viewProviders: [
FsAddressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: FsAddressComponent, selector: "fs-address", inputs: { address: "address", excludeCountries: "excludeCountries", regionCountryOrder: "regionCountryOrder", suggestions: "suggestions", setConfig: ["config", "setConfig"] }, outputs: { addressChange: "addressChange", collapseChange: "collapseChange" }, viewQueries: [{ propertyName: "agmMap", first: true, predicate: AgmMap, descendants: true }, { propertyName: "agmMarker", first: true, predicate: AgmMarker, descendants: true }, { propertyName: "fsAddressRegionComponent", first: true, predicate: FsAddressRegionComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<mat-form-field\n *ngIf=\"config.name.visible!==false\"\n class=\"name\">\n <input\n matInput\n autocomplete=\"nope\"\n [(ngModel)]=\"address.name\"\n [disabled]=\"config.name.disabled\"\n [fsFormRequired]=\"config.name.required\"\n [name]=\"controlNames.locationName\"\n placeholder=\"Location name\"\n (change)=\"change($event)\"\n autocomplete=\"off\">\n</mat-form-field>\n\n<ng-container *ngIf=\"config.street.visible!==false\">\n <mat-form-field class=\"street\">\n <ng-container *ngIf=\"suggestions; else textStreetField\">\n <fs-address-autocomplete\n [config]=\"config\"\n [(ngModel)]=\"address\"\n (ngModelChange)=\"change()\"\n [suggestions]=\"suggestions\"\n [placeholder]=\"config.street.placeholder || 'Street'\"\n name=\"{{controlNames.street}}\">\n </fs-address-autocomplete>\n </ng-container>\n\n <ng-template #textStreetField>\n <input\n matInput\n type=\"search\"\n autocomplete=\"nope\"\n [(ngModel)]=\"address.street\"\n [disabled]=\"config.street.disabled\"\n [fsFormRequired]=\"config.street.required\"\n [name]=\"controlNames.street\"\n [placeholder]=\"config.street.placeholder || 'Street'\"\n (change)=\"change()\"\n autocomplete=\"off\">\n </ng-template>\n </mat-form-field>\n</ng-container>\n\n<mat-form-field\n *ngIf=\"config.address2.visible\"\n class=\"address2\">\n <input\n matInput\n type=\"search\"\n autocomplete=\"nope\"\n [(ngModel)]=\"address.address2\"\n [disabled]=\"config.address2.disabled\"\n [fsFormRequired]=\"config.address2.required\"\n [name]=\"controlNames.address2\"\n [placeholder]=\"config.address2.placeholder || 'Address 2'\"\n (change)=\"change($event)\"\n autocomplete=\"off\">\n</mat-form-field>\n\n<mat-form-field\n *ngIf=\"config.address3.visible\"\n class=\"address3\">\n <input\n matInput\n type=\"search\"\n autocomplete=\"nope\"\n [(ngModel)]=\"address.address3\"\n [disabled]=\"config.address3.disabled\"\n [fsFormRequired]=\"config.address3.required\"\n [name]=\"controlNames.address3\"\n [placeholder]=\"config.address3.placeholder || 'Address 3'\"\n (change)=\"change($event)\"\n autocomplete=\"off\">\n</mat-form-field>\n\n<div class=\"city-region-zip-country\" fxLayout.lt-sm=\"column\">\n\n <div class=\"city\">\n <mat-form-field *ngIf=\"config.city.visible!==false\">\n <mat-label [attr.data-after-content]=\"config.city.placeholder || 'City'\"></mat-label>\n <input\n matInput\n type=\"search\"\n autocomplete=\"nope\"\n [(ngModel)]=\"address.city\"\n [disabled]=\"config.city.disabled\"\n [fsFormRequired]=\"config.city.required\"\n [name]=\"controlNames.city\"\n (change)=\"change($event)\"\n autocomplete=\"off\">\n </mat-form-field>\n </div>\n\n <div class=\"region\">\n <fs-address-region\n *ngIf=\"config.region.visible!==false\"\n [(region)]=\"address.region\"\n (regionChange)=\"changeRegion()\"\n [country]=\"address.country\"\n [countries]=\"countries\"\n [label]=\"config.region.placeholder\"\n [disabled]=\"config.region.disabled\"\n [required]=\"config.region.required\"\n [regionCountryOrder]=\"regionCountryOrder\">\n </fs-address-region>\n </div>\n\n <div class=\"country\">\n <fs-address-country\n *ngIf=\"config.country.visible!==false\"\n [disabled]=\"config.country.disabled\"\n [required]=\"config.country.required\"\n [placeholder]=\"config.country.placeholder\"\n [excludeCountries]=\"excludeCountries\"\n [(ngModel)]=\"address.country\"\n (selectionChange)=\"changeCountry()\"\n [name]=\"controlNames.addressCountry\">\n </fs-address-country>\n </div>\n\n <div class=\"zip\">\n <mat-form-field\n *ngIf=\"config.zip.visible!==false\">\n <mat-label>{{ zipLabel }}</mat-label>\n <input\n matInput\n type=\"search\"\n autocomplete=\"nope\"\n [(ngModel)]=\"address.zip\"\n [disabled]=\"config.zip.disabled\"\n [fsFormRequired]=\"config.zip.required\"\n [name]=\"controlNames.zip\"\n (change)=\"change($event)\"\n autocomplete=\"off\">\n </mat-form-field>\n </div>\n\n</div>\n\n<div class=\"map-container\" *ngIf=\"mapConfig.showMap\">\n <agm-map\n [ngStyle.xs]=\"{'height': '300px'}\"\n [latitude]=\"mapConfig.center.latitude\"\n [longitude]=\"mapConfig.center.longitude\"\n [zoom]=\"mapConfig.zoom\"\n [scrollwheel]=\"mapConfig.scrollwheel\"\n [streetViewControl]=\"mapConfig.streetViewControl\"\n [zoomControl]=\"mapConfig.zoomControl\"\n [mapTypeControlOptions]=\"mapConfig.mapTypeControlOptions\">\n <agm-marker\n [latitude]=\"mapConfig.marker.coords.latitude\"\n [longitude]=\"mapConfig.marker.coords.longitude\"\n [markerDraggable]=\"mapConfig.marker.options.draggable\"\n (dragEnd)=\"dragEnded($event)\">\n </agm-marker>\n </agm-map>\n\n <div class=\"address-incomplete\" *ngIf=\"!address.lat && !address.lng\">\n <div *ngIf=\"!isSearched\">Please populate the address above to locate it on the map</div>\n <div *ngIf=\"isSearched\">Could not find address \"{{ searchedAddress }}\"</div>\n </div>\n</div>\n", styles: ["agm-map{width:100%;height:400px;background-color:gray}mat-label:after{content:attr(data-after-content)}.map-container{position:relative}.map-container .address-incomplete{position:absolute;top:0;bottom:0;left:0;background:#fff;border:1px solid #efefef;opacity:.87;font-size:larger;padding:40px;align-items:center;display:flex;right:0;flex-direction:column;justify-content:center;text-align:center}.map-container .center{position:absolute;right:20px;top:20px;right:5px;top:5px;z-index:5;background-color:#fff}.name,.address2,.address3,.street{width:100%;display:block}.city-region-zip-country{display:flex;flex-wrap:wrap}.city-region-zip-country .city,.city-region-zip-country .region,.city-region-zip-country .zip,.city-region-zip-country .country{flex:1 0 50%}.city-region-zip-country .city>*,.city-region-zip-country .region>*,.city-region-zip-country .zip>*,.city-region-zip-country .country>*{padding-right:5px;box-sizing:border-box;display:block}.city-region-zip-country:last-child>*{margin-right:0}.city-region-zip-country ::ng-deep .mat-form-field{width:100%}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2.FsAddressAutocompleteComponent, selector: "fs-address-autocomplete", inputs: ["format", "readonly", "name", "suggestions", "config", "disabled", "required", "placeholder"], outputs: ["addressChange"] }, { type: i3.FsAddressRegionComponent, selector: "fs-address-region", inputs: ["region", "countries", "disabled", "label", "required", "regionCountryOrder", "country"], outputs: ["regionChange"] }, { type: i4.FsAddressCountryComponent, selector: "fs-address-country", inputs: ["disabled", "required", "excludeCountries", "countries", "placeholder"], outputs: ["selectionChange"] }, { type: i5.AgmMap, selector: "agm-map", inputs: ["longitude", "latitude", "zoom", "mapDraggable", "disableDoubleClickZoom", "disableDefaultUI", "scrollwheel", "keyboardShortcuts", "styles", "usePanning", "fitBounds", "scaleControl", "mapTypeControl", "panControl", "rotateControl", "fullscreenControl", "mapTypeId", "clickableIcons", "showDefaultInfoWindow", "gestureHandling", "tilt", "minZoom", "maxZoom", "controlSize", "backgroundColor", "draggableCursor", "draggingCursor", "zoomControl", "zoomControlOptions", "streetViewControl", "streetViewControlOptions", "fitBoundsPadding", "scaleControlOptions", "mapTypeControlOptions", "panControlOptions", "rotateControlOptions", "fullscreenControlOptions", "restriction"], outputs: ["mapClick", "mapRightClick", "mapDblClick", "centerChange", "boundsChange", "mapTypeIdChange", "idle", "zoomChange", "mapReady", "tilesLoaded"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i9.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i1.MatLabel, selector: "mat-label" }, { type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i11.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i5.AgmMarker, selector: "agm-marker", inputs: ["latitude", "longitude", "title", "label", "markerDraggable", "iconUrl", "openInfoWindow", "opacity", "visible", "zIndex", "animation", "markerClickable"], outputs: ["markerClick", "dragStart", "drag", "dragEnd", "mouseOver", "mouseOut", "animationChange", "markerDblClick", "markerRightClick"] }], viewProviders: [
{

@@ -315,2 +315,2 @@ provide: ControlContainer,

}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYWRkcmVzcy9hZGRyZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxFQUNULFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXRGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQW1CbkQsTUFBTSxPQUFPLGtCQUFrQjtJQWIvQjtRQXFCWSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3ZD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Q3pCLFVBQVUsRUFBRSx1QkFBdUI7NEJBQ25DLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQzt5QkFDakM7cUJBQ0Y7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhCQUdvQixNQUFNO3NCQUF4QixTQUFTO3VCQUFDLE1BQU07Z0JBQ0ssU0FBUztzQkFBOUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNpQix3QkFBd0I7c0JBQTVELFNBQVM7dUJBQUMsd0JBQXdCO2dCQUUxQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFHQSxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFHZSxTQUFTO3NCQUE3QixLQUFLO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBjb250cm9sQ29udGFpbmVyRmFjdG9yeSB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvcmUnO1xuaW1wb3J0IHsgZ3VpZCB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5cbmltcG9ydCB7IEFnbU1hcCwgQWdtTWFya2VyIH0gZnJvbSAnQGFnbS9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBDb3VudHJpZXMgfSBmcm9tICcuLi8uLi9jb25zdHMvY291bnRyaWVzLmNvbnN0JztcbmltcG9ydCB7IEZzQWRkcmVzcyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYWRkcmVzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRnNBZGRyZXNzQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hZGRyZXNzLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRnNBZGRyZXNzUmVnaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkcmVzcy1yZWdpb24vYWRkcmVzcy1yZWdpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZzQWRkcmVzc01hcENvbmZpZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYWRkcmVzcy1tYXAtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb3VudHJ5IH0gZnJvbSAnLi4vLi4vZW51bXMvY291bnRyeS5lbnVtJztcblxuXG5kZWNsYXJlIHZhciBnb29nbGU6IGFueTtcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1hZGRyZXNzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZHJlc3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGRyZXNzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgdXNlRmFjdG9yeTogY29udHJvbENvbnRhaW5lckZhY3RvcnksXG4gICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBOZ0Zvcm1dXSxcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc0FkZHJlc3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKEFnbU1hcCkgYWdtTWFwO1xuICBAVmlld0NoaWxkKEFnbU1hcmtlcikgYWdtTWFya2VyO1xuICBAVmlld0NoaWxkKEZzQWRkcmVzc1JlZ2lvbkNvbXBvbmVudCkgZnNBZGRyZXNzUmVnaW9uQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIGFkZHJlc3M6IEZzQWRkcmVzcztcbiAgQElucHV0KCkgZXhjbHVkZUNvdW50cmllczogc3RyaW5nW107XG4gIEBPdXRwdXQoKSBhZGRyZXNzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY29sbGFwc2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlZ2lvbkNvdW50cnlPcmRlciA9IFsnQ0EnLCAnVVMnXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3VnZ2VzdGlvbnMgPSBmYWxzZTtcblxuICBASW5wdXQoJ2NvbmZpZycpIHNldCBzZXRDb25maWcoY29uZmlnOiBGc0FkZHJlc3NDb25maWcpIHtcblxuICAgIGNvbmZpZy5zZWFyY2ggPSBjb25maWcuc2VhcmNoID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGNvbmZpZy5zZWFyY2g7XG5cbiAgICBpZiAoIWlzT2JqZWN0KGNvbmZpZy5tYXApKSB7XG4gICAgICBjb25maWcubWFwID0geyBzaG93TWFwOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICB9XG5cbiAgcHVibGljIGNvbnRyb2xOYW1lcyA9IHtcbiAgICBzdHJlZXQ6IGBzdHJlZXRfJHtndWlkKCd4eHh4eHh4eCcpfWAsXG4gICAgbG9jYXRpb25OYW1lOiBgbG9jYXRpb25fbmFtZV8ke2d1aWQoJ3h4eHh4eHh4Jyl9YCxcbiAgICBhZGRyZXNzMjogYGFkZHJlc3MyXyR7Z3VpZCgneHh4eHh4eHgnKX1gLFxuICAgIGFkZHJlc3MzOiBgYWRkcmVzczNfJHtndWlkKCd4eHh4eHh4eCcpfWAsXG4gICAgY2l0eTogYGNpdHlfJHtndWlkKCd4eHh4eHh4eCcpfWAsXG4gICAgYWRkcmVzc0NvdW50cnk6IGBhZGRyZXNzX2NvdW50cnlfJHtndWlkKCd4eHh4eHh4eCcpfWAsXG4gICAgemlwOiBgemlwXyR7Z3VpZCgneHh4eHh4eHgnKX1gLFxuICB9O1xuXG4gIHB1YmxpYyBjb25maWc6IEZzQWRkcmVzc0NvbmZpZyA9IHt9O1xuICBwdWJsaWMgY291bnRyaWVzID0gQ291bnRyaWVzO1xuICBwdWJsaWMgemlwTGFiZWw6IHN0cmluZztcbiAgcHVibGljIHNlYXJjaGVkQWRkcmVzczogc3RyaW5nO1xuICBwdWJsaWMgaXNTZWFyY2hlZCA9IGZhbHNlO1xuICBwdWJsaWMgbWFwQ29uZmlnOiBGc0FkZHJlc3NNYXBDb25maWc7XG5cbiAgcHJpdmF0ZSBfZGVzdG9yeSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRBZGRyZXNzKCk7XG4gICAgdGhpcy5pbml0Q29uZmlnKCk7XG4gICAgdGhpcy5pbml0TWFwKCk7XG5cbiAgICB0aGlzLmluaXRDb3VudHJpZXMoKTtcbiAgICB0aGlzLmluaXRaaXBBbmRTdGF0ZUxhYmVscygpO1xuICAgIHRoaXMuaW5pdENvbGxhcHNlQnRuKCk7XG5cbiAgICAvLyBFeGFtcGxlIHJlYWR5IGV2ZW50LiBBbGxvdyB0byB1c2UgZ29vZ2xlIG9iamVjdCBhbmQgbWFwIGluc3RhbmNlXG4gICAgaWYgKHRoaXMuYWdtTWFwKSB7XG4gICAgICB0aGlzLmFnbU1hcFxuICAgICAgICAubWFwUmVhZHlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3RvcnkkKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuXG4gICAgICAgICAgdGhpcy5hZ21NYXAudHJpZ2dlclJlc2l6ZSgpO1xuXG4gICAgICAgICAgaWYgKHRoaXMuYWRkcmVzcy5uYW1lIHx8XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3MuY291bnRyeSB8fFxuICAgICAgICAgICAgdGhpcy5hZGRyZXNzLnJlZ2lvbiB8fFxuICAgICAgICAgICAgdGhpcy5hZGRyZXNzLmNpdHkgfHxcbiAgICAgICAgICAgIHRoaXMuYWRkcmVzcy56aXApIHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRyZXNzLmxhdCA9IDk5OTk7XG4gICAgICAgICAgICAgIHRoaXMuYWRkcmVzcy5sbmcgPSA5OTk5O1xuICAgICAgICAgICAgICB0aGlzLmNoYW5nZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlKSB7XG5cbiAgICBpZiAoY2hhbmdlLmFkZHJlc3MpIHtcbiAgICAgIGlmICghY2hhbmdlLmFkZHJlc3MuY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMuYWRkcmVzcyA9IHt9O1xuICAgICAgfVxuXG4gICAgICBpZiAoIWNoYW5nZS5hZGRyZXNzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDb3VudHJ5ID0gY2hhbmdlLmFkZHJlc3MuY3VycmVudFZhbHVlID8gY2hhbmdlLmFkZHJlc3MuY3VycmVudFZhbHVlLmNvdW50cnkgOiBudWxsO1xuICAgICAgICBjb25zdCBwcmV2aW91c0NvdW50cnkgPSBjaGFuZ2UuYWRkcmVzcy5wcmV2aW91c1ZhbHVlID8gY2hhbmdlLmFkZHJlc3MucHJldmlvdXNWYWx1ZS5jb3VudHJ5IDogbnVsbDtcbiAgICAgICAgaWYgKGN1cnJlbnRDb3VudHJ5ICE9PSBwcmV2aW91c0NvdW50cnkpIHtcbiAgICAgICAgICB0aGlzLmluaXRaaXBBbmRTdGF0ZUxhYmVscygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3RvcnkkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0b3J5JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHJlY2VudGVyKCkge1xuICAgIHRoaXMubWFwQ29uZmlnLmNlbnRlciA9IHsgbGF0aXR1ZGU6IHRoaXMuYWRkcmVzcy5sYXQsIGxvbmdpdHVkZTogdGhpcy5hZGRyZXNzLmxuZyB9O1xuICAgIHRoaXMubWFwQ29uZmlnLm1hcmtlci5jb29yZHMubGF0aXR1ZGUgPSB0aGlzLmFkZHJlc3MubGF0O1xuICAgIHRoaXMubWFwQ29uZmlnLm1hcmtlci5jb29yZHMubG9uZ2l0dWRlID0gdGhpcy5hZGRyZXNzLmxuZztcbiAgICB0aGlzLmFnbU1hcC50cmlnZ2VyUmVzaXplKClcbiAgICAgIC50aGVuKCgpID0+IHRoaXMuYWdtTWFwLl9tYXBzV3JhcHBlci5zZXRDZW50ZXIoe2xhdDogdGhpcy5hZGRyZXNzLmxhdCwgbG5nOiB0aGlzLmFkZHJlc3MubG5nfSkpO1xuICB9XG5cbiAgcHVibGljIGRyYWdFbmRlZChldmVudCk6IHZvaWQge1xuICAgIHRoaXMubWFwQ29uZmlnLm1hcmtlci5ldmVudHMuZHJhZ2VuZChldmVudClcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VDb3VudHJ5KCkge1xuXG4gICAgY29uc3QgY291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoaXRlbSA9PiBpdGVtLmNvZGUgPT09IHRoaXMuYWRkcmVzcy5jb3VudHJ5KTtcblxuICAgIGlmIChjb3VudHJ5ICYmIGNvdW50cnkucmVnaW9ucykge1xuXG4gICAgICBjb25zdCByZWdpb24gPSBjb3VudHJ5LnJlZ2lvbnMuc29tZShpdGVtID0+IGl0ZW0uY29kZSA9PT0gdGhpcy5hZGRyZXNzLnJlZ2lvbik7XG5cbiAgICAgIGlmICghcmVnaW9uKSB7XG4gICAgICAgIHRoaXMuYWRkcmVzcy5yZWdpb24gPSBudWxsO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkcmVzcy5yZWdpb24gPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuZnNBZGRyZXNzUmVnaW9uQ29tcG9uZW50LnJlZ2lvbiA9IHRoaXMuYWRkcmVzcy5yZWdpb247XG4gICAgdGhpcy5pbml0WmlwQW5kU3RhdGVMYWJlbHMoKTtcbiAgICB0aGlzLmNoYW5nZSgpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZVJlZ2lvbigpIHtcbiAgICBpZiAoISF0aGlzLmFkZHJlc3MucmVnaW9uKSB7XG4gICAgICBjb25zdCByZWdpb25Db3VudHJ5ID0gdGhpcy5jb3VudHJpZXMuZmluZCgoY291bnRyeSkgPT4ge1xuICAgICAgICByZXR1cm4gY291bnRyeS5yZWdpb25zXG4gICAgICAgICAgJiYgY291bnRyeS5yZWdpb25zLmZpbmQoKHJlZ2lvbikgPT4gdGhpcy5hZGRyZXNzLnJlZ2lvbiA9PT0gcmVnaW9uLmNvZGUpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChyZWdpb25Db3VudHJ5KSB7XG4gICAgICAgIHRoaXMuYWRkcmVzcy5jb3VudHJ5ID0gcmVnaW9uQ291bnRyeS5jb2RlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY2hhbmdlKCk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlKGV2ZW50Pykge1xuXG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY29uZmlnLnNlYXJjaCkge1xuICAgICAgcmV0dXJuIHRoaXMuYWRkcmVzc0NoYW5nZS5lbWl0KHRoaXMuYWRkcmVzcyk7XG4gICAgfVxuXG4gICAgY29uc3QgZ2VvY29kZXIgPSBuZXcgZ29vZ2xlLm1hcHMuR2VvY29kZXIoKTtcbiAgICBjb25zdCBwYXJ0cyA9IFtcbiAgICAgIHRoaXMuYWRkcmVzcy5jb3VudHJ5LFxuICAgICAgdGhpcy5hZGRyZXNzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWRkcmVzcy5jaXR5LFxuICAgICAgdGhpcy5hZGRyZXNzLnppcCxcbiAgICAgIHRoaXMuYWRkcmVzcy5zdHJlZXQsXG4gICAgICB0aGlzLmFkZHJlc3MubmFtZVxuICAgIF07XG5cbiAgICB0aGlzLnNlYXJjaGVkQWRkcmVzcyA9IHBhcnRzLmZpbHRlcihwYXJ0ID0+IHBhcnQpLmpvaW4oJywgJyk7XG5cbiAgICB0aGlzLmFkZHJlc3NDaGFuZ2UuZW1pdCh0aGlzLmFkZHJlc3MpO1xuXG4gICAgZ2VvY29kZXIuZ2VvY29kZSggeyBhZGRyZXNzOiB0aGlzLnNlYXJjaGVkQWRkcmVzcyAgfSwgKHJlc3VsdHMsIHN0YXR1cykgPT4ge1xuICAgICAgdGhpcy5pc1NlYXJjaGVkID0gdHJ1ZTtcbiAgICAgIGNvbnN0IG5ld0FkZHJlc3MgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmFkZHJlc3MpO1xuXG4gICAgICBpZiAoc3RhdHVzID09IGdvb2dsZS5tYXBzLkdlb2NvZGVyU3RhdHVzLk9LICYmIHJlc3VsdHMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHJlc3VsdHNbMF0uZ2VvbWV0cnkubG9jYXRpb247XG5cbiAgICAgICAgbmV3QWRkcmVzcy5kZXNjcmlwdGlvbiA9IHJlc3VsdHNbMF0uZm9ybWF0dGVkX2FkZHJlc3M7XG4gICAgICAgIG5ld0FkZHJlc3MubGF0ID0gbG9jYXRpb24ubGF0KCk7XG4gICAgICAgIG5ld0FkZHJlc3MubG5nID0gbG9jYXRpb24ubG5nKCk7XG5cbiAgICAgICAgdGhpcy5tYXBDb25maWcuY2VudGVyID0geyBsYXRpdHVkZTogbG9jYXRpb24ubGF0KCksIGxvbmdpdHVkZTogbG9jYXRpb24ubG5nKCkgfTtcblxuICAgICAgICB0aGlzLm1hcENvbmZpZy5tYXJrZXIuY29vcmRzLmxhdGl0dWRlID0gbG9jYXRpb24ubGF0KCk7XG4gICAgICAgIHRoaXMubWFwQ29uZmlnLm1hcmtlci5jb29yZHMubG9uZ2l0dWRlID0gbG9jYXRpb24ubG5nKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYWdtTWFwKSB7XG4gICAgICAgICAgdGhpcy5hZ21NYXAudHJpZ2dlclJlc2l6ZSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdBZGRyZXNzLmxhdCA9IG51bGw7XG4gICAgICAgIG5ld0FkZHJlc3MubG5nID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hZGRyZXNzQ2hhbmdlLmVtaXQobmV3QWRkcmVzcyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRBZGRyZXNzKCkge1xuICAgIHRoaXMuYWRkcmVzcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgbmFtZTogdm9pZCAwLFxuICAgICAgY291bnRyeTogdm9pZCAwLFxuICAgICAgcmVnaW9uOiB2b2lkIDAsXG4gICAgICBhZGRyZXNzMjogdm9pZCAwLFxuICAgICAgYWRkcmVzczM6IHZvaWQgMCxcbiAgICAgIHN0cmVldDogdm9pZCAwLFxuICAgICAgY2l0eTogdm9pZCAwLFxuICAgICAgemlwOiB2b2lkIDAsXG4gICAgICBsYXQ6IG51bGwsXG4gICAgICBsbmc6IG51bGwsXG4gICAgfSwgdGhpcy5hZGRyZXNzKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENvbmZpZygpIHtcbiAgICB0aGlzLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgbmFtZTogeyByZXF1aXJlZDogZmFsc2UsIHZpc2libGU6IHRydWUgfSxcbiAgICAgIGNvdW50cnk6IHsgcmVxdWlyZWQ6IGZhbHNlLCB2aXNpYmxlOiB0cnVlIH0sXG4gICAgICByZWdpb246IHsgcmVxdWlyZWQ6IGZhbHNlLCB2aXNpYmxlOiB0cnVlIH0sXG4gICAgICBhZGRyZXNzMjogeyByZXF1aXJlZDogZmFsc2UsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgICBhZGRyZXNzMzogeyByZXF1aXJlZDogZmFsc2UsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgICBjaXR5OiB7IHJlcXVpcmVkOiBmYWxzZSwgdmlzaWJsZTogdHJ1ZSB9LFxuICAgICAgc3RyZWV0OiB7IHJlcXVpcmVkOiBmYWxzZSwgdmlzaWJsZTogdHJ1ZSB9LFxuICAgICAgemlwOiB7IHJlcXVpcmVkOiBmYWxzZSwgdmlzaWJsZTogdHJ1ZSB9LFxuICAgIH0sIHRoaXMuY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdE1hcCgpIHtcblxuICAgIHRoaXMubWFwQ29uZmlnID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICBjZW50ZXI6IHtcbiAgICAgICAgbGF0aXR1ZGU6IHRoaXMuYWRkcmVzcy5sYXQgfHwgOTk5OSxcbiAgICAgICAgbG9uZ2l0dWRlOiB0aGlzLmFkZHJlc3MubG5nIHx8IDk5OTlcbiAgICAgIH0sXG4gICAgICB6b29tOiAxMyxcbiAgICAgIHNjcm9sbHdoZWVsOiBmYWxzZSxcbiAgICAgIHN0cmVldFZpZXdDb250cm9sOiBmYWxzZSxcbiAgICAgIHpvb21Db250cm9sOiB0cnVlLFxuICAgICAgbWFwVHlwZUNvbnRyb2xPcHRpb25zOiB7IG1hcFR5cGVJZHM6IFtdIH0sXG4gICAgICBtYXJrZXI6IHtcbiAgICAgICAgaWQ6IDAsXG4gICAgICAgIGNvb3JkczogeyBsYXRpdHVkZTogdGhpcy5hZGRyZXNzLmxhdCwgbG9uZ2l0dWRlOiB0aGlzLmFkZHJlc3MubG5nIH0sXG4gICAgICAgIG9wdGlvbnM6IHsgZHJhZ2dhYmxlOiB0cnVlIH0sXG4gICAgICAgIGV2ZW50czoge1xuICAgICAgICAgIGRyYWdlbmQ6IG1hcmtlciA9PiB7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3MubGF0ID0gbWFya2VyLmNvb3Jkcy5sYXQ7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3MubG5nID0gbWFya2VyLmNvb3Jkcy5sbmc7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3NDaGFuZ2UuZW1pdCh0aGlzLmFkZHJlc3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgfSwgdGhpcy5jb25maWcubWFwKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENvdW50cmllcygpIHtcbiAgICBpZiAodGhpcy5jb25maWcuY291bnRyeSAmJiB0aGlzLmNvbmZpZy5jb3VudHJ5Lmxpc3QgJiYgdGhpcy5jb25maWcuY291bnRyeS5saXN0Lmxlbmd0aCkge1xuICAgICAgdGhpcy5jb3VudHJpZXMubGVuZ3RoID0gMDtcbiAgICAgIHRoaXMuY29uZmlnLmNvdW50cnkubGlzdC5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgY29uc3QgY291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoY291bnRyeUVsID0+IGNvdW50cnlFbC5jb2RlID09PSBlbCk7XG4gICAgICAgIGlmIChjb3VudHJ5KSB7XG4gICAgICAgICAgdGhpcy5jb3VudHJpZXMucHVzaChjb3VudHJ5KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IGlzRW1wdHkgPSB0cnVlO1xuICAgIE9iamVjdC5rZXlzKHRoaXMuYWRkcmVzcykuZm9yRWFjaCgob2JqZWN0S2V5KSA9PiB7XG4gICAgICBpZiAodGhpcy5hZGRyZXNzW29iamVjdEtleV0pIHtcbiAgICAgICAgaXNFbXB0eSA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRaaXBBbmRTdGF0ZUxhYmVscygpIHtcbiAgICB0aGlzLnVwZGF0ZUNvdW50cnlSZWdpb25MYWJlbHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ291bnRyeVJlZ2lvbkxhYmVscygpIHtcbiAgICBpZiAodGhpcy5hZGRyZXNzLmNvdW50cnkpIHtcbiAgICAgIHRoaXMuemlwTGFiZWwgPSB0aGlzLmFkZHJlc3MuY291bnRyeSA9PT0gQ291bnRyeS5Vbml0ZWRTdGF0ZXNcbiAgICAgICAgPyAnWklQIENvZGUnXG4gICAgICAgIDogJ1Bvc3RhbCBDb2RlJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy56aXBMYWJlbCA9ICdaSVAvUG9zdGFsIENvZGUnO1xuICAgIH1cblxuICAgIHRoaXMuemlwTGFiZWwgPSB0aGlzLmNvbmZpZy56aXAucGxhY2Vob2xkZXJcbiAgICAgID8gdGhpcy5jb25maWcuemlwLnBsYWNlaG9sZGVyXG4gICAgICA6IHRoaXMuemlwTGFiZWw7XG4gIH1cblxuICBwcml2YXRlIGluaXRDb2xsYXBzZUJ0bigpIHtcbiAgICB0aGlzLmNvbmZpZy5jb2xsYXBzZUJ1dHRvbiA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgIHRpdGxlOiAnQ29sbGFwc2UgQWRkcmVzcyBFZGl0b3InLFxuICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgIHRoZW1lOiAnbWF0LXJhaXNlZC1idXR0b24nLFxuICAgIH0sIHRoaXMuY29uZmlnLmNvbGxhcHNlQnV0dG9uKTtcbiAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkXG4gICpuZ0lmPVwiY29uZmlnLm5hbWUudmlzaWJsZSE9PWZhbHNlXCJcbiAgY2xhc3M9XCJuYW1lXCI+XG4gIDxpbnB1dFxuICAgIG1hdElucHV0XG4gICAgYXV0b2NvbXBsZXRlPVwibm9wZVwiXG4gICAgWyhuZ01vZGVsKV09XCJhZGRyZXNzLm5hbWVcIlxuICAgIFtkaXNhYmxlZF09XCJjb25maWcubmFtZS5kaXNhYmxlZFwiXG4gICAgW2ZzRm9ybVJlcXVpcmVkXT1cImNvbmZpZy5uYW1lLnJlcXVpcmVkXCJcbiAgICBbbmFtZV09XCJjb250cm9sTmFtZXMubG9jYXRpb25OYW1lXCJcbiAgICBwbGFjZWhvbGRlcj1cIkxvY2F0aW9uIG5hbWVcIlxuICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuPC9tYXQtZm9ybS1maWVsZD5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZy5zdHJlZXQudmlzaWJsZSE9PWZhbHNlXCI+XG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInN0cmVldFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWdnZXN0aW9uczsgZWxzZSB0ZXh0U3RyZWV0RmllbGRcIj5cbiAgICAgIDxmcy1hZGRyZXNzLWF1dG9jb21wbGV0ZVxuICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgIFsobmdNb2RlbCldPVwiYWRkcmVzc1wiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZSgpXCJcbiAgICAgICAgW3N1Z2dlc3Rpb25zXT1cInN1Z2dlc3Rpb25zXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5zdHJlZXQucGxhY2Vob2xkZXIgfHwgJ1N0cmVldCdcIlxuICAgICAgICBuYW1lPVwie3tjb250cm9sTmFtZXMuc3RyZWV0fX1cIj5cbiAgICAgIDwvZnMtYWRkcmVzcy1hdXRvY29tcGxldGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI3RleHRTdHJlZXRGaWVsZD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICBhdXRvY29tcGxldGU9XCJub3BlXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImFkZHJlc3Muc3RyZWV0XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnLnN0cmVldC5kaXNhYmxlZFwiXG4gICAgICAgICAgW2ZzRm9ybVJlcXVpcmVkXT1cImNvbmZpZy5zdHJlZXQucmVxdWlyZWRcIlxuICAgICAgICAgIFtuYW1lXT1cImNvbnRyb2xOYW1lcy5zdHJlZXRcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcuc3RyZWV0LnBsYWNlaG9sZGVyIHx8ICdTdHJlZXQnXCJcbiAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZSgpXCJcbiAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9uZy1jb250YWluZXI+XG5cbjxtYXQtZm9ybS1maWVsZFxuICAqbmdJZj1cImNvbmZpZy5hZGRyZXNzMi52aXNpYmxlXCJcbiAgY2xhc3M9XCJhZGRyZXNzMlwiPlxuICA8aW5wdXRcbiAgICBtYXRJbnB1dFxuICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgIGF1dG9jb21wbGV0ZT1cIm5vcGVcIlxuICAgIFsobmdNb2RlbCldPVwiYWRkcmVzcy5hZGRyZXNzMlwiXG4gICAgW2Rpc2FibGVkXT1cImNvbmZpZy5hZGRyZXNzMi5kaXNhYmxlZFwiXG4gICAgW2ZzRm9ybVJlcXVpcmVkXT1cImNvbmZpZy5hZGRyZXNzMi5yZXF1aXJlZFwiXG4gICAgW25hbWVdPVwiY29udHJvbE5hbWVzLmFkZHJlc3MyXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLmFkZHJlc3MyLnBsYWNlaG9sZGVyIHx8ICdBZGRyZXNzIDInXCJcbiAgICAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjxtYXQtZm9ybS1maWVsZFxuICAqbmdJZj1cImNvbmZpZy5hZGRyZXNzMy52aXNpYmxlXCJcbiAgY2xhc3M9XCJhZGRyZXNzM1wiPlxuICA8aW5wdXRcbiAgICBtYXRJbnB1dFxuICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgIGF1dG9jb21wbGV0ZT1cIm5vcGVcIlxuICAgIFsobmdNb2RlbCldPVwiYWRkcmVzcy5hZGRyZXNzM1wiXG4gICAgW2Rpc2FibGVkXT1cImNvbmZpZy5hZGRyZXNzMy5kaXNhYmxlZFwiXG4gICAgW2ZzRm9ybVJlcXVpcmVkXT1cImNvbmZpZy5hZGRyZXNzMy5yZXF1aXJlZFwiXG4gICAgW25hbWVdPVwiY29udHJvbE5hbWVzLmFkZHJlc3MzXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLmFkZHJlc3MzLnBsYWNlaG9sZGVyIHx8ICdBZGRyZXNzIDMnXCJcbiAgICAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjxkaXYgY2xhc3M9XCJjaXR5LXJlZ2lvbi16aXAtY291bnRyeVwiIGZ4TGF5b3V0Lmx0LXNtPVwiY29sdW1uXCI+XG5cbiAgPGRpdiBjbGFzcz1cImNpdHlcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJjb25maWcuY2l0eS52aXNpYmxlIT09ZmFsc2VcIj5cbiAgICAgIDxtYXQtbGFiZWwgW2F0dHIuZGF0YS1hZnRlci1jb250ZW50XT1cImNvbmZpZy5jaXR5LnBsYWNlaG9sZGVyIHx8ICdDaXR5J1wiPjwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJub3BlXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJhZGRyZXNzLmNpdHlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnLmNpdHkuZGlzYWJsZWRcIlxuICAgICAgICBbZnNGb3JtUmVxdWlyZWRdPVwiY29uZmlnLmNpdHkucmVxdWlyZWRcIlxuICAgICAgICBbbmFtZV09XCJjb250cm9sTmFtZXMuY2l0eVwiXG4gICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicmVnaW9uXCI+XG4gICAgPGZzLWFkZHJlc3MtcmVnaW9uXG4gICAgICAqbmdJZj1cImNvbmZpZy5yZWdpb24udmlzaWJsZSE9PWZhbHNlXCJcbiAgICAgIFsocmVnaW9uKV09XCJhZGRyZXNzLnJlZ2lvblwiXG4gICAgICAocmVnaW9uQ2hhbmdlKT1cImNoYW5nZVJlZ2lvbigpXCJcbiAgICAgIFtjb3VudHJ5XT1cImFkZHJlc3MuY291bnRyeVwiXG4gICAgICBbY291bnRyaWVzXT1cImNvdW50cmllc1wiXG4gICAgICBbbGFiZWxdPVwiY29uZmlnLnJlZ2lvbi5wbGFjZWhvbGRlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiY29uZmlnLnJlZ2lvbi5kaXNhYmxlZFwiXG4gICAgICBbcmVxdWlyZWRdPVwiY29uZmlnLnJlZ2lvbi5yZXF1aXJlZFwiXG4gICAgICBbcmVnaW9uQ291bnRyeU9yZGVyXT1cInJlZ2lvbkNvdW50cnlPcmRlclwiPlxuICAgIDwvZnMtYWRkcmVzcy1yZWdpb24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb3VudHJ5XCI+XG4gICAgPGZzLWFkZHJlc3MtY291bnRyeVxuICAgICAgKm5nSWY9XCJjb25maWcuY291bnRyeS52aXNpYmxlIT09ZmFsc2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZy5jb3VudHJ5LmRpc2FibGVkXCJcbiAgICAgIFtyZXF1aXJlZF09XCJjb25maWcuY291bnRyeS5yZXF1aXJlZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLmNvdW50cnkucGxhY2Vob2xkZXJcIlxuICAgICAgW2V4Y2x1ZGVDb3VudHJpZXNdPVwiZXhjbHVkZUNvdW50cmllc1wiXG4gICAgICBbKG5nTW9kZWwpXT1cImFkZHJlc3MuY291bnRyeVwiXG4gICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZUNvdW50cnkoKVwiXG4gICAgICBbbmFtZV09XCJjb250cm9sTmFtZXMuYWRkcmVzc0NvdW50cnlcIj5cbiAgICA8L2ZzLWFkZHJlc3MtY291bnRyeT5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInppcFwiPlxuICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgKm5nSWY9XCJjb25maWcuemlwLnZpc2libGUhPT1mYWxzZVwiPlxuICAgICAgPG1hdC1sYWJlbD57eyB6aXBMYWJlbCB9fTwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJub3BlXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJhZGRyZXNzLnppcFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb25maWcuemlwLmRpc2FibGVkXCJcbiAgICAgICAgW2ZzRm9ybVJlcXVpcmVkXT1cImNvbmZpZy56aXAucmVxdWlyZWRcIlxuICAgICAgICBbbmFtZV09XCJjb250cm9sTmFtZXMuemlwXCJcbiAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm1hcC1jb250YWluZXJcIiAqbmdJZj1cIm1hcENvbmZpZy5zaG93TWFwXCI+XG4gIDxhZ20tbWFwXG4gICAgW25nU3R5bGUueHNdPVwieydoZWlnaHQnOiAnMzAwcHgnfVwiXG4gICAgW2xhdGl0dWRlXT1cIm1hcENvbmZpZy5jZW50ZXIubGF0aXR1ZGVcIlxuICAgIFtsb25naXR1ZGVdPVwibWFwQ29uZmlnLmNlbnRlci5sb25naXR1ZGVcIlxuICAgIFt6b29tXT1cIm1hcENvbmZpZy56b29tXCJcbiAgICBbc2Nyb2xsd2hlZWxdPVwibWFwQ29uZmlnLnNjcm9sbHdoZWVsXCJcbiAgICBbc3RyZWV0Vmlld0NvbnRyb2xdPVwibWFwQ29uZmlnLnN0cmVldFZpZXdDb250cm9sXCJcbiAgICBbem9vbUNvbnRyb2xdPVwibWFwQ29uZmlnLnpvb21Db250cm9sXCJcbiAgICBbbWFwVHlwZUNvbnRyb2xPcHRpb25zXT1cIm1hcENvbmZpZy5tYXBUeXBlQ29udHJvbE9wdGlvbnNcIj5cbiAgICA8YWdtLW1hcmtlclxuICAgICAgW2xhdGl0dWRlXT1cIm1hcENvbmZpZy5tYXJrZXIuY29vcmRzLmxhdGl0dWRlXCJcbiAgICAgIFtsb25naXR1ZGVdPVwibWFwQ29uZmlnLm1hcmtlci5jb29yZHMubG9uZ2l0dWRlXCJcbiAgICAgIFttYXJrZXJEcmFnZ2FibGVdPVwibWFwQ29uZmlnLm1hcmtlci5vcHRpb25zLmRyYWdnYWJsZVwiXG4gICAgICAoZHJhZ0VuZCk9XCJkcmFnRW5kZWQoJGV2ZW50KVwiPlxuICAgIDwvYWdtLW1hcmtlcj5cbiAgPC9hZ20tbWFwPlxuXG4gIDxkaXYgY2xhc3M9XCJhZGRyZXNzLWluY29tcGxldGVcIiAqbmdJZj1cIiFhZGRyZXNzLmxhdCAmJiAhYWRkcmVzcy5sbmdcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWlzU2VhcmNoZWRcIj5QbGVhc2UgcG9wdWxhdGUgdGhlIGFkZHJlc3MgYWJvdmUgdG8gbG9jYXRlIGl0IG9uIHRoZSBtYXA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNTZWFyY2hlZFwiPkNvdWxkIG5vdCBmaW5kIGFkZHJlc3MgXCJ7eyBzZWFyY2hlZEFkZHJlc3MgfX1cIjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYWRkcmVzcy9hZGRyZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxFQUNULFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTlDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXRGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQW1CbkQsTUFBTSxPQUFPLGtCQUFrQjtJQWIvQjtRQXFCWSxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3ZD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Q3pCLFVBQVUsRUFBRSx1QkFBdUI7NEJBQ25DLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQzt5QkFDakM7cUJBQ0Y7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzhCQUdvQixNQUFNO3NCQUF4QixTQUFTO3VCQUFDLE1BQU07Z0JBQ0ssU0FBUztzQkFBOUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNpQix3QkFBd0I7c0JBQTVELFNBQVM7dUJBQUMsd0JBQXdCO2dCQUUxQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFHQSxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFHZSxTQUFTO3NCQUE3QixLQUFLO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgT3B0aW9uYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBjb250cm9sQ29udGFpbmVyRmFjdG9yeSB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvcmUnO1xuaW1wb3J0IHsgZ3VpZCB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5cbmltcG9ydCB7IEFnbU1hcCwgQWdtTWFya2VyIH0gZnJvbSAnQGFnbS9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBDb3VudHJpZXMgfSBmcm9tICcuLi8uLi9jb25zdHMvY291bnRyaWVzLmNvbnN0JztcbmltcG9ydCB7IEZzQWRkcmVzcyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYWRkcmVzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRnNBZGRyZXNzQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hZGRyZXNzLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRnNBZGRyZXNzUmVnaW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkcmVzcy1yZWdpb24vYWRkcmVzcy1yZWdpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZzQWRkcmVzc01hcENvbmZpZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYWRkcmVzcy1tYXAtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb3VudHJ5IH0gZnJvbSAnLi4vLi4vZW51bXMvY291bnRyeS5lbnVtJztcblxuXG5kZWNsYXJlIHZhciBnb29nbGU6IGFueTtcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1hZGRyZXNzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZHJlc3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGRyZXNzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHZpZXdQcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgdXNlRmFjdG9yeTogY29udHJvbENvbnRhaW5lckZhY3RvcnksXG4gICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBOZ0Zvcm1dXSxcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGc0FkZHJlc3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKEFnbU1hcCkgYWdtTWFwO1xuICBAVmlld0NoaWxkKEFnbU1hcmtlcikgYWdtTWFya2VyO1xuICBAVmlld0NoaWxkKEZzQWRkcmVzc1JlZ2lvbkNvbXBvbmVudCkgZnNBZGRyZXNzUmVnaW9uQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIGFkZHJlc3M6IEZzQWRkcmVzcztcbiAgQElucHV0KCkgZXhjbHVkZUNvdW50cmllczogc3RyaW5nW107XG4gIEBPdXRwdXQoKSBhZGRyZXNzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY29sbGFwc2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlZ2lvbkNvdW50cnlPcmRlciA9IFsnQ0EnLCAnVVMnXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3VnZ2VzdGlvbnMgPSBmYWxzZTtcblxuICBASW5wdXQoJ2NvbmZpZycpIHNldCBzZXRDb25maWcoY29uZmlnOiBGc0FkZHJlc3NDb25maWcpIHtcblxuICAgIGNvbmZpZy5zZWFyY2ggPSBjb25maWcuc2VhcmNoID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGNvbmZpZy5zZWFyY2g7XG5cbiAgICBpZiAoIWlzT2JqZWN0KGNvbmZpZy5tYXApKSB7XG4gICAgICBjb25maWcubWFwID0geyBzaG93TWFwOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICB9XG5cbiAgcHVibGljIGNvbnRyb2xOYW1lcyA9IHtcbiAgICBzdHJlZXQ6IGBzdHJlZXRfJHtndWlkKCd4eHh4eHh4eCcpfWAsXG4gICAgbG9jYXRpb25OYW1lOiBgbG9jYXRpb25fbmFtZV8ke2d1aWQoJ3h4eHh4eHh4Jyl9YCxcbiAgICBhZGRyZXNzMjogYGFkZHJlc3MyXyR7Z3VpZCgneHh4eHh4eHgnKX1gLFxuICAgIGFkZHJlc3MzOiBgYWRkcmVzczNfJHtndWlkKCd4eHh4eHh4eCcpfWAsXG4gICAgY2l0eTogYGNpdHlfJHtndWlkKCd4eHh4eHh4eCcpfWAsXG4gICAgYWRkcmVzc0NvdW50cnk6IGBhZGRyZXNzX2NvdW50cnlfJHtndWlkKCd4eHh4eHh4eCcpfWAsXG4gICAgemlwOiBgemlwXyR7Z3VpZCgneHh4eHh4eHgnKX1gLFxuICB9O1xuXG4gIHB1YmxpYyBjb25maWc6IEZzQWRkcmVzc0NvbmZpZyA9IHt9O1xuICBwdWJsaWMgY291bnRyaWVzID0gQ291bnRyaWVzO1xuICBwdWJsaWMgemlwTGFiZWw6IHN0cmluZztcbiAgcHVibGljIHNlYXJjaGVkQWRkcmVzczogc3RyaW5nO1xuICBwdWJsaWMgaXNTZWFyY2hlZCA9IGZhbHNlO1xuICBwdWJsaWMgbWFwQ29uZmlnOiBGc0FkZHJlc3NNYXBDb25maWc7XG5cbiAgcHJpdmF0ZSBfZGVzdG9yeSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRBZGRyZXNzKCk7XG4gICAgdGhpcy5pbml0Q29uZmlnKCk7XG4gICAgdGhpcy5pbml0TWFwKCk7XG5cbiAgICB0aGlzLmluaXRDb3VudHJpZXMoKTtcbiAgICB0aGlzLmluaXRaaXBBbmRTdGF0ZUxhYmVscygpO1xuICAgIHRoaXMuaW5pdENvbGxhcHNlQnRuKCk7XG5cbiAgICAvLyBFeGFtcGxlIHJlYWR5IGV2ZW50LiBBbGxvdyB0byB1c2UgZ29vZ2xlIG9iamVjdCBhbmQgbWFwIGluc3RhbmNlXG4gICAgaWYgKHRoaXMuYWdtTWFwKSB7XG4gICAgICB0aGlzLmFnbU1hcFxuICAgICAgICAubWFwUmVhZHlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3RvcnkkKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuXG4gICAgICAgICAgdGhpcy5hZ21NYXAudHJpZ2dlclJlc2l6ZSgpO1xuXG4gICAgICAgICAgaWYgKHRoaXMuYWRkcmVzcy5uYW1lIHx8XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3MuY291bnRyeSB8fFxuICAgICAgICAgICAgdGhpcy5hZGRyZXNzLnJlZ2lvbiB8fFxuICAgICAgICAgICAgdGhpcy5hZGRyZXNzLmNpdHkgfHxcbiAgICAgICAgICAgIHRoaXMuYWRkcmVzcy56aXApIHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRyZXNzLmxhdCA9IDk5OTk7XG4gICAgICAgICAgICAgIHRoaXMuYWRkcmVzcy5sbmcgPSA5OTk5O1xuICAgICAgICAgICAgICB0aGlzLmNoYW5nZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlKSB7XG5cbiAgICBpZiAoY2hhbmdlLmFkZHJlc3MpIHtcbiAgICAgIGlmICghY2hhbmdlLmFkZHJlc3MuY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMuYWRkcmVzcyA9IHt9O1xuICAgICAgfVxuXG4gICAgICBpZiAoIWNoYW5nZS5hZGRyZXNzLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDb3VudHJ5ID0gY2hhbmdlLmFkZHJlc3MuY3VycmVudFZhbHVlID8gY2hhbmdlLmFkZHJlc3MuY3VycmVudFZhbHVlLmNvdW50cnkgOiBudWxsO1xuICAgICAgICBjb25zdCBwcmV2aW91c0NvdW50cnkgPSBjaGFuZ2UuYWRkcmVzcy5wcmV2aW91c1ZhbHVlID8gY2hhbmdlLmFkZHJlc3MucHJldmlvdXNWYWx1ZS5jb3VudHJ5IDogbnVsbDtcbiAgICAgICAgaWYgKGN1cnJlbnRDb3VudHJ5ICE9PSBwcmV2aW91c0NvdW50cnkpIHtcbiAgICAgICAgICB0aGlzLmluaXRaaXBBbmRTdGF0ZUxhYmVscygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3RvcnkkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0b3J5JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHJlY2VudGVyKCkge1xuICAgIHRoaXMubWFwQ29uZmlnLmNlbnRlciA9IHsgbGF0aXR1ZGU6IHRoaXMuYWRkcmVzcy5sYXQsIGxvbmdpdHVkZTogdGhpcy5hZGRyZXNzLmxuZyB9O1xuICAgIHRoaXMubWFwQ29uZmlnLm1hcmtlci5jb29yZHMubGF0aXR1ZGUgPSB0aGlzLmFkZHJlc3MubGF0O1xuICAgIHRoaXMubWFwQ29uZmlnLm1hcmtlci5jb29yZHMubG9uZ2l0dWRlID0gdGhpcy5hZGRyZXNzLmxuZztcbiAgICB0aGlzLmFnbU1hcC50cmlnZ2VyUmVzaXplKClcbiAgICAgIC50aGVuKCgpID0+IHRoaXMuYWdtTWFwLl9tYXBzV3JhcHBlci5zZXRDZW50ZXIoe2xhdDogdGhpcy5hZGRyZXNzLmxhdCwgbG5nOiB0aGlzLmFkZHJlc3MubG5nfSkpO1xuICB9XG5cbiAgcHVibGljIGRyYWdFbmRlZChldmVudCk6IHZvaWQge1xuICAgIHRoaXMubWFwQ29uZmlnLm1hcmtlci5ldmVudHMuZHJhZ2VuZChldmVudClcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VDb3VudHJ5KCkge1xuXG4gICAgY29uc3QgY291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoaXRlbSA9PiBpdGVtLmNvZGUgPT09IHRoaXMuYWRkcmVzcy5jb3VudHJ5KTtcblxuICAgIGlmIChjb3VudHJ5ICYmIGNvdW50cnkucmVnaW9ucykge1xuXG4gICAgICBjb25zdCByZWdpb24gPSBjb3VudHJ5LnJlZ2lvbnMuc29tZShpdGVtID0+IGl0ZW0uY29kZSA9PT0gdGhpcy5hZGRyZXNzLnJlZ2lvbik7XG5cbiAgICAgIGlmICghcmVnaW9uKSB7XG4gICAgICAgIHRoaXMuYWRkcmVzcy5yZWdpb24gPSBudWxsO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkcmVzcy5yZWdpb24gPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuZnNBZGRyZXNzUmVnaW9uQ29tcG9uZW50LnJlZ2lvbiA9IHRoaXMuYWRkcmVzcy5yZWdpb247XG4gICAgdGhpcy5pbml0WmlwQW5kU3RhdGVMYWJlbHMoKTtcbiAgICB0aGlzLmNoYW5nZSgpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZVJlZ2lvbigpIHtcbiAgICBpZiAoISF0aGlzLmFkZHJlc3MucmVnaW9uKSB7XG4gICAgICBjb25zdCByZWdpb25Db3VudHJ5ID0gdGhpcy5jb3VudHJpZXMuZmluZCgoY291bnRyeSkgPT4ge1xuICAgICAgICByZXR1cm4gY291bnRyeS5yZWdpb25zXG4gICAgICAgICAgJiYgY291bnRyeS5yZWdpb25zLmZpbmQoKHJlZ2lvbikgPT4gdGhpcy5hZGRyZXNzLnJlZ2lvbiA9PT0gcmVnaW9uLmNvZGUpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChyZWdpb25Db3VudHJ5KSB7XG4gICAgICAgIHRoaXMuYWRkcmVzcy5jb3VudHJ5ID0gcmVnaW9uQ291bnRyeS5jb2RlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY2hhbmdlKCk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlKGV2ZW50Pykge1xuXG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY29uZmlnLnNlYXJjaCkge1xuICAgICAgcmV0dXJuIHRoaXMuYWRkcmVzc0NoYW5nZS5lbWl0KHRoaXMuYWRkcmVzcyk7XG4gICAgfVxuXG4gICAgY29uc3QgZ2VvY29kZXIgPSBuZXcgZ29vZ2xlLm1hcHMuR2VvY29kZXIoKTtcbiAgICBjb25zdCBwYXJ0cyA9IFtcbiAgICAgIHRoaXMuYWRkcmVzcy5jb3VudHJ5LFxuICAgICAgdGhpcy5hZGRyZXNzLnJlZ2lvbixcbiAgICAgIHRoaXMuYWRkcmVzcy5jaXR5LFxuICAgICAgdGhpcy5hZGRyZXNzLnppcCxcbiAgICAgIHRoaXMuYWRkcmVzcy5zdHJlZXQsXG4gICAgICB0aGlzLmFkZHJlc3MubmFtZVxuICAgIF07XG5cbiAgICB0aGlzLnNlYXJjaGVkQWRkcmVzcyA9IHBhcnRzLmZpbHRlcihwYXJ0ID0+IHBhcnQpLmpvaW4oJywgJyk7XG5cbiAgICB0aGlzLmFkZHJlc3NDaGFuZ2UuZW1pdCh0aGlzLmFkZHJlc3MpO1xuXG4gICAgZ2VvY29kZXIuZ2VvY29kZSggeyBhZGRyZXNzOiB0aGlzLnNlYXJjaGVkQWRkcmVzcyAgfSwgKHJlc3VsdHMsIHN0YXR1cykgPT4ge1xuICAgICAgdGhpcy5pc1NlYXJjaGVkID0gdHJ1ZTtcbiAgICAgIGNvbnN0IG5ld0FkZHJlc3MgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmFkZHJlc3MpO1xuXG4gICAgICBpZiAoc3RhdHVzID09IGdvb2dsZS5tYXBzLkdlb2NvZGVyU3RhdHVzLk9LICYmIHJlc3VsdHMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHJlc3VsdHNbMF0uZ2VvbWV0cnkubG9jYXRpb247XG5cbiAgICAgICAgbmV3QWRkcmVzcy5kZXNjcmlwdGlvbiA9IHJlc3VsdHNbMF0uZm9ybWF0dGVkX2FkZHJlc3M7XG4gICAgICAgIG5ld0FkZHJlc3MubGF0ID0gbG9jYXRpb24ubGF0KCk7XG4gICAgICAgIG5ld0FkZHJlc3MubG5nID0gbG9jYXRpb24ubG5nKCk7XG5cbiAgICAgICAgdGhpcy5tYXBDb25maWcuY2VudGVyID0geyBsYXRpdHVkZTogbG9jYXRpb24ubGF0KCksIGxvbmdpdHVkZTogbG9jYXRpb24ubG5nKCkgfTtcblxuICAgICAgICB0aGlzLm1hcENvbmZpZy5tYXJrZXIuY29vcmRzLmxhdGl0dWRlID0gbG9jYXRpb24ubGF0KCk7XG4gICAgICAgIHRoaXMubWFwQ29uZmlnLm1hcmtlci5jb29yZHMubG9uZ2l0dWRlID0gbG9jYXRpb24ubG5nKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYWdtTWFwKSB7XG4gICAgICAgICAgdGhpcy5hZ21NYXAudHJpZ2dlclJlc2l6ZSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdBZGRyZXNzLmxhdCA9IG51bGw7XG4gICAgICAgIG5ld0FkZHJlc3MubG5nID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5hZGRyZXNzQ2hhbmdlLmVtaXQobmV3QWRkcmVzcyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRBZGRyZXNzKCkge1xuICAgIHRoaXMuYWRkcmVzcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgbmFtZTogdm9pZCAwLFxuICAgICAgY291bnRyeTogdm9pZCAwLFxuICAgICAgcmVnaW9uOiB2b2lkIDAsXG4gICAgICBhZGRyZXNzMjogdm9pZCAwLFxuICAgICAgYWRkcmVzczM6IHZvaWQgMCxcbiAgICAgIHN0cmVldDogdm9pZCAwLFxuICAgICAgY2l0eTogdm9pZCAwLFxuICAgICAgemlwOiB2b2lkIDAsXG4gICAgICBsYXQ6IG51bGwsXG4gICAgICBsbmc6IG51bGwsXG4gICAgfSwgdGhpcy5hZGRyZXNzKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENvbmZpZygpIHtcbiAgICB0aGlzLmNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgbmFtZTogeyByZXF1aXJlZDogZmFsc2UsIHZpc2libGU6IHRydWUgfSxcbiAgICAgIGNvdW50cnk6IHsgcmVxdWlyZWQ6IGZhbHNlLCB2aXNpYmxlOiB0cnVlIH0sXG4gICAgICByZWdpb246IHsgcmVxdWlyZWQ6IGZhbHNlLCB2aXNpYmxlOiB0cnVlIH0sXG4gICAgICBhZGRyZXNzMjogeyByZXF1aXJlZDogZmFsc2UsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgICBhZGRyZXNzMzogeyByZXF1aXJlZDogZmFsc2UsIHZpc2libGU6IGZhbHNlIH0sXG4gICAgICBjaXR5OiB7IHJlcXVpcmVkOiBmYWxzZSwgdmlzaWJsZTogdHJ1ZSB9LFxuICAgICAgc3RyZWV0OiB7IHJlcXVpcmVkOiBmYWxzZSwgdmlzaWJsZTogdHJ1ZSB9LFxuICAgICAgemlwOiB7IHJlcXVpcmVkOiBmYWxzZSwgdmlzaWJsZTogdHJ1ZSB9LFxuICAgIH0sIHRoaXMuY29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdE1hcCgpIHtcblxuICAgIHRoaXMubWFwQ29uZmlnID0gT2JqZWN0LmFzc2lnbih7XG4gICAgICBjZW50ZXI6IHtcbiAgICAgICAgbGF0aXR1ZGU6IHRoaXMuYWRkcmVzcy5sYXQgfHwgOTk5OSxcbiAgICAgICAgbG9uZ2l0dWRlOiB0aGlzLmFkZHJlc3MubG5nIHx8IDk5OTlcbiAgICAgIH0sXG4gICAgICB6b29tOiAxMyxcbiAgICAgIHNjcm9sbHdoZWVsOiBmYWxzZSxcbiAgICAgIHN0cmVldFZpZXdDb250cm9sOiBmYWxzZSxcbiAgICAgIHpvb21Db250cm9sOiB0cnVlLFxuICAgICAgbWFwVHlwZUNvbnRyb2xPcHRpb25zOiB7IG1hcFR5cGVJZHM6IFtdIH0sXG4gICAgICBtYXJrZXI6IHtcbiAgICAgICAgaWQ6IDAsXG4gICAgICAgIGNvb3JkczogeyBsYXRpdHVkZTogdGhpcy5hZGRyZXNzLmxhdCwgbG9uZ2l0dWRlOiB0aGlzLmFkZHJlc3MubG5nIH0sXG4gICAgICAgIG9wdGlvbnM6IHsgZHJhZ2dhYmxlOiB0cnVlIH0sXG4gICAgICAgIGV2ZW50czoge1xuICAgICAgICAgIGRyYWdlbmQ6IG1hcmtlciA9PiB7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3MubGF0ID0gbWFya2VyLmNvb3Jkcy5sYXQ7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3MubG5nID0gbWFya2VyLmNvb3Jkcy5sbmc7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3NDaGFuZ2UuZW1pdCh0aGlzLmFkZHJlc3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgfSwgdGhpcy5jb25maWcubWFwKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENvdW50cmllcygpIHtcbiAgICBpZiAodGhpcy5jb25maWcuY291bnRyeSAmJiB0aGlzLmNvbmZpZy5jb3VudHJ5Lmxpc3QgJiYgdGhpcy5jb25maWcuY291bnRyeS5saXN0Lmxlbmd0aCkge1xuICAgICAgdGhpcy5jb3VudHJpZXMubGVuZ3RoID0gMDtcbiAgICAgIHRoaXMuY29uZmlnLmNvdW50cnkubGlzdC5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgY29uc3QgY291bnRyeSA9IHRoaXMuY291bnRyaWVzLmZpbmQoY291bnRyeUVsID0+IGNvdW50cnlFbC5jb2RlID09PSBlbCk7XG4gICAgICAgIGlmIChjb3VudHJ5KSB7XG4gICAgICAgICAgdGhpcy5jb3VudHJpZXMucHVzaChjb3VudHJ5KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbGV0IGlzRW1wdHkgPSB0cnVlO1xuICAgIE9iamVjdC5rZXlzKHRoaXMuYWRkcmVzcykuZm9yRWFjaCgob2JqZWN0S2V5KSA9PiB7XG4gICAgICBpZiAodGhpcy5hZGRyZXNzW29iamVjdEtleV0pIHtcbiAgICAgICAgaXNFbXB0eSA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRaaXBBbmRTdGF0ZUxhYmVscygpIHtcbiAgICB0aGlzLnVwZGF0ZUNvdW50cnlSZWdpb25MYWJlbHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ291bnRyeVJlZ2lvbkxhYmVscygpIHtcbiAgICBpZiAodGhpcy5hZGRyZXNzLmNvdW50cnkpIHtcbiAgICAgIHRoaXMuemlwTGFiZWwgPSB0aGlzLmFkZHJlc3MuY291bnRyeSA9PT0gQ291bnRyeS5Vbml0ZWRTdGF0ZXNcbiAgICAgICAgPyAnWklQIENvZGUnXG4gICAgICAgIDogJ1Bvc3RhbCBDb2RlJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy56aXBMYWJlbCA9ICdaSVAvUG9zdGFsIENvZGUnO1xuICAgIH1cblxuICAgIHRoaXMuemlwTGFiZWwgPSB0aGlzLmNvbmZpZy56aXAucGxhY2Vob2xkZXJcbiAgICAgID8gdGhpcy5jb25maWcuemlwLnBsYWNlaG9sZGVyXG4gICAgICA6IHRoaXMuemlwTGFiZWw7XG4gIH1cblxuICBwcml2YXRlIGluaXRDb2xsYXBzZUJ0bigpIHtcbiAgICB0aGlzLmNvbmZpZy5jb2xsYXBzZUJ1dHRvbiA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgIHRpdGxlOiAnQ29sbGFwc2UgQWRkcmVzcyBFZGl0b3InLFxuICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgIHRoZW1lOiAnbWF0LXJhaXNlZC1idXR0b24nLFxuICAgIH0sIHRoaXMuY29uZmlnLmNvbGxhcHNlQnV0dG9uKTtcbiAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkXG4gICpuZ0lmPVwiY29uZmlnLm5hbWUudmlzaWJsZSE9PWZhbHNlXCJcbiAgY2xhc3M9XCJuYW1lXCI+XG4gIDxpbnB1dFxuICAgIG1hdElucHV0XG4gICAgYXV0b2NvbXBsZXRlPVwibm9wZVwiXG4gICAgWyhuZ01vZGVsKV09XCJhZGRyZXNzLm5hbWVcIlxuICAgIFtkaXNhYmxlZF09XCJjb25maWcubmFtZS5kaXNhYmxlZFwiXG4gICAgW2ZzRm9ybVJlcXVpcmVkXT1cImNvbmZpZy5uYW1lLnJlcXVpcmVkXCJcbiAgICBbbmFtZV09XCJjb250cm9sTmFtZXMubG9jYXRpb25OYW1lXCJcbiAgICBwbGFjZWhvbGRlcj1cIkxvY2F0aW9uIG5hbWVcIlxuICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuPC9tYXQtZm9ybS1maWVsZD5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZy5zdHJlZXQudmlzaWJsZSE9PWZhbHNlXCI+XG4gIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInN0cmVldFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWdnZXN0aW9uczsgZWxzZSB0ZXh0U3RyZWV0RmllbGRcIj5cbiAgICAgIDxmcy1hZGRyZXNzLWF1dG9jb21wbGV0ZVxuICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgIFsobmdNb2RlbCldPVwiYWRkcmVzc1wiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZSgpXCJcbiAgICAgICAgW3N1Z2dlc3Rpb25zXT1cInN1Z2dlc3Rpb25zXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5zdHJlZXQucGxhY2Vob2xkZXIgfHwgJ1N0cmVldCdcIlxuICAgICAgICBuYW1lPVwie3tjb250cm9sTmFtZXMuc3RyZWV0fX1cIj5cbiAgICAgIDwvZnMtYWRkcmVzcy1hdXRvY29tcGxldGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI3RleHRTdHJlZXRGaWVsZD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICBhdXRvY29tcGxldGU9XCJub3BlXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImFkZHJlc3Muc3RyZWV0XCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnLnN0cmVldC5kaXNhYmxlZFwiXG4gICAgICAgICAgW2ZzRm9ybVJlcXVpcmVkXT1cImNvbmZpZy5zdHJlZXQucmVxdWlyZWRcIlxuICAgICAgICAgIFtuYW1lXT1cImNvbnRyb2xOYW1lcy5zdHJlZXRcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcuc3RyZWV0LnBsYWNlaG9sZGVyIHx8ICdTdHJlZXQnXCJcbiAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZSgpXCJcbiAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9uZy1jb250YWluZXI+XG5cbjxtYXQtZm9ybS1maWVsZFxuICAqbmdJZj1cImNvbmZpZy5hZGRyZXNzMi52aXNpYmxlXCJcbiAgY2xhc3M9XCJhZGRyZXNzMlwiPlxuICA8aW5wdXRcbiAgICBtYXRJbnB1dFxuICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgIGF1dG9jb21wbGV0ZT1cIm5vcGVcIlxuICAgIFsobmdNb2RlbCldPVwiYWRkcmVzcy5hZGRyZXNzMlwiXG4gICAgW2Rpc2FibGVkXT1cImNvbmZpZy5hZGRyZXNzMi5kaXNhYmxlZFwiXG4gICAgW2ZzRm9ybVJlcXVpcmVkXT1cImNvbmZpZy5hZGRyZXNzMi5yZXF1aXJlZFwiXG4gICAgW25hbWVdPVwiY29udHJvbE5hbWVzLmFkZHJlc3MyXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLmFkZHJlc3MyLnBsYWNlaG9sZGVyIHx8ICdBZGRyZXNzIDInXCJcbiAgICAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjxtYXQtZm9ybS1maWVsZFxuICAqbmdJZj1cImNvbmZpZy5hZGRyZXNzMy52aXNpYmxlXCJcbiAgY2xhc3M9XCJhZGRyZXNzM1wiPlxuICA8aW5wdXRcbiAgICBtYXRJbnB1dFxuICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgIGF1dG9jb21wbGV0ZT1cIm5vcGVcIlxuICAgIFsobmdNb2RlbCldPVwiYWRkcmVzcy5hZGRyZXNzM1wiXG4gICAgW2Rpc2FibGVkXT1cImNvbmZpZy5hZGRyZXNzMy5kaXNhYmxlZFwiXG4gICAgW2ZzRm9ybVJlcXVpcmVkXT1cImNvbmZpZy5hZGRyZXNzMy5yZXF1aXJlZFwiXG4gICAgW25hbWVdPVwiY29udHJvbE5hbWVzLmFkZHJlc3MzXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLmFkZHJlc3MzLnBsYWNlaG9sZGVyIHx8ICdBZGRyZXNzIDMnXCJcbiAgICAoY2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjxkaXYgY2xhc3M9XCJjaXR5LXJlZ2lvbi16aXAtY291bnRyeVwiIGZ4TGF5b3V0Lmx0LXNtPVwiY29sdW1uXCI+XG5cbiAgPGRpdiBjbGFzcz1cImNpdHlcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJjb25maWcuY2l0eS52aXNpYmxlIT09ZmFsc2VcIj5cbiAgICAgIDxtYXQtbGFiZWwgW2F0dHIuZGF0YS1hZnRlci1jb250ZW50XT1cImNvbmZpZy5jaXR5LnBsYWNlaG9sZGVyIHx8ICdDaXR5J1wiPjwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJub3BlXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJhZGRyZXNzLmNpdHlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnLmNpdHkuZGlzYWJsZWRcIlxuICAgICAgICBbZnNGb3JtUmVxdWlyZWRdPVwiY29uZmlnLmNpdHkucmVxdWlyZWRcIlxuICAgICAgICBbbmFtZV09XCJjb250cm9sTmFtZXMuY2l0eVwiXG4gICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlKCRldmVudClcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicmVnaW9uXCI+XG4gICAgPGZzLWFkZHJlc3MtcmVnaW9uXG4gICAgICAqbmdJZj1cImNvbmZpZy5yZWdpb24udmlzaWJsZSE9PWZhbHNlXCJcbiAgICAgIFsocmVnaW9uKV09XCJhZGRyZXNzLnJlZ2lvblwiXG4gICAgICAocmVnaW9uQ2hhbmdlKT1cImNoYW5nZVJlZ2lvbigpXCJcbiAgICAgIFtjb3VudHJ5XT1cImFkZHJlc3MuY291bnRyeVwiXG4gICAgICBbY291bnRyaWVzXT1cImNvdW50cmllc1wiXG4gICAgICBbbGFiZWxdPVwiY29uZmlnLnJlZ2lvbi5wbGFjZWhvbGRlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiY29uZmlnLnJlZ2lvbi5kaXNhYmxlZFwiXG4gICAgICBbcmVxdWlyZWRdPVwiY29uZmlnLnJlZ2lvbi5yZXF1aXJlZFwiXG4gICAgICBbcmVnaW9uQ291bnRyeU9yZGVyXT1cInJlZ2lvbkNvdW50cnlPcmRlclwiPlxuICAgIDwvZnMtYWRkcmVzcy1yZWdpb24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb3VudHJ5XCI+XG4gICAgPGZzLWFkZHJlc3MtY291bnRyeVxuICAgICAgKm5nSWY9XCJjb25maWcuY291bnRyeS52aXNpYmxlIT09ZmFsc2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImNvbmZpZy5jb3VudHJ5LmRpc2FibGVkXCJcbiAgICAgIFtyZXF1aXJlZF09XCJjb25maWcuY291bnRyeS5yZXF1aXJlZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLmNvdW50cnkucGxhY2Vob2xkZXJcIlxuICAgICAgW2V4Y2x1ZGVDb3VudHJpZXNdPVwiZXhjbHVkZUNvdW50cmllc1wiXG4gICAgICBbKG5nTW9kZWwpXT1cImFkZHJlc3MuY291bnRyeVwiXG4gICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZUNvdW50cnkoKVwiXG4gICAgICBbbmFtZV09XCJjb250cm9sTmFtZXMuYWRkcmVzc0NvdW50cnlcIj5cbiAgICA8L2ZzLWFkZHJlc3MtY291bnRyeT5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInppcFwiPlxuICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgKm5nSWY9XCJjb25maWcuemlwLnZpc2libGUhPT1mYWxzZVwiPlxuICAgICAgPG1hdC1sYWJlbD57eyB6aXBMYWJlbCB9fTwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0XG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIHR5cGU9XCJzZWFyY2hcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJub3BlXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJhZGRyZXNzLnppcFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb25maWcuemlwLmRpc2FibGVkXCJcbiAgICAgICAgW2ZzRm9ybVJlcXVpcmVkXT1cImNvbmZpZy56aXAucmVxdWlyZWRcIlxuICAgICAgICBbbmFtZV09XCJjb250cm9sTmFtZXMuemlwXCJcbiAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm1hcC1jb250YWluZXJcIiAqbmdJZj1cIm1hcENvbmZpZy5zaG93TWFwXCI+XG4gIDxhZ20tbWFwXG4gICAgW25nU3R5bGUueHNdPVwieydoZWlnaHQnOiAnMzAwcHgnfVwiXG4gICAgW2xhdGl0dWRlXT1cIm1hcENvbmZpZy5jZW50ZXIubGF0aXR1ZGVcIlxuICAgIFtsb25naXR1ZGVdPVwibWFwQ29uZmlnLmNlbnRlci5sb25naXR1ZGVcIlxuICAgIFt6b29tXT1cIm1hcENvbmZpZy56b29tXCJcbiAgICBbc2Nyb2xsd2hlZWxdPVwibWFwQ29uZmlnLnNjcm9sbHdoZWVsXCJcbiAgICBbc3RyZWV0Vmlld0NvbnRyb2xdPVwibWFwQ29uZmlnLnN0cmVldFZpZXdDb250cm9sXCJcbiAgICBbem9vbUNvbnRyb2xdPVwibWFwQ29uZmlnLnpvb21Db250cm9sXCJcbiAgICBbbWFwVHlwZUNvbnRyb2xPcHRpb25zXT1cIm1hcENvbmZpZy5tYXBUeXBlQ29udHJvbE9wdGlvbnNcIj5cbiAgICA8YWdtLW1hcmtlclxuICAgICAgW2xhdGl0dWRlXT1cIm1hcENvbmZpZy5tYXJrZXIuY29vcmRzLmxhdGl0dWRlXCJcbiAgICAgIFtsb25naXR1ZGVdPVwibWFwQ29uZmlnLm1hcmtlci5jb29yZHMubG9uZ2l0dWRlXCJcbiAgICAgIFttYXJrZXJEcmFnZ2FibGVdPVwibWFwQ29uZmlnLm1hcmtlci5vcHRpb25zLmRyYWdnYWJsZVwiXG4gICAgICAoZHJhZ0VuZCk9XCJkcmFnRW5kZWQoJGV2ZW50KVwiPlxuICAgIDwvYWdtLW1hcmtlcj5cbiAgPC9hZ20tbWFwPlxuXG4gIDxkaXYgY2xhc3M9XCJhZGRyZXNzLWluY29tcGxldGVcIiAqbmdJZj1cIiFhZGRyZXNzLmxhdCAmJiAhYWRkcmVzcy5sbmdcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWlzU2VhcmNoZWRcIj5QbGVhc2UgcG9wdWxhdGUgdGhlIGFkZHJlc3MgYWJvdmUgdG8gbG9jYXRlIGl0IG9uIHRoZSBtYXA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNTZWFyY2hlZFwiPkNvdWxkIG5vdCBmaW5kIGFkZHJlc3MgXCJ7eyBzZWFyY2hlZEFkZHJlc3MgfX1cIjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19

@@ -0,0 +0,0 @@ export const Countries = [

import { InjectionToken } from '@angular/core';
export const COUNTRIES = new InjectionToken('fs-address-country.countries');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXRva2VuLWNvdW50cmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvY29uc3RzL2luamVjdC10b2tlbi1jb3VudHJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQU0sOEJBQThCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBDT1VOVFJJRVMgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignZnMtYWRkcmVzcy1jb3VudHJ5LmNvdW50cmllcycpOyJdfQ==
import { InjectionToken } from '@angular/core';
export const GOOGLE_MAP_KEY = new InjectionToken('fs-address-country.google-map-key');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXRva2VuLWdvb2dsZS1tYXAta2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jb25zdHMvaW5qZWN0LXRva2VuLWdvb2dsZS1tYXAta2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFNLG1DQUFtQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgR09PR0xFX01BUF9LRVkgPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignZnMtYWRkcmVzcy1jb3VudHJ5Lmdvb2dsZS1tYXAta2V5Jyk7Il19

@@ -0,0 +0,0 @@ export var AddressFormat;

@@ -0,0 +0,0 @@ export var Country;

@@ -0,0 +0,0 @@ import { Countries } from './consts/countries.const';

@@ -0,0 +0,0 @@ import { NgModule } from '@angular/core';

@@ -0,0 +0,0 @@ import { NgModule } from '@angular/core';

@@ -0,0 +0,0 @@ import { NgModule } from '@angular/core';

@@ -0,0 +0,0 @@ import { NgModule } from '@angular/core';

@@ -0,0 +0,0 @@ import { AddressFormat } from './../enums/address-format.enum';

@@ -0,0 +0,0 @@ export function addressIsEmpty(value) {

@@ -0,0 +0,0 @@ import { AddressFormat } from '../enums/address-format.enum';

@@ -0,0 +0,0 @@ export function addressSummaryFormat(address) {

@@ -0,0 +0,0 @@ import { AddressFormat } from '../enums/address-format.enum';

@@ -0,0 +0,0 @@ export function createEmptyAddress() {

@@ -0,0 +0,0 @@ export function extractUnit(text) {

@@ -0,0 +0,0 @@ import { createEmptyAddress } from './create-empty-address';

@@ -0,0 +0,0 @@ export * from './address-format';

@@ -0,0 +0,0 @@ export function searchCountryRegions(text, regions, limit) {

export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1jb2xsYXBzZS1idXR0b24tY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvaW50ZXJmYWNlcy9hZGRyZXNzLWNvbGxhcHNlLWJ1dHRvbi1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZzQWRkcmVzc0NvbGxhcHNlQnV0dG9uQ29uZmlnIHtcbiAgc2hvdz86IGJvb2xlYW47XG4gIHRpdGxlPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgdGhlbWU/OiAnbWF0LWJ1dHRvbicgfCAnbWF0LXJhaXNlZC1idXR0b24nIHwgJ21hdC1mbGF0LWJ1dHRvbicgfCAnbWF0LXN0cm9rZWQtYnV0dG9uJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRnNBZGRyZXNzQ29sbGFwc2VCdXR0b25Db25maWcgZXh0ZW5kcyBGc0FkZHJlc3NDb2xsYXBzZUJ1dHRvbkNvbmZpZyB7fVxuIl19
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1jb25maWcuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9pbnRlcmZhY2VzL2FkZHJlc3MtY29uZmlnLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRnNBZGRyZXNzTWFwQ29uZmlnIH0gZnJvbSAnLi9hZGRyZXNzLW1hcC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZzQWRkcmVzc0NvbGxhcHNlQnV0dG9uQ29uZmlnIH0gZnJvbSAnLi9hZGRyZXNzLWNvbGxhcHNlLWJ1dHRvbi1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFkZHJlc3NGb3JtYXQgfSBmcm9tICcuLi9lbnVtcy9hZGRyZXNzLWZvcm1hdC5lbnVtJztcblxuZXhwb3J0IGludGVyZmFjZSBGc0FkZHJlc3NGaWVsZFNldHRpbmcge1xuICBkaXNhYmxlZD86IGJvb2xlYW4sXG4gIHJlcXVpcmVkPzogYm9vbGVhbixcbiAgdmlzaWJsZT86IGJvb2xlYW4sXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nLFxuICBsaXN0Pzogc3RyaW5nW10sXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNBZGRyZXNzQ29uZmlnIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGhpbnQ/OiBzdHJpbmc7XG4gIG5hbWU/OiBGc0FkZHJlc3NGaWVsZFNldHRpbmcsXG4gIGNvdW50cnk/OiBGc0FkZHJlc3NGaWVsZFNldHRpbmcsXG4gIHJlZ2lvbj86IEZzQWRkcmVzc0ZpZWxkU2V0dGluZyxcbiAgY2l0eT86IEZzQWRkcmVzc0ZpZWxkU2V0dGluZyxcbiAgc3RyZWV0PzogRnNBZGRyZXNzRmllbGRTZXR0aW5nLFxuICBhZGRyZXNzMj86IEZzQWRkcmVzc0ZpZWxkU2V0dGluZyxcbiAgYWRkcmVzczM/OiBGc0FkZHJlc3NGaWVsZFNldHRpbmcsXG4gIHppcD86IEZzQWRkcmVzc0ZpZWxkU2V0dGluZyxcbiAgbWFwPzogRnNBZGRyZXNzTWFwQ29uZmlnLFxuICBjb2xsYXBzZUJ1dHRvbj86IEZzQWRkcmVzc0NvbGxhcHNlQnV0dG9uQ29uZmlnLFxuICBsYXQ/OiBGc0FkZHJlc3NGaWVsZFNldHRpbmcsXG4gIGxuZz86IEZzQWRkcmVzc0ZpZWxkU2V0dGluZyxcbiAgc2VhcmNoPzogYm9vbGVhbjtcbiAgaGlkZUVudGVyTWFudWFsbHk/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZzQWRkcmVzc1BpY2tlckNvbmZpZyBleHRlbmRzIEZzQWRkcmVzc0NvbmZpZyB7XG4gIGZvcm1hdD86IEFkZHJlc3NGb3JtYXQ7XG4gIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBjb25maXJtYXRpb24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NQaWNrZXJDb25maWcgZXh0ZW5kcyBGc0FkZHJlc3NQaWNrZXJDb25maWcge31cbmV4cG9ydCBpbnRlcmZhY2UgSUZzQWRkcmVzc0NvbmZpZyBleHRlbmRzIEZzQWRkcmVzc0NvbmZpZyB7fVxuZXhwb3J0IGludGVyZmFjZSBJRnNBZGRyZXNzRmllbGRTZXR0aW5nIGV4dGVuZHMgRnNBZGRyZXNzRmllbGRTZXR0aW5nIHt9XG4iXX0=
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1jb3VudHJ5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvaW50ZXJmYWNlcy9hZGRyZXNzLWNvdW50cnkuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQWRkcmVzc1JlZ2lvbiB9IGZyb20gJy4vYWRkcmVzcy1yZWdpb24uaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBJQWRkcmVzc0NvdW50cnkge1xuICBjb2RlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgcmVnaW9ucz86IElBZGRyZXNzUmVnaW9uW107XG59XG4iXX0=
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1mb3JtYXQtY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvaW50ZXJmYWNlcy9hZGRyZXNzLWZvcm1hdC1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZzQWRkcmVzc0Zvcm1hdENvbmZpZyB7XG4gIG5hbWU/OiBib29sZWFuLFxuICBjb3VudHJ5PzogYm9vbGVhbixcbiAgcmVnaW9uPzogYm9vbGVhbixcbiAgY2l0eT86IGJvb2xlYW4sXG4gIHN0cmVldD86IGJvb2xlYW4sXG4gIHppcD86IGJvb2xlYW4sXG4gIGZvcm1hdD86IHN0cmluZyB8ICd0d29saW5lJyB8ICdvbmVsaW5lJyxcbiAgaW5jbHVkZUZpcnN0PzogbnVtYmVyLFxuICBkaXNhYmxlZD86IGJvb2xlYW4sXG4gIHJlYWRvbmx5PzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGc0FkZHJlc3NGb3JtYXRDb25maWcgZXh0ZW5kcyBGc0FkZHJlc3NGb3JtYXRDb25maWcge31cblxuIl19
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1tYXAtY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvaW50ZXJmYWNlcy9hZGRyZXNzLW1hcC1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEZzQWRkcmVzc01hcENvbmZpZyB7XG4gIHNob3dNYXA/OiBib29sZWFuLFxuICBjZW50ZXI/OiB7XG4gICAgbGF0aXR1ZGU/OiBudW1iZXIsXG4gICAgbG9uZ2l0dWRlPzogbnVtYmVyLFxuICB9LFxuICB6b29tPzogbnVtYmVyLFxuICBzY3JvbGx3aGVlbD86IGJvb2xlYW4sXG4gIHN0cmVldFZpZXdDb250cm9sPzogYm9vbGVhbixcbiAgem9vbUNvbnRyb2w/OiBib29sZWFuLFxuICBtYXBUeXBlQ29udHJvbE9wdGlvbnM/OiB7IG1hcFR5cGVJZHM/OiBhbnlbXSB9LFxuICBtYXJrZXI/OiBhbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRnNBZGRyZXNzTWFwQ29uZmlnIGV4dGVuZHMgRnNBZGRyZXNzTWFwQ29uZmlnIHt9XG4iXX0=
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1yZWdpb24tY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvaW50ZXJmYWNlcy9hZGRyZXNzLXJlZ2lvbi1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGc0FkZHJlc3NGaWVsZFNldHRpbmcgfSBmcm9tICcuL2FkZHJlc3MtY29uZmlnLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnNBZGRyZXNzUmVnaW9uQ29uZmlnIHtcbiAgY291bnRyeT86IEZzQWRkcmVzc0ZpZWxkU2V0dGluZyxcbiAgcmVnaW9uPzogRnNBZGRyZXNzRmllbGRTZXR0aW5nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGc0FkZHJlc3NSZWdpb25Db25maWcgZXh0ZW5kcyBGc0FkZHJlc3NSZWdpb25Db25maWcge31cblxuIl19
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1yZWdpb24uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9pbnRlcmZhY2VzL2FkZHJlc3MtcmVnaW9uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJQWRkcmVzc1JlZ2lvbiB7XG4gIGNvZGU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBjb3VudHJ5Pzogc3RyaW5nO1xufVxuIl19
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2ludGVyZmFjZXMvYWRkcmVzcy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRnNBZGRyZXNzIHtcbiAgbmFtZT86IHN0cmluZyxcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gIGNvdW50cnk/OiBzdHJpbmdcbiAgcmVnaW9uPzogc3RyaW5nLFxuICBjaXR5Pzogc3RyaW5nLFxuICBzdHJlZXQ/OiBzdHJpbmcsXG4gIGFkZHJlc3MyPzogc3RyaW5nLFxuICBhZGRyZXNzMz86IHN0cmluZyxcbiAgemlwPzogc3RyaW5nLFxuICBsYXQ/OiBudW1iZXIsXG4gIGxuZz86IG51bWJlclxufVxuIl19

@@ -0,0 +0,0 @@ import { MapsAPILoader } from '@agm/core';

@@ -0,0 +0,0 @@ /**

@@ -0,0 +0,0 @@ /*

@@ -0,0 +0,0 @@ /**

{
"name": "@firestitch/address",
"version": "12.1.7",
"version": "12.1.8",
"repository": {

@@ -5,0 +5,0 @@ "type": "git",

@@ -0,0 +0,0 @@ export { FsAddressModule } from './app/fs-address.module';

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc