moh-common-lib
Version:
A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).
515 lines • 67.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, Input, Output, EventEmitter, Optional, Self } from '@angular/core';
import { Base } from '../../models/base';
import { NgControl } from '@angular/forms';
/**
* Interface for countries
* @record
*/
export function CountryList() { }
if (false) {
/** @type {?} */
CountryList.prototype.countryCode;
/** @type {?} */
CountryList.prototype.description;
}
/** @type {?} */
export var CANADA = 'CAN';
/** @type {?} */
export var UNITED_STATES = 'USA';
/**
* Default list of countries
* @type {?}
*/
export var COUNTRY_LIST = [
{ countryCode: 'AFG', description: 'Afghanistan' },
{ countryCode: 'ALA', description: 'Åland Islands' },
{ countryCode: 'ALB', description: 'Albania' },
{ countryCode: 'DZA', description: 'Algeria' },
{ countryCode: 'ASM', description: 'American Samoa' },
{ countryCode: 'AND', description: 'Andorra' },
{ countryCode: 'AGO', description: 'Angola' },
{ countryCode: 'AIA', description: 'Anguilla' },
{ countryCode: 'ATA', description: 'Antarctica' },
{ countryCode: 'ATG', description: 'Antigua and Barbuda' },
{ countryCode: 'ARG', description: 'Argentina' },
{ countryCode: 'ARM', description: 'Armenia' },
{ countryCode: 'ABW', description: 'Aruba' },
{ countryCode: 'AUS', description: 'Australia' },
{ countryCode: 'AUT', description: 'Austria' },
{ countryCode: 'AZE', description: 'Azerbaijan' },
{ countryCode: 'BHS', description: 'Bahamas' },
{ countryCode: 'BHR', description: 'Bahrain' },
{ countryCode: 'BGD', description: 'Bangladesh' },
{ countryCode: 'BRB', description: 'Barbados' },
{ countryCode: 'BLR', description: 'Belarus' },
{ countryCode: 'BEL', description: 'Belgium' },
{ countryCode: 'BLZ', description: 'Belize' },
{ countryCode: 'BEN', description: 'Benin' },
{ countryCode: 'BMU', description: 'Bermuda' },
{ countryCode: 'BTN', description: 'Bhutan' },
{ countryCode: 'BOL', description: 'Bolivia, Plurinational State of' },
{ countryCode: 'BES', description: 'Bonaire, Sint Eustatius and Saba' },
{ countryCode: 'BIH', description: 'Bosnia and Herzegovina' },
{ countryCode: 'BWA', description: 'Botswana' },
{ countryCode: 'BVT', description: 'Bouvet Island' },
{ countryCode: 'BRA', description: 'Brazil' },
{ countryCode: 'IOT', description: 'British Indian Ocean Territory' },
{ countryCode: 'BRN', description: 'Brunei Darussalam' },
{ countryCode: 'BGR', description: 'Bulgaria' },
{ countryCode: 'BFA', description: 'Burkina Faso' },
{ countryCode: 'BDI', description: 'Burundi' },
{ countryCode: 'KHM', description: 'Cambodia' },
{ countryCode: 'CMR', description: 'Cameroon' },
{ countryCode: 'CAN', description: 'Canada' },
{ countryCode: 'CPV', description: 'Cape Verde' },
{ countryCode: 'CYM', description: 'Cayman Islands' },
{ countryCode: 'CAF', description: 'Central African Republic' },
{ countryCode: 'TCD', description: 'Chad' },
{ countryCode: 'CHL', description: 'Chile' },
{ countryCode: 'CHN', description: 'China' },
{ countryCode: 'CXR', description: 'Christmas Island' },
{ countryCode: 'CCK', description: 'Cocos (Keeling) Islands' },
{ countryCode: 'COL', description: 'Colombia' },
{ countryCode: 'COM', description: 'Comoros' },
{ countryCode: 'COG', description: 'Congo' },
{ countryCode: 'COD', description: 'Congo, the Democratic Republic of the' },
{ countryCode: 'COK', description: 'Cook Islands' },
{ countryCode: 'CRI', description: 'Costa Rica' },
{ countryCode: 'CIV', description: 'Côte d\'Ivoire' },
{ countryCode: 'HRV', description: 'Croatia' },
{ countryCode: 'CUB', description: 'Cuba' },
{ countryCode: 'CUW', description: 'Curaçao' },
{ countryCode: 'CYP', description: 'Cyprus' },
{ countryCode: 'CZE', description: 'Czech Republic' },
{ countryCode: 'DNK', description: 'Denmark' },
{ countryCode: 'DJI', description: 'Djibouti' },
{ countryCode: 'DMA', description: 'Dominica' },
{ countryCode: 'DOM', description: 'Dominican Republic' },
{ countryCode: 'ECU', description: 'Ecuador' },
{ countryCode: 'EGY', description: 'Egypt' },
{ countryCode: 'SLV', description: 'El Salvador' },
{ countryCode: 'GNQ', description: 'Equatorial Guinea' },
{ countryCode: 'ERI', description: 'Eritrea' },
{ countryCode: 'EST', description: 'Estonia' },
{ countryCode: 'ETH', description: 'Ethiopia' },
{ countryCode: 'FLK', description: 'Falkland Islands (Malvinas)' },
{ countryCode: 'FRO', description: 'Faroe Islands' },
{ countryCode: 'FJI', description: 'Fiji' },
{ countryCode: 'FIN', description: 'Finland' },
{ countryCode: 'FRA', description: 'France' },
{ countryCode: 'GUF', description: 'French Guiana' },
{ countryCode: 'PYF', description: 'French Polynesia' },
{ countryCode: 'ATF', description: 'French Southern Territories' },
{ countryCode: 'GAB', description: 'Gabon' },
{ countryCode: 'GMB', description: 'Gambia' },
{ countryCode: 'GEO', description: 'Georgia' },
{ countryCode: 'DEU', description: 'Germany' },
{ countryCode: 'GHA', description: 'Ghana' },
{ countryCode: 'GIB', description: 'Gibraltar' },
{ countryCode: 'GRC', description: 'Greece' },
{ countryCode: 'GRL', description: 'Greenland' },
{ countryCode: 'GRD', description: 'Grenada' },
{ countryCode: 'GLP', description: 'Guadeloupe' },
{ countryCode: 'GUM', description: 'Guam' },
{ countryCode: 'GTM', description: 'Guatemala' },
{ countryCode: 'GGY', description: 'Guernsey' },
{ countryCode: 'GIN', description: 'Guinea' },
{ countryCode: 'GNB', description: 'Guinea-Bissau' },
{ countryCode: 'GUY', description: 'Guyana' },
{ countryCode: 'HTI', description: 'Haiti' },
{ countryCode: 'HMD', description: 'Heard Island and McDonald Islands' },
{ countryCode: 'VAT', description: 'Holy See (Vatican City State)' },
{ countryCode: 'HND', description: 'Honduras' },
{ countryCode: 'HKG', description: 'Hong Kong' },
{ countryCode: 'HUN', description: 'Hungary' },
{ countryCode: 'ISL', description: 'Iceland' },
{ countryCode: 'IND', description: 'India' },
{ countryCode: 'IDN', description: 'Indonesia' },
{ countryCode: 'IRN', description: 'Iran, Islamic Republic of' },
{ countryCode: 'IRQ', description: 'Iraq' },
{ countryCode: 'IRL', description: 'Ireland' },
{ countryCode: 'IMN', description: 'Isle of Man' },
{ countryCode: 'ISR', description: 'Israel' },
{ countryCode: 'ITA', description: 'Italy' },
{ countryCode: 'JAM', description: 'Jamaica' },
{ countryCode: 'JPN', description: 'Japan' },
{ countryCode: 'JEY', description: 'Jersey' },
{ countryCode: 'JOR', description: 'Jordan' },
{ countryCode: 'KAZ', description: 'Kazakhstan' },
{ countryCode: 'KEN', description: 'Kenya' },
{ countryCode: 'KIR', description: 'Kiribati' },
{ countryCode: 'PRK', description: 'Korea, Democratic People\'s Republic of' },
{ countryCode: 'KOR', description: 'Korea, Republic of' },
{ countryCode: 'KWT', description: 'Kuwait' },
{ countryCode: 'KGZ', description: 'Kyrgyzstan' },
{ countryCode: 'LAO', description: 'Lao People\'s Democratic Republic' },
{ countryCode: 'LVA', description: 'Latvia' },
{ countryCode: 'LBN', description: 'Lebanon' },
{ countryCode: 'LSO', description: 'Lesotho' },
{ countryCode: 'LBR', description: 'Liberia' },
{ countryCode: 'LBY', description: 'Libya' },
{ countryCode: 'LIE', description: 'Liechtenstein' },
{ countryCode: 'LTU', description: 'Lithuania' },
{ countryCode: 'LUX', description: 'Luxembourg' },
{ countryCode: 'MAC', description: 'Macao' },
{ countryCode: 'MKD', description: 'Macedonia, the former Yugoslav Republic of' },
{ countryCode: 'MDG', description: 'Madagascar' },
{ countryCode: 'MWI', description: 'Malawi' },
{ countryCode: 'MYS', description: 'Malaysia' },
{ countryCode: 'MDV', description: 'Maldives' },
{ countryCode: 'MLI', description: 'Mali' },
{ countryCode: 'MLT', description: 'Malta' },
{ countryCode: 'MHL', description: 'Marshall Islands' },
{ countryCode: 'MTQ', description: 'Martinique' },
{ countryCode: 'MRT', description: 'Mauritania' },
{ countryCode: 'MUS', description: 'Mauritius' },
{ countryCode: 'MYT', description: 'Mayotte' },
{ countryCode: 'MEX', description: 'Mexico' },
{ countryCode: 'FSM', description: 'Micronesia, Federated States of' },
{ countryCode: 'MDA', description: 'Moldova, Republic of' },
{ countryCode: 'MCO', description: 'Monaco' },
{ countryCode: 'MNG', description: 'Mongolia' },
{ countryCode: 'MNE', description: 'Montenegro' },
{ countryCode: 'MSR', description: 'Montserrat' },
{ countryCode: 'MAR', description: 'Morocco' },
{ countryCode: 'MOZ', description: 'Mozambique' },
{ countryCode: 'MMR', description: 'Myanmar' },
{ countryCode: 'NAM', description: 'Namibia' },
{ countryCode: 'NRU', description: 'Nauru' },
{ countryCode: 'NPL', description: 'Nepal' },
{ countryCode: 'NLD', description: 'Netherlands' },
{ countryCode: 'NCL', description: 'New Caledonia' },
{ countryCode: 'NZL', description: 'New Zealand' },
{ countryCode: 'NIC', description: 'Nicaragua' },
{ countryCode: 'NER', description: 'Niger' },
{ countryCode: 'NGA', description: 'Nigeria' },
{ countryCode: 'NIU', description: 'Niue' },
{ countryCode: 'NFK', description: 'Norfolk Island' },
{ countryCode: 'MNP', description: 'Northern Mariana Islands' },
{ countryCode: 'NOR', description: 'Norway' },
{ countryCode: 'OMN', description: 'Oman' },
{ countryCode: 'PAK', description: 'Pakistan' },
{ countryCode: 'PLW', description: 'Palau' },
{ countryCode: 'PSE', description: 'Palestinian Territory, Occupied' },
{ countryCode: 'PAN', description: 'Panama' },
{ countryCode: 'PNG', description: 'Papua New Guinea' },
{ countryCode: 'PRY', description: 'Paraguay' },
{ countryCode: 'PER', description: 'Peru' },
{ countryCode: 'PHL', description: 'Philippines' },
{ countryCode: 'PCN', description: 'Pitcairn' },
{ countryCode: 'POL', description: 'Poland' },
{ countryCode: 'PRT', description: 'Portugal' },
{ countryCode: 'PRI', description: 'Puerto Rico' },
{ countryCode: 'QAT', description: 'Qatar' },
{ countryCode: 'REU', description: 'Réunion' },
{ countryCode: 'ROU', description: 'Romania' },
{ countryCode: 'RUS', description: 'Russian Federation' },
{ countryCode: 'RWA', description: 'Rwanda' },
{ countryCode: 'BLM', description: 'Saint Barthélemy' },
{ countryCode: 'SHN', description: 'Saint Helena, Ascension and Tristan da Cunha' },
{ countryCode: 'KNA', description: 'Saint Kitts and Nevis' },
{ countryCode: 'LCA', description: 'Saint Lucia' },
{ countryCode: 'MAF', description: 'Saint Martin (French part)' },
{ countryCode: 'SPM', description: 'Saint Pierre and Miquelon' },
{ countryCode: 'VCT', description: 'Saint Vincent and the Grenadines' },
{ countryCode: 'WSM', description: 'Samoa' },
{ countryCode: 'SMR', description: 'San Marino' },
{ countryCode: 'STP', description: 'Sao Tome and Principe' },
{ countryCode: 'SAU', description: 'Saudi Arabia' },
{ countryCode: 'SEN', description: 'Senegal' },
{ countryCode: 'SRB', description: 'Serbia' },
{ countryCode: 'SYC', description: 'Seychelles' },
{ countryCode: 'SLE', description: 'Sierra Leone' },
{ countryCode: 'SGP', description: 'Singapore' },
{ countryCode: 'SXM', description: 'Sint Maarten (Dutch part)' },
{ countryCode: 'SVK', description: 'Slovakia' },
{ countryCode: 'SVN', description: 'Slovenia' },
{ countryCode: 'SLB', description: 'Solomon Islands' },
{ countryCode: 'SOM', description: 'Somalia' },
{ countryCode: 'ZAF', description: 'South Africa' },
{ countryCode: 'SGS', description: 'South Georgia and the South Sandwich Islands' },
{ countryCode: 'SSD', description: 'South Sudan' },
{ countryCode: 'ESP', description: 'Spain' },
{ countryCode: 'LKA', description: 'Sri Lanka' },
{ countryCode: 'SDN', description: 'Sudan' },
{ countryCode: 'SUR', description: 'Suriname' },
{ countryCode: 'SJM', description: 'Svalbard and Jan Mayen' },
{ countryCode: 'SWZ', description: 'Swaziland' },
{ countryCode: 'SWE', description: 'Sweden' },
{ countryCode: 'CHE', description: 'Switzerland' },
{ countryCode: 'SYR', description: 'Syrian Arab Republic' },
{ countryCode: 'TWN', description: 'Taiwan' },
{ countryCode: 'TJK', description: 'Tajikistan' },
{ countryCode: 'TZA', description: 'Tanzania, United Republic of' },
{ countryCode: 'THA', description: 'Thailand' },
{ countryCode: 'TLS', description: 'Timor-Leste' },
{ countryCode: 'TGO', description: 'Togo' },
{ countryCode: 'TKL', description: 'Tokelau' },
{ countryCode: 'TON', description: 'Tonga' },
{ countryCode: 'TTO', description: 'Trinidad and Tobago' },
{ countryCode: 'TUN', description: 'Tunisia' },
{ countryCode: 'TUR', description: 'Turkey' },
{ countryCode: 'TKM', description: 'Turkmenistan' },
{ countryCode: 'TCA', description: 'Turks and Caicos Islands' },
{ countryCode: 'TUV', description: 'Tuvalu' },
{ countryCode: 'UGA', description: 'Uganda' },
{ countryCode: 'UKR', description: 'Ukraine' },
{ countryCode: 'ARE', description: 'United Arab Emirates' },
{ countryCode: 'GBR', description: 'United Kingdom' },
{ countryCode: 'USA', description: 'United States' },
{ countryCode: 'UMI', description: 'United States Minor Outlying Islands' },
{ countryCode: 'URY', description: 'Uruguay' },
{ countryCode: 'UZB', description: 'Uzbekistan' },
{ countryCode: 'VUT', description: 'Vanuatu' },
{ countryCode: 'VEN', description: 'Venezuela, Bolivarian Republic of' },
{ countryCode: 'VNM', description: 'Viet Nam' },
{ countryCode: 'VGB', description: 'Virgin Islands, British' },
{ countryCode: 'VIR', description: 'Virgin Islands, U.S.' },
{ countryCode: 'WLF', description: 'Wallis and Futuna' },
{ countryCode: 'ESH', description: 'Western Sahara' },
{ countryCode: 'YEM', description: 'Yemen' },
{ countryCode: 'ZMB', description: 'Zambia' },
{ countryCode: 'ZWE', description: 'Zimbabwe' }
];
/**
* @param {?} countryCode
* @return {?}
*/
export function getCountryDescription(countryCode) {
/** @type {?} */
var countryObj = COUNTRY_LIST.find((/**
* @param {?} val
* @return {?}
*/
function (val) { return countryCode === val.countryCode; }));
return countryObj ? countryObj.description : countryCode;
}
var CountryComponent = /** @class */ (function (_super) {
tslib_1.__extends(CountryComponent, _super);
function CountryComponent(controlDir) {
var _this = _super.call(this) || this;
_this.controlDir = controlDir;
_this.label = 'Jurisdiction';
_this.countryList = COUNTRY_LIST;
_this.labelforId = 'country_' + _this.objectId;
_this.disabled = false;
_this.required = false;
_this.useDropDownList = true;
_this.maxlen = '250';
_this.placeholder = 'Please select a jurisdiction';
_this.valueChange = new EventEmitter();
_this.blurEvent = new EventEmitter();
_this.country = '';
_this.defaultErrMsg = {
required: 'is required.',
invalidChar: 'must contain letters and may include special characters such as hyphens, periods, apostrophes and blank characters.',
};
_this._onChange = (/**
* @param {?} _
* @return {?}
*/
function (_) { });
_this._onTouched = (/**
* @param {?} _
* @return {?}
*/
function (_) { });
if (controlDir) {
controlDir.valueAccessor = _this;
}
return _this;
}
Object.defineProperty(CountryComponent.prototype, "value", {
get: /**
* @return {?}
*/
function () {
return this.country;
},
set: /**
* @param {?} val
* @return {?}
*/
function (val) {
if (val) {
this.country = val;
}
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
CountryComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.setErrorMsg();
};
/**
* @param {?} value
* @return {?}
*/
CountryComponent.prototype.onValueChange = /**
* @param {?} value
* @return {?}
*/
function (value) {
if (value !== this.country) {
this._onChange(value);
this.valueChange.emit(value);
this.country = value;
}
};
/**
* @param {?} event
* @return {?}
*/
CountryComponent.prototype.onBlurEvent = /**
* @param {?} event
* @return {?}
*/
function (event) {
this._onTouched(event);
this.blurEvent.emit(event);
};
/**
* @param {?} value
* @return {?}
*/
CountryComponent.prototype.writeValue = /**
* @param {?} value
* @return {?}
*/
function (value) {
if (value !== undefined) {
this.country = value;
}
};
// Register change function
// Register change function
/**
* @param {?} fn
* @return {?}
*/
CountryComponent.prototype.registerOnChange =
// Register change function
/**
* @param {?} fn
* @return {?}
*/
function (fn) {
this._onChange = fn;
};
// Register touched function
// Register touched function
/**
* @param {?} fn
* @return {?}
*/
CountryComponent.prototype.registerOnTouched =
// Register touched function
/**
* @param {?} fn
* @return {?}
*/
function (fn) {
this._onTouched = fn;
};
/**
* @param {?} isDisabled
* @return {?}
*/
CountryComponent.prototype.setDisabledState = /**
* @param {?} isDisabled
* @return {?}
*/
function (isDisabled) {
this.disabled = isDisabled;
};
/**
* @private
* @return {?}
*/
CountryComponent.prototype.setErrorMsg = /**
* @private
* @return {?}
*/
function () {
var _this = this;
if (this.errorMessage) {
Object.keys(this.errorMessage).map((/**
* @param {?} x
* @return {?}
*/
function (x) { return _this.defaultErrMsg[x] = _this.errorMessage[x]; }));
}
};
CountryComponent.decorators = [
{ type: Component, args: [{
selector: 'common-country',
template: "<label for=\"{{labelforId}}\" class=\"control-label\">{{label}}</label>\r\n<div *ngIf=\"useDropDownList; else NotDropDownList\">\r\n <ng-select [items]=\"countryList\"\r\n [ngModel]=\"country\"\r\n (ngModelChange)=\"onValueChange($event)\"\r\n (blur)=\"onBlurEvent($event)\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n labelForId=\"{{labelforId}}\"\r\n bindValue=\"countryCode\"\r\n [clearable]=\"false\"\r\n bindLabel=\"description\"\r\n placeholder=\"{{ placeholder }}\"></ng-select>\r\n</div>\r\n\r\n<!-- Error messages for input -->\r\n<common-error-container\r\n [displayError]=\"controlDir && !disabled && (controlDir.touched || controlDir.dirty) && controlDir?.errors\">\r\n <div *ngIf=\"controlDir?.errors?.required\">\r\n {{label}} {{defaultErrMsg.required}}\r\n </div>\r\n <div *ngIf=\"controlDir?.errors?.invalidChar\">\r\n {{label}} {{defaultErrMsg.invalidChar}}\r\n </div>\r\n</common-error-container>\r\n\r\n<ng-template #NotDropDownList>\r\n <input class=\"form-control\"\r\n spellcheck=\"false\"\r\n type=\"text\"\r\n id=\"{{labelforId}}\"\r\n [value]=\"country\"\r\n (change)=\"onValueChange($event.target.value)\"\r\n (blur)=\"onBlurEvent($event)\"\r\n [disabled]=\"disabled\"\r\n [attr.maxlength]=\"maxlen\"\r\n autocomplete=\"off\"/>\r\n</ng-template>\r\n"
}] }
];
/** @nocollapse */
CountryComponent.ctorParameters = function () { return [
{ type: NgControl, decorators: [{ type: Optional }, { type: Self }] }
]; };
CountryComponent.propDecorators = {
label: [{ type: Input }],
countryList: [{ type: Input }],
labelforId: [{ type: Input }],
disabled: [{ type: Input }],
required: [{ type: Input }],
useDropDownList: [{ type: Input }],
maxlen: [{ type: Input }],
errorMessage: [{ type: Input }],
placeholder: [{ type: Input }],
value: [{ type: Input }],
valueChange: [{ type: Output }],
blurEvent: [{ type: Output }]
};
return CountryComponent;
}(Base));
export { CountryComponent };
if (false) {
/** @type {?} */
CountryComponent.prototype.label;
/** @type {?} */
CountryComponent.prototype.countryList;
/** @type {?} */
CountryComponent.prototype.labelforId;
/** @type {?} */
CountryComponent.prototype.disabled;
/** @type {?} */
CountryComponent.prototype.required;
/** @type {?} */
CountryComponent.prototype.useDropDownList;
/** @type {?} */
CountryComponent.prototype.maxlen;
/** @type {?} */
CountryComponent.prototype.errorMessage;
/** @type {?} */
CountryComponent.prototype.placeholder;
/** @type {?} */
CountryComponent.prototype.valueChange;
/** @type {?} */
CountryComponent.prototype.blurEvent;
/** @type {?} */
CountryComponent.prototype.country;
/** @type {?} */
CountryComponent.prototype.defaultErrMsg;
/** @type {?} */
CountryComponent.prototype._onChange;
/** @type {?} */
CountryComponent.prototype._onTouched;
/** @type {?} */
CountryComponent.prototype.controlDir;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9tb2gtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2NvdW50cnkvY291bnRyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSWpFLGlDQUdDOzs7SUFGQyxrQ0FBb0I7O0lBQ3BCLGtDQUFvQjs7O0FBR3RCLE1BQU0sS0FBTyxNQUFNLEdBQUcsS0FBSzs7QUFDM0IsTUFBTSxLQUFPLGFBQWEsR0FBRyxLQUFLOzs7OztBQUdsQyxNQUFNLEtBQU8sWUFBWSxHQUFrQjtJQUN6QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRTtJQUNsRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRTtJQUNwRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFO0lBQ3JELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0lBQzlDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFO0lBQzdDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFO0lBQy9DLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFO0lBQ2pELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUU7SUFDMUQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7SUFDaEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7SUFDaEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUU7SUFDakQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUU7SUFDakQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUU7SUFDL0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFB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RCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLDZCQUE2QixFQUFFO0lBQ2xFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFO0lBQzVDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFO0lBQzdDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0lBQzlDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0lBQzlDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFO0lBQzVDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFO0lBQ2hELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFO0lBQzdDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFO0lBQ2hELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0lBQzlDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFO0lBQ2pELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFO0lBQzNDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFO0lBQ2hELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFO0lBQy9DLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFO0lBQzdDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFO0lBQ3BELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFO0lBQzdDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFX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QUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUU7SUFDakQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUU7SUFDakQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUU7SUFDakQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUU7SUFDbEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUU7SUFDcEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUU7SUFDbEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7SUFDaEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7SUFDM0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRTtJQUNyRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLDBCQUEwQixFQUFFO0lBQy9ELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUs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SUFBSSxPQUFBLEtBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBNUMsQ0FBNEMsRUFBRSxDQUFDO1NBQ3pGO0lBQ0gsQ0FBQzs7Z0JBdEZGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQiw4K0NBQXVDO2lCQUN4Qzs7OztnQkFqUjhCLFNBQVMsdUJBb1R4QixRQUFRLFlBQUksSUFBSTs7O3dCQWhDN0IsS0FBSzs4QkFDTCxLQUFLOzZCQUNMLEtBQUs7MkJBQ0wsS0FBSzsyQkFDTCxLQUFLO2tDQUNMLEtBQUs7eUJBQ0wsS0FBSzsrQkFDTCxLQUFLOzhCQUNMLEtBQUs7d0JBQ0wsS0FBSzs4QkFVTCxNQUFNOzRCQUNOLE1BQU07O0lBNkRULHVCQUFDO0NBQUEsQUF2RkQsQ0FJc0MsSUFBSSxHQW1GekM7U0FuRlksZ0JBQWdCOzs7SUFFM0IsaUNBQXdDOztJQUN4Qyx1Q0FBbUQ7O0lBQ25ELHNDQUF5RDs7SUFDekQsb0NBQW1DOztJQUNuQyxvQ0FBbUM7O0lBQ25DLDJDQUF5Qzs7SUFDekMsa0NBQWdDOztJQUNoQyx3Q0FBb0M7O0lBQ3BDLHVDQUE4RDs7SUFXOUQsdUNBQXlFOztJQUN6RSxxQ0FBaUU7O0lBRWpFLG1DQUFxQjs7SUFFckIseUNBR0U7O0lBRUYscUNBQTJCOztJQUMzQixzQ0FBNEI7O0lBRWYsc0NBQWdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9wdGlvbmFsLCBTZWxmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZSB9IGZyb20gJy4uLy4uL21vZGVscy9iYXNlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Vycm9yLW1lc3NhZ2UuaW50ZXJmYWNlJztcclxuXHJcbi8qKiBJbnRlcmZhY2UgZm9yIGNvdW50cmllcyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvdW50cnlMaXN0IHtcclxuICBjb3VudHJ5Q29kZTogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBDQU5BREEgPSAnQ0FOJztcclxuZXhwb3J0IGNvbnN0IFVOSVRFRF9TVEFURVMgPSAnVVNBJztcclxuXHJcbi8qKiBEZWZhdWx0IGxpc3Qgb2YgY291bnRyaWVzICovXHJcbmV4cG9ydCBjb25zdCBDT1VOVFJZX0xJU1Q6IENvdW50cnlMaXN0W10gPSBbXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FGRycsIGRlc2NyaXB0aW9uOiAnQWZnaGFuaXN0YW4nIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FMQScsIGRlc2NyaXB0aW9uOiAnw4VsYW5kIElzbGFuZHMnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FMQicsIGRlc2NyaXB0aW9uOiAnQWxiYW5pYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnRFpBJywgZGVzY3JpcHRpb246ICdBbGdlcmlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdBU00nLCBkZXNjcmlwdGlvbjogJ0FtZXJpY2FuIFNhbW9hJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdBTkQnLCBkZXNjcmlwdGlvbjogJ0FuZG9ycmEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FHTycsIGRlc2NyaXB0aW9uOiAnQW5nb2xhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdBSUEnLCBkZXNjcmlwdGlvbjogJ0FuZ3VpbGxhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdBVEEnLCBkZXNjcmlwdGlvbjogJ0FudGFyY3RpY2EnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FURycsIGRlc2NyaXB0aW9uOiAnQW50aWd1YSBhbmQgQmFyYnVkYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQVJHJywgZGVzY3JpcHRpb246ICdBcmdlbnRpbmEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FSTScsIGRlc2NyaXB0aW9uOiAnQXJtZW5pYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQUJXJywgZGVzY3JpcHRpb246ICdBcnViYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQVVTJywgZGVzY3JpcHRpb246ICdBdXN0cmFsaWEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FVVCcsIGRlc2NyaXB0aW9uOiAnQXVzdHJpYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQVpFJywgZGVzY3JpcHRpb246ICdBemVyYmFpamFuJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCSFMnLCBkZXNjcmlwdGlvbjogJ0JhaGFtYXMnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JIUicsIGRlc2NyaXB0aW9uOiAnQmFocmFpbicgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQkdEJywgZGVzY3JpcHRpb246ICdCYW5nbGFkZXNoJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCUkInLCBkZXNjcmlwdGlvbjogJ0JhcmJhZG9zJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCTFInLCBkZXNjcmlwdGlvbjogJ0JlbGFydXMnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JFTCcsIGRlc2NyaXB0aW9uOiAnQmVsZ2l1bScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQkxaJywgZGVzY3JpcHRpb246ICdCZWxpemUnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JFTicsIGRlc2NyaXB0aW9uOiAnQmVuaW4nIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JNVScsIGRlc2NyaXB0aW9uOiAnQmVybXVkYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQlROJywgZGVzY3JpcHRpb246ICdCaHV0YW4nIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JPTCcsIGRlc2NyaXB0aW9uOiAnQm9saXZpYSwgUGx1cmluYXRpb25hbCBTdGF0ZSBvZicgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQkVTJywgZGVzY3JpcHRpb246ICdCb25haXJlLCBTaW50IEV1c3RhdGl1cyBhbmQgU2FiYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQklIJywgZGVzY3JpcHRpb246ICdCb3NuaWEgYW5kIEhlcnplZ292aW5hJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCV0EnLCBkZXNjcmlwdGlvbjogJ0JvdHN3YW5hJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCVlQnLCBkZXNjcmlwdGlvbjogJ0JvdXZldCBJc2xhbmQnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JSQScsIGRlc2NyaXB0aW9uOiAnQnJhemlsJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdJT1QnLCBkZXNjcmlwdGlvbjogJ0JyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQlJOJywgZGVzY3JpcHRpb246ICdCcnVuZWkgRGFydXNzYWxhbScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQkdSJywgZGVzY3JpcHRpb246ICdCdWxnYXJpYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQkZBJywgZGVzY3JpcHRpb246ICdCdXJraW5hIEZhc28nIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JESScsIGRlc2NyaXB0aW9uOiAnQnVydW5kaScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnS0hNJywgZGVzY3JpcHRpb246ICdDYW1ib2RpYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ01SJywgZGVzY3JpcHRpb246ICdDYW1lcm9vbicgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ0FOJywgZGVzY3JpcHRpb246ICdDYW5hZGEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0NQVicsIGRlc2NyaXB0aW9uOiAnQ2FwZSBWZXJkZScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ1lNJywgZGVzY3JpcHRpb246ICdDYXltYW4gSXNsYW5kcycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ0FGJywgZGVzY3JpcHRpb246ICdDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ1RDRCcsIGRlc2NyaXB0aW9uOiAnQ2hhZCcgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ0hMJywgZGVzY3JpcHRpb246ICdDaGlsZScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ0hOJywgZGVzY3JpcHRpb246ICdDaGluYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ1hSJywgZGVzY3JpcHRpb246ICdDaHJpc3RtYXMgSXNsYW5kJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDQ0snLCBkZXNjcmlwdGlvbjogJ0NvY29zIChLZWVsaW5nKSBJc2xhbmRzJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDT0wnLCBkZXNjcmlwdGlvbjogJ0NvbG9tYmlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDT00nLCBkZXNjcmlwdGlvbjogJ0NvbW9yb3MnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0NPRycsIGRlc2NyaXB0aW9uOiAnQ29uZ28nIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0NPRCcsIGRlc2NyaXB0aW9uOiAnQ29uZ28sIHRoZSBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ09LJywgZGVzY3JpcHRpb246ICdDb29rIElzbGFuZHMnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0NSSScsIGRlc2NyaXB0aW9uOiAnQ29zdGEgUmljYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ0lWJywgZGVzY3JpcHRpb246ICdDw7R0ZSBkXFwnSXZvaXJlJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdIUlYnLCBkZXNjcmlwdGlvbjogJ0Nyb2F0aWEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0NVQicsIGRlc2NyaXB0aW9uOiAnQ3ViYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ1VXJywgZGVzY3JpcHRpb246ICdDdXJhw6dhbycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ1lQJywgZGVzY3JpcHRpb246ICdDeXBydXMnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0NaRScsIGRlc2NyaXB0aW9uOiAnQ3plY2ggUmVwdWJsaWMnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0ROSycsIGRlc2NyaXB0aW9uOiAnRGVubWFyaycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnREpJJywgZGVzY3JpcHRpb246ICdEamlib3V0aScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnRE1BJywgZGVzY3JpcHRpb24