diff --git a/Samples/DataSources/datasources.html b/Samples/DataSources/datasources.html
index efd3bfba..d5d74050 100644
--- a/Samples/DataSources/datasources.html
+++ b/Samples/DataSources/datasources.html
@@ -15,7 +15,7 @@
-
+
diff --git a/Samples/Filtering/filtering.html b/Samples/Filtering/filtering.html
index 1e960820..3d523fbc 100644
--- a/Samples/Filtering/filtering.html
+++ b/Samples/Filtering/filtering.html
@@ -15,7 +15,7 @@
-
+
diff --git a/Samples/Parameters/parameters.html b/Samples/Parameters/parameters.html
index d34cb08d..d6d9fb14 100644
--- a/Samples/Parameters/parameters.html
+++ b/Samples/Parameters/parameters.html
@@ -15,7 +15,7 @@
-
+
diff --git a/Samples/Settings/settings.html b/Samples/Settings/settings.html
index b0d0f18a..a50c07cf 100644
--- a/Samples/Settings/settings.html
+++ b/Samples/Settings/settings.html
@@ -14,7 +14,7 @@
-
+
diff --git a/lib/tableau-extensions-0.6.1.js b/lib/previous/tableau-extensions-0.6.1.js
similarity index 100%
rename from lib/tableau-extensions-0.6.1.js
rename to lib/previous/tableau-extensions-0.6.1.js
diff --git a/lib/tableau-extensions-0.7.0.js b/lib/tableau-extensions-0.7.0.js
new file mode 100644
index 00000000..18210722
--- /dev/null
+++ b/lib/tableau-extensions-0.7.0.js
@@ -0,0 +1,24229 @@
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(typeof exports === 'object' && typeof module === 'object')
+ module.exports = factory();
+ else if(typeof define === 'function' && define.amd)
+ define([], factory);
+ else if(typeof exports === 'object')
+ exports["Main"] = factory();
+ else
+ root["Main"] = factory();
+})(this, function() {
+return /******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId])
+/******/ return installedModules[moduleId].exports;
+/******/
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ exports: {},
+/******/ id: moduleId,
+/******/ loaded: false
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.loaded = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "/dist/";
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var tableau = __webpack_require__(1);
+ var FrelardDesktopBootstrap_1 = __webpack_require__(76);
+ // This Main function will be executed when this module is loaded. Attempt to do our
+ // bootstrapping with qt and log any errors we encounter
+ FrelardDesktopBootstrap_1.doBootstrap().catch(function (e) {
+ console.log('Desktop bootstrapping failed: ' + e);
+ });
+ window.tableau = tableau;
+
+
+/***/ },
+/* 1 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ Object.defineProperty(exports, "__esModule", { value: true });
+ // Due to the way we configured webpack, we should be exporting things which will be under
+ // a global variable called "tableau". Export everything we want to be visible under tableau
+ // from this file.
+ var ExtensionsImpl_1 = __webpack_require__(2);
+ var Extensions_1 = __webpack_require__(74);
+ var api_shared_1 = __webpack_require__(9);
+ api_shared_1.VersionNumber.SetVersionNumber(("0.7.0"));
+ var extensionImpl = new ExtensionsImpl_1.ExtensionsImpl();
+ exports.extensions = new Extensions_1.Extensions(extensionImpl);
+ // Export Enums
+ // These show up under the tableau object. I.e. tableau.ExtensionContext.Server
+ var api_external_contract_1 = __webpack_require__(75);
+ exports.ExtensionContext = api_external_contract_1.ExtensionContext;
+ exports.ExtensionMode = api_external_contract_1.ExtensionMode;
+ exports.AnalyticsObjectType = api_external_contract_1.AnalyticsObjectType;
+ exports.ColumnType = api_external_contract_1.ColumnType;
+ exports.DashboardObjectType = api_external_contract_1.DashboardObjectType;
+ exports.DataType = api_external_contract_1.DataType;
+ exports.DateRangeType = api_external_contract_1.DateRangeType;
+ exports.DialogEventType = api_external_contract_1.DialogEventType;
+ exports.EncodingType = api_external_contract_1.EncodingType;
+ exports.ErrorCodes = api_external_contract_1.ErrorCodes;
+ exports.FieldAggregationType = api_external_contract_1.FieldAggregationType;
+ exports.FieldRoleType = api_external_contract_1.FieldRoleType;
+ exports.FilterDomainType = api_external_contract_1.FilterDomainType;
+ exports.FilterType = api_external_contract_1.FilterType;
+ exports.FilterUpdateType = api_external_contract_1.FilterUpdateType;
+ exports.FilterNullOption = api_external_contract_1.FilterNullOption;
+ exports.MarkType = api_external_contract_1.MarkType;
+ exports.ParameterValueType = api_external_contract_1.ParameterValueType;
+ exports.PeriodType = api_external_contract_1.PeriodType;
+ exports.QuickTableCalcType = api_external_contract_1.QuickTableCalcType;
+ exports.SelectionUpdateType = api_external_contract_1.SelectionUpdateType;
+ exports.SheetType = api_external_contract_1.SheetType;
+ exports.SortDirection = api_external_contract_1.SortDirection;
+ exports.TableauEventType = api_external_contract_1.TableauEventType;
+ exports.TrendLineModelType = api_external_contract_1.TrendLineModelType;
+
+
+/***/ },
+/* 2 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_internal_contract_1 = __webpack_require__(3);
+ var api_shared_1 = __webpack_require__(9);
+ var api_utils_1 = __webpack_require__(66);
+ var DashboardContent_1 = __webpack_require__(67);
+ var Environment_1 = __webpack_require__(68);
+ var Settings_1 = __webpack_require__(69);
+ var RegisterAllExtensionsServices_1 = __webpack_require__(70);
+ var SettingsImpl_1 = __webpack_require__(73);
+ var ExtensionsImpl = (function () {
+ function ExtensionsImpl() {
+ }
+ ExtensionsImpl.prototype.initializeAsync = function () {
+ var _this = this;
+ if (!this._initializationPromise) {
+ this._initializationPromise = new Promise(function (resolve, reject) {
+ // First thing we want to do is check to see if there is a desktop dispatcher already registered for us
+ if (api_internal_contract_1.InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise()) {
+ // Running in desktop, use this promise
+ var desktopDispatcherPromise = api_internal_contract_1.InternalApiDispatcherHolder.getDesktopDispatcherPromise();
+ desktopDispatcherPromise.then(_this.onDispatcherReceived.bind(_this)).then(function () { resolve(); });
+ }
+ else {
+ // We must be running in server, so we should try to kick of the server dispatcher bootstrapping
+ api_shared_1.doCrossFrameBootstrap(window, api_shared_1.VersionNumber.Instance).then(_this.onDispatcherReceived.bind(_this)).then(function () { resolve(); });
+ }
+ });
+ }
+ return this._initializationPromise;
+ };
+ ExtensionsImpl.prototype.onDispatcherReceived = function (dispatcher) {
+ var _this = this;
+ dispatcher.setVersionNumber(api_shared_1.VersionNumber.Instance);
+ // Call to register all the services which will use the newly initialized dispatcher
+ api_shared_1.registerAllSharedServices(dispatcher);
+ RegisterAllExtensionsServices_1.registerAllExtensionsServices(dispatcher);
+ // Get the initialization service and initialize this extension
+ var initializationService = api_shared_1.ApiServiceRegistry.instance.getService("InitializationService" /* InitializationService */);
+ return initializationService.initializeDashboardExtensionsAsync().then(function (result) {
+ if (!result.extensionInstance.locator.dashboardPath) {
+ throw api_utils_1.TableauException.isUndefined(['DashboardPath']);
+ }
+ _this.dashboardContent = _this.initializeDashboardContent(result.extensionDashboardInfo, result.extensionInstance.locator.dashboardPath);
+ _this.environment = new Environment_1.Environment(result.extensionEnvironment);
+ _this.settings = _this.initializeSettings(result.extensionSettingsInfo);
+ });
+ };
+ ExtensionsImpl.prototype.initializeDashboardContent = function (info, sheetPath) {
+ var dashboardImpl = new api_shared_1.DashboardImpl(info, sheetPath);
+ var dashboard = new api_shared_1.Dashboard(dashboardImpl);
+ return new DashboardContent_1.DashboardContent(dashboard);
+ };
+ ExtensionsImpl.prototype.initializeSettings = function (settingsInfo) {
+ var settingsImpl = new SettingsImpl_1.SettingsImpl(settingsInfo);
+ return new Settings_1.Settings(settingsImpl);
+ };
+ return ExtensionsImpl;
+ }());
+ exports.ExtensionsImpl = ExtensionsImpl;
+
+
+/***/ },
+/* 3 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+ }
+ Object.defineProperty(exports, "__esModule", { value: true });
+ __export(__webpack_require__(4));
+ __export(__webpack_require__(5));
+ __export(__webpack_require__(6));
+ __export(__webpack_require__(7));
+ __export(__webpack_require__(8));
+
+
+/***/ },
+/* 4 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var ExtensionContext;
+ (function (ExtensionContext) {
+ ExtensionContext["Desktop"] = "desktop";
+ ExtensionContext["Server"] = "server";
+ ExtensionContext["Unknown"] = "unknown";
+ })(ExtensionContext = exports.ExtensionContext || (exports.ExtensionContext = {}));
+ var ExtensionMode;
+ (function (ExtensionMode) {
+ ExtensionMode["Authoring"] = "authoring";
+ ExtensionMode["Viewing"] = "viewing";
+ ExtensionMode["Unknown"] = "unknown";
+ })(ExtensionMode = exports.ExtensionMode || (exports.ExtensionMode = {}));
+ var ColumnType;
+ (function (ColumnType) {
+ ColumnType["Discrete"] = "discrete";
+ ColumnType["Continuous"] = "continuous";
+ })(ColumnType = exports.ColumnType || (exports.ColumnType = {}));
+ var DashboardObjectType;
+ (function (DashboardObjectType) {
+ DashboardObjectType["Blank"] = "blank";
+ DashboardObjectType["Worksheet"] = "worksheet";
+ DashboardObjectType["QuickFilter"] = "quick-filter";
+ DashboardObjectType["ParameterControl"] = "parameter-control";
+ DashboardObjectType["PageFilter"] = "page-filter";
+ DashboardObjectType["Legend"] = "legend";
+ DashboardObjectType["Title"] = "title";
+ DashboardObjectType["Text"] = "text";
+ DashboardObjectType["Image"] = "image";
+ DashboardObjectType["WebPage"] = "web-page";
+ DashboardObjectType["Extension"] = "extension";
+ })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {}));
+ var DataType;
+ (function (DataType) {
+ DataType["String"] = "string";
+ DataType["Int"] = "int";
+ DataType["Float"] = "float";
+ DataType["Bool"] = "bool";
+ DataType["Date"] = "date";
+ DataType["DateTime"] = "date-time";
+ DataType["Spatial"] = "spatial";
+ })(DataType = exports.DataType || (exports.DataType = {}));
+ var EncodedDataType;
+ (function (EncodedDataType) {
+ EncodedDataType["Number"] = "number";
+ EncodedDataType["String"] = "string";
+ EncodedDataType["Date"] = "date";
+ EncodedDataType["Boolean"] = "boolean";
+ })(EncodedDataType = exports.EncodedDataType || (exports.EncodedDataType = {}));
+ var ErrorCode;
+ (function (ErrorCode) {
+ ErrorCode["ServerError"] = "server-error";
+ ErrorCode["InvalidAggregationFieldName"] = "invalid-aggregation-field-name";
+ ErrorCode["InvalidFilterFieldName"] = "invalid-filter-fieldname";
+ ErrorCode["InvalidFilterFieldValue"] = "invalid-filter-field-value";
+ })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {}));
+ var FieldAggregationType;
+ (function (FieldAggregationType) {
+ FieldAggregationType["Sum"] = "sum";
+ FieldAggregationType["Avg"] = "avg";
+ FieldAggregationType["Min"] = "min";
+ FieldAggregationType["Max"] = "max";
+ FieldAggregationType["Stdev"] = "stdev";
+ FieldAggregationType["Stdevp"] = "stdevp";
+ FieldAggregationType["Var"] = "var";
+ FieldAggregationType["Varp"] = "varp";
+ FieldAggregationType["Count"] = "count";
+ FieldAggregationType["Countd"] = "countd";
+ FieldAggregationType["Median"] = "median";
+ FieldAggregationType["Attr"] = "attr";
+ FieldAggregationType["None"] = "none";
+ FieldAggregationType["Year"] = "year";
+ FieldAggregationType["Qtr"] = "qtr";
+ FieldAggregationType["Month"] = "month";
+ FieldAggregationType["Day"] = "day";
+ FieldAggregationType["Hour"] = "hour";
+ FieldAggregationType["Minute"] = "minute";
+ FieldAggregationType["Second"] = "second";
+ FieldAggregationType["Week"] = "week";
+ FieldAggregationType["Weekday"] = "weekday";
+ FieldAggregationType["MonthYear"] = "month-year";
+ FieldAggregationType["Mdy"] = "mdy";
+ FieldAggregationType["End"] = "end";
+ FieldAggregationType["TruncYear"] = "trunc-year";
+ FieldAggregationType["TruncQtr"] = "trunc-qtr";
+ FieldAggregationType["TruncMonth"] = "trunc-month";
+ FieldAggregationType["TruncWeek"] = "trunc-week";
+ FieldAggregationType["TruncDay"] = "trunc-day";
+ FieldAggregationType["TruncHour"] = "trunc-hour";
+ FieldAggregationType["TruncMinute"] = "trunc-minute";
+ FieldAggregationType["TruncSecond"] = "trunc-second";
+ FieldAggregationType["Quart1"] = "quart1";
+ FieldAggregationType["Quart3"] = "quart3";
+ FieldAggregationType["Skewness"] = "skewness";
+ FieldAggregationType["Kurtosis"] = "kurtosis";
+ FieldAggregationType["InOut"] = "in-out";
+ FieldAggregationType["User"] = "user";
+ })(FieldAggregationType = exports.FieldAggregationType || (exports.FieldAggregationType = {}));
+ var FieldRoleType;
+ (function (FieldRoleType) {
+ FieldRoleType["Dimension"] = "dimension";
+ FieldRoleType["Measure"] = "measure";
+ FieldRoleType["Unknown"] = "unknown";
+ })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {}));
+ /**
+ * The different update types for applying filter.
+ */
+ var FilterUpdateType;
+ (function (FilterUpdateType) {
+ FilterUpdateType["Add"] = "add";
+ FilterUpdateType["All"] = "all";
+ FilterUpdateType["Replace"] = "replace";
+ FilterUpdateType["Remove"] = "remove";
+ })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {}));
+ var SheetType;
+ (function (SheetType) {
+ SheetType["Dashboard"] = "dashboard";
+ SheetType["Story"] = "story";
+ SheetType["Worksheet"] = "worksheet";
+ })(SheetType = exports.SheetType || (exports.SheetType = {}));
+ var DomainRestrictionType;
+ (function (DomainRestrictionType) {
+ DomainRestrictionType["All"] = "all";
+ DomainRestrictionType["List"] = "list";
+ DomainRestrictionType["Range"] = "range";
+ })(DomainRestrictionType = exports.DomainRestrictionType || (exports.DomainRestrictionType = {}));
+ var DateStepPeriod;
+ (function (DateStepPeriod) {
+ DateStepPeriod["Years"] = "years";
+ DateStepPeriod["Quarters"] = "quarters";
+ DateStepPeriod["Months"] = "months";
+ DateStepPeriod["Weeks"] = "weeks";
+ DateStepPeriod["Days"] = "days";
+ DateStepPeriod["Hours"] = "hours";
+ DateStepPeriod["Minutes"] = "minutes";
+ DateStepPeriod["Seconds"] = "seconds";
+ })(DateStepPeriod = exports.DateStepPeriod || (exports.DateStepPeriod = {}));
+ /**
+ * The option for specifying which values to include for filtering.
+ */
+ var FilterNullOption;
+ (function (FilterNullOption) {
+ FilterNullOption["NullValues"] = "nullvalues";
+ FilterNullOption["NonNullValues"] = "nonnullvalues";
+ FilterNullOption["AllValues"] = "allvalues";
+ })(FilterNullOption = exports.FilterNullOption || (exports.FilterNullOption = {}));
+ /**
+ * The type of filter domain
+ */
+ var FilterDomainType;
+ (function (FilterDomainType) {
+ FilterDomainType["Relevant"] = "relevant";
+ FilterDomainType["Database"] = "database";
+ })(FilterDomainType = exports.FilterDomainType || (exports.FilterDomainType = {}));
+ /**
+ * Internal enum for specifying the selection type for select marks api.
+ */
+ var SelectionUpdateType;
+ (function (SelectionUpdateType) {
+ SelectionUpdateType["Replace"] = "select-replace";
+ SelectionUpdateType["Add"] = "select-add";
+ SelectionUpdateType["Remove"] = "select-remove";
+ })(SelectionUpdateType = exports.SelectionUpdateType || (exports.SelectionUpdateType = {}));
+ /**
+ * Internal enum for specifying the included values type for range selection.
+ */
+ var QuantitativeIncludedValues;
+ (function (QuantitativeIncludedValues) {
+ QuantitativeIncludedValues["IncludeNull"] = "include-null";
+ QuantitativeIncludedValues["IncludeNonNull"] = "include-non-null";
+ QuantitativeIncludedValues["IncludeAll"] = "include-all";
+ })(QuantitativeIncludedValues = exports.QuantitativeIncludedValues || (exports.QuantitativeIncludedValues = {}));
+ /**
+ * Type of mark for a given marks card in a viz.
+ */
+ var MarkType;
+ (function (MarkType) {
+ MarkType["Bar"] = "bar";
+ MarkType["Line"] = "line";
+ MarkType["Area"] = "area";
+ MarkType["Square"] = "square";
+ MarkType["Circle"] = "circle";
+ MarkType["Shape"] = "shape";
+ MarkType["Text"] = "text";
+ MarkType["Map"] = "map";
+ MarkType["Pie"] = "pie";
+ MarkType["GanttBar"] = "gantt-bar";
+ MarkType["Polygon"] = "polygon";
+ })(MarkType = exports.MarkType || (exports.MarkType = {}));
+ /**
+ * Internal enum for specifying the type of filter
+ */
+ var FilterType;
+ (function (FilterType) {
+ FilterType["Categorical"] = "categorical";
+ FilterType["Range"] = "range";
+ FilterType["RelativeDate"] = "relativeDate";
+ FilterType["Hierarchical"] = "hierarchical";
+ })(FilterType = exports.FilterType || (exports.FilterType = {}));
+ /**
+ * Internal enum for specifying the DateRangeType of a relative date filter
+ */
+ var DateRangeType;
+ (function (DateRangeType) {
+ /**
+ * Refers to the last day, week, month, etc. of the date period.
+ */
+ DateRangeType["Last"] = "last";
+ /**
+ * Refers to the last N days, weeks, months, etc. of the date period.
+ */
+ DateRangeType["LastN"] = "lastN";
+ /**
+ * Refers to the next day, week, month, etc. of the date period.
+ */
+ DateRangeType["Next"] = "next";
+ /**
+ * Refers to the next N days, weeks, months, etc. of the date period.
+ */
+ DateRangeType["NextN"] = "nextN";
+ /**
+ * Refers to the current day, week, month, etc. of the date period.
+ */
+ DateRangeType["Current"] = "current";
+ /**
+ * Refers to everything up to and including the current day, week, month, etc. of the date period.
+ */
+ DateRangeType["ToDate"] = "toDate";
+ })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {}));
+
+
+/***/ },
+/* 5 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var InternalApiDispatcherHolder;
+ (function (InternalApiDispatcherHolder) {
+ function getDesktopDispatcherPromise() {
+ return window.__tableauDesktopDispatcher;
+ }
+ InternalApiDispatcherHolder.getDesktopDispatcherPromise = getDesktopDispatcherPromise;
+ function hasDesktopApiDispatcherPromise() {
+ return !!InternalApiDispatcherHolder.getDesktopDispatcherPromise();
+ }
+ InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise = hasDesktopApiDispatcherPromise;
+ function setDesktopDispatcherPromise(dispatcher) {
+ window.__tableauDesktopDispatcher = dispatcher;
+ }
+ InternalApiDispatcherHolder.setDesktopDispatcherPromise = setDesktopDispatcherPromise;
+ })(InternalApiDispatcherHolder = exports.InternalApiDispatcherHolder || (exports.InternalApiDispatcherHolder = {}));
+
+
+/***/ },
+/* 6 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var NotificationId;
+ (function (NotificationId) {
+ NotificationId["SelectedMarksChanged"] = "selected-marks-changed";
+ NotificationId["ParameterChanged"] = "parameter-changed";
+ NotificationId["FilterChanged"] = "filter-changed";
+ })(NotificationId = exports.NotificationId || (exports.NotificationId = {}));
+
+
+/***/ },
+/* 7 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var ParameterId;
+ (function (ParameterId) {
+ ParameterId["ExtensionLocator"] = "extension-locator";
+ ParameterId["ExtensionBootstrapInfo"] = "extension-bootstrap-info";
+ ParameterId["ExtensionSettingsInfo"] = "extension-settings-info";
+ ParameterId["VisualId"] = "visual-id";
+ ParameterId["SheetPath"] = "sheet-path";
+ ParameterId["IgnoreAliases"] = "ignore-aliases";
+ ParameterId["IgnoreSelection"] = "ignore-selection";
+ ParameterId["IncludeAllColumns"] = "include-all-columns";
+ ParameterId["MaxRows"] = "max-rows";
+ ParameterId["UnderlyingDataTable"] = "underlying-data-table";
+ ParameterId["UnderlyingSummaryDataTable"] = "underlying-summary-data-table";
+ ParameterId["DataSourceDataTable"] = "data-source-data-table";
+ ParameterId["SettingsValues"] = "settings-values";
+ ParameterId["SelectedData"] = "selected-data";
+ ParameterId["HighlightedData"] = "highlighted-data";
+ // Filter Params
+ ParameterId["FieldName"] = "field-name";
+ ParameterId["FilterValues"] = "filter-values";
+ ParameterId["FilterUpdateType"] = "filter-update-type";
+ ParameterId["IsExcludeMode"] = "is-exclude";
+ ParameterId["FilterRangeMin"] = "filter-range-min";
+ ParameterId["FilterRangeMax"] = "filter-range-max";
+ ParameterId["FilterRangeNullOption"] = "filter-range-null-option";
+ ParameterId["WorksheetFilters"] = "worksheet-filters";
+ ParameterId["FieldId"] = "field-id";
+ ParameterId["DomainType"] = "domain-type";
+ ParameterId["CategoricalDomain"] = "categorical-domain";
+ ParameterId["QuantitativeDomain"] = "quantitative-dmain";
+ ParameterId["WorksheetName"] = "worksheet-name";
+ ParameterId["DashboardName"] = "dashboard";
+ ParameterId["ParameterInfo"] = "parameter-info";
+ ParameterId["ParameterInfos"] = "parameter-infos";
+ ParameterId["ParameterCaption"] = "paremeter-caption";
+ ParameterId["ParameterFieldName"] = "parameter-field-name";
+ ParameterId["ParameterValue"] = "parameter-value";
+ ParameterId["Selection"] = "selection";
+ ParameterId["SelectionUpdateType"] = "selectionUpdateType";
+ ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels";
+ ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels";
+ ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels";
+ ParameterId["DataSourceId"] = "data-source-id";
+ ParameterId["DataSchema"] = "data-schema";
+ ParameterId["DataSourceName"] = "data-source-name";
+ ParameterId["ColumnsToInclude"] = "columns-to-include";
+ ParameterId["JoinDescription"] = "join-description";
+ ParameterId["ConnectionDescriptionSummaries"] = "connection-description-summaries";
+ })(ParameterId = exports.ParameterId || (exports.ParameterId = {}));
+
+
+/***/ },
+/* 8 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ // Declare this key type and export the NotificationId to make this behave like a string enum
+ var VerbId;
+ (function (VerbId) {
+ VerbId["ApplyCategoricalFilter"] = "categorical-filter";
+ VerbId["ApplyRangeFilter"] = "range-filter";
+ VerbId["ClearFilter"] = "clear-filter";
+ VerbId["InitializeExtension"] = "initialize-extension";
+ VerbId["GetDataSummaryData"] = "get-summary-data";
+ VerbId["GetUnderlyingData"] = "get-underlying-data";
+ VerbId["GetDataSourceData"] = "get-datasource-data";
+ VerbId["SaveExtensionSettings"] = "save-extension-settings";
+ VerbId["GetSelectedMarks"] = "get-selected-marks";
+ VerbId["GetHighlightedMarks"] = "get-highlighted-marks";
+ VerbId["GetParametersForSheet"] = "get-parameters-for-sheet";
+ VerbId["FindParameter"] = "find-parameter";
+ VerbId["ChangeParameterValue"] = "change-parameter-value";
+ VerbId["ClearSelectedMarks"] = "clear-selected-marks";
+ VerbId["SelectByValue"] = "select-by-value";
+ VerbId["GetDataSources"] = "get-data-sources";
+ VerbId["RefreshDataSource"] = "refresh-data-source";
+ VerbId["GetFilters"] = "get-filters";
+ VerbId["GetCategoricalDomain"] = "get-categorical-domain";
+ VerbId["GetRangeDomain"] = "get-range-domain";
+ VerbId["GetJoinDescription"] = "get-join-description";
+ VerbId["GetConnectionDescriptionSummaries"] = "get-connection-description-summaries";
+ })(VerbId = exports.VerbId || (exports.VerbId = {}));
+
+
+/***/ },
+/* 9 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+ }
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Dashboard_1 = __webpack_require__(10);
+ exports.Dashboard = Dashboard_1.Dashboard;
+ var VersionNumber_1 = __webpack_require__(17);
+ exports.VersionNumber = VersionNumber_1.VersionNumber;
+ var DashboardImpl_1 = __webpack_require__(18);
+ exports.DashboardImpl = DashboardImpl_1.DashboardImpl;
+ var InternalToExternalEnumMappings_1 = __webpack_require__(23);
+ exports.InternalToExternalEnumMappings = InternalToExternalEnumMappings_1.InternalToExternalEnumMappings;
+ __export(__webpack_require__(44));
+ __export(__webpack_require__(28));
+ __export(__webpack_require__(58));
+
+
+/***/ },
+/* 10 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ })();
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Sheet_1 = __webpack_require__(11);
+ var Dashboard = (function (_super) {
+ __extends(Dashboard, _super);
+ function Dashboard(_dashboardImpl) {
+ var _this = _super.call(this, _dashboardImpl) || this;
+ _this._dashboardImpl = _dashboardImpl;
+ _dashboardImpl.initializeWithPublicInterfaces(_this);
+ return _this;
+ }
+ Object.defineProperty(Dashboard.prototype, "worksheets", {
+ get: function () {
+ return this._dashboardImpl.worksheets;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Dashboard.prototype, "objects", {
+ get: function () {
+ return this._dashboardImpl.objects;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Dashboard;
+ }(Sheet_1.Sheet));
+ exports.Dashboard = Dashboard;
+
+
+/***/ },
+/* 11 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ })();
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var EventListenerManager_1 = __webpack_require__(12);
+ var Sheet = (function (_super) {
+ __extends(Sheet, _super);
+ function Sheet(_sheetImpl) {
+ var _this = _super.call(this) || this;
+ _this._sheetImpl = _sheetImpl;
+ return _this;
+ }
+ Object.defineProperty(Sheet.prototype, "name", {
+ get: function () {
+ return this._sheetImpl.name;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Sheet.prototype, "sheetType", {
+ get: function () {
+ return this._sheetImpl.sheetType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Sheet.prototype, "size", {
+ get: function () {
+ return this._sheetImpl.size;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Sheet.prototype.findParameterAsync = function (parameterName) {
+ return this._sheetImpl.findParameterAsync(parameterName, this);
+ };
+ Sheet.prototype.getParametersAsync = function () {
+ return this._sheetImpl.getParametersAsync(this);
+ };
+ return Sheet;
+ }(EventListenerManager_1.EventListenerManager));
+ exports.Sheet = Sheet;
+
+
+/***/ },
+/* 12 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_utils_1 = __webpack_require__(13);
+ /**
+ * Class designed to register and unregister handlers from a user. Only those events
+ * which are added via AddNewEventType will be supported by this instance
+ */
+ var EventListenerManager = (function () {
+ function EventListenerManager() {
+ this._eventListenerManagers = {};
+ }
+ EventListenerManager.prototype.addEventListener = function (eventType, handler) {
+ if (!this._eventListenerManagers.hasOwnProperty(eventType)) {
+ throw api_utils_1.TableauException.error(EventListenerManager.UNSUPPORTED_EVENT, [eventType]);
+ }
+ return this._eventListenerManagers[eventType].addEventListener(handler);
+ };
+ EventListenerManager.prototype.removeEventListener = function (eventType, handler) {
+ if (!this._eventListenerManagers.hasOwnProperty(eventType)) {
+ throw api_utils_1.TableauException.error(EventListenerManager.UNSUPPORTED_EVENT, [eventType]);
+ }
+ return this._eventListenerManagers[eventType].removeEventListener(handler);
+ };
+ EventListenerManager.prototype.addNewEventType = function (eventManager) {
+ this._eventListenerManagers[eventManager.eventType] = eventManager;
+ };
+ EventListenerManager.UNSUPPORTED_EVENT = 'Unsupported event type : %1';
+ return EventListenerManager;
+ }());
+ exports.EventListenerManager = EventListenerManager;
+
+
+/***/ },
+/* 13 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var EnumConverter_1 = __webpack_require__(14);
+ exports.EnumConverter = EnumConverter_1.EnumConverter;
+ var Param_1 = __webpack_require__(16);
+ exports.Param = Param_1.Param;
+ var TableauException_1 = __webpack_require__(15);
+ exports.TableauException = TableauException_1.TableauException;
+
+
+/***/ },
+/* 14 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var TableauException_1 = __webpack_require__(15);
+ /**
+ * This class converts from a source enum value to destination enum
+ * value given a mapping from source to destination when constructed.
+ */
+ var EnumConverter = (function () {
+ function EnumConverter(_mappings, _defaultVal) {
+ this._mappings = _mappings;
+ this._defaultVal = _defaultVal;
+ }
+ EnumConverter.prototype.convert = function (enumVal, throwIfMissing) {
+ if (this._mappings.hasOwnProperty(enumVal)) {
+ return this._mappings[enumVal];
+ }
+ if (this._defaultVal !== undefined && !throwIfMissing) {
+ return this._defaultVal;
+ }
+ throw TableauException_1.TableauException.error(EnumConverter.MAPPING_NOT_FOUND, [enumVal]);
+ };
+ EnumConverter.MAPPING_NOT_FOUND = 'Mapping not found for %1';
+ return EnumConverter;
+ }());
+ exports.EnumConverter = EnumConverter;
+
+
+/***/ },
+/* 15 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var TableauException = (function () {
+ function TableauException() {
+ }
+ TableauException.apiNotImplemented = function (params) {
+ var message = TableauException.format(TableauException.API_NOT_IMPLEMENTED, params);
+ return new Error(message);
+ };
+ TableauException.isUndefined = function (params) {
+ var message = TableauException.format(TableauException.UNDEFINED, params);
+ return new Error(message);
+ };
+ TableauException.isNull = function (params) {
+ var message = TableauException.format(TableauException.IS_NULL, params);
+ return new Error(message);
+ };
+ TableauException.invalidParamValue = function (params) {
+ var message = TableauException.format(TableauException.INVALID_PARAMETER_VALUE, params);
+ return new Error(message);
+ };
+ TableauException.invalidParamType = function (params) {
+ var message = TableauException.format(TableauException.INVALID_PARAMETER_TYPE, params);
+ return new Error(message);
+ };
+ TableauException.missingParameter = function (params) {
+ var message = TableauException.format(TableauException.MISSING_PARAMETER, params);
+ return new Error(message);
+ };
+ TableauException.invalid = function (params) {
+ var message = TableauException.format(TableauException.INVALID, params);
+ return new Error(message);
+ };
+ TableauException.internalError = function (params) {
+ var message = TableauException.format(TableauException.INTERNAL_ERROR, params);
+ return new Error(message);
+ };
+ TableauException.error = function (message, params) {
+ var result;
+ if (params) {
+ result = TableauException.format(message, params);
+ }
+ else {
+ result = message;
+ }
+ return new Error(result);
+ };
+ TableauException.format = function (message, params) {
+ for (var i = 0; i < params.length; i++) {
+ var match = '%' + (i + 1);
+ message = message.replace(new RegExp(match, 'g'), params[i]);
+ }
+ message = message.replace(new RegExp('%[0-9]+', 'g'), '');
+ message = message.trim();
+ return message;
+ };
+ TableauException.API_NOT_IMPLEMENTED = '%1 API not yet implemented.';
+ TableauException.UNDEFINED = '%1 is undefined.';
+ TableauException.INVALID_PARAMETER_VALUE = 'Invalid value for parameter: %1. %2';
+ TableauException.INVALID_PARAMETER_TYPE = 'Invalid type for parameter: %1. %2';
+ TableauException.MISSING_PARAMETER = 'Missing Parameter: %1.';
+ TableauException.UNKNOWN_ERROR = 'Unknown error.';
+ TableauException.INTERNAL_ERROR = 'Internal error: %1.';
+ TableauException.INVALID = 'Invalid: %1. %2';
+ TableauException.IS_NULL = '%1 is null.';
+ return TableauException;
+ }());
+ exports.TableauException = TableauException;
+
+
+/***/ },
+/* 16 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var TableauException_1 = __webpack_require__(15);
+ var Param = (function () {
+ function Param() {
+ }
+ /**
+ * Verifies that an incoming parameter is 'truthy' and throws
+ * an error if it's not. This will throw an error if the value
+ * is null, undefined, NaN, the empty string, 0, or false.
+ *
+ * @param argumentValue value to verify
+ * @param argumentName name of argument to verify
+ */
+ /*tslint:disable-next-line */
+ Param.verifyValue = function (argumentValue, argumentName) {
+ if (!argumentValue) {
+ throw TableauException_1.TableauException.invalidParamValue([argumentName]);
+ }
+ };
+ /**
+ * Verifies that a string is valid. Throws an error if the string is
+ * null, undefined, or NaN.
+ *
+ * @param argumentValue value to verify
+ * @param argumentName name of argument to verify
+ */
+ Param.verifyString = function (argumentValue, argumentName) {
+ if (argumentValue === null || argumentValue === undefined) {
+ throw TableauException_1.TableauException.invalidParamValue([argumentName]);
+ }
+ };
+ /**
+ * Verifies the value is part of the Enum
+ *
+ * String enums are {string : string} dictionaries which are not reverse mappable
+ * This is an ugly workaround
+ * @param value value to verify
+ * @param enumType enum to verify against
+ */
+ /* tslint:disable:no-any */
+ Param.isValidEnumValue = function (value, enumType) {
+ var isValid = false;
+ Object.keys(enumType).forEach(function (enumKey) {
+ if (enumType[enumKey] === value.toString()) {
+ isValid = true;
+ }
+ });
+ return isValid;
+ };
+ /* tslint:enable:no-any */
+ /**
+ * serializes the date into the format that the server expects.
+ * @param date the date to serialize
+ */
+ Param.serializeDateForPlatform = function (date) {
+ var year = date.getUTCFullYear();
+ var month = date.getUTCMonth() + 1;
+ var day = date.getUTCDate();
+ var hh = date.getUTCHours();
+ var mm = date.getUTCMinutes();
+ var sec = date.getUTCSeconds();
+ return year + '-' + month + '-' + day + ' ' + hh + ':' + mm + ':' + sec;
+ };
+ Param.serializeBooleanForPlatform = function (bool) {
+ return bool ? 'true' : 'false';
+ };
+ Param.serializeNumberForPlatform = function (num) {
+ return num.toString(10);
+ };
+ /**
+ * Verifies the params min and max for applying range filter
+ * @param min range min
+ * @param max range max
+ */
+ /* tslint:disable:no-any */
+ Param.verifyRangeParamType = function (min, max) {
+ /* tslint:enable:no-any */
+ if (!min && !max) {
+ throw TableauException_1.TableauException.invalidParamValue(['Range parameters', 'At least one of min or max is required.']);
+ }
+ if (!Param.isTypeNumber(min) && !Param.isTypeDate(min)) {
+ throw TableauException_1.TableauException.invalidParamType(['Range parameters', 'Only Date and number are allowed for parameter min.']);
+ }
+ if (!Param.isTypeNumber(max) && !Param.isTypeDate(max)) {
+ throw TableauException_1.TableauException.invalidParamType(['Range parameters', 'Only Date and number are allowed for parameter max.']);
+ }
+ if (typeof (min) !== typeof (max)) {
+ throw TableauException_1.TableauException.invalidParamType(['Range parameters', 'Parameters min and max should be of the same type.']);
+ }
+ };
+ /**
+ * Verifies the input is a number
+ */
+ /* tslint:disable:no-any */
+ Param.isTypeNumber = function (input) {
+ return typeof (input) === 'number' || input instanceof Number;
+ };
+ /* tslint:enable:no-any */
+ /**
+ * Verifies the input is a Date
+ */
+ /* tslint:disable:no-any */
+ Param.isTypeDate = function (input) {
+ return input instanceof Date;
+ };
+ /* tslint:enable:no-any */
+ /* tslint:disable-next-line:no-any */
+ Param.isTypeString = function (input) {
+ return typeof (input) === 'string' || input instanceof String;
+ };
+ /* tslint:disable-next-line:no-any */
+ Param.isTypeBool = function (input) {
+ return typeof (input) === 'boolean' || input instanceof Boolean;
+ };
+ /* tslint:disable-next-line:no-any */
+ Param.serializeParamterValue = function (value) {
+ if (Param.isTypeNumber(value)) {
+ return Param.serializeNumberForPlatform(value);
+ }
+ else if (Param.isTypeDate(value)) {
+ return Param.serializeDateForPlatform(value);
+ }
+ else if (Param.isTypeBool(value)) {
+ return Param.serializeBooleanForPlatform(value);
+ }
+ else if (Param.isTypeString(value)) {
+ return value;
+ }
+ else {
+ throw TableauException_1.TableauException.invalidParamValue(['value']);
+ }
+ };
+ return Param;
+ }());
+ exports.Param = Param;
+
+
+/***/ },
+/* 17 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_utils_1 = __webpack_require__(13);
+ /**
+ * Represents the current version of the extensions library
+ */
+ var VersionNumber = (function () {
+ // private constructor so everyone uses the singleton instance
+ function VersionNumber(versionString) {
+ var parts = versionString.split('.').map(function (p) { return parseInt(p, 10); });
+ if (parts.length !== 3) {
+ throw api_utils_1.TableauException.error(VersionNumber.INVALID_VERSION_NUMBER, [versionString]);
+ }
+ this.major = parts[0];
+ this.minor = parts[1];
+ this.fix = parts[2];
+ }
+ Object.defineProperty(VersionNumber, "Instance", {
+ /**
+ * Gets the singleton instance of the version number.
+ */
+ get: function () {
+ return VersionNumber._instance;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ VersionNumber.SetVersionNumber = function (numString) {
+ VersionNumber._instance = new VersionNumber(numString);
+ };
+ Object.defineProperty(VersionNumber.prototype, "formattedValue", {
+ get: function () {
+ return this.major + "." + this.minor + "." + this.fix;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ VersionNumber.INVALID_VERSION_NUMBER = 'Invalid version number: ';
+ return VersionNumber;
+ }());
+ exports.VersionNumber = VersionNumber;
+
+
+/***/ },
+/* 18 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ })();
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Contract = __webpack_require__(19);
+ var api_internal_contract_1 = __webpack_require__(21);
+ var DashboardObject_1 = __webpack_require__(22);
+ var InternalToExternalEnumMappings_1 = __webpack_require__(23);
+ var Point_1 = __webpack_require__(24);
+ var Size_1 = __webpack_require__(25);
+ var Worksheet_1 = __webpack_require__(26);
+ var SheetImpl_1 = __webpack_require__(27);
+ var SheetInfoImpl_1 = __webpack_require__(29);
+ var WorksheetImpl_1 = __webpack_require__(30);
+ var DashboardImpl = (function (_super) {
+ __extends(DashboardImpl, _super);
+ function DashboardImpl(_info, _sheetPath) {
+ var _this = _super.call(this, new SheetInfoImpl_1.SheetInfoImpl(_info.name, Contract.SheetType.Dashboard, new Size_1.Size(_info.size.h, _info.size.w))) || this;
+ _this._info = _info;
+ _this._sheetPath = _sheetPath;
+ return _this;
+ }
+ Object.defineProperty(DashboardImpl.prototype, "worksheets", {
+ get: function () {
+ return this._worksheets;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DashboardImpl.prototype, "objects", {
+ get: function () {
+ return this._objects;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ DashboardImpl.prototype.initializeWithPublicInterfaces = function (dashboard) {
+ this._worksheets = new Array();
+ this._objects = new Array();
+ // Process all the zones which are contained in this dashboard
+ for (var _i = 0, _a = this._info.zones; _i < _a.length; _i++) {
+ var zone = _a[_i];
+ var worksheet = undefined;
+ var zoneSize = new Size_1.Size(zone.height, zone.width);
+ if (zone.zoneType === api_internal_contract_1.DashboardObjectType.Worksheet) {
+ var sheetInfo = new SheetInfoImpl_1.SheetInfoImpl(zone.name, Contract.SheetType.Worksheet, zoneSize);
+ var vizId = {
+ worksheet: zone.name,
+ dashboard: this._info.name,
+ storyboard: this._sheetPath.storyboard,
+ flipboardZoneID: this._sheetPath.flipboardZoneID,
+ storyPointID: this._sheetPath.storyPointID
+ };
+ var worksheetImpl = new WorksheetImpl_1.WorksheetImpl(sheetInfo, vizId, dashboard);
+ worksheet = new Worksheet_1.Worksheet(worksheetImpl);
+ this._worksheets.push(worksheet);
+ }
+ var zonePoint = new Point_1.Point(zone.x, zone.y);
+ var dashboardObject = new DashboardObject_1.DashboardObject(dashboard, InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dashboardObjectType.convert(zone.zoneType), zonePoint, zoneSize, worksheet);
+ this._objects.push(dashboardObject);
+ }
+ };
+ return DashboardImpl;
+ }(SheetImpl_1.SheetImpl));
+ exports.DashboardImpl = DashboardImpl;
+
+
+/***/ },
+/* 19 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+ }
+ Object.defineProperty(exports, "__esModule", { value: true });
+ __export(__webpack_require__(20));
+
+
+/***/ },
+/* 20 */
+/***/ function(module, exports) {
+
+ "use strict";
+ // All enum values made available to Extensions developers.
+ // Enums should be kept in alphabetical order.
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * The context in which the Extensions is currently running.
+ */
+ var ExtensionContext;
+ (function (ExtensionContext) {
+ ExtensionContext["Desktop"] = "desktop";
+ ExtensionContext["Server"] = "server";
+ })(ExtensionContext = exports.ExtensionContext || (exports.ExtensionContext = {}));
+ /**
+ * The mode in which the Extensions is currently running.
+ */
+ var ExtensionMode;
+ (function (ExtensionMode) {
+ ExtensionMode["Authoring"] = "authoring";
+ ExtensionMode["Viewing"] = "viewing";
+ })(ExtensionMode = exports.ExtensionMode || (exports.ExtensionMode = {}));
+ var AnalyticsObjectType;
+ (function (AnalyticsObjectType) {
+ AnalyticsObjectType["Cluster"] = "cluster";
+ AnalyticsObjectType["Forecast"] = "forecast";
+ AnalyticsObjectType["TrendLine"] = "trend-line";
+ })(AnalyticsObjectType = exports.AnalyticsObjectType || (exports.AnalyticsObjectType = {}));
+ var ColumnType;
+ (function (ColumnType) {
+ ColumnType["Discrete"] = "discrete";
+ ColumnType["Continuous"] = "continuous";
+ })(ColumnType = exports.ColumnType || (exports.ColumnType = {}));
+ /**
+ * What the object represents in a dashboard.
+ */
+ var DashboardObjectType;
+ (function (DashboardObjectType) {
+ DashboardObjectType["Blank"] = "blank";
+ DashboardObjectType["Worksheet"] = "worksheet";
+ DashboardObjectType["QuickFilter"] = "quick-filter";
+ DashboardObjectType["ParameterControl"] = "parameter-control";
+ DashboardObjectType["PageFilter"] = "page-filter";
+ DashboardObjectType["Legend"] = "legend";
+ DashboardObjectType["Title"] = "title";
+ DashboardObjectType["Text"] = "text";
+ DashboardObjectType["Image"] = "image";
+ DashboardObjectType["WebPage"] = "web-page";
+ DashboardObjectType["Extension"] = "extension";
+ })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {}));
+ /**
+ * The different types of data a value can have
+ */
+ var DataType;
+ (function (DataType) {
+ DataType["String"] = "string";
+ DataType["Int"] = "int";
+ DataType["Float"] = "float";
+ DataType["Bool"] = "bool";
+ DataType["Date"] = "date";
+ DataType["DateTime"] = "date-time";
+ DataType["Spatial"] = "spatial";
+ })(DataType = exports.DataType || (exports.DataType = {}));
+ /**
+ * Valid date ranges for a relative date filter.
+ */
+ var DateRangeType;
+ (function (DateRangeType) {
+ DateRangeType["Last"] = "last";
+ DateRangeType["LastN"] = "last-n";
+ DateRangeType["Next"] = "next";
+ DateRangeType["NextN"] = "next-n";
+ DateRangeType["Current"] = "current";
+ DateRangeType["ToDate"] = "to-date";
+ })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {}));
+ /**
+ * Types of dialog event for event listening between a parent Extensions and a popup dialog.
+ */
+ var DialogEventType;
+ (function (DialogEventType) {
+ DialogEventType["DialogMessage"] = "dialog-message";
+ DialogEventType["DialogEvent"] = "dialog-event";
+ })(DialogEventType = exports.DialogEventType || (exports.DialogEventType = {}));
+ var EncodingType;
+ (function (EncodingType) {
+ EncodingType["Column"] = "column";
+ EncodingType["Row"] = "row";
+ EncodingType["Page"] = "page";
+ EncodingType["Filter"] = "filter";
+ EncodingType["MarksType"] = "marks-type";
+ EncodingType["MeasureValues"] = "measure-values";
+ EncodingType["Color"] = "color";
+ EncodingType["Size"] = "size";
+ EncodingType["Label"] = "label";
+ EncodingType["Detail"] = "detail";
+ EncodingType["Tooltip"] = "tooltip";
+ EncodingType["Shape"] = "shape";
+ EncodingType["Path"] = "path";
+ EncodingType["Angle"] = "angle";
+ })(EncodingType = exports.EncodingType || (exports.EncodingType = {}));
+ /**
+ * All error codes used by the Extensions API.
+ */
+ var ErrorCodes;
+ (function (ErrorCodes) {
+ /**
+ * Only one dialog can be opened at time with the UI namespace functionality.
+ */
+ ErrorCodes["DialogAlreadyOpen"] = "dialog-already-open";
+ /**
+ * The open dialog was closed by the user.
+ */
+ ErrorCodes["DialogClosedByUser"] = "dialog-closed-by-user";
+ /**
+ * An error occurred while attempting to perform a filter operation.
+ */
+ ErrorCodes["FilterCannotBePerformed"] = "filter-cannot-be-performed";
+ /**
+ * An error occurred within the Tableau Extensions API. Contact Tableau Support.
+ */
+ ErrorCodes["InternalError"] = "internal-error";
+ /**
+ * An invalid aggregation was specified for the filter, such as setting a range filter to "SUM(Sales)" instead of "Sales".
+ */
+ ErrorCodes["InvalidAggregationFieldName"] = "invalid-aggregation-field-name";
+ /**
+ * A dialog must first launch to, and send messages from, the same domain as the parent Extensions.
+ */
+ ErrorCodes["InvalidDomainDialog"] = "invalid-dialog-domain";
+ /**
+ * An invalid date was specified in a method that required a date parameter.
+ */
+ ErrorCodes["InvalidDateParameter"] = "invalid-date-parameter";
+ /**
+ * A filter operation was attempted on a field that does not exist in the data source.
+ */
+ ErrorCodes["InvalidFilterFieldName"] = "invalid-filter-field-name";
+ /**
+ * A filter operation was attempted using a value that is the wrong data type or format.
+ */
+ ErrorCodes["InvalidFilterFieldValue"] = "invalid-filter-field-value";
+ /**
+ * A parameter is not the correct data type or format. The name of the parameter is specified in the Error.message field.
+ */
+ ErrorCodes["InvalidParameter"] = "invalid-parameter";
+ /**
+ * An invalid date value was specified in a Sheet.selectMarksAsync() call for a date field.
+ */
+ ErrorCodes["InvalidSelectionDate"] = "invalid-selection-date";
+ /**
+ * A field was specified in a Sheet.selectMarksAsync() call that does not exist in the data source.
+ */
+ ErrorCodes["InvalidSelectionFieldName"] = "invalid-selection-field-name";
+ /**
+ * An invalid value was specified in a Sheet.selectMarksAsync() call.
+ */
+ ErrorCodes["InvalidSelectionValue"] = "invalid-selection-value";
+ /**
+ * A required parameter was not specified, null, or an empty string/array.
+ */
+ ErrorCodes["NullOrEmptyParameter"] = "null-or-empty-parameter";
+ /**
+ * An unknown event name was specified in the call to Viz.addEventListeneror Viz.removeEventListener.
+ */
+ ErrorCodes["UnsupportedEventName"] = "unsupported-event-name";
+ /**
+ * A method was used for a type of datasource that doesn't support that method (see getActiveTablesAsync for an example)
+ */
+ ErrorCodes["UnsupportedMethodForDataSourceType"] = "unsupported-method-for-data-source-type";
+ })(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {}));
+ /**
+ * Type of aggregation on a field.
+ */
+ var FieldAggregationType;
+ (function (FieldAggregationType) {
+ FieldAggregationType["Sum"] = "sum";
+ FieldAggregationType["Avg"] = "avg";
+ FieldAggregationType["Min"] = "min";
+ FieldAggregationType["Max"] = "max";
+ FieldAggregationType["Stdev"] = "stdev";
+ FieldAggregationType["Stdevp"] = "stdevp";
+ FieldAggregationType["Var"] = "var";
+ FieldAggregationType["Varp"] = "varp";
+ FieldAggregationType["Count"] = "count";
+ FieldAggregationType["Countd"] = "countd";
+ FieldAggregationType["Median"] = "median";
+ FieldAggregationType["Attr"] = "attr";
+ FieldAggregationType["None"] = "none";
+ FieldAggregationType["Year"] = "year";
+ FieldAggregationType["Qtr"] = "qtr";
+ FieldAggregationType["Month"] = "month";
+ FieldAggregationType["Day"] = "day";
+ FieldAggregationType["Hour"] = "hour";
+ FieldAggregationType["Minute"] = "minute";
+ FieldAggregationType["Second"] = "second";
+ FieldAggregationType["Week"] = "week";
+ FieldAggregationType["Weekday"] = "weekday";
+ FieldAggregationType["MonthYear"] = "month-year";
+ FieldAggregationType["Mdy"] = "mdy";
+ FieldAggregationType["End"] = "end";
+ FieldAggregationType["TruncYear"] = "trunc-year";
+ FieldAggregationType["TruncQtr"] = "trunc-qtr";
+ FieldAggregationType["TruncMonth"] = "trunc-month";
+ FieldAggregationType["TruncWeek"] = "trunc-week";
+ FieldAggregationType["TruncDay"] = "trunc-day";
+ FieldAggregationType["TruncHour"] = "trunc-hour";
+ FieldAggregationType["TruncMinute"] = "trunc-minute";
+ FieldAggregationType["TruncSecond"] = "trunc-second";
+ FieldAggregationType["Quart1"] = "quart1";
+ FieldAggregationType["Quart3"] = "quart3";
+ FieldAggregationType["Skewness"] = "skewness";
+ FieldAggregationType["Kurtosis"] = "kurtosis";
+ FieldAggregationType["InOut"] = "in-out";
+ FieldAggregationType["User"] = "user";
+ })(FieldAggregationType = exports.FieldAggregationType || (exports.FieldAggregationType = {}));
+ /**
+ * Role of a field.
+ */
+ var FieldRoleType;
+ (function (FieldRoleType) {
+ FieldRoleType["Dimension"] = "dimension";
+ FieldRoleType["Measure"] = "measure";
+ FieldRoleType["Unknown"] = "unknown";
+ })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {}));
+ /**
+ * An enumeration of the valid types of filters that can be applied.
+ */
+ var FilterType;
+ (function (FilterType) {
+ FilterType["Categorical"] = "categorical";
+ FilterType["Range"] = "range";
+ FilterType["Hierarchical"] = "hierarchical";
+ FilterType["RelativeDate"] = "relative-date";
+ })(FilterType = exports.FilterType || (exports.FilterType = {}));
+ /**
+ * The different update types for applying filter
+ */
+ var FilterUpdateType;
+ (function (FilterUpdateType) {
+ FilterUpdateType["Add"] = "add";
+ FilterUpdateType["All"] = "all";
+ FilterUpdateType["Replace"] = "replace";
+ FilterUpdateType["Remove"] = "remove";
+ })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {}));
+ /**
+ * The domain type for a filter
+ */
+ var FilterDomainType;
+ (function (FilterDomainType) {
+ /**
+ * The domain values that are relevant to the specified filter
+ * i.e. the domain is restricted by a previous filter
+ */
+ FilterDomainType["Relevant"] = "relevant";
+ /**
+ * list of all possible domain values from database
+ */
+ FilterDomainType["Database"] = "database";
+ })(FilterDomainType = exports.FilterDomainType || (exports.FilterDomainType = {}));
+ /**
+ * The option for specifying which values to include for filtering
+ * Indicates what to do with null values for a given filter or mark selection call.
+ */
+ var FilterNullOption;
+ (function (FilterNullOption) {
+ FilterNullOption["NullValues"] = "null-values";
+ FilterNullOption["NonNullValues"] = "non-null-values";
+ FilterNullOption["AllValues"] = "all-values";
+ })(FilterNullOption = exports.FilterNullOption || (exports.FilterNullOption = {}));
+ /**
+ * Type of mark for a given marks card in a viz.
+ */
+ var MarkType;
+ (function (MarkType) {
+ MarkType["Bar"] = "bar";
+ MarkType["Line"] = "line";
+ MarkType["Area"] = "area";
+ MarkType["Square"] = "square";
+ MarkType["Circle"] = "circle";
+ MarkType["Shape"] = "shape";
+ MarkType["Text"] = "text";
+ MarkType["Map"] = "map";
+ MarkType["Pie"] = "pie";
+ MarkType["GanttBar"] = "gantt-bar";
+ MarkType["Polygon"] = "polygon";
+ })(MarkType = exports.MarkType || (exports.MarkType = {}));
+ /**
+ * An enumeration describing the different types of allowable values.
+ * This is used for restricting the domain of a parameter
+ */
+ var ParameterValueType;
+ (function (ParameterValueType) {
+ ParameterValueType["All"] = "all";
+ ParameterValueType["List"] = "list";
+ ParameterValueType["Range"] = "range";
+ })(ParameterValueType = exports.ParameterValueType || (exports.ParameterValueType = {}));
+ /**
+ * Date period used in filters and in parameters.
+ */
+ var PeriodType;
+ (function (PeriodType) {
+ PeriodType["Years"] = "years";
+ PeriodType["Quarters"] = "quarters";
+ PeriodType["Months"] = "months";
+ PeriodType["Weeks"] = "weeks";
+ PeriodType["Days"] = "days";
+ PeriodType["Hours"] = "hours";
+ PeriodType["Minutes"] = "minutes";
+ PeriodType["Seconds"] = "seconds";
+ })(PeriodType = exports.PeriodType || (exports.PeriodType = {}));
+ var QuickTableCalcType;
+ (function (QuickTableCalcType) {
+ QuickTableCalcType["RunningTotal"] = "running-total";
+ QuickTableCalcType["Difference"] = "difference";
+ QuickTableCalcType["PercentDifference"] = "percent-difference";
+ QuickTableCalcType["PercentOfTotal"] = "percent-of-total";
+ QuickTableCalcType["Rank"] = "rank";
+ QuickTableCalcType["Percentile"] = "percentile";
+ QuickTableCalcType["MovingAverage"] = "moving-average";
+ QuickTableCalcType["YTDTotal"] = "ytd-total";
+ QuickTableCalcType["CompoundGrowthRate"] = "compound-growth-rate";
+ QuickTableCalcType["YearOverYearGrowth"] = "year-over-year-growth";
+ QuickTableCalcType["YTDGrowth"] = "ytd-growth";
+ QuickTableCalcType["Undefined"] = "undefined";
+ })(QuickTableCalcType = exports.QuickTableCalcType || (exports.QuickTableCalcType = {}));
+ /**
+ * Enum for specifying the selection type for select marks api.
+ */
+ var SelectionUpdateType;
+ (function (SelectionUpdateType) {
+ SelectionUpdateType["Replace"] = "select-replace";
+ SelectionUpdateType["Add"] = "select-add";
+ SelectionUpdateType["Remove"] = "select-remove";
+ })(SelectionUpdateType = exports.SelectionUpdateType || (exports.SelectionUpdateType = {}));
+ /**
+ * The type of sheet a Sheet object represents
+ */
+ var SheetType;
+ (function (SheetType) {
+ SheetType["Dashboard"] = "dashboard";
+ SheetType["Story"] = "story";
+ SheetType["Worksheet"] = "worksheet";
+ })(SheetType = exports.SheetType || (exports.SheetType = {}));
+ var SortDirection;
+ (function (SortDirection) {
+ SortDirection["Increasing"] = "increasing";
+ SortDirection["Decreasing"] = "decreasing";
+ })(SortDirection = exports.SortDirection || (exports.SortDirection = {}));
+ /**
+ * Represents a certain type of event which can be listened for
+ */
+ var TableauEventType;
+ (function (TableauEventType) {
+ /** Raised when any filter has changed state.*/
+ TableauEventType["FilterChanged"] = "filter-changed";
+ /** The selected marks on a visualization has changed */
+ TableauEventType["MarkSelectionChanged"] = "mark-selection-changed";
+ /** A parameter has had its value modified */
+ TableauEventType["ParameterChanged"] = "parameter-changed";
+ })(TableauEventType = exports.TableauEventType || (exports.TableauEventType = {}));
+ var TrendLineModelType;
+ (function (TrendLineModelType) {
+ TrendLineModelType["Linear"] = "linear";
+ TrendLineModelType["Logarithmic"] = "logarithmic";
+ TrendLineModelType["Exponential"] = "exponential";
+ TrendLineModelType["Polynomial"] = "polynomial";
+ })(TrendLineModelType = exports.TrendLineModelType || (exports.TrendLineModelType = {}));
+
+
+/***/ },
+/* 21 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+ }
+ Object.defineProperty(exports, "__esModule", { value: true });
+ __export(__webpack_require__(4));
+ __export(__webpack_require__(5));
+ __export(__webpack_require__(6));
+ __export(__webpack_require__(7));
+ __export(__webpack_require__(8));
+
+
+/***/ },
+/* 22 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * Implementation of the dashboard objects - the zones in a dashboard.
+ * This does not follow the Impl pattern as it is just a property bag.
+ */
+ var DashboardObject = (function () {
+ function DashboardObject(_dashboard, _type, _position, _size, _worksheet) {
+ this._dashboard = _dashboard;
+ this._type = _type;
+ this._position = _position;
+ this._size = _size;
+ this._worksheet = _worksheet;
+ }
+ Object.defineProperty(DashboardObject.prototype, "dashboard", {
+ get: function () {
+ return this._dashboard;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DashboardObject.prototype, "type", {
+ get: function () {
+ return this._type;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DashboardObject.prototype, "position", {
+ get: function () {
+ return this._position;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DashboardObject.prototype, "size", {
+ get: function () {
+ return this._size;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DashboardObject.prototype, "worksheet", {
+ get: function () {
+ return this._worksheet;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return DashboardObject;
+ }());
+ exports.DashboardObject = DashboardObject;
+
+
+/***/ },
+/* 23 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_external_contract_1 = __webpack_require__(19);
+ var api_internal_contract_1 = __webpack_require__(21);
+ var api_utils_1 = __webpack_require__(13);
+ /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */
+ /**
+ * Maps enums used by the internal-api-contract to the enums used
+ * in the external-api-contract, which developers code against.
+ */
+ var InternalToExternalEnumMappings = (function () {
+ function InternalToExternalEnumMappings() {
+ }
+ InternalToExternalEnumMappings.extensionContext = new api_utils_1.EnumConverter((_a = {},
+ _a[api_internal_contract_1.ExtensionContext.Desktop] = api_external_contract_1.ExtensionContext.Desktop,
+ _a[api_internal_contract_1.ExtensionContext.Server] = api_external_contract_1.ExtensionContext.Server,
+ _a));
+ InternalToExternalEnumMappings.extensionMode = new api_utils_1.EnumConverter((_b = {},
+ _b[api_internal_contract_1.ExtensionMode.Authoring] = api_external_contract_1.ExtensionMode.Authoring,
+ _b[api_internal_contract_1.ExtensionMode.Viewing] = api_external_contract_1.ExtensionMode.Viewing,
+ _b));
+ InternalToExternalEnumMappings.columnType = new api_utils_1.EnumConverter((_c = {},
+ _c[api_internal_contract_1.ColumnType.Continuous] = api_external_contract_1.ColumnType.Continuous,
+ _c[api_internal_contract_1.ColumnType.Discrete] = api_external_contract_1.ColumnType.Discrete,
+ _c));
+ InternalToExternalEnumMappings.fieldAggregationType = new api_utils_1.EnumConverter((_d = {},
+ _d[api_internal_contract_1.FieldAggregationType.Attr] = api_external_contract_1.FieldAggregationType.Attr,
+ _d[api_internal_contract_1.FieldAggregationType.Avg] = api_external_contract_1.FieldAggregationType.Avg,
+ _d[api_internal_contract_1.FieldAggregationType.Count] = api_external_contract_1.FieldAggregationType.Count,
+ _d[api_internal_contract_1.FieldAggregationType.Countd] = api_external_contract_1.FieldAggregationType.Countd,
+ _d[api_internal_contract_1.FieldAggregationType.Day] = api_external_contract_1.FieldAggregationType.Day,
+ _d[api_internal_contract_1.FieldAggregationType.End] = api_external_contract_1.FieldAggregationType.End,
+ _d[api_internal_contract_1.FieldAggregationType.Hour] = api_external_contract_1.FieldAggregationType.Hour,
+ _d[api_internal_contract_1.FieldAggregationType.InOut] = api_external_contract_1.FieldAggregationType.InOut,
+ _d[api_internal_contract_1.FieldAggregationType.Kurtosis] = api_external_contract_1.FieldAggregationType.Kurtosis,
+ _d[api_internal_contract_1.FieldAggregationType.Max] = api_external_contract_1.FieldAggregationType.Max,
+ _d[api_internal_contract_1.FieldAggregationType.Mdy] = api_external_contract_1.FieldAggregationType.Mdy,
+ _d[api_internal_contract_1.FieldAggregationType.Median] = api_external_contract_1.FieldAggregationType.Median,
+ _d[api_internal_contract_1.FieldAggregationType.Min] = api_external_contract_1.FieldAggregationType.Min,
+ _d[api_internal_contract_1.FieldAggregationType.Minute] = api_external_contract_1.FieldAggregationType.Minute,
+ _d[api_internal_contract_1.FieldAggregationType.MonthYear] = api_external_contract_1.FieldAggregationType.MonthYear,
+ _d[api_internal_contract_1.FieldAggregationType.None] = api_external_contract_1.FieldAggregationType.None,
+ _d[api_internal_contract_1.FieldAggregationType.Qtr] = api_external_contract_1.FieldAggregationType.Qtr,
+ _d[api_internal_contract_1.FieldAggregationType.Quart1] = api_external_contract_1.FieldAggregationType.Quart1,
+ _d[api_internal_contract_1.FieldAggregationType.Quart3] = api_external_contract_1.FieldAggregationType.Quart3,
+ _d[api_internal_contract_1.FieldAggregationType.Second] = api_external_contract_1.FieldAggregationType.Second,
+ _d[api_internal_contract_1.FieldAggregationType.Skewness] = api_external_contract_1.FieldAggregationType.Skewness,
+ _d[api_internal_contract_1.FieldAggregationType.Stdev] = api_external_contract_1.FieldAggregationType.Stdev,
+ _d[api_internal_contract_1.FieldAggregationType.Stdevp] = api_external_contract_1.FieldAggregationType.Stdevp,
+ _d[api_internal_contract_1.FieldAggregationType.Sum] = api_external_contract_1.FieldAggregationType.Sum,
+ _d[api_internal_contract_1.FieldAggregationType.TruncDay] = api_external_contract_1.FieldAggregationType.TruncDay,
+ _d[api_internal_contract_1.FieldAggregationType.TruncHour] = api_external_contract_1.FieldAggregationType.TruncHour,
+ _d[api_internal_contract_1.FieldAggregationType.TruncMinute] = api_external_contract_1.FieldAggregationType.TruncMinute,
+ _d[api_internal_contract_1.FieldAggregationType.TruncMonth] = api_external_contract_1.FieldAggregationType.TruncMonth,
+ _d[api_internal_contract_1.FieldAggregationType.TruncQtr] = api_external_contract_1.FieldAggregationType.TruncQtr,
+ _d[api_internal_contract_1.FieldAggregationType.TruncSecond] = api_external_contract_1.FieldAggregationType.TruncSecond,
+ _d[api_internal_contract_1.FieldAggregationType.TruncWeek] = api_external_contract_1.FieldAggregationType.TruncWeek,
+ _d[api_internal_contract_1.FieldAggregationType.TruncYear] = api_external_contract_1.FieldAggregationType.TruncYear,
+ _d[api_internal_contract_1.FieldAggregationType.User] = api_external_contract_1.FieldAggregationType.User,
+ _d[api_internal_contract_1.FieldAggregationType.Var] = api_external_contract_1.FieldAggregationType.Var,
+ _d[api_internal_contract_1.FieldAggregationType.Varp] = api_external_contract_1.FieldAggregationType.Varp,
+ _d[api_internal_contract_1.FieldAggregationType.Week] = api_external_contract_1.FieldAggregationType.Week,
+ _d[api_internal_contract_1.FieldAggregationType.Weekday] = api_external_contract_1.FieldAggregationType.Weekday,
+ _d[api_internal_contract_1.FieldAggregationType.Year] = api_external_contract_1.FieldAggregationType.Year,
+ _d));
+ InternalToExternalEnumMappings.fieldRoleType = new api_utils_1.EnumConverter((_e = {},
+ _e[api_internal_contract_1.FieldRoleType.Dimension] = api_external_contract_1.FieldRoleType.Dimension,
+ _e[api_internal_contract_1.FieldRoleType.Measure] = api_external_contract_1.FieldRoleType.Measure,
+ _e[api_internal_contract_1.FieldRoleType.Unknown] = api_external_contract_1.FieldRoleType.Unknown,
+ _e));
+ InternalToExternalEnumMappings.sheetType = new api_utils_1.EnumConverter((_f = {},
+ _f[api_internal_contract_1.SheetType.Dashboard] = api_external_contract_1.SheetType.Dashboard,
+ _f[api_internal_contract_1.SheetType.Story] = api_external_contract_1.SheetType.Story,
+ _f[api_internal_contract_1.SheetType.Worksheet] = api_external_contract_1.SheetType.Worksheet,
+ _f));
+ InternalToExternalEnumMappings.dashboardObjectType = new api_utils_1.EnumConverter((_g = {},
+ _g[api_internal_contract_1.DashboardObjectType.Extension] = api_external_contract_1.DashboardObjectType.Extension,
+ _g[api_internal_contract_1.DashboardObjectType.Blank] = api_external_contract_1.DashboardObjectType.Blank,
+ _g[api_internal_contract_1.DashboardObjectType.Image] = api_external_contract_1.DashboardObjectType.Image,
+ _g[api_internal_contract_1.DashboardObjectType.Legend] = api_external_contract_1.DashboardObjectType.Legend,
+ _g[api_internal_contract_1.DashboardObjectType.PageFilter] = api_external_contract_1.DashboardObjectType.PageFilter,
+ _g[api_internal_contract_1.DashboardObjectType.ParameterControl] = api_external_contract_1.DashboardObjectType.ParameterControl,
+ _g[api_internal_contract_1.DashboardObjectType.QuickFilter] = api_external_contract_1.DashboardObjectType.QuickFilter,
+ _g[api_internal_contract_1.DashboardObjectType.Text] = api_external_contract_1.DashboardObjectType.Text,
+ _g[api_internal_contract_1.DashboardObjectType.Title] = api_external_contract_1.DashboardObjectType.Title,
+ _g[api_internal_contract_1.DashboardObjectType.WebPage] = api_external_contract_1.DashboardObjectType.WebPage,
+ _g[api_internal_contract_1.DashboardObjectType.Worksheet] = api_external_contract_1.DashboardObjectType.Worksheet,
+ _g));
+ InternalToExternalEnumMappings.dataType = new api_utils_1.EnumConverter((_h = {},
+ _h[api_internal_contract_1.DataType.Bool] = api_external_contract_1.DataType.Bool,
+ _h[api_internal_contract_1.DataType.Date] = api_external_contract_1.DataType.Date,
+ _h[api_internal_contract_1.DataType.DateTime] = api_external_contract_1.DataType.DateTime,
+ _h[api_internal_contract_1.DataType.Float] = api_external_contract_1.DataType.Float,
+ _h[api_internal_contract_1.DataType.Int] = api_external_contract_1.DataType.Int,
+ _h[api_internal_contract_1.DataType.String] = api_external_contract_1.DataType.String,
+ _h));
+ InternalToExternalEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_j = {},
+ _j[api_internal_contract_1.FilterUpdateType.Add] = api_external_contract_1.FilterUpdateType.Add,
+ _j[api_internal_contract_1.FilterUpdateType.All] = api_external_contract_1.FilterUpdateType.All,
+ _j[api_internal_contract_1.FilterUpdateType.Remove] = api_external_contract_1.FilterUpdateType.Remove,
+ _j[api_internal_contract_1.FilterUpdateType.Replace] = api_external_contract_1.FilterUpdateType.Replace,
+ _j));
+ InternalToExternalEnumMappings.allowableValues = new api_utils_1.EnumConverter((_k = {},
+ _k[api_internal_contract_1.DomainRestrictionType.All] = api_external_contract_1.ParameterValueType.All,
+ _k[api_internal_contract_1.DomainRestrictionType.List] = api_external_contract_1.ParameterValueType.List,
+ _k[api_internal_contract_1.DomainRestrictionType.Range] = api_external_contract_1.ParameterValueType.Range,
+ _k));
+ InternalToExternalEnumMappings.dateStepPeriod = new api_utils_1.EnumConverter((_l = {},
+ _l[api_internal_contract_1.DateStepPeriod.Years] = api_external_contract_1.PeriodType.Years,
+ _l[api_internal_contract_1.DateStepPeriod.Quarters] = api_external_contract_1.PeriodType.Quarters,
+ _l[api_internal_contract_1.DateStepPeriod.Months] = api_external_contract_1.PeriodType.Months,
+ _l[api_internal_contract_1.DateStepPeriod.Weeks] = api_external_contract_1.PeriodType.Weeks,
+ _l[api_internal_contract_1.DateStepPeriod.Days] = api_external_contract_1.PeriodType.Days,
+ _l[api_internal_contract_1.DateStepPeriod.Hours] = api_external_contract_1.PeriodType.Hours,
+ _l[api_internal_contract_1.DateStepPeriod.Minutes] = api_external_contract_1.PeriodType.Minutes,
+ _l[api_internal_contract_1.DateStepPeriod.Seconds] = api_external_contract_1.PeriodType.Seconds,
+ _l));
+ InternalToExternalEnumMappings.dateRangeType = new api_utils_1.EnumConverter((_m = {},
+ _m[api_internal_contract_1.DateRangeType.Current] = api_external_contract_1.DateRangeType.Current,
+ _m[api_internal_contract_1.DateRangeType.Last] = api_external_contract_1.DateRangeType.Last,
+ _m[api_internal_contract_1.DateRangeType.LastN] = api_external_contract_1.DateRangeType.LastN,
+ _m[api_internal_contract_1.DateRangeType.Next] = api_external_contract_1.DateRangeType.Next,
+ _m[api_internal_contract_1.DateRangeType.NextN] = api_external_contract_1.DateRangeType.NextN,
+ _m[api_internal_contract_1.DateRangeType.ToDate] = api_external_contract_1.DateRangeType.ToDate,
+ _m));
+ InternalToExternalEnumMappings.filterType = new api_utils_1.EnumConverter((_o = {},
+ _o[api_internal_contract_1.FilterType.Categorical] = api_external_contract_1.FilterType.Categorical,
+ _o[api_internal_contract_1.FilterType.Range] = api_external_contract_1.FilterType.Range,
+ _o[api_internal_contract_1.FilterType.RelativeDate] = api_external_contract_1.FilterType.RelativeDate,
+ _o[api_internal_contract_1.FilterType.Hierarchical] = api_external_contract_1.FilterType.Hierarchical,
+ _o));
+ return InternalToExternalEnumMappings;
+ }());
+ exports.InternalToExternalEnumMappings = InternalToExternalEnumMappings;
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
+ /* tslint:enable:typedef */
+
+
+/***/ },
+/* 24 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Point = (function () {
+ function Point(_x, _y) {
+ this._x = _x;
+ this._y = _y;
+ }
+ Object.defineProperty(Point.prototype, "x", {
+ get: function () {
+ return this._x;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Point.prototype, "y", {
+ get: function () {
+ return this._y;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Point;
+ }());
+ exports.Point = Point;
+
+
+/***/ },
+/* 25 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Size = (function () {
+ function Size(_height, _width) {
+ this._height = _height;
+ this._width = _width;
+ }
+ Object.defineProperty(Size.prototype, "height", {
+ get: function () {
+ return this._height;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Size.prototype, "width", {
+ get: function () {
+ return this._width;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Size;
+ }());
+ exports.Size = Size;
+
+
+/***/ },
+/* 26 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ })();
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_utils_1 = __webpack_require__(13);
+ var Sheet_1 = __webpack_require__(11);
+ var Worksheet = (function (_super) {
+ __extends(Worksheet, _super);
+ function Worksheet(_worksheetImpl) {
+ var _this = _super.call(this, _worksheetImpl) || this;
+ _this._worksheetImpl = _worksheetImpl;
+ // Call to initialize events and then call down to the event listener manager to handle things
+ _this._worksheetImpl.initializeEvents(_this).forEach(function (e) { return _this.addNewEventType(e); });
+ return _this;
+ }
+ Object.defineProperty(Worksheet.prototype, "parentDashboard", {
+ get: function () {
+ return this._worksheetImpl.parentDashboard;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Worksheet.prototype.applyFilterAsync = function (fieldName, values, updateType, options) {
+ return this._worksheetImpl.applyFilterAsync(fieldName, values, updateType, options);
+ };
+ Worksheet.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) {
+ return this._worksheetImpl.applyRangeFilterAsync(fieldName, filterOptions);
+ };
+ Worksheet.prototype.clearFilterAsync = function (fieldName) {
+ return this._worksheetImpl.clearFilterAsync(fieldName);
+ };
+ Worksheet.prototype.getAnalyticObjectsAsync = function () {
+ throw api_utils_1.TableauException.apiNotImplemented(['getAnalyticObjectsAsync']);
+ };
+ Worksheet.prototype.getDataSourcesAsync = function () {
+ return this._worksheetImpl.getDataSourcesAsync();
+ };
+ Worksheet.prototype.getEncodingsAsync = function () {
+ throw api_utils_1.TableauException.apiNotImplemented(['getEncodingsAsync']);
+ };
+ Worksheet.prototype.getFiltersAsync = function () {
+ return this._worksheetImpl.getFiltersAsync();
+ };
+ Worksheet.prototype.getSelectedMarksAsync = function () {
+ return this._worksheetImpl.getSelectedMarksAsync();
+ };
+ Worksheet.prototype.getHighlightedMarksAsync = function () {
+ return this._worksheetImpl.getHighlightedMarksAsync();
+ };
+ Worksheet.prototype.getSummaryDataAsync = function (options) {
+ return this._worksheetImpl.getSummaryDataAsync(options);
+ };
+ Worksheet.prototype.getUnderlyingDataAsync = function (options) {
+ return this._worksheetImpl.getUnderlyingDataAsync(options);
+ };
+ Worksheet.prototype.clearSelectedMarksAsync = function () {
+ return this._worksheetImpl.clearSelectedMarksAsync();
+ };
+ Worksheet.prototype.selectMarksByIDAsync = function (marksInfo, updateType) {
+ return this._worksheetImpl.selectMarksByIdAsync(marksInfo, updateType);
+ };
+ Worksheet.prototype.selectMarksByValueAsync = function (selections, selectionUpdateType) {
+ return this._worksheetImpl.selectMarksByValueAsync(selections, selectionUpdateType);
+ };
+ Worksheet.prototype.selectMarksByIdAsync = function (selections, selectionUpdateType) {
+ return this._worksheetImpl.selectMarksByIdAsync(selections, selectionUpdateType);
+ };
+ return Worksheet;
+ }(Sheet_1.Sheet));
+ exports.Worksheet = Worksheet;
+
+
+/***/ },
+/* 27 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var ServiceRegistry_1 = __webpack_require__(28);
+ var SheetImpl = (function () {
+ function SheetImpl(_sheetInfoImpl) {
+ this._sheetInfoImpl = _sheetInfoImpl;
+ }
+ Object.defineProperty(SheetImpl.prototype, "name", {
+ get: function () {
+ return this._sheetInfoImpl.name;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SheetImpl.prototype, "sheetType", {
+ get: function () {
+ return this._sheetInfoImpl.sheetType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SheetImpl.prototype, "sheetPath", {
+ get: function () {
+ return this._sheetInfoImpl.sheetPath;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SheetImpl.prototype, "size", {
+ get: function () {
+ return this._sheetInfoImpl.sheetSize;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SheetImpl.prototype.findParameterAsync = function (parameterName, sheet) {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */);
+ return service.findParameterByNameAsync(parameterName, sheet);
+ };
+ SheetImpl.prototype.getParametersAsync = function (sheet) {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */);
+ return service.getParametersForSheetAsync(this.sheetPath, sheet);
+ };
+ return SheetImpl;
+ }());
+ exports.SheetImpl = SheetImpl;
+
+
+/***/ },
+/* 28 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_utils_1 = __webpack_require__(13);
+ var ServiceRegistryImpl = (function () {
+ function ServiceRegistryImpl() {
+ this._services = {};
+ }
+ ServiceRegistryImpl.prototype.registerService = function (service) {
+ this._services[service.serviceName] = service;
+ };
+ ServiceRegistryImpl.prototype.getService = function (serviceName) {
+ if (!this._services.hasOwnProperty(serviceName)) {
+ throw api_utils_1.TableauException.error(ServiceRegistryImpl.SERVICE_NOT_REGISTERED, [serviceName]);
+ }
+ return this._services[serviceName];
+ };
+ ServiceRegistryImpl.SERVICE_NOT_REGISTERED = 'No Service %1 is registered';
+ return ServiceRegistryImpl;
+ }());
+ /**
+ * static class used for getting access to the single instance
+ * of the ApiServiceRegistry
+ */
+ var ApiServiceRegistry = (function () {
+ // Private to avoid anyone constructing this
+ function ApiServiceRegistry() {
+ }
+ Object.defineProperty(ApiServiceRegistry, "instance", {
+ /**
+ * Gets the singleton instance of the ServiceRegistry
+ */
+ get: function () {
+ if (!window.__tableauApiServiceRegistry) {
+ ApiServiceRegistry.setInstance(new ServiceRegistryImpl());
+ }
+ if (!window.__tableauApiServiceRegistry) {
+ throw api_utils_1.TableauException.error(ApiServiceRegistry.SERVICE_REGISTRY_FAILED);
+ }
+ return window.__tableauApiServiceRegistry;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Helper method to override the registry instance. Can be used by unit tests
+ *
+ * @param {ServiceRegistry} serviceRegistry The new registry
+ */
+ ApiServiceRegistry.setInstance = function (serviceRegistry) {
+ window.__tableauApiServiceRegistry = serviceRegistry;
+ };
+ ApiServiceRegistry.SERVICE_REGISTRY_FAILED = 'Assigning service registry failed';
+ return ApiServiceRegistry;
+ }());
+ exports.ApiServiceRegistry = ApiServiceRegistry;
+
+
+/***/ },
+/* 29 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_external_contract_1 = __webpack_require__(19);
+ var SheetInfoImpl = (function () {
+ function SheetInfoImpl(_name, _sheetType, _sheetSize) {
+ this._name = _name;
+ this._sheetType = _sheetType;
+ this._sheetSize = _sheetSize;
+ }
+ Object.defineProperty(SheetInfoImpl.prototype, "name", {
+ get: function () {
+ return this._name;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SheetInfoImpl.prototype, "sheetSize", {
+ get: function () {
+ return this._sheetSize;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SheetInfoImpl.prototype, "sheetType", {
+ get: function () {
+ return this._sheetType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SheetInfoImpl.prototype, "sheetPath", {
+ get: function () {
+ return {
+ sheetName: this.name,
+ isDashboard: this.sheetType === api_external_contract_1.SheetType.Dashboard
+ // TODO - Stories
+ };
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SheetInfoImpl;
+ }());
+ exports.SheetInfoImpl = SheetInfoImpl;
+
+
+/***/ },
+/* 30 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ })();
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Contract = __webpack_require__(19);
+ var api_internal_contract_1 = __webpack_require__(21);
+ var DataSource_1 = __webpack_require__(31);
+ var DataSourceImpl_1 = __webpack_require__(32);
+ var SheetImpl_1 = __webpack_require__(27);
+ var SingleEventManagerImpl_1 = __webpack_require__(37);
+ var FilterChangedEvent_1 = __webpack_require__(38);
+ var MarksSelectedEvent_1 = __webpack_require__(42);
+ var GetDataService_1 = __webpack_require__(43);
+ var ServiceRegistry_1 = __webpack_require__(28);
+ var visualIdsAreEqual = function (a, b) {
+ return a && b &&
+ a.worksheet === b.worksheet &&
+ a.dashboard === b.dashboard &&
+ a.storyboard === b.storyboard &&
+ a.storyPointID === b.storyPointID &&
+ a.flipboardZoneID === b.flipboardZoneID;
+ };
+ var WorksheetImpl = (function (_super) {
+ __extends(WorksheetImpl, _super);
+ function WorksheetImpl(sheetInfoImpl, _visualId, _parentDashboard) {
+ var _this = _super.call(this, sheetInfoImpl) || this;
+ _this._visualId = _visualId;
+ _this._parentDashboard = _parentDashboard;
+ return _this;
+ }
+ Object.defineProperty(WorksheetImpl.prototype, "parentDashboard", {
+ get: function () {
+ return this._parentDashboard;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Helper method which goes through and registers each event type this impl knows about
+ * with the NotificationService. It returns an array of SingleEventManager objects which
+ * can then be passed to an EventListenerManager to handle user registration / unregistration.
+ *
+ * @param {Worksheet} worksheet The worksheet object which will be included with the event notifications
+ * @returns {Array} Collection of event managers to pass to an EventListenerManager
+ */
+ WorksheetImpl.prototype.initializeEvents = function (worksheet) {
+ var _this = this;
+ var results = new Array();
+ var notificationService;
+ try {
+ notificationService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("notification-service" /* Notification */);
+ }
+ catch (e) {
+ // If we don't have this service registered, just return
+ return results;
+ }
+ // Initialize all of the event managers we'll need (one for each event type)
+ var marksEvent = new SingleEventManagerImpl_1.SingleEventManagerImpl(Contract.TableauEventType.MarkSelectionChanged);
+ notificationService.registerHandler(api_internal_contract_1.NotificationId.SelectedMarksChanged, function (model) {
+ var visualId = model;
+ return visualIdsAreEqual(visualId, _this.visualId);
+ }, function (viz) {
+ marksEvent.triggerEvent(function () { return new MarksSelectedEvent_1.MarksSelectedEvent(worksheet); });
+ });
+ var filterEvent = new SingleEventManagerImpl_1.SingleEventManagerImpl(Contract.TableauEventType.FilterChanged);
+ notificationService.registerHandler(api_internal_contract_1.NotificationId.FilterChanged, function (model) {
+ var filterEventResponse = model;
+ return _this.visualId.worksheet === filterEventResponse.visualId.worksheet;
+ }, function (event) {
+ filterEvent.triggerEvent(function () { return new FilterChangedEvent_1.FilterChangedEvent(worksheet, event.fieldName); });
+ });
+ results.push(marksEvent);
+ results.push(filterEvent);
+ // TODO - other event types
+ return results;
+ };
+ Object.defineProperty(WorksheetImpl.prototype, "visualId", {
+ get: function () {
+ return this._visualId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ WorksheetImpl.prototype.applyFilterAsync = function (fieldName, values, updateType, options) {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */);
+ return service.applyFilterAsync(this.visualId, fieldName, values, updateType, options);
+ };
+ WorksheetImpl.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */);
+ return service.applyRangeFilterAsync(this.visualId, fieldName, filterOptions);
+ };
+ WorksheetImpl.prototype.clearFilterAsync = function (fieldName) {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */);
+ return service.clearFilterAsync(this.visualId, fieldName);
+ };
+ WorksheetImpl.prototype.getDataSourcesAsync = function () {
+ var _this = this;
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */);
+ return service.getDataSourcesAsync().then(function (result) {
+ var dataSchema = result;
+ var worksheetDataSourceInfo = dataSchema.worksheetDataSchemaMap[_this.name];
+ var dataSources = [];
+ // First, add the primary datasource. By convention, it comes first in the returned array.
+ var primaryId = worksheetDataSourceInfo.primaryDataSource;
+ dataSources.push(_this.createDataSourceFromInfo(dataSchema.dataSources[primaryId]));
+ // Then, loop through any secondary data sources and add them.
+ for (var _i = 0, _a = worksheetDataSourceInfo.referencedDataSourceList; _i < _a.length; _i++) {
+ var secondaryId = _a[_i];
+ if (secondaryId !== primaryId) {
+ dataSources.push(_this.createDataSourceFromInfo(dataSchema.dataSources[secondaryId]));
+ }
+ }
+ return dataSources;
+ });
+ };
+ WorksheetImpl.prototype.getFiltersAsync = function () {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */);
+ return service.getFiltersAsync(this.visualId);
+ };
+ WorksheetImpl.prototype.getSelectedMarksAsync = function () {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */);
+ return service.getSelectedMarksAsync(this.visualId);
+ };
+ WorksheetImpl.prototype.getHighlightedMarksAsync = function () {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */);
+ return service.getHighlightedMarksAsync(this.visualId);
+ };
+ WorksheetImpl.prototype.getSummaryDataAsync = function (options) {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */);
+ options = options || {};
+ return service.getUnderlyingDataAsync(this.visualId, GetDataService_1.GetDataType.Summary, !!options.ignoreAliases, !!options.ignoreSelection, true, 0);
+ };
+ WorksheetImpl.prototype.getUnderlyingDataAsync = function (options) {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */);
+ options = options || {};
+ return service.getUnderlyingDataAsync(this.visualId, GetDataService_1.GetDataType.Underlying, !!options.ignoreAliases, !!options.ignoreSelection, !!options.includeAllColumns, options.maxRows || 0);
+ };
+ WorksheetImpl.prototype.clearSelectedMarksAsync = function () {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */);
+ return service.clearSelectedMarksAsync(this.visualId);
+ };
+ WorksheetImpl.prototype.selectMarksByValueAsync = function (selections, selectionUpdateType) {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */);
+ return service.selectMarksByValueAsync(this.visualId, selections, selectionUpdateType);
+ };
+ WorksheetImpl.prototype.selectMarksByIdAsync = function (selections, selectionUpdateType) {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */);
+ return service.selectMarksByIdAsync(this.visualId, selections, selectionUpdateType);
+ };
+ WorksheetImpl.prototype.createDataSourceFromInfo = function (dataSourceInfo) {
+ var dataSourceImpl = new DataSourceImpl_1.DataSourceImpl(dataSourceInfo);
+ var dataSource = new DataSource_1.DataSource(dataSourceImpl);
+ dataSourceImpl.initializeWithPublicInterfaces(dataSource);
+ return dataSource;
+ };
+ return WorksheetImpl;
+ }(SheetImpl_1.SheetImpl));
+ exports.WorksheetImpl = WorksheetImpl;
+
+
+/***/ },
+/* 31 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var DataSource = (function () {
+ function DataSource(_dataSourceImpl) {
+ this._dataSourceImpl = _dataSourceImpl;
+ }
+ Object.defineProperty(DataSource.prototype, "name", {
+ get: function () {
+ return this._dataSourceImpl.name;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataSource.prototype, "id", {
+ get: function () {
+ return this._dataSourceImpl.id;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataSource.prototype, "fields", {
+ get: function () {
+ return this._dataSourceImpl.fields;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataSource.prototype, "extractUpdateTime", {
+ get: function () {
+ return this._dataSourceImpl.extractUpdateTime;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataSource.prototype, "isExtract", {
+ get: function () {
+ return this._dataSourceImpl.isExtract;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ DataSource.prototype.refreshAsync = function () {
+ return this._dataSourceImpl.refreshAsync();
+ };
+ DataSource.prototype.getActiveTablesAsync = function () {
+ return this._dataSourceImpl.getActiveTablesAsync();
+ };
+ DataSource.prototype.getConnectionSummariesAsync = function () {
+ return this._dataSourceImpl.getConnectionSummariesAsync();
+ };
+ DataSource.prototype.getUnderlyingDataAsync = function (options) {
+ return this._dataSourceImpl.getUnderlyingDataAsync(options);
+ };
+ return DataSource;
+ }());
+ exports.DataSource = DataSource;
+
+
+/***/ },
+/* 32 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var FieldImpl_1 = __webpack_require__(33);
+ var ConnectionSummary_1 = __webpack_require__(34);
+ var Field_1 = __webpack_require__(35);
+ var TableSummary_1 = __webpack_require__(36);
+ var ServiceRegistry_1 = __webpack_require__(28);
+ var DataSourceImpl = (function () {
+ function DataSourceImpl(_dataSourceInfo) {
+ var _this = this;
+ this._dataSourceInfo = _dataSourceInfo;
+ this._fields = _dataSourceInfo.fields.map(function (fieldModel) {
+ var fieldImpl = new FieldImpl_1.FieldImpl(fieldModel, _this);
+ return new Field_1.Field(fieldImpl);
+ });
+ }
+ Object.defineProperty(DataSourceImpl.prototype, "name", {
+ get: function () {
+ return this._dataSourceInfo.name;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataSourceImpl.prototype, "id", {
+ get: function () {
+ return this._dataSourceInfo.id;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataSourceImpl.prototype, "extractUpdateTime", {
+ get: function () {
+ return this._dataSourceInfo.extractUpdateTime;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataSourceImpl.prototype, "fields", {
+ get: function () {
+ return this._fields;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataSourceImpl.prototype, "isExtract", {
+ get: function () {
+ return this._dataSourceInfo.isExtract;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ DataSourceImpl.prototype.refreshAsync = function () {
+ var dataSourceService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */);
+ return dataSourceService.refreshAsync(this._dataSourceInfo.id);
+ };
+ DataSourceImpl.prototype.getConnectionSummariesAsync = function () {
+ var dataSourceService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */);
+ return dataSourceService.getConnectionSummariesAsync(this._dataSourceInfo.id).then(function (summaries) {
+ return summaries.map(function (summary) { return new ConnectionSummary_1.ConnectionSummary(summary); });
+ });
+ };
+ DataSourceImpl.prototype.getActiveTablesAsync = function () {
+ var dataSourceService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */);
+ return dataSourceService.getActiveTablesAsync(this._dataSourceInfo.id).then(function (tableInfos) {
+ return tableInfos.map(function (tableInfo) { return new TableSummary_1.TableSummary(tableInfo); });
+ });
+ };
+ DataSourceImpl.prototype.getUnderlyingDataAsync = function (options) {
+ var defaultOptions = {
+ ignoreAliases: false,
+ maxRows: 10000,
+ columnsToInclude: [],
+ };
+ options = options || {};
+ var getDataService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */);
+ return getDataService.getDataSourceDataAsync(this.id, !!options.ignoreAliases, options.maxRows || defaultOptions.maxRows, options.columnsToInclude || defaultOptions.columnsToInclude);
+ };
+ DataSourceImpl.prototype.initializeWithPublicInterfaces = function (dataSource) {
+ this._fields = this._dataSourceInfo.fields.map(function (fieldModel) {
+ var fieldImpl = new FieldImpl_1.FieldImpl(fieldModel, dataSource);
+ return new Field_1.Field(fieldImpl);
+ });
+ };
+ return DataSourceImpl;
+ }());
+ exports.DataSourceImpl = DataSourceImpl;
+
+
+/***/ },
+/* 33 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var InternalToExternalEnumMappings_1 = __webpack_require__(23);
+ var FieldImpl = (function () {
+ function FieldImpl(_fieldInfo, _parentDataSource) {
+ this._fieldInfo = _fieldInfo;
+ this._parentDataSource = _parentDataSource;
+ }
+ Object.defineProperty(FieldImpl.prototype, "name", {
+ get: function () {
+ return this._fieldInfo.name;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(FieldImpl.prototype, "id", {
+ get: function () {
+ return this._fieldInfo.id;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(FieldImpl.prototype, "description", {
+ get: function () {
+ return this._fieldInfo.description;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(FieldImpl.prototype, "aggregation", {
+ get: function () {
+ return InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.fieldAggregationType.convert(this._fieldInfo.aggregation);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(FieldImpl.prototype, "dataSource", {
+ get: function () {
+ return this._parentDataSource;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(FieldImpl.prototype, "role", {
+ get: function () {
+ return InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.fieldRoleType.convert(this._fieldInfo.role);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(FieldImpl.prototype, "isHidden", {
+ get: function () {
+ return this._fieldInfo.isHidden;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(FieldImpl.prototype, "isGenerated", {
+ get: function () {
+ return this._fieldInfo.isGenerated;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(FieldImpl.prototype, "isCalculatedField", {
+ get: function () {
+ return this._fieldInfo.isCalculatedField;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(FieldImpl.prototype, "isCombinedField", {
+ get: function () {
+ return this._fieldInfo.isCombinedField;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ FieldImpl.prototype.getCalculatedFieldAsync = function () {
+ throw new Error('Field getCalculatedFieldAsync method not yet implemented.');
+ };
+ return FieldImpl;
+ }());
+ exports.FieldImpl = FieldImpl;
+
+
+/***/ },
+/* 34 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * Implementation of a connection summary.
+ * This does not follow the Impl pattern as it is just a property bag.
+ */
+ var ConnectionSummary = (function () {
+ function ConnectionSummary(_connectionInfo) {
+ this._connectionInfo = _connectionInfo;
+ }
+ Object.defineProperty(ConnectionSummary.prototype, "name", {
+ get: function () {
+ return this._connectionInfo.name;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionSummary.prototype, "id", {
+ get: function () {
+ return this._connectionInfo.id;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionSummary.prototype, "serverURI", {
+ get: function () {
+ return this._connectionInfo.serverURI;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionSummary.prototype, "type", {
+ get: function () {
+ return this._connectionInfo.type;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConnectionSummary;
+ }());
+ exports.ConnectionSummary = ConnectionSummary;
+
+
+/***/ },
+/* 35 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_utils_1 = __webpack_require__(13);
+ var Field = (function () {
+ function Field(_fieldImpl) {
+ this._fieldImpl = _fieldImpl;
+ }
+ Object.defineProperty(Field.prototype, "name", {
+ get: function () {
+ return this._fieldImpl.name;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Field.prototype, "id", {
+ get: function () {
+ return this._fieldImpl.id;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Field.prototype, "description", {
+ get: function () {
+ return this._fieldImpl.description;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Field.prototype, "aggregation", {
+ get: function () {
+ return this._fieldImpl.aggregation;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Field.prototype, "dataSource", {
+ get: function () {
+ return this._fieldImpl.dataSource;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Field.prototype, "role", {
+ get: function () {
+ return this._fieldImpl.role;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Field.prototype, "isHidden", {
+ get: function () {
+ return this._fieldImpl.isHidden;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Field.prototype, "isGenerated", {
+ get: function () {
+ return this._fieldImpl.isGenerated;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Field.prototype, "isCalculatedField", {
+ get: function () {
+ return this._fieldImpl.isCalculatedField;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Field.prototype, "columnType", {
+ get: function () {
+ throw api_utils_1.TableauException.apiNotImplemented(['Field.columnType']);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Field.prototype, "isCombinedField", {
+ get: function () {
+ return this._fieldImpl.isCombinedField;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Field.prototype.getCalculatedFieldAsync = function () {
+ return this._fieldImpl.getCalculatedFieldAsync();
+ };
+ return Field;
+ }());
+ exports.Field = Field;
+
+
+/***/ },
+/* 36 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * Implementation of a table summary.
+ * This does not follow the Impl pattern as it is just a property bag.
+ */
+ var TableSummary = (function () {
+ function TableSummary(_tableInfo) {
+ this._tableInfo = _tableInfo;
+ }
+ Object.defineProperty(TableSummary.prototype, "name", {
+ get: function () {
+ return this._tableInfo.name;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TableSummary.prototype, "id", {
+ get: function () {
+ return this._tableInfo.id;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TableSummary.prototype, "connectionId", {
+ get: function () {
+ return this._tableInfo.connectionId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TableSummary.prototype, "customSQL", {
+ get: function () {
+ return this._tableInfo.customSQL;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TableSummary;
+ }());
+ exports.TableSummary = TableSummary;
+
+
+/***/ },
+/* 37 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * This class implements the SingleEventManager interface for a single type of Tableau event
+ *
+ * @template TEventType The Tableau event type this class specializes
+ */
+ var SingleEventManagerImpl = (function () {
+ function SingleEventManagerImpl(eventType) {
+ this._eventType = eventType;
+ this._handlers = [];
+ }
+ Object.defineProperty(SingleEventManagerImpl.prototype, "eventType", {
+ get: function () {
+ return this._eventType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SingleEventManagerImpl.prototype.addEventListener = function (handler) {
+ var _this = this;
+ this._handlers.push(handler);
+ return function () { return _this.removeEventListener(handler); };
+ };
+ SingleEventManagerImpl.prototype.removeEventListener = function (handler) {
+ var beforeCount = this._handlers.length;
+ this._handlers = this._handlers.filter(function (h) { return h !== handler; });
+ return beforeCount > this._handlers.length;
+ };
+ SingleEventManagerImpl.prototype.triggerEvent = function (eventGenerator) {
+ for (var _i = 0, _a = this._handlers; _i < _a.length; _i++) {
+ var handler = _a[_i];
+ try {
+ var eventModel = eventGenerator();
+ handler(eventModel);
+ }
+ catch (e) {
+ // Since this handler could be outside our control, just catch anything it throws and continue on
+ continue;
+ }
+ }
+ };
+ return SingleEventManagerImpl;
+ }());
+ exports.SingleEventManagerImpl = SingleEventManagerImpl;
+
+
+/***/ },
+/* 38 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ })();
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Contract = __webpack_require__(19);
+ var api_utils_1 = __webpack_require__(13);
+ var TableauWorksheetEvent_1 = __webpack_require__(39);
+ var FilterChangedEvent = (function (_super) {
+ __extends(FilterChangedEvent, _super);
+ function FilterChangedEvent(worksheet, _fieldName) {
+ var _this = _super.call(this, Contract.TableauEventType.FilterChanged, worksheet) || this;
+ _this._fieldName = _fieldName;
+ return _this;
+ }
+ Object.defineProperty(FilterChangedEvent.prototype, "fieldName", {
+ get: function () {
+ return this._fieldName;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ FilterChangedEvent.prototype.getFilterAsync = function () {
+ var _this = this;
+ return this._worksheet.getFiltersAsync().then(function (filters) {
+ // TODO: Filtering of the filters should eventually be done platform side.
+ var eventedFilter = filters.find(function (filter) { return (filter.fieldName === _this._fieldName); });
+ if (!eventedFilter) {
+ // We shouldn't hit this unless the filter was removed from the worksheet
+ // after the event was raised.
+ throw api_utils_1.TableauException.internalError(['Filter no longer found in worksheet.']);
+ }
+ return eventedFilter;
+ });
+ };
+ return FilterChangedEvent;
+ }(TableauWorksheetEvent_1.TableauWorksheetEvent));
+ exports.FilterChangedEvent = FilterChangedEvent;
+
+
+/***/ },
+/* 39 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ })();
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var TableauSheetEvent_1 = __webpack_require__(40);
+ var TableauWorksheetEvent = (function (_super) {
+ __extends(TableauWorksheetEvent, _super);
+ function TableauWorksheetEvent(type, _worksheet) {
+ var _this = _super.call(this, type, _worksheet) || this;
+ _this._worksheet = _worksheet;
+ return _this;
+ }
+ Object.defineProperty(TableauWorksheetEvent.prototype, "worksheet", {
+ get: function () {
+ return this._worksheet;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TableauWorksheetEvent;
+ }(TableauSheetEvent_1.TableauSheetEvent));
+ exports.TableauWorksheetEvent = TableauWorksheetEvent;
+
+
+/***/ },
+/* 40 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ })();
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var TableauEvent_1 = __webpack_require__(41);
+ var TableauSheetEvent = (function (_super) {
+ __extends(TableauSheetEvent, _super);
+ function TableauSheetEvent(type, sheet) {
+ var _this = _super.call(this, type) || this;
+ _this._sheet = sheet;
+ return _this;
+ }
+ Object.defineProperty(TableauSheetEvent.prototype, "sheet", {
+ get: function () {
+ return this._sheet;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TableauSheetEvent;
+ }(TableauEvent_1.TableauEvent));
+ exports.TableauSheetEvent = TableauSheetEvent;
+
+
+/***/ },
+/* 41 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var TableauEvent = (function () {
+ function TableauEvent(type) {
+ this._type = type;
+ }
+ Object.defineProperty(TableauEvent.prototype, "type", {
+ get: function () {
+ return this._type;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TableauEvent;
+ }());
+ exports.TableauEvent = TableauEvent;
+
+
+/***/ },
+/* 42 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ })();
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Contract = __webpack_require__(19);
+ var TableauWorksheetEvent_1 = __webpack_require__(39);
+ var MarksSelectedEvent = (function (_super) {
+ __extends(MarksSelectedEvent, _super);
+ function MarksSelectedEvent(worksheet) {
+ return _super.call(this, Contract.TableauEventType.MarkSelectionChanged, worksheet) || this;
+ }
+ MarksSelectedEvent.prototype.getMarksAsync = function () {
+ return this.worksheet.getSelectedMarksAsync();
+ };
+ return MarksSelectedEvent;
+ }(TableauWorksheetEvent_1.TableauWorksheetEvent));
+ exports.MarksSelectedEvent = MarksSelectedEvent;
+
+
+/***/ },
+/* 43 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * Defines which type of getData call to make.
+ */
+ var GetDataType;
+ (function (GetDataType) {
+ GetDataType["Summary"] = "summary";
+ GetDataType["Underlying"] = "underlying";
+ })(GetDataType = exports.GetDataType || (exports.GetDataType = {}));
+
+
+/***/ },
+/* 44 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var DataSourceServiceImpl_1 = __webpack_require__(45);
+ var FilterServiceImpl_1 = __webpack_require__(46);
+ var GetDataServiceImpl_1 = __webpack_require__(50);
+ var NotificationServiceImpl_1 = __webpack_require__(51);
+ var ParametersServiceImpl_1 = __webpack_require__(52);
+ var SelectionServiceImpl_1 = __webpack_require__(56);
+ var ServiceRegistry_1 = __webpack_require__(28);
+ function registerAllSharedServices(dispatcher) {
+ ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new DataSourceServiceImpl_1.DataSourceServiceImpl(dispatcher));
+ ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new GetDataServiceImpl_1.GetDataServiceImpl(dispatcher));
+ ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new FilterServiceImpl_1.FilterServiceImpl(dispatcher));
+ ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new NotificationServiceImpl_1.NotificationServiceImpl(dispatcher));
+ ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new ParametersServiceImpl_1.ParametersServiceImpl(dispatcher));
+ ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new SelectionServiceImpl_1.SelectionServiceImpl(dispatcher));
+ }
+ exports.registerAllSharedServices = registerAllSharedServices;
+
+
+/***/ },
+/* 45 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_external_contract_1 = __webpack_require__(19);
+ var api_internal_contract_1 = __webpack_require__(21);
+ var api_utils_1 = __webpack_require__(13);
+ var DataSourceServiceImpl = (function () {
+ function DataSourceServiceImpl(_dispatcher) {
+ this._dispatcher = _dispatcher;
+ }
+ Object.defineProperty(DataSourceServiceImpl.prototype, "serviceName", {
+ get: function () {
+ return "data-source-service" /* DataSourceService */;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ DataSourceServiceImpl.prototype.refreshAsync = function (dataSourceId) {
+ var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.DataSourceId] = dataSourceId, _a);
+ return this._dispatcher.execute(api_internal_contract_1.VerbId.RefreshDataSource, parameters).then(function (response) {
+ return;
+ });
+ var _a;
+ };
+ DataSourceServiceImpl.prototype.getActiveTablesAsync = function (dataSourceId) {
+ var joinParameters = (_a = {}, _a[api_internal_contract_1.ParameterId.DataSourceId] = dataSourceId, _a);
+ // Get the description of the tables used by this connection
+ return this._dispatcher.execute(api_internal_contract_1.VerbId.GetJoinDescription, joinParameters).then(function (joinResponse) {
+ var joinDescription = joinResponse.result;
+ // getActiveTables is unsupported for cubes and GA. We do not have a connection type property
+ // available from the platform (intentionally, to reduce code churn as new connections are added).
+ // Instead,just check if any tables are returned. This array will be empty for any non-table based datasource.
+ if (joinDescription.tables.length === 0) {
+ throw api_utils_1.TableauException.error('getActiveTablesAsync is unsupported for DataSource.', [api_external_contract_1.ErrorCodes.UnsupportedMethodForDataSourceType]);
+ }
+ return joinDescription.tables;
+ });
+ var _a;
+ };
+ DataSourceServiceImpl.prototype.getDataSourcesAsync = function () {
+ return this._dispatcher.execute(api_internal_contract_1.VerbId.GetDataSources, {}).then(function (response) {
+ var dataSchema = response.result;
+ return dataSchema;
+ });
+ };
+ DataSourceServiceImpl.prototype.getConnectionSummariesAsync = function (dataSourceId) {
+ var params = (_a = {}, _a[api_internal_contract_1.ParameterId.DataSourceId] = dataSourceId, _a);
+ // Get the description of the tables used by this connection
+ return this._dispatcher.execute(api_internal_contract_1.VerbId.GetConnectionDescriptionSummaries, params).then(function (response) {
+ var descriptionSummaries = response.result;
+ return descriptionSummaries;
+ });
+ var _a;
+ };
+ return DataSourceServiceImpl;
+ }());
+ exports.DataSourceServiceImpl = DataSourceServiceImpl;
+
+
+/***/ },
+/* 46 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Contract = __webpack_require__(19);
+ var api_internal_contract_1 = __webpack_require__(21);
+ var api_utils_1 = __webpack_require__(13);
+ var ExternalToInternalEnumMappings_1 = __webpack_require__(47);
+ var InternalToExternalEnumMappings_1 = __webpack_require__(23);
+ var FilterModels_1 = __webpack_require__(48);
+ var GetDataModels_1 = __webpack_require__(49);
+ var FilterServiceImpl = (function () {
+ function FilterServiceImpl(dispatcher) {
+ this._dispatcher = dispatcher;
+ }
+ Object.defineProperty(FilterServiceImpl.prototype, "serviceName", {
+ get: function () {
+ return "filter-service" /* Filter */;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ FilterServiceImpl.prototype.applyFilterAsync = function (visualId, fieldName, values, updateType, filterOptions) {
+ if (!api_utils_1.Param.isValidEnumValue(updateType, Contract.FilterUpdateType)) {
+ throw api_utils_1.TableauException.invalidParamValue(['FilterUpdateType']);
+ }
+ var verb = api_internal_contract_1.VerbId.ApplyCategoricalFilter;
+ var parameters = {};
+ parameters[api_internal_contract_1.ParameterId.VisualId] = visualId;
+ parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName;
+ parameters[api_internal_contract_1.ParameterId.FilterValues] = values;
+ parameters[api_internal_contract_1.ParameterId.FilterUpdateType] = updateType;
+ parameters[api_internal_contract_1.ParameterId.IsExcludeMode] =
+ (filterOptions === undefined || filterOptions.isExcludeMode === undefined) ? false : filterOptions.isExcludeMode;
+ return this._dispatcher.execute(verb, parameters).then(function (response) {
+ var error = response.result;
+ if (!(error.errorCode === null || error.errorCode === undefined)) {
+ // TODO: come back and implement error handling logic
+ throw api_utils_1.TableauException.error(FilterServiceImpl.FILTER_ERROR, [error.errorCode]);
+ }
+ return fieldName;
+ });
+ };
+ FilterServiceImpl.prototype.applyRangeFilterAsync = function (visualId, fieldName, filterOptions) {
+ if (!filterOptions) {
+ throw api_utils_1.TableauException.missingParameter(['RangeFilterOptions']);
+ }
+ api_utils_1.Param.verifyRangeParamType(filterOptions.min, filterOptions.max);
+ var verb = api_internal_contract_1.VerbId.ApplyRangeFilter;
+ var parameters = {};
+ if (filterOptions.min) {
+ var min = void 0;
+ if (filterOptions.min instanceof Date) {
+ min = api_utils_1.Param.serializeDateForPlatform(filterOptions.min);
+ }
+ else {
+ min = filterOptions.min;
+ }
+ parameters[api_internal_contract_1.ParameterId.FilterRangeMin] = min;
+ }
+ if (filterOptions.max) {
+ var max = void 0;
+ if (filterOptions.max instanceof Date) {
+ max = api_utils_1.Param.serializeDateForPlatform(filterOptions.max);
+ }
+ else {
+ max = filterOptions.max;
+ }
+ parameters[api_internal_contract_1.ParameterId.FilterRangeMax] = max;
+ }
+ if (filterOptions.nullOption) {
+ if (!api_utils_1.Param.isValidEnumValue(filterOptions.nullOption, Contract.FilterNullOption)) {
+ throw api_utils_1.TableauException.invalidParamValue(['NullOption']);
+ }
+ parameters[api_internal_contract_1.ParameterId.FilterRangeNullOption] = ExternalToInternalEnumMappings_1.ExternalToInternalEnumMappings.nullOptions.convert(filterOptions.nullOption);
+ }
+ parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName;
+ parameters[api_internal_contract_1.ParameterId.VisualId] = visualId;
+ return this._dispatcher.execute(verb, parameters).then(function (response) {
+ return fieldName;
+ });
+ };
+ FilterServiceImpl.prototype.clearFilterAsync = function (visualId, fieldName) {
+ var verb = api_internal_contract_1.VerbId.ClearFilter;
+ var parameters = {};
+ parameters[api_internal_contract_1.ParameterId.VisualId] = visualId;
+ parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName;
+ return this._dispatcher.execute(verb, parameters).then(function (resposne) {
+ return fieldName;
+ });
+ };
+ FilterServiceImpl.prototype.getFiltersAsync = function (visualId) {
+ var _this = this;
+ var verb = api_internal_contract_1.VerbId.GetFilters;
+ var parameters = {};
+ parameters[api_internal_contract_1.ParameterId.VisualId] = visualId;
+ return this._dispatcher.execute(verb, parameters).then(function (response) {
+ var filters = response.result;
+ return _this.convertDomainFilters(filters);
+ });
+ };
+ FilterServiceImpl.prototype.getCategoricalDomainAsync = function (worksheetName, fieldId, domainType) {
+ var _this = this;
+ if (!api_utils_1.Param.isValidEnumValue(domainType, Contract.FilterDomainType)) {
+ throw new Error('Invalid value for parameter FilterDomainType');
+ }
+ var verb = api_internal_contract_1.VerbId.GetCategoricalDomain;
+ var parameters = {};
+ parameters[api_internal_contract_1.ParameterId.VisualId] = {
+ worksheet: worksheetName
+ };
+ parameters[api_internal_contract_1.ParameterId.FieldId] = fieldId;
+ parameters[api_internal_contract_1.ParameterId.DomainType] = domainType;
+ return this._dispatcher.execute(verb, parameters).then(function (response) {
+ var domain = response.result;
+ return _this.convertCategoricalDomain(domain, domainType);
+ });
+ };
+ FilterServiceImpl.prototype.getRangeDomainAsync = function (worksheetName, fieldId, domainType) {
+ var _this = this;
+ if (!api_utils_1.Param.isValidEnumValue(domainType, Contract.FilterDomainType)) {
+ throw new Error('Invalid value for parameter FilterDomainType');
+ }
+ var verb = api_internal_contract_1.VerbId.GetRangeDomain;
+ var parameters = {};
+ parameters[api_internal_contract_1.ParameterId.VisualId] = {
+ worksheet: worksheetName
+ };
+ parameters[api_internal_contract_1.ParameterId.FieldId] = fieldId;
+ parameters[api_internal_contract_1.ParameterId.DomainType] = ExternalToInternalEnumMappings_1.ExternalToInternalEnumMappings.filterDomainType.convert(domainType);
+ return this._dispatcher.execute(verb, parameters).then(function (response) {
+ var domain = response.result;
+ return _this.convertRangeDomain(domain, domainType);
+ });
+ };
+ // Helper Methods
+ FilterServiceImpl.prototype.convertDomainFilters = function (domainFilters) {
+ var _this = this;
+ var filters = [];
+ domainFilters.forEach(function (domainFilter) {
+ switch (domainFilter.filterType) {
+ case api_internal_contract_1.FilterType.Categorical: {
+ var filter = domainFilter;
+ if (filter) {
+ filters.push(_this.convertCategoricalFilter(filter));
+ }
+ else {
+ throw new Error('Invalid Categorical Filter');
+ }
+ break;
+ }
+ case api_internal_contract_1.FilterType.Range: {
+ var filter = domainFilter;
+ if (filter) {
+ filters.push(_this.convertRangeFilter(filter));
+ }
+ else {
+ throw new Error('Invalid Range Filter');
+ }
+ break;
+ }
+ case api_internal_contract_1.FilterType.RelativeDate: {
+ var filter = domainFilter;
+ if (filter) {
+ filters.push(_this.convertRelativeDateFilter(filter));
+ }
+ else {
+ throw new Error('Invalid Relative Date Filter');
+ }
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+ });
+ return filters;
+ };
+ FilterServiceImpl.prototype.convertCategoricalFilter = function (domainFilter) {
+ var appliedValues = domainFilter.values.map(function (dv) {
+ return new GetDataModels_1.DataValue(dv.value, dv.formattedValue);
+ });
+ return new FilterModels_1.CategoricalFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, domainFilter.fieldName, Contract.FilterType.Categorical, appliedValues, domainFilter.isExclude);
+ };
+ FilterServiceImpl.prototype.convertRangeFilter = function (domainFilter) {
+ var minValue = new GetDataModels_1.DataValue(domainFilter.min.value, domainFilter.min.formattedValue);
+ var maxValue = new GetDataModels_1.DataValue(domainFilter.max.value, domainFilter.max.formattedValue);
+ return new FilterModels_1.RangeFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, domainFilter.fieldName, Contract.FilterType.Range, minValue, maxValue, domainFilter.includeNullValues);
+ };
+ FilterServiceImpl.prototype.convertRelativeDateFilter = function (domainFilter) {
+ var anchorDateValue = new GetDataModels_1.DataValue(domainFilter.anchorDate.value, domainFilter.anchorDate.formattedValue);
+ return new FilterModels_1.RelativeDateFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, domainFilter.fieldName, Contract.FilterType.RelativeDate, anchorDateValue, InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateStepPeriod.convert(domainFilter.periodType), InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateRangeType.convert(domainFilter.rangeType), domainFilter.rangeN);
+ };
+ FilterServiceImpl.prototype.convertCategoricalDomain = function (domain, domainType) {
+ var values = domain.values.map(function (domainDv) {
+ return new GetDataModels_1.DataValue(domainDv.value, domainDv.formattedValue);
+ });
+ return new FilterModels_1.CategoricalDomain(values, domainType);
+ };
+ FilterServiceImpl.prototype.convertRangeDomain = function (domain, domainType) {
+ var min = new GetDataModels_1.DataValue(domain.min.value, domain.min.formattedValue);
+ var max = new GetDataModels_1.DataValue(domain.max.value, domain.max.formattedValue);
+ return new FilterModels_1.RangeDomain(min, max, domainType);
+ };
+ FilterServiceImpl.FILTER_ERROR = 'Error Applying Filter: %1';
+ return FilterServiceImpl;
+ }());
+ exports.FilterServiceImpl = FilterServiceImpl;
+
+
+/***/ },
+/* 47 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_external_contract_1 = __webpack_require__(19);
+ var api_internal_contract_1 = __webpack_require__(21);
+ var api_utils_1 = __webpack_require__(13);
+ /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */
+ /**
+ * Maps enums used by the external-api-contract to the enums used
+ * in the internal-api-contract, which developers code against.
+ */
+ var ExternalToInternalEnumMappings = (function () {
+ function ExternalToInternalEnumMappings() {
+ }
+ ExternalToInternalEnumMappings.nullOptions = new api_utils_1.EnumConverter((_a = {},
+ _a[api_external_contract_1.FilterNullOption.AllValues] = api_internal_contract_1.FilterNullOption.AllValues,
+ _a[api_external_contract_1.FilterNullOption.NonNullValues] = api_internal_contract_1.FilterNullOption.NonNullValues,
+ _a[api_external_contract_1.FilterNullOption.NonNullValues] = api_internal_contract_1.FilterNullOption.NullValues,
+ _a));
+ ExternalToInternalEnumMappings.filterDomainType = new api_utils_1.EnumConverter((_b = {},
+ _b[api_external_contract_1.FilterDomainType.Relevant] = api_internal_contract_1.FilterDomainType.Relevant,
+ _b[api_external_contract_1.FilterDomainType.Database] = api_internal_contract_1.FilterDomainType.Database,
+ _b));
+ return ExternalToInternalEnumMappings;
+ }());
+ exports.ExternalToInternalEnumMappings = ExternalToInternalEnumMappings;
+ var _a, _b;
+ /* tslint:enable:typedef */
+
+
+/***/ },
+/* 48 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ })();
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Contract = __webpack_require__(19);
+ var ServiceRegistry_1 = __webpack_require__(28);
+ var Filter = (function () {
+ function Filter(_worksheetName, _fieldName, _filterType, _fieldId) {
+ this._worksheetName = _worksheetName;
+ this._fieldName = _fieldName;
+ this._filterType = _filterType;
+ this._fieldId = _fieldId;
+ }
+ Object.defineProperty(Filter.prototype, "worksheetName", {
+ get: function () {
+ return this._worksheetName;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Filter.prototype, "fieldName", {
+ get: function () {
+ return this._fieldName;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Filter.prototype, "fieldId", {
+ get: function () {
+ return this._fieldId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Filter.prototype, "filterType", {
+ get: function () {
+ return this._filterType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Filter.prototype.getFieldAsync = function () {
+ throw new Error('Method not implemented');
+ };
+ return Filter;
+ }());
+ exports.Filter = Filter;
+ var CategoricalFilter = (function (_super) {
+ __extends(CategoricalFilter, _super);
+ function CategoricalFilter(worksheetName, fieldName, fieldId, filterType, _appliedValues, _isExcludeMode) {
+ var _this = _super.call(this, worksheetName, fieldName, filterType, fieldId) || this;
+ _this._appliedValues = _appliedValues;
+ _this._isExcludeMode = _isExcludeMode;
+ return _this;
+ }
+ Object.defineProperty(CategoricalFilter.prototype, "appliedValues", {
+ get: function () {
+ return this._appliedValues;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CategoricalFilter.prototype, "isExcludeMode", {
+ get: function () {
+ return this._isExcludeMode;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ CategoricalFilter.prototype.getDomainAsync = function (domainType) {
+ if (!domainType) {
+ domainType = Contract.FilterDomainType.Relevant;
+ }
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */);
+ return service.getCategoricalDomainAsync(this._worksheetName, this._fieldId, domainType);
+ };
+ return CategoricalFilter;
+ }(Filter));
+ exports.CategoricalFilter = CategoricalFilter;
+ var RangeFilter = (function (_super) {
+ __extends(RangeFilter, _super);
+ function RangeFilter(worksheetName, fieldName, fieldId, filterType, _min, _max, _includeNullValues) {
+ var _this = _super.call(this, worksheetName, fieldName, filterType, fieldId) || this;
+ _this._min = _min;
+ _this._max = _max;
+ _this._includeNullValues = _includeNullValues;
+ return _this;
+ }
+ Object.defineProperty(RangeFilter.prototype, "minValue", {
+ get: function () {
+ return this._min;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RangeFilter.prototype, "maxValue", {
+ get: function () {
+ return this._max;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RangeFilter.prototype, "includeNullValues", {
+ get: function () {
+ return this._includeNullValues;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ RangeFilter.prototype.getDomainAsync = function (domainType) {
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */);
+ if (!domainType) {
+ domainType = Contract.FilterDomainType.Relevant;
+ }
+ return service.getRangeDomainAsync(this._worksheetName, this._fieldId, domainType);
+ };
+ return RangeFilter;
+ }(Filter));
+ exports.RangeFilter = RangeFilter;
+ var RelativeDateFilter = (function (_super) {
+ __extends(RelativeDateFilter, _super);
+ function RelativeDateFilter(worksheetName, fieldName, fieldId, filterType, _anchorDate, _periodType, _rangeType, _rangeN) {
+ var _this = _super.call(this, worksheetName, fieldName, filterType, fieldId) || this;
+ _this._anchorDate = _anchorDate;
+ _this._periodType = _periodType;
+ _this._rangeType = _rangeType;
+ _this._rangeN = _rangeN;
+ return _this;
+ }
+ Object.defineProperty(RelativeDateFilter.prototype, "anchorDate", {
+ get: function () {
+ return this._anchorDate;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RelativeDateFilter.prototype, "periodType", {
+ get: function () {
+ return this._periodType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RelativeDateFilter.prototype, "rangeType", {
+ get: function () {
+ return this._rangeType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RelativeDateFilter.prototype, "rangeN", {
+ get: function () {
+ return this._rangeN;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return RelativeDateFilter;
+ }(Filter));
+ exports.RelativeDateFilter = RelativeDateFilter;
+ var CategoricalDomain = (function () {
+ function CategoricalDomain(_values, _domainType) {
+ this._values = _values;
+ this._domainType = _domainType;
+ }
+ Object.defineProperty(CategoricalDomain.prototype, "values", {
+ get: function () {
+ return this._values;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CategoricalDomain.prototype, "type", {
+ get: function () {
+ return this._domainType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return CategoricalDomain;
+ }());
+ exports.CategoricalDomain = CategoricalDomain;
+ var RangeDomain = (function () {
+ function RangeDomain(_min, _max, _domainType) {
+ this._min = _min;
+ this._max = _max;
+ this._domainType = _domainType;
+ }
+ Object.defineProperty(RangeDomain.prototype, "type", {
+ get: function () {
+ return this._domainType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RangeDomain.prototype, "min", {
+ get: function () {
+ return this._min;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RangeDomain.prototype, "max", {
+ get: function () {
+ return this._max;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return RangeDomain;
+ }());
+ exports.RangeDomain = RangeDomain;
+
+
+/***/ },
+/* 49 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var DataTable = (function () {
+ function DataTable(_data, _columns, _totalRowCount, _isSummaryData, _marksInfo) {
+ this._data = _data;
+ this._columns = _columns;
+ this._totalRowCount = _totalRowCount;
+ this._isSummaryData = _isSummaryData;
+ this._marksInfo = _marksInfo;
+ // TODO: get rid of this in redesign.
+ this._name = _isSummaryData ? 'Summary Data Table' : 'Underlying Data Table';
+ }
+ Object.defineProperty(DataTable.prototype, "name", {
+ get: function () {
+ return this._name;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataTable.prototype, "data", {
+ get: function () {
+ return this._data;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataTable.prototype, "columns", {
+ get: function () {
+ return this._columns;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataTable.prototype, "marksInfo", {
+ get: function () {
+ return this._marksInfo;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataTable.prototype, "totalRowCount", {
+ get: function () {
+ return this._totalRowCount;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataTable.prototype, "isSummaryData", {
+ get: function () {
+ return this._isSummaryData;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return DataTable;
+ }());
+ exports.DataTable = DataTable;
+ var MarkInfo = (function () {
+ function MarkInfo(_type, _color, _tupleId) {
+ this._type = _type;
+ this._color = _color;
+ this._tupleId = _tupleId;
+ }
+ Object.defineProperty(MarkInfo.prototype, "type", {
+ get: function () {
+ return this._type;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MarkInfo.prototype, "color", {
+ get: function () {
+ return this._color;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MarkInfo.prototype, "tupleId", {
+ get: function () {
+ return this._tupleId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return MarkInfo;
+ }());
+ exports.MarkInfo = MarkInfo;
+ var Column = (function () {
+ function Column(_fieldName, _dataType, // TODO: this shoudl be an enum type
+ _isReferenced, _index) {
+ this._fieldName = _fieldName;
+ this._dataType = _dataType;
+ this._isReferenced = _isReferenced;
+ this._index = _index;
+ }
+ Object.defineProperty(Column.prototype, "fieldName", {
+ get: function () {
+ return this._fieldName;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Column.prototype, "dataType", {
+ get: function () {
+ return this._dataType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Column.prototype, "isReferenced", {
+ get: function () {
+ return this._isReferenced;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Column.prototype, "index", {
+ get: function () {
+ return this._index;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Column;
+ }());
+ exports.Column = Column;
+ var DataValue = (function () {
+ /* tslint:disable:no-any */
+ function DataValue(_value, _formattedValue) {
+ this._value = _value;
+ this._formattedValue = _formattedValue;
+ }
+ Object.defineProperty(DataValue.prototype, "value", {
+ get: function () {
+ return this._value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DataValue.prototype, "formattedValue", {
+ get: function () {
+ return this._formattedValue;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return DataValue;
+ }());
+ exports.DataValue = DataValue;
+
+
+/***/ },
+/* 50 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Contract = __webpack_require__(19);
+ var api_internal_contract_1 = __webpack_require__(21);
+ var GetDataModels_1 = __webpack_require__(49);
+ var GetDataService_1 = __webpack_require__(43);
+ var GetDataServiceImpl = (function () {
+ function GetDataServiceImpl(dispatcher) {
+ this._dispatcher = dispatcher;
+ }
+ Object.defineProperty(GetDataServiceImpl.prototype, "serviceName", {
+ get: function () {
+ return "get-data-service" /* GetData */;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ GetDataServiceImpl.prototype.getUnderlyingDataAsync = function (visualId, getType, ignoreAliases, ignoreSelection, includeAllColumns, maxRows) {
+ var _this = this;
+ // Create all of our parameters
+ var verb = getType === GetDataService_1.GetDataType.Summary ? api_internal_contract_1.VerbId.GetDataSummaryData : api_internal_contract_1.VerbId.GetUnderlyingData;
+ var parameters = {};
+ parameters[api_internal_contract_1.ParameterId.VisualId] = visualId;
+ parameters[api_internal_contract_1.ParameterId.IgnoreAliases] = ignoreAliases;
+ parameters[api_internal_contract_1.ParameterId.IgnoreSelection] = ignoreSelection;
+ parameters[api_internal_contract_1.ParameterId.IncludeAllColumns] = includeAllColumns;
+ parameters[api_internal_contract_1.ParameterId.MaxRows] = maxRows;
+ return this._dispatcher.execute(verb, parameters).then(function (response) {
+ var responseData = response.result;
+ return _this.processResultsTable(responseData.data, responseData.isSummary);
+ });
+ };
+ GetDataServiceImpl.prototype.getSelectedMarksAsync = function (visualId) {
+ var _this = this;
+ var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a);
+ return this._dispatcher.execute(api_internal_contract_1.VerbId.GetSelectedMarks, parameters).then(function (response) {
+ var responseData = response.result;
+ return {
+ data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); })
+ };
+ });
+ var _a;
+ };
+ GetDataServiceImpl.prototype.getHighlightedMarksAsync = function (visualId) {
+ var _this = this;
+ var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a);
+ return this._dispatcher.execute(api_internal_contract_1.VerbId.GetHighlightedMarks, parameters).then(function (response) {
+ var responseData = response.result;
+ return {
+ data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); })
+ };
+ });
+ var _a;
+ };
+ GetDataServiceImpl.prototype.getDataSourceDataAsync = function (dataSourceId, ignoreAliases, maxRows, columnsToInclude) {
+ var _this = this;
+ var parameters = (_a = {},
+ _a[api_internal_contract_1.ParameterId.DataSourceId] = dataSourceId,
+ _a[api_internal_contract_1.ParameterId.IgnoreAliases] = ignoreAliases,
+ _a[api_internal_contract_1.ParameterId.MaxRows] = maxRows,
+ _a[api_internal_contract_1.ParameterId.ColumnsToInclude] = columnsToInclude,
+ _a);
+ return this._dispatcher.execute(api_internal_contract_1.VerbId.GetDataSourceData, parameters).then(function (response) {
+ var responseData = response.result;
+ return _this.processResultsTable(responseData.data, false);
+ });
+ var _a;
+ };
+ GetDataServiceImpl.prototype.processResultsTable = function (responseData, isSummary) {
+ var headers = responseData.headers.map(function (h) { return new GetDataModels_1.Column(h.fieldCaption, Contract.DataType.String /*h.DataType*/, h.isReferenced, h.index); });
+ // TODO This should be controlled by a flag indicating whether this api will respond marks info or not
+ var marks;
+ if (responseData.marks) {
+ marks = responseData.marks.map(function (h) { return new GetDataModels_1.MarkInfo(h.type, h.color, h.tupleId); });
+ }
+ var table = responseData.dataTable.map(function (row) {
+ return row.map(function (cell) {
+ return new GetDataModels_1.DataValue(cell.value, cell.formattedValue);
+ });
+ });
+ if (marks) {
+ return new GetDataModels_1.DataTable(table, headers, table.length, isSummary, marks);
+ }
+ return new GetDataModels_1.DataTable(table, headers, table.length, isSummary);
+ };
+ return GetDataServiceImpl;
+ }());
+ exports.GetDataServiceImpl = GetDataServiceImpl;
+
+
+/***/ },
+/* 51 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Registration = (function () {
+ function Registration(_filterFn, _callbackFn) {
+ this._filterFn = _filterFn;
+ this._callbackFn = _callbackFn;
+ // Nothing Here
+ }
+ Registration.prototype.onNotification = function (notificationModel) {
+ if (this._filterFn(notificationModel)) {
+ this._callbackFn(notificationModel);
+ }
+ };
+ return Registration;
+ }());
+ var NotificationServiceImpl = (function () {
+ function NotificationServiceImpl(dispatcher) {
+ this.dispatcher = dispatcher;
+ this._handlers = {};
+ this.dispatcher.registerNotificationHandler(this.onNotification.bind(this));
+ }
+ Object.defineProperty(NotificationServiceImpl.prototype, "serviceName", {
+ get: function () {
+ return "notification-service" /* Notification */;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ NotificationServiceImpl.prototype.registerHandler = function (id, filterFn, handler) {
+ var _this = this;
+ var handlers = this._handlers[id] || new Array();
+ var registration = new Registration(filterFn, handler);
+ handlers.push(registration);
+ this._handlers[id] = handlers;
+ return function () { return _this.removeRegistration(id, registration); };
+ };
+ NotificationServiceImpl.prototype.hasHandlersForNotificationType = function (id) {
+ return this._handlers.hasOwnProperty(id);
+ };
+ NotificationServiceImpl.prototype.onNotification = function (notification) {
+ if (!this.hasHandlersForNotificationType(notification.notificationId)) {
+ return;
+ }
+ // Go through and check for all the handlers of this particular notification
+ this._handlers[notification.notificationId].forEach(function (h) { return h.onNotification(notification.data); });
+ };
+ NotificationServiceImpl.prototype.removeRegistration = function (id, registration) {
+ if (!this.hasHandlersForNotificationType(id)) {
+ return;
+ }
+ this._handlers[id] = this._handlers[id].filter(function (reg) { return reg !== registration; });
+ };
+ return NotificationServiceImpl;
+ }());
+ exports.NotificationServiceImpl = NotificationServiceImpl;
+
+
+/***/ },
+/* 52 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_internal_contract_1 = __webpack_require__(21);
+ var api_utils_1 = __webpack_require__(13);
+ var ParameterImpl_1 = __webpack_require__(53);
+ var Parameter_1 = __webpack_require__(55);
+ var ParametersServiceImpl = (function () {
+ function ParametersServiceImpl(dispatcher) {
+ this.dispatcher = dispatcher;
+ }
+ Object.defineProperty(ParametersServiceImpl.prototype, "serviceName", {
+ get: function () {
+ return "parameters-service" /* Parameters */;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ParametersServiceImpl.prototype.getParametersForSheetAsync = function (sheetPath, sheet) {
+ var parameters = (_a = {},
+ _a[api_internal_contract_1.ParameterId.SheetPath] = sheetPath,
+ _a);
+ return this.dispatcher.execute(api_internal_contract_1.VerbId.GetParametersForSheet, parameters).then(function (response) {
+ // TODO - Check for error
+ var result = response.result;
+ return result.map(function (parameterInfo) {
+ var impl = new ParameterImpl_1.ParameterImpl(parameterInfo);
+ return new Parameter_1.Parameter(impl, sheet);
+ });
+ });
+ var _a;
+ };
+ ParametersServiceImpl.prototype.changeParameterValueAsync = function (fieldName, newValue) {
+ var parameters = (_a = {},
+ _a[api_internal_contract_1.ParameterId.ParameterFieldName] = fieldName,
+ _a[api_internal_contract_1.ParameterId.ParameterValue] = newValue,
+ _a);
+ return this.dispatcher.execute(api_internal_contract_1.VerbId.ChangeParameterValue, parameters).then(function (response) {
+ var result = response.result;
+ return result;
+ });
+ var _a;
+ };
+ ParametersServiceImpl.prototype.findParameterByNameAsync = function (name, sheet) {
+ return this.findParameterAsync(sheet, name, undefined);
+ };
+ ParametersServiceImpl.prototype.findParameterByGlobalFieldNameAsync = function (fieldName, sheet) {
+ return this.findParameterAsync(sheet, undefined, fieldName);
+ };
+ ParametersServiceImpl.prototype.findParameterAsync = function (sheet, name, fieldName) {
+ var parameters = {};
+ if (name !== undefined) {
+ parameters[api_internal_contract_1.ParameterId.ParameterCaption] = name;
+ }
+ else if (fieldName !== undefined) {
+ parameters[api_internal_contract_1.ParameterId.ParameterFieldName] = fieldName;
+ }
+ else {
+ throw api_utils_1.TableauException.missingParameter(['field name or caption']);
+ }
+ return this.dispatcher.execute(api_internal_contract_1.VerbId.FindParameter, parameters).then(function (response) {
+ var instanceOfParameterInfo = function (object) {
+ return 'fieldName' in object;
+ };
+ // We need to check to see if we got a valid response back again
+ if (instanceOfParameterInfo(response.result)) {
+ var result = response.result;
+ var impl = new ParameterImpl_1.ParameterImpl(result);
+ return new Parameter_1.Parameter(impl, sheet);
+ }
+ else {
+ return undefined;
+ }
+ });
+ };
+ return ParametersServiceImpl;
+ }());
+ exports.ParametersServiceImpl = ParametersServiceImpl;
+
+
+/***/ },
+/* 53 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Contract = __webpack_require__(19);
+ var api_internal_contract_1 = __webpack_require__(21);
+ var api_utils_1 = __webpack_require__(13);
+ var InternalToExternalEnumMappings_1 = __webpack_require__(23);
+ var ParameterChangedEvent_1 = __webpack_require__(54);
+ var GetDataModels_1 = __webpack_require__(49);
+ var ServiceRegistry_1 = __webpack_require__(28);
+ var SingleEventManagerImpl_1 = __webpack_require__(37);
+ var ParameterImpl = (function () {
+ function ParameterImpl(parameterInfo) {
+ this.setParameterInfo(parameterInfo);
+ }
+ Object.defineProperty(ParameterImpl.prototype, "name", {
+ get: function () {
+ return this._parameterInfo.name;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParameterImpl.prototype, "currentValue", {
+ get: function () {
+ return new GetDataModels_1.DataValue(this._parameterInfo.currentValue.value, this._parameterInfo.currentValue.formattedValue);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParameterImpl.prototype, "dataType", {
+ get: function () {
+ return InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dataType.convert(this._parameterInfo.dataType);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParameterImpl.prototype, "id", {
+ get: function () {
+ return this._globalFieldName;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParameterImpl.prototype, "allowableValues", {
+ get: function () {
+ return this._allowableValues;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ParameterImpl.prototype.changeValueAsync = function (newValue) {
+ var _this = this;
+ var coercedValue = api_utils_1.Param.serializeParamterValue(newValue);
+ var parametersService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */);
+ return parametersService.changeParameterValueAsync(this._globalFieldName, coercedValue).then(function (parameterInfo) {
+ _this.setParameterInfo(parameterInfo);
+ return _this.currentValue;
+ });
+ };
+ /**
+ * Helper method which goes through and registers each event type this impl knows about
+ * with the NotificationService. It returns an array of SingleEventManager objects which
+ * can then be passed to an EventListenerManager to handle user registration / unregistration.
+ *
+ * @param sheet The sheet object which will be included with the event notifications
+ * @returns {Array} Collection of event managers to pass to an EventListenerManager
+ */
+ ParameterImpl.prototype.initializeEvents = function (sheet) {
+ var _this = this;
+ var results = new Array();
+ var notificationService;
+ try {
+ notificationService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("notification-service" /* Notification */);
+ }
+ catch (e) {
+ // If we don't have this service registered, just return
+ return results;
+ }
+ // Initialize all of the event managers we'll need (one for each event type)
+ var parameterEvent = new SingleEventManagerImpl_1.SingleEventManagerImpl(Contract.TableauEventType.ParameterChanged);
+ notificationService.registerHandler(api_internal_contract_1.NotificationId.ParameterChanged, function (model) {
+ var fieldName = model;
+ return fieldName === _this._globalFieldName;
+ }, function (fieldName) {
+ parameterEvent.triggerEvent(function () { return new ParameterChangedEvent_1.ParameterChangedEvent(fieldName, sheet); });
+ });
+ results.push(parameterEvent);
+ return results;
+ };
+ ParameterImpl.prototype.setParameterInfo = function (parameterInfo) {
+ this._parameterInfo = parameterInfo;
+ this._globalFieldName = parameterInfo.fieldName;
+ var type = InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.allowableValues.convert(parameterInfo.allowableValuesType);
+ var listValues;
+ var minValue;
+ var maxValue;
+ var stepSize;
+ var dateStepPeriod;
+ if (type === Contract.ParameterValueType.List) {
+ var values = parameterInfo.allowableValues || [];
+ listValues = values.map(function (val) { return new GetDataModels_1.DataValue(val.value, val.formattedValue); });
+ }
+ else if (type === Contract.ParameterValueType.Range) {
+ minValue = parameterInfo.minValue && new GetDataModels_1.DataValue(parameterInfo.minValue.value, parameterInfo.minValue.formattedValue);
+ maxValue = parameterInfo.maxValue && new GetDataModels_1.DataValue(parameterInfo.maxValue.value, parameterInfo.maxValue.formattedValue);
+ stepSize = parameterInfo.stepSize;
+ dateStepPeriod = parameterInfo.dateStepPeriod &&
+ InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateStepPeriod.convert(parameterInfo.dateStepPeriod);
+ }
+ this._allowableValues = {
+ type: type,
+ allowableValues: listValues,
+ minValue: minValue,
+ maxValue: maxValue,
+ stepSize: stepSize,
+ dateStepPeriod: dateStepPeriod
+ };
+ };
+ return ParameterImpl;
+ }());
+ exports.ParameterImpl = ParameterImpl;
+
+
+/***/ },
+/* 54 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ })();
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Contract = __webpack_require__(19);
+ var api_utils_1 = __webpack_require__(13);
+ var ServiceRegistry_1 = __webpack_require__(28);
+ var TableauSheetEvent_1 = __webpack_require__(40);
+ var ParameterChangedEvent = (function (_super) {
+ __extends(ParameterChangedEvent, _super);
+ function ParameterChangedEvent(_globalFieldName, sheet) {
+ var _this = _super.call(this, Contract.TableauEventType.ParameterChanged, sheet) || this;
+ _this._globalFieldName = _globalFieldName;
+ return _this;
+ }
+ ParameterChangedEvent.prototype.getParameterAsync = function () {
+ // Call down to our service to get the parameter back via its field name
+ var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */);
+ return service.findParameterByGlobalFieldNameAsync(this._globalFieldName, this.sheet).then(function (parameter) {
+ if (parameter === undefined) {
+ throw api_utils_1.TableauException.error(ParameterChangedEvent.PARAM_NOT_FOUND);
+ }
+ return parameter;
+ });
+ };
+ ParameterChangedEvent.PARAM_NOT_FOUND = 'Unable to find parameter';
+ return ParameterChangedEvent;
+ }(TableauSheetEvent_1.TableauSheetEvent));
+ exports.ParameterChangedEvent = ParameterChangedEvent;
+
+
+/***/ },
+/* 55 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ })();
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var EventListenerManager_1 = __webpack_require__(12);
+ /**
+ * Implementation of the Parameter contract. Calls down to the impl
+ * class for almost all of the work it does.
+ */
+ var Parameter = (function (_super) {
+ __extends(Parameter, _super);
+ function Parameter(parameterImpl, sheet) {
+ var _this = _super.call(this) || this;
+ _this.parameterImpl = parameterImpl;
+ // Initialize our event handling for this class
+ _this.parameterImpl.initializeEvents(sheet).forEach(function (e) { return _this.addNewEventType(e); });
+ return _this;
+ }
+ Object.defineProperty(Parameter.prototype, "name", {
+ get: function () {
+ return this.parameterImpl.name;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Parameter.prototype, "currentValue", {
+ get: function () {
+ return this.parameterImpl.currentValue;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Parameter.prototype, "dataType", {
+ get: function () {
+ return this.parameterImpl.dataType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Parameter.prototype, "allowableValues", {
+ get: function () {
+ return this.parameterImpl.allowableValues;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Parameter.prototype, "id", {
+ get: function () {
+ return this.parameterImpl.id;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Parameter.prototype.changeValueAsync = function (newValue) {
+ return this.parameterImpl.changeValueAsync(newValue);
+ };
+ return Parameter;
+ }(EventListenerManager_1.EventListenerManager));
+ exports.Parameter = Parameter;
+
+
+/***/ },
+/* 56 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Contract = __webpack_require__(19);
+ var api_internal_contract_1 = __webpack_require__(21);
+ var api_utils_1 = __webpack_require__(13);
+ var SelectionModels_1 = __webpack_require__(57);
+ var SelectionServiceImpl = (function () {
+ function SelectionServiceImpl(dispatcher) {
+ this._dispatcher = dispatcher;
+ }
+ Object.defineProperty(SelectionServiceImpl.prototype, "serviceName", {
+ get: function () {
+ return "selection-service" /* Selection */;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Method to clear all the selected marks for the given worksheet.
+ *
+ * @param visualId
+ */
+ SelectionServiceImpl.prototype.clearSelectedMarksAsync = function (visualId) {
+ var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a);
+ return this._dispatcher.execute(api_internal_contract_1.VerbId.ClearSelectedMarks, parameters).then(function (response) {
+ return; // Expecting an empty model and hence the void response.
+ });
+ var _a;
+ };
+ /**
+ * Method to select marks for the given worksheet.
+ *
+ * @param visualId
+ * @param selectionCriteria
+ * @param selectionUpdateType
+ */
+ SelectionServiceImpl.prototype.selectMarksByValueAsync = function (visualId, selectionCriterias, selectionUpdateType) {
+ if (selectionCriterias.length === 0) {
+ throw api_utils_1.TableauException.invalid(['Selection criteria', 'Selections missing.']);
+ }
+ var selectionType = this.validateSelectionUpdateType(selectionUpdateType);
+ var selectionCriteriaType = this.validateSelectionCriteria(selectionCriterias[0]);
+ var selectionModelContainer = this.parseSelectionMarks(selectionCriterias, selectionCriteriaType);
+ var parameters = (_a = {},
+ _a[api_internal_contract_1.ParameterId.VisualId] = visualId,
+ _a[api_internal_contract_1.ParameterId.SelectionUpdateType] = selectionType,
+ _a);
+ switch (selectionCriteriaType) {
+ case SelectionCriteriaType.HierarchicalType: {
+ parameters[api_internal_contract_1.ParameterId.HierValSelectionModels] = selectionModelContainer.hierModelArr;
+ break;
+ }
+ case SelectionCriteriaType.RangeType: {
+ parameters[api_internal_contract_1.ParameterId.QuantRangeSelectionModels] = selectionModelContainer.quantModelArr;
+ break;
+ }
+ case SelectionCriteriaType.DimensionType: {
+ parameters[api_internal_contract_1.ParameterId.DimValSelectionModels] = selectionModelContainer.dimModelArr;
+ break;
+ }
+ default:
+ break;
+ }
+ return this._dispatcher.execute(api_internal_contract_1.VerbId.SelectByValue, parameters).then(function (response) {
+ // Expecting an empty model and hence the void response.
+ return;
+ // TODO Investigate the error response with multiple output params and throw error accordingly.
+ });
+ var _a;
+ };
+ /**
+ * Method to select marks for the given worksheet.
+ *
+ * @param visualId
+ * @param MarkInfo
+ * @param selectionUpdateType
+ */
+ SelectionServiceImpl.prototype.selectMarksByIdAsync = function (visualId, marks, selectionUpdateType) {
+ if (marks.length === 0) {
+ throw api_utils_1.TableauException.invalid(['Selection', 'Marks info missing.']);
+ }
+ var selectionType = this.validateSelectionUpdateType(selectionUpdateType);
+ var selectionModelContainer = this.parseSelectionIds(marks);
+ var parameters = (_a = {},
+ _a[api_internal_contract_1.ParameterId.VisualId] = visualId,
+ _a[api_internal_contract_1.ParameterId.SelectionUpdateType] = selectionType,
+ _a[api_internal_contract_1.ParameterId.Selection] = selectionModelContainer.selection,
+ _a);
+ return this._dispatcher.execute(api_internal_contract_1.VerbId.SelectByValue, parameters).then(function (response) {
+ // Expecting an empty model and hence the void response.
+ return;
+ // TODO Investigate the error response with multiple output params and throw error accordingly.
+ });
+ var _a;
+ };
+ /**
+ * Method to prepare the pres models for selection by MarksInfo
+ * @param marks
+ */
+ SelectionServiceImpl.prototype.parseSelectionIds = function (marks) {
+ var ids = [];
+ var selectionModelContainer = new SelectionModels_1.SelectionModelsContainer();
+ for (var i = 0; i < marks.length; i++) {
+ var tupleId = marks[i].tupleId;
+ if (tupleId !== undefined && tupleId !== null) {
+ ids.push(tupleId.toString()); // collect the tuple ids
+ }
+ else {
+ throw api_utils_1.TableauException.invalid(['tupleId']);
+ }
+ }
+ if (ids.length !== 0) {
+ var tupleSelectionModel = new SelectionModels_1.TupleSelectionModel();
+ tupleSelectionModel.selectionType = 'tuples';
+ tupleSelectionModel.objectIds = ids;
+ selectionModelContainer.selection = tupleSelectionModel;
+ }
+ return selectionModelContainer;
+ };
+ /**
+ * Method to prepare the pres models for selection by values.
+ *
+ * Supports 3 types for selection:
+ * 1) hierarchical value based selection
+ * 2) range value based selection
+ * 3) Dimension value based selection
+ *
+ * @param marks
+ * @param hierModelArr
+ * @param dimModelArr
+ * @param quantModelArr
+ * @param selection
+ */
+ SelectionServiceImpl.prototype.parseSelectionMarks = function (selectionCriterias, selectionType) {
+ var selectionModelContainer = new SelectionModels_1.SelectionModelsContainer();
+ var mixedSelectionsError = false;
+ for (var i = 0; i < selectionCriterias.length; i++) {
+ var st = selectionCriterias[i];
+ if (st.fieldName && (st.value !== undefined && st.value !== null)) {
+ var catRegex = new RegExp('(\[[A-Za-z0-9]+]).*', 'g');
+ var rangeOption = st.value;
+ if (catRegex.test(st.fieldName)) {
+ if (selectionType === SelectionCriteriaType.HierarchicalType) {
+ var hierModel = this.addToParamsList(st.fieldName, st.value);
+ selectionModelContainer.hierModelArr.push(hierModel);
+ }
+ else {
+ mixedSelectionsError = true;
+ break;
+ }
+ }
+ else if (rangeOption.min !== undefined
+ && rangeOption.max !== undefined) {
+ if (selectionType === SelectionCriteriaType.RangeType) {
+ var quantModel = this.addToRangeParamsList(st.fieldName, rangeOption);
+ selectionModelContainer.quantModelArr.push(quantModel);
+ }
+ else {
+ mixedSelectionsError = true;
+ break;
+ }
+ }
+ else {
+ if (selectionType === SelectionCriteriaType.DimensionType) {
+ var dimModel = this.addToParamsList(st.fieldName, st.value);
+ selectionModelContainer.dimModelArr.push(dimModel);
+ }
+ else {
+ mixedSelectionsError = true;
+ break;
+ }
+ }
+ }
+ }
+ if (mixedSelectionsError) {
+ throw api_utils_1.TableauException.invalid(['Selection Criteria', 'Different types of selection criterias provided.']);
+ }
+ return selectionModelContainer;
+ };
+ /**
+ *
+ * @param selectionCriterias Validate and determine the selection criterias type.
+ */
+ SelectionServiceImpl.prototype.validateSelectionCriteria = function (selectionCriteria) {
+ var selectionType;
+ // Determine the type of selection, this command is by looking at the first selection
+ var crit = selectionCriteria;
+ var catRegex = new RegExp('(\[[A-Za-z0-9]+]).*', 'g');
+ var rangeOption = crit.value;
+ if (crit.fieldName && (crit.value !== undefined && crit.value !== null)) {
+ if (catRegex.test(crit.fieldName)) {
+ selectionType = SelectionCriteriaType.HierarchicalType;
+ }
+ else if (rangeOption.min !== undefined
+ && rangeOption.max !== undefined) {
+ selectionType = SelectionCriteriaType.RangeType;
+ }
+ else {
+ selectionType = SelectionCriteriaType.DimensionType;
+ }
+ }
+ else {
+ throw api_utils_1.TableauException.invalid(['Selection', 'Criteria format.']);
+ }
+ return selectionType;
+ };
+ /**
+ * Method to transform the key value pair into value based pres model object.
+ *
+ * @param valueSelectionModel
+ * @param fieldName
+ * @param value
+ */
+ SelectionServiceImpl.prototype.addToParamsList = function (fieldName, value) {
+ var valueSelectionModel = new SelectionModels_1.ValueSelectionModel();
+ var markValues = [];
+ if (value instanceof Array) {
+ var valueArr = value;
+ for (var i = 0; i < valueArr.length; i++) {
+ markValues.push(valueArr[i].toString());
+ }
+ }
+ else {
+ markValues.push(value.toString());
+ }
+ valueSelectionModel.qualifiedFieldCaption = fieldName;
+ valueSelectionModel.selectValues = markValues;
+ return valueSelectionModel;
+ };
+ /**
+ * Method to transform the key value pair into range based selection pres model.
+ *
+ * TODO: Need to handle the parsing of date type values.
+ *
+ * @param valueSelectionModel
+ * @param fieldName
+ * @param value
+ */
+ SelectionServiceImpl.prototype.addToRangeParamsList = function (fieldName, value) {
+ var rangeSelectionModel = new SelectionModels_1.RangeSelectionModel();
+ rangeSelectionModel.qualifiedFieldCaption = fieldName;
+ if (value.max !== undefined && value.max !== null) {
+ rangeSelectionModel.maxValue = value.max.toString();
+ }
+ if (value.min !== undefined && value.min !== null) {
+ rangeSelectionModel.minValue = value.min.toString();
+ }
+ rangeSelectionModel.included = this.validateNullOptionType(value.nullOption);
+ return rangeSelectionModel;
+ };
+ /**
+ * Method to validate the selection update type.
+ *
+ * @param selectionUpdateType
+ */
+ SelectionServiceImpl.prototype.validateSelectionUpdateType = function (selectionUpdateType) {
+ if (selectionUpdateType === Contract.SelectionUpdateType.Replace) {
+ return api_internal_contract_1.SelectionUpdateType.Replace;
+ }
+ else if (selectionUpdateType === Contract.SelectionUpdateType.Add) {
+ return api_internal_contract_1.SelectionUpdateType.Add;
+ }
+ else if (selectionUpdateType === Contract.SelectionUpdateType.Remove) {
+ return api_internal_contract_1.SelectionUpdateType.Remove;
+ }
+ return api_internal_contract_1.SelectionUpdateType.Replace;
+ };
+ /**
+ * Method to validate the include type for range selection.
+ *
+ * @param nullOption
+ */
+ SelectionServiceImpl.prototype.validateNullOptionType = function (nullOption) {
+ if (nullOption) {
+ if (nullOption === Contract.FilterNullOption.NullValues) {
+ return api_internal_contract_1.QuantitativeIncludedValues.IncludeNull;
+ }
+ else if (nullOption === Contract.FilterNullOption.NonNullValues) {
+ return api_internal_contract_1.QuantitativeIncludedValues.IncludeNonNull;
+ }
+ else if (nullOption === Contract.FilterNullOption.AllValues) {
+ return api_internal_contract_1.QuantitativeIncludedValues.IncludeAll;
+ }
+ }
+ return api_internal_contract_1.QuantitativeIncludedValues.IncludeAll;
+ };
+ return SelectionServiceImpl;
+ }());
+ exports.SelectionServiceImpl = SelectionServiceImpl;
+ /**
+ * Enum for the different selection criteria types.
+ */
+ var SelectionCriteriaType;
+ (function (SelectionCriteriaType) {
+ SelectionCriteriaType[SelectionCriteriaType["HierarchicalType"] = 1] = "HierarchicalType";
+ SelectionCriteriaType[SelectionCriteriaType["RangeType"] = 2] = "RangeType";
+ SelectionCriteriaType[SelectionCriteriaType["DimensionType"] = 3] = "DimensionType";
+ SelectionCriteriaType[SelectionCriteriaType["TuplesType"] = 4] = "TuplesType";
+ })(SelectionCriteriaType || (SelectionCriteriaType = {}));
+
+
+/***/ },
+/* 57 */
+/***/ function(module, exports) {
+
+ "use strict";
+ var __extends = (this && this.__extends) || (function () {
+ var extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+ })();
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * Selection Model.
+ */
+ var SelectionModel = (function () {
+ function SelectionModel() {
+ }
+ return SelectionModel;
+ }());
+ exports.SelectionModel = SelectionModel;
+ /**
+ * Value based selection model. Meant for hierarchical, range and categorical selections.
+ */
+ var ValueSelectionModel = (function (_super) {
+ __extends(ValueSelectionModel, _super);
+ function ValueSelectionModel() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.selectValues = [];
+ return _this;
+ }
+ return ValueSelectionModel;
+ }(SelectionModel));
+ exports.ValueSelectionModel = ValueSelectionModel;
+ /**
+ * Hierarchical value selection model
+ */
+ var HierarchicalSelectionModel = (function (_super) {
+ __extends(HierarchicalSelectionModel, _super);
+ function HierarchicalSelectionModel() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ return HierarchicalSelectionModel;
+ }(ValueSelectionModel));
+ exports.HierarchicalSelectionModel = HierarchicalSelectionModel;
+ /**
+ * Range based value selection model
+ */
+ var RangeSelectionModel = (function (_super) {
+ __extends(RangeSelectionModel, _super);
+ function RangeSelectionModel() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ return RangeSelectionModel;
+ }(SelectionModel));
+ exports.RangeSelectionModel = RangeSelectionModel;
+ /**
+ * Dimension value selection model
+ */
+ var DimensionSelectionModel = (function (_super) {
+ __extends(DimensionSelectionModel, _super);
+ function DimensionSelectionModel() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ return DimensionSelectionModel;
+ }(ValueSelectionModel));
+ exports.DimensionSelectionModel = DimensionSelectionModel;
+ /**
+ * Tuple based selection model
+ */
+ var TupleSelectionModel = (function () {
+ function TupleSelectionModel() {
+ this.objectIds = [];
+ }
+ return TupleSelectionModel;
+ }());
+ exports.TupleSelectionModel = TupleSelectionModel;
+ /**
+ * Container class to populate all the selection models when parsing input
+ */
+ var SelectionModelsContainer = (function () {
+ function SelectionModelsContainer() {
+ this.hierModelArr = [];
+ this.dimModelArr = [];
+ this.quantModelArr = [];
+ }
+ return SelectionModelsContainer;
+ }());
+ exports.SelectionModelsContainer = SelectionModelsContainer;
+
+
+/***/ },
+/* 58 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_messaging_1 = __webpack_require__(59);
+ var CrossFrameDispatcher_1 = __webpack_require__(65);
+ // Checks to see if we are running in an iframe currently: https://stackoverflow.com/a/326076/8821153
+ function inIframe(thisWindow) {
+ try {
+ return thisWindow.self !== thisWindow.parent;
+ }
+ catch (e) {
+ return true;
+ }
+ }
+ /**
+ * Attempts to bootstrap the extension with a cross-frame parent where Tableau is running
+ *
+ * @param thisWindow The window which we are running in (injected for unit testing purposes)
+ * @param versionNumber The version number of our API to include in the initialization message
+ * @returns A promise which is doing the actual bootstrapping
+ */
+ function doCrossFrameBootstrap(thisWindow, versionNumber) {
+ return new Promise(function (resolve, reject) {
+ // Check to make sure we're in an iframe and have a parent to communicate with
+ if (!inIframe(thisWindow)) {
+ reject('This extension is not running inside an iframe or desktop. Initialization failed.');
+ }
+ // Create the messenger which will do he communication between this window and our parent
+ // Since we don't know where we are running yet, we have to make this initial origin '*'. Once
+ // we have successfully initialized our extension, we will limit where we send messages
+ var messenger = new api_messaging_1.CrossFrameMessenger(thisWindow, thisWindow.parent, '*');
+ // Prepare to send an initialization message to the parent frame
+ var initializationMessage = messenger.prepareInitializationMessage(versionNumber, api_messaging_1.VERSION);
+ // When we receive a response back from the parent, we check to make sure the guids match and then we know
+ // that the parent is aware of us and we can start communicating
+ messenger.setCommandResponseMessageHandler(function (msg) {
+ // Verify we are getting a response from our initialize message
+ if (msg.commandGuid === initializationMessage.messageGuid) {
+ var dispatcher = new CrossFrameDispatcher_1.CrossFrameDispatcher(messenger);
+ resolve(dispatcher);
+ }
+ });
+ // Now that our handlers are ready, start listening and send our initialization message
+ messenger.startListening();
+ initializationMessage.send();
+ });
+ }
+ exports.doCrossFrameBootstrap = doCrossFrameBootstrap;
+
+
+/***/ },
+/* 59 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+ }
+ Object.defineProperty(exports, "__esModule", { value: true });
+ __export(__webpack_require__(60));
+ __export(__webpack_require__(63));
+ // Export the version number of messaging for consumers to use.
+ // Be very careful making any updates to this contract which break version compatibility.
+ exports.VERSION = {
+ major: 1,
+ minor: 0,
+ fix: 0
+ };
+
+
+/***/ },
+/* 60 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var guid_1 = __webpack_require__(61);
+ var CrossFramePreparedMessage_1 = __webpack_require__(62);
+ var MessageTypes_1 = __webpack_require__(63);
+ var MessageTypeChecks_1 = __webpack_require__(64);
+ /**
+ * The CrossFrameMessenger is the primary export from the api-messaging module. An instance of
+ * this class can be instantiated on both sides of a frame boundary to facilitate communication
+ * in both directions between the frames. This class implements both the dispatcher and the listener
+ * portions, but doesn't require callers to care about both.
+ */
+ var CrossFrameMessenger = (function () {
+ /**
+ * Creates an instance of CrossFrameMessenger. If you would like to use the CrossFrameMessenger as a MessageListener,
+ * be sure to call StartListening and register message handlers.
+ * @param thisWindow The window object which the CrossFrameMessenger lives. An onMessage listener will be added here.
+ * @param [otherWindow] Optional otherWindow which messages will be posted to.
+ * If defined, incoming messages must originate from otherWindow to be passed on
+ * @param [otherWindowOrigin] The target origin which otherWindow must have in order to receive dispatched messages.
+ * This value will be sent as the targetOrigin of a postMessage
+ * (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage)
+ */
+ function CrossFrameMessenger(thisWindow, otherWindow, otherWindowOrigin) {
+ this.thisWindow = thisWindow;
+ this.otherWindow = otherWindow;
+ this.otherWindowOrigin = otherWindowOrigin;
+ // Make sure to call StartListening
+ }
+ ///// MessageListener Implementation
+ CrossFrameMessenger.prototype.startListening = function () {
+ var _this = this;
+ // Check if we already are listening, if not, hook up a message listener
+ if (!this.unregisterFunction) {
+ var boundHandler_1 = this.onMessageReceived.bind(this);
+ this.thisWindow.addEventListener('message', boundHandler_1, true);
+ this.unregisterFunction = function () { return _this.thisWindow.removeEventListener('message', boundHandler_1, true); };
+ }
+ };
+ CrossFrameMessenger.prototype.stopListening = function () {
+ // Stop listening if we have started listening
+ if (this.unregisterFunction) {
+ this.unregisterFunction();
+ this.unregisterFunction = undefined;
+ }
+ };
+ CrossFrameMessenger.prototype.setInitializeMessageHandler = function (handler) {
+ this.initializeMessageHandler = handler;
+ };
+ CrossFrameMessenger.prototype.setCommandResponseMessageHandler = function (handler) {
+ this.commandResponseMessageHandler = handler;
+ };
+ CrossFrameMessenger.prototype.setCommandMessageHandler = function (handler) {
+ this.commandMessageHandler = handler;
+ };
+ CrossFrameMessenger.prototype.setNotificationMessageHandler = function (handler) {
+ this.notificationMessageHandler = handler;
+ };
+ ///// MessageDispatcher Implementation
+ CrossFrameMessenger.prototype.prepareInitializationMessage = function (apiVersion, crossFrameVersion) {
+ var message = {
+ msgGuid: guid_1.Guid.create().formattedValue,
+ msgType: MessageTypes_1.MessageType.Initialize,
+ crossFrameVersion: crossFrameVersion,
+ apiVersion: apiVersion
+ };
+ return this.prepareMessage(message);
+ };
+ CrossFrameMessenger.prototype.prepareCommandMessage = function (verbId, parameters) {
+ var message = {
+ msgGuid: guid_1.Guid.create().formattedValue,
+ msgType: MessageTypes_1.MessageType.Command,
+ verbId: verbId,
+ parameters: parameters
+ };
+ return this.prepareMessage(message);
+ };
+ CrossFrameMessenger.prototype.prepareCommandResponseMessage = function (commandGuid, data, error) {
+ var message = {
+ msgGuid: guid_1.Guid.create().formattedValue,
+ msgType: MessageTypes_1.MessageType.CommandResponse,
+ commandGuid: commandGuid,
+ data: data,
+ error: error
+ };
+ return this.prepareMessage(message);
+ };
+ CrossFrameMessenger.prototype.prepareNotificationMessage = function (notificationId, data) {
+ var message = {
+ msgGuid: guid_1.Guid.create().formattedValue,
+ msgType: MessageTypes_1.MessageType.Notification,
+ notificationId: notificationId,
+ data: data
+ };
+ return this.prepareMessage(message);
+ };
+ /**
+ * Prepares a pending message for sending and returns the prepared message
+ *
+ * @param msg The message to be sent to this.otherWindow
+ * @returns The prepared message
+ */
+ CrossFrameMessenger.prototype.prepareMessage = function (msg) {
+ if (!this.otherWindow || !this.otherWindowOrigin) {
+ throw 'Other window not initialized, cannot dispatch messages';
+ }
+ var preparedMessage = new CrossFramePreparedMessage_1.CrossFramePreparedMessage(msg, this.otherWindow, this.otherWindowOrigin);
+ return preparedMessage;
+ };
+ /**
+ * Called when a message is received. Does some validation of the message, and then
+ * calls an appropriate message handler if one is defined
+ *
+ * @param event The incoming MessageEvent
+ */
+ CrossFrameMessenger.prototype.onMessageReceived = function (event) {
+ // If we have an otherWindow defined, make sure the message is coming from there
+ if (this.otherWindow && event.source !== this.otherWindow) {
+ return;
+ }
+ // Do some validation on event.data to make sure that we have received a real message
+ if (!event.data) {
+ return;
+ }
+ var message = event.data;
+ if (!MessageTypeChecks_1.isMessage(message)) {
+ return;
+ }
+ // Check the declared message type, validate the message, and call an appropriate hander if one exists
+ switch (message.msgType) {
+ case MessageTypes_1.MessageType.Initialize: {
+ if (!MessageTypeChecks_1.isInitMessage(message) || !this.initializeMessageHandler) {
+ return;
+ }
+ this.initializeMessageHandler(message, event.source);
+ break;
+ }
+ case MessageTypes_1.MessageType.CommandResponse: {
+ if (!MessageTypeChecks_1.isCommandResponseMessage(message) || !this.commandResponseMessageHandler) {
+ return;
+ }
+ this.commandResponseMessageHandler(message, event.source);
+ break;
+ }
+ case MessageTypes_1.MessageType.Command: {
+ if (!MessageTypeChecks_1.isCommandMessage(message) || !this.commandMessageHandler) {
+ return;
+ }
+ this.commandMessageHandler(message, event.source);
+ break;
+ }
+ case MessageTypes_1.MessageType.Notification: {
+ if (!MessageTypeChecks_1.isNotificationMessage(message) || !this.notificationMessageHandler) {
+ return;
+ }
+ this.notificationMessageHandler(message, event.source);
+ break;
+ }
+ default:
+ }
+ };
+ return CrossFrameMessenger;
+ }());
+ exports.CrossFrameMessenger = CrossFrameMessenger;
+
+
+/***/ },
+/* 61 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var guidRegex = /^[a-f0-9]{8}-?[a-f0-9]{4}-?[a-f0-9]{4}-?[a-f0-9]{4}-?[a-f0-9]{12}$/i;
+ var emptyGuidValue = '00000000-0000-0000-0000-000000000000';
+ /**
+ * This is where the magic happens. Generates the specified number of GUID quads using a random number.
+ * @param count The number of quads to generate.
+ */
+ function generateQuad(count) {
+ if (count === void 0) { count = 1; }
+ var out = '';
+ for (var i = 0; i < count; i++) {
+ // tslint:disable-next-line:no-bitwise
+ out += (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
+ }
+ return out;
+ }
+ /**
+ * Represents a Globally Unique Identifier (GUID). This is not meant to be cryptographically secure.
+ */
+ var Guid = (function () {
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // Constructor
+ function Guid(value) {
+ this.value = value.toLowerCase();
+ }
+ Object.defineProperty(Guid.prototype, "formattedValue", {
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // Properties
+ /**
+ * Read-only formatted value of the GUID.
+ */
+ get: function () {
+ return this.value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Guid.prototype, "isEmpty", {
+ /**
+ * Returns a value indicating whether this GUID is empty (equal to Guid.EMPTY).
+ */
+ get: function () {
+ return this.value === emptyGuidValue;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // Methods
+ /**
+ * Returns a value indicating whether the value is a valid GUID.
+ * @param value Either a Guid instance or a string
+ */
+ Guid.isGuid = function (value) {
+ return (value instanceof Guid) || guidRegex.test(value);
+ };
+ /**
+ * Creates a new GUID.
+ */
+ Guid.create = function () {
+ return new Guid([generateQuad(2), generateQuad(), generateQuad(), generateQuad(), generateQuad(3)].join('-'));
+ };
+ /**
+ * Parses an existing GUID string. Throws a TypeError if the value is not a valid GUID.
+ * @param value the existing GUID string to parse
+ */
+ Guid.parse = function (value) {
+ if (!Guid.isGuid(value)) {
+ throw new TypeError("Value is not a valid GUID: '" + value + "'");
+ }
+ return new Guid(value);
+ };
+ /**
+ * Returns the formatted GUID.
+ */
+ Guid.prototype.toString = function () {
+ return this.value;
+ };
+ /**
+ * Returns a value indicating whether another GUID is equal to this GUID.
+ * @param other Either another Guid instance or a formatted GUID string.
+ */
+ Guid.prototype.equals = function (other) {
+ var otherGuid = (other instanceof Guid) ? other : Guid.parse(other);
+ return this.formattedValue === otherGuid.formattedValue;
+ };
+ /**
+ * Represents a placeholder GUID or a value to represent a non-GUID.
+ * Returns '00000000-0000-0000-0000-000000000000'.
+ */
+ Guid.EMPTY = new Guid(emptyGuidValue);
+ return Guid;
+ }());
+ exports.Guid = Guid;
+
+
+/***/ },
+/* 62 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * Implementation of the PreparedMessage interface used to post messages between
+ * two frames using window.postMessage
+ */
+ var CrossFramePreparedMessage = (function () {
+ /**
+ * Creates an instance of CrossFramePreparedMessage.
+ * @param _message The message to be sent
+ * @param _target The target window where the message will be sent
+ * @param _origin The targetOrigin where this message can be received
+ */
+ function CrossFramePreparedMessage(_message, _target, _origin) {
+ this._message = _message;
+ this._target = _target;
+ this._origin = _origin;
+ }
+ Object.defineProperty(CrossFramePreparedMessage.prototype, "messageGuid", {
+ get: function () { return this._message.msgGuid; },
+ enumerable: true,
+ configurable: true
+ });
+ CrossFramePreparedMessage.prototype.send = function () {
+ this._target.postMessage(this._message, this._origin);
+ return this;
+ };
+ return CrossFramePreparedMessage;
+ }());
+ exports.CrossFramePreparedMessage = CrossFramePreparedMessage;
+
+
+/***/ },
+/* 63 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * Enum defining the 4 different types of messages we have defined
+ */
+ var MessageType;
+ (function (MessageType) {
+ MessageType["Initialize"] = "initialize";
+ MessageType["Notification"] = "notification";
+ MessageType["Command"] = "command";
+ MessageType["CommandResponse"] = "command-response";
+ })(MessageType = exports.MessageType || (exports.MessageType = {}));
+
+
+/***/ },
+/* 64 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var guid_1 = __webpack_require__(61);
+ var MessageTypes_1 = __webpack_require__(63);
+ /* tslint:disable no-any */
+ function isMessage(data) {
+ if (!data) {
+ return false;
+ }
+ var message = data;
+ if (!message || !message.msgGuid || !message.msgType) {
+ return false;
+ }
+ if (!guid_1.Guid.isGuid(message.msgGuid)) {
+ return false;
+ }
+ if (typeof message.msgType !== 'string') {
+ return false;
+ }
+ var messageTypes = [MessageTypes_1.MessageType.Command, MessageTypes_1.MessageType.CommandResponse, MessageTypes_1.MessageType.Initialize, MessageTypes_1.MessageType.Notification];
+ if (messageTypes.indexOf(message.msgType) < 0) {
+ return false;
+ }
+ return true;
+ }
+ exports.isMessage = isMessage;
+ function isVersion(versionNumber) {
+ if (!versionNumber) {
+ return false;
+ }
+ var v = versionNumber;
+ if (typeof v !== 'object') {
+ return false;
+ }
+ if (typeof v.fix !== 'number' || typeof v.minor !== 'number' || typeof v.major !== 'number') {
+ return false;
+ }
+ return true;
+ }
+ exports.isVersion = isVersion;
+ function isInitMessage(message) {
+ if (!isMessage(message)) {
+ return false;
+ }
+ var initMessage = message;
+ if (initMessage.msgType !== MessageTypes_1.MessageType.Initialize) {
+ return false;
+ }
+ if (!initMessage.apiVersion || !isVersion(initMessage.apiVersion)) {
+ return false;
+ }
+ if (!initMessage.crossFrameVersion || !isVersion(initMessage.crossFrameVersion)) {
+ return false;
+ }
+ return true;
+ }
+ exports.isInitMessage = isInitMessage;
+ function isCommandResponseMessage(message) {
+ if (!isMessage(message)) {
+ return false;
+ }
+ var crMessage = message;
+ if (crMessage.msgType !== MessageTypes_1.MessageType.CommandResponse) {
+ return false;
+ }
+ if (!guid_1.Guid.isGuid(crMessage.commandGuid)) {
+ return false;
+ }
+ if (!crMessage.data && !crMessage.error) {
+ return false;
+ }
+ return true;
+ }
+ exports.isCommandResponseMessage = isCommandResponseMessage;
+ function isCommandMessage(message) {
+ if (!isMessage(message)) {
+ return false;
+ }
+ var commandMessage = message;
+ if (commandMessage.msgType !== MessageTypes_1.MessageType.Command) {
+ return false;
+ }
+ if (!commandMessage.parameters || typeof commandMessage.parameters !== 'object') {
+ return false;
+ }
+ if (!commandMessage.verbId || typeof commandMessage.verbId !== 'string') {
+ return false;
+ }
+ return true;
+ }
+ exports.isCommandMessage = isCommandMessage;
+ function isNotificationMessage(message) {
+ if (!isMessage(message)) {
+ return false;
+ }
+ var notificationMessage = message;
+ if (notificationMessage.msgType !== MessageTypes_1.MessageType.Notification) {
+ return false;
+ }
+ if (!notificationMessage.data || typeof notificationMessage.data !== 'object') {
+ return false;
+ }
+ if (!notificationMessage.notificationId || typeof notificationMessage.notificationId !== 'string') {
+ return false;
+ }
+ return true;
+ }
+ exports.isNotificationMessage = isNotificationMessage;
+
+
+/***/ },
+/* 65 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * This is an implementation of the InternalApiDispatcher interface which functions by passing messages
+ * across a frame boundary. This is usually between the code where our javscript library has been included
+ * by a 3rd party dev and another frame where Tableau server has content.
+ */
+ var CrossFrameDispatcher = (function () {
+ /**
+ * Creates an instance of CrossFrameDispatcher which will use the given messenger to communicate
+ * @param _messenger an instantiated and listening messenger object
+ */
+ function CrossFrameDispatcher(_messenger) {
+ this._messenger = _messenger;
+ // Collection of pending promises which are waiting to be resolved. When we receive a response back from the other frame,
+ // these promises can be either resolved or rejected
+ this._pendingPromises = {};
+ // The collection of notification handlers which have been registered with this dispatcher
+ this._notificationHandlers = [];
+ if (!this._messenger) {
+ throw 'Missing messenger object';
+ }
+ // Set up our message handlers. We only care about incoming notifications and command responses
+ this._messenger.setCommandResponseMessageHandler(this.onCommandResponse.bind(this));
+ this._messenger.setNotificationMessageHandler(this.onNotification.bind(this));
+ }
+ ////// Start InternalApiDispatcher implementation
+ CrossFrameDispatcher.prototype.setVersionNumber = function (versionNumber) {
+ this._versionNumber = versionNumber;
+ };
+ CrossFrameDispatcher.prototype.execute = function (verb, parameters) {
+ var _this = this;
+ // To execute a verb, we first prepare a command message and then define a promise.
+ var preparedMessage = this._messenger.prepareCommandMessage(verb, parameters);
+ var promise = new Promise(function (resolve, reject) {
+ // Save off the pending promise by the messageGuid we are about to send. When a response is
+ // received, we'll be able to resolve this promise with the result
+ _this._pendingPromises[preparedMessage.messageGuid] = { resolve: resolve, reject: reject };
+ });
+ // Actually send the message and return the promise
+ preparedMessage.send();
+ return promise;
+ };
+ CrossFrameDispatcher.prototype.registerNotificationHandler = function (handler) {
+ this._notificationHandlers.push(handler);
+ };
+ CrossFrameDispatcher.prototype.unregisterNotificationHandler = function (handler) {
+ this._notificationHandlers = this._notificationHandlers.filter(function (h) { return h !== handler; });
+ };
+ ////// End InternalApiDispatcher implementation
+ CrossFrameDispatcher.prototype.onCommandResponse = function (response) {
+ // We got a command response, look through the pending promises and resolve
+ if (Object.keys(this._pendingPromises).indexOf(response.commandGuid) < 0) {
+ return; // We don't have any reference to this command, just return
+ }
+ var pendingPromise = this._pendingPromises[response.commandGuid];
+ // If we have an error defined, reject the promise
+ if (response.error) {
+ pendingPromise.reject(response.error);
+ }
+ // If we have data defined, resolve the promise
+ if (response.data) {
+ pendingPromise.resolve({ result: response.data });
+ }
+ // Clean up our pending promises object
+ delete this._pendingPromises[response.commandGuid];
+ };
+ CrossFrameDispatcher.prototype.onNotification = function (notificationMessage) {
+ // Go through each notification handler we have registered and let them know a notification came in
+ for (var _i = 0, _a = this._notificationHandlers; _i < _a.length; _i++) {
+ var handler = _a[_i];
+ try {
+ handler({ notificationId: notificationMessage.notificationId, data: notificationMessage.data });
+ }
+ catch (e) {
+ // Ignore this. Wrap in try/catch so if one handler errors, the other still get the message
+ }
+ }
+ };
+ return CrossFrameDispatcher;
+ }());
+ exports.CrossFrameDispatcher = CrossFrameDispatcher;
+
+
+/***/ },
+/* 66 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var EnumConverter_1 = __webpack_require__(14);
+ exports.EnumConverter = EnumConverter_1.EnumConverter;
+ var Param_1 = __webpack_require__(16);
+ exports.Param = Param_1.Param;
+ var TableauException_1 = __webpack_require__(15);
+ exports.TableauException = TableauException_1.TableauException;
+
+
+/***/ },
+/* 67 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * Implementation of the external DashboardContent namespace.
+ * This does not follow the Impl pattern as DashboardContent is
+ * currently just a (single) property bag.
+ */
+ var DashboardContent = (function () {
+ function DashboardContent(_dashboard) {
+ this._dashboard = _dashboard;
+ }
+ Object.defineProperty(DashboardContent.prototype, "dashboard", {
+ get: function () {
+ return this._dashboard;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return DashboardContent;
+ }());
+ exports.DashboardContent = DashboardContent;
+
+
+/***/ },
+/* 68 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_shared_1 = __webpack_require__(9);
+ /**
+ * Implementation of the external environment namespace.
+ * Environment does not follow the Impl pattern as it is
+ * just a property bag.
+ */
+ var Environment = (function () {
+ function Environment(extensionEnvironment) {
+ this._apiVersion = extensionEnvironment.apiVersion;
+ this._context = api_shared_1.InternalToExternalEnumMappings.extensionContext.convert(extensionEnvironment.extensionContext);
+ this._language = extensionEnvironment.extensionLanguage;
+ this._locale = extensionEnvironment.extensionLocale;
+ this._mode = api_shared_1.InternalToExternalEnumMappings.extensionMode.convert(extensionEnvironment.extensionMode);
+ this._operatingSystem = extensionEnvironment.operatingSystem;
+ this._tableauVersion = extensionEnvironment.tableauVersion;
+ }
+ Object.defineProperty(Environment.prototype, "apiVersion", {
+ get: function () {
+ return this._apiVersion;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Environment.prototype, "context", {
+ get: function () {
+ return this._context;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Environment.prototype, "language", {
+ get: function () {
+ return this._language;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Environment.prototype, "locale", {
+ get: function () {
+ return this._locale;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Environment.prototype, "mode", {
+ get: function () {
+ return this._mode;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Environment.prototype, "operatingSystem", {
+ get: function () {
+ return this._operatingSystem;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Environment.prototype, "tableauVersion", {
+ get: function () {
+ return this._tableauVersion;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Environment;
+ }());
+ exports.Environment = Environment;
+
+
+/***/ },
+/* 69 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * Implementation of the external settings namespace.
+ */
+ var Settings = (function () {
+ function Settings(settingsImpl) {
+ this.settingsImpl = settingsImpl;
+ }
+ Settings.prototype.erase = function (key) {
+ this.settingsImpl.erase(key);
+ };
+ Settings.prototype.get = function (key) {
+ return this.settingsImpl.get(key);
+ };
+ Settings.prototype.getAll = function () {
+ return this.settingsImpl.getAll();
+ };
+ Object.defineProperty(Settings.prototype, "isModified", {
+ get: function () {
+ return this.settingsImpl.isModified;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Settings.prototype.saveAsync = function () {
+ return this.settingsImpl.saveAsync();
+ };
+ Settings.prototype.set = function (key, value) {
+ this.settingsImpl.set(key, value);
+ };
+ return Settings;
+ }());
+ exports.Settings = Settings;
+
+
+/***/ },
+/* 70 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_shared_1 = __webpack_require__(9);
+ var InitializationServiceImpl_1 = __webpack_require__(71);
+ var SettingsServiceImpl_1 = __webpack_require__(72);
+ function registerAllExtensionsServices(dispatcher) {
+ api_shared_1.ApiServiceRegistry.instance.registerService(new InitializationServiceImpl_1.InitializationServiceImpl(dispatcher));
+ api_shared_1.ApiServiceRegistry.instance.registerService(new SettingsServiceImpl_1.SettingsServiceImpl(dispatcher));
+ }
+ exports.registerAllExtensionsServices = registerAllExtensionsServices;
+
+
+/***/ },
+/* 71 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_internal_contract_1 = __webpack_require__(3);
+ var InitializationServiceImpl = (function () {
+ function InitializationServiceImpl(dispatcher) {
+ this.dispatcher = dispatcher;
+ }
+ Object.defineProperty(InitializationServiceImpl.prototype, "serviceName", {
+ get: function () {
+ return "InitializationService" /* InitializationService */;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ InitializationServiceImpl.prototype.initializeDashboardExtensionsAsync = function () {
+ // We don't need any parameters for this call because they are added in for us by the dispatcher
+ return this.dispatcher.execute(api_internal_contract_1.VerbId.InitializeExtension, {}).then(function (response) {
+ // TODO - Validate return value
+ var result = response.result;
+ return result;
+ });
+ };
+ return InitializationServiceImpl;
+ }());
+ exports.InitializationServiceImpl = InitializationServiceImpl;
+
+
+/***/ },
+/* 72 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_internal_contract_1 = __webpack_require__(3);
+ var api_utils_1 = __webpack_require__(66);
+ var SettingsServiceImpl = (function () {
+ function SettingsServiceImpl(dispatcher) {
+ this.dispatcher = dispatcher;
+ }
+ Object.defineProperty(SettingsServiceImpl.prototype, "serviceName", {
+ get: function () {
+ return "SettingsService" /* SettingsService */;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SettingsServiceImpl.prototype.saveSettingsAsync = function (settings) {
+ var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.SettingsValues] = settings, _a);
+ return this.dispatcher.execute(api_internal_contract_1.VerbId.SaveExtensionSettings, parameters).then(function (value) {
+ var result = value.result;
+ if (!result || !result.settingsValues) {
+ throw api_utils_1.TableauException.internalError(['saving settings.']);
+ }
+ return (result.settingsValues);
+ });
+ var _a;
+ };
+ return SettingsServiceImpl;
+ }());
+ exports.SettingsServiceImpl = SettingsServiceImpl;
+
+
+/***/ },
+/* 73 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_shared_1 = __webpack_require__(9);
+ var api_utils_1 = __webpack_require__(66);
+ var SettingsImpl = (function () {
+ function SettingsImpl(settingsInfo) {
+ // Since promises can't be introspected for state, keep a variable that
+ // indicates a save is in progress, so that set/erase can't be called during a save.
+ this._saveInProgress = false;
+ this.initializeSettings(settingsInfo);
+ }
+ SettingsImpl.prototype.erase = function (key) {
+ api_utils_1.Param.verifyValue(key, 'key');
+ // Only make a modification if we have the key already
+ if (this._currentSettings[key]) {
+ this.verifySettingsAreUnlocked();
+ delete this._currentSettings[key];
+ this._isModified = true;
+ }
+ };
+ SettingsImpl.prototype.get = function (key) {
+ api_utils_1.Param.verifyValue(key, 'key');
+ return this._currentSettings[key];
+ };
+ SettingsImpl.prototype.getAll = function () {
+ // Returns a mutable copy of the settings
+ return Object.assign({}, this._currentSettings);
+ };
+ Object.defineProperty(SettingsImpl.prototype, "isModified", {
+ get: function () {
+ return this._isModified;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SettingsImpl.prototype.saveAsync = function () {
+ var _this = this;
+ this.verifySettingsAreUnlocked();
+ // Just resolve immediately if settings are unchanged
+ if (!this._isModified) {
+ return Promise.resolve(this._currentSettings);
+ }
+ this._saveInProgress = true;
+ // Use the settings service to save settings to twb
+ var settingsService = api_shared_1.ApiServiceRegistry.instance.getService("SettingsService" /* SettingsService */);
+ return settingsService.saveSettingsAsync(this._currentSettings).then(function (newSettings) {
+ _this._saveInProgress = false;
+ _this._isModified = false;
+ Object.assign(_this._currentSettings, newSettings);
+ return newSettings;
+ });
+ };
+ SettingsImpl.prototype.set = function (key, value) {
+ api_utils_1.Param.verifyValue(key, 'key'); // Key shouldn't be an empty string.
+ api_utils_1.Param.verifyString(value, 'value'); // Empty string value is allowed.
+ this.verifySettingsAreUnlocked();
+ this._currentSettings[key] = value;
+ this._isModified = true;
+ };
+ SettingsImpl.prototype.initializeSettings = function (settingsInfo) {
+ api_utils_1.Param.verifyValue(settingsInfo, 'settingsInfo');
+ api_utils_1.Param.verifyValue(settingsInfo.settingsValues, 'settingsInfo.SettingsValues');
+ this._currentSettings = settingsInfo.settingsValues;
+ // Reset the isModified flag
+ this._isModified = false;
+ };
+ /**
+ * This helper should be called before any local update to this.currentSettings.
+ * Checks if a current save call is still in progress and throws an error if so.
+ */
+ SettingsImpl.prototype.verifySettingsAreUnlocked = function () {
+ if (this._saveInProgress) {
+ throw api_utils_1.TableauException.error(SettingsImpl.ASYNC_SAVE_IN_PROGRESS);
+ }
+ };
+ SettingsImpl.ASYNC_SAVE_IN_PROGRESS = 'Async Save is in progress, updating settings is not allowed.';
+ return SettingsImpl;
+ }());
+ exports.SettingsImpl = SettingsImpl;
+
+
+/***/ },
+/* 74 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * Implementation of the external Extensions namespace.
+ */
+ var Extensions = (function () {
+ function Extensions(extensionImpl) {
+ this.extensionImpl = extensionImpl;
+ this.extensionImpl = extensionImpl;
+ }
+ Object.defineProperty(Extensions.prototype, "dashboardContent", {
+ get: function () {
+ return this.extensionImpl.dashboardContent;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Extensions.prototype, "environment", {
+ get: function () {
+ return this.extensionImpl.environment;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Extensions.prototype, "settings", {
+ get: function () {
+ return this.extensionImpl.settings;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Extensions.prototype, "ui", {
+ get: function () {
+ throw new Error('API call not yet implemented');
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Extensions.prototype.initializeAsync = function () {
+ return this.extensionImpl.initializeAsync();
+ };
+ return Extensions;
+ }());
+ exports.Extensions = Extensions;
+
+
+/***/ },
+/* 75 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+ }
+ Object.defineProperty(exports, "__esModule", { value: true });
+ __export(__webpack_require__(20));
+
+
+/***/ },
+/* 76 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_core_1 = __webpack_require__(77);
+ var api_internal_contract_1 = __webpack_require__(98);
+ var api_utils_1 = __webpack_require__(99);
+ var AddInApiPresLayerImpl_1 = __webpack_require__(100);
+ var DesktopApiDispatcher_1 = __webpack_require__(101);
+ var QtWebChannelImpl_1 = __webpack_require__(102);
+ /**
+ * Wrapper for all the bootstrapping logic. This code attempts to initialize the qt pres-layer
+ * as well as the desktop dispatcher. It then assigns it to the global desktop dispatcher to
+ * be picked up by the add-in external Api
+ */
+ function doBootstrap() {
+ if (!QtWebChannelImpl_1.hasQt()) {
+ return Promise.reject('Not running in desktop with qt available');
+ }
+ // First we need to initialize the webchannel pres-layer
+ var dispatcherPromise = QtWebChannelImpl_1.initializeWebChannelPresLayer().then(function (preslayer) {
+ var presLayerApi = new AddInApiPresLayerImpl_1.AddInApiPresLayerImpl(preslayer);
+ if (!presLayerApi.AddInInstanceInfo.addInLocatorPresModel) {
+ throw api_utils_1.TableauException.isUndefined(['AddInInstanceInfo']);
+ }
+ // Initialize the apiEventHandler and the desktopDispatcher with it
+ var apiEventHandler = new api_core_1.ApiEventHandler(presLayerApi, presLayerApi.AddInInstanceInfo.addInLocatorPresModel, true);
+ var desktopDispatcher = new DesktopApiDispatcher_1.DesktopApiDispatcher(apiEventHandler);
+ return desktopDispatcher;
+ });
+ // Assign the desktop dispatcher for the other project to find it
+ api_internal_contract_1.InternalApiDispatcherHolder.setDesktopDispatcherPromise(dispatcherPromise);
+ return dispatcherPromise;
+ }
+ exports.doBootstrap = doBootstrap;
+
+
+/***/ },
+/* 77 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+ }
+ Object.defineProperty(exports, "__esModule", { value: true });
+ __export(__webpack_require__(78));
+ var Events_1 = __webpack_require__(87);
+ exports.NotificationId = Events_1.NotificationId;
+
+
+/***/ },
+/* 78 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_internal_contract_1 = __webpack_require__(79);
+ var api_utils_1 = __webpack_require__(80);
+ var Params_1 = __webpack_require__(81);
+ var CommandMappingRegistryFactory_1 = __webpack_require__(82);
+ var EventMappingRegistryFactory_1 = __webpack_require__(86);
+ var ParameterMappingRegistryFactory_1 = __webpack_require__(91);
+ /**
+ * Main class for the api-core project. This class is responsible for executing comamnd and marshalling notifications
+ * between the internal Api and the pres-layer Api. After construction, SetVersionNumber must be called in order to
+ * use this class
+ *
+ * @export
+ * @class ApiEventHandler
+ */
+ var ApiEventHandler = (function () {
+ /**
+ * Creates an instance of ApiEventHandler.
+ * @param {PresentationLayer} presLayer - An implementation of the pres-layer Api to use
+ * @param {AddInLocatorPresModel} addInLocatorPresModel - locator for the add-in which is being referenced
+ * @param {runningInDesktop} boolean - true if this is ApiEventHandler is created in a Desktop context.
+ * @memberof ApiEventHandler
+ */
+ function ApiEventHandler(_presLayer, _presLayerAddInLocator, _runningInDesktop) {
+ this._presLayer = _presLayer;
+ this._presLayerAddInLocator = _presLayerAddInLocator;
+ this._runningInDesktop = _runningInDesktop;
+ }
+ /**
+ * Sets the internal Api version number which the external library is expecting to use. This must be called before
+ * anything else in order to properly set up the translation layers.
+ *
+ * @param {VersionNumber} versionNumber
+ * @memberof ApiEventHandler
+ */
+ ApiEventHandler.prototype.setVersionNumber = function (versionNumber) {
+ this._versionNumber = versionNumber;
+ // Initialize all our registries
+ this._commandRegistry = CommandMappingRegistryFactory_1.CommandMappingRegistryFactory.createCommandMappingRegistry(versionNumber, this._runningInDesktop);
+ this._apiToPresLayerRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createApiToPresLayerParamRegistry(versionNumber);
+ this._presLayerToApiRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createPresLayerToApiParamRegistry(versionNumber);
+ this._eventRegistry = EventMappingRegistryFactory_1.EventMappingRegistryFactory.createEventMappingRegistry(versionNumber);
+ // Convert our addInLocator to the Api version
+ this._apiExtensionLocator = this._presLayerToApiRegistry
+ .get(Params_1.ParameterId.AddInLocator, api_internal_contract_1.ParameterId.ExtensionLocator)(this._presLayerAddInLocator);
+ for (var _i = 0, _a = Object.keys(this._eventRegistry); _i < _a.length; _i++) {
+ var plEventId = _a[_i];
+ // Register for all notifications we know about and bind the event type to the callback
+ this._presLayer.registerNotificationHandler(plEventId, this.onPresLayerNotification.bind(this, plEventId));
+ }
+ };
+ /**
+ * Sets an event handler function to be notified when Api events come in. Only a single registration is supported.
+ *
+ * @param {NotificationHandler} eventHandler
+ * @memberof ApiEventHandler
+ */
+ ApiEventHandler.prototype.setEventHandler = function (eventHandler) {
+ this._eventHandler = eventHandler;
+ // TODO - Register for pres layer events
+ };
+ /**
+ * Executes the requested Api command by converting the parameters, running the command against the pres-layer,
+ * then processing the result back into a format the Api can understand
+ *
+ * @param {VerbId} verb
+ * @param {ExecuteParameters} parameters
+ * @returns {Promise}
+ * @memberof ApiEventHandler
+ */
+ ApiEventHandler.prototype.execute = function (verb, parameters) {
+ var _this = this;
+ this.assertInitialized();
+ var command = this._commandRegistry.getCommand(verb);
+ parameters = parameters || {};
+ // Augment the command with the locator if it's needed
+ if (command.needsAddInLocator) {
+ parameters[api_internal_contract_1.ParameterId.ExtensionLocator] = this._apiExtensionLocator;
+ }
+ var commandsParams = command.createParams(parameters, this._apiToPresLayerRegistry);
+ return this._presLayer.invokeCommand(command.namespace, command.commandId, commandsParams)
+ .then(function (commandResult) {
+ var convertedResult = command.ProcessResult(commandResult, _this._presLayerToApiRegistry);
+ return {
+ result: convertedResult
+ };
+ });
+ };
+ Object.defineProperty(ApiEventHandler.prototype, "ApiExtensionLocator", {
+ get: function () {
+ return this._apiExtensionLocator;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Helper method to check that things are initialized as expected. Throws if initialization not complete
+ *
+ * @private
+ * @memberof ApiEventHandler
+ */
+ ApiEventHandler.prototype.assertInitialized = function () {
+ if (!this._versionNumber) {
+ throw api_utils_1.TableauException.error(ApiEventHandler.VERSION_NOT_CONFIGURED);
+ }
+ };
+ /**
+ * Called when a new event notification comes in from the presentation layer
+ *
+ * @param eventId The pres layer event id
+ * @param presModel The pres model that is included with the event
+ */
+ ApiEventHandler.prototype.onPresLayerNotification = function (eventId, presModel) {
+ // First look up this eventId in our registry and convert to presModel
+ var eventMapping = this._eventRegistry[eventId];
+ var apiModel = eventMapping.converter(presModel);
+ if (this._eventHandler) {
+ this._eventHandler(eventMapping.apiId, apiModel);
+ }
+ };
+ ApiEventHandler.VERSION_NOT_CONFIGURED = 'VersionNumber not yet configured. Cannot take any actions';
+ return ApiEventHandler;
+ }());
+ exports.ApiEventHandler = ApiEventHandler;
+
+
+/***/ },
+/* 79 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+ }
+ Object.defineProperty(exports, "__esModule", { value: true });
+ __export(__webpack_require__(4));
+ __export(__webpack_require__(5));
+ __export(__webpack_require__(6));
+ __export(__webpack_require__(7));
+ __export(__webpack_require__(8));
+
+
+/***/ },
+/* 80 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var EnumConverter_1 = __webpack_require__(14);
+ exports.EnumConverter = EnumConverter_1.EnumConverter;
+ var Param_1 = __webpack_require__(16);
+ exports.Param = Param_1.Param;
+ var TableauException_1 = __webpack_require__(15);
+ exports.TableauException = TableauException_1.TableauException;
+
+
+/***/ },
+/* 81 */
+/***/ function(module, exports) {
+
+ "use strict";
+ // -----------------------------------------------------------------------------
+ //
+ // This file is the copyrighted property of Tableau Software and is protected
+ // by registered patents and other applicable U.S. and international laws and
+ // regulations.
+ //
+ // Unlicensed use of the contents of this file is prohibited. Please refer to
+ // the NOTICES.txt file for further details.
+ //
+ // -----------------------------------------------------------------------------
+ // WARNING: Computer generated file. Do not hand modify.
+ // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/params-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-params.data']
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var ParameterId;
+ (function (ParameterId) {
+ // DPI_IntegerRLE, having type int[]
+ ParameterId["IntegerRLE"] = "intRle";
+ // DPI_UnsignedIntegerRLE, having type uint[]
+ ParameterId["UnsignedIntegerRLE"] = "uintRle";
+ // DPI_FloatRLE, having type float[]
+ ParameterId["FloatRLE"] = "floatRle";
+ // DPI_ParameterID, having type string
+ ParameterId["ParameterID"] = "paramType";
+ // DPI_AllowCustomDatabase, having type bool
+ ParameterId["AllowCustomDatabase"] = "allowCustomDatabase";
+ // DPI_AllowCustomSchema, having type bool
+ ParameterId["AllowCustomSchema"] = "allowCustomSchema";
+ // DPI_AllowCustomSQL, having type bool
+ ParameterId["AllowCustomSQL"] = "allowCustomSql";
+ // DPI_AllowCustomSQLWithoutSchema, having type bool
+ ParameterId["AllowCustomSQLWithoutSchema"] = "allowCustomSqlWithoutSchema";
+ // DPI_AllowPreviewData, having type bool
+ ParameterId["AllowPreviewData"] = "allowPreviewData";
+ // DPI_AllowStoredProc, having type bool
+ ParameterId["AllowStoredProc"] = "allowStoredProcedure";
+ // DPI_AllowUnion, having type bool
+ ParameterId["AllowUnion"] = "allowUnion";
+ // DPI_AreVariablesVisible, having type bool
+ ParameterId["AreVariablesVisible"] = "areVariablesVisible";
+ // DPI_AttrLegacyConnection, having type bool
+ ParameterId["AttrLegacyConnection"] = "widgetAttrLegacy";
+ // DPI_AttrReadUncommitted, having type bool
+ ParameterId["AttrReadUncommitted"] = "widgetAttrReadUncommittedData";
+ // DPI_AttrRequireSSL, having type bool
+ ParameterId["AttrRequireSSL"] = "widgetAttrRequireSsl";
+ // DPI_AttrRequireEncryption, having type bool
+ ParameterId["AttrRequireEncryption"] = "widgetAttrRequireEncryption";
+ // DPI_Bool, having type bool
+ ParameterId["Bool"] = "bool";
+ // DPI_CanPartition, having type bool
+ ParameterId["CanPartition"] = "canPartition";
+ // DPI_CanRecommendDataSources, having type bool
+ ParameterId["CanRecommendDataSources"] = "canRecommendDatasources";
+ // DPI_CanRecommendTables, having type bool
+ ParameterId["CanRecommendTables"] = "canRecommendTables";
+ // DPI_CheckPermissions, having type bool
+ ParameterId["CheckPermissions"] = "checkPermissions";
+ // DPI_DatabaseNameOptional, having type bool
+ ParameterId["DatabaseNameOptional"] = "databaseNameOptional";
+ // DPI_DatabaseWHOptional, having type bool
+ ParameterId["DatabaseWHOptional"] = "databaseWarehouseOptional";
+ // DPI_DoValidation, having type bool
+ ParameterId["DoValidation"] = "doValidation";
+ // DPI_DoneLoadingAllSheets, having type bool
+ ParameterId["DoneLoadingAllSheets"] = "googleSheetDoneLoading";
+ // DPI_GABasicItemsEnabled, having type bool
+ ParameterId["GABasicItemsEnabled"] = "gaBasicItemsEnabled";
+ // DPI_GADimensionMeasuresEnabled, having type bool
+ ParameterId["GADimensionMeasuresEnabled"] = "gaDimensionsMeasuresEnabled";
+ // DPI_GAFiltersEnabled, having type bool
+ ParameterId["GAFiltersEnabled"] = "gaFiltersEnabled";
+ // DPI_HasDatabase, having type bool
+ ParameterId["HasDatabase"] = "hasDatabase";
+ // DPI_HasDataLoss, having type bool
+ ParameterId["HasDataLoss"] = "hasDataLoss";
+ // DPI_HasFastMetadata, having type bool
+ ParameterId["HasFastMetadata"] = "hasFastMetadata";
+ // DPI_HasNewlyDiscoveredSchema, having type bool
+ ParameterId["HasNewlyDiscoveredSchema"] = "hasNewlyDiscoveredSchema";
+ // DPI_HasPermissions, having type bool
+ ParameterId["HasPermissions"] = "hasPermissions";
+ // DPI_HasSchema, having type bool
+ ParameterId["HasSchema"] = "hasSchema";
+ // DPI_HasSchemaCount, having type bool
+ ParameterId["HasSchemaCount"] = "hasSchemaCount";
+ // DPI_HasTables, having type bool
+ ParameterId["HasTables"] = "hasTables";
+ // DPI_HasUncommittedChanges, having type bool
+ ParameterId["HasUncommittedChanges"] = "hasUncommittedChanges";
+ // DPI_HasWarehouse, having type bool
+ ParameterId["HasWarehouse"] = "hasWarehouse";
+ // DPI_HasWarning, having type bool
+ ParameterId["HasWarning"] = "hasWarning";
+ // DPI_IsCalculated, having type bool
+ ParameterId["IsCalculated"] = "isCalculated";
+ // DPI_IsConnectedToDataSource, having type bool
+ ParameterId["IsConnectedToDataSource"] = "isConnectedDatasource";
+ // DPI_IsDisabledDataConnection, having type bool
+ ParameterId["IsDisabledDataConnection"] = "isDisabledDataConnection";
+ // DPI_IsEditable, having type bool
+ ParameterId["IsEditable"] = "isEditable";
+ // DPI_IsEnabled, having type bool
+ ParameterId["IsEnabled"] = "isEnabled";
+ // DPI_IsFinishedConnecting, having type bool
+ ParameterId["IsFinishedConnecting"] = "isFinishedConnecting";
+ // DPI_IsHidden, having type bool
+ ParameterId["IsHidden"] = "isHidden";
+ // DPI_IsMultiTable, having type bool
+ ParameterId["IsMultiTable"] = "isMultiTable";
+ // DPI_IsNewCustomSQL, having type bool
+ ParameterId["IsNewCustomSQL"] = "isNewCustomSql";
+ // DPI_IsNewDataSource, having type bool
+ ParameterId["IsNewDataSource"] = "isNewDataSrc";
+ // DPI_IsPublishedFederated, having type bool
+ ParameterId["IsPublishedFederated"] = "isPublishedFederated";
+ // DPI_IsSampled, having type bool
+ ParameterId["IsSampled"] = "isSampled";
+ // DPI_IsSchemaMemberNewlyDiscovered, having type bool
+ ParameterId["IsSchemaMemberNewlyDiscovered"] = "isSchemaMemberNewlyDiscovered";
+ // DPI_IsSlowFast, having type bool
+ ParameterId["IsSlowFast"] = "isSlowfast";
+ // DPI_IsSupported, having type bool
+ ParameterId["IsSupported"] = "isSupported";
+ // DPI_IsTableSelectionVisible, having type bool
+ ParameterId["IsTableSelectionVisible"] = "isTableSelectionVisible";
+ // DPI_IsTableauServerDatasource, having type bool
+ ParameterId["IsTableauServerDatasource"] = "isTableauServerDatasource";
+ // DPI_IsTableauServerDatasourceConnectable, having type bool
+ ParameterId["IsTableauServerDatasourceConnectable"] = "isTableauServerDatasourceConnectable";
+ // DPI_IsTableauServerDatasourceDownloadable, having type bool
+ ParameterId["IsTableauServerDatasourceDownloadable"] = "isTableauServerDatasourceDownloadable";
+ // DPI_IsVisible, having type bool
+ ParameterId["IsVisible"] = "isVisible";
+ // DPI_NeedFlatten, having type bool
+ ParameterId["NeedFlatten"] = "needFlatten";
+ // DPI_SSLRequiresCertificate, having type bool
+ ParameterId["SSLRequiresCertificate"] = "sslRequiresCertificate";
+ // DPI_SchemaOptional, having type bool
+ ParameterId["SchemaOptional"] = "schemaOptional";
+ // DPI_ServiceNameOptional, having type bool
+ ParameterId["ServiceNameOptional"] = "serviceNameOptional";
+ // DPI_ShouldWarnForCrossSchemaJoins, having type bool
+ ParameterId["ShouldWarnForCrossSchemaJoins"] = "shouldWarnCrossSchemaJoins";
+ // DPI_ShowBrowseButton, having type bool
+ ParameterId["ShowBrowseButton"] = "showBrowseButton";
+ // DPI_ShowConnectionPrompt, having type bool
+ ParameterId["ShowConnectionPrompt"] = "showConnectionPrompt";
+ // DPI_ShowDBBrowseButton, having type bool
+ ParameterId["ShowDBBrowseButton"] = "showDbBrowseButton";
+ // DPI_ShowDBNamePrompt, having type bool
+ ParameterId["ShowDBNamePrompt"] = "showDbPrompt";
+ // DPI_ShowDBWHNamePrompt, having type bool
+ ParameterId["ShowDBWHNamePrompt"] = "showDbwhPrompt";
+ // DPI_ShowImportSSLCertLabel, having type bool
+ ParameterId["ShowImportSSLCertLabel"] = "showImportSslcertLabel";
+ // DPI_ShowPortPrompt, having type bool
+ ParameterId["ShowPortPrompt"] = "showPortPrompt";
+ // DPI_ShowSSLCheckbox, having type bool
+ ParameterId["ShowSSLCheckbox"] = "showSslCheckbox";
+ // DPI_ShowEncryptionCheckbox, having type bool
+ ParameterId["ShowEncryptionCheckbox"] = "showEncryptionCheckbox";
+ // DPI_ShowServerNamePrompt, having type bool
+ ParameterId["ShowServerNamePrompt"] = "showServerPrompt";
+ // DPI_ShowServiceNamePrompt, having type bool
+ ParameterId["ShowServiceNamePrompt"] = "showServicePrompt";
+ // DPI_ShowUncommittedDataCheckbox, having type bool
+ ParameterId["ShowUncommittedDataCheckbox"] = "showUncommittedDataCheckbox";
+ // DPI_SupportsGenericAuth, having type bool
+ ParameterId["SupportsGenericAuth"] = "supportsGenericAuth";
+ // DPI_TableauServerFetchAscending, having type bool
+ ParameterId["TableauServerFetchAscending"] = "tableauServerFetchAscending";
+ // DPI_UsesRadioButton, having type bool
+ ParameterId["UsesRadioButton"] = "usesRadioButton";
+ // DPI_BigQueryLegacySQLCheckStatus, having type bool
+ ParameterId["BigQueryLegacySQLCheckStatus"] = "datasourceBigqueryLegacySqlCheckStatus";
+ // DPI_HasBigQueryLegacySQLCheck, having type bool
+ ParameterId["HasBigQueryLegacySQLCheck"] = "datasourceBigqueryLegacySqlCheck";
+ // DPI_AutoFetchLimit, having type int
+ ParameterId["AutoFetchLimit"] = "autoFetchLimit";
+ // DPI_ConnectionType, having type int
+ ParameterId["ConnectionType"] = "connectionType";
+ // DPI_IconId, having type int
+ ParameterId["IconId"] = "iconId";
+ // DPI_SelectedCatalogIndex, having type int
+ ParameterId["SelectedCatalogIndex"] = "selectedCatalogIndex";
+ // DPI_SelectedCubeIndex, having type int
+ ParameterId["SelectedCubeIndex"] = "selectedCubeIndex";
+ // DPI_SelectedGAAccountIndex, having type int
+ ParameterId["SelectedGAAccountIndex"] = "selectedGaAccountIndex";
+ // DPI_SelectedGAMeasureSetIndex, having type int
+ ParameterId["SelectedGAMeasureSetIndex"] = "selectedGaMeasureSetIndex";
+ // DPI_SelectedGAPropertyIndex, having type int
+ ParameterId["SelectedGAPropertyIndex"] = "selectedGaPropertyIndex";
+ // DPI_SelectedGASegmentIndex, having type int
+ ParameterId["SelectedGASegmentIndex"] = "selectedGaSegmentIndex";
+ // DPI_SelectedGAViewIndex, having type int
+ ParameterId["SelectedGAViewIndex"] = "selectedGaViewIndex";
+ // DPI_SelectedGoogleSheetIndex, having type int
+ ParameterId["SelectedGoogleSheetIndex"] = "selectedGoogleSheetIndex";
+ // DPI_SelectedOptionIndex, having type int
+ ParameterId["SelectedOptionIndex"] = "selectedOptionIndex";
+ // DPI_SlowMetadataCount, having type int
+ ParameterId["SlowMetadataCount"] = "slowMetadataCount";
+ // DPI_TableauServerFetchSortBy, having type int
+ ParameterId["TableauServerFetchSortBy"] = "tableauServerFetchSort";
+ // DPI_ActualParameterOrdinal, having type uint
+ ParameterId["ActualParameterOrdinal"] = "actualParameterOrdinal";
+ // DPI_ActualParameterType, having type uint
+ ParameterId["ActualParameterType"] = "actualParameterType";
+ // DPI_CharSetID, having type uint
+ ParameterId["CharSetID"] = "charsetId";
+ // DPI_DataSourceOrdinal, having type uint
+ ParameterId["DataSourceOrdinal"] = "datasourceOrdinal";
+ // DPI_FilterCount, having type uint
+ ParameterId["FilterCount"] = "filterCount";
+ // DPI_VariablesCount, having type uint
+ ParameterId["VariablesCount"] = "variablesCount";
+ // DPI_ActualParameterDisplayName, having type string
+ ParameterId["ActualParameterDisplayName"] = "actualParameterDisplayName";
+ // DPI_ActualParameterName, having type string
+ ParameterId["ActualParameterName"] = "actualParameterName";
+ // DPI_ActualParameterValue, having type string
+ ParameterId["ActualParameterValue"] = "actualParameterValue";
+ // DPI_AttrAPIVersion, having type string
+ ParameterId["AttrAPIVersion"] = "attrApiVersion";
+ // DPI_AttrAuthType, having type string
+ ParameterId["AttrAuthType"] = "widgetAttrAuthtype";
+ // DPI_AttrAuthenticator, having type string
+ ParameterId["AttrAuthenticator"] = "widgetAttrAuthenticator";
+ // DPI_AttrConnectionData, having type string
+ ParameterId["AttrConnectionData"] = "attrConnectionData";
+ // DPI_AttrConnectionName, having type string
+ ParameterId["AttrConnectionName"] = "attrConnectionName";
+ // DPI_AttrConnectionType, having type string
+ ParameterId["AttrConnectionType"] = "widgetAttrConnectiontype";
+ // DPI_AttrConnectionURL, having type string
+ ParameterId["AttrConnectionURL"] = "attrConnectionUrl";
+ // DPI_AttrCubeSpecificationId, having type string
+ ParameterId["AttrCubeSpecificationId"] = "widgetAttrCubeSpecificationId";
+ // DPI_AttrCubeSpecificationValue, having type string
+ ParameterId["AttrCubeSpecificationValue"] = "widgetAttrCubeSpecificationValue";
+ // DPI_AttrDSN, having type string
+ ParameterId["AttrDSN"] = "widgetAttrDsn";
+ // DPI_AttrDatabase, having type string
+ ParameterId["AttrDatabase"] = "widgetAttrDb";
+ // DPI_AttrDatabaseWarehouse, having type string
+ ParameterId["AttrDatabaseWarehouse"] = "widgetAttrDbwh";
+ // DPI_AttrDriver, having type string
+ ParameterId["AttrDriver"] = "widgetAttrDriver";
+ // DPI_AttrFilename, having type string
+ ParameterId["AttrFilename"] = "widgetAttrFilename";
+ // DPI_AttrHTTPPath, having type string
+ ParameterId["AttrHTTPPath"] = "widgetAttrHttpPath";
+ // DPI_AttrIncrementalRefreshKey, having type string
+ ParameterId["AttrIncrementalRefreshKey"] = "attrIncrementalRefreshKey";
+ // DPI_AttrKerberosHost, having type string
+ ParameterId["AttrKerberosHost"] = "widgetAttrKerberosHost";
+ // DPI_AttrKerberosRealm, having type string
+ ParameterId["AttrKerberosRealm"] = "widgetAttrKerberosRealm";
+ // DPI_AttrKerberosService, having type string
+ ParameterId["AttrKerberosService"] = "widgetAttrKerberosService";
+ // DPI_AttrLastRecordToken, having type string
+ ParameterId["AttrLastRecordToken"] = "attrLastRecordToken";
+ // DPI_AttrMDWPath, having type string
+ ParameterId["AttrMDWPath"] = "widgetAttrMdwPath";
+ // DPI_AttrMDWUsername, having type string
+ ParameterId["AttrMDWUsername"] = "widgetAttrMdwUsername";
+ // DPI_AttrODBCPrompt, having type string
+ ParameterId["AttrODBCPrompt"] = "widgetAttrOdbcPrompt";
+ // DPI_AttrODBCStringExtras, having type string
+ ParameterId["AttrODBCStringExtras"] = "widgetAttrOdbcStringExtras";
+ // DPI_AttrPort, having type string
+ ParameterId["AttrPort"] = "widgetAttrPort";
+ // DPI_AttrSAPClient, having type string
+ ParameterId["AttrSAPClient"] = "widgetAttrSapClient";
+ // DPI_AttrSAPLanguage, having type string
+ ParameterId["AttrSAPLanguage"] = "widgetAttrSapLanguage";
+ // DPI_AttrEdition, having type string
+ ParameterId["AttrEdition"] = "widgetAttrSslEdition";
+ // DPI_AttrSSODomain, having type string
+ ParameterId["AttrSSODomain"] = "widgetAttrSsoDomain";
+ // DPI_AttrSSLCert, having type string
+ ParameterId["AttrSSLCert"] = "widgetAttrSslCert";
+ // DPI_AttrScriptVersion, having type string
+ ParameterId["AttrScriptVersion"] = "attrScriptVersion";
+ // DPI_AttrServer, having type string
+ ParameterId["AttrServer"] = "widgetAttrServer";
+ // DPI_AttrService, having type string
+ ParameterId["AttrService"] = "widgetAttrService";
+ // DPI_AttrUsername, having type string
+ ParameterId["AttrUsername"] = "widgetAttrUser";
+ // DPI_AuthenticationPrompt, having type string
+ ParameterId["AuthenticationPrompt"] = "authenticationPrompt";
+ // DPI_ButtonClickAction, having type string
+ ParameterId["ButtonClickAction"] = "buttonClickAction";
+ // DPI_ButtonCaption, having type string
+ ParameterId["ButtonCaption"] = "buttonCaption";
+ // DPI_ButtonImagePath, having type string
+ ParameterId["ButtonImagePath"] = "buttonImagePath";
+ // DPI_ButtonImagePathKey, having type string
+ ParameterId["ButtonImagePathKey"] = "buttonImagePathKey";
+ // DPI_Caption, having type string
+ ParameterId["Caption"] = "caption";
+ // DPI_CatalogListPrompt, having type string
+ ParameterId["CatalogListPrompt"] = "catalogListPrompt";
+ // DPI_CatalogName, having type string
+ ParameterId["CatalogName"] = "catalogName";
+ // DPI_CatalogSearchTerm, having type string
+ ParameterId["CatalogSearchTerm"] = "catalogSearchTerm";
+ // DPI_Category, having type string
+ ParameterId["Category"] = "itemCategory";
+ // DPI_ClassName, having type string
+ ParameterId["ClassName"] = "classNameForCleaning";
+ // DPI_CloudFileClassName, having type string
+ ParameterId["CloudFileClassName"] = "cloudFileClassName";
+ // DPI_CloudFileStorageProvider, having type string
+ ParameterId["CloudFileStorageProvider"] = "cloudFileStorageProvider";
+ // DPI_ConfigName, having type string
+ ParameterId["ConfigName"] = "connectionConfigName";
+ // DPI_ConnectionCaption, having type string
+ ParameterId["ConnectionCaption"] = "connectionCaption";
+ // DPI_ConnectionDescriptionLabel, having type string
+ ParameterId["ConnectionDescriptionLabel"] = "connectionDescriptionLabel";
+ // DPI_ConnectionClass, having type string
+ ParameterId["ConnectionClass"] = "connectionClassName";
+ // DPI_ConnectionName, having type string
+ ParameterId["ConnectionName"] = "connectionName";
+ // DPI_ConnectionOptionName, having type string
+ ParameterId["ConnectionOptionName"] = "connectionOptionName";
+ // DPI_ConnectionSpecificationTitle, having type string
+ ParameterId["ConnectionSpecificationTitle"] = "connectionSpecificationTitle";
+ // DPI_ConnectionTypeLabel, having type string
+ ParameterId["ConnectionTypeLabel"] = "connectionTypeLabel";
+ // DPI_ConnectionURI, having type string
+ ParameterId["ConnectionURI"] = "connectionUri";
+ // DPI_CubeDescription, having type string
+ ParameterId["CubeDescription"] = "cubeDescription";
+ // DPI_CubeLastUpdated, having type string
+ ParameterId["CubeLastUpdated"] = "cubeLastUpdated";
+ // DPI_CubeListPrompt, having type string
+ ParameterId["CubeListPrompt"] = "cubeListPrompt";
+ // DPI_CubeName, having type string
+ ParameterId["CubeName"] = "cubeName";
+ // DPI_CubeSearchTerm, having type string
+ ParameterId["CubeSearchTerm"] = "cubeSearchTerm";
+ // DPI_CurrentText, having type string
+ ParameterId["CurrentText"] = "currentText";
+ // DPI_CustomSplitStringSeparator, having type string
+ ParameterId["CustomSplitStringSeparator"] = "customSplitStringSeparator";
+ // DPI_DatasourceId, having type string
+ ParameterId["DatasourceId"] = "datasourceId";
+ // DPI_DBNamePrompt, having type string
+ ParameterId["DBNamePrompt"] = "dbNamePrompt";
+ // DPI_DBWHNamePrompt, having type string
+ ParameterId["DBWHNamePrompt"] = "dbWarehouseNamePrompt";
+ // DPI_DSClass, having type string
+ ParameterId["DSClass"] = "dsClass";
+ // DPI_DatabaseName, having type string
+ ParameterId["DatabaseName"] = "datasourceDatabaseName";
+ // DPI_DatabaseNote, having type string
+ ParameterId["DatabaseNote"] = "databaseNote";
+ // DPI_DragLabel, having type string
+ ParameterId["DragLabel"] = "dragLabel";
+ // DPI_EffectiveDateRange, having type string
+ ParameterId["EffectiveDateRange"] = "effectiveDateRange";
+ // DPI_GoogleSheetCreatedTime, having type string
+ ParameterId["GoogleSheetCreatedTime"] = "googleSheetCreatedTime";
+ // DPI_GoogleSheetId, having type string
+ ParameterId["GoogleSheetId"] = "googleSheetId";
+ // DPI_GoogleSheetLastModifiedTime, having type string
+ ParameterId["GoogleSheetLastModifiedTime"] = "googleSheetLastModifiedTime";
+ // DPI_GoogleSheetLastModifyingUser, having type string
+ ParameterId["GoogleSheetLastModifyingUser"] = "googleSheetLastModifyingUser";
+ // DPI_GoogleSheetLastViewedByUserTime, having type string
+ ParameterId["GoogleSheetLastViewedByUserTime"] = "googleSheetLastViewedByUserTime";
+ // DPI_GoogleSheetMimeType, having type string
+ ParameterId["GoogleSheetMimeType"] = "googleSheetMimeType";
+ // DPI_GoogleSheetName, having type string
+ ParameterId["GoogleSheetName"] = "googleSheetName";
+ // DPI_GoogleSheetOwner, having type string
+ ParameterId["GoogleSheetOwner"] = "googleSheetOwner";
+ // DPI_GoogleSheetThumbnailLink, having type string
+ ParameterId["GoogleSheetThumbnailLink"] = "googleSheetThumbnailLink";
+ // DPI_GoogleSheetThumbnailId, having type string
+ ParameterId["GoogleSheetThumbnailId"] = "googleSheetThumbnailId";
+ // DPI_GoogleSheetThumbnailLocalPath, having type string
+ ParameterId["GoogleSheetThumbnailLocalPath"] = "googleSheetThumbnailLocalPath";
+ // DPI_GoogleSheetWebViewLink, having type string
+ ParameterId["GoogleSheetWebViewLink"] = "googleSheetWebViewLink";
+ // DPI_GoogleSheetsListErrorMessage, having type string
+ ParameterId["GoogleSheetsListErrorMessage"] = "googleSheetsListErrorMessage";
+ // DPI_InitialSQL, having type string
+ ParameterId["InitialSQL"] = "initialSql";
+ // DPI_ISODate, having type string
+ ParameterId["ISODate"] = "isoDate";
+ // DPI_ISOEndDate, having type string
+ ParameterId["ISOEndDate"] = "isoEndDate";
+ // DPI_ISOStartDate, having type string
+ ParameterId["ISOStartDate"] = "isoStartDate";
+ // DPI_IsolationLevel, having type string
+ ParameterId["IsolationLevel"] = "datasourceIsolationLevel";
+ // DPI_ItemDescription, having type string
+ ParameterId["ItemDescription"] = "itemDescription";
+ // DPI_ItemId, having type string
+ ParameterId["ItemId"] = "itemId";
+ // DPI_KerberosHost, having type string
+ ParameterId["KerberosHost"] = "datasourceKerberosHost";
+ // DPI_KerberosRealm, having type string
+ ParameterId["KerberosRealm"] = "datasourceKerberosRealm";
+ // DPI_KerberosService, having type string
+ ParameterId["KerberosService"] = "datasourceKerberosService";
+ // DPI_Name, having type string
+ ParameterId["Name"] = "name";
+ // DPI_OptionId, having type string
+ ParameterId["OptionId"] = "optionId";
+ // DPI_PartitioningButtonLabel, having type string
+ ParameterId["PartitioningButtonLabel"] = "partitioningButtonLabel";
+ // DPI_PartitioningButtonTooltip, having type string
+ ParameterId["PartitioningButtonTooltip"] = "partitioningButtonTooltip";
+ // DPI_PartitioningText, having type string
+ ParameterId["PartitioningText"] = "queryPartitioningText";
+ // DPI_PdfStartPage, having type string
+ ParameterId["PdfStartPage"] = "pdfStartPage";
+ // DPI_PdfEndPage, having type string
+ ParameterId["PdfEndPage"] = "pdfEndPage";
+ // DPI_PortPrompt, having type string
+ ParameterId["PortPrompt"] = "portPrompt";
+ // DPI_PromptText, having type string
+ ParameterId["PromptText"] = "promptText";
+ // DPI_QueryBanding, having type string
+ ParameterId["QueryBanding"] = "queryBanding";
+ // DPI_QueryText, having type string
+ ParameterId["QueryText"] = "queryText";
+ // DPI_RecommendationUUID, having type string
+ ParameterId["RecommendationUUID"] = "recommendationUuid";
+ // DPI_SQLQuery, having type string
+ ParameterId["SQLQuery"] = "sqlQuery";
+ // DPI_SchemaComboFallbackText, having type string
+ ParameterId["SchemaComboFallbackText"] = "schemaComboFallbackText";
+ // DPI_SchemaLabel, having type string
+ ParameterId["SchemaLabel"] = "schemaLabel";
+ // DPI_SchemaMemberGlobalName, having type string
+ ParameterId["SchemaMemberGlobalName"] = "schemaMemberGlobalName";
+ // DPI_SchemaName, having type string
+ ParameterId["SchemaName"] = "datasourceSchemaName";
+ // DPI_ScriptText, having type string
+ ParameterId["ScriptText"] = "scriptText";
+ // DPI_SecondaryWhiteList, having type string
+ ParameterId["SecondaryWhiteList"] = "secondaryWhiteList";
+ // DPI_Server, having type string
+ ParameterId["Server"] = "datasourceServer";
+ // DPI_ServerNamePrompt, having type string
+ ParameterId["ServerNamePrompt"] = "serverNamePrompt";
+ // DPI_Service, having type string
+ ParameterId["Service"] = "datasourceService";
+ // DPI_ServiceNamePrompt, having type string
+ ParameterId["ServiceNamePrompt"] = "servicePrompt";
+ // DPI_SheetFormatting, having type string
+ ParameterId["SheetFormatting"] = "sheetFormatting";
+ // DPI_SlowMetadataSearchTerm, having type string
+ ParameterId["SlowMetadataSearchTerm"] = "slowMetadataSearchTerm";
+ // DPI_StandardConnectionName, having type string
+ ParameterId["StandardConnectionName"] = "datasourceStandardConnectionName";
+ // DPI_StandardConnectionPlaceholderText, having type string
+ ParameterId["StandardConnectionPlaceholderText"] = "standardConnectionPlaceholderText";
+ // DPI_StoredProcedureParameterTitle, having type string
+ ParameterId["StoredProcedureParameterTitle"] = "storedProcedureParameterTitle";
+ // DPI_TableAlias, having type string
+ ParameterId["TableAlias"] = "tableAlias";
+ // DPI_RightTableAlias, having type string
+ ParameterId["RightTableAlias"] = "rightTableAlias";
+ // DPI_TableCaption, having type string
+ ParameterId["TableCaption"] = "tableCaption";
+ // DPI_TableCollectionName, having type string
+ ParameterId["TableCollectionName"] = "tableCollectionName";
+ // DPI_TablePlaceholderText, having type string
+ ParameterId["TablePlaceholderText"] = "tablePlaceholderText";
+ // DPI_TableRanking, having type string
+ ParameterId["TableRanking"] = "tableRanking";
+ // DPI_TableSortKey, having type string
+ ParameterId["TableSortKey"] = "tableSortkey";
+ // DPI_TableTooltip, having type string
+ ParameterId["TableTooltip"] = "tableTooltip";
+ // DPI_TableToReplace, having type string
+ ParameterId["TableToReplace"] = "tableToReplace";
+ // DPI_TableWarningMessage, having type string
+ ParameterId["TableWarningMessage"] = "tableWarningMessage";
+ // DPI_TableauServerDatasourceDescription, having type string
+ ParameterId["TableauServerDatasourceDescription"] = "tableauServerDatasourceDescription";
+ // DPI_TableauServerDatasourceLastExtract, having type string
+ ParameterId["TableauServerDatasourceLastExtract"] = "tableauServerDatasourceLastExtract";
+ // DPI_TableauServerDatasourceModified, having type string
+ ParameterId["TableauServerDatasourceModified"] = "tableauServerDatasourceModified";
+ // DPI_TableauServerDatasourceOwner, having type string
+ ParameterId["TableauServerDatasourceOwner"] = "tableauServerDatasourceOwner";
+ // DPI_TableauServerDatasourcePath, having type string
+ ParameterId["TableauServerDatasourcePath"] = "tableauServerDatasourcePath";
+ // DPI_TableauServerFetchSearchQuery, having type string
+ ParameterId["TableauServerFetchSearchQuery"] = "tableauServerFetchSearchQuery";
+ // DPI_TableauServerName, having type string
+ ParameterId["TableauServerName"] = "tableauServerName";
+ // DPI_TableauServerProjectName, having type string
+ ParameterId["TableauServerProjectName"] = "tableauServerProjectName";
+ // DPI_TableauServerUsername, having type string
+ ParameterId["TableauServerUsername"] = "tableauServerUsername";
+ // DPI_TransportType, having type string
+ ParameterId["TransportType"] = "transportType";
+ // DPI_WarehouseName, having type string
+ ParameterId["WarehouseName"] = "datasourceWarehouseName";
+ // DPI_WorkgroupWorkbookName, having type string
+ ParameterId["WorkgroupWorkbookName"] = "workgroupWorkbookName";
+ // DPI_AnalyticsItemTooltip, having type string
+ ParameterId["AnalyticsItemTooltip"] = "analyticsItemTooltip";
+ // DPI_Description, having type string
+ ParameterId["Description"] = "description";
+ // DPI_DSClassCaption, having type string
+ ParameterId["DSClassCaption"] = "dsClassCaption";
+ // DPI_Formula, having type string
+ ParameterId["Formula"] = "formula";
+ // DPI_MessageText, having type string
+ ParameterId["MessageText"] = "messageText";
+ // DPI_Datasource, having type string
+ ParameterId["Datasource"] = "datasource";
+ // DPI_DatasourceSource, having type string
+ ParameterId["DatasourceSource"] = "datasourceSource";
+ // DPI_DatasourceTarget, having type string
+ ParameterId["DatasourceTarget"] = "datasourceTarget";
+ // DPI_FirstDatasource, having type string
+ ParameterId["FirstDatasource"] = "firstDatasource";
+ // DPI_NewDatasource, having type string
+ ParameterId["NewDatasource"] = "newDatasource";
+ // DPI_ParametersDatasource, having type string
+ ParameterId["ParametersDatasource"] = "parametersDatasource";
+ // DPI_PrimaryDatasource, having type string
+ ParameterId["PrimaryDatasource"] = "primaryDatasource";
+ // DPI_ConnectionDatabases, having type string[]
+ ParameterId["ConnectionDatabases"] = "connectionDatabases";
+ // DPI_ConnectionSchemas, having type string[]
+ ParameterId["ConnectionSchemas"] = "connectionSchemas";
+ // DPI_ConnectionWarehouses, having type string[]
+ ParameterId["ConnectionWarehouses"] = "connectionWarehouses";
+ // DPI_DSClasses, having type string[]
+ ParameterId["DSClasses"] = "dsClasses";
+ // DPI_PossibleChoices, having type string[]
+ ParameterId["PossibleChoices"] = "possibleChoices";
+ // DPI_StandardConnections, having type string[]
+ ParameterId["StandardConnections"] = "standardConnections";
+ // DPI_Strings, having type string[]
+ ParameterId["Strings"] = "strings";
+ // DPI_TableauServerProjectNames, having type string[]
+ ParameterId["TableauServerProjectNames"] = "tableauServerProjectNames";
+ // DPI_TableCaptions, having type string[]
+ ParameterId["TableCaptions"] = "tableCaptions";
+ // DPI_DataValues, having type object[]
+ ParameterId["DataValues"] = "dataValues";
+ // DPI_QueryBandErrors, having type object[]
+ ParameterId["QueryBandErrors"] = "queryBandErrors";
+ // DPI_QueryBandParameters, having type object[]
+ ParameterId["QueryBandParameters"] = "queryBandParameters";
+ // DPI_InitialSQLParameters, having type object[]
+ ParameterId["InitialSQLParameters"] = "initialSqlParameters";
+ // DPI_ConnectionAttributes, having type Dictionary(of string)
+ ParameterId["ConnectionAttributes"] = "connectionAttrs";
+ // DPI_ConnectionProps, having type Dictionary(of string)
+ ParameterId["ConnectionProps"] = "connectionProps";
+ // DPI_DisplayNameMap, having type Dictionary(of string)
+ ParameterId["DisplayNameMap"] = "displayNameMap";
+ // DPI_LookupTable, having type Dictionary(of string)
+ ParameterId["LookupTable"] = "lookupTable";
+ // DPI_OAuthAttrs, having type Dictionary(of string)
+ ParameterId["OAuthAttrs"] = "oauthAttrs";
+ // DPI_StringMap, having type Dictionary(of string)
+ ParameterId["StringMap"] = "stringMap";
+ // DPI_TableRankingMap, having type Dictionary(of string)
+ ParameterId["TableRankingMap"] = "tableRankingMap";
+ // DPI_WDCAttributes, having type Dictionary(of string)
+ ParameterId["WDCAttributes"] = "wdcAttrs";
+ // DPI_ConnectorAttributes, having type Dictionary(of string)
+ ParameterId["ConnectorAttributes"] = "connectorAttrs";
+ // DPI_TableRelevanceParams, having type Dictionary(of string)
+ ParameterId["TableRelevanceParams"] = "tableRelevanceParams";
+ // DPI_ActualParameterParameter, having type string
+ ParameterId["ActualParameterParameter"] = "actualParameterParameter";
+ // DPI_DataColumnName, having type string
+ ParameterId["DataColumnName"] = "dataColumnName";
+ // DPI_LHSDataColumnName, having type string
+ ParameterId["LHSDataColumnName"] = "lhsDataColumnName";
+ // DPI_RHSDataColumnName, having type string
+ ParameterId["RHSDataColumnName"] = "rhsDataColumnName";
+ // DPI_FullCubeName, having type string
+ ParameterId["FullCubeName"] = "fullCubeName";
+ // DPI_FullVariableName, having type string
+ ParameterId["FullVariableName"] = "fullVariableName";
+ // DPI_SemanticRole, having type string
+ ParameterId["SemanticRole"] = "semanticRole";
+ // DPI_StoredProcedureName, having type string
+ ParameterId["StoredProcedureName"] = "storedProcName";
+ // DPI_TableName, having type string
+ ParameterId["TableName"] = "tableName";
+ // DPI_AddedTableNames, having type string[]
+ ParameterId["AddedTableNames"] = "addedTableNames";
+ // DPI_CoalesceGroupFields, having type string[]
+ ParameterId["CoalesceGroupFields"] = "coalesceGroupFields";
+ // DPI_QualifiedNames, having type string[]
+ ParameterId["QualifiedNames"] = "qualifiedNames";
+ // DPI_JoinFieldAliases, having type string[]
+ ParameterId["JoinFieldAliases"] = "joinField_aliases";
+ // DPI_JoinInfoFields, having type string[]
+ ParameterId["JoinInfoFields"] = "joinInfoFields";
+ // DPI_PivotGroupFields, having type string[]
+ ParameterId["PivotGroupFields"] = "pivotGroupFields";
+ // DPI_RemovedTableNames, having type string[]
+ ParameterId["RemovedTableNames"] = "removedTableNames";
+ // DPI_StoredProcedures, having type string[]
+ ParameterId["StoredProcedures"] = "storedProcedures";
+ // DPI_TableNames, having type string[]
+ ParameterId["TableNames"] = "tableNames";
+ // DPI_ColumnName, having type string
+ ParameterId["ColumnName"] = "columnName";
+ // DPI_FieldName, having type string
+ ParameterId["FieldName"] = "fn";
+ // DPI_FieldNames, having type string[]
+ ParameterId["FieldNames"] = "fieldNames";
+ // DPI_GoogleSheetThumbnailImage, having type string
+ ParameterId["GoogleSheetThumbnailImage"] = "googleSheetThumbnailImage";
+ // DPI_AttrMDWPassword, having type string
+ ParameterId["AttrMDWPassword"] = "widgetAttrMdwPassword";
+ // DPI_AttrPassword, having type string
+ ParameterId["AttrPassword"] = "widgetAttrPassword";
+ // DPI_DatasourcePassword, having type string
+ ParameterId["DatasourcePassword"] = "datasourcePassword";
+ // DPI_FederatedKeychain, having type string
+ ParameterId["FederatedKeychain"] = "federatedKeychain";
+ // DPI_DataParameterID, having type string
+ ParameterId["DataParameterID"] = "dataParamType";
+ // DPI_ConnectServerWidgetType, having type ConnectServerWidgetType
+ ParameterId["ConnectServerWidgetType"] = "connectServerWidgetType";
+ // DPI_AuthenticationMode, having type Mode
+ ParameterId["AuthenticationMode"] = "authMode";
+ // DPI_ReconnectAuthMode, having type ReconnectMode
+ ParameterId["ReconnectAuthMode"] = "reconnectAuthMode";
+ // DPI_CurrentAuthOption, having type AuthOption
+ ParameterId["CurrentAuthOption"] = "currAuthOption";
+ // DPI_AuthOptionList, having type AuthOption[]
+ ParameterId["AuthOptionList"] = "authOptions";
+ // DPI_ConnectionSpecificationType, having type ConnectionSpecificationType
+ ParameterId["ConnectionSpecificationType"] = "connectionSpecificationType";
+ // DPI_DataType, having type DataType
+ ParameterId["DataType"] = "dataType";
+ // DPI_LHSDataType, having type DataType
+ ParameterId["LHSDataType"] = "lhsDataType";
+ // DPI_RHSDataType, having type DataType
+ ParameterId["RHSDataType"] = "rhsDataType";
+ // DPI_DefaultFieldRole, having type FieldRole
+ ParameterId["DefaultFieldRole"] = "defaultFieldRole";
+ // DPI_FieldRole, having type FieldRole
+ ParameterId["FieldRole"] = "fieldRole";
+ // DPI_DefaultFieldType, having type FieldType
+ ParameterId["DefaultFieldType"] = "defaultFieldType";
+ // DPI_FieldType, having type FieldType
+ ParameterId["FieldType"] = "fieldType";
+ // DPI_FieldTypeList, having type FieldType[]
+ ParameterId["FieldTypeList"] = "fieldTypeList";
+ // DPI_FieldTypeListDetail, having type FieldType[]
+ ParameterId["FieldTypeListDetail"] = "fieldTypeListDetail";
+ // DPI_AggType, having type AggType
+ ParameterId["AggType"] = "aggregation";
+ // DPI_DefaultAggType, having type AggType
+ ParameterId["DefaultAggType"] = "defaultAggregation";
+ // DPI_ForecastAgg, having type AggType
+ ParameterId["ForecastAgg"] = "forecastSummarizeTo";
+ // DPI_ForecastAutoAgg, having type AggType
+ ParameterId["ForecastAutoAgg"] = "forecastAutoSummarizeTo";
+ // DPI_ForecastAutoRangeUnits, having type AggType
+ ParameterId["ForecastAutoRangeUnits"] = "forecastAutoRangeUnits";
+ // DPI_ForecastEndOfRangeUnits, having type AggType
+ ParameterId["ForecastEndOfRangeUnits"] = "forecastEndOfRangeUnits";
+ // DPI_ForecastNextRangeUnits, having type AggType
+ ParameterId["ForecastNextRangeUnits"] = "forecastNextRangeUnits";
+ // DPI_SourceAgg, having type AggType
+ ParameterId["SourceAgg"] = "sourceAggregation";
+ // DPI_TargetAgg, having type AggType
+ ParameterId["TargetAgg"] = "targetAggregation";
+ // DPI_AggregateByAggTypes, having type AggType[]
+ ParameterId["AggregateByAggTypes"] = "aggregateByAggTypes";
+ // DPI_AggregationValues, having type AggType[]
+ ParameterId["AggregationValues"] = "aggregationValues";
+ // DPI_SortAggValues, having type AggType[]
+ ParameterId["SortAggValues"] = "sortAggValues";
+ // DPI_ColumnClass, having type ColumnClass
+ ParameterId["ColumnClass"] = "columnClass";
+ // DPI_DatePeriodType, having type DatePeriodType
+ ParameterId["DatePeriodType"] = "datePeriodType";
+ // DPI_ConnectionWidgetType, having type ConnectionWidgetType
+ ParameterId["ConnectionWidgetType"] = "connectionWidgetType";
+ // DPI_TablePillIcon, having type TablePillIcon
+ ParameterId["TablePillIcon"] = "tablePillIconType";
+ // DPI_EnumeratedEntityType, having type EntityType
+ ParameterId["EnumeratedEntityType"] = "enumeratedEntityType";
+ // DPI_PickEntitySearchType, having type PickEntitySearchType
+ ParameterId["PickEntitySearchType"] = "entitySearchType";
+ // DPI_ExpressionOp, having type Op
+ ParameterId["ExpressionOp"] = "expressionOp";
+ // DPI_ExpressionOperatorCaption, having type ExpressionOperatorCaptionPresModel
+ ParameterId["ExpressionOperatorCaption"] = "expressionOperatorCaption";
+ // DPI_RelationalExperessionOps, having type ExpressionOperatorCaptionPresModel[]
+ ParameterId["RelationalExperessionOps"] = "relationalExpressionOps";
+ // DPI_HierarchyExpressionOps, having type ExpressionOperatorCaptionPresModel[]
+ ParameterId["HierarchyExpressionOps"] = "hierarchyExpressionOps";
+ // DPI_DefaultSortDirection, having type SortDirection
+ ParameterId["DefaultSortDirection"] = "defSortOrder";
+ // DPI_SortDirection, having type SortDirection
+ ParameterId["SortDirection"] = "sortOrder";
+ // DPI_SortDirectionValues, having type SortDirection[]
+ ParameterId["SortDirectionValues"] = "sortDirectionValues";
+ // DPI_CubeMetadataCategory, having type CubeMetadataCategory
+ ParameterId["CubeMetadataCategory"] = "cubeMetadataCategory";
+ // DPI_CubeMetadataCategories, having type CubeMetadataCategory[]
+ ParameterId["CubeMetadataCategories"] = "cubeMetadataCategories";
+ // DPI_GoogleBasicInfoType, having type GoogleBasicInfoType
+ ParameterId["GoogleBasicInfoType"] = "googleBasicInfoType";
+ // DPI_GoogleAnalyticsDateRangeOptionType, having type DateRange
+ ParameterId["GoogleAnalyticsDateRangeOptionType"] = "googleAnalyticsDateRangeOptionType";
+ // DPI_TableCalcType, having type TableCalcType
+ ParameterId["TableCalcType"] = "tableCalcType";
+ // DPI_TableCalcTypeValues, having type TableCalcType[]
+ ParameterId["TableCalcTypeValues"] = "tableCalcTypeValues";
+ // DPI_RelativeAddress, having type RelativeAddress
+ ParameterId["RelativeAddress"] = "relativeAddress";
+ // DPI_RelativeValues, having type RelativeAddress[]
+ ParameterId["RelativeValues"] = "relativeValues";
+ // DPI_OrderingType, having type OrderingType
+ ParameterId["OrderingType"] = "orderingType";
+ // DPI_OrderingTypeValues, having type OrderingType[]
+ ParameterId["OrderingTypeValues"] = "orderingTypeValues";
+ // DPI_CategoricalBinItemType, having type CategoricalBinItemType
+ ParameterId["CategoricalBinItemType"] = "categoricalBinItemType";
+ // DPI_AuthenticationInfos, having type AuthenticationSettingsPresModel
+ ParameterId["AuthenticationInfos"] = "authInfo";
+ // DPI_ConnectionWidgetParams, having type ConnectionParamsPresModel
+ ParameterId["ConnectionWidgetParams"] = "widgetConnectionParams";
+ // DPI_ConnectionSettings, having type ConnectionSettingsPresModel
+ ParameterId["ConnectionSettings"] = "connectionSettings";
+ // DPI_ReconnectAuthenticationSettings, having type AuthenticationSettingsPresModel
+ ParameterId["ReconnectAuthenticationSettings"] = "reconnectAuthSettings";
+ // DPI_CubeConnectionSpecificationOption, having type CubeConnectionSpecificationOptionPresModel
+ ParameterId["CubeConnectionSpecificationOption"] = "cubeConnectionSpecificationOption";
+ // DPI_CubeConnectionSpecificationOptions, having type CubeConnectionSpecificationOptionPresModel[]
+ ParameterId["CubeConnectionSpecificationOptions"] = "cubeConnectionSpecificationOptions";
+ // DPI_CubeConnectionSpecification, having type CubeConnectionSpecificationPresModel
+ ParameterId["CubeConnectionSpecification"] = "cubeConnectionSpecification";
+ // DPI_ConnectionSettingsOption, having type ConnectionSettingsOptionPresModel
+ ParameterId["ConnectionSettingsOption"] = "connectionSettingsOption";
+ // DPI_ConnectionSettingsOptions, having type ConnectionSettingsOptionPresModel[]
+ ParameterId["ConnectionSettingsOptions"] = "connectionSettingsOptions";
+ // DPI_StringCollation, having type StringCollationPresModel
+ ParameterId["StringCollation"] = "stringCollation";
+ // DPI_DatabaseEnumeration, having type DatabaseEnumerationPresModel
+ ParameterId["DatabaseEnumeration"] = "databaseEnumeration";
+ // DPI_SchemaEnumeration, having type SchemaEnumerationPresModel
+ ParameterId["SchemaEnumeration"] = "schemaEnumeration";
+ // DPI_StandardConnectionEnumeration, having type StandardConnectionEnumerationPresModel
+ ParameterId["StandardConnectionEnumeration"] = "standardConnectionEnumeration";
+ // DPI_StoredProcedureEnumeration, having type StoredProcedureEnumerationPresModel
+ ParameterId["StoredProcedureEnumeration"] = "storedProcedureEnumeration";
+ // DPI_TableEnumeration, having type TableEnumerationPresModel
+ ParameterId["TableEnumeration"] = "tableEnumeration";
+ // DPI_WarehouseEnumeration, having type WarehouseEnumerationPresModel
+ ParameterId["WarehouseEnumeration"] = "warehouseEnumeration";
+ // DPI_SlowMetadataSchemaList, having type SlowMetadataSchemaListPresModel
+ ParameterId["SlowMetadataSchemaList"] = "slowMetadataSchemaList";
+ // DPI_SlowMetadataTableList, having type SlowMetadataTableListPresModel
+ ParameterId["SlowMetadataTableList"] = "slowMetadataTableList";
+ // DPI_CubeCatalog, having type CubeCatalogPresModel
+ ParameterId["CubeCatalog"] = "cubeCatalog";
+ // DPI_CubeCatalogs, having type CubeCatalogPresModel[]
+ ParameterId["CubeCatalogs"] = "cubeCatalogs";
+ // DPI_CubeCatalogEnumeration, having type CubeCatalogEnumerationPresModel
+ ParameterId["CubeCatalogEnumeration"] = "cubeCatalogEnumeration";
+ // DPI_Cube, having type CubePresModel
+ ParameterId["Cube"] = "cube";
+ // DPI_Cubes, having type CubePresModel[]
+ ParameterId["Cubes"] = "cubes";
+ // DPI_CubeEnumeration, having type CubeEnumerationPresModel
+ ParameterId["CubeEnumeration"] = "cubeEnumeration";
+ // DPI_GoogleAnalyticsBasicItem, having type GoogleAnalyticsBasicItemPresModel
+ ParameterId["GoogleAnalyticsBasicItem"] = "googleAnalyticsBasicItem";
+ // DPI_GAMeasureSets, having type GoogleAnalyticsBasicItemPresModel[]
+ ParameterId["GAMeasureSets"] = "gaMeasureSets";
+ // DPI_GoogleAnalyticsViews, having type GoogleAnalyticsBasicItemPresModel[]
+ ParameterId["GoogleAnalyticsViews"] = "googleAnalyticsViews";
+ // DPI_GoogleAnalyticsProperties, having type GoogleAnalyticsBasicItemPresModel[]
+ ParameterId["GoogleAnalyticsProperties"] = "googleAnalyticsProperties";
+ // DPI_GoogleBasicInfoItems, having type GoogleAnalyticsBasicItemPresModel[]
+ ParameterId["GoogleBasicInfoItems"] = "googleAnalyticsAccounts";
+ // DPI_GoogleAnalyticsComplexItem, having type GoogleAnalyticsComplexItemPresModel
+ ParameterId["GoogleAnalyticsComplexItem"] = "googleAnalyticsComplexItem";
+ // DPI_GoogleAnalyticsPossibleDimensions, having type GoogleAnalyticsComplexItemPresModel[]
+ ParameterId["GoogleAnalyticsPossibleDimensions"] = "googleAnalyticsPossibleDimensions";
+ // DPI_GoogleAnalyticsPossibleMeasures, having type GoogleAnalyticsComplexItemPresModel[]
+ ParameterId["GoogleAnalyticsPossibleMeasures"] = "googleAnalyticsPossibleMeasures";
+ // DPI_GoogleAnalyticsPossibleSegments, having type GoogleAnalyticsComplexItemPresModel[]
+ ParameterId["GoogleAnalyticsPossibleSegments"] = "googleAnalyticsPossibleSegments";
+ // DPI_GoogleAnalyticsSelectedDimensions, having type GoogleAnalyticsComplexItemPresModel[]
+ ParameterId["GoogleAnalyticsSelectedDimensions"] = "googleAnalyticsSelectedDimensions";
+ // DPI_GoogleAnalyticsSelectedMeasures, having type GoogleAnalyticsComplexItemPresModel[]
+ ParameterId["GoogleAnalyticsSelectedMeasures"] = "googleAnalyticsSelectedMeasures";
+ // DPI_GoogleAnalyticsDateRangeOption, having type GoogleAnalyticsDateRangeOptionPresModel
+ ParameterId["GoogleAnalyticsDateRangeOption"] = "googleAnalyticsDateRangeOption";
+ // DPI_GoogleAnalyticsDateRangeOptions, having type GoogleAnalyticsDateRangeOptionPresModel[]
+ ParameterId["GoogleAnalyticsDateRangeOptions"] = "googleAnalyticsDateRangeOptions";
+ // DPI_GoogleAnalyticsEndDate, having type GoogleAnalyticsDatePresModel
+ ParameterId["GoogleAnalyticsEndDate"] = "googleAnalyticsEndDate";
+ // DPI_GoogleAnalyticsStartDate, having type GoogleAnalyticsDatePresModel
+ ParameterId["GoogleAnalyticsStartDate"] = "googleAnalyticsStartDate";
+ // DPI_GoogleAnalyticsDateRange, having type GoogleAnalyticsDateRangePresModel
+ ParameterId["GoogleAnalyticsDateRange"] = "googleAnalyticsDateRange";
+ // DPI_GoogleAnalyticsQueryPartitioning, having type GoogleAnalyticsQueryPartitioningPresModel
+ ParameterId["GoogleAnalyticsQueryPartitioning"] = "googleAnalyticsQueryPartitioning";
+ // DPI_GAConnectionDescription, having type GoogleAnalyticsConnectionDescriptionPresModel
+ ParameterId["GAConnectionDescription"] = "gaConnectionDescription";
+ // DPI_GoogleSheetItem, having type GoogleSheetItemPresModel
+ ParameterId["GoogleSheetItem"] = "googleSheetItem";
+ // DPI_GoogleSheetItems, having type GoogleSheetItemPresModel[]
+ ParameterId["GoogleSheetItems"] = "googleSheetItems";
+ // DPI_GoogleSheetsListPresModel, having type GoogleSheetsListPresModel
+ ParameterId["GoogleSheetsListPresModel"] = "googleSheetsList";
+ // DPI_GoogleSheetPanePresModel, having type GoogleSheetPanePresModel
+ ParameterId["GoogleSheetPanePresModel"] = "googleSheetPane";
+ // DPI_TableauServerConnectionDescription, having type TableauServerConnectionDescriptionPresModel
+ ParameterId["TableauServerConnectionDescription"] = "tableauServerConnectionDescription";
+ // DPI_InitialSQLPresModel, having type InitialSQLPresModel
+ ParameterId["InitialSQLPresModel"] = "initialSqlPresModel";
+ // DPI_QueryBandingPresModel, having type QueryBandingPresModel
+ ParameterId["QueryBandingPresModel"] = "queryBandingPresModel";
+ // DPI_SlowMetadata, having type SlowMetadataPresModel
+ ParameterId["SlowMetadata"] = "slowMetadata";
+ // DPI_SlowMetadataSchemaSearchPresModel, having type SlowMetadataSearchPresModel
+ ParameterId["SlowMetadataSchemaSearchPresModel"] = "slowMetadataSchemaSearch";
+ // DPI_SlowMetadataTableSearchPresModel, having type SlowMetadataSearchPresModel
+ ParameterId["SlowMetadataTableSearchPresModel"] = "slowMetadataTableSearch";
+ // DPI_TableauServerProjectsPresModel, having type TableauServerProjectsPresModel
+ ParameterId["TableauServerProjectsPresModel"] = "tableauServerProjectsPresmodel";
+ // DPI_TableauServerDataSourcePresModel, having type TableauServerDataSourcePresModel
+ ParameterId["TableauServerDataSourcePresModel"] = "tableauServerDataSourcePresmodel";
+ // DPI_TableauServerDataSourcePresModels, having type TableauServerDataSourcePresModel[]
+ ParameterId["TableauServerDataSourcePresModels"] = "tableauServerDataSourcePresmodels";
+ // DPI_TableauServerDataSourcesPresModel, having type TableauServerDataSourcesPresModel
+ ParameterId["TableauServerDataSourcesPresModel"] = "tableauServerDataSourcesPresmodel";
+ // DPI_TableauServerDataPresModel, having type TableauServerDataPresModel
+ ParameterId["TableauServerDataPresModel"] = "tableauServerDataPresmodel";
+ // DPI_StoredProcedureParameterPresModel, having type StoredProcedureParameterPresModel
+ ParameterId["StoredProcedureParameterPresModel"] = "storedProcedureParameter";
+ // DPI_StoredProcedureParametersPresModel, having type StoredProcedureParameterPresModel[]
+ ParameterId["StoredProcedureParametersPresModel"] = "storedProcedureParameters";
+ // DPI_CustomSQLInfo, having type CustomSQLInfoPresModel
+ ParameterId["CustomSQLInfo"] = "customSqlInfo";
+ // DPI_ConnectionTableInfo, having type ConnectionTableInfoPresModel
+ ParameterId["ConnectionTableInfo"] = "connectionTableInfo";
+ // DPI_TableInfos, having type ConnectionTableInfoPresModel[]
+ ParameterId["TableInfos"] = "tableInfos";
+ // DPI_ConnectionDescription, having type ConnectionDescriptionPresModel
+ ParameterId["ConnectionDescription"] = "connectionDescription";
+ // DPI_ConnectionDescriptionSummary, having type ConnectionDescriptionSummaryPresModel
+ ParameterId["ConnectionDescriptionSummary"] = "connectionDescriptionSummary";
+ // DPI_ConnectionDescriptionSummaries, having type ConnectionDescriptionSummaryPresModel[]
+ ParameterId["ConnectionDescriptionSummaries"] = "connectionDescriptionSummaries";
+ // DPI_DataSourceParserValidationMode, having type DataSourceParserValidationMode
+ ParameterId["DataSourceParserValidationMode"] = "dataSourceParserValidationMode";
+ // DPI_OAuthCredentialTypeInfo, having type OAuthCredentialTypeInfoPresModel
+ ParameterId["OAuthCredentialTypeInfo"] = "oauthCredentialTypeInfo";
+ // DPI_OAuthCredentialTypeInfos, having type OAuthCredentialTypeInfoPresModel[]
+ ParameterId["OAuthCredentialTypeInfos"] = "oauthCredentialTypeInfos";
+ // DPI_OAuthSettings, having type OAuthSettingsPresModel
+ ParameterId["OAuthSettings"] = "oauthSettings";
+ // DPI_CredentialTypePropertiesFlag, having type CredentialTypePropertiesFlag
+ ParameterId["CredentialTypePropertiesFlag"] = "credentialTypePropertiesFlag";
+ // DPI_CredentialTypePropertiesFlags, having type CredentialTypePropertiesFlag[]
+ ParameterId["CredentialTypePropertiesFlags"] = "credentialTypePropertiesFlags";
+ // DPI_ConnectionTypeEnum, having type ConnectionTypeEnum
+ ParameterId["ConnectionTypeEnum"] = "connectionTypeEnum";
+ // DPI_ConnectorType, having type ConnectorType
+ ParameterId["ConnectorType"] = "connectorType";
+ // DPI_PdfPagePicker, having type PdfPagePickerPresModel
+ ParameterId["PdfPagePicker"] = "pdfPagePicker";
+ // DPI_ActivateNew, having type bool
+ ParameterId["ActivateNew"] = "activateNew";
+ // DPI_AddActions, having type bool
+ ParameterId["AddActions"] = "addActions";
+ // DPI_AddAsFloating, having type bool
+ ParameterId["AddAsFloating"] = "addAsFloating";
+ // DPI_AddColorDictionary, having type bool
+ ParameterId["AddColorDictionary"] = "addColorDictionary";
+ // DPI_AddDroplines, having type bool
+ ParameterId["AddDroplines"] = "addDroplines";
+ // DPI_AddHeaders, having type bool
+ ParameterId["AddHeaders"] = "addHeaders";
+ // DPI_AddHighlighting, having type bool
+ ParameterId["AddHighlighting"] = "addHighlighting";
+ // DPI_AddImageDictionary, having type bool
+ ParameterId["AddImageDictionary"] = "addImageDictionary";
+ // DPI_AddMarkLabels, having type bool
+ ParameterId["AddMarkLabels"] = "addMarkLabels";
+ // DPI_AddPages, having type bool
+ ParameterId["AddPages"] = "addPages";
+ // DPI_AddSelection, having type bool
+ ParameterId["AddSelection"] = "addSelection";
+ // DPI_AddToFolder, having type bool
+ ParameterId["AddToFolder"] = "addToFolder";
+ // DPI_AddVizData, having type bool
+ ParameterId["AddVizData"] = "addVizData";
+ // DPI_AlertConditionMet, having type bool
+ ParameterId["AlertConditionMet"] = "alertConditionMet";
+ // DPI_AllFields, having type bool
+ ParameterId["AllFields"] = "allFields";
+ // DPI_AllOnEmpty, having type bool
+ ParameterId["AllOnEmpty"] = "allOnEmpty";
+ // DPI_AllPages, having type bool
+ ParameterId["AllPages"] = "includeAllPages";
+ // DPI_AllowPreviewSizeChange, having type bool
+ ParameterId["AllowPreviewSizeChange"] = "allowPreviewSizeChange";
+ // DPI_AllSelectedIsEffectivelyRangeTypeAll, having type bool
+ ParameterId["AllSelectedIsEffectivelyRangeTypeAll"] = "allSelectedIsEffectivelyRangeTypeAll";
+ // DPI_AllStoryPoints, having type bool
+ ParameterId["AllStoryPoints"] = "allStorypoints";
+ // DPI_AllowAllRange, having type bool
+ ParameterId["AllowAllRange"] = "allowAllRange";
+ // DPI_AllowCreatingNewParameters, having type bool
+ ParameterId["AllowCreatingNewParameters"] = "allowCreatingNewParameters";
+ // DPI_AllowContinuousDate, having type bool
+ ParameterId["AllowContinuousDate"] = "allowContinuousDate";
+ // DPI_AllowDuplicateFieldDropOnFilterShelf, having type bool
+ ParameterId["AllowDuplicateFieldDropOnFilterShelf"] = "allowDuplicateFieldDropOnFilterShelf";
+ // DPI_AllowFilterPreset, having type bool
+ ParameterId["AllowFilterPreset"] = "allowFilterPreset";
+ // DPI_AllowHoverActions, having type bool
+ ParameterId["AllowHoverActions"] = "allowHoverActions";
+ // DPI_AllowHyphenation, having type bool
+ ParameterId["AllowHyphenation"] = "allowHyphenation";
+ // DPI_AllowJoinOnCalc, having type bool
+ ParameterId["AllowJoinOnCalc"] = "allowJoinOnCalc";
+ // DPI_AllowManualRange, having type bool
+ ParameterId["AllowManualRange"] = "allowManualRange";
+ // DPI_AllowMapping, having type bool
+ ParameterId["AllowMapping"] = "allowMapping";
+ // DPI_AllowMultiSelect, having type bool
+ ParameterId["AllowMultiSelect"] = "allowMultiSelect";
+ // DPI_AllowNull, having type bool
+ ParameterId["AllowNull"] = "allowNull";
+ // DPI_AllowPanZoom, having type bool
+ ParameterId["AllowPanZoom"] = "allowPanZoom";
+ // DPI_AllowPatternBased, having type bool
+ ParameterId["AllowPatternBased"] = "allowPatternBasedUnion";
+ // DPI_AllowPromptText, having type bool
+ ParameterId["AllowPromptText"] = "allowPromptText";
+ // DPI_AllowSaveDataSource, having type bool
+ ParameterId["AllowSaveDataSource"] = "allowSaveDataSource";
+ // DPI_AllowWholeDate, having type bool
+ ParameterId["AllowWholeDate"] = "allowWholeDate";
+ // DPI_AllowWork, having type bool
+ ParameterId["AllowWork"] = "allowWork";
+ // DPI_AllowWrap, having type bool
+ ParameterId["AllowWrap"] = "allowWrap";
+ // DPI_AppIs32Bit, having type bool
+ ParameterId["AppIs32Bit"] = "appIs32Bit";
+ // DPI_AppIs64Bit, having type bool
+ ParameterId["AppIs64Bit"] = "appIs64Bit";
+ // DPI_AppIsBeta, having type bool
+ ParameterId["AppIsBeta"] = "appIsBeta";
+ // DPI_AppIsOEM, having type bool
+ ParameterId["AppIsOEM"] = "appIsOem";
+ // DPI_AppendTde, having type bool
+ ParameterId["AppendTde"] = "appendTde";
+ // DPI_ApplyColors, having type bool
+ ParameterId["ApplyColors"] = "applyColors";
+ // DPI_ApplyNewSelection, having type bool
+ ParameterId["ApplyNewSelection"] = "applyNewSelection";
+ // DPI_AreConfidenceBandsValid, having type bool
+ ParameterId["AreConfidenceBandsValid"] = "areConfidenceBandsValid";
+ // DPI_AreDataSourceFiltersVisible, having type bool
+ ParameterId["AreDataSourceFiltersVisible"] = "areDataSourceFiltersVisible";
+ // DPI_AreExtractFiltersEnabled, having type bool
+ ParameterId["AreExtractFiltersEnabled"] = "areExtractFiltersEnabled";
+ // DPI_AreTotalsUsed, having type bool
+ ParameterId["AreTotalsUsed"] = "areTotalsUsed";
+ // DPI_AtTheLevelFieldIsInvalid, having type bool
+ ParameterId["AtTheLevelFieldIsInvalid"] = "atTheLevelFieldIsInvalid";
+ // DPI_AutoURL, having type bool
+ ParameterId["AutoURL"] = "autoUrl";
+ // DPI_AutoUpdate, having type bool
+ ParameterId["AutoUpdate"] = "autoUpdate";
+ // DPI_BackingSheetIsDashboard, having type bool
+ ParameterId["BackingSheetIsDashboard"] = "isBackingSheetDashboard";
+ // DPI_BeginDataSourcePresModelUpdate, having type bool
+ ParameterId["BeginDataSourcePresModelUpdate"] = "beginDataSourcePresModelUpdate";
+ // DPI_AggregateDrillUp, having type bool
+ ParameterId["AggregateDrillUp"] = "boolAggregateDrillUp";
+ // DPI_BoxplotMarkExclusion, having type bool
+ ParameterId["BoxplotMarkExclusion"] = "boxplotMarkExclusion";
+ // DPI_BreakPageOnPane, having type bool
+ ParameterId["BreakPageOnPane"] = "breakPageOnPane";
+ // DPI_BrushLegends, having type bool
+ ParameterId["BrushLegends"] = "brushLegends";
+ // DPI_CachePresModels, having type bool
+ ParameterId["CachePresModels"] = "cachePresModels";
+ // DPI_CanAddConnections, having type bool
+ ParameterId["CanAddConnections"] = "canAddConnections";
+ // DPI_SortPillCanBeDragged, having type bool
+ ParameterId["SortPillCanBeDragged"] = "sortPillCanBeDragged";
+ // DPI_CanAddTable, having type bool
+ ParameterId["CanAddTable"] = "canAddTable";
+ // DPI_CanAddToDrillPath, having type bool
+ ParameterId["CanAddToDrillPath"] = "canAddToDrillPath";
+ // DPI_CanAnalyzeData, having type bool
+ ParameterId["CanAnalyzeData"] = "canAnalyzeData";
+ // DPI_CanChangeDataType, having type bool
+ ParameterId["CanChangeDataType"] = "canChangeDataType";
+ // DPI_CanChangeSemanticRole, having type bool
+ ParameterId["CanChangeSemanticRole"] = "canChangeSemanticRole";
+ // DPI_CanDerive, having type bool
+ ParameterId["CanDerive"] = "canDerive";
+ // DPI_CanDrop, having type bool
+ ParameterId["CanDrop"] = "canDrop";
+ // DPI_CanEdit, having type bool
+ ParameterId["CanEdit"] = "canEdit";
+ // DPI_CanEditLegendColor, having type bool
+ ParameterId["CanEditLegendColor"] = "canEditLegendColor";
+ // DPI_CanEnableCenter, having type bool
+ ParameterId["CanEnableCenter"] = "canEnableCenter";
+ // DPI_CanShowAdvancedSettings, having type bool
+ ParameterId["CanShowAdvancedSettings"] = "canShowAdvancedSettings";
+ // DPI_CanEnableFilterStateButton, having type bool
+ ParameterId["CanEnableFilterStateButton"] = "canEnableFilterStateButton";
+ // DPI_CanFloat, having type bool
+ ParameterId["CanFloat"] = "canFloat";
+ // DPI_CanHaveTitle, having type bool
+ ParameterId["CanHaveTitle"] = "canHaveTitle";
+ // DPI_CanIgnoreUpdate, having type bool
+ ParameterId["CanIgnoreUpdate"] = "canIgnoreUpdate";
+ // DPI_CanLogTransformExplanatoryAxis, having type bool
+ ParameterId["CanLogTransformExplanatoryAxis"] = "canLogTransformExplanatoryAxis";
+ // DPI_CanNavigateBack, having type bool
+ ParameterId["CanNavigateBack"] = "canNavigateBack";
+ // DPI_CanNavigateForward, having type bool
+ ParameterId["CanNavigateForward"] = "canNavigateForward";
+ // DPI_CanScrollX, having type bool
+ ParameterId["CanScrollX"] = "canScrollX";
+ // DPI_CanScrollY, having type bool
+ ParameterId["CanScrollY"] = "canScrollY";
+ // DPI_CanSetDomain, having type bool
+ ParameterId["CanSetDomain"] = "canSetDomain";
+ // DPI_CanSetMapUnit, having type bool
+ ParameterId["CanSetMapUnit"] = "canSetMapUnit";
+ // DPI_CanShowApplyButton, having type bool
+ ParameterId["CanShowApplyButton"] = "canShowApplyButton";
+ // DPI_CanShowFilterStateButton, having type bool
+ ParameterId["CanShowFilterStateButton"] = "canShowFilterStateButton";
+ // DPI_CanShowMoreFewerButton, having type bool
+ ParameterId["CanShowMoreFewerButton"] = "canShowMoreFewerButton";
+ // DPI_CanShowSyncClientOptions, having type bool
+ ParameterId["CanShowSyncClientOptions"] = "canShowSyncClientOptions";
+ // DPI_CanSort, having type bool
+ ParameterId["CanSort"] = "canSort";
+ // DPI_CanSortOrdinally, having type bool
+ ParameterId["CanSortOrdinally"] = "canSortOrdinal";
+ // DPI_CanToggleAutomaticDrill, having type bool
+ ParameterId["CanToggleAutomaticDrill"] = "canToggleAutomaticDrill";
+ // DPI_CanToggleGeographicSearch, having type bool
+ ParameterId["CanToggleGeographicSearch"] = "canToggleGeographicSearch";
+ // DPI_CanToggleMapScale, having type bool
+ ParameterId["CanToggleMapScale"] = "canToggleMapScale";
+ // DPI_CanUseFullColorRange, having type bool
+ ParameterId["CanUseFullColorRange"] = "canUseFullColorRange";
+ // DPI_CanUseMultipleHierarchies, having type bool
+ ParameterId["CanUseMultipleHierarchies"] = "canUseMultipleHierarchies";
+ // DPI_CenterHorizontally, having type bool
+ ParameterId["CenterHorizontally"] = "centerHorizontally";
+ // DPI_CenterVertically, having type bool
+ ParameterId["CenterVertically"] = "centerVertically";
+ // DPI_ChangeAllFields, having type bool
+ ParameterId["ChangeAllFields"] = "changeAllFields";
+ // DPI_Changed, having type bool
+ ParameterId["Changed"] = "changed";
+ // DPI_ClearBrushing, having type bool
+ ParameterId["ClearBrushing"] = "clearBrushing";
+ // DPI_ClearSort, having type bool
+ ParameterId["ClearSort"] = "clearSort";
+ // DPI_ClearView, having type bool
+ ParameterId["ClearView"] = "clearView";
+ // DPI_Collapsed, having type bool
+ ParameterId["Collapsed"] = "collapsed";
+ // DPI_ConsolidateInCommit, having type bool
+ ParameterId["ConsolidateInCommit"] = "consolidateInCommit";
+ // DPI_ClusterEnableScaledCheckbox, having type bool
+ ParameterId["ClusterEnableScaledCheckbox"] = "clusterEnableScaledCheckbox";
+ // DPI_CommitPillFinished, having type bool
+ ParameterId["CommitPillFinished"] = "commitPillFinished";
+ // DPI_CompressArrays, having type bool
+ ParameterId["CompressArrays"] = "compressArrays";
+ // DPI_ComputeCompoundedRate, having type bool
+ ParameterId["ComputeCompoundedRate"] = "computeCompoundedRate";
+ // DPI_ConfidenceIntervalAllowed, having type bool
+ ParameterId["ConfidenceIntervalAllowed"] = "confidenceIntervalAllowed";
+ // DPI_ConfigIsDesktopStandard, having type bool
+ ParameterId["ConfigIsDesktopStandard"] = "configIsDesktopStandard";
+ // DPI_ConfigIsInteractor, having type bool
+ ParameterId["ConfigIsInteractor"] = "configIsInteractor";
+ // DPI_ConfigIsPublic, having type bool
+ ParameterId["ConfigIsPublic"] = "configIsPublic";
+ // DPI_ConfigIsReader, having type bool
+ ParameterId["ConfigIsReader"] = "configIsReader";
+ // DPI_ContainsQuant, having type bool
+ ParameterId["ContainsQuant"] = "containsQuant";
+ // DPI_ContainsValidDatasources, having type bool
+ ParameterId["ContainsValidDatasources"] = "containsValidDatasources";
+ // DPI_ControllerMissing, having type bool
+ ParameterId["ControllerMissing"] = "controllerMissing";
+ // DPI_CreateExtractForPublish, having type bool
+ ParameterId["CreateExtractForPublish"] = "createExtractForPublish";
+ // DPI_CrossTab, having type bool
+ ParameterId["CrossTab"] = "crossTab";
+ // DPI_CullLabels, having type bool
+ ParameterId["CullLabels"] = "cullLabels";
+ // DPI_CurrentCustViewIdFlag, having type bool
+ ParameterId["CurrentCustViewIdFlag"] = "isCurrentCustViewIdValid";
+ // DPI_DashboardEnableSnap, having type bool
+ ParameterId["DashboardEnableSnap"] = "dashboardEnableSnap";
+ // DPI_DashboardShowGrid, having type bool
+ ParameterId["DashboardShowGrid"] = "dashboardShowGrid";
+ // DPI_DataGridSortOrder, having type bool
+ ParameterId["DataGridSortOrder"] = "datagridSortOrder";
+ // DPI_DeleteExtract, having type bool
+ ParameterId["DeleteExtract"] = "deleteExtract";
+ // DPI_DeleteOnlySpecifiedSelection, having type bool
+ ParameterId["DeleteOnlySpecifiedSelection"] = "deleteOnlySpecifiedSelection";
+ // DPI_DeleteOrphans, having type bool
+ ParameterId["DeleteOrphans"] = "deleteOrphans";
+ // DPI_DimensionIsEffectivelyEmpty, having type bool
+ ParameterId["DimensionIsEffectivelyEmpty"] = "dimensionIsEffectivelyEmpty";
+ // DPI_DisabledDataConnectionClassNames, having type bool
+ ParameterId["DisabledDataConnectionClassNames"] = "disabledDataConnectionClassNames";
+ // DPI_DisablePresModelHandler, having type bool
+ ParameterId["DisablePresModelHandler"] = "disablePresModelHandler";
+ // DPI_DisplayDate, having type bool
+ ParameterId["DisplayDate"] = "displayDate";
+ // DPI_DisplayTime, having type bool
+ ParameterId["DisplayTime"] = "displayTime";
+ // DPI_DoDropUIAction, having type bool
+ ParameterId["DoDropUIAction"] = "doDropUiAction";
+ // DPI_DoMerge, having type bool
+ ParameterId["DoMerge"] = "doMerge";
+ // DPI_DoPreDropUIAction, having type bool
+ ParameterId["DoPreDropUIAction"] = "doPreDropUiAction";
+ // DPI_DoQuery, having type bool
+ ParameterId["DoQuery"] = "doQuery";
+ // DPI_DragHorz, having type bool
+ ParameterId["DragHorz"] = "dragHorz";
+ // DPI_DrillDown, having type bool
+ ParameterId["DrillDown"] = "drillDown";
+ // DPI_DropToXAxis, having type bool
+ ParameterId["DropToXAxis"] = "dropToXAxis";
+ // DPI_DropToYAxis, having type bool
+ ParameterId["DropToYAxis"] = "dropToYAxis";
+ // DPI_DropUnnamedFields, having type bool
+ ParameterId["DropUnnamedFields"] = "dropUnnamedFields";
+ // DPI_EditExisting, having type bool
+ ParameterId["EditExisting"] = "editExisting";
+ // DPI_EditingConnection, having type bool
+ ParameterId["EditingConnection"] = "editingConnection";
+ // DPI_EmbedCredentials, having type bool
+ ParameterId["EmbedCredentials"] = "embedCredentials";
+ // DPI_EmbedOAuthCredential, having type bool
+ ParameterId["EmbedOAuthCredential"] = "embedOauthCredentials";
+ // DPI_EmptyHighlightFogAll, having type bool
+ ParameterId["EmptyHighlightFogAll"] = "emptyHighlightFogAll";
+ // DPI_EnableAlphabeticSort, having type bool
+ ParameterId["EnableAlphabeticSort"] = "enableAlphabeticSort";
+ // DPI_EnableAutomaticDrill, having type bool
+ ParameterId["EnableAutomaticDrill"] = "enableAutomaticDrill";
+ // DPI_EnableConfidenceBands, having type bool
+ ParameterId["EnableConfidenceBands"] = "enableConfidenceBands";
+ // DPI_EnableDataOrderSort, having type bool
+ ParameterId["EnableDataOrderSort"] = "enableDataOrderSort";
+ // DPI_EnableFieldSort, having type bool
+ ParameterId["EnableFieldSort"] = "enableFieldSort";
+ // DPI_EnableInstantAnalytics, having type bool
+ ParameterId["EnableInstantAnalytics"] = "enableInstantAnalytics";
+ // DPI_EnableLines, having type bool
+ ParameterId["EnableLines"] = "enableLines";
+ // DPI_EnableManualSort, having type bool
+ ParameterId["EnableManualSort"] = "enableManualSort";
+ // DPI_EnableMarks, having type bool
+ ParameterId["EnableMarks"] = "enableMarks";
+ // DPI_EnableMultipleSelection, having type bool
+ ParameterId["EnableMultipleSelection"] = "enableMultipleSelection";
+ // DPI_EnablePrefetching, having type bool
+ ParameterId["EnablePrefetching"] = "enablePrefetching";
+ // DPI_EnableTableCalcDensification, having type bool
+ ParameterId["EnableTableCalcDensification"] = "enableTableCalcDensification";
+ // DPI_EnableTooltips, having type bool
+ ParameterId["EnableTooltips"] = "enableTooltips";
+ // DPI_EndDataSourcePresModelUpdate, having type bool
+ ParameterId["EndDataSourcePresModelUpdate"] = "endDataSourcePresModelUpdate";
+ // DPI_EstimateNulls, having type bool
+ ParameterId["EstimateNulls"] = "estimateNulls";
+ // DPI_Exclude, having type bool
+ ParameterId["Exclude"] = "exclude";
+ // DPI_ExcludeColor, having type bool
+ ParameterId["ExcludeColor"] = "excludeColor";
+ // DPI_ExcludeCubeDenorm, having type bool
+ ParameterId["ExcludeCubeDenorm"] = "excludeCubeDenorm";
+ // DPI_ExcludeInterceptEnabled, having type bool
+ ParameterId["ExcludeInterceptEnabled"] = "excludeInterceptEnabled";
+ // DPI_ExcludeLocalFunctions, having type bool
+ ParameterId["ExcludeLocalFunctions"] = "excludeLocalFunctions";
+ // DPI_ExportDashboardImageFromSheet, having type bool
+ ParameterId["ExportDashboardImageFromSheet"] = "exportImageSheetAsDashboard";
+ // DPI_ExtSvcConfigIsAuthEnabled, having type bool
+ ParameterId["ExtSvcConfigIsAuthEnabled"] = "extSvcConfigIsAuthEnabled";
+ // DPI_ExtractFullRefresh, having type bool
+ ParameterId["ExtractFullRefresh"] = "extractFullRefresh";
+ // DPI_ExtractNeedsRefresh, having type bool
+ ParameterId["ExtractNeedsRefresh"] = "extractNeedsRefresh";
+ // DPI_ExtractPending, having type bool
+ ParameterId["ExtractPending"] = "extractPending";
+ // DPI_ExtractSelected, having type bool
+ ParameterId["ExtractSelected"] = "extractSelected";
+ // DPI_FederatableOnly, having type bool
+ ParameterId["FederatableOnly"] = "federatableOnly";
+ // DPI_FieldSortOrder, having type bool
+ ParameterId["FieldSortOrder"] = "fieldSortOrder";
+ // DPI_FieldSupportsContains, having type bool
+ ParameterId["FieldSupportsContains"] = "fieldSupportsContains";
+ // DPI_FieldSupportsEndsWith, having type bool
+ ParameterId["FieldSupportsEndsWith"] = "fieldSupportsEndsWith";
+ // DPI_FieldSupportsStartsWith, having type bool
+ ParameterId["FieldSupportsStartsWith"] = "fieldSupportsStartsWith";
+ // DPI_FillAbove, having type bool
+ ParameterId["FillAbove"] = "fillAbove";
+ // DPI_FillBelow, having type bool
+ ParameterId["FillBelow"] = "fillBelow";
+ // DPI_FillWithZeroes, having type bool
+ ParameterId["FillWithZeroes"] = "fillZeroes";
+ // DPI_FilterIsNamed, having type bool
+ ParameterId["FilterIsNamed"] = "filterIsNamed";
+ // DPI_Focus, having type bool
+ ParameterId["Focus"] = "focus";
+ // DPI_ForInternalUse, having type bool
+ ParameterId["ForInternalUse"] = "internalUse";
+ // DPI_ForceBrowserRendering, having type bool
+ ParameterId["ForceBrowserRendering"] = "forceBrowserRendering";
+ // DPI_ForceCache, having type bool
+ ParameterId["ForceCache"] = "forceCache";
+ // DPI_ForceColorFromApp, having type bool
+ ParameterId["ForceColorFromApp"] = "forceColorFromApp";
+ // DPI_ForceConnectionAttempt, having type bool
+ ParameterId["ForceConnectionAttempt"] = "forceConnectionAttempt";
+ // DPI_ForceConsolidateInCommit, having type bool
+ ParameterId["ForceConsolidateInCommit"] = "forceConsolidateInCommit";
+ // DPI_ForceExtractRefresh, having type bool
+ ParameterId["ForceExtractRefresh"] = "extractForceRefresh";
+ // DPI_ForceInterceptZero, having type bool
+ ParameterId["ForceInterceptZero"] = "forceInterceptZero";
+ // DPI_ForceOldConnectExperience, having type bool
+ ParameterId["ForceOldConnectExperience"] = "forceOldConnectExperience";
+ // DPI_ForceRelativeDate, having type bool
+ ParameterId["ForceRelativeDate"] = "forceRelativeDate";
+ // DPI_ForceToggleHighlightStateOn, having type bool
+ ParameterId["ForceToggleHighlightStateOn"] = "forceHighlightOn";
+ // DPI_ForceUserToChoose, having type bool
+ ParameterId["ForceUserToChoose"] = "forceUserToChoose";
+ // DPI_ForceWholeDate, having type bool
+ ParameterId["ForceWholeDate"] = "forceWholeDate";
+ // DPI_ForecastSelected, having type bool
+ ParameterId["ForecastSelected"] = "forecastSelected";
+ // DPI_ForecastUseAutoAgg, having type bool
+ ParameterId["ForecastUseAutoAgg"] = "forecastUseAutoSummarize";
+ // DPI_ForJoin, having type bool
+ ParameterId["ForJoin"] = "forJoin";
+ // DPI_FormatDataValueLocally, having type bool
+ ParameterId["FormatDataValueLocally"] = "formatDataValueLocally";
+ // DPI_FormatIfColumn, having type bool
+ ParameterId["FormatIfColumn"] = "formatIfColumn";
+ // DPI_FormatIfParameter, having type bool
+ ParameterId["FormatIfParameter"] = "formatIfParameter";
+ // DPI_GeographicSearchIsDataLoaded, having type bool
+ ParameterId["GeographicSearchIsDataLoaded"] = "geographicSearchDataLoaded";
+ // DPI_GeographicSearchLoadDataAsync, having type bool
+ ParameterId["GeographicSearchLoadDataAsync"] = "geographicSearchLoadDataAsync";
+ // DPI_GroupByAll, having type bool
+ ParameterId["GroupByAll"] = "groupByAll";
+ // DPI_HasAlias, having type bool
+ ParameterId["HasAlias"] = "hasAlias";
+ // DPI_HasAllMember, having type bool
+ ParameterId["HasAllMember"] = "hasAllMember";
+ // DPI_HasApply, having type bool
+ ParameterId["HasApply"] = "hasApply";
+ // DPI_HasBackgroundImage, having type bool
+ ParameterId["HasBackgroundImage"] = "hasBackgroundImage";
+ // DPI_HasBeenDismissed, having type bool
+ ParameterId["HasBeenDismissed"] = "hasBeenDismissed";
+ // DPI_HasCaption, having type bool
+ ParameterId["HasCaption"] = "hasCaption";
+ // DPI_HasCondition, having type bool
+ ParameterId["HasCondition"] = "hasCondition";
+ // DPI_HasConnectPermissions, having type bool
+ ParameterId["HasConnectPermissions"] = "hasConnectPermissions";
+ // DPI_HasDashboard, having type bool
+ ParameterId["HasDashboard"] = "hasDashboard";
+ // DPI_HasDownloadPermissions, having type bool
+ ParameterId["HasDownloadPermissions"] = "hasDownloadPermissions";
+ // DPI_HasDrill, having type bool
+ ParameterId["HasDrill"] = "hasDrill";
+ // DPI_HasExclude, having type bool
+ ParameterId["HasExclude"] = "hasExclude";
+ // DPI_HasFill, having type bool
+ ParameterId["HasFill"] = "hasFill";
+ // DPI_HasLabels, having type bool
+ ParameterId["HasLabels"] = "hasLabels";
+ // DPI_HasLimit, having type bool
+ ParameterId["HasLimit"] = "hasLimit";
+ // DPI_HasLine, having type bool
+ ParameterId["HasLine"] = "hasLine";
+ // DPI_HasModifiedAxes, having type bool
+ ParameterId["HasModifiedAxes"] = "hasModifiedAxes";
+ // DPI_HasNonRootCalculations, having type bool
+ ParameterId["HasNonRootCalculations"] = "hasNonRootCalculations";
+ // DPI_HasOnlyOneHierarchy, having type bool
+ ParameterId["HasOnlyOneHierarchy"] = "hasOnlyOneHierarchy";
+ // DPI_HasPattern, having type bool
+ ParameterId["HasPattern"] = "hasPattern";
+ // DPI_HasPublishGuidanceResults, having type bool
+ ParameterId["HasPublishGuidanceResults"] = "hasPublishGuidanceResults";
+ // DPI_HasSelection, having type bool
+ ParameterId["HasSelection"] = "hasSelection";
+ // DPI_HasServerCredentials, having type bool
+ ParameterId["HasServerCredentials"] = "hasServerCredentials";
+ // DPI_HasSpace, having type bool
+ ParameterId["HasSpace"] = "hasSpace";
+ // DPI_HasStoredProcedure, having type bool
+ ParameterId["HasStoredProcedure"] = "hasStoredProcedure";
+ // DPI_HasStringCalculatedMeasures, having type bool
+ ParameterId["HasStringCalculatedMeasures"] = "hasStringCalculatedMeasures";
+ // DPI_HasTableCalcData, having type bool
+ ParameterId["HasTableCalcData"] = "hasTableCalcData";
+ // DPI_HasTitle, having type bool
+ ParameterId["HasTitle"] = "hasTitle";
+ // DPI_HasUserSpecificContent, having type bool
+ ParameterId["HasUserSpecificContent"] = "hasUserSpecificContent";
+ // DPI_HasUnjoinedTable, having type bool
+ ParameterId["HasUnjoinedTable"] = "hasUnjoinedTable";
+ // DPI_HasVarArgs, having type bool
+ ParameterId["HasVarArgs"] = "hasVarArgs";
+ // DPI_HasVisitedWDCPage, having type bool
+ ParameterId["HasVisitedWDCPage"] = "hasVisitedWdcPage";
+ // DPI_IgnoreAliases, having type bool
+ ParameterId["IgnoreAliases"] = "ignoreAliases";
+ // DPI_IgnoreDomain, having type bool
+ ParameterId["IgnoreDomain"] = "ignoreDomain";
+ // DPI_IgnoreSelection, having type bool
+ ParameterId["IgnoreSelection"] = "ignoreSelection";
+ // DPI_IncludeAllColumns, having type bool
+ ParameterId["IncludeAllColumns"] = "includeAllColumns";
+ // DPI_IncludeContext, having type bool
+ ParameterId["IncludeContext"] = "includeContext";
+ // DPI_IncludeDashboardPresModels, having type bool
+ ParameterId["IncludeDashboardPresModels"] = "includeDashboardPresModels";
+ // DPI_IncludeItemSet, having type bool
+ ParameterId["IncludeItemSet"] = "includeItemSet";
+ // DPI_IncludeLocalFiles, having type bool
+ ParameterId["IncludeLocalFiles"] = "includeLocalFiles";
+ // DPI_IncludeOtherSelected, having type bool
+ ParameterId["IncludeOtherSelected"] = "includeOtherSelected";
+ // DPI_IncludeNulls, having type bool
+ ParameterId["IncludeNulls"] = "includeNulls";
+ // DPI_IncludeParent, having type bool
+ ParameterId["IncludeParent"] = "includeParent";
+ // DPI_IncludeSelections, having type bool
+ ParameterId["IncludeSelections"] = "includeSelections";
+ // DPI_IncludeSiblings, having type bool
+ ParameterId["IncludeSiblings"] = "includeSiblings";
+ // DPI_IncludeStories, having type bool
+ ParameterId["IncludeStories"] = "includeStories";
+ // DPI_IncludeSubfolders, having type bool
+ ParameterId["IncludeSubfolders"] = "includeSubfolders";
+ // DPI_IncludeVolatileProps, having type bool
+ ParameterId["IncludeVolatileProps"] = "includeVolatileProps";
+ // DPI_IncludesTag, having type bool
+ ParameterId["IncludesTag"] = "includesTag";
+ // DPI_InsertAfter, having type bool
+ ParameterId["InsertAfter"] = "insertAfter";
+ // DPI_InsertAtEnd, having type bool
+ ParameterId["InsertAtEnd"] = "insertAtEnd";
+ // DPI_InstantAnalyticsAllowed, having type bool
+ ParameterId["InstantAnalyticsAllowed"] = "instantAnalyticsAllowed";
+ // DPI_IntegerCoordinates, having type bool
+ ParameterId["IntegerCoordinates"] = "intCoords";
+ // DPI_InvalidatedLayout, having type bool
+ ParameterId["InvalidatedLayout"] = "invalidatedLayout";
+ // DPI_IsActive, having type bool
+ ParameterId["IsActive"] = "isActive";
+ // DPI_IsAddToFilter, having type bool
+ ParameterId["IsAddToFilter"] = "isAddToFilterButtonChecked";
+ // DPI_IsAllButtonVisible, having type bool
+ ParameterId["IsAllButtonVisible"] = "isAllButtonVisible";
+ // DPI_IsAllowedInCalcs, having type bool
+ ParameterId["IsAllowedInCalcs"] = "isAllowedInCalcs";
+ // DPI_IsAppMapSource, having type bool
+ ParameterId["IsAppMapSource"] = "isAppMapSource";
+ // DPI_IsArchive, having type bool
+ ParameterId["IsArchive"] = "isArchive";
+ // DPI_IsAttributeHierarchy, having type bool
+ ParameterId["IsAttributeHierarchy"] = "isAttributeHierarchy";
+ // DPI_IsAuthoringMode, having type bool
+ ParameterId["IsAuthoringMode"] = "isAuthoringMode";
+ // DPI_IsAuto, having type bool
+ ParameterId["IsAuto"] = "isAuto";
+ // DPI_IsAutoClear, having type bool
+ ParameterId["IsAutoClear"] = "isAutoClear";
+ // DPI_IsAutoColumn, having type bool
+ ParameterId["IsAutoColumn"] = "isAutoColumn";
+ // DPI_IsAutoHidden, having type bool
+ ParameterId["IsAutoHidden"] = "isAutoHidden";
+ // DPI_IsAutoSelect, having type bool
+ ParameterId["IsAutoSelect"] = "isAutoSelect";
+ // DPI_IsBold, having type bool
+ ParameterId["IsBold"] = "isBold";
+ // DPI_IsBorderVisible, having type bool
+ ParameterId["IsBorderVisible"] = "isBorderVisible";
+ // DPI_IsBoxplot, having type bool
+ ParameterId["IsBoxplot"] = "isBoxplot";
+ // DPI_IsCapable, having type bool
+ ParameterId["IsCapable"] = "isCapable";
+ // DPI_IsCaptured, having type bool
+ ParameterId["IsCaptured"] = "isCaptured";
+ // DPI_IsCentered, having type bool
+ ParameterId["IsCentered"] = "isCentered";
+ // DPI_IsChecked, having type bool
+ ParameterId["IsChecked"] = "isChecked";
+ // DPI_IsColorDiverging, having type bool
+ ParameterId["IsColorDiverging"] = "isColorDiverging";
+ // DPI_IsColorStepped, having type bool
+ ParameterId["IsColorStepped"] = "isColorStepped";
+ // DPI_IsCombinedField, having type bool
+ ParameterId["IsCombinedField"] = "isCombinedField";
+ // DPI_IsConnected, having type bool
+ ParameterId["IsConnected"] = "isConnected";
+ // DPI_IsContextMenuAllowed, having type bool
+ ParameterId["IsContextMenuAllowed"] = "isContextMenuAllowed";
+ // DPI_IsContinuous, having type bool
+ ParameterId["IsContinuous"] = "isContinuous";
+ // DPI_IsCopy, having type bool
+ ParameterId["IsCopy"] = "isCopy";
+ // DPI_IsCustomCalculation, having type bool
+ ParameterId["IsCustomCalculation"] = "isCustomCalculation";
+ // DPI_IsCustomPalette, having type bool
+ ParameterId["IsCustomPalette"] = "isCustomPalette";
+ // DPI_IsCustomSQL, having type bool
+ ParameterId["IsCustomSQL"] = "isCustomSql";
+ // DPI_IsCustomValueEnabled, having type bool
+ ParameterId["IsCustomValueEnabled"] = "isCustomValueEnabled";
+ // DPI_IsDataAlertConditionMet, having type bool
+ ParameterId["IsDataAlertConditionMet"] = "isDataAlertConditionMet";
+ // DPI_IsDataAlertDialogVisible, having type bool
+ ParameterId["IsDataAlertDialogVisible"] = "isDataAlertDialogVisible";
+ // DPI_IsDataBin, having type bool
+ ParameterId["IsDataBin"] = "isDataBin";
+ // DPI_IsDataGridVisible, having type bool
+ ParameterId["IsDataGridVisible"] = "isDataGridVisible";
+ // DPI_IsDatabase, having type bool
+ ParameterId["IsDatabase"] = "isDatabase";
+ // DPI_IsDatabaseFilterInclusive, having type bool
+ ParameterId["IsDatabaseFilterInclusive"] = "isDbFilterInclusive";
+ // DPI_IsDraggable, having type bool
+ ParameterId["IsDraggable"] = "isDraggable";
+ // DPI_IsMDXCalculation, having type bool
+ ParameterId["IsMDXCalculation"] = "isMdxCalculation";
+ // DPI_IsMetadata, having type bool
+ ParameterId["IsMetadata"] = "isMetadata";
+ // DPI_IsWebDataTabViewSupported, having type bool
+ ParameterId["IsWebDataTabViewSupported"] = "isWebDataTabViewSupported";
+ // DPI_IsPublishedDatasourceReplacement, having type bool
+ ParameterId["IsPublishedDatasourceReplacement"] = "isPublishedDatasourceReplacement";
+ // DPI_IsDeadDrop, having type bool
+ ParameterId["IsDeadDrop"] = "isDeadDrop";
+ // DPI_IsDefault, having type bool
+ ParameterId["IsDefault"] = "isDefault";
+ // DPI_IsDeleteCalcConfirm, having type bool
+ ParameterId["IsDeleteCalcConfirm"] = "isDeleteCalcConfirmed";
+ // DPI_IsDimension, having type bool
+ ParameterId["IsDimension"] = "isDimension";
+ // DPI_IsDisabled, having type bool
+ ParameterId["IsDisabled"] = "isDisabled";
+ // DPI_IsDivider, having type bool
+ ParameterId["IsDivider"] = "isDivider";
+ // DPI_IsDropdownEnabled, having type bool
+ ParameterId["IsDropdownEnabled"] = "isDropdownEnabled";
+ // DPI_IsEditing, having type bool
+ ParameterId["IsEditing"] = "isEditing";
+ // DPI_IsEmbedded, having type bool
+ ParameterId["IsEmbedded"] = "isEmbedded";
+ // DPI_IsEmpty, having type bool
+ ParameterId["IsEmpty"] = "isEmpty";
+ // DPI_IsAddInEnabled, having type bool
+ ParameterId["IsAddInEnabled"] = "isAddInEnabled";
+ // DPI_IsInDrillPath, having type bool
+ ParameterId["IsInDrillPath"] = "isInDrillPath";
+ // DPI_AddInJSDebuggingEnabled, having type bool
+ ParameterId["AddInJSDebuggingEnabled"] = "addInJsDebugginEnabled";
+ // DPI_AddInPauseBeforeLoading, having type bool
+ ParameterId["AddInPauseBeforeLoading"] = "addInPauseBeforeLoading";
+ // DPI_IsDSHierarchical, having type bool
+ ParameterId["IsDSHierarchical"] = "isDsHierarchical";
+ // DPI_IsEditorOpen, having type bool
+ ParameterId["IsEditorOpen"] = "isEditorOpen";
+ // DPI_IsEndPtMoveable, having type bool
+ ParameterId["IsEndPtMoveable"] = "isEndpointMovable";
+ // DPI_IsExclude, having type bool
+ ParameterId["IsExclude"] = "isExcludeButtonChecked";
+ // DPI_IsExistingConnection, having type bool
+ ParameterId["IsExistingConnection"] = "isExistingConnection";
+ // DPI_IsExistingObject, having type bool
+ ParameterId["IsExistingObject"] = "isExistingObject";
+ // DPI_IsExtract, having type bool
+ ParameterId["IsExtract"] = "isExtract";
+ // DPI_IsExtractOnlyConnection, having type bool
+ ParameterId["IsExtractOnlyConnection"] = "isExtractOnlyConnection";
+ // DPI_IsExtractSelectionVisible, having type bool
+ ParameterId["IsExtractSelectionVisible"] = "isExtractSelectionVisible";
+ // DPI_IsFederatable, having type bool
+ ParameterId["IsFederatable"] = "isFederatable";
+ // DPI_IsField, having type bool
+ ParameterId["IsField"] = "isField";
+ // DPI_IsFieldParameter, having type bool
+ ParameterId["IsFieldParameter"] = "isFieldParameter";
+ // DPI_IsFilterActionField, having type bool
+ ParameterId["IsFilterActionField"] = "isFilterActionField";
+ // DPI_IsFirstClassConnector, having type bool
+ ParameterId["IsFirstClassConnector"] = "isFirstClassConnector";
+ // DPI_IsFloating, having type bool
+ ParameterId["IsFloating"] = "isFloating";
+ // DPI_IsFolded, having type bool
+ ParameterId["IsFolded"] = "isFolded";
+ // DPI_IsForInput, having type bool
+ ParameterId["IsForInput"] = "isForInput";
+ // DPI_IsForecastEnabled, having type bool
+ ParameterId["IsForecastEnabled"] = "isForecastEnabled";
+ // DPI_IsForceDirty, having type bool
+ ParameterId["IsForceDirty"] = "isForceDirty";
+ // DPI_IsFullScan, having type bool
+ ParameterId["IsFullScan"] = "isFullScan";
+ // DPI_IsFullStyling, having type bool
+ ParameterId["IsFullStyling"] = "isFullStyling";
+ // DPI_IsGenerated, having type bool
+ ParameterId["IsGenerated"] = "isGenerated";
+ // DPI_IsGlobalNames, having type bool
+ ParameterId["IsGlobalNames"] = "isGlobalNames";
+ // DPI_IsGrayed, having type bool
+ ParameterId["IsGrayed"] = "isGrayed";
+ // DPI_IsGrayscale, having type bool
+ ParameterId["IsGrayscale"] = "isGrayscale";
+ // DPI_IsGroup, having type bool
+ ParameterId["IsGroup"] = "isGroup";
+ // DPI_IsHideableField, having type bool
+ ParameterId["IsHideableField"] = "isHideableField";
+ // DPI_IsHierarchy, having type bool
+ ParameterId["IsHierarchy"] = "isHierarchy";
+ // DPI_IsHierarchySingleSelect, having type bool
+ ParameterId["IsHierarchySingleSelect"] = "isHierarchySingleSelect";
+ // DPI_IsHighlightAllowed, having type bool
+ ParameterId["IsHighlightAllowed"] = "isHighlightAllowed";
+ // DPI_IsHighlightEnabled, having type bool
+ ParameterId["IsHighlightEnabled"] = "isHighlightEnabled";
+ // DPI_IsHighlightField, having type bool
+ ParameterId["IsHighlightField"] = "isHighlightField";
+ // DPI_IsHorizontal, having type bool
+ ParameterId["IsHorizontal"] = "isHorizontal";
+ // DPI_IsImageEnabled, having type bool
+ ParameterId["IsImageEnabled"] = "isImageEnabled";
+ // DPI_IsInDefault, having type bool
+ ParameterId["IsInDefault"] = "isInDefault";
+ // DPI_IsInPrimaryDataSource, having type bool
+ ParameterId["IsInPrimaryDataSource"] = "isInPrimaryDataSource";
+ // DPI_IsInner, having type bool
+ ParameterId["IsInner"] = "isInner";
+ // DPI_IsInstance, having type bool
+ ParameterId["IsInstance"] = "isInstance";
+ // DPI_IsInvalid, having type bool
+ ParameterId["IsInvalid"] = "isInvalid";
+ // DPI_IsInvalidCalcOnDG, having type bool
+ ParameterId["IsInvalidCalcOnDG"] = "isInvalidDgCalc";
+ // DPI_IsItalics, having type bool
+ ParameterId["IsItalics"] = "isItalics";
+ // DPI_IsJoinAreaVisible, having type bool
+ ParameterId["IsJoinAreaVisible"] = "isJoinAreaVisible";
+ // DPI_IsLabels, having type bool
+ ParameterId["IsLabels"] = "isLabels";
+ // DPI_IsLayered, having type bool
+ ParameterId["IsLayered"] = "isLayered";
+ // DPI_IsLeft, having type bool
+ ParameterId["IsLeft"] = "isLeft";
+ // DPI_IsLegacy, having type bool
+ ParameterId["IsLegacy"] = "isLegacy";
+ // DPI_IsLevel, having type bool
+ ParameterId["IsLevel"] = "isLevel";
+ // DPI_IsLevelOrLevelIdentity, having type bool
+ ParameterId["IsLevelOrLevelIdentity"] = "isLevelOrLevelIdentity";
+ // DPI_IsLicensed, having type bool
+ ParameterId["IsLicensed"] = "isLicensed";
+ // DPI_IsLink, having type bool
+ ParameterId["IsLink"] = "isLink";
+ // DPI_IsLinked, having type bool
+ ParameterId["IsLinked"] = "isLinked";
+ // DPI_IsMap, having type bool
+ ParameterId["IsMap"] = "isMap";
+ // DPI_IsMeasure, having type bool
+ ParameterId["IsMeasure"] = "isMeasure";
+ // DPI_IsMerge, having type bool
+ ParameterId["IsMerge"] = "isMerge";
+ // DPI_IsMessageSourceRemote, having type bool
+ ParameterId["IsMessageSourceRemote"] = "isMessageSourceRemote";
+ // DPI_IsMissingFromExtract, having type bool
+ ParameterId["IsMissingFromExtract"] = "isMissingFromExtract";
+ // DPI_IsMobile, having type bool
+ ParameterId["IsMobile"] = "isMobile";
+ // DPI_IsModified, having type bool
+ ParameterId["IsModified"] = "isModified";
+ // DPI_IsNew, having type bool
+ ParameterId["IsNew"] = "isNew";
+ // DPI_IsNewCloudFileDataSource, having type bool
+ ParameterId["IsNewCloudFileDataSource"] = "isNewCloudFileDataSource";
+ // DPI_IsNewZone, having type bool
+ ParameterId["IsNewZone"] = "isNewZone";
+ // DPI_IsNone, having type bool
+ ParameterId["IsNone"] = "isNone";
+ // DPI_IsOfflineMode, having type bool
+ ParameterId["IsOfflineMode"] = "isOfflineMode";
+ // DPI_IsPreAqlBin, having type bool
+ ParameterId["IsPreAqlBin"] = "isPreAqlBin";
+ // DPI_IsOMeasuresAndRelational, having type bool
+ ParameterId["IsOMeasuresAndRelational"] = "isOmeasuresAndRelational";
+ // DPI_IsOpaque, having type bool
+ ParameterId["IsOpaque"] = "isOpaque";
+ // DPI_IsOrphaned, having type bool
+ ParameterId["IsOrphaned"] = "isOrphaned";
+ // DPI_IsOverlay, having type bool
+ ParameterId["IsOverlay"] = "isOverlay";
+ // DPI_IsOverride, having type bool
+ ParameterId["IsOverride"] = "isOverride";
+ // DPI_IsPageLoading, having type bool
+ ParameterId["IsPageLoading"] = "isPageLoading";
+ // DPI_IsParameterSelected, having type bool
+ ParameterId["IsParameterSelected"] = "isParameterSelected";
+ // DPI_IsParameterSelectedOnFrom, having type bool
+ ParameterId["IsParameterSelectedOnFrom"] = "isParameterSelectedOnFrom";
+ // DPI_IsParameterSelectedOnTo, having type bool
+ ParameterId["IsParameterSelectedOnTo"] = "isParameterSelectedOnTo";
+ // DPI_IsPatternBased, having type bool
+ ParameterId["IsPatternBased"] = "isPatternBased";
+ // DPI_IsPinned, having type bool
+ ParameterId["IsPinned"] = "isPinned";
+ // DPI_IsPresentationMode, having type bool
+ ParameterId["IsPresentationMode"] = "isPresentationModeDoc";
+ // DPI_IsPublishAllowed, having type bool
+ ParameterId["IsPublishAllowed"] = "isPublishAllowed";
+ // DPI_IsMustDowngradeToPublish, having type bool
+ ParameterId["IsMustDowngradeToPublish"] = "isDowngradeToPublishRequired";
+ // DPI_IsPublished, having type bool
+ ParameterId["IsPublished"] = "isPublished";
+ // DPI_IsQuantitative, having type bool
+ ParameterId["IsQuantitative"] = "isQuantitative";
+ // DPI_IsQuickTableCalc, having type bool
+ ParameterId["IsQuickTableCalc"] = "isQuickTableCalc";
+ // DPI_IsRadioOn, having type bool
+ ParameterId["IsRadioOn"] = "isRadioOn";
+ // DPI_IsReconnect, having type bool
+ ParameterId["IsReconnect"] = "isReconnect";
+ // DPI_IsRecursive, having type bool
+ ParameterId["IsRecursive"] = "isRecursive";
+ // DPI_IsReferenced, having type bool
+ ParameterId["IsReferenced"] = "isReferenced";
+ // DPI_IsRemovalAllowed, having type bool
+ ParameterId["IsRemovalAllowed"] = "isRowRemovalAllowed";
+ // DPI_IsRenderCapable, having type bool
+ ParameterId["IsRenderCapable"] = "isRenderCapable";
+ // DPI_IsRequired, having type bool
+ ParameterId["IsRequired"] = "isRequired";
+ // DPI_IsReversed, having type bool
+ ParameterId["IsReversed"] = "isReversed";
+ // DPI_IsRightDrag, having type bool
+ ParameterId["IsRightDrag"] = "isRightDrag";
+ // DPI_IsRowLabels, having type bool
+ ParameterId["IsRowLabels"] = "isRowLabels";
+ // DPI_IsPercentage, having type bool
+ ParameterId["IsPercentage"] = "isPercentage";
+ // DPI_IsSalesforceInConnection, having type bool
+ ParameterId["IsSalesforceInConnection"] = "isSalesforceInConnection";
+ // DPI_IsScaled, having type bool
+ ParameterId["IsScaled"] = "isScaled";
+ // DPI_IsSecondaryField, having type bool
+ ParameterId["IsSecondaryField"] = "isSecondaryField";
+ // DPI_IsSelected, having type bool
+ ParameterId["IsSelected"] = "isSelected";
+ // DPI_IsSelectedItem, having type bool
+ ParameterId["IsSelectedItem"] = "isSelectedItem";
+ // DPI_IsSelectionDisabled, having type bool
+ ParameterId["IsSelectionDisabled"] = "isSelectionDisabled";
+ // DPI_IsShiftDrag, having type bool
+ ParameterId["IsShiftDrag"] = "isShiftDrag";
+ // DPI_IsSingleLabel, having type bool
+ ParameterId["IsSingleLabel"] = "isSingleLabel";
+ // DPI_IsSingleSelect, having type bool
+ ParameterId["IsSingleSelect"] = "isSingleSelect";
+ // DPI_IsSingleSelectMode, having type bool
+ ParameterId["IsSingleSelectMode"] = "isSingleSelectMode";
+ // DPI_IsSingleSelection, having type bool
+ ParameterId["IsSingleSelection"] = "isSingleSelection";
+ // DPI_IsSorted, having type bool
+ ParameterId["IsSorted"] = "isSorted";
+ // DPI_IsSortPill, having type bool
+ ParameterId["IsSortPill"] = "isSortPill";
+ // DPI_IsSpecial, having type bool
+ ParameterId["IsSpecial"] = "isSpecial";
+ // DPI_IsSplashScreen, having type bool
+ ParameterId["IsSplashScreen"] = "isSplashScreen";
+ // DPI_IsStoryEmpty, having type bool
+ ParameterId["IsStoryEmpty"] = "isStoryEmpty";
+ // DPI_IsStrikeThrough, having type bool
+ ParameterId["IsStrikeThrough"] = "isStrikeThrough";
+ // DPI_IsTableCalc, having type bool
+ ParameterId["IsTableCalc"] = "isTableCalc";
+ // DPI_IsTableCleaningSubtable, having type bool
+ ParameterId["IsTableCleaningSubtable"] = "isTableCleaningSubtable";
+ // DPI_IsTableFilterInclusive, having type bool
+ ParameterId["IsTableFilterInclusive"] = "isTableFilterInclusive";
+ // DPI_IsTableRanked, having type bool
+ ParameterId["IsTableRanked"] = "isTableRanked";
+ // DPI_IsTemporary, having type bool
+ ParameterId["IsTemporary"] = "isTemporary";
+ // DPI_IsTimeIntelligence, having type bool
+ ParameterId["IsTimeIntelligence"] = "isTimeIntelligence";
+ // DPI_IsTitleVisible, having type bool
+ ParameterId["IsTitleVisible"] = "isTitleVisible";
+ // DPI_IsTopLevel, having type bool
+ ParameterId["IsTopLevel"] = "isTopLevel";
+ // DPI_IsTwoValued, having type bool
+ ParameterId["IsTwoValued"] = "isTwoValued";
+ // DPI_IsTypeInFinished, having type bool
+ ParameterId["IsTypeInFinished"] = "isTypeinFinished";
+ // DPI_IsTypeInPill, having type bool
+ ParameterId["IsTypeInPill"] = "isTypeInPill";
+ // DPI_IsURLActionField, having type bool
+ ParameterId["IsURLActionField"] = "isUrlActionField";
+ // DPI_IsUnderlined, having type bool
+ ParameterId["IsUnderlined"] = "isUnderlined";
+ // DPI_IsUnion, having type bool
+ ParameterId["IsUnion"] = "isUnion";
+ // DPI_IsUnionReplacement, having type bool
+ ParameterId["IsUnionReplacement"] = "isUnionReplacement";
+ // DPI_IsUnnamedCalc, having type bool
+ ParameterId["IsUnnamedCalc"] = "isUnnamed";
+ // DPI_IsUserDefinedAttribute, having type bool
+ ParameterId["IsUserDefinedAttribute"] = "isUserDefinedAttribute";
+ // DPI_IsUserEditable, having type bool
+ ParameterId["IsUserEditable"] = "isUserEditable";
+ // DPI_IsUserPrompted, having type bool
+ ParameterId["IsUserPrompted"] = "isUserPrompted";
+ // DPI_IsUserResponded, having type bool
+ ParameterId["IsUserResponded"] = "isUserResponded";
+ // DPI_IsValid, having type bool
+ ParameterId["IsValid"] = "isValid";
+ // DPI_IsValidWDCPage, having type bool
+ ParameterId["IsValidWDCPage"] = "isValidWdcPage";
+ // DPI_IsVaryingAttributeDimension, having type bool
+ ParameterId["IsVaryingAttributeDimension"] = "isVaryingAttributeDimension";
+ // DPI_IsVertical, having type bool
+ ParameterId["IsVertical"] = "isVertical";
+ // DPI_IsViewModified, having type bool
+ ParameterId["IsViewModified"] = "isViewModified";
+ // DPI_IsVisuallyCategorical, having type bool
+ ParameterId["IsVisuallyCategorical"] = "isVisuallyCat";
+ // DPI_IsVizInTooltip, having type bool
+ ParameterId["IsVizInTooltip"] = "isVizInTooltip";
+ // DPI_IsWeb, having type bool
+ ParameterId["IsWeb"] = "isWeb";
+ // DPI_IsWhite, having type bool
+ ParameterId["IsWhite"] = "isWhite";
+ // DPI_IsWorldNew, having type bool
+ ParameterId["IsWorldNew"] = "isWorldNew";
+ // DPI_IsXAxis, having type bool
+ ParameterId["IsXAxis"] = "isXAxis";
+ // DPI_KeepAspectRatio, having type bool
+ ParameterId["KeepAspectRatio"] = "keepAspectRatio";
+ // DPI_LabelLineEndFirst, having type bool
+ ParameterId["LabelLineEndFirst"] = "labelLineEndFirst";
+ // DPI_LabelLineEndLast, having type bool
+ ParameterId["LabelLineEndLast"] = "labelLineEndLast";
+ // DPI_LabelMarkMax, having type bool
+ ParameterId["LabelMarkMax"] = "labelMarkMax";
+ // DPI_LabelMarkMin, having type bool
+ ParameterId["LabelMarkMin"] = "labelMarkMin";
+ // DPI_LockAspectRatio, having type bool
+ ParameterId["LockAspectRatio"] = "lockAspectRatio";
+ // DPI_LoopPlayback, having type bool
+ ParameterId["LoopPlayback"] = "loopPlayback";
+ // DPI_LossyImages, having type bool
+ ParameterId["LossyImages"] = "lossyImages";
+ // DPI_MakeGlobal, having type bool
+ ParameterId["MakeGlobal"] = "isMakeGlobal";
+ // DPI_ManualSortOnly, having type bool
+ ParameterId["ManualSortOnly"] = "manualSortOnly";
+ // DPI_MapBoxDefaultStyleSelected, having type bool
+ ParameterId["MapBoxDefaultStyleSelected"] = "mapboxDefaultStyleSelected";
+ // DPI_MapBoxURLParseSuccessful, having type bool
+ ParameterId["MapBoxURLParseSuccessful"] = "mapboxUrlParseSuccessful";
+ // DPI_MapClientRequestsMapTiles, having type bool
+ ParameterId["MapClientRequestsMapTiles"] = "clientRequestsMapTiles";
+ // DPI_MapHasValidLayer, having type bool
+ ParameterId["MapHasValidLayer"] = "mapHasValidLayer";
+ // DPI_MapShowAttribution, having type bool
+ ParameterId["MapShowAttribution"] = "showAttribution";
+ // DPI_MarkLabelsVisibilityChanged, having type bool
+ ParameterId["MarkLabelsVisibilityChanged"] = "markLabelsVisibilityChanged";
+ // DPI_MembersLoaded, having type bool
+ ParameterId["MembersLoaded"] = "membersLoaded";
+ // DPI_MinimizeNames, having type bool
+ ParameterId["MinimizeNames"] = "useMinNames";
+ // DPI_ModelsTime, having type bool
+ ParameterId["ModelsTime"] = "modelsTime";
+ // DPI_MoveRefereceLineUp, having type bool
+ ParameterId["MoveRefereceLineUp"] = "moveReferenceLineUp";
+ // DPI_MultiDataSources, having type bool
+ ParameterId["MultiDataSources"] = "multiDataSources";
+ // DPI_NavArrowsVisible, having type bool
+ ParameterId["NavArrowsVisible"] = "navArrowsVisible";
+ // DPI_OEMHasSplashScreen, having type bool
+ ParameterId["OEMHasSplashScreen"] = "oemHasSplashScreen";
+ // DPI_OneWayBrushing, having type bool
+ ParameterId["OneWayBrushing"] = "oneWayBrushing";
+ // DPI_OnlyAggregations, having type bool
+ ParameterId["OnlyAggregations"] = "onlyAggregations";
+ // DPI_OnlyShowDateBins, having type bool
+ ParameterId["OnlyShowDateBins"] = "onlyShowDateBins";
+ // DPI_OverrideAllowed, having type bool
+ ParameterId["OverrideAllowed"] = "overrideAllowed";
+ // DPI_OverrideStackDumper, having type bool
+ ParameterId["OverrideStackDumper"] = "overrideStackDumper";
+ // DPI_PageAutoColorLines, having type bool
+ ParameterId["PageAutoColorLines"] = "autoColorLines";
+ // DPI_PageAutoColorMarks, having type bool
+ ParameterId["PageAutoColorMarks"] = "autoColorMarks";
+ // DPI_PageHistoryFade, having type bool
+ ParameterId["PageHistoryFade"] = "historyFade";
+ // DPI_PercentageBands, having type bool
+ ParameterId["PercentageBands"] = "percentageBands";
+ // DPI_PercentilesAllowed, having type bool
+ ParameterId["PercentilesAllowed"] = "percentilesAllowed";
+ // DPI_PublishWithRemoteQueryAgent, having type bool
+ ParameterId["PublishWithRemoteQueryAgent"] = "publishWithRemoteQueryAgent";
+ // DPI_PreviousSheet, having type bool
+ ParameterId["PreviousSheet"] = "previousSheet";
+ // DPI_PromptDeleteSheetsWithVizInTooltip, having type bool
+ ParameterId["PromptDeleteSheetsWithVizInTooltip"] = "promptDeleteSheetsWithVizInTooltip";
+ // DPI_QuantilesAllowed, having type bool
+ ParameterId["QuantilesAllowed"] = "quantilesAllowed";
+ // DPI_RadialDistanceHitTest, having type bool
+ ParameterId["RadialDistanceHitTest"] = "radialDistanceHitTest";
+ // DPI_RefLineSelected, having type bool
+ ParameterId["RefLineSelected"] = "refLineSelected";
+ // DPI_RemovedSheets, having type bool
+ ParameterId["RemovedSheets"] = "removedSheets";
+ // DPI_RenderImagesAsUrls, having type bool
+ ParameterId["RenderImagesAsUrls"] = "imagesAsUrls";
+ // DPI_RenderOnTop, having type bool
+ ParameterId["RenderOnTop"] = "renderOnTop";
+ // DPI_RepeatHeadersLegends, having type bool
+ ParameterId["RepeatHeadersLegends"] = "repeatHeadersLegends";
+ // DPI_ReplaceActiveConfig, having type bool
+ ParameterId["ReplaceActiveConfig"] = "replaceActiveConfig";
+ // DPI_ReplaceDatasourceAfterPublish, having type bool
+ ParameterId["ReplaceDatasourceAfterPublish"] = "replaceDatasourceAfterPublish";
+ // DPI_ReplaceDatasourceFailed, having type bool
+ ParameterId["ReplaceDatasourceFailed"] = "replaceDatasourceFailed";
+ // DPI_ReplaceTde, having type bool
+ ParameterId["ReplaceTde"] = "replaceTde";
+ // DPI_RequireSelection, having type bool
+ ParameterId["RequireSelection"] = "requireSelection";
+ // DPI_RequiresDBVariables, having type bool
+ ParameterId["RequiresDBVariables"] = "requiresDbVariables";
+ // DPI_RequiresFieldList, having type bool
+ ParameterId["RequiresFieldList"] = "requiresFieldList";
+ // DPI_RestartEveryFieldIsInvalid, having type bool
+ ParameterId["RestartEveryFieldIsInvalid"] = "restartEveryFieldIsInvalid";
+ // DPI_RightJustify, having type bool
+ ParameterId["RightJustify"] = "rightJustify";
+ // DPI_SaveEnabled, having type bool
+ ParameterId["SaveEnabled"] = "saveEnabled";
+ // DPI_SavePasswordAllowed, having type bool
+ ParameterId["SavePasswordAllowed"] = "savePasswordAllowed";
+ // DPI_ScopeIsolation, having type bool
+ ParameterId["ScopeIsolation"] = "scopeIsolation";
+ // DPI_SelectionRequired, having type bool
+ ParameterId["SelectionRequired"] = "selectionRequired";
+ // DPI_SendNotifications, having type bool
+ ParameterId["SendNotifications"] = "sendNotifications";
+ // DPI_SetActive, having type bool
+ ParameterId["SetActive"] = "setActive";
+ // DPI_SetDefaultSort, having type bool
+ ParameterId["SetDefaultSort"] = "setDefault";
+ // DPI_SheetIsDashboard, having type bool
+ ParameterId["SheetIsDashboard"] = "isDashboard";
+ // DPI_SheetIsStoryboard, having type bool
+ ParameterId["SheetIsStoryboard"] = "isStory";
+ // DPI_ShouldAlwaysDisplayAlias, having type bool
+ ParameterId["ShouldAlwaysDisplayAlias"] = "shouldAlwaysDisplayAlias";
+ // DPI_ShouldAutoCapture, having type bool
+ ParameterId["ShouldAutoCapture"] = "shouldAutoCapture";
+ // DPI_ShouldAutoRevert, having type bool
+ ParameterId["ShouldAutoRevert"] = "shouldAutoRevert";
+ // DPI_ShouldChangeUIMode, having type bool
+ ParameterId["ShouldChangeUIMode"] = "shouldChangeUiMode";
+ // DPI_ShouldDisplay, having type bool
+ ParameterId["ShouldDisplay"] = "shouldDisplay";
+ // DPI_ShouldDrill, having type bool
+ ParameterId["ShouldDrill"] = "shouldDrill";
+ // DPI_ShouldForceConnectionAttempt, having type bool
+ ParameterId["ShouldForceConnectionAttempt"] = "shouldForceConnectionAttempt";
+ // DPI_ShouldRefreshDS, having type bool
+ ParameterId["ShouldRefreshDS"] = "shouldRefreshDs";
+ // DPI_ShouldScaleMarksInAxisUnits, having type bool
+ ParameterId["ShouldScaleMarksInAxisUnits"] = "shouldScaleMarksInAxisUnits";
+ // DPI_ShouldSeedCredentials, having type bool
+ ParameterId["ShouldSeedCredentials"] = "shouldSeedCredentials";
+ // DPI_ShouldShowDataSourceConnectionError, having type bool
+ ParameterId["ShouldShowDataSourceConnectionError"] = "shouldShowDataSourceConnectionError";
+ // DPI_ShouldShowDistance, having type bool
+ ParameterId["ShouldShowDistance"] = "shouldShowDistance";
+ // DPI_ShouldShowHiddenField, having type bool
+ ParameterId["ShouldShowHiddenField"] = "shouldShowHiddenField";
+ // DPI_ShouldShowMapScale, having type bool
+ ParameterId["ShouldShowMapScale"] = "shouldShowMapScale";
+ // DPI_ShouldURLEscape, having type bool
+ ParameterId["ShouldURLEscape"] = "shouldUrlEscape";
+ // DPI_ShouldUpdateDomainInfo, having type bool
+ ParameterId["ShouldUpdateDomainInfo"] = "shouldUpdateDomInfo";
+ // DPI_ShowAddToFilter, having type bool
+ ParameterId["ShowAddToFilter"] = "showAddToFilterButton";
+ // DPI_ShowAliases, having type bool
+ ParameterId["ShowAliases"] = "showAliases";
+ // DPI_ShowAllPages, having type bool
+ ParameterId["ShowAllPages"] = "showAllPages";
+ // DPI_ShowApply, having type bool
+ ParameterId["ShowApply"] = "showApplyButton";
+ // DPI_ShowApplyAndCancelButtons, having type bool
+ ParameterId["ShowApplyAndCancelButtons"] = "showApplyAndCancelButtons";
+ // DPI_ShowAuthenticationOptions, having type bool
+ ParameterId["ShowAuthenticationOptions"] = "showAuthenticationOptions";
+ // DPI_ShowAuthenticationSetting, having type bool
+ ParameterId["ShowAuthenticationSetting"] = "showAuthenticationSetting";
+ // DPI_ShowAuto, having type bool
+ ParameterId["ShowAuto"] = "showAuto";
+ // DPI_ShowBold, having type bool
+ ParameterId["ShowBold"] = "showBoldOption";
+ // DPI_ShowButtons, having type bool
+ ParameterId["ShowButtons"] = "showButtons";
+ // DPI_ShowCaption, having type bool
+ ParameterId["ShowCaption"] = "showCaption";
+ // DPI_ShowColorLegend, having type bool
+ ParameterId["ShowColorLegend"] = "showColorLegend";
+ // DPI_ShowDataGridInlineRename, having type bool
+ ParameterId["ShowDataGridInlineRename"] = "showDataGridInlineRename";
+ // DPI_ShowDetailMessages, having type bool
+ ParameterId["ShowDetailMessages"] = "showDetailMessages";
+ // DPI_ShowDate, having type bool
+ ParameterId["ShowDate"] = "showDate";
+ // DPI_ShowDragLabel, having type bool
+ ParameterId["ShowDragLabel"] = "showDragLabel";
+ // DPI_ShowDropMeasures, having type bool
+ ParameterId["ShowDropMeasures"] = "showDropMeasures";
+ // DPI_ShowEmbedAll, having type bool
+ ParameterId["ShowEmbedAll"] = "showEmbedAll";
+ // DPI_ShowEntireImage, having type bool
+ ParameterId["ShowEntireImage"] = "showEntireImage";
+ // DPI_ShowExclude, having type bool
+ ParameterId["ShowExclude"] = "showExcludeButton";
+ // DPI_ShowFloatingZoomToolbar, having type bool
+ ParameterId["ShowFloatingZoomToolbar"] = "showFloatingZoomToolbar";
+ // DPI_ShowFormatter, having type bool
+ ParameterId["ShowFormatter"] = "showFormatter";
+ // DPI_ShowFullSchedules, having type bool
+ ParameterId["ShowFullSchedules"] = "showFullSchedules";
+ // DPI_ShowGeographicSearch, having type bool
+ ParameterId["ShowGeographicSearch"] = "showGeographicSearch";
+ // DPI_ShowHiddenFields, having type bool
+ ParameterId["ShowHiddenFields"] = "showHiddenFields";
+ // DPI_ShowHistoryControls, having type bool
+ ParameterId["ShowHistoryControls"] = "showHistoryControls";
+ // DPI_ShowIncludeLocalFiles, having type bool
+ ParameterId["ShowIncludeLocalFiles"] = "showIncludeLocalFiles";
+ // DPI_ShowIncludeOtherOption, having type bool
+ ParameterId["ShowIncludeOtherOption"] = "showIncludeOtherOption";
+ // DPI_ShowIncludeSelections, having type bool
+ ParameterId["ShowIncludeSelections"] = "showIncludeSelections";
+ // DPI_ShowIncrSchedules, having type bool
+ ParameterId["ShowIncrSchedules"] = "showIncrSchedules";
+ // DPI_ShowInnerMostLevel, having type bool
+ ParameterId["ShowInnerMostLevel"] = "showInnermostLevel";
+ // DPI_ShowItalics, having type bool
+ ParameterId["ShowItalics"] = "showItalicsOption";
+ // DPI_ShowLegend, having type bool
+ ParameterId["ShowLegend"] = "showLegend";
+ // DPI_ShowLockedPermissionsIcon, having type bool
+ ParameterId["ShowLockedPermissionsIcon"] = "showLockedPermissionsIcon";
+ // DPI_ShowManageDatasources, having type bool
+ ParameterId["ShowManageDatasources"] = "showManageDatasources";
+ // DPI_ShowMapLegend, having type bool
+ ParameterId["ShowMapLegend"] = "showMapLegend";
+ // DPI_ShowMapScale, having type bool
+ ParameterId["ShowMapScale"] = "showMapScale";
+ // DPI_ShowMappedFilterCols, having type bool
+ ParameterId["ShowMappedFilterCols"] = "showMappedFilterColumns";
+ // DPI_ShowName, having type bool
+ ParameterId["ShowName"] = "showName";
+ // DPI_ShowNone, having type bool
+ ParameterId["ShowNone"] = "showNone";
+ // DPI_ShowPagePlayback, having type bool
+ ParameterId["ShowPagePlayback"] = "showPagePlayback";
+ // DPI_ShowPageReadout, having type bool
+ ParameterId["ShowPageReadout"] = "showPageReadout";
+ // DPI_ShowPageSlider, having type bool
+ ParameterId["ShowPageSlider"] = "showPageSlider";
+ // DPI_ShowParent, having type bool
+ ParameterId["ShowParent"] = "showParent";
+ // DPI_ShowPercentages, having type bool
+ ParameterId["ShowPercentages"] = "showPercentages";
+ // DPI_ShowPredictionIntervals, having type bool
+ ParameterId["ShowPredictionIntervals"] = "showPredictionIntervals";
+ // DPI_ShowPublishedDatasources, having type bool
+ ParameterId["ShowPublishedDatasources"] = "showPublishedDatasources";
+ // DPI_ShowRelDatePicker, having type bool
+ ParameterId["ShowRelDatePicker"] = "showRelDatePicker";
+ // DPI_ShowReplaceDatasource, having type bool
+ ParameterId["ShowReplaceDatasource"] = "showReplaceDatasource";
+ // DPI_ShowSeparator, having type bool
+ ParameterId["ShowSeparator"] = "showSeparator";
+ // DPI_ShowShapeLegend, having type bool
+ ParameterId["ShowShapeLegend"] = "showShapeLegend";
+ // DPI_ShowSizeLegend, having type bool
+ ParameterId["ShowSizeLegend"] = "showSizeLegend";
+ // DPI_ShowShelf, having type bool
+ ParameterId["ShowShelf"] = "showShelf";
+ // DPI_ShowStructure, having type bool
+ ParameterId["ShowStructure"] = "showStructure";
+ // DPI_ShowSyncClientOptions, having type bool
+ ParameterId["ShowSyncClientOptions"] = "showSyncClientOptions";
+ // DPI_ShowTabsAllowed, having type bool
+ ParameterId["ShowTabsAllowed"] = "showTabsAllowed";
+ // DPI_ShowTime, having type bool
+ ParameterId["ShowTime"] = "showTime";
+ // DPI_ShowTitle, having type bool
+ ParameterId["ShowTitle"] = "showTitle";
+ // DPI_ShowTransSlider, having type bool
+ ParameterId["ShowTransSlider"] = "showTransparencySlider";
+ // DPI_ShowUnderline, having type bool
+ ParameterId["ShowUnderline"] = "showUnderlineOption";
+ // DPI_ShowUserThumbnailOptions, having type bool
+ ParameterId["ShowUserThumbnailOptions"] = "showUserThumbnailOptions";
+ // DPI_ShowView, having type bool
+ ParameterId["ShowView"] = "showView";
+ // DPI_ShowViews, having type bool
+ ParameterId["ShowViews"] = "showViews";
+ // DPI_ShowingPageLoadError, having type bool
+ ParameterId["ShowingPageLoadError"] = "showingPageLoadError";
+ // DPI_SupressAliases, having type bool
+ ParameterId["SupressAliases"] = "suspressAliases";
+ // DPI_SupressThousandsSeparator, having type bool
+ ParameterId["SupressThousandsSeparator"] = "supressThousandsSeparator";
+ // DPI_SingleSelectOnly, having type bool
+ ParameterId["SingleSelectOnly"] = "singleSelectOnly";
+ // DPI_SkipIfActive, having type bool
+ ParameterId["SkipIfActive"] = "skipIfActive";
+ // DPI_SkipRefresh, having type bool
+ ParameterId["SkipRefresh"] = "skipRefresh";
+ // DPI_SkipValidation, having type bool
+ ParameterId["SkipValidation"] = "skipValidation";
+ // DPI_Skipped, having type bool
+ ParameterId["Skipped"] = "skipped";
+ // DPI_SortFieldIsInvalid, having type bool
+ ParameterId["SortFieldIsInvalid"] = "sortFieldIsInvalid";
+ // DPI_SortModeIsAuto, having type bool
+ ParameterId["SortModeIsAuto"] = "sortModeIsAuto";
+ // DPI_SplitOnEdgeSnap, having type bool
+ ParameterId["SplitOnEdgeSnap"] = "splitOnEdgeSnap";
+ // DPI_StandardDeviationAllowed, having type bool
+ ParameterId["StandardDeviationAllowed"] = "standardDeviationAllowed";
+ // DPI_State, having type bool
+ ParameterId["State"] = "state";
+ // DPI_StoredProcDisabled, having type bool
+ ParameterId["StoredProcDisabled"] = "storedProcDisabled";
+ // DPI_StoredProcsDropable, having type bool
+ ParameterId["StoredProcsDropable"] = "storedProcsDropable";
+ // DPI_StoryIsEmpty, having type bool
+ ParameterId["StoryIsEmpty"] = "storyIsEmpty";
+ // DPI_StoryPointIsEmpty, having type bool
+ ParameterId["StoryPointIsEmpty"] = "storyPointIsEmpty";
+ // DPI_SuccessfulSave, having type bool
+ ParameterId["SuccessfulSave"] = "successfulSave";
+ // DPI_SupportXAxis, having type bool
+ ParameterId["SupportXAxis"] = "supportXAxis";
+ // DPI_SupportYAxis, having type bool
+ ParameterId["SupportYAxis"] = "supportYAxis";
+ // DPI_SupportsCenterAlignment, having type bool
+ ParameterId["SupportsCenterAlignment"] = "supportsCenterAlignment";
+ // DPI_SupportsDBFilters, having type bool
+ ParameterId["SupportsDBFilters"] = "supportsDatabaseFilters";
+ // DPI_SupportsMultipleValues, having type bool
+ ParameterId["SupportsMultipleValues"] = "supportsMultipleValues";
+ // DPI_SupportsRightAlignment, having type bool
+ ParameterId["SupportsRightAlignment"] = "supportsRightAlignment";
+ // DPI_SupportsTableFilters, having type bool
+ ParameterId["SupportsTableFilters"] = "supportsTableFilters";
+ // DPI_Symmetric, having type bool
+ ParameterId["Symmetric"] = "symmetric";
+ // DPI_SyncAutomaticDrill, having type bool
+ ParameterId["SyncAutomaticDrill"] = "syncAutomaticDrill";
+ // DPI_TabsAllowed, having type bool
+ ParameterId["TabsAllowed"] = "tabsAllowed";
+ // DPI_TextDropdownState, having type bool
+ ParameterId["TextDropdownState"] = "toggleState";
+ // DPI_TitleInline, having type bool
+ ParameterId["TitleInline"] = "titleInline";
+ // DPI_ToggleHighlightStateChanged, having type bool
+ ParameterId["ToggleHighlightStateChanged"] = "toggleHighlight";
+ // DPI_Transformed80Format, having type bool
+ ParameterId["Transformed80Format"] = "oldFormat";
+ // DPI_TrendLineSelected, having type bool
+ ParameterId["TrendLineSelected"] = "trendLineSelected";
+ // DPI_TruncDate, having type bool
+ ParameterId["TruncDate"] = "truncDate";
+ // DPI_TupleSelected, having type bool
+ ParameterId["TupleSelected"] = "tupleSelected";
+ // DPI_UIAutomationDidPageLoad, having type bool
+ ParameterId["UIAutomationDidPageLoad"] = "uiAutomationDidPageLoad";
+ // DPI_UIAutomationIsChecked, having type bool
+ ParameterId["UIAutomationIsChecked"] = "uiAutomationIsChecked";
+ // DPI_UIAutomationIsEnabled, having type bool
+ ParameterId["UIAutomationIsEnabled"] = "uiAutomationIsEnabled";
+ // DPI_UIAutomationIsEventProcessed, having type bool
+ ParameterId["UIAutomationIsEventProcessed"] = "uiAutomationIsEventProcessed";
+ // DPI_UIAutomationIsFocused, having type bool
+ ParameterId["UIAutomationIsFocused"] = "uiAutomationIsFocused";
+ // DPI_UIAutomationIsFound, having type bool
+ ParameterId["UIAutomationIsFound"] = "uiAutomationIsFound";
+ // DPI_UIAutomationIsReadonly, having type bool
+ ParameterId["UIAutomationIsReadonly"] = "uiAutomationIsReadonly";
+ // DPI_UIAutomationIsSelected, having type bool
+ ParameterId["UIAutomationIsSelected"] = "uiAutomationIsSelected";
+ // DPI_UpdateAllPanes, having type bool
+ ParameterId["UpdateAllPanes"] = "updateAllPanes";
+ // DPI_UpdateDSCaptionOnly, having type bool
+ ParameterId["UpdateDSCaptionOnly"] = "updateDsCaptionOnly";
+ // DPI_UpdateModelFromParams, having type bool
+ ParameterId["UpdateModelFromParams"] = "updateModelFromParams";
+ // DPI_UpdateShelves, having type bool
+ ParameterId["UpdateShelves"] = "updateShelves";
+ // DPI_UpdatesUseContext, having type bool
+ ParameterId["UpdatesUseContext"] = "updatesUseContext";
+ // DPI_UpgradeDocumentVersion, having type bool
+ ParameterId["UpgradeDocumentVersion"] = "upgradeDocumentVersion";
+ // DPI_UseAliases, having type bool
+ ParameterId["UseAliases"] = "useAliases";
+ // DPI_UseBlankForNull, having type bool
+ ParameterId["UseBlankForNull"] = "useBlankForNull";
+ // DPI_UseCalculationEditor, having type bool
+ ParameterId["UseCalculationEditor"] = "useCalculationEditor";
+ // DPI_UseCenterValue, having type bool
+ ParameterId["UseCenterValue"] = "useCenterValue";
+ // DPI_UseColor, having type bool
+ ParameterId["UseColor"] = "useColor";
+ // DPI_UseCustomMarkSize, having type bool
+ ParameterId["UseCustomMarkSize"] = "useCustomMarkSize";
+ // DPI_UseDarkIcons, having type bool
+ ParameterId["UseDarkIcons"] = "useDarkIcons";
+ // DPI_UseDataStoreMinfiedNames, having type bool
+ ParameterId["UseDataStoreMinfiedNames"] = "useDatastoreMinNames";
+ // DPI_UseInitialDomainType, having type bool
+ ParameterId["UseInitialDomainType"] = "useInitialDomainType";
+ // DPI_UseEndValue, having type bool
+ ParameterId["UseEndValue"] = "useEndValue";
+ // DPI_UseForOverlayHitTest, having type bool
+ ParameterId["UseForOverlayHitTest"] = "useForOverlayHitTest";
+ // DPI_UseFullColorRange, having type bool
+ ParameterId["UseFullColorRange"] = "useFullColorRange";
+ // DPI_UseFullDomain, having type bool
+ ParameterId["UseFullDomain"] = "useFullDomain";
+ // DPI_UseInlineImages, having type bool
+ ParameterId["UseInlineImages"] = "useInlineImages";
+ // DPI_UseMeasures, having type bool
+ ParameterId["UseMeasures"] = "useMeasures";
+ // DPI_UseNewQuickFilters, having type bool
+ ParameterId["UseNewQuickFilters"] = "useNewQuickFilters";
+ // DPI_UseNotificationReturn, having type bool
+ ParameterId["UseNotificationReturn"] = "useNotificationReturn";
+ // DPI_UseParameters, having type bool
+ ParameterId["UseParameters"] = "useParameters";
+ // DPI_UseSelector, having type bool
+ ParameterId["UseSelector"] = "useSelector";
+ // DPI_UseSignificantDigits, having type bool
+ ParameterId["UseSignificantDigits"] = "useSignificantDigits";
+ // DPI_UseSpecialStrings, having type bool
+ ParameterId["UseSpecialStrings"] = "useSpecialStrings";
+ // DPI_UseStartValue, having type bool
+ ParameterId["UseStartValue"] = "useStartValue";
+ // DPI_UseTabs, having type bool
+ ParameterId["UseTabs"] = "useTabs";
+ // DPI_UseTabletAsDefaultPreview, having type bool
+ ParameterId["UseTabletAsDefaultPreview"] = "useTabletAsDefaultPreview";
+ // DPI_UseTargetPt, having type bool
+ ParameterId["UseTargetPt"] = "useTargetPoint";
+ // DPI_UseUSLocale, having type bool
+ ParameterId["UseUSLocale"] = "useUsLocale";
+ // DPI_UseYAxis, having type bool
+ ParameterId["UseYAxis"] = "useYAxis";
+ // DPI_Valid, having type bool
+ ParameterId["Valid"] = "valid";
+ // DPI_VizDataV82, having type bool
+ ParameterId["VizDataV82"] = "vizData82";
+ // DPI_WMSConnectionSuccessful, having type bool
+ ParameterId["WMSConnectionSuccessful"] = "wmsConnectionSuccessful";
+ // DPI_WMSShouldUseTiles, having type bool
+ ParameterId["WMSShouldUseTiles"] = "wmsShouldUseTiles";
+ // DPI_WantDomain, having type bool
+ ParameterId["WantDomain"] = "wantDomain";
+ // DPI_WorkbookModified, having type bool
+ ParameterId["WorkbookModified"] = "workbookModified";
+ // DPI_ZoomIn, having type bool
+ ParameterId["ZoomIn"] = "zoomIn";
+ // DPI_ShowMarkLabels, having type bool
+ ParameterId["ShowMarkLabels"] = "showMarkLabels";
+ // DPI_HasDuplicates, having type bool
+ ParameterId["HasDuplicates"] = "hasDuplicates";
+ // DPI_HasUserDefinedIncrement, having type bool
+ ParameterId["HasUserDefinedIncrement"] = "hasUserDefinedIncrement";
+ // DPI_HasUserDefinedMax, having type bool
+ ParameterId["HasUserDefinedMax"] = "hasUserDefinedMax";
+ // DPI_HasUserDefinedMin, having type bool
+ ParameterId["HasUserDefinedMin"] = "hasUserDefinedMin";
+ // DPI_IsDuplicate, having type bool
+ ParameterId["IsDuplicate"] = "isDuplicate";
+ // DPI_IsEditingValue, having type bool
+ ParameterId["IsEditingValue"] = "isEditingValue";
+ // DPI_ShouldRestrictDataType, having type bool
+ ParameterId["ShouldRestrictDataType"] = "restrictDataType";
+ // DPI_EnableIncludeZero, having type bool
+ ParameterId["EnableIncludeZero"] = "enableIncludeZero";
+ // DPI_EnableSyncDualAxes, having type bool
+ ParameterId["EnableSyncDualAxes"] = "enableSynchronizeDualAxes";
+ // DPI_EnableShowTimes, having type bool
+ ParameterId["EnableShowTimes"] = "enableShowTimes";
+ // DPI_EnableTickMarksTab, having type bool
+ ParameterId["EnableTickMarksTab"] = "enableTickMarksTab";
+ // DPI_IsTemporal, having type bool
+ ParameterId["IsTemporal"] = "isTemporal";
+ // DPI_ShouldIncludeZero, having type bool
+ ParameterId["ShouldIncludeZero"] = "shouldIncludeZero";
+ // DPI_ShouldReverseAxis, having type bool
+ ParameterId["ShouldReverseAxis"] = "shouldReverseAxis";
+ // DPI_ShouldShowTimes, having type bool
+ ParameterId["ShouldShowTimes"] = "shouldShowTimes";
+ // DPI_UseAutomaticAxisSubtitle, having type bool
+ ParameterId["UseAutomaticAxisSubtitle"] = "useAutomaticSubtitle";
+ // DPI_UseAutomaticAxisTitle, having type bool
+ ParameterId["UseAutomaticAxisTitle"] = "useAutomaticTitle";
+ // DPI_AllSelected, having type bool
+ ParameterId["AllSelected"] = "allSelected";
+ // DPI_AutoCommit, having type bool
+ ParameterId["AutoCommit"] = "autoCommit";
+ // DPI_CacheOnly, having type bool
+ ParameterId["CacheOnly"] = "cacheOnly";
+ // DPI_IncludeData, having type bool
+ ParameterId["IncludeData"] = "includeData";
+ // DPI_IsPatternExclusive, having type bool
+ ParameterId["IsPatternExclusive"] = "isPatternExclusive";
+ // DPI_IsSearchable, having type bool
+ ParameterId["IsSearchable"] = "isSearchable";
+ // DPI_IsSelectionExclusive, having type bool
+ ParameterId["IsSelectionExclusive"] = "isSelectionExclusive";
+ // DPI_ResetNewFilter, having type bool
+ ParameterId["ResetNewFilter"] = "resetNewFilter";
+ // DPI_UseAllWhenManualEmpty, having type bool
+ ParameterId["UseAllWhenManualEmpty"] = "useAllWhenManualEmpty";
+ // DPI_UseAllWhenPatternEmpty, having type bool
+ ParameterId["UseAllWhenPatternEmpty"] = "useAllWhenPatternEmpty";
+ // DPI_GroupByDrillDown, having type bool
+ ParameterId["GroupByDrillDown"] = "groupByDrillDown";
+ // DPI_GroupByTable, having type bool
+ ParameterId["GroupByTable"] = "groupByTable";
+ // DPI_IncludeGroups, having type bool
+ ParameterId["IncludeGroups"] = "includeGroups";
+ // DPI_IncludePendingState, having type bool
+ ParameterId["IncludePendingState"] = "includePendingState";
+ // DPI_IncludeFieldMenus, having type bool
+ ParameterId["IncludeFieldMenus"] = "includeFieldMenus";
+ // DPI_IncludeFormattedValues, having type bool
+ ParameterId["IncludeFormattedValues"] = "includeFormattedValues";
+ // DPI_IncludeColumnInstances, having type bool
+ ParameterId["IncludeColumnInstances"] = "includeColumnInstances";
+ // DPI_IncludeAdHocCalcs, having type bool
+ ParameterId["IncludeAdHocCalcs"] = "includeAdhocCalcs";
+ // DPI_IncludeHiddenInvalidFields, having type bool
+ ParameterId["IncludeHiddenInvalidFields"] = "includeHiddenInvalidFields";
+ // DPI_IncludeNonExtractedColumns, having type bool
+ ParameterId["IncludeNonExtractedColumns"] = "includeNonExtractedColumns";
+ // DPI_IncludeCalculatedFieldFormulas, having type bool
+ ParameterId["IncludeCalculatedFieldFormulas"] = "includeCalculatedFieldFormulas";
+ // DPI_SetDataPreviewCustomFieldOrder, having type bool
+ ParameterId["SetDataPreviewCustomFieldOrder"] = "setDataPreviewCustomFieldOrder";
+ // DPI_CustomSplitAllowSplitFromRight, having type bool
+ ParameterId["CustomSplitAllowSplitFromRight"] = "customSplitAllowSplitFromRight";
+ // DPI_IsChanged, having type bool
+ ParameterId["IsChanged"] = "isChanged";
+ // DPI_ShowFontColorPicker, having type bool
+ ParameterId["ShowFontColorPicker"] = "showFontColorPicker";
+ // DPI_ShowFontFamilyPicker, having type bool
+ ParameterId["ShowFontFamilyPicker"] = "showFontFamilyPicker";
+ // DPI_ShowFontSizePicker, having type bool
+ ParameterId["ShowFontSizePicker"] = "showFontSizePicker";
+ // DPI_ShowFontStyleButtons, having type bool
+ ParameterId["ShowFontStyleButtons"] = "showFontStyleButtons";
+ // DPI_ShowLineForAll, having type bool
+ ParameterId["ShowLineForAll"] = "showLineForAll";
+ // DPI_ShowLineForColumn, having type bool
+ ParameterId["ShowLineForColumn"] = "showLineForColumn";
+ // DPI_ShowLineForRow, having type bool
+ ParameterId["ShowLineForRow"] = "showLineForRow";
+ // DPI_ShowLinePatternPicker, having type bool
+ ParameterId["ShowLinePatternPicker"] = "showLinePatternPicker";
+ // DPI_ShowLineTransparency, having type bool
+ ParameterId["ShowLineTransparency"] = "showLineTransparency";
+ // DPI_ShowLineWidthPicker, having type bool
+ ParameterId["ShowLineWidthPicker"] = "showLineWidthPicker";
+ // DPI_CanBeAuto, having type bool
+ ParameterId["CanBeAuto"] = "canBeAuto";
+ // DPI_CanBeNone, having type bool
+ ParameterId["CanBeNone"] = "canBeNone";
+ // DPI_CanMatchMarkColor, having type bool
+ ParameterId["CanMatchMarkColor"] = "canMatchMarkColor";
+ // DPI_HasOpacity, having type bool
+ ParameterId["HasOpacity"] = "hasOpacity";
+ // DPI_IncludeAllHidden, having type bool
+ ParameterId["IncludeAllHidden"] = "includeAllHidden";
+ // DPI_IncludeCurrent, having type bool
+ ParameterId["IncludeCurrent"] = "includeCurrent";
+ // DPI_IsIncluded, having type bool
+ ParameterId["IsIncluded"] = "isIncluded";
+ // DPI_IsRelative, having type bool
+ ParameterId["IsRelative"] = "isRelative";
+ // DPI_IsSecondaryAllowed, having type bool
+ ParameterId["IsSecondaryAllowed"] = "isSecondaryAllowed";
+ // DPI_NullIfIncomplete, having type bool
+ ParameterId["NullIfIncomplete"] = "nullIfIncomplete";
+ // DPI_IsCalcAssistanceEnabled, having type bool
+ ParameterId["IsCalcAssistanceEnabled"] = "isCalcAssistanceEnabled";
+ // DPI_UseSecondaryCalc, having type bool
+ ParameterId["UseSecondaryCalc"] = "useSecondaryCalc";
+ // DPI_CanLoad, having type bool
+ ParameterId["CanLoad"] = "canLoad";
+ // DPI_DescriptionOnly, having type bool
+ ParameterId["DescriptionOnly"] = "descriptionOnly";
+ // DPI_AreAliasesSupported, having type bool
+ ParameterId["AreAliasesSupported"] = "areAliasesSupported";
+ // DPI_AreRefColumnsSupported, having type bool
+ ParameterId["AreRefColumnsSupported"] = "areRefColumnsSupported";
+ // DPI_IsAggregated, having type bool
+ ParameterId["IsAggregated"] = "isAggregated";
+ // DPI_IsExportSupported, having type bool
+ ParameterId["IsExportSupported"] = "isExportSupported";
+ // DPI_IsMeasureNames, having type bool
+ ParameterId["IsMeasureNames"] = "isMeasureNames";
+ // DPI_IsSummarySupported, having type bool
+ ParameterId["IsSummarySupported"] = "isSummarySupported";
+ // DPI_IsTopNSupported, having type bool
+ ParameterId["IsTopNSupported"] = "isTopNSupported";
+ // DPI_IsUnderlyingSupported, having type bool
+ ParameterId["IsUnderlyingSupported"] = "isUnderlyingSupported";
+ // DPI_OnlyExportSummary, having type bool
+ ParameterId["OnlyExportSummary"] = "onlyExportSummary";
+ // DPI_ShowAllFields, having type bool
+ ParameterId["ShowAllFields"] = "showAllFields";
+ // DPI_UseTablePtrs, having type bool
+ ParameterId["UseTablePtrs"] = "useTablePtrs";
+ // DPI_OnlyFetchSummary, having type bool
+ ParameterId["OnlyFetchSummary"] = "onlyFetchSummary";
+ // DPI_IsDeviceLayoutCustomized, having type bool
+ ParameterId["IsDeviceLayoutCustomized"] = "isDeviceLayoutCustomized";
+ // DPI_IsDeviceSizeCustomized, having type bool
+ ParameterId["IsDeviceSizeCustomized"] = "isDeviceSizeCustomized";
+ // DPI_IsDeviceSupportedByMobileApp, having type bool
+ ParameterId["IsDeviceSupportedByMobileApp"] = "isDeviceSupportedByMobileApp";
+ // DPI_IsPortrait, having type bool
+ ParameterId["IsPortrait"] = "isPortrait";
+ // DPI_IsPortraitByDefault, having type bool
+ ParameterId["IsPortraitByDefault"] = "isPortraitByDefault";
+ // DPI_IsUserCustomFormat, having type bool
+ ParameterId["IsUserCustomFormat"] = "isUserCustomFormat";
+ // DPI_ShouldDisplayRebuildExtractMessage, having type bool
+ ParameterId["ShouldDisplayRebuildExtractMessage"] = "shouldDisplayRebuildExtractMessage";
+ // DPI_SupportsCustomStartOfWeek, having type bool
+ ParameterId["SupportsCustomStartOfWeek"] = "supportsCustomStartOfWeek";
+ // DPI_NeedsConnectPrompt, having type bool
+ ParameterId["NeedsConnectPrompt"] = "needsConnectPrompt";
+ // DPI_NeedsCloseDataSourceErrorPrompt, having type bool
+ ParameterId["NeedsCloseDataSourceErrorPrompt"] = "needsCloseDsErrorPrompt";
+ // DPI_ClearCurrentSelection, having type bool
+ ParameterId["ClearCurrentSelection"] = "clearCurrentSelection";
+ // DPI_HasContains, having type bool
+ ParameterId["HasContains"] = "hasContains";
+ // DPI_HasEndsWith, having type bool
+ ParameterId["HasEndsWith"] = "hasEndsWith";
+ // DPI_HasReplaceSelection, having type bool
+ ParameterId["HasReplaceSelection"] = "hasReplaceSelection";
+ // DPI_HasStartsWith, having type bool
+ ParameterId["HasStartsWith"] = "hasStartsWith";
+ // DPI_IsLeafSelectionOnly, having type bool
+ ParameterId["IsLeafSelectionOnly"] = "isLeafSelectionOnly";
+ // DPI_ReplaceSelection, having type bool
+ ParameterId["ReplaceSelection"] = "replaceSelection";
+ // DPI_IsColorPaletteCustomized, having type bool
+ ParameterId["IsColorPaletteCustomized"] = "isColorPaletteCustomized";
+ // DPI_ReversePaletteOrder, having type bool
+ ParameterId["ReversePaletteOrder"] = "reversePaletteOrder";
+ // DPI_TriedToConnect, having type bool
+ ParameterId["TriedToConnect"] = "triedToConnect";
+ // DPI_ScaleMarksInAxisUnits, having type bool
+ ParameterId["ScaleMarksInAxisUnits"] = "scaleMarksInAxisUnits";
+ // DPI_ShowMarkSizingOptions, having type bool
+ ParameterId["ShowMarkSizingOptions"] = "showMarkSizingOptions";
+ // DPI_UseSizeFieldCaption, having type bool
+ ParameterId["UseSizeFieldCaption"] = "useSizeFieldCaption";
+ // DPI_IsLicensedAndRegistered, having type bool
+ ParameterId["IsLicensedAndRegistered"] = "isLicensedAndRegistered";
+ // DPI_SetNewDatasourceActive, having type bool
+ ParameterId["SetNewDatasourceActive"] = "setNewDatasourceActive";
+ // DPI_AllowCustomLabel, having type bool
+ ParameterId["AllowCustomLabel"] = "allowCustomLabel";
+ // DPI_IsMostRecentModeValid, having type bool
+ ParameterId["IsMostRecentModeValid"] = "isMostRecentModeValid";
+ // DPI_MustShowLabels, having type bool
+ ParameterId["MustShowLabels"] = "mustShowLabels";
+ // DPI_ShowRunningOrderLabels, having type bool
+ ParameterId["ShowRunningOrderLabels"] = "showRunningOrderLabels";
+ // DPI_IsDroppedFile, having type bool
+ ParameterId["IsDroppedFile"] = "isDroppedFile";
+ // DPI_IsInitialized, having type bool
+ ParameterId["IsInitialized"] = "isInitialized";
+ // DPI_IncludeDashboard, having type bool
+ ParameterId["IncludeDashboard"] = "includeDashboard";
+ // DPI_ChildrenCanResize, having type bool
+ ParameterId["ChildrenCanResize"] = "childrenCanResize";
+ // DPI_BoolMap, having type Dictionary(of bool)
+ ParameterId["BoolMap"] = "boolMap";
+ // DPI_CheckedMenuItems, having type bool[]
+ ParameterId["CheckedMenuItems"] = "checkedMenuItems";
+ // DPI_IncludedSheetValues, having type bool[]
+ ParameterId["IncludedSheetValues"] = "includedSheetValues";
+ // DPI_SortOrderVector, having type bool[]
+ ParameterId["SortOrderVector"] = "sortOrderVector";
+ // DPI_ActionName, having type string
+ ParameterId["ActionName"] = "actionName";
+ // DPI_ActionSourceText, having type string
+ ParameterId["ActionSourceText"] = "actionSourceText";
+ // DPI_ActionTypeAsString, having type string
+ ParameterId["ActionTypeAsString"] = "actionTypeAsString";
+ // DPI_ActiveTab, having type string
+ ParameterId["ActiveTab"] = "active_tab";
+ // DPI_AddInFeatureName, having type string
+ ParameterId["AddInFeatureName"] = "addInFeatureName";
+ // DPI_AddInId, having type string
+ ParameterId["AddInId"] = "addInId";
+ // DPI_AddInstanceId, having type string
+ ParameterId["AddInstanceId"] = "addInInstanceId";
+ // DPI_AddInName, having type string
+ ParameterId["AddInName"] = "addInName";
+ // DPI_AddInLocale, having type string
+ ParameterId["AddInLocale"] = "addInLocale";
+ // DPI_AddInLanguage, having type string
+ ParameterId["AddInLanguage"] = "addInLanguage";
+ // DPI_APIVersion, having type string
+ ParameterId["APIVersion"] = "apiVersion";
+ // DPI_Alias, having type string
+ ParameterId["Alias"] = "alias";
+ // DPI_AnchorDate, having type string
+ ParameterId["AnchorDate"] = "anchorDate";
+ // DPI_AnnotationRes, having type string
+ ParameterId["AnnotationRes"] = "annotationRes";
+ // DPI_ReadId, having type string
+ ParameterId["ReadId"] = "readId";
+ // DPI_AnnotationText, having type string
+ ParameterId["AnnotationText"] = "annotationText";
+ // DPI_ArchiveDirectory, having type string
+ ParameterId["ArchiveDirectory"] = "archiveDirectory";
+ // DPI_ArchiveFullPath, having type string
+ ParameterId["ArchiveFullPath"] = "archiveFullPath";
+ // DPI_AtTheLevelInvalidFieldCaption, having type string
+ ParameterId["AtTheLevelInvalidFieldCaption"] = "atTheLevelInvalidFieldCaption";
+ // DPI_AutoCompleteSubstring, having type string
+ ParameterId["AutoCompleteSubstring"] = "acSubstring";
+ // DPI_AutosaveFileId, having type string
+ ParameterId["AutosaveFileId"] = "autosaveFileId";
+ // DPI_AutosaveTimerInterval, having type string
+ ParameterId["AutosaveTimerInterval"] = "autosaveTimerInterval";
+ // DPI_BaseColumnCaption, having type string
+ ParameterId["BaseColumnCaption"] = "baseColumnCaption";
+ // DPI_ButtonObjectClickAction, having type string
+ ParameterId["ButtonObjectClickAction"] = "buttonObjectClickAction";
+ // DPI_ButtonObjectImagePath, having type string
+ ParameterId["ButtonObjectImagePath"] = "buttonObjectImagePath";
+ // DPI_ClearButtonText, having type string
+ ParameterId["ClearButtonText"] = "clearButtonText";
+ // DPI_ColorPaletteId, having type string
+ ParameterId["ColorPaletteId"] = "colorPaletteId";
+ // DPI_ColorPaletteName, having type string
+ ParameterId["ColorPaletteName"] = "colorPaletteName";
+ // DPI_ColorSwatch, having type string
+ ParameterId["ColorSwatch"] = "colorSwatch";
+ // DPI_CommandName, having type string
+ ParameterId["CommandName"] = "commandName";
+ // DPI_ConfidenceLevelValue, having type string
+ ParameterId["ConfidenceLevelValue"] = "confidenceLevelValue";
+ // DPI_CountDistinctStr, having type string
+ ParameterId["CountDistinctStr"] = "countDistinctStr";
+ // DPI_CrossTabFilepath, having type string
+ ParameterId["CrossTabFilepath"] = "crossTabFilepath";
+ // DPI_CSSMargin, having type string
+ ParameterId["CSSMargin"] = "cssMargin";
+ // DPI_CSSWhitespace, having type string
+ ParameterId["CSSWhitespace"] = "cssWhitespace";
+ // DPI_DBPassword, having type string
+ ParameterId["DBPassword"] = "dbPassword";
+ // DPI_DBUsername, having type string
+ ParameterId["DBUsername"] = "dbUsername";
+ // DPI_DataAlertConditionText, having type string
+ ParameterId["DataAlertConditionText"] = "dataAlertConditionText";
+ // DPI_DataAlertMeasureText, having type string
+ ParameterId["DataAlertMeasureText"] = "dataAlertMeasureText";
+ // DPI_DataAlertSpecSerializedText, having type string
+ ParameterId["DataAlertSpecSerializedText"] = "dataAlertSpecSerializedText";
+ // DPI_DataAlertDefaultSubject, having type string
+ ParameterId["DataAlertDefaultSubject"] = "dataAlertDefaultSubject";
+ // DPI_DataAlertThresholdText, having type string
+ ParameterId["DataAlertThresholdText"] = "dataAlertThresholdText";
+ // DPI_DataGridSortColumnName, having type string
+ ParameterId["DataGridSortColumnName"] = "datagridSortColumnName";
+ // DPI_DataServerConnectionError, having type string
+ ParameterId["DataServerConnectionError"] = "dataServerConnectionError";
+ // DPI_DatabaseFilter, having type string
+ ParameterId["DatabaseFilter"] = "databaseFilter";
+ // DPI_DatabaseFilterPrompt, having type string
+ ParameterId["DatabaseFilterPrompt"] = "databaseFilterPrompt";
+ // DPI_DatasourceRanking, having type string
+ ParameterId["DatasourceRanking"] = "datasourceRanking";
+ // DPI_DatasourceUrl, having type string
+ ParameterId["DatasourceUrl"] = "datasourceUrl";
+ // DPI_DatasourceUsername, having type string
+ ParameterId["DatasourceUsername"] = "datasourceUsername";
+ // DPI_DateFormat, having type string
+ ParameterId["DateFormat"] = "dateFormat";
+ // DPI_DatePart, having type string
+ ParameterId["DatePart"] = "datePart";
+ // DPI_DatePartAbbrev, having type string
+ ParameterId["DatePartAbbrev"] = "datePartAbbrev";
+ // DPI_DefaultHierarchyName, having type string
+ ParameterId["DefaultHierarchyName"] = "defaultHierarchyName";
+ // DPI_DefaultMenuItemKey, having type string
+ ParameterId["DefaultMenuItemKey"] = "defaultMenuItemKey";
+ // DPI_Delimiter, having type string
+ ParameterId["Delimiter"] = "delimiter";
+ // DPI_DeviceName, having type string
+ ParameterId["DeviceName"] = "deviceName";
+ // DPI_DeviceType, having type string
+ ParameterId["DeviceType"] = "deviceType";
+ // DPI_DisplayPath, having type string
+ ParameterId["DisplayPath"] = "displayPath";
+ // DPI_DistributionValueString, having type string
+ ParameterId["DistributionValueString"] = "distributionValueString";
+ // DPI_DrillPathName, having type string
+ ParameterId["DrillPathName"] = "drillPathName";
+ // DPI_EmbeddedTitle, having type string
+ ParameterId["EmbeddedTitle"] = "embeddedTitle";
+ // DPI_EnterValueText, having type string
+ ParameterId["EnterValueText"] = "enterValueText";
+ // DPI_EscapeString, having type string
+ ParameterId["EscapeString"] = "escapeString";
+ // DPI_ExtSvcConfigHost, having type string
+ ParameterId["ExtSvcConfigHost"] = "extSvcConfigHost";
+ // DPI_ExtSvcConfigPassword, having type string
+ ParameterId["ExtSvcConfigPassword"] = "extSvcConfigPassword";
+ // DPI_ExtSvcConfigPort, having type string
+ ParameterId["ExtSvcConfigPort"] = "extSvcConfigPort";
+ // DPI_ExtSvcConfigConnectTimeout, having type string
+ ParameterId["ExtSvcConfigConnectTimeout"] = "extSvcConnectTimeout";
+ // DPI_ExtSvcConfigPrevHost, having type string
+ ParameterId["ExtSvcConfigPrevHost"] = "extSvcConfigPrevHost";
+ // DPI_ExtSvcConfigUsername, having type string
+ ParameterId["ExtSvcConfigUsername"] = "extSvcConfigUsername";
+ // DPI_ExtractUpdateTime, having type string
+ ParameterId["ExtractUpdateTime"] = "extractUpdateTime";
+ // DPI_FieldFolderName, having type string
+ ParameterId["FieldFolderName"] = "fieldFolderName";
+ // DPI_FieldNameString, having type string
+ ParameterId["FieldNameString"] = "fieldName";
+ // DPI_FilterSearchDomain, having type string
+ ParameterId["FilterSearchDomain"] = "filterSearchDomain";
+ // DPI_FilterSpec, having type string
+ ParameterId["FilterSpec"] = "filterSpec";
+ // DPI_FirstValue, having type string
+ ParameterId["FirstValue"] = "firstValue";
+ // DPI_FolderName, having type string
+ ParameterId["FolderName"] = "folderName";
+ // DPI_FontName, having type string
+ ParameterId["FontName"] = "fontName";
+ // DPI_FormatString, having type string
+ ParameterId["FormatString"] = "formatString";
+ // DPI_FormattedDisplayString, having type string
+ ParameterId["FormattedDisplayString"] = "formattedDisplayString";
+ // DPI_FormattedIncrementValue, having type string
+ ParameterId["FormattedIncrementValue"] = "formattedIncrement";
+ // DPI_FormattedMaxValue, having type string
+ ParameterId["FormattedMaxValue"] = "formattedMax";
+ // DPI_FormattedMinValue, having type string
+ ParameterId["FormattedMinValue"] = "formattedMin";
+ // DPI_FormattedValue, having type string
+ ParameterId["FormattedValue"] = "formattedValue";
+ // DPI_FormattedCenterValue, having type string
+ ParameterId["FormattedCenterValue"] = "formattedCenter";
+ // DPI_FormattedEndValue, having type string
+ ParameterId["FormattedEndValue"] = "formattedEnd";
+ // DPI_FormattedStartValue, having type string
+ ParameterId["FormattedStartValue"] = "formattedStart";
+ // DPI_PairedFormattedValue, having type string
+ ParameterId["PairedFormattedValue"] = "pairedFormattedValue";
+ // DPI_FrameAttributes, having type string
+ ParameterId["FrameAttributes"] = "frameAttr";
+ // DPI_GUID, having type string
+ ParameterId["GUID"] = "guid";
+ // DPI_GeographicSearchCandidateDisplayName, having type string
+ ParameterId["GeographicSearchCandidateDisplayName"] = "geographicSearchCandidateDisplayName";
+ // DPI_GeographicSearchCandidateParentName, having type string
+ ParameterId["GeographicSearchCandidateParentName"] = "geographicSearchCandidateParentName";
+ // DPI_GeographicSearchCandidateType, having type string
+ ParameterId["GeographicSearchCandidateType"] = "geographicSearchCandidateType";
+ // DPI_GeographicSearchLocale, having type string
+ ParameterId["GeographicSearchLocale"] = "geographicSearchLocale";
+ // DPI_GeographicSearchQueryString, having type string
+ ParameterId["GeographicSearchQueryString"] = "geographicSearchSearchString";
+ // DPI_GeographicSearchUILocale, having type string
+ ParameterId["GeographicSearchUILocale"] = "geographicSearchUilocale";
+ // DPI_IconRes, having type string
+ ParameterId["IconRes"] = "iconRes";
+ // DPI_ImageHash, having type string
+ ParameterId["ImageHash"] = "imageHash";
+ // DPI_ImageName, having type string
+ ParameterId["ImageName"] = "imageName";
+ // DPI_ImageRes, having type string
+ ParameterId["ImageRes"] = "imageRes";
+ // DPI_IncludesSiblingsPrompt, having type string
+ ParameterId["IncludesSiblingsPrompt"] = "includesSiblingsPrompt";
+ // DPI_IncludesSubfoldersPrompt, having type string
+ ParameterId["IncludesSubfoldersPrompt"] = "includesSubfoldersPrompt";
+ // DPI_IncrementalScheduleIDs, having type string
+ ParameterId["IncrementalScheduleIDs"] = "incrementalScheduleIds";
+ // DPI_InvariantKeyword, having type string
+ ParameterId["InvariantKeyword"] = "invariantKeyword";
+ // DPI_JoinOperator, having type string
+ ParameterId["JoinOperator"] = "joinOperator";
+ // DPI_JoinExpression, having type string
+ ParameterId["JoinExpression"] = "joinExpression";
+ // DPI_Key, having type string
+ ParameterId["Key"] = "keyId";
+ // DPI_Label, having type string
+ ParameterId["Label"] = "label";
+ // DPI_PairedLabel, having type string
+ ParameterId["PairedLabel"] = "pairedLabel";
+ // DPI_LayoutID, having type string
+ ParameterId["LayoutID"] = "layoutId";
+ // DPI_LeftJoinExpression, having type string
+ ParameterId["LeftJoinExpression"] = "leftJoinExpression";
+ // DPI_LimitCountExpression, having type string
+ ParameterId["LimitCountExpression"] = "limitCountExpression";
+ // DPI_LinkTarget, having type string
+ ParameterId["LinkTarget"] = "linkTarget";
+ // DPI_Locale, having type string
+ ParameterId["Locale"] = "locale";
+ // DPI_LocalizedKeyword, having type string
+ ParameterId["LocalizedKeyword"] = "localizedKeyword";
+ // DPI_MapBoxGLStyleId, having type string
+ ParameterId["MapBoxGLStyleId"] = "mapboxGlStyleId";
+ // DPI_MapBoxStyleUrl, having type string
+ ParameterId["MapBoxStyleUrl"] = "mapboxStyleUrl";
+ // DPI_MapBoxUsername, having type string
+ ParameterId["MapBoxUsername"] = "mapboxUsername";
+ // DPI_MapScaleReadoutString, having type string
+ ParameterId["MapScaleReadoutString"] = "mapScaleReadoutString";
+ // DPI_MapScaleTooltipString, having type string
+ ParameterId["MapScaleTooltipString"] = "mapScaleTooltipString";
+ // DPI_MapSourceName, having type string
+ ParameterId["MapSourceName"] = "mapSourceName";
+ // DPI_MaxLabel, having type string
+ ParameterId["MaxLabel"] = "maxLabel";
+ // DPI_MinLabel, having type string
+ ParameterId["MinLabel"] = "minLabel";
+ // DPI_ModelDescriptionParagraph, having type string
+ ParameterId["ModelDescriptionParagraph"] = "modelDescriptionParagraph";
+ // DPI_NameTemplate, having type string
+ ParameterId["NameTemplate"] = "nameTemplate";
+ // DPI_NewDrillPath, having type string
+ ParameterId["NewDrillPath"] = "newDrillPath";
+ // DPI_NewFieldFolderName, having type string
+ ParameterId["NewFieldFolderName"] = "newFieldFolderName";
+ // DPI_NewTableAlias, having type string
+ ParameterId["NewTableAlias"] = "newTableAlias";
+ // DPI_NonFormattedValue, having type string
+ ParameterId["NonFormattedValue"] = "unformattedValue";
+ // DPI_OAuthUserName, having type string
+ ParameterId["OAuthUserName"] = "oauthUsername";
+ // DPI_ObjectName, having type string
+ ParameterId["ObjectName"] = "objectName";
+ // DPI_ObjectOverrideMessage, having type string
+ ParameterId["ObjectOverrideMessage"] = "objectOverrideMessage";
+ // DPI_OldTableAlias, having type string
+ ParameterId["OldTableAlias"] = "oldTableAlias";
+ // DPI_OperatingSystem, having type string
+ ParameterId["OperatingSystem"] = "operatingSystem";
+ // DPI_OriginalFilePath, having type string
+ ParameterId["OriginalFilePath"] = "originalFilePath";
+ // DPI_OriginalFileVersion, having type string
+ ParameterId["OriginalFileVersion"] = "originalFileVersion";
+ // DPI_PaneDescriptorKey, having type string
+ ParameterId["PaneDescriptorKey"] = "paneDescrKey";
+ // DPI_ParentName, having type string
+ ParameterId["ParentName"] = "parentName";
+ // DPI_ParentTable, having type string
+ ParameterId["ParentTable"] = "parentTable";
+ // DPI_PatternFilterString, having type string
+ ParameterId["PatternFilterString"] = "patternFilterString";
+ // DPI_PendingCalcName, having type string
+ ParameterId["PendingCalcName"] = "pendingCalcName";
+ // DPI_PercentilesString, having type string
+ ParameterId["PercentilesString"] = "percentilesString";
+ // DPI_ProjectName, having type string
+ ParameterId["ProjectName"] = "projectName";
+ // DPI_PropertyName, having type string
+ ParameterId["PropertyName"] = "propertyName";
+ // DPI_QuickFilterTitleCaption, having type string
+ ParameterId["QuickFilterTitleCaption"] = "quickFilterTitleCaption";
+ // DPI_RangeDiffStr, having type string
+ ParameterId["RangeDiffStr"] = "diffValue";
+ // DPI_RangeMaxStr, having type string
+ ParameterId["RangeMaxStr"] = "maxValue";
+ // DPI_RangeMinStr, having type string
+ ParameterId["RangeMinStr"] = "minValue";
+ // DPI_RecoveredFilePath, having type string
+ ParameterId["RecoveredFilePath"] = "recoveredFilePath";
+ // DPI_ReferenceLineSpecificationId, having type string
+ ParameterId["ReferenceLineSpecificationId"] = "referenceLineId";
+ // DPI_ReplaceFieldPrompt, having type string
+ ParameterId["ReplaceFieldPrompt"] = "replaceFieldPrompt";
+ // DPI_RightJoinExpression, having type string
+ ParameterId["RightJoinExpression"] = "rightJoinExpression";
+ // DPI_RootPath, having type string
+ ParameterId["RootPath"] = "rootPath";
+ // DPI_RuntimeFinalDatastore, having type string
+ ParameterId["RuntimeFinalDatastore"] = "runtimeFinalDatastore";
+ // DPI_RuntimeInitialDatastore, having type string
+ ParameterId["RuntimeInitialDatastore"] = "runtimeInitialDatastore";
+ // DPI_RuntimeVTL, having type string
+ ParameterId["RuntimeVTL"] = "runtimeVtl";
+ // DPI_SampleDataString, having type string
+ ParameterId["SampleDataString"] = "sampleData";
+ // DPI_ScheduleIDs, having type string
+ ParameterId["ScheduleIDs"] = "scheduleIds";
+ // DPI_SchemaFieldIconResource, having type string
+ ParameterId["SchemaFieldIconResource"] = "fieldIconRes";
+ // DPI_ScreenName, having type string
+ ParameterId["ScreenName"] = "screenName";
+ // DPI_ScriptCommand, having type string
+ ParameterId["ScriptCommand"] = "command";
+ // DPI_SecondValue, having type string
+ ParameterId["SecondValue"] = "secondValue";
+ // DPI_SelectedValue, having type string
+ ParameterId["SelectedValue"] = "selectedValue";
+ // DPI_ShapeName, having type string
+ ParameterId["ShapeName"] = "shapeName";
+ // DPI_SheetId, having type string
+ ParameterId["SheetId"] = "sheetId";
+ // DPI_ShowDataTable, having type string
+ ParameterId["ShowDataTable"] = "showDataTable";
+ // DPI_SimpleCommand, having type string
+ ParameterId["SimpleCommand"] = "simpleCommand";
+ // DPI_SortModeCaption, having type string
+ ParameterId["SortModeCaption"] = "sortModeCaption";
+ // DPI_SourceName, having type string
+ ParameterId["SourceName"] = "sourceName";
+ // DPI_SourceText, having type string
+ ParameterId["SourceText"] = "sourceText";
+ // DPI_SpecialValueText, having type string
+ ParameterId["SpecialValueText"] = "specialValueText";
+ // DPI_StaticImage, having type string
+ ParameterId["StaticImage"] = "staticImage";
+ // DPI_StoryPointBase, having type string
+ ParameterId["StoryPointBase"] = "storyPointBase";
+ // DPI_StoryPointCaption, having type string
+ ParameterId["StoryPointCaption"] = "storyPointCaption";
+ // DPI_Storyboard, having type string
+ ParameterId["Storyboard"] = "storyboard";
+ // DPI_StyledLabel, having type string
+ ParameterId["StyledLabel"] = "styledLabel";
+ // DPI_SummaryCaption, having type string
+ ParameterId["SummaryCaption"] = "summaryCaption";
+ // DPI_SummaryField, having type string
+ ParameterId["SummaryField"] = "summaryField";
+ // DPI_TableauVersion, having type string
+ ParameterId["TableauVersion"] = "tableauVersion";
+ // DPI_TableFilter, having type string
+ ParameterId["TableFilter"] = "tableFilter";
+ // DPI_TableFilterPrompt, having type string
+ ParameterId["TableFilterPrompt"] = "tableFilterPrompt";
+ // DPI_TagsLabel, having type string
+ ParameterId["TagsLabel"] = "tagsLabel";
+ // DPI_Target, having type string
+ ParameterId["Target"] = "target";
+ // DPI_ThumbnailGroup, having type string
+ ParameterId["ThumbnailGroup"] = "thumbnailGroup";
+ // DPI_ThumbnailUser, having type string
+ ParameterId["ThumbnailUser"] = "thumbnailUser";
+ // DPI_TimeFormat, having type string
+ ParameterId["TimeFormat"] = "timeFormat";
+ // DPI_TrendLineErrorString, having type string
+ ParameterId["TrendLineErrorString"] = "trendLineErrorString";
+ // DPI_TrendLineModelFormula, having type string
+ ParameterId["TrendLineModelFormula"] = "trendLineModelFormula";
+ // DPI_URLString, having type string
+ ParameterId["URLString"] = "urlString";
+ // DPI_URLTest, having type string
+ ParameterId["URLTest"] = "urlTest";
+ // DPI_ValidationMessage, having type string
+ ParameterId["ValidationMessage"] = "validationMessage";
+ // DPI_ValueStr, having type string
+ ParameterId["ValueStr"] = "valueString";
+ // DPI_VerifiedNonFormattedValue, having type string
+ ParameterId["VerifiedNonFormattedValue"] = "verifiedUnformattedValue";
+ // DPI_WorkbookFullPath, having type string
+ ParameterId["WorkbookFullPath"] = "workbookFullPath";
+ // DPI_WindowTitle, having type string
+ ParameterId["WindowTitle"] = "windowTitle";
+ // DPI_ZoneName, having type string
+ ParameterId["ZoneName"] = "zoneName";
+ // DPI_ZoneParam, having type string
+ ParameterId["ZoneParam"] = "zoneParam";
+ // DPI_DataAlertErrorText, having type string
+ ParameterId["DataAlertErrorText"] = "dataAlertErrorText";
+ // DPI_ExtractTempDirectory, having type string
+ ParameterId["ExtractTempDirectory"] = "extractTempDir";
+ // DPI_DSSubClass, having type string
+ ParameterId["DSSubClass"] = "dsSubClass";
+ // DPI_DbgCommandLine, having type string
+ ParameterId["DbgCommandLine"] = "debugCommandLine";
+ // DPI_DbgLogPath, having type string
+ ParameterId["DbgLogPath"] = "debugLogPath";
+ // DPI_DbgOSVersion, having type string
+ ParameterId["DbgOSVersion"] = "debugOsVersion";
+ // DPI_DbgUserName, having type string
+ ParameterId["DbgUserName"] = "debugUsername";
+ // DPI_ErrorMsg, having type string
+ ParameterId["ErrorMsg"] = "errorMessage";
+ // DPI_ErrorStackTrace, having type string
+ ParameterId["ErrorStackTrace"] = "errorStackTrace";
+ // DPI_ErrorStr, having type string
+ ParameterId["ErrorStr"] = "errorString";
+ // DPI_EventMessage, having type string
+ ParameterId["EventMessage"] = "eventMessage";
+ // DPI_EventTimestamp, having type string
+ ParameterId["EventTimestamp"] = "eventTimestamp";
+ // DPI_ExtractDeltaPath, having type string
+ ParameterId["ExtractDeltaPath"] = "extractDeltaPath";
+ // DPI_ExtractPath, having type string
+ ParameterId["ExtractPath"] = "extractPath";
+ // DPI_ExtractSuggestedPath, having type string
+ ParameterId["ExtractSuggestedPath"] = "suggestedExtractPath";
+ // DPI_ExtractTaskSummary, having type string
+ ParameterId["ExtractTaskSummary"] = "extractTaskSummary";
+ // DPI_FactorsString, having type string
+ ParameterId["FactorsString"] = "factorsStr";
+ // DPI_FormattedFamilyName, having type string
+ ParameterId["FormattedFamilyName"] = "formattedFamilyName";
+ // DPI_FunctionSignature, having type string
+ ParameterId["FunctionSignature"] = "funcSig";
+ // DPI_FunctionTooltip, having type string
+ ParameterId["FunctionTooltip"] = "funcTooltip";
+ // DPI_HelpContents, having type string
+ ParameterId["HelpContents"] = "helpContents";
+ // DPI_MapAttributionText, having type string
+ ParameterId["MapAttributionText"] = "mapAttributionText";
+ // DPI_MapAttributionTextSize, having type string
+ ParameterId["MapAttributionTextSize"] = "mapAttributionTextSize";
+ // DPI_MapAttributionUrl, having type string
+ ParameterId["MapAttributionUrl"] = "mapAttributionUrl";
+ // DPI_MapBoxErrorMessage, having type string
+ ParameterId["MapBoxErrorMessage"] = "mapboxErrorMessage";
+ // DPI_MapBoxOldStyleName, having type string
+ ParameterId["MapBoxOldStyleName"] = "mapboxOldStyleName";
+ // DPI_MapBoxSelectedStyle, having type string
+ ParameterId["MapBoxSelectedStyle"] = "mapboxSelectedStyle";
+ // DPI_MapBoxStyleName, having type string
+ ParameterId["MapBoxStyleName"] = "mapboxStyleName";
+ // DPI_MapLayerRequest, having type string
+ ParameterId["MapLayerRequest"] = "mapLayerRequest";
+ // DPI_MapServerKey, having type string
+ ParameterId["MapServerKey"] = "mapServerKey";
+ // DPI_MapTileServer, having type string
+ ParameterId["MapTileServer"] = "mapTileServer";
+ // DPI_MapTileUrl, having type string
+ ParameterId["MapTileUrl"] = "mapTileUrl";
+ // DPI_PercentagesString, having type string
+ ParameterId["PercentagesString"] = "percentagesStr";
+ // DPI_PublishErrorMessage, having type string
+ ParameterId["PublishErrorMessage"] = "publishErrorMessage";
+ // DPI_TdePath, having type string
+ ParameterId["TdePath"] = "tdePath";
+ // DPI_UIAutomationComponentName, having type string
+ ParameterId["UIAutomationComponentName"] = "uiAutomationComponentName";
+ // DPI_UIAutomationEndTime, having type string
+ ParameterId["UIAutomationEndTime"] = "uiAutomationEndTime";
+ // DPI_UIAutomationName, having type string
+ ParameterId["UIAutomationName"] = "uiAutomationName";
+ // DPI_UIAutomationStartTime, having type string
+ ParameterId["UIAutomationStartTime"] = "uiAutomationStartTime";
+ // DPI_UIAutomationValue, having type string
+ ParameterId["UIAutomationValue"] = "uiAutomationValue";
+ // DPI_WMSConnectionName, having type string
+ ParameterId["WMSConnectionName"] = "wmsConnectionName";
+ // DPI_WMSOldConnectionName, having type string
+ ParameterId["WMSOldConnectionName"] = "wmsOldConnectionName";
+ // DPI_WMSServerUrl, having type string
+ ParameterId["WMSServerUrl"] = "wmsServerUrl";
+ // DPI_AboutBuildVersion, having type string
+ ParameterId["AboutBuildVersion"] = "aboutBuildVersion";
+ // DPI_ActionFields, having type string
+ ParameterId["ActionFields"] = "actionFields";
+ // DPI_AddVariableLabel, having type string
+ ParameterId["AddVariableLabel"] = "addVariableLabel";
+ // DPI_AddVariableTooltip, having type string
+ ParameterId["AddVariableTooltip"] = "addVariableTooltip";
+ // DPI_AllowedDataSourcesByName, having type string
+ ParameterId["AllowedDataSourcesByName"] = "allowedDataSourcesByName";
+ // DPI_AppAboutVersion, having type string
+ ParameterId["AppAboutVersion"] = "appAboutVersion";
+ // DPI_AppBuildBranchName, having type string
+ ParameterId["AppBuildBranchName"] = "appBuildBranchName";
+ // DPI_AppBuildVersion, having type string
+ ParameterId["AppBuildVersion"] = "appBuildVersion";
+ // DPI_AppExternalVersion, having type string
+ ParameterId["AppExternalVersion"] = "appExternalVersion";
+ // DPI_AppName, having type string
+ ParameterId["AppName"] = "appName";
+ // DPI_AppProductVersion, having type string
+ ParameterId["AppProductVersion"] = "appProductVersion";
+ // DPI_OriginalVersion, having type string
+ ParameterId["OriginalVersion"] = "originalVersion";
+ // DPI_AtTheLevelSpecialCaption, having type string
+ ParameterId["AtTheLevelSpecialCaption"] = "atTheLevelSpecialCaption";
+ // DPI_AutoCompleteCalc, having type string
+ ParameterId["AutoCompleteCalc"] = "acCalc";
+ // DPI_CSVPath, having type string
+ ParameterId["CSVPath"] = "csvPath";
+ // DPI_CommandNamespace, having type string
+ ParameterId["CommandNamespace"] = "commandNamespace";
+ // DPI_Condition, having type string
+ ParameterId["Condition"] = "condition";
+ // DPI_ConditionSummary, having type string
+ ParameterId["ConditionSummary"] = "conditionSummary";
+ // DPI_ConfirmationMsg, having type string
+ ParameterId["ConfirmationMsg"] = "confirmationMsg";
+ // DPI_DashboardTypeText, having type string
+ ParameterId["DashboardTypeText"] = "dashboardType";
+ // DPI_DataserverPublicAddress, having type string
+ ParameterId["DataserverPublicAddress"] = "dataserverPublicAddress";
+ // DPI_DatasourceFileName, having type string
+ ParameterId["DatasourceFileName"] = "datasourceFileName";
+ // DPI_DecimalMark, having type string
+ ParameterId["DecimalMark"] = "decimalMark";
+ // DPI_DeleteVariableTooltip, having type string
+ ParameterId["DeleteVariableTooltip"] = "deleteVariableTooltip";
+ // DPI_DialogTitle, having type string
+ ParameterId["DialogTitle"] = "dialogTitle";
+ // DPI_DisplayValue, having type string
+ ParameterId["DisplayValue"] = "displayValue";
+ // DPI_TooltipValue, having type string
+ ParameterId["TooltipValue"] = "tooltipValue";
+ // DPI_DstPath, having type string
+ ParameterId["DstPath"] = "dstPath";
+ // DPI_EditWidgetHeader, having type string
+ ParameterId["EditWidgetHeader"] = "editWidgetHeader";
+ // DPI_EditWidgetInstruction, having type string
+ ParameterId["EditWidgetInstruction"] = "editWidgetInstruction";
+ // DPI_EndSelectionCaption, having type string
+ ParameterId["EndSelectionCaption"] = "endSelectionCaption";
+ // DPI_ErrorConfirmationQuestion, having type string
+ ParameterId["ErrorConfirmationQuestion"] = "errorConfirmationQuestion";
+ // DPI_ErrorDialogTitle, having type string
+ ParameterId["ErrorDialogTitle"] = "errorDialogTitle";
+ // DPI_ErrorHelpLink, having type string
+ ParameterId["ErrorHelpLink"] = "errorHelpLink";
+ // DPI_ErrorShortMessage, having type string
+ ParameterId["ErrorShortMessage"] = "errorShortMessage";
+ // DPI_FilterSearchQuery, having type string
+ ParameterId["FilterSearchQuery"] = "filterSearchQuery";
+ // DPI_FromLabel, having type string
+ ParameterId["FromLabel"] = "fromLabel";
+ // DPI_FunctionHelp, having type string
+ ParameterId["FunctionHelp"] = "functionHelp";
+ // DPI_Instructions, having type string
+ ParameterId["Instructions"] = "instructions";
+ // DPI_LargeUnitDisplay, having type string
+ ParameterId["LargeUnitDisplay"] = "largeUnitDisplay";
+ // DPI_Limit, having type string
+ ParameterId["Limit"] = "limit";
+ // DPI_ListViewNameLabel, having type string
+ ParameterId["ListViewNameLabel"] = "listViewNameLabel";
+ // DPI_ListViewValueLabel, having type string
+ ParameterId["ListViewValueLabel"] = "listViewValueLabel";
+ // DPI_MapScaleReadoutUnit, having type string
+ ParameterId["MapScaleReadoutUnit"] = "mapScaleReadoutUnit";
+ // DPI_MeasureDimension, having type string
+ ParameterId["MeasureDimension"] = "measuresDimension";
+ // DPI_MimeType, having type string
+ ParameterId["MimeType"] = "mimeType";
+ // DPI_NotificationMsg, having type string
+ ParameterId["NotificationMsg"] = "notificationMsg";
+ // DPI_OperationName, having type string
+ ParameterId["OperationName"] = "operationName";
+ // DPI_PageTitle, having type string
+ ParameterId["PageTitle"] = "pageTitle";
+ // DPI_PatternSummary, having type string
+ ParameterId["PatternSummary"] = "patternSummary";
+ // DPI_ReferenceLineId, having type string
+ ParameterId["ReferenceLineId"] = "refLineId";
+ // DPI_ReferenceLinePairedId, having type string
+ ParameterId["ReferenceLinePairedId"] = "refLinePairedId";
+ // DPI_ReplaceText, having type string
+ ParameterId["ReplaceText"] = "replaceText";
+ // DPI_RequiredVariableMessage, having type string
+ ParameterId["RequiredVariableMessage"] = "requiredVariableMessage";
+ // DPI_RestartEverySpecialCaption, having type string
+ ParameterId["RestartEverySpecialCaption"] = "restartEverySpecialCaption";
+ // DPI_Root, having type string
+ ParameterId["Root"] = "root";
+ // DPI_SelectionSummary, having type string
+ ParameterId["SelectionSummary"] = "selectionSummary";
+ // DPI_SessionAttributeKey, having type string
+ ParameterId["SessionAttributeKey"] = "sessionAttributeKey";
+ // DPI_SessionAttributeValue, having type string
+ ParameterId["SessionAttributeValue"] = "sessionAttributeValue";
+ // DPI_SheetAttributeKey, having type string
+ ParameterId["SheetAttributeKey"] = "baseSheetAttributeKey";
+ // DPI_SheetAttributeValue, having type string
+ ParameterId["SheetAttributeValue"] = "baseSheetAttributeValue";
+ // DPI_SmallUnitDisplay, having type string
+ ParameterId["SmallUnitDisplay"] = "smallUnitDisplay";
+ // DPI_SourceCaption, having type string
+ ParameterId["SourceCaption"] = "sourceCaption";
+ // DPI_SrcPath, having type string
+ ParameterId["SrcPath"] = "srcPath";
+ // DPI_StartSelectionCaption, having type string
+ ParameterId["StartSelectionCaption"] = "startSelectionCaption";
+ // DPI_Subtitle, having type string
+ ParameterId["Subtitle"] = "subtitle";
+ // DPI_TableauServerSiteName, having type string
+ ParameterId["TableauServerSiteName"] = "tableauServerSiteName";
+ // DPI_TargetCaption, having type string
+ ParameterId["TargetCaption"] = "targetCaption";
+ // DPI_ThumbnailPath, having type string
+ ParameterId["ThumbnailPath"] = "thumbnailPath";
+ // DPI_ToLabel, having type string
+ ParameterId["ToLabel"] = "toLabel";
+ // DPI_URLAddress, having type string
+ ParameterId["URLAddress"] = "urlAddress";
+ // DPI_UrlRoot, having type string
+ ParameterId["UrlRoot"] = "urlRoot";
+ // DPI_ValuesTableHeader, having type string
+ ParameterId["ValuesTableHeader"] = "valuesTableHeader";
+ // DPI_ValuesTableHeader2, having type string
+ ParameterId["ValuesTableHeader2"] = "valuesTableHeader2";
+ // DPI_VariableDescription, having type string
+ ParameterId["VariableDescription"] = "variableDescription";
+ // DPI_VariableDisplayName, having type string
+ ParameterId["VariableDisplayName"] = "variableDisplayName";
+ // DPI_VariableGUID, having type string
+ ParameterId["VariableGUID"] = "variableGuid";
+ // DPI_VerboseName, having type string
+ ParameterId["VerboseName"] = "verboseName";
+ // DPI_ViewId, having type string
+ ParameterId["ViewId"] = "viewId";
+ // DPI_Warning1, having type string
+ ParameterId["Warning1"] = "warning1";
+ // DPI_Warning2, having type string
+ ParameterId["Warning2"] = "warning2";
+ // DPI_RefreshToken, having type string
+ ParameterId["RefreshToken"] = "refresh_token";
+ // DPI_TokenType, having type string
+ ParameterId["TokenType"] = "token_type";
+ // DPI_XSRFToken, having type string
+ ParameterId["XSRFToken"] = "xsrf_token";
+ // DPI_AxisSubtitle, having type string
+ ParameterId["AxisSubtitle"] = "axisSubtitle";
+ // DPI_AxisTitle, having type string
+ ParameterId["AxisTitle"] = "axisTitle";
+ // DPI_TickMarkOriginDataValue, having type string
+ ParameterId["TickMarkOriginDataValue"] = "tickMarkOriginDataValue";
+ // DPI_TickMarkOriginDataValueNoTime, having type string
+ ParameterId["TickMarkOriginDataValueNoTime"] = "tickMarkOriginDataValueNoTime";
+ // DPI_TickMarkSpacingDataValue, having type string
+ ParameterId["TickMarkSpacingDataValue"] = "tickMarkSpacingDataValue";
+ // DPI_ExtractActionLocalized, having type string
+ ParameterId["ExtractActionLocalized"] = "extractActionLocalized";
+ // DPI_ExtractSource, having type string
+ ParameterId["ExtractSource"] = "extractSource";
+ // DPI_FileContents, having type string
+ ParameterId["FileContents"] = "fileContents";
+ // DPI_SaveImagePath, having type string
+ ParameterId["SaveImagePath"] = "saveImagePath";
+ // DPI_WidgetUID, having type string
+ ParameterId["WidgetUID"] = "widgetUniqueId";
+ // DPI_DatePropertiesDisplayText, having type string
+ ParameterId["DatePropertiesDisplayText"] = "datePropertiesDisplayText";
+ // DPI_DatePropertiesHelperText, having type string
+ ParameterId["DatePropertiesHelperText"] = "datePropertiesHelperText";
+ // DPI_EventName, having type string
+ ParameterId["EventName"] = "eventName";
+ // DPI_ExceptionType, having type string
+ ParameterId["ExceptionType"] = "exceptionType";
+ // DPI_SearchPlaceholder, having type string
+ ParameterId["SearchPlaceholder"] = "searchPlaceholder";
+ // DPI_TargetVersion, having type string
+ ParameterId["TargetVersion"] = "targetVersion";
+ // DPI_DataValueDisplayString, having type string
+ ParameterId["DataValueDisplayString"] = "dataValueDisplayString";
+ // DPI_DomainString, having type string
+ ParameterId["DomainString"] = "domainString";
+ // DPI_RawDataValueString, having type string
+ ParameterId["RawDataValueString"] = "rawDataValueString";
+ // DPI_RichTextDialogTitle, having type string
+ ParameterId["RichTextDialogTitle"] = "richTextDialogTitle";
+ // DPI_RichTextContent, having type string
+ ParameterId["RichTextContent"] = "richTextContent";
+ // DPI_MarkSizeAsString, having type string
+ ParameterId["MarkSizeAsString"] = "markSizeAsString";
+ // DPI_UnitsLabel, having type string
+ ParameterId["UnitsLabel"] = "unitsLabel";
+ // DPI_EmailAddress, having type string
+ ParameterId["EmailAddress"] = "emailAddress";
+ // DPI_FirstName, having type string
+ ParameterId["FirstName"] = "firstName";
+ // DPI_LastName, having type string
+ ParameterId["LastName"] = "lastName";
+ // DPI_SummaryCardAvg, having type string
+ ParameterId["SummaryCardAvg"] = "summaryCardAvg";
+ // DPI_SummaryCardCaption, having type string
+ ParameterId["SummaryCardCaption"] = "summaryCardCaption";
+ // DPI_SummaryCardCount, having type string
+ ParameterId["SummaryCardCount"] = "summaryCardCount";
+ // DPI_SummaryCardKurtosis, having type string
+ ParameterId["SummaryCardKurtosis"] = "summaryCardKurtosis";
+ // DPI_SummaryCardMax, having type string
+ ParameterId["SummaryCardMax"] = "summaryCardMax";
+ // DPI_SummaryCardMedian, having type string
+ ParameterId["SummaryCardMedian"] = "summaryCardMedian";
+ // DPI_SummaryCardMin, having type string
+ ParameterId["SummaryCardMin"] = "summaryCardMin";
+ // DPI_SummaryCardQuart1, having type string
+ ParameterId["SummaryCardQuart1"] = "summaryCardQuart1";
+ // DPI_SummaryCardQuart3, having type string
+ ParameterId["SummaryCardQuart3"] = "summaryCardQuart3";
+ // DPI_SummaryCardSkewness, having type string
+ ParameterId["SummaryCardSkewness"] = "summaryCardSkewness";
+ // DPI_SummaryCardStdev, having type string
+ ParameterId["SummaryCardStdev"] = "summaryCardStdev";
+ // DPI_SummaryCardSum, having type string
+ ParameterId["SummaryCardSum"] = "summaryCardSum";
+ // DPI_ValueClassAttr, having type string
+ ParameterId["ValueClassAttr"] = "valueClassAttr";
+ // DPI_TrendLineDialogTitle, having type string
+ ParameterId["TrendLineDialogTitle"] = "trendLineDialogTitle";
+ // DPI_LinearFitTypeLabel, having type string
+ ParameterId["LinearFitTypeLabel"] = "linearFitTypeLabel";
+ // DPI_LogFitTypeLabel, having type string
+ ParameterId["LogFitTypeLabel"] = "logFitTypeLabel";
+ // DPI_ExpFitTypeLabel, having type string
+ ParameterId["ExpFitTypeLabel"] = "expFitTypeLabel";
+ // DPI_PowerFitTypeLabel, having type string
+ ParameterId["PowerFitTypeLabel"] = "powerFitTypeLabel";
+ // DPI_PolynomialFitTypeLabel, having type string
+ ParameterId["PolynomialFitTypeLabel"] = "polynomialFitTypeLabel";
+ // DPI_ExcludeColorLabel, having type string
+ ParameterId["ExcludeColorLabel"] = "excludeColorLabel";
+ // DPI_EnableConfidenceBandsLabel, having type string
+ ParameterId["EnableConfidenceBandsLabel"] = "enableConfidenceBandsLabel";
+ // DPI_ForceInterceptZeroLabel, having type string
+ ParameterId["ForceInterceptZeroLabel"] = "forceInterceptZero label";
+ // DPI_EnableInstantAnalyticsLabel, having type string
+ ParameterId["EnableInstantAnalyticsLabel"] = "enableInstantAnalyticsLabel";
+ // DPI_EnableTooltipsLabel, having type string
+ ParameterId["EnableTooltipsLabel"] = "enableTooltipLabel";
+ // DPI_AuthenticationSummary, having type string
+ ParameterId["AuthenticationSummary"] = "authenticationSummary";
+ // DPI_BtnCancelText, having type string
+ ParameterId["BtnCancelText"] = "btnCancelText";
+ // DPI_BtnOkText, having type string
+ ParameterId["BtnOkText"] = "btnOkText";
+ // DPI_ButtonText, having type string
+ ParameterId["ButtonText"] = "buttonText";
+ // DPI_CalculationCaption, having type string
+ ParameterId["CalculationCaption"] = "calculationCaption";
+ // DPI_CalculationDependencies, having type string
+ ParameterId["CalculationDependencies"] = "calculationDependencies";
+ // DPI_CalculationFormula, having type string
+ ParameterId["CalculationFormula"] = "calculationFormula";
+ // DPI_CheckPublishMessage, having type string
+ ParameterId["CheckPublishMessage"] = "checkPublishSummary";
+ // DPI_ClusterModelText, having type string
+ ParameterId["ClusterModelText"] = "clusterModelText";
+ // DPI_ClusterSummaryScaledText, having type string
+ ParameterId["ClusterSummaryScaledText"] = "clusterSummaryScaledText";
+ // DPI_ClusterSummaryText, having type string
+ ParameterId["ClusterSummaryText"] = "clusterSummaryText";
+ // DPI_ColumnCaption, having type string
+ ParameterId["ColumnCaption"] = "columnCaption";
+ // DPI_DatasourceCaption, having type string
+ ParameterId["DatasourceCaption"] = "datasourceCaption";
+ // DPI_DefaultCaption, having type string
+ ParameterId["DefaultCaption"] = "defaultCaption";
+ // DPI_DisplayString, having type string
+ ParameterId["DisplayString"] = "displayText";
+ // DPI_DragDescription, having type string
+ ParameterId["DragDescription"] = "dragDescription";
+ // DPI_ExceptionMessage, having type string
+ ParameterId["ExceptionMessage"] = "exceptionMessage";
+ // DPI_Explanation, having type string
+ ParameterId["Explanation"] = "explanation";
+ // DPI_FieldCaption, having type string
+ ParameterId["FieldCaption"] = "fieldCaption";
+ // DPI_FieldSummary, having type string
+ ParameterId["FieldSummary"] = "fieldSummary";
+ // DPI_FieldSummaryLabel, having type string
+ ParameterId["FieldSummaryLabel"] = "fieldSummaryLabel";
+ // DPI_FilterDescription, having type string
+ ParameterId["FilterDescription"] = "filterDescription";
+ // DPI_FilterName, having type string
+ ParameterId["FilterName"] = "filterName";
+ // DPI_ForecastModelText, having type string
+ ParameterId["ForecastModelText"] = "forecastModelText";
+ // DPI_ForecastSummaryPctText, having type string
+ ParameterId["ForecastSummaryPctText"] = "forecastSummaryPctText";
+ // DPI_ForecastSummaryText, having type string
+ ParameterId["ForecastSummaryText"] = "forecastSummaryText";
+ // DPI_HasActiveExtractText, having type string
+ ParameterId["HasActiveExtractText"] = "hasActiveExtractText";
+ // DPI_HtmlColor, having type string
+ ParameterId["HtmlColor"] = "htmlColor";
+ // DPI_IncludeLocalFilesCheckedWarning, having type string
+ ParameterId["IncludeLocalFilesCheckedWarning"] = "includeLocalFilesCheckedWarning";
+ // DPI_IncludeLocalFilesWarning, having type string
+ ParameterId["IncludeLocalFilesWarning"] = "includeLocalFilesWarning";
+ // DPI_InvalidFieldCaption, having type string
+ ParameterId["InvalidFieldCaption"] = "invalidFieldCaption";
+ // DPI_LimitSummary, having type string
+ ParameterId["LimitSummary"] = "limitSummary";
+ // DPI_LoadedExistingObjectWarning, having type string
+ ParameterId["LoadedExistingObjectWarning"] = "loadedExistingObjectWarning";
+ // DPI_ManageDatasourcesSummary, having type string
+ ParameterId["ManageDatasourcesSummary"] = "manageDatasourcesSummary";
+ // DPI_ModalDialog, having type string
+ ParameterId["ModalDialog"] = "modalDialog";
+ // DPI_NewDatasourceCaption, having type string
+ ParameterId["NewDatasourceCaption"] = "newDatasourceCaption";
+ // DPI_PermissionsButtonLabel, having type string
+ ParameterId["PermissionsButtonLabel"] = "permissionsButtonLabel";
+ // DPI_PermissionsEditorRoleId, having type string
+ ParameterId["PermissionsEditorRoleId"] = "permissionsEditorRoleId";
+ // DPI_PermissionsLabel, having type string
+ ParameterId["PermissionsLabel"] = "permissionsLabel";
+ // DPI_PerspectiveCaption, having type string
+ ParameterId["PerspectiveCaption"] = "perspectiveCaption";
+ // DPI_PublishButtonLabel, having type string
+ ParameterId["PublishButtonLabel"] = "publishButtonLabel";
+ // DPI_PublishChoiceLabel, having type string
+ ParameterId["PublishChoiceLabel"] = "publishChoiceLabel";
+ // DPI_PublishObjectViewsSummary, having type string
+ ParameterId["PublishObjectViewsSummary"] = "publishObjectViewsSummary";
+ // DPI_QualifiedFieldCaption, having type string
+ ParameterId["QualifiedFieldCaption"] = "qualifiedFieldCaption";
+ // DPI_RelationshipTooltipText, having type string
+ ParameterId["RelationshipTooltipText"] = "relationshipTooltipText";
+ // DPI_ResetObjectAttributesWarning, having type string
+ ParameterId["ResetObjectAttributesWarning"] = "resetObjectAttributesWarning";
+ // DPI_RowCountCaption, having type string
+ ParameterId["RowCountCaption"] = "rowCountCaption";
+ // DPI_ServerCaption, having type string
+ ParameterId["ServerCaption"] = "serverCaption";
+ // DPI_SizeModeName, having type string
+ ParameterId["SizeModeName"] = "sizeModeName";
+ // DPI_SummaryText, having type string
+ ParameterId["SummaryText"] = "summaryText";
+ // DPI_SyncClientUseExtractLabel, having type string
+ ParameterId["SyncClientUseExtractLabel"] = "syncClientUseExtractLabel";
+ // DPI_Text, having type string
+ ParameterId["Text"] = "text";
+ // DPI_TextDropdownControlLabel, having type string
+ ParameterId["TextDropdownControlLabel"] = "controlLabel";
+ // DPI_ThumbnailUserName, having type string
+ ParameterId["ThumbnailUserName"] = "thumbnailUserName";
+ // DPI_TitleString, having type string
+ ParameterId["TitleString"] = "titleString";
+ // DPI_TooltipText, having type string
+ ParameterId["TooltipText"] = "tooltipText";
+ // DPI_UpdatedCalcCaption, having type string
+ ParameterId["UpdatedCalcCaption"] = "updatedCalculationCaption";
+ // DPI_UpdatedCalcFormula, having type string
+ ParameterId["UpdatedCalcFormula"] = "updatedCalculationFormula";
+ // DPI_UserCaption, having type string
+ ParameterId["UserCaption"] = "userCaption";
+ // DPI_WarningTooltipText, having type string
+ ParameterId["WarningTooltipText"] = "warningTooltipText";
+ // DPI_DatasourceFile, having type string
+ ParameterId["DatasourceFile"] = "datasourceFile";
+ // DPI_File, having type string
+ ParameterId["File"] = "file";
+ // DPI_FileNameBase, having type string
+ ParameterId["FileNameBase"] = "filenameBase";
+ // DPI_NewFile, having type string
+ ParameterId["NewFile"] = "newFile";
+ // DPI_OriginalFile, having type string
+ ParameterId["OriginalFile"] = "originalFile";
+ // DPI_OutputFile, having type string
+ ParameterId["OutputFile"] = "outputFile";
+ // DPI_SampleFileName, having type string
+ ParameterId["SampleFileName"] = "sampleFilename";
+ // DPI_WorkbookFile, having type string
+ ParameterId["WorkbookFile"] = "workbookFile";
+ // DPI_ImageKey, having type string
+ ParameterId["ImageKey"] = "imageKey";
+ // DPI_OverlayImageKey, having type string
+ ParameterId["OverlayImageKey"] = "overlayImageKey";
+ // DPI_TempFileKey, having type string
+ ParameterId["TempFileKey"] = "tempfileKey";
+ // DPI_CapturedSheet, having type string
+ ParameterId["CapturedSheet"] = "capturedSheet";
+ // DPI_CurrentSheet, having type string
+ ParameterId["CurrentSheet"] = "currentSheet";
+ // DPI_Dashboard, having type string
+ ParameterId["Dashboard"] = "dashboard";
+ // DPI_EnsureSheet, having type string
+ ParameterId["EnsureSheet"] = "ensureSheetName";
+ // DPI_NewSheet, having type string
+ ParameterId["NewSheet"] = "newSheet";
+ // DPI_Sheet, having type string
+ ParameterId["Sheet"] = "sheet";
+ // DPI_SheetName, having type string
+ ParameterId["SheetName"] = "sheetName";
+ // DPI_SourceDashboard, having type string
+ ParameterId["SourceDashboard"] = "sourceDashboard";
+ // DPI_SourceSheet, having type string
+ ParameterId["SourceSheet"] = "sourceSheet";
+ // DPI_TargetSheet, having type string
+ ParameterId["TargetSheet"] = "targetSheet";
+ // DPI_WorkbookName, having type string
+ ParameterId["WorkbookName"] = "workbookName";
+ // DPI_Worksheet, having type string
+ ParameterId["Worksheet"] = "worksheet";
+ // DPI_BaseViewThumbLink, having type string
+ ParameterId["BaseViewThumbLink"] = "baseViewThumbLink";
+ // DPI_BlogLink, having type string
+ ParameterId["BlogLink"] = "blogLink";
+ // DPI_CacheUrl, having type string
+ ParameterId["CacheUrl"] = "cacheUrl";
+ // DPI_DownloadLink, having type string
+ ParameterId["DownloadLink"] = "downloadLink";
+ // DPI_RepositoryUrl, having type string
+ ParameterId["RepositoryUrl"] = "repositoryUrl";
+ // DPI_ShareLink, having type string
+ ParameterId["ShareLink"] = "shareLink";
+ // DPI_URL, having type string
+ ParameterId["URL"] = "url";
+ // DPI_ClusterModelHtml, having type string
+ ParameterId["ClusterModelHtml"] = "clusterModelHtml";
+ // DPI_ClusterSummaryHtml, having type string
+ ParameterId["ClusterSummaryHtml"] = "clusterSummaryHtml";
+ // DPI_ClusterSummaryScaledHtml, having type string
+ ParameterId["ClusterSummaryScaledHtml"] = "clusterSummaryScaledHtml";
+ // DPI_FieldDescription, having type string
+ ParameterId["FieldDescription"] = "fieldDescription";
+ // DPI_ForecastModelHtml, having type string
+ ParameterId["ForecastModelHtml"] = "forecastModelHtml";
+ // DPI_ForecastSummaryHtml, having type string
+ ParameterId["ForecastSummaryHtml"] = "forecastSummaryHtml";
+ // DPI_ForecastSummaryPctHtml, having type string
+ ParameterId["ForecastSummaryPctHtml"] = "forecastSummaryPctHtml";
+ // DPI_Html, having type string
+ ParameterId["Html"] = "html";
+ // DPI_HtmlSelection, having type string
+ ParameterId["HtmlSelection"] = "htmlSelection";
+ // DPI_HtmlTooltip, having type string
+ ParameterId["HtmlTooltip"] = "htmlTooltip";
+ // DPI_HtmlTooltipModified, having type string
+ ParameterId["HtmlTooltipModified"] = "htmlTooltipModified";
+ // DPI_TitleHtml, having type string
+ ParameterId["TitleHtml"] = "titleHtml";
+ // DPI_CacheUrlInfoJson, having type string
+ ParameterId["CacheUrlInfoJson"] = "cacheUrlInfoJson";
+ // DPI_FilterSearchJson, having type string
+ ParameterId["FilterSearchJson"] = "filterSearchJson";
+ // DPI_FilterSearchWithIndexJson, having type string
+ ParameterId["FilterSearchWithIndexJson"] = "filterSearchWithIndexJson";
+ // DPI_FilterShowChildrenJson, having type string
+ ParameterId["FilterShowChildrenJson"] = "filterShowChildrenJson";
+ // DPI_FiltersJson, having type string
+ ParameterId["FiltersJson"] = "filtersJson";
+ // DPI_FrameJson, having type string
+ ParameterId["FrameJson"] = "frameJson";
+ // DPI_GeometryJson, having type string
+ ParameterId["GeometryJson"] = "geometryJson";
+ // DPI_GetFilterItemsJson, having type string
+ ParameterId["GetFilterItemsJson"] = "getFilterItemsJson";
+ // DPI_KeepOnlyResponseJson, having type string
+ ParameterId["KeepOnlyResponseJson"] = "keepOnlyResponseJson";
+ // DPI_MenuCommandsJson, having type string
+ ParameterId["MenuCommandsJson"] = "menuCommandsJson";
+ // DPI_ModifiedSheetsJson, having type string
+ ParameterId["ModifiedSheetsJson"] = "modifiedSheetsJson";
+ // DPI_ParameterCtrlJson, having type string
+ ParameterId["ParameterCtrlJson"] = "parameterCtrlJson";
+ // DPI_ViewJson, having type string
+ ParameterId["ViewJson"] = "viewJson";
+ // DPI_CustomizedViewXML, having type string
+ ParameterId["CustomizedViewXML"] = "customizedViewXml";
+ // DPI_DatasourceDeltaXML, having type string
+ ParameterId["DatasourceDeltaXML"] = "datasourceDeltaXml";
+ // DPI_DatasourceXML, having type string
+ ParameterId["DatasourceXML"] = "datasourceXml";
+ // DPI_KeychainXML, having type string
+ ParameterId["KeychainXML"] = "keychainXml";
+ // DPI_PermissionsModelXML, having type string
+ ParameterId["PermissionsModelXML"] = "permissionsModelXml";
+ // DPI_SharedViewsXML, having type string
+ ParameterId["SharedViewsXML"] = "sharedViewsXml";
+ // DPI_TargetURL, having type string
+ ParameterId["TargetURL"] = "targetUrl";
+ // DPI_Anchor, having type string
+ ParameterId["Anchor"] = "anchor";
+ // DPI_CenterValue, having type string
+ ParameterId["CenterValue"] = "centerValue";
+ // DPI_ComputedBinSize, having type string
+ ParameterId["ComputedBinSize"] = "computedBinSize";
+ // DPI_ConstantValue, having type string
+ ParameterId["ConstantValue"] = "constantValue";
+ // DPI_PairedConstantValue, having type string
+ ParameterId["PairedConstantValue"] = "pairedConstantValue";
+ // DPI_CountDistinct, having type string
+ ParameterId["CountDistinct"] = "countDistinct";
+ // DPI_DataMax, having type string
+ ParameterId["DataMax"] = "dataMax";
+ // DPI_DataMin, having type string
+ ParameterId["DataMin"] = "dataMin";
+ // DPI_DataValueString, having type string
+ ParameterId["DataValueString"] = "dataValueStr";
+ // DPI_EndValue, having type string
+ ParameterId["EndValue"] = "endValue";
+ // DPI_RangeMax, having type string
+ ParameterId["RangeMax"] = "rangeMax";
+ // DPI_RangeMin, having type string
+ ParameterId["RangeMin"] = "rangeMin";
+ // DPI_RangeStepSize, having type string
+ ParameterId["RangeStepSize"] = "rangeStepSize";
+ // DPI_StartValue, having type string
+ ParameterId["StartValue"] = "startValue";
+ // DPI_TargetValue, having type string
+ ParameterId["TargetValue"] = "targetValue";
+ // DPI_ValueInc, having type string
+ ParameterId["ValueInc"] = "valueInc";
+ // DPI_ValueMax, having type string
+ ParameterId["ValueMax"] = "valueMax";
+ // DPI_ValueMin, having type string
+ ParameterId["ValueMin"] = "valueMin";
+ // DPI_QuantilesValue, having type string
+ ParameterId["QuantilesValue"] = "quantilesValue";
+ // DPI_UserInputBinSize, having type string
+ ParameterId["UserInputBinSize"] = "userBinSize";
+ // DPI_AddedDataSources, having type string[]
+ ParameterId["AddedDataSources"] = "addedDataSourceNames";
+ // DPI_AddressingCaptions, having type string[]
+ ParameterId["AddressingCaptions"] = "addressingCaptions";
+ // DPI_AggregationCaptions, having type string[]
+ ParameterId["AggregationCaptions"] = "aggregationCaptions";
+ // DPI_AtTheLevelCaptions, having type string[]
+ ParameterId["AtTheLevelCaptions"] = "atTheLevelCaptions";
+ // DPI_AuthenticationSettingLabels, having type string[]
+ ParameterId["AuthenticationSettingLabels"] = "authenticationSettingLabels";
+ // DPI_AutosaveFileIdsVector, having type string[]
+ ParameterId["AutosaveFileIdsVector"] = "autosaveFileIdsVector";
+ // DPI_ChangedTuples, having type string[]
+ ParameterId["ChangedTuples"] = "changedTuples";
+ // DPI_CharsetsAvailable, having type string[]
+ ParameterId["CharsetsAvailable"] = "charsetsAvailable";
+ // DPI_CharsetDisplayNames, having type string[]
+ ParameterId["CharsetDisplayNames"] = "charsetDisplayNames";
+ // DPI_ColorFactors, having type string[]
+ ParameterId["ColorFactors"] = "colorFactors";
+ // DPI_ColumnFullNames, having type string[]
+ ParameterId["ColumnFullNames"] = "columnFullNames";
+ // DPI_ConnectionNames, having type string[]
+ ParameterId["ConnectionNames"] = "connectionNames";
+ // DPI_ConnectionCaptions, having type string[]
+ ParameterId["ConnectionCaptions"] = "connectionCaptions";
+ // DPI_ConnectionBigQueryLegacySQLCheckBox, having type string[]
+ ParameterId["ConnectionBigQueryLegacySQLCheckBox"] = "connectionBigqueryLegacySqlCheckbox";
+ // DPI_CustomFieldOrder, having type string[]
+ ParameterId["CustomFieldOrder"] = "customFieldOrder";
+ // DPI_DataSourceClasses, having type string[]
+ ParameterId["DataSourceClasses"] = "dataSourceClasses";
+ // DPI_DataSourceNames, having type string[]
+ ParameterId["DataSourceNames"] = "dataSourceNames";
+ // DPI_DataSourceNames2, having type string[]
+ ParameterId["DataSourceNames2"] = "dataSourceNames2";
+ // DPI_DataSourcesWithEmptyRelation, having type string[]
+ ParameterId["DataSourcesWithEmptyRelation"] = "dataSourcesWithEmptyRelation";
+ // DPI_DataSourceCreationErrors, having type string[]
+ ParameterId["DataSourceCreationErrors"] = "dataSourceCreationErrors";
+ // DPI_DateFormats, having type string[]
+ ParameterId["DateFormats"] = "dateFormats";
+ // DPI_DayNames, having type string[]
+ ParameterId["DayNames"] = "dayNames";
+ // DPI_DrillPathVector, having type string[]
+ ParameterId["DrillPathVector"] = "drillpathVector";
+ // DPI_ErrorDetails, having type string[]
+ ParameterId["ErrorDetails"] = "errorDetails";
+ // DPI_ExceptionMessageParams, having type string[]
+ ParameterId["ExceptionMessageParams"] = "exceptionMessageParams";
+ // DPI_ExcludedSheets, having type string[]
+ ParameterId["ExcludedSheets"] = "excludeSheets";
+ // DPI_FieldDisplayNames, having type string[]
+ ParameterId["FieldDisplayNames"] = "fieldDisplayNames";
+ // DPI_FieldFolderVector, having type string[]
+ ParameterId["FieldFolderVector"] = "fieldFolderVector";
+ // DPI_FileIds, having type string[]
+ ParameterId["FileIds"] = "fileIds";
+ // DPI_FilePaths, having type string[]
+ ParameterId["FilePaths"] = "filePaths";
+ // DPI_FileNames, having type string[]
+ ParameterId["FileNames"] = "fileNames";
+ // DPI_FilterAdd, having type string[]
+ ParameterId["FilterAdd"] = "filterAdd";
+ // DPI_FilterAliases, having type string[]
+ ParameterId["FilterAliases"] = "filterValues";
+ // DPI_FilterRemove, having type string[]
+ ParameterId["FilterRemove"] = "filterRemove";
+ // DPI_FixedCaptions, having type string[]
+ ParameterId["FixedCaptions"] = "fixedCaptions";
+ // DPI_FontFamilies, having type string[]
+ ParameterId["FontFamilies"] = "fontFamilies";
+ // DPI_FormatStrings, having type string[]
+ ParameterId["FormatStrings"] = "formatStrings";
+ // DPI_FormattedValues, having type string[]
+ ParameterId["FormattedValues"] = "formattedValues";
+ // DPI_FoundTuples, having type string[]
+ ParameterId["FoundTuples"] = "foundTuples";
+ // DPI_FullSchedulesLabels, having type string[]
+ ParameterId["FullSchedulesLabels"] = "fullSchedulesLabels";
+ // DPI_ImageResourceList, having type string[]
+ ParameterId["ImageResourceList"] = "imageResources";
+ // DPI_IncludeList, having type string[]
+ ParameterId["IncludeList"] = "includeList";
+ // DPI_IncrSchedulesLabels, having type string[]
+ ParameterId["IncrSchedulesLabels"] = "incrSchedulesLabels";
+ // DPI_InvalidDates, having type string[]
+ ParameterId["InvalidDates"] = "invalidDates";
+ // DPI_InvalidValues, having type string[]
+ ParameterId["InvalidValues"] = "invalidValues";
+ // DPI_ItemValues, having type string[]
+ ParameterId["ItemValues"] = "itemValues";
+ // DPI_JoinEditableProps, having type string[]
+ ParameterId["JoinEditableProps"] = "joinEditableProps";
+ // DPI_JoinFieldCaptions, having type string[]
+ ParameterId["JoinFieldCaptions"] = "joinFieldCaptions";
+ // DPI_LocaleOptions, having type string[]
+ ParameterId["LocaleOptions"] = "localeOptions";
+ // DPI_LocaleDisplayNames, having type string[]
+ ParameterId["LocaleDisplayNames"] = "localeDisplayNames";
+ // DPI_MapBoxStyleMaps, having type string[]
+ ParameterId["MapBoxStyleMaps"] = "mapboxStyleMaps";
+ // DPI_MapConnectionErrorDetails, having type string[]
+ ParameterId["MapConnectionErrorDetails"] = "mapConnectionErrorDetails";
+ // DPI_SheetNames, having type string[]
+ ParameterId["SheetNames"] = "sheetNames";
+ // DPI_MapSourceNames, having type string[]
+ ParameterId["MapSourceNames"] = "mapSourceNames";
+ // DPI_MarkGeometries, having type string[]
+ ParameterId["MarkGeometries"] = "markGeometries";
+ // DPI_MenuItems, having type string[]
+ ParameterId["MenuItems"] = "menuItems";
+ // DPI_Modes, having type string[]
+ ParameterId["Modes"] = "modes";
+ // DPI_MonthNames, having type string[]
+ ParameterId["MonthNames"] = "monthNames";
+ // DPI_NumberFormats, having type string[]
+ ParameterId["NumberFormats"] = "numberFormats";
+ // DPI_ObjectTextIDs, having type string[]
+ ParameterId["ObjectTextIDs"] = "objectTextIds";
+ // DPI_OldExtracts, having type string[]
+ ParameterId["OldExtracts"] = "oldExtracts";
+ // DPI_OrderingTypeCaptions, having type string[]
+ ParameterId["OrderingTypeCaptions"] = "orderingTypeCaptions";
+ // DPI_PageNames, having type string[]
+ ParameterId["PageNames"] = "pageNames";
+ // DPI_PaneDescriptorKeys, having type string[]
+ ParameterId["PaneDescriptorKeys"] = "paneDescriptorKeys";
+ // DPI_ParamCaptions, having type string[]
+ ParameterId["ParamCaptions"] = "paramCaptions";
+ // DPI_PrecannedDataValues, having type string[]
+ ParameterId["PrecannedDataValues"] = "precannedDataValues";
+ // DPI_PublishChoiceLabels, having type string[]
+ ParameterId["PublishChoiceLabels"] = "publishChoiceLabels";
+ // DPI_RankTypeCaptions, having type string[]
+ ParameterId["RankTypeCaptions"] = "rankTypeCaptions";
+ // DPI_RecentTags, having type string[]
+ ParameterId["RecentTags"] = "recentTags";
+ // DPI_RelativeCaptions, having type string[]
+ ParameterId["RelativeCaptions"] = "relativeCaptions";
+ // DPI_RemovedDataSources, having type string[]
+ ParameterId["RemovedDataSources"] = "removedDataSourceNames";
+ // DPI_RepresentativeTuple, having type string[]
+ ParameterId["RepresentativeTuple"] = "representativeTuple";
+ // DPI_RestartEveryCaptions, having type string[]
+ ParameterId["RestartEveryCaptions"] = "restartEveryCaptions";
+ // DPI_SchemaMemberGlobalNames, having type string[]
+ ParameterId["SchemaMemberGlobalNames"] = "schemaMemberGlobalNames";
+ // DPI_SelectValuesList, having type string[]
+ ParameterId["SelectValuesList"] = "selectValues";
+ // DPI_SelectionValueList, having type string[]
+ ParameterId["SelectionValueList"] = "selectionValueList";
+ // DPI_SortAggCaptions, having type string[]
+ ParameterId["SortAggCaptions"] = "sortAggCaptions";
+ // DPI_SortDirectionCaptions, having type string[]
+ ParameterId["SortDirectionCaptions"] = "sortDirectionCaptions";
+ // DPI_SortFieldCaptions, having type string[]
+ ParameterId["SortFieldCaptions"] = "sortFieldCaptions";
+ // DPI_SortFieldNameVector, having type string[]
+ ParameterId["SortFieldNameVector"] = "sortFieldnameVector";
+ // DPI_SupportedJoinOperators, having type string[]
+ ParameterId["SupportedJoinOperators"] = "supportedJoinOperators";
+ // DPI_TableCalcTypeCaptions, having type string[]
+ ParameterId["TableCalcTypeCaptions"] = "tableCalcTypeCaptions";
+ // DPI_Tags, having type string[]
+ ParameterId["Tags"] = "tags";
+ // DPI_TermVec, having type string[]
+ ParameterId["TermVec"] = "termVector";
+ // DPI_UIAutomationList, having type string[]
+ ParameterId["UIAutomationList"] = "uiAutomationList";
+ // DPI_ReferenceLineValidCustomLabelTags, having type string[]
+ ParameterId["ReferenceLineValidCustomLabelTags"] = "validReferenceLineCustomLabelTags";
+ // DPI_LocalizedKeywords, having type string[]
+ ParameterId["LocalizedKeywords"] = "localizedKeywords";
+ // DPI_AvailableCalendars, having type string[]
+ ParameterId["AvailableCalendars"] = "availableCalendars";
+ // DPI_SheetsToBeDeletedOrHidden, having type string[]
+ ParameterId["SheetsToBeDeletedOrHidden"] = "sheetsToBeDeletedOrHidden";
+ // DPI_AddSheets, having type string[]
+ ParameterId["AddSheets"] = "addSheets";
+ // DPI_NamesOfSubsheets, having type string[]
+ ParameterId["NamesOfSubsheets"] = "namesOfSubsheets";
+ // DPI_RemoveSheets, having type string[]
+ ParameterId["RemoveSheets"] = "removeSheets";
+ // DPI_ScrollOffsetSheets, having type string[]
+ ParameterId["ScrollOffsetSheets"] = "scrollOffsetSheets";
+ // DPI_Sheets, having type string[]
+ ParameterId["Sheets"] = "sheets";
+ // DPI_SourceWorksheets, having type string[]
+ ParameterId["SourceWorksheets"] = "sourceWorksheets";
+ // DPI_TargetExcludes, having type string[]
+ ParameterId["TargetExcludes"] = "targetExclude";
+ // DPI_TargetWorksheets, having type string[]
+ ParameterId["TargetWorksheets"] = "targetWorksheets";
+ // DPI_TileURLs, having type string[]
+ ParameterId["TileURLs"] = "tileUrls";
+ // DPI_Details, having type string[]
+ ParameterId["Details"] = "details";
+ // DPI_FieldCaptions, having type string[]
+ ParameterId["FieldCaptions"] = "fieldCaptions";
+ // DPI_HighlightCaptions, having type string[]
+ ParameterId["HighlightCaptions"] = "highlightCaptions";
+ // DPI_LevelCaptions, having type string[]
+ ParameterId["LevelCaptions"] = "levelCaptions";
+ // DPI_LevelLeafValues, having type string[]
+ ParameterId["LevelLeafValues"] = "levelLeafValues";
+ // DPI_SubstitutionVariables, having type string[]
+ ParameterId["SubstitutionVariables"] = "substitutionVariables";
+ // DPI_SubstitutionVariableValues, having type string[]
+ ParameterId["SubstitutionVariableValues"] = "substitutionVariableValues";
+ // DPI_HtmlTooltips, having type string[]
+ ParameterId["HtmlTooltips"] = "htmlTooltips";
+ // DPI_InvalidFields, having type string[]
+ ParameterId["InvalidFields"] = "invalidFields";
+ // DPI_NamesOfColumns, having type string[]
+ ParameterId["NamesOfColumns"] = "namesOfColumns";
+ // DPI_NamesOfFields, having type string[]
+ ParameterId["NamesOfFields"] = "namesOfFields";
+ // DPI_ReferencedDatasources, having type string[]
+ ParameterId["ReferencedDatasources"] = "referencedDataSourceList";
+ // DPI_CSSAttrs, having type Dictionary(of string)
+ ParameterId["CSSAttrs"] = "cssAttrs";
+ // DPI_DataSourceMap, having type Dictionary(of string)
+ ParameterId["DataSourceMap"] = "dataSourceMap";
+ // DPI_EventParameters, having type Dictionary(of string)
+ ParameterId["EventParameters"] = "eventParameters";
+ // DPI_ExceptionAttrs, having type Dictionary(of string)
+ ParameterId["ExceptionAttrs"] = "exceptionAttrs";
+ // DPI_InvalidSheetMessage, having type Dictionary(of string)
+ ParameterId["InvalidSheetMessage"] = "invalidSheetMessages";
+ // DPI_MapBoxDefaultStyle, having type Dictionary(of string)
+ ParameterId["MapBoxDefaultStyle"] = "mapboxDefaultStyles";
+ // DPI_PaneFormattings, having type Dictionary(of string)
+ ParameterId["PaneFormattings"] = "paneFormattings";
+ // DPI_SourceNameWithCaption, having type Dictionary(of string)
+ ParameterId["SourceNameWithCaption"] = "sourceNameWithCaption";
+ // DPI_ConnectionColorMap, having type Dictionary(of string)
+ ParameterId["ConnectionColorMap"] = "connectionColorMap";
+ // DPI_TargetNameWithCaption, having type Dictionary(of string)
+ ParameterId["TargetNameWithCaption"] = "targetNameWithCaption";
+ // DPI_ViewIds, having type Dictionary(of string)
+ ParameterId["ViewIds"] = "viewIds";
+ // DPI_AddInSettings, having type Dictionary(of string)
+ ParameterId["AddInSettings"] = "addInSettings";
+ // DPI_DatasourceIcons, having type Dictionary(of string)
+ ParameterId["DatasourceIcons"] = "datasourceIcons";
+ // DPI_FormattedText, having type string
+ ParameterId["FormattedText"] = "formattedText";
+ // DPI_IconTooltip, having type string
+ ParameterId["IconTooltip"] = "iconTooltip";
+ // DPI_Title, having type string
+ ParameterId["Title"] = "title";
+ // DPI_Tooltip, having type string
+ ParameterId["Tooltip"] = "tooltip";
+ // DPI_ZoneText, having type string
+ ParameterId["ZoneText"] = "zoneText";
+ // DPI_AlignmentFlags, having type int
+ ParameterId["AlignmentFlags"] = "alignmentFlags";
+ // DPI_AlphaLevel, having type int
+ ParameterId["AlphaLevel"] = "alphaLevel";
+ // DPI_AnovaDF, having type int
+ ParameterId["AnovaDF"] = "anovaDf";
+ // DPI_AtTheLevelIndex, having type int
+ ParameterId["AtTheLevelIndex"] = "atTheLevelIndex";
+ // DPI_AutomaticDrillIdxInVector, having type int
+ ParameterId["AutomaticDrillIdxInVector"] = "automaticDrillIdxVector";
+ // DPI_AutoSize, having type int
+ ParameterId["AutoSize"] = "automaticSize";
+ // DPI_BaseCoord, having type int
+ ParameterId["BaseCoord"] = "baseCoord";
+ // DPI_CalcEditorCursorPosPostDrop, having type int
+ ParameterId["CalcEditorCursorPosPostDrop"] = "calcEditorCursorPosPostDrop";
+ // DPI_CalcEditorDropPos, having type int
+ ParameterId["CalcEditorDropPos"] = "calcEditorDropPos";
+ // DPI_CalcEditorTextSelectionEndPos, having type int
+ ParameterId["CalcEditorTextSelectionEndPos"] = "calcEditorTextSelectionEndPos";
+ // DPI_CalcEditorTextSelectionStartPos, having type int
+ ParameterId["CalcEditorTextSelectionStartPos"] = "calcEditorTextSelectionStartPos";
+ // DPI_CategoricalBinId, having type int
+ ParameterId["CategoricalBinId"] = "categoricalBinId";
+ // DPI_CategoricalFindControllerId, having type int
+ ParameterId["CategoricalFindControllerId"] = "categoricalFindControllerId";
+ // DPI_ClauseToModifyIndex, having type int
+ ParameterId["ClauseToModifyIndex"] = "clauseToModifyIndex";
+ // DPI_ClientRenderPixelLimit, having type int
+ ParameterId["ClientRenderPixelLimit"] = "clientRenderPixelLimit";
+ // DPI_ColCount, having type int
+ ParameterId["ColCount"] = "colCount";
+ // DPI_ColWidth, having type int
+ ParameterId["ColWidth"] = "colWidth";
+ // DPI_ColumnLevels, having type int
+ ParameterId["ColumnLevels"] = "columnLevels";
+ // DPI_ColumnNumber, having type int
+ ParameterId["ColumnNumber"] = "columnNumber";
+ // DPI_ColumnWidth, having type int
+ ParameterId["ColumnWidth"] = "columnWidth";
+ // DPI_ContentHeight, having type int
+ ParameterId["ContentHeight"] = "contentH";
+ // DPI_ContentWidth, having type int
+ ParameterId["ContentWidth"] = "contentW";
+ // DPI_ContentX, having type int
+ ParameterId["ContentX"] = "contentX";
+ // DPI_ContentY, having type int
+ ParameterId["ContentY"] = "contentY";
+ // DPI_Coordinate, having type int
+ ParameterId["Coordinate"] = "coord";
+ // DPI_CurDateAgg, having type int
+ ParameterId["CurDateAgg"] = "curDateAgg";
+ // DPI_CurrentCustViewId, having type int
+ ParameterId["CurrentCustViewId"] = "currentCustomViewId";
+ // DPI_CustomSplitCharacterCountSeparator, having type int
+ ParameterId["CustomSplitCharacterCountSeparator"] = "customSplitCharacterCountSeparator";
+ // DPI_CustomSplitDesiredSplitCount, having type int
+ ParameterId["CustomSplitDesiredSplitCount"] = "customSplitDesiredSplitCount";
+ // DPI_DashboardGridSize, having type int
+ ParameterId["DashboardGridSize"] = "dashboardGridSize";
+ // DPI_DataIndex, having type int
+ ParameterId["DataIndex"] = "dataIndex";
+ // DPI_DecimalPlaces, having type int
+ ParameterId["DecimalPlaces"] = "decimalPlaces";
+ // DPI_DeltaTime, having type int
+ ParameterId["DeltaTime"] = "deltaTime";
+ // DPI_DestPix, having type int
+ ParameterId["DestPix"] = "destPix";
+ // DPI_DeviceIndex, having type int
+ ParameterId["DeviceIndex"] = "deviceIndex";
+ // DPI_Duration, having type int
+ ParameterId["Duration"] = "duration";
+ // DPI_EndPtX, having type int
+ ParameterId["EndPtX"] = "endX";
+ // DPI_EndPtY, having type int
+ ParameterId["EndPtY"] = "endY";
+ // DPI_ErrorLen, having type int
+ ParameterId["ErrorLen"] = "lengthOfCalcOfError";
+ // DPI_ErrorPos, having type int
+ ParameterId["ErrorPos"] = "startPositionForError";
+ // DPI_ExceptionErrorMessageId, having type int
+ ParameterId["ExceptionErrorMessageId"] = "exceptionErrorMessageId";
+ // DPI_ExtentsH, having type int
+ ParameterId["ExtentsH"] = "extentsHeight";
+ // DPI_ExtentsW, having type int
+ ParameterId["ExtentsW"] = "extentsWidth";
+ // DPI_ExtentsX, having type int
+ ParameterId["ExtentsX"] = "extentsX";
+ // DPI_ExtentsY, having type int
+ ParameterId["ExtentsY"] = "extentsY";
+ // DPI_FieldIndex, having type int
+ ParameterId["FieldIndex"] = "fieldIndex";
+ // DPI_FieldNameId, having type int
+ ParameterId["FieldNameId"] = "fieldNameId";
+ // DPI_FirstDayOfWeek, having type int
+ ParameterId["FirstDayOfWeek"] = "firstDayOfWeek";
+ // DPI_FirstLinkedLevel, having type int
+ ParameterId["FirstLinkedLevel"] = "firstLinkedLevel";
+ // DPI_FirstValueIndex, having type int
+ ParameterId["FirstValueIndex"] = "firstValueIndex";
+ // DPI_FixedSizePresetIndex, having type int
+ ParameterId["FixedSizePresetIndex"] = "fixedSizePresetIndex";
+ // DPI_FocusItemIndex, having type int
+ ParameterId["FocusItemIndex"] = "focusItemIndex";
+ // DPI_FontSize, having type int
+ ParameterId["FontSize"] = "fontSize";
+ // DPI_ForecastIntRangeEnd, having type int
+ ParameterId["ForecastIntRangeEnd"] = "forecastIntRangeEnd";
+ // DPI_ForecastIntRangeStart, having type int
+ ParameterId["ForecastIntRangeStart"] = "forecastIntRangeStart";
+ // DPI_FunctionHelpIndex, having type int
+ ParameterId["FunctionHelpIndex"] = "functionHelpIndex";
+ // DPI_GeographicSearchMaxResults, having type int
+ ParameterId["GeographicSearchMaxResults"] = "geographicSearchMaxResults";
+ // DPI_Height, having type int
+ ParameterId["Height"] = "h";
+ // DPI_HierarchyLevel, having type int
+ ParameterId["HierarchyLevel"] = "hierarchyLevel";
+ // DPI_HierarchyLevelLoaded, having type int
+ ParameterId["HierarchyLevelLoaded"] = "hierarchyLevelLoaded";
+ // DPI_HierarchyLevelMinimum, having type int
+ ParameterId["HierarchyLevelMinimum"] = "hierarchyLevelMinimum";
+ // DPI_HierarchyLoadLimit, having type int
+ ParameterId["HierarchyLoadLimit"] = "hierarchyLoadLimit";
+ // DPI_HierarchySelectControllerId, having type int
+ ParameterId["HierarchySelectControllerId"] = "hierarchySelectControllerId";
+ // DPI_HorzTextCell, having type int
+ ParameterId["HorzTextCell"] = "horzTextCell";
+ // DPI_ImageIndex, having type int
+ ParameterId["ImageIndex"] = "imageIndex";
+ // DPI_ImageSizeLimit, having type int
+ ParameterId["ImageSizeLimit"] = "imageSizeLimit";
+ // DPI_TransparentLineMarksLimit, having type int
+ ParameterId["TransparentLineMarksLimit"] = "transparentLineMarksLimit";
+ // DPI_Indent, having type int
+ ParameterId["Indent"] = "indent";
+ // DPI_Index, having type int
+ ParameterId["Index"] = "idx";
+ // DPI_IndexFrom, having type int
+ ParameterId["IndexFrom"] = "indexFrom";
+ // DPI_IndexOffset, having type int
+ ParameterId["IndexOffset"] = "indexOffset";
+ // DPI_IndexRelativeDateField, having type int
+ ParameterId["IndexRelativeDateField"] = "indiexRelativeDateField";
+ // DPI_IndexSelectedItem, having type int
+ ParameterId["IndexSelectedItem"] = "indexSelectedItem";
+ // DPI_IndexTo, having type int
+ ParameterId["IndexTo"] = "indexTo";
+ // DPI_InlineConnectionRenameRow, having type int
+ ParameterId["InlineConnectionRenameRow"] = "inlineConnectionRenameRow";
+ // DPI_InsertPos, having type int
+ ParameterId["InsertPos"] = "insertPos";
+ // DPI_IsHasDataSupported, having type int
+ ParameterId["IsHasDataSupported"] = "isHasDataSupported";
+ // DPI_LeftMargin, having type int
+ ParameterId["LeftMargin"] = "leftMargin";
+ // DPI_LeftRightBorderWidth, having type int
+ ParameterId["LeftRightBorderWidth"] = "leftRightBorderWidth";
+ // DPI_LevelNumber, having type int
+ ParameterId["LevelNumber"] = "levelNumber";
+ // DPI_LowerBound, having type int
+ ParameterId["LowerBound"] = "lowerBound";
+ // DPI_MapRequestPixels, having type int
+ ParameterId["MapRequestPixels"] = "mapRequestPixels";
+ // DPI_MapScaleFontSizePixels, having type int
+ ParameterId["MapScaleFontSizePixels"] = "mapScaleFontSizePixels";
+ // DPI_MapScaleReadoutNumber, having type int
+ ParameterId["MapScaleReadoutNumber"] = "mapScaleReadoutNumber";
+ // DPI_MapScaleWidth, having type int
+ ParameterId["MapScaleWidth"] = "mapScaleWidth";
+ // DPI_MapTileSize, having type int
+ ParameterId["MapTileSize"] = "mapTileSize";
+ // DPI_Margin, having type int
+ ParameterId["Margin"] = "margin";
+ // DPI_MarginBottom, having type int
+ ParameterId["MarginBottom"] = "marginBottom";
+ // DPI_MarginLeft, having type int
+ ParameterId["MarginLeft"] = "marginLeft";
+ // DPI_MarginRight, having type int
+ ParameterId["MarginRight"] = "marginRight";
+ // DPI_MarginTop, having type int
+ ParameterId["MarginTop"] = "marginTop";
+ // DPI_MaxCell, having type int
+ ParameterId["MaxCell"] = "maxCell";
+ // DPI_MaxItemSpan, having type int
+ ParameterId["MaxItemSpan"] = "maxItemSpan";
+ // DPI_MaxPolynomialDegree, having type int
+ ParameterId["MaxPolynomialDegree"] = "maxDegree";
+ // DPI_MaxPosition, having type int
+ ParameterId["MaxPosition"] = "maxPosition";
+ // DPI_MaxSize, having type int
+ ParameterId["MaxSize"] = "maxSize";
+ // DPI_MinCell, having type int
+ ParameterId["MinCell"] = "minCell";
+ // DPI_MinPolynomialDegree, having type int
+ ParameterId["MinPolynomialDegree"] = "minDegree";
+ // DPI_MinPosition, having type int
+ ParameterId["MinPosition"] = "minPosition";
+ // DPI_MinSize, having type int
+ ParameterId["MinSize"] = "minSize";
+ // DPI_ModelDF, having type int
+ ParameterId["ModelDF"] = "modelDf";
+ // DPI_NewIndex, having type int
+ ParameterId["NewIndex"] = "newIndex";
+ // DPI_NumDataSourcesUsingServer, having type int
+ ParameterId["NumDataSourcesUsingServer"] = "numDataSourcesUsingServer";
+ // DPI_NumFilteredObs, having type int
+ ParameterId["NumFilteredObs"] = "filteredObservations";
+ // DPI_NumModeledObs, having type int
+ ParameterId["NumModeledObs"] = "modeledObservations";
+ // DPI_NumNotClustered, having type int
+ ParameterId["NumNotClustered"] = "numNotClustered";
+ // DPI_NumNumericFields, having type int
+ ParameterId["NumNumericFields"] = "numNumericFields";
+ // DPI_NumOutliers, having type int
+ ParameterId["NumOutliers"] = "numOutliers";
+ // DPI_NumRows, having type int
+ ParameterId["NumRows"] = "numRows";
+ // DPI_NumSelected, having type int
+ ParameterId["NumSelected"] = "numSelected";
+ // DPI_OffsetX, having type int
+ ParameterId["OffsetX"] = "offsetX";
+ // DPI_OffsetY, having type int
+ ParameterId["OffsetY"] = "offsetY";
+ // DPI_Padding, having type int
+ ParameterId["Padding"] = "padding";
+ // DPI_PaddingBottom, having type int
+ ParameterId["PaddingBottom"] = "paddingBottom";
+ // DPI_PaddingLeft, having type int
+ ParameterId["PaddingLeft"] = "paddingLeft";
+ // DPI_PaddingRight, having type int
+ ParameterId["PaddingRight"] = "paddingRight";
+ // DPI_PaddingTop, having type int
+ ParameterId["PaddingTop"] = "paddingTop";
+ // DPI_PageLoadPercentage, having type int
+ ParameterId["PageLoadPercentage"] = "pageLoadPercentage";
+ // DPI_PaletteIndex, having type int
+ ParameterId["PaletteIndex"] = "paletteIndex";
+ // DPI_PaneSpecificationId, having type int
+ ParameterId["PaneSpecificationId"] = "paneSpec";
+ // DPI_ParameterCtrlIncrementsPerTick, having type int
+ ParameterId["ParameterCtrlIncrementsPerTick"] = "parameterControlIncrementMultiplier";
+ // DPI_PolynomialDegree, having type int
+ ParameterId["PolynomialDegree"] = "degree";
+ // DPI_Port, having type int
+ ParameterId["Port"] = "datasourcePort";
+ // DPI_Position, having type int
+ ParameterId["Position"] = "position";
+ // DPI_ParentProjectId, having type int
+ ParameterId["ParentProjectId"] = "parentProjectId";
+ // DPI_Radius, having type int
+ ParameterId["Radius"] = "radius";
+ // DPI_ReadoutOffset, having type int
+ ParameterId["ReadoutOffset"] = "readoutOffset";
+ // DPI_ReferenceIndex, having type int
+ ParameterId["ReferenceIndex"] = "referenceIndex";
+ // DPI_RegionHeight, having type int
+ ParameterId["RegionHeight"] = "regionHeight";
+ // DPI_RegionWidth, having type int
+ ParameterId["RegionWidth"] = "regionWidth";
+ // DPI_RemovedDatasourceCount, having type int
+ ParameterId["RemovedDatasourceCount"] = "removedDatasourceCount";
+ // DPI_RemovedSheetCount, having type int
+ ParameterId["RemovedSheetCount"] = "removedSheetCount";
+ // DPI_ResidualDF, having type int
+ ParameterId["ResidualDF"] = "residualDf";
+ // DPI_ResizeColumn, having type int
+ ParameterId["ResizeColumn"] = "resizeColumn";
+ // DPI_RestartEveryIndex, having type int
+ ParameterId["RestartEveryIndex"] = "restartEveryIndex";
+ // DPI_RightMargin, having type int
+ ParameterId["RightMargin"] = "rightMargin";
+ // DPI_RowCount, having type int
+ ParameterId["RowCount"] = "rowCount";
+ // DPI_RowHeight, having type int
+ ParameterId["RowHeight"] = "rowHeight";
+ // DPI_RowInnerLevels, having type int
+ ParameterId["RowInnerLevels"] = "rowInnerLevels";
+ // DPI_RowLevels, having type int
+ ParameterId["RowLevels"] = "rowLevels";
+ // DPI_RowNumber, having type int
+ ParameterId["RowNumber"] = "rowNumber";
+ // DPI_RowWidth, having type int
+ ParameterId["RowWidth"] = "rowWidth";
+ // DPI_SecondLinkedLevel, having type int
+ ParameterId["SecondLinkedLevel"] = "secondLinkedLevel";
+ // DPI_SecondValueIndex, having type int
+ ParameterId["SecondValueIndex"] = "secondValueIndex";
+ // DPI_SecondsAgo, having type int
+ ParameterId["SecondsAgo"] = "secondsAgo";
+ // DPI_SelectionEnd, having type int
+ ParameterId["SelectionEnd"] = "selectionEnd";
+ // DPI_SelectionStart, having type int
+ ParameterId["SelectionStart"] = "selectionStart";
+ // DPI_ShapePaletteID, having type int
+ ParameterId["ShapePaletteID"] = "shapePaletteId";
+ // DPI_SheetIndex, having type int
+ ParameterId["SheetIndex"] = "sheetIndex";
+ // DPI_ShelfPositionIndex, having type int
+ ParameterId["ShelfPositionIndex"] = "shelfPosIndex";
+ // DPI_Size, having type int
+ ParameterId["Size"] = "size";
+ // DPI_SizeDifference, having type int
+ ParameterId["SizeDifference"] = "sizeDelta";
+ // DPI_SnapDistance, having type int
+ ParameterId["SnapDistance"] = "snapDistance";
+ // DPI_SnapLocation, having type int
+ ParameterId["SnapLocation"] = "snapLocation";
+ // DPI_SolveOrder, having type int
+ ParameterId["SolveOrder"] = "solveOrder";
+ // DPI_SpaceBetweenPoints, having type int
+ ParameterId["SpaceBetweenPoints"] = "spaceBetweenPoints";
+ // DPI_StepSize, having type int
+ ParameterId["StepSize"] = "stepSize";
+ // DPI_Steps, having type int
+ ParameterId["Steps"] = "steps";
+ // DPI_StoryPointIndex, having type int
+ ParameterId["StoryPointIndex"] = "currentStorypointIndex";
+ // DPI_StyleLen, having type int
+ ParameterId["StyleLen"] = "tokenLengthForStyle";
+ // DPI_StylePos, having type int
+ ParameterId["StylePos"] = "tokenPositionForStyle";
+ // DPI_SwatchAreaWidth, having type int
+ ParameterId["SwatchAreaWidth"] = "swatchWidth";
+ // DPI_TargetBinId, having type int
+ ParameterId["TargetBinId"] = "targetBinId";
+ // DPI_TargetPtX, having type int
+ ParameterId["TargetPtX"] = "targetX";
+ // DPI_TargetPtY, having type int
+ ParameterId["TargetPtY"] = "targetY";
+ // DPI_TileFactor, having type int
+ ParameterId["TileFactor"] = "tileFactor";
+ // DPI_TitleHeight, having type int
+ ParameterId["TitleHeight"] = "titleHeight";
+ // DPI_TitleWidth, having type int
+ ParameterId["TitleWidth"] = "titleWidth";
+ // DPI_TopBottomBorderWidth, having type int
+ ParameterId["TopBottomBorderWidth"] = "topBottomBorderWidth";
+ // DPI_UIAutomationLineSize, having type int
+ ParameterId["UIAutomationLineSize"] = "uiAutomationLineSize";
+ // DPI_UIAutomationPageSize, having type int
+ ParameterId["UIAutomationPageSize"] = "uiAutomationPageSize";
+ // DPI_UID, having type int
+ ParameterId["UID"] = "uid";
+ // DPI_UpperBound, having type int
+ ParameterId["UpperBound"] = "upperBound";
+ // DPI_VertTextCell, having type int
+ ParameterId["VertTextCell"] = "vertTextCell";
+ // DPI_Width, having type int
+ ParameterId["Width"] = "w";
+ // DPI_X, having type int
+ ParameterId["X"] = "x";
+ // DPI_Y, having type int
+ ParameterId["Y"] = "y";
+ // DPI_ZOrder, having type int
+ ParameterId["ZOrder"] = "zOrder";
+ // DPI_ZoneIconIndex, having type int
+ ParameterId["ZoneIconIndex"] = "zoneIconIndex";
+ // DPI_AliasIndices, having type int[]
+ ParameterId["AliasIndices"] = "aliasIndices";
+ // DPI_AnovaDFVec, having type int[]
+ ParameterId["AnovaDFVec"] = "anovaDfVector";
+ // DPI_ColumnIndices, having type int[]
+ ParameterId["ColumnIndices"] = "columnIndices";
+ // DPI_DrillFieldIndices, having type int[]
+ ParameterId["DrillFieldIndices"] = "drillFieldIndices";
+ // DPI_FilterMaxIndices, having type int[]
+ ParameterId["FilterMaxIndices"] = "filterMaxIndices";
+ // DPI_FilterMinIndices, having type int[]
+ ParameterId["FilterMinIndices"] = "filterMinIndices";
+ // DPI_FilterValuesIndices, having type int[]
+ ParameterId["FilterValuesIndices"] = "filterValueIndices";
+ // DPI_FormatStringIndices, having type int[]
+ ParameterId["FormatStringIndices"] = "formatstrIndices";
+ // DPI_FormattedValIndices, having type int[]
+ ParameterId["FormattedValIndices"] = "formatValIdxs";
+ // DPI_PaletteIndices, having type int[]
+ ParameterId["PaletteIndices"] = "palettesIndices";
+ // DPI_PaneIndices, having type int[]
+ ParameterId["PaneIndices"] = "paneIndices";
+ // DPI_Points, having type int[]
+ ParameterId["Points"] = "points";
+ // DPI_QuickFilterSettings, having type int[]
+ ParameterId["QuickFilterSettings"] = "quickFilterSettings";
+ // DPI_SelectedIndices, having type int[]
+ ParameterId["SelectedIndices"] = "selectedIndices";
+ // DPI_ShelfPositionIndices, having type int[]
+ ParameterId["ShelfPositionIndices"] = "shelfPosIndices";
+ // DPI_TileBox, having type int[]
+ ParameterId["TileBox"] = "tileBox";
+ // DPI_TrailOverride, having type int[]
+ ParameterId["TrailOverride"] = "trailOverride";
+ // DPI_UIDs, having type int[]
+ ParameterId["UIDs"] = "uids";
+ // DPI_ValueIndices, having type int[]
+ ParameterId["ValueIndices"] = "valueIndices";
+ // DPI_XCellOffsets, having type int[]
+ ParameterId["XCellOffsets"] = "xCellOffsets";
+ // DPI_XPixelOffsets, having type int[]
+ ParameterId["XPixelOffsets"] = "xPixelOffsets";
+ // DPI_YCellOffsets, having type int[]
+ ParameterId["YCellOffsets"] = "yCellOffsets";
+ // DPI_YPixelOffsets, having type int[]
+ ParameterId["YPixelOffsets"] = "yPixelOffsets";
+ // DPI_IntMap, having type Dictionary(of int)
+ ParameterId["IntMap"] = "intMap";
+ // DPI_SelectedAuthSettingIndices, having type Dictionary(of int)
+ ParameterId["SelectedAuthSettingIndices"] = "selectedAuthSettingIndices";
+ // DPI_ActiveStoryPointID, having type uint
+ ParameterId["ActiveStoryPointID"] = "activeStoryPointId";
+ // DPI_ActiveZoneID, having type uint
+ ParameterId["ActiveZoneID"] = "activeZoneId";
+ // DPI_ActualSize, having type uint
+ ParameterId["ActualSize"] = "actualSize";
+ // DPI_AddInDebugPort, having type uint
+ ParameterId["AddInDebugPort"] = "addInDebugPort";
+ // DPI_AggregationIndex, having type uint
+ ParameterId["AggregationIndex"] = "aggregationIndex";
+ // DPI_AnnotationID, having type uint
+ ParameterId["AnnotationID"] = "annotationId";
+ // DPI_AssignedAliasCount, having type uint
+ ParameterId["AssignedAliasCount"] = "assignedAliasCount";
+ // DPI_CapabilityId, having type uint
+ ParameterId["CapabilityId"] = "capabilityId";
+ // DPI_CaretIndex, having type uint
+ ParameterId["CaretIndex"] = "caretIndex";
+ // DPI_CellID, having type uint
+ ParameterId["CellID"] = "cellId";
+ // DPI_ColumnIndex, having type uint
+ ParameterId["ColumnIndex"] = "columnIndex";
+ // DPI_CommandID, having type uint
+ ParameterId["CommandID"] = "id";
+ // DPI_CommandIndex, having type uint
+ ParameterId["CommandIndex"] = "index";
+ // DPI_ControllerId, having type uint
+ ParameterId["ControllerId"] = "controllerId";
+ // DPI_Count, having type uint
+ ParameterId["Count"] = "count";
+ // DPI_URowCount, having type uint
+ ParameterId["URowCount"] = "uRowCount";
+ // DPI_UColumnCount, having type uint
+ ParameterId["UColumnCount"] = "uColumnCount";
+ // DPI_CurrentPage, having type uint
+ ParameterId["CurrentPage"] = "currentPage";
+ // DPI_DatePeriodsCount, having type uint
+ ParameterId["DatePeriodsCount"] = "datePeriodsCount";
+ // DPI_Decimals, having type uint
+ ParameterId["Decimals"] = "decimals";
+ // DPI_DefaultHeight, having type uint
+ ParameterId["DefaultHeight"] = "defaultHeight";
+ // DPI_DefaultItem, having type uint
+ ParameterId["DefaultItem"] = "defaultItem";
+ // DPI_DefaultWidth, having type uint
+ ParameterId["DefaultWidth"] = "defaultWidth";
+ // DPI_Depth, having type uint
+ ParameterId["Depth"] = "depth";
+ // DPI_DetailID, having type uint
+ ParameterId["DetailID"] = "detailId";
+ // DPI_DrillLevel, having type uint
+ ParameterId["DrillLevel"] = "drillLevel";
+ // DPI_DuplicateIndex, having type uint
+ ParameterId["DuplicateIndex"] = "duplicateIndex";
+ // DPI_EndIndex, having type uint
+ ParameterId["EndIndex"] = "endIndex";
+ // DPI_FieldIconIdx, having type uint
+ ParameterId["FieldIconIdx"] = "fieldIconIdx";
+ // DPI_FilterLevel, having type uint
+ ParameterId["FilterLevel"] = "filterLevel";
+ // DPI_FilterTileSize, having type uint
+ ParameterId["FilterTileSize"] = "filterTileSize";
+ // DPI_FiscalYearStart, having type uint
+ ParameterId["FiscalYearStart"] = "fiscalYearStart";
+ // DPI_FitPagesAcross, having type uint
+ ParameterId["FitPagesAcross"] = "pageFitHorizontal";
+ // DPI_FitPagesDown, having type uint
+ ParameterId["FitPagesDown"] = "pageFitVertical";
+ // DPI_FixedIndex, having type uint
+ ParameterId["FixedIndex"] = "fixedIndex";
+ // DPI_FlipboardZoneID, having type uint
+ ParameterId["FlipboardZoneID"] = "flipboardZoneId";
+ // DPI_ForecastAutoRangeSize, having type uint
+ ParameterId["ForecastAutoRangeSize"] = "forecastAutoRangeSize";
+ // DPI_ForecastEndOfRange, having type uint
+ ParameterId["ForecastEndOfRange"] = "forecastEndOfRange";
+ // DPI_ForecastIgnoreLast, having type uint
+ ParameterId["ForecastIgnoreLast"] = "forecastIgnoreLast";
+ // DPI_ForecastNextRangeSize, having type uint
+ ParameterId["ForecastNextRangeSize"] = "forecastNextRangeSize";
+ // DPI_GroupFlags, having type uint
+ ParameterId["GroupFlags"] = "groupFlag";
+ // DPI_HierarchyLevels, having type uint
+ ParameterId["HierarchyLevels"] = "hierarchyLevels";
+ // DPI_HierarchyMemberId, having type uint
+ ParameterId["HierarchyMemberId"] = "hierarchyMemberId";
+ // DPI_HitTestFlags, having type uint
+ ParameterId["HitTestFlags"] = "hitTestFlags";
+ // DPI_ImageHeight, having type uint
+ ParameterId["ImageHeight"] = "imageHeight";
+ // DPI_ImageWidth, having type uint
+ ParameterId["ImageWidth"] = "imageWidth";
+ // DPI_ItemIndex, having type uint
+ ParameterId["ItemIndex"] = "itemIndex";
+ // DPI_ItemIndex1, having type uint
+ ParameterId["ItemIndex1"] = "itemIndex1";
+ // DPI_LineHeight, having type uint
+ ParameterId["LineHeight"] = "lineHeight";
+ // DPI_MapIntermediateLevels, having type uint
+ ParameterId["MapIntermediateLevels"] = "mapIntermediateLevels";
+ // DPI_MapWorldRepeats, having type uint
+ ParameterId["MapWorldRepeats"] = "mapWorldRepeats";
+ // DPI_MaxAlpha, having type uint
+ ParameterId["MaxAlpha"] = "maxAlpha";
+ // DPI_MaxHeight, having type uint
+ ParameterId["MaxHeight"] = "maxHeight";
+ // DPI_MaxNumberWebListItems, having type uint
+ ParameterId["MaxNumberWebListItems"] = "maxNumberWebListItems";
+ // DPI_MaxPrevOrNextValues, having type uint
+ ParameterId["MaxPrevOrNextValues"] = "maxPrevOrNextValues";
+ // DPI_MaxRows, having type uint
+ ParameterId["MaxRows"] = "maxRows";
+ // DPI_MaxTransparency, having type uint
+ ParameterId["MaxTransparency"] = "colorMaxTransparencyValue";
+ // DPI_MaxWidth, having type uint
+ ParameterId["MaxWidth"] = "maxWidth";
+ // DPI_MinColumns, having type uint
+ ParameterId["MinColumns"] = "minColumns";
+ // DPI_MinHeight, having type uint
+ ParameterId["MinHeight"] = "minHeight";
+ // DPI_MinPrevOrNextValues, having type uint
+ ParameterId["MinPrevOrNextValues"] = "minPrevOrNextValues";
+ // DPI_MinTransparency, having type uint
+ ParameterId["MinTransparency"] = "colorMinTransparencyValue";
+ // DPI_MinWidth, having type uint
+ ParameterId["MinWidth"] = "minWidth";
+ // DPI_NestedCalcsIndex, having type uint
+ ParameterId["NestedCalcsIndex"] = "nestedCalcsIndex";
+ // DPI_NextValues, having type uint
+ ParameterId["NextValues"] = "nextValues";
+ // DPI_NodeLevel, having type uint
+ ParameterId["NodeLevel"] = "nodeLevel";
+ // DPI_NumHighlighted, having type uint
+ ParameterId["NumHighlighted"] = "numHighlighted";
+ // DPI_NumberOfNextValues, having type uint
+ ParameterId["NumberOfNextValues"] = "numberOfNextValues";
+ // DPI_NumberOfPrevValues, having type uint
+ ParameterId["NumberOfPrevValues"] = "numberOfPrevValues";
+ // DPI_ObjectID, having type uint
+ ParameterId["ObjectID"] = "objectId";
+ // DPI_OrderingTypeIndex, having type uint
+ ParameterId["OrderingTypeIndex"] = "orderingTypeIndex";
+ // DPI_PageCount, having type uint
+ ParameterId["PageCount"] = "pageCount";
+ // DPI_PageFadeEnd, having type uint
+ ParameterId["PageFadeEnd"] = "fadeEnd";
+ // DPI_PageFadeStart, having type uint
+ ParameterId["PageFadeStart"] = "fadeStart";
+ // DPI_PageIndex, having type uint
+ ParameterId["PageIndex"] = "pageIndex";
+ // DPI_PageNumber, having type uint
+ ParameterId["PageNumber"] = "pageNumber";
+ // DPI_PageScalePercent, having type uint
+ ParameterId["PageScalePercent"] = "pageScalePercent";
+ // DPI_PageTrailLength, having type uint
+ ParameterId["PageTrailLength"] = "historyLength";
+ // DPI_PaletteFlagsVal, having type uint
+ ParameterId["PaletteFlagsVal"] = "paletteFlagsVal";
+ // DPI_PaneIndex, having type uint
+ ParameterId["PaneIndex"] = "paneIndex";
+ // DPI_ParamCtrlDisplayFlags, having type uint
+ ParameterId["ParamCtrlDisplayFlags"] = "paramDisplayFlags";
+ // DPI_ParentZoneID, having type uint
+ ParameterId["ParentZoneID"] = "parentZoneId";
+ // DPI_PercentileParam, having type uint
+ ParameterId["PercentileParam"] = "percentileParam";
+ // DPI_PrevValues, having type uint
+ ParameterId["PrevValues"] = "prevValues";
+ // DPI_PublishResultStringId, having type uint
+ ParameterId["PublishResultStringId"] = "publishResultStringId";
+ // DPI_QRGBColor, having type uint
+ ParameterId["QRGBColor"] = "qrgbColor";
+ // DPI_RangeN, having type uint
+ ParameterId["RangeN"] = "rangeN";
+ // DPI_RankTypeIndex, having type uint
+ ParameterId["RankTypeIndex"] = "rankTypeIndex";
+ // DPI_RenderComplexity, having type uint
+ ParameterId["RenderComplexity"] = "renderComplexityLimit";
+ // DPI_RowIndex, having type uint
+ ParameterId["RowIndex"] = "rowIndex";
+ // DPI_SelectedAuthSettingIndex, having type uint
+ ParameterId["SelectedAuthSettingIndex"] = "selectedAuthSettingIndex";
+ // DPI_SelectedFullScheduleIndex, having type uint
+ ParameterId["SelectedFullScheduleIndex"] = "selectedFullScheduleIndex";
+ // DPI_SelectedIncrScheduleIndex, having type uint
+ ParameterId["SelectedIncrScheduleIndex"] = "selectedIncrScheduleIndex";
+ // DPI_SelectedPublishChoiceIndex, having type uint
+ ParameterId["SelectedPublishChoiceIndex"] = "selectedPublishChoiceIndex";
+ // DPI_SelectedMemberCount, having type uint
+ ParameterId["SelectedMemberCount"] = "selectedMemberCount";
+ // DPI_ShapeID, having type uint
+ ParameterId["ShapeID"] = "shapeId";
+ // DPI_SheetUseCount, having type uint
+ ParameterId["SheetUseCount"] = "useCount";
+ // DPI_ShelfItemID, having type uint
+ ParameterId["ShelfItemID"] = "shelfItemId";
+ // DPI_SigFigs, having type uint
+ ParameterId["SigFigs"] = "sigFigs";
+ // DPI_SortAggIndex, having type uint
+ ParameterId["SortAggIndex"] = "sortAggIndvValues";
+ // DPI_SortColumnIndex, having type uint
+ ParameterId["SortColumnIndex"] = "sortColumnIndex";
+ // DPI_SortDirectionIndex, having type uint
+ ParameterId["SortDirectionIndex"] = "sortDirectionIndex";
+ // DPI_SortFieldIndex, having type uint
+ ParameterId["SortFieldIndex"] = "sortFieldIndex";
+ // DPI_StartIndex, having type uint
+ ParameterId["StartIndex"] = "startIndex";
+ // DPI_StartOfWeek, having type uint
+ ParameterId["StartOfWeek"] = "startOfWeek";
+ // DPI_StoreId, having type uint
+ ParameterId["StoreId"] = "storeId";
+ // DPI_StoryPointID, having type uint
+ ParameterId["StoryPointID"] = "storyPointId";
+ // DPI_TableCalcTypeIndex, having type uint
+ ParameterId["TableCalcTypeIndex"] = "tableCalcTypeIndex";
+ // DPI_TableCalcTypesUsed, having type uint
+ ParameterId["TableCalcTypesUsed"] = "tableCalcTypesUsed";
+ // DPI_TemplateIndex, having type uint
+ ParameterId["TemplateIndex"] = "templateIndex";
+ // DPI_TileCount, having type uint
+ ParameterId["TileCount"] = "tileCount";
+ // DPI_TimeoutSeconds, having type uint
+ ParameterId["TimeoutSeconds"] = "timeoutSeconds";
+ // DPI_TopN, having type uint
+ ParameterId["TopN"] = "topN";
+ // DPI_TotalNumberOfItemsInSet, having type uint
+ ParameterId["TotalNumberOfItemsInSet"] = "totalNumberOfItemsInSet";
+ // DPI_TotalMemberCount, having type uint
+ ParameterId["TotalMemberCount"] = "totalMemberCount";
+ // DPI_Transparency, having type uint
+ ParameterId["Transparency"] = "colorTransparencyValue";
+ // DPI_TupleID, having type uint
+ ParameterId["TupleID"] = "tupleId";
+ // DPI_UIndex, having type uint
+ ParameterId["UIndex"] = "uindex";
+ // DPI_UndoPosition, having type uint
+ ParameterId["UndoPosition"] = "undoPosition";
+ // DPI_UnsignedWidth, having type uint
+ ParameterId["UnsignedWidth"] = "uw";
+ // DPI_UnsignedWidthBottom, having type uint
+ ParameterId["UnsignedWidthBottom"] = "uwb";
+ // DPI_UnsignedWidthLeft, having type uint
+ ParameterId["UnsignedWidthLeft"] = "uwl";
+ // DPI_UnsignedWidthRight, having type uint
+ ParameterId["UnsignedWidthRight"] = "uwr";
+ // DPI_UnsignedWidthTop, having type uint
+ ParameterId["UnsignedWidthTop"] = "uwt";
+ // DPI_ValueIndex, having type uint
+ ParameterId["ValueIndex"] = "valueIndex";
+ // DPI_ValueInt, having type uint
+ ParameterId["ValueInt"] = "valueInt";
+ // DPI_WorldOffset, having type uint
+ ParameterId["WorldOffset"] = "worldOffset";
+ // DPI_XDuplicateIndex, having type uint
+ ParameterId["XDuplicateIndex"] = "xDuplicateIndex";
+ // DPI_XIndex, having type uint
+ ParameterId["XIndex"] = "xIndex";
+ // DPI_YDuplicateIndex, having type uint
+ ParameterId["YDuplicateIndex"] = "yDuplicateIndex";
+ // DPI_YIndex, having type uint
+ ParameterId["YIndex"] = "yIndex";
+ // DPI_ZoneID, having type uint
+ ParameterId["ZoneID"] = "zoneId";
+ // DPI_ZoneZOrder, having type uint
+ ParameterId["ZoneZOrder"] = "zoneZOrder";
+ // DPI_ComponentID, having type uint
+ ParameterId["ComponentID"] = "componentId";
+ // DPI_NonThreadPoolUseCount, having type uint
+ ParameterId["NonThreadPoolUseCount"] = "nonThreadPoolUseCount";
+ // DPI_AddressingIndices, having type uint[]
+ ParameterId["AddressingIndices"] = "addressingIndices";
+ // DPI_AddressingInvalidIndices, having type uint[]
+ ParameterId["AddressingInvalidIndices"] = "addressingInvalidIndices";
+ // DPI_ChildZoneIds, having type uint[]
+ ParameterId["ChildZoneIds"] = "childZoneIds";
+ // DPI_ColorList, having type uint[]
+ ParameterId["ColorList"] = "colorList";
+ // DPI_DuplicateIndices, having type uint[]
+ ParameterId["DuplicateIndices"] = "duplicateIndices";
+ // DPI_FilterAddIndices, having type uint[]
+ ParameterId["FilterAddIndices"] = "filterAddIndices";
+ // DPI_FilterIndices, having type uint[]
+ ParameterId["FilterIndices"] = "filterIndices";
+ // DPI_FilterLevelAdd, having type uint[]
+ ParameterId["FilterLevelAdd"] = "filterLevelAdd";
+ // DPI_FilterLevelRemove, having type uint[]
+ ParameterId["FilterLevelRemove"] = "filterLevelRemove";
+ // DPI_FilterLevels, having type uint[]
+ ParameterId["FilterLevels"] = "filterLevels";
+ // DPI_FilterRemoveIndices, having type uint[]
+ ParameterId["FilterRemoveIndices"] = "filterRemoveIndices";
+ // DPI_FixedValues, having type uint[]
+ ParameterId["FixedValues"] = "fixedValues";
+ // DPI_HierarchyMemberIdList, having type uint[]
+ ParameterId["HierarchyMemberIdList"] = "hierarchyMemberIdList";
+ // DPI_InvalidIndices, having type uint[]
+ ParameterId["InvalidIndices"] = "invalidIndices";
+ // DPI_ItemIndices, having type uint[]
+ ParameterId["ItemIndices"] = "itemIndices";
+ // DPI_LineTupleIDs, having type uint[]
+ ParameterId["LineTupleIDs"] = "lineTupleIds";
+ // DPI_ObjectIDs, having type uint[]
+ ParameterId["ObjectIDs"] = "objectIds";
+ // DPI_PageIndices, having type uint[]
+ ParameterId["PageIndices"] = "pageIndices";
+ // DPI_QRGB, having type uint[]
+ ParameterId["QRGB"] = "qrgbList";
+ // DPI_QRGBColors, having type uint[]
+ ParameterId["QRGBColors"] = "qrgbColors";
+ // DPI_RefLineID, having type uint[]
+ ParameterId["RefLineID"] = "reflineId";
+ // DPI_ShapeIDs, having type uint[]
+ ParameterId["ShapeIDs"] = "shapeIds";
+ // DPI_ShelfSelection, having type uint[]
+ ParameterId["ShelfSelection"] = "shelfSelection";
+ // DPI_StoryPointIDs, having type uint[]
+ ParameterId["StoryPointIDs"] = "storyPointIds";
+ // DPI_TupleIDs, having type uint[]
+ ParameterId["TupleIDs"] = "tupleIds";
+ // DPI_Widths, having type uint[]
+ ParameterId["Widths"] = "widths";
+ // DPI_UintMap, having type Dictionary(of uint32_t)
+ ParameterId["UintMap"] = "uintMap";
+ // DPI_Alpha, having type float
+ ParameterId["Alpha"] = "alpha";
+ // DPI_Angle, having type float
+ ParameterId["Angle"] = "angle";
+ // DPI_BreakPointValue, having type float
+ ParameterId["BreakPointValue"] = "breakPointValue";
+ // DPI_DevicePixelRatio, having type float
+ ParameterId["DevicePixelRatio"] = "devicePixelRatio";
+ // DPI_Distance, having type float
+ ParameterId["Distance"] = "distance";
+ // DPI_FloatX, having type float
+ ParameterId["FloatX"] = "floatX";
+ // DPI_FloatY, having type float
+ ParameterId["FloatY"] = "floatY";
+ // DPI_FogDesaturation, having type float
+ ParameterId["FogDesaturation"] = "fogDesaturation";
+ // DPI_MarkScale, having type float
+ ParameterId["MarkScale"] = "markScale";
+ // DPI_MarkSizeInPixelUnits, having type float
+ ParameterId["MarkSizeInPixelUnits"] = "markSizeInPixelUnits";
+ // DPI_PointSize, having type float
+ ParameterId["PointSize"] = "pointSize";
+ // DPI_StrokeWidth, having type float
+ ParameterId["StrokeWidth"] = "strokeWidth";
+ // DPI_TextRegionOrientation, having type float
+ ParameterId["TextRegionOrientation"] = "orientation";
+ // DPI_TransformAngle, having type float
+ ParameterId["TransformAngle"] = "transformAngle";
+ // DPI_ZoomLevel, having type float
+ ParameterId["ZoomLevel"] = "zoomLevel";
+ // DPI_OldZoomLevel, having type float
+ ParameterId["OldZoomLevel"] = "oldZoomLevel";
+ // DPI_NewZoomLevel, having type float
+ ParameterId["NewZoomLevel"] = "newZoomLevel";
+ // DPI_AspectRatio, having type float
+ ParameterId["AspectRatio"] = "aspectRatio";
+ // DPI_BottomPrintMargin, having type float
+ ParameterId["BottomPrintMargin"] = "bottomPrintMargin";
+ // DPI_EarthRadius, having type float
+ ParameterId["EarthRadius"] = "earthRadius";
+ // DPI_FloatHeight, having type float
+ ParameterId["FloatHeight"] = "floatHeight";
+ // DPI_FloatLeft, having type float
+ ParameterId["FloatLeft"] = "floatLeft";
+ // DPI_FloatRadius, having type float
+ ParameterId["FloatRadius"] = "floatRadius";
+ // DPI_FloatTop, having type float
+ ParameterId["FloatTop"] = "floatTop";
+ // DPI_FloatWidth, having type float
+ ParameterId["FloatWidth"] = "floatWidth";
+ // DPI_LeftPrintMargin, having type float
+ ParameterId["LeftPrintMargin"] = "leftPrintMargin";
+ // DPI_MapCenterLatitude, having type float
+ ParameterId["MapCenterLatitude"] = "mapCenterLatitude";
+ // DPI_MapCenterLongitude, having type float
+ ParameterId["MapCenterLongitude"] = "mapCenterLongitude";
+ // DPI_MapDisplayScale, having type float
+ ParameterId["MapDisplayScale"] = "mapDisplayScale";
+ // DPI_MapMaxStretch, having type float
+ ParameterId["MapMaxStretch"] = "mapMaxStretch";
+ // DPI_MapMaxZoom, having type float
+ ParameterId["MapMaxZoom"] = "mapMaxZoom";
+ // DPI_MapMinShrink, having type float
+ ParameterId["MapMinShrink"] = "mapMinShrink";
+ // DPI_MapMinZoom, having type float
+ ParameterId["MapMinZoom"] = "mapMinZoom";
+ // DPI_MapRequestZoom, having type float
+ ParameterId["MapRequestZoom"] = "mapRequestZoom";
+ // DPI_MapWashout, having type float
+ ParameterId["MapWashout"] = "mapWashout";
+ // DPI_MaxLatitude, having type float
+ ParameterId["MaxLatitude"] = "maxLatitude";
+ // DPI_MaxLongitude, having type float
+ ParameterId["MaxLongitude"] = "maxLongitude";
+ // DPI_MinLatitude, having type float
+ ParameterId["MinLatitude"] = "minLatitude";
+ // DPI_MinLongitude, having type float
+ ParameterId["MinLongitude"] = "minLongitude";
+ // DPI_RightPrintMargin, having type float
+ ParameterId["RightPrintMargin"] = "rightPrintMargin";
+ // DPI_TopPrintMargin, having type float
+ ParameterId["TopPrintMargin"] = "topPrintMargin";
+ // DPI_UIAutomationMaximum, having type float
+ ParameterId["UIAutomationMaximum"] = "uiAutomationMaximum";
+ // DPI_UIAutomationMinimum, having type float
+ ParameterId["UIAutomationMinimum"] = "uiAutomationMinimum";
+ // DPI_UIAutomationOffset, having type float
+ ParameterId["UIAutomationOffset"] = "uiAutomationOffset";
+ // DPI_UnitDivisor, having type float
+ ParameterId["UnitDivisor"] = "unitDivisor";
+ // DPI_UnitTransition, having type float
+ ParameterId["UnitTransition"] = "unitTransition";
+ // DPI_AutomaticDrillIdx, having type float[]
+ ParameterId["AutomaticDrillIdx"] = "automaticDrillIdx";
+ // DPI_DestinationBox, having type float[]
+ ParameterId["DestinationBox"] = "destBox";
+ // DPI_LowerEnd, having type float[]
+ ParameterId["LowerEnd"] = "lowerEnd";
+ // DPI_OppositeAxis, having type float[]
+ ParameterId["OppositeAxis"] = "oppositeAxis";
+ // DPI_PointsF, having type float[]
+ ParameterId["PointsF"] = "pointsF";
+ // DPI_SourceBox, having type float[]
+ ParameterId["SourceBox"] = "sourceBox";
+ // DPI_TransformOffset, having type float[]
+ ParameterId["TransformOffset"] = "transformOffset";
+ // DPI_TransformScale, having type float[]
+ ParameterId["TransformScale"] = "transformScale";
+ // DPI_UpperEnd, having type float[]
+ ParameterId["UpperEnd"] = "upperEnd";
+ // DPI_FloatMap, having type Dictionary(of float)
+ ParameterId["FloatMap"] = "floatMap";
+ // DPI_BGSS, having type double
+ ParameterId["BGSS"] = "betweenGroupSumOfSquares";
+ // DPI_ConfidenceLevel, having type double
+ ParameterId["ConfidenceLevel"] = "confidenceLevel";
+ // DPI_ConfidencePercentage, having type double
+ ParameterId["ConfidencePercentage"] = "confidencePercentage";
+ // DPI_DoubleLeft, having type double
+ ParameterId["DoubleLeft"] = "doubleLeft";
+ // DPI_DoubleTop, having type double
+ ParameterId["DoubleTop"] = "doubleTop";
+ // DPI_DoubleValue, having type double
+ ParameterId["DoubleValue"] = "doubleValue";
+ // DPI_DoubleX, having type double
+ ParameterId["DoubleX"] = "doubleX";
+ // DPI_DoubleY, having type double
+ ParameterId["DoubleY"] = "doubleY";
+ // DPI_FStatistic, having type double
+ ParameterId["FStatistic"] = "fStatistic";
+ // DPI_FilterRangeMax, having type double
+ ParameterId["FilterRangeMax"] = "filterRangeMax";
+ // DPI_FilterRangeMin, having type double
+ ParameterId["FilterRangeMin"] = "filterRangeMin";
+ // DPI_GeographicSearchCandidateScore, having type double
+ ParameterId["GeographicSearchCandidateScore"] = "geographicSearchCandidateScore";
+ // DPI_HeightD, having type double
+ ParameterId["HeightD"] = "height";
+ // DPI_InflectionFraction, having type double
+ ParameterId["InflectionFraction"] = "inflectionFraction";
+ // DPI_InflectionValue, having type double
+ ParameterId["InflectionValue"] = "inflectionValue";
+ // DPI_MSE, having type double
+ ParameterId["MSE"] = "meanSquaredError";
+ // DPI_MSM, having type double
+ ParameterId["MSM"] = "meanSquaredModel";
+ // DPI_MapScaleMarginOfError, having type double
+ ParameterId["MapScaleMarginOfError"] = "mapScaleMarginOfError";
+ // DPI_MarkSize, having type double
+ ParameterId["MarkSize"] = "markSize";
+ // DPI_MaxMarkSize, having type double
+ ParameterId["MaxMarkSize"] = "maxMarkSize";
+ // DPI_MinMarkSize, having type double
+ ParameterId["MinMarkSize"] = "minMarkSize";
+ // DPI_NotchPosition, having type double
+ ParameterId["NotchPosition"] = "notchPosition";
+ // DPI_NotchValue, having type double
+ ParameterId["NotchValue"] = "notchValue";
+ // DPI_PValue, having type double
+ ParameterId["PValue"] = "pValue";
+ // DPI_PercentDimensions, having type double
+ ParameterId["PercentDimensions"] = "percentDimensions";
+ // DPI_PercentGroups, having type double
+ ParameterId["PercentGroups"] = "percentGroups";
+ // DPI_PercentMeasures, having type double
+ ParameterId["PercentMeasures"] = "percentMeasures";
+ // DPI_RSquared, having type double
+ ParameterId["RSquared"] = "rSquared";
+ // DPI_SSE, having type double
+ ParameterId["SSE"] = "sumSquaredError";
+ // DPI_SSM, having type double
+ ParameterId["SSM"] = "sumSquaredModel";
+ // DPI_StandardError, having type double
+ ParameterId["StandardError"] = "standardError";
+ // DPI_TSS, having type double
+ ParameterId["TSS"] = "totalSumOfSquares";
+ // DPI_WGSS, having type double
+ ParameterId["WGSS"] = "withinGroupSumOfSquares";
+ // DPI_WidthD, having type double
+ ParameterId["WidthD"] = "width";
+ // DPI_ZoomFactor, having type double
+ ParameterId["ZoomFactor"] = "zoomFactor";
+ // DPI_CoefficientPValueVec, having type double[]
+ ParameterId["CoefficientPValueVec"] = "coefficientPValueVector";
+ // DPI_CoefficientStdErrVec, having type double[]
+ ParameterId["CoefficientStdErrVec"] = "coefficientStdErrorVector";
+ // DPI_CoefficientTValueVec, having type double[]
+ ParameterId["CoefficientTValueVec"] = "coefficientTValueVector";
+ // DPI_CoefficientVec, having type double[]
+ ParameterId["CoefficientVec"] = "coefficientVector";
+ // DPI_FStatisticVec, having type double[]
+ ParameterId["FStatisticVec"] = "trendLineFStatisticVector";
+ // DPI_Factors, having type double[]
+ ParameterId["Factors"] = "factors";
+ // DPI_MSEVec, having type double[]
+ ParameterId["MSEVec"] = "meanSquaredErrorVector";
+ // DPI_Means, having type double[]
+ ParameterId["Means"] = "means";
+ // DPI_PValueVec, having type double[]
+ ParameterId["PValueVec"] = "pValueVector";
+ // DPI_Percentages, having type double[]
+ ParameterId["Percentages"] = "percentages";
+ // DPI_Percentiles, having type double[]
+ ParameterId["Percentiles"] = "percentiles";
+ // DPI_SSEVec, having type double[]
+ ParameterId["SSEVec"] = "sumSquaredErrorVector";
+ // DPI_StDevs, having type double[]
+ ParameterId["StDevs"] = "stdev";
+ // DPI_UnscaledMeans, having type double[]
+ ParameterId["UnscaledMeans"] = "unscaledMeans";
+ // DPI_DeltaTimeMs, having type long
+ ParameterId["DeltaTimeMs"] = "deltaTimeMs";
+ // DPI_ExtractHistoryRowCount, having type long
+ ParameterId["ExtractHistoryRowCount"] = "extractRowCount";
+ // DPI_ExtractHistoryRowsRemoved, having type long
+ ParameterId["ExtractHistoryRowsRemoved"] = "extractRowsRemoved";
+ // DPI_ExtractsSize, having type long
+ ParameterId["ExtractsSize"] = "extractsSize";
+ // DPI_OldExtractSize, having type long
+ ParameterId["OldExtractSize"] = "oldExtractSize";
+ // DPI_RowsInserted, having type long
+ ParameterId["RowsInserted"] = "rowsInserted";
+ // DPI_SampleSize, having type long
+ ParameterId["SampleSize"] = "sampleSize";
+ // DPI_SampleSpace, having type long
+ ParameterId["SampleSpace"] = "sampleSpace";
+ // DPI_ThreadPoolUseCount, having type long
+ ParameterId["ThreadPoolUseCount"] = "threadPoolUseCount";
+ // DPI_ActionId, having type string
+ ParameterId["ActionId"] = "actionId";
+ // DPI_AxisColumn, having type string
+ ParameterId["AxisColumn"] = "axisColumn";
+ // DPI_BaseColumnName, having type string
+ ParameterId["BaseColumnName"] = "baseColumnName";
+ // DPI_BreakPointFieldName, having type string
+ ParameterId["BreakPointFieldName"] = "breakPointFieldName";
+ // DPI_PairedFieldName, having type string
+ ParameterId["PairedFieldName"] = "pairedFn";
+ // DPI_FieldNameAllowEmpty, having type string
+ ParameterId["FieldNameAllowEmpty"] = "fieldNameAllowEmpty";
+ // DPI_FieldNameDisAgg, having type string
+ ParameterId["FieldNameDisAgg"] = "fnDisagg";
+ // DPI_FieldNameLocal, having type string
+ ParameterId["FieldNameLocal"] = "fieldNameLocal";
+ // DPI_FieldNamePrev, having type string
+ ParameterId["FieldNamePrev"] = "fnPrev";
+ // DPI_FieldNameSource, having type string
+ ParameterId["FieldNameSource"] = "fnSource";
+ // DPI_FieldNameTarget, having type string
+ ParameterId["FieldNameTarget"] = "fnTarget";
+ // DPI_FieldNameX, having type string
+ ParameterId["FieldNameX"] = "fnX";
+ // DPI_FieldNameY, having type string
+ ParameterId["FieldNameY"] = "fnY";
+ // DPI_FieldToSort, having type string
+ ParameterId["FieldToSort"] = "fieldToSort";
+ // DPI_GlobalFieldName, having type string
+ ParameterId["GlobalFieldName"] = "globalFieldName";
+ // DPI_HierarchyName, having type string
+ ParameterId["HierarchyName"] = "hierarchyName";
+ // DPI_InvalidAggFieldName, having type string
+ ParameterId["InvalidAggFieldName"] = "invalidAggFieldName";
+ // DPI_InvalidFieldName, having type string
+ ParameterId["InvalidFieldName"] = "invalidFieldName";
+ // DPI_LimitParameterName, having type string
+ ParameterId["LimitParameterName"] = "limitParameterName";
+ // DPI_LocalBaseColumnName, having type string
+ ParameterId["LocalBaseColumnName"] = "localBaseColumnName";
+ // DPI_MeasureName, having type string
+ ParameterId["MeasureName"] = "measureName";
+ // DPI_NestedCalcField, having type string
+ ParameterId["NestedCalcField"] = "nestedCalcFn";
+ // DPI_ParameterName, having type string
+ ParameterId["ParameterName"] = "parameterName";
+ // DPI_ReferenceParam, having type string
+ ParameterId["ReferenceParam"] = "referenceParam";
+ // DPI_ReplacementFieldName, having type string
+ ParameterId["ReplacementFieldName"] = "replacementFieldName";
+ // DPI_RHSTableAlias, having type string
+ ParameterId["RHSTableAlias"] = "rhsTableAlias";
+ // DPI_SortMeasureName, having type string
+ ParameterId["SortMeasureName"] = "sortMeasureName";
+ // DPI_UniqueName, having type string
+ ParameterId["UniqueName"] = "uniqueName";
+ // DPI_ValueColumn, having type string
+ ParameterId["ValueColumn"] = "valueColumn";
+ // DPI_PairedValueColumn, having type string
+ ParameterId["PairedValueColumn"] = "pairedValueColumn";
+ // DPI_ActionIds, having type string[]
+ ParameterId["ActionIds"] = "actionIds";
+ // DPI_AddressingValues, having type string[]
+ ParameterId["AddressingValues"] = "addressingValues";
+ // DPI_AllColumns, having type string[]
+ ParameterId["AllColumns"] = "allColumns";
+ // DPI_AtTheLevelValues, having type string[]
+ ParameterId["AtTheLevelValues"] = "atTheLevelValues";
+ // DPI_AutomaticDrillFieldName, having type string[]
+ ParameterId["AutomaticDrillFieldName"] = "automaticDrillFieldName";
+ // DPI_BlendingFieldCandidates, having type string[]
+ ParameterId["BlendingFieldCandidates"] = "blendingFieldCandidates";
+ // DPI_Columns, having type string[]
+ ParameterId["Columns"] = "columns";
+ // DPI_CurrentBlendingFields, having type string[]
+ ParameterId["CurrentBlendingFields"] = "currentBlendingFields";
+ // DPI_DimensionsToSort, having type string[]
+ ParameterId["DimensionsToSort"] = "dimensionsToSort";
+ // DPI_DrillFieldVector, having type string[]
+ ParameterId["DrillFieldVector"] = "drillFieldVector";
+ // DPI_EncodingFieldVector, having type string[]
+ ParameterId["EncodingFieldVector"] = "encodingFieldVector";
+ // DPI_FieldVector, having type string[]
+ ParameterId["FieldVector"] = "fieldVector";
+ // DPI_FilterFields, having type string[]
+ ParameterId["FilterFields"] = "filterFields";
+ // DPI_LODFieldVector, having type string[]
+ ParameterId["LODFieldVector"] = "lodFieldVector";
+ // DPI_LegendColumns, having type string[]
+ ParameterId["LegendColumns"] = "legendColumns";
+ // DPI_LegendNames, having type string[]
+ ParameterId["LegendNames"] = "legendNames";
+ // DPI_NodeColumns, having type string[]
+ ParameterId["NodeColumns"] = "nodeColumns";
+ // DPI_PageFields, having type string[]
+ ParameterId["PageFields"] = "pageFields";
+ // DPI_ParamValues, having type string[]
+ ParameterId["ParamValues"] = "paramValues";
+ // DPI_RefLineFields, having type string[]
+ ParameterId["RefLineFields"] = "reflineFields";
+ // DPI_ReferencedColumns, having type string[]
+ ParameterId["ReferencedColumns"] = "referencedColumns";
+ // DPI_RelatedFieldNames, having type string[]
+ ParameterId["RelatedFieldNames"] = "relatedFieldNames";
+ // DPI_RemoveActionResults, having type string[]
+ ParameterId["RemoveActionResults"] = "removeActionResults";
+ // DPI_ResponseVector, having type string[]
+ ParameterId["ResponseVector"] = "responseVector";
+ // DPI_RestartEveryValues, having type string[]
+ ParameterId["RestartEveryValues"] = "restartEveryValues";
+ // DPI_ResultFields, having type string[]
+ ParameterId["ResultFields"] = "resultFields";
+ // DPI_SortFieldValues, having type string[]
+ ParameterId["SortFieldValues"] = "sortFieldValues";
+ // DPI_XFields, having type string[]
+ ParameterId["XFields"] = "xFields";
+ // DPI_YFields, having type string[]
+ ParameterId["YFields"] = "yFields";
+ // DPI_ConnectionFullName, having type string
+ ParameterId["ConnectionFullName"] = "connectionFullName";
+ // DPI_ConnectionFullNames, having type string[]
+ ParameterId["ConnectionFullNames"] = "connectionFullNames";
+ // DPI_BoundDataValue, having type object
+ ParameterId["BoundDataValue"] = "boundDataValue";
+ // DPI_DataValue, having type object
+ ParameterId["DataValue"] = "dataValue";
+ // DPI_DataValueIncrement, having type object
+ ParameterId["DataValueIncrement"] = "dataValueIncrement";
+ // DPI_DataValueLowerX, having type object
+ ParameterId["DataValueLowerX"] = "dataValueLowerX";
+ // DPI_DataValueLowerY, having type object
+ ParameterId["DataValueLowerY"] = "dataValueLowerY";
+ // DPI_DataValueUpperX, having type object
+ ParameterId["DataValueUpperX"] = "dataValueUpperX";
+ // DPI_DataValueUpperY, having type object
+ ParameterId["DataValueUpperY"] = "dataValueUpperY";
+ // DPI_DefaultDataValue, having type object
+ ParameterId["DefaultDataValue"] = "defaultDataValue";
+ // DPI_MaxDataValue, having type object
+ ParameterId["MaxDataValue"] = "maxDataValue";
+ // DPI_MinDataValue, having type object
+ ParameterId["MinDataValue"] = "minDataValue";
+ // DPI_ValidatedDataValue, having type object
+ ParameterId["ValidatedDataValue"] = "validatedDataValue";
+ // DPI_BinSize, having type object
+ ParameterId["BinSize"] = "binSize";
+ // DPI_LimitCount, having type object
+ ParameterId["LimitCount"] = "limitCount";
+ // DPI_DataValueList, having type object[]
+ ParameterId["DataValueList"] = "dataValueList";
+ // DPI_FieldDisplayItem, having type FieldDisplayItemPresModel
+ ParameterId["FieldDisplayItem"] = "fieldDisplayItem";
+ // DPI_FieldDisplayList, having type FieldDisplayItemPresModel[]
+ ParameterId["FieldDisplayList"] = "fieldDisplayList";
+ // DPI_FieldCaptionPair, having type FieldCaptionPairPresModel
+ ParameterId["FieldCaptionPair"] = "fieldCaptionPair";
+ // DPI_FieldCaptionPairs, having type FieldCaptionPairPresModel[]
+ ParameterId["FieldCaptionPairs"] = "fieldCaptionPairs";
+ // DPI_ParameterCaptionPairs, having type FieldCaptionPairPresModel[]
+ ParameterId["ParameterCaptionPairs"] = "parameterCaptionPairs";
+ // DPI_VaryingAttributeDimensions, having type FieldCaptionPairPresModel[]
+ ParameterId["VaryingAttributeDimensions"] = "varyingAttributeDimensions";
+ // DPI_FieldCaptionPairState, having type FieldCaptionPairStatePresModel
+ ParameterId["FieldCaptionPairState"] = "fieldCaptionPairState";
+ // DPI_FieldCaptionPairStates, having type FieldCaptionPairStatePresModel[]
+ ParameterId["FieldCaptionPairStates"] = "fieldCaptionPairStates";
+ // DPI_DatasourceCaptionPair, having type DatasourceCaptionPairPresModel
+ ParameterId["DatasourceCaptionPair"] = "datasourceCaptionPair";
+ // DPI_DatasourceCaptionPairs, having type DatasourceCaptionPairPresModel[]
+ ParameterId["DatasourceCaptionPairs"] = "datasourceCaptionPairs";
+ // DPI_SheetNameInfoPair, having type SheetNameInfoPairPresModel
+ ParameterId["SheetNameInfoPair"] = "sheetNameInfoPair";
+ // DPI_SheetNameInfoPairs, having type SheetNameInfoPairPresModel[]
+ ParameterId["SheetNameInfoPairs"] = "sheetNameInfoPairs";
+ // DPI_BGActiveColor, having type string
+ ParameterId["BGActiveColor"] = "bgActiveColor";
+ // DPI_BGColor, having type string
+ ParameterId["BGColor"] = "bgColor";
+ // DPI_BGRestColor, having type string
+ ParameterId["BGRestColor"] = "bgRestColor";
+ // DPI_BorderColor, having type string
+ ParameterId["BorderColor"] = "borderColor";
+ // DPI_BorderColorBottom, having type string
+ ParameterId["BorderColorBottom"] = "borderColorBottom";
+ // DPI_BorderColorLeft, having type string
+ ParameterId["BorderColorLeft"] = "borderColorLeft";
+ // DPI_BorderColorRight, having type string
+ ParameterId["BorderColorRight"] = "borderColorRight";
+ // DPI_BorderColorTop, having type string
+ ParameterId["BorderColorTop"] = "borderColorTop";
+ // DPI_ButtonObjectBackgroundColor, having type string
+ ParameterId["ButtonObjectBackgroundColor"] = "buttonObjectBackgroundColor";
+ // DPI_Color, having type string
+ ParameterId["Color"] = "color";
+ // DPI_Color1, having type string
+ ParameterId["Color1"] = "color1";
+ // DPI_Color2, having type string
+ ParameterId["Color2"] = "color2";
+ // DPI_DefaultColor, having type string
+ ParameterId["DefaultColor"] = "defaultColor";
+ // DPI_DistanceFontColor, having type string
+ ParameterId["DistanceFontColor"] = "distanceFontColor";
+ // DPI_FillColor, having type string
+ ParameterId["FillColor"] = "fillColor";
+ // DPI_FogColor, having type string
+ ParameterId["FogColor"] = "fogColor";
+ // DPI_HeaderColor, having type string
+ ParameterId["HeaderColor"] = "headerColor";
+ // DPI_HighlightBGColor, having type string
+ ParameterId["HighlightBGColor"] = "highlightBgColor";
+ // DPI_HighlightTextColor, having type string
+ ParameterId["HighlightTextColor"] = "highlightTextColor";
+ // DPI_HoverColor, having type string
+ ParameterId["HoverColor"] = "hoverColor";
+ // DPI_HyperlinkColor, having type string
+ ParameterId["HyperlinkColor"] = "hyperlinkColor";
+ // DPI_MapAttributionFill, having type string
+ ParameterId["MapAttributionFill"] = "mapAttributionFill";
+ // DPI_MapAttributionTextColor, having type string
+ ParameterId["MapAttributionTextColor"] = "mapAttributionTextColor";
+ // DPI_MapPaneBackgroundFill, having type string
+ ParameterId["MapPaneBackgroundFill"] = "mapPaneBackgroundFill";
+ // DPI_MapScaleBorderColor, having type string
+ ParameterId["MapScaleBorderColor"] = "mapScaleBorderColor";
+ // DPI_MapScaleColor, having type string
+ ParameterId["MapScaleColor"] = "mapScaleColor";
+ // DPI_MapWaitTileFill, having type string
+ ParameterId["MapWaitTileFill"] = "mapWaitTileFill";
+ // DPI_MarkColor, having type string
+ ParameterId["MarkColor"] = "markColor";
+ // DPI_NavArrowDisabledColor, having type string
+ ParameterId["NavArrowDisabledColor"] = "navArrowDisabledColor";
+ // DPI_NavArrowHoverColor, having type string
+ ParameterId["NavArrowHoverColor"] = "navArrowHoverColor";
+ // DPI_NavArrowIdleColor, having type string
+ ParameterId["NavArrowIdleColor"] = "navArrowIdleColor";
+ // DPI_NavArrowPressedColor, having type string
+ ParameterId["NavArrowPressedColor"] = "navArrowPressedColor";
+ // DPI_PaneColor, having type string
+ ParameterId["PaneColor"] = "paneColor";
+ // DPI_PressColor, having type string
+ ParameterId["PressColor"] = "pressColor";
+ // DPI_ResizeBorderColor, having type string
+ ParameterId["ResizeBorderColor"] = "resizeBorderColor";
+ // DPI_SelectBGColor, having type string
+ ParameterId["SelectBGColor"] = "selectBgColor";
+ // DPI_SelectionTextColor, having type string
+ ParameterId["SelectionTextColor"] = "selectionTextColor";
+ // DPI_SwatchBackgroundColor, having type string
+ ParameterId["SwatchBackgroundColor"] = "swatchBgColor";
+ // DPI_SwatchBorderColor, having type string
+ ParameterId["SwatchBorderColor"] = "swatchBorderColor";
+ // DPI_TabColor, having type string
+ ParameterId["TabColor"] = "tabColor";
+ // DPI_Colors, having type string[]
+ ParameterId["Colors"] = "colors";
+ // DPI_ColorMap, having type Dictionary(of string)
+ ParameterId["ColorMap"] = "colorMap";
+ // DPI_Pixmap, having type string
+ ParameterId["Pixmap"] = "pixmap";
+ // DPI_Image, having type string
+ ParameterId["Image"] = "image";
+ // DPI_OverlayImage, having type string
+ ParameterId["OverlayImage"] = "overlayImage";
+ // DPI_IconImage, having type string
+ ParameterId["IconImage"] = "iconImage";
+ // DPI_ImageList, having type string[]
+ ParameterId["ImageList"] = "imageList";
+ // DPI_ImageMap, having type Dictionary(of string)
+ ParameterId["ImageMap"] = "imageMap";
+ // DPI_UUID, having type object
+ ParameterId["UUID"] = "uuid";
+ // DPI_DashboardObjectHandle, having type object
+ ParameterId["DashboardObjectHandle"] = "dashboardObjectHandle";
+ // DPI_DashboardObjectNewStateHandle, having type object
+ ParameterId["DashboardObjectNewStateHandle"] = "dashboardObjectNewStateHandle";
+ // DPI_DashboardObjectCurrentStateHandle, having type object
+ ParameterId["DashboardObjectCurrentStateHandle"] = "dashboardObjectCurrentStateHandle";
+ // DPI_Nanoseconds, having type object
+ ParameterId["Nanoseconds"] = "nanoseconds";
+ // DPI_Microseconds, having type object
+ ParameterId["Microseconds"] = "microseconds";
+ // DPI_Milliseconds, having type object
+ ParameterId["Milliseconds"] = "milliseconds";
+ // DPI_TimeoutS, having type object
+ ParameterId["TimeoutS"] = "timeoutS";
+ // DPI_Minutes, having type object
+ ParameterId["Minutes"] = "minutes";
+ // DPI_Hours, having type object
+ ParameterId["Hours"] = "hours";
+ // DPI_CardType, having type CardType
+ ParameterId["CardType"] = "cardType";
+ // DPI_DocParameterID, having type string
+ ParameterId["DocParameterID"] = "type";
+ // DPI_ArgumentParam, having type string
+ ParameterId["ArgumentParam"] = "argumentParam";
+ // DPI_ArgumentParams, having type string[]
+ ParameterId["ArgumentParams"] = "argumentParams";
+ // DPI_ActionType, having type ActionType
+ ParameterId["ActionType"] = "actionType";
+ // DPI_AnnotateEnum, having type AnnotateEnum
+ ParameterId["AnnotateEnum"] = "annotateEnum";
+ // DPI_JoinType, having type SQLJoinType
+ ParameterId["JoinType"] = "joinType";
+ // DPI_SupportedJoinTypes, having type SQLJoinType[]
+ ParameterId["SupportedJoinTypes"] = "supportedJoinTypes";
+ // DPI_Rounding, having type Rounding
+ ParameterId["Rounding"] = "roundingEnum";
+ // DPI_BodyType, having type BodyType
+ ParameterId["BodyType"] = "bodyType";
+ // DPI_LineEnd, having type LineEnd
+ ParameterId["LineEnd"] = "lineEndEnum";
+ // DPI_LineEndSize, having type LineEndSize
+ ParameterId["LineEndSize"] = "lineEndSizeEnum";
+ // DPI_BrushSpecialFields, having type BrushSpecialFields
+ ParameterId["BrushSpecialFields"] = "specialFields";
+ // DPI_CellSizeChange, having type CellSizeChange
+ ParameterId["CellSizeChange"] = "cellSizeChange";
+ // DPI_CellType, having type CellType
+ ParameterId["CellType"] = "cellType";
+ // DPI_ConnectionAttemptResult, having type ConnectionAttemptResult
+ ParameterId["ConnectionAttemptResult"] = "connectionAttemptResult";
+ // DPI_ConnectionErrorStage, having type ConnectionErrorStage
+ ParameterId["ConnectionErrorStage"] = "connectionErrorStage";
+ // DPI_ConnectionErrorType, having type ConnectionErrorType
+ ParameterId["ConnectionErrorType"] = "connectionErrorType";
+ // DPI_DataServerConnectionResult, having type DataServerConnectionResult
+ ParameterId["DataServerConnectionResult"] = "dsConnectionResult";
+ // DPI_DropWhen, having type DropWhen
+ ParameterId["DropWhen"] = "dropWhen";
+ // DPI_DropType, having type DropFieldResult
+ ParameterId["DropType"] = "dropType";
+ // DPI_EncodingType, having type EncodingType
+ ParameterId["EncodingType"] = "encodingType";
+ // DPI_DropdownEncodingType, having type EncodingType
+ ParameterId["DropdownEncodingType"] = "dropdownEncodingType";
+ // DPI_EncodingTypes, having type EncodingType[]
+ ParameterId["EncodingTypes"] = "encodingTypes";
+ // DPI_FieldOrderType, having type FieldOrderType
+ ParameterId["FieldOrderType"] = "fieldOrderType";
+ // DPI_FilterIconType, having type FilterIconType
+ ParameterId["FilterIconType"] = "filterIconType";
+ // DPI_FilterIconTypes, having type FilterIconType[]
+ ParameterId["FilterIconTypes"] = "filterIconTypes";
+ // DPI_FloatingToolbarVis, having type FloatingToolbarVisibility
+ ParameterId["FloatingToolbarVis"] = "toolbarVisibility";
+ // DPI_FolderRole, having type FolderRole
+ ParameterId["FolderRole"] = "folderRole";
+ // DPI_LegendType, having type Enum
+ ParameterId["LegendType"] = "legendType";
+ // DPI_ForecastModelType, having type ForecastModelType
+ ParameterId["ForecastModelType"] = "forecastModelType";
+ // DPI_ForecastTrendType, having type ForecastComponentType
+ ParameterId["ForecastTrendType"] = "forecastTrendType";
+ // DPI_ForecastSeasonType, having type ForecastComponentType
+ ParameterId["ForecastSeasonType"] = "forecastSeasonType";
+ // DPI_ForecastRangeType, having type ForecastRangeType
+ ParameterId["ForecastRangeType"] = "forecastRangeType";
+ // DPI_ForecastStatus, having type ForecastStatus
+ ParameterId["ForecastStatus"] = "forecastStatus";
+ // DPI_SheetForecastStatus, having type ForecastStatus
+ ParameterId["SheetForecastStatus"] = "sheetForecastStatus";
+ // DPI_PDForecastStatusList, having type ForecastStatus[]
+ ParameterId["PDForecastStatusList"] = "paneDescriptorForecastStatusList";
+ // DPI_ForecastColumnType, having type ForecastColumnType
+ ParameterId["ForecastColumnType"] = "forecastColumnType";
+ // DPI_DataScaling, having type DataScaling
+ ParameterId["DataScaling"] = "dataScaling";
+ // DPI_GetFilterItemsJsonResponse, having type GetJsonResponseEnum
+ ParameterId["GetFilterItemsJsonResponse"] = "getFilterItemsJsonResponse";
+ // DPI_FilterSearchJsonResponse, having type GetJsonResponseEnum
+ ParameterId["FilterSearchJsonResponse"] = "filterSearchJsonResponse";
+ // DPI_FilterSearchWithIndexJsonResponse, having type GetJsonResponseEnum
+ ParameterId["FilterSearchWithIndexJsonResponse"] = "filterSearchWithIndexJsonResponse";
+ // DPI_FilterShowChildrenJsonResponse, having type GetJsonResponseEnum
+ ParameterId["FilterShowChildrenJsonResponse"] = "filterShowChildrenJsonResponse";
+ // DPI_HAlignment, having type LabelHAlignment
+ ParameterId["HAlignment"] = "horizontalLabelAlignment";
+ // DPI_JoinValidationError, having type JoinValidationError
+ ParameterId["JoinValidationError"] = "joinValidationError";
+ // DPI_NameConflictResolution, having type NameConflictResolution
+ ParameterId["NameConflictResolution"] = "nameConflictResolution";
+ // DPI_LabelDir, having type TextOrient
+ ParameterId["LabelDir"] = "labelDirection";
+ // DPI_LabelAlign, having type TextAlign
+ ParameterId["LabelAlign"] = "labelAlignment";
+ // DPI_LabelWrap, having type TextWrapMode
+ ParameterId["LabelWrap"] = "labelWrap";
+ // DPI_WrapMode, having type TextWrapMode
+ ParameterId["WrapMode"] = "wrapMode";
+ // DPI_MarkEnum, having type MarkEnum
+ ParameterId["MarkEnum"] = "markEnum";
+ // DPI_PercentMode, having type PercentMode
+ ParameterId["PercentMode"] = "percentageMode";
+ // DPI_ReferenceOptionsSet, having type ReferenceOptionsSet
+ ParameterId["ReferenceOptionsSet"] = "referenceOptionsSet";
+ // DPI_ReferenceOptionsSets, having type ReferenceOptionsSet[]
+ ParameterId["ReferenceOptionsSets"] = "referenceOptionsSets";
+ // DPI_RankType, having type RankType
+ ParameterId["RankType"] = "rankType";
+ // DPI_RankTypeValues, having type RankType[]
+ ParameterId["RankTypeValues"] = "rankTypeValues";
+ // DPI_SpecialValuesMode, having type SpecialValuesMode
+ ParameterId["SpecialValuesMode"] = "specialValuesMode";
+ // DPI_VAlignment, having type LabelVAlignment
+ ParameterId["VAlignment"] = "verticalLabelAlignment";
+ // DPI_ColorMode, having type ColorMode
+ ParameterId["ColorMode"] = "colorMode";
+ // DPI_MarkLabelsMode, having type MarkLabelsMode
+ ParameterId["MarkLabelsMode"] = "markLabelsMode";
+ // DPI_MarkLabelsScope, having type MarkLabelsScope
+ ParameterId["MarkLabelsScope"] = "markLabelsScope";
+ // DPI_MarkLabelsVisibility, having type MarkLabelsVisibility
+ ParameterId["MarkLabelsVisibility"] = "markLabelsVisibility";
+ // DPI_PrimitiveType, having type PrimitiveType
+ ParameterId["PrimitiveType"] = "primitiveType";
+ // DPI_ActualPrimitiveType, having type PrimitiveType
+ ParameterId["ActualPrimitiveType"] = "actualPrimitiveType";
+ // DPI_PrimitiveTypes, having type PrimitiveType[]
+ ParameterId["PrimitiveTypes"] = "primitiveTypes";
+ // DPI_ShapeType, having type ShapeType
+ ParameterId["ShapeType"] = "shapeType";
+ // DPI_SortType, having type SortType
+ ParameterId["SortType"] = "sortBy";
+ // DPI_SortEnd, having type SortEnd
+ ParameterId["SortEnd"] = "sortEnd";
+ // DPI_StackingMode, having type StackingMode
+ ParameterId["StackingMode"] = "stackingMode";
+ // DPI_StyleTheme, having type StyleTheme
+ ParameterId["StyleTheme"] = "styleTheme";
+ // DPI_TrendLineFitType, having type TrendLineFitType
+ ParameterId["TrendLineFitType"] = "fitType";
+ // DPI_UpdateScope, having type UpdateScope
+ ParameterId["UpdateScope"] = "updateScope";
+ // DPI_ParameterCtrlDisplayMode, having type DisplayMode
+ ParameterId["ParameterCtrlDisplayMode"] = "paramDisplayMode";
+ // DPI_ParameterCtrlDisplayFlag, having type ParameterCtrlDisplayFlag
+ ParameterId["ParameterCtrlDisplayFlag"] = "paramDisplayFlag";
+ // DPI_Included, having type QuantitativeIncludedValues
+ ParameterId["Included"] = "included";
+ // DPI_CommandsType, having type CommandsType
+ ParameterId["CommandsType"] = "commandsType";
+ // DPI_ParameterDomainType, having type DomainType
+ ParameterId["ParameterDomainType"] = "parameterDomainType";
+ // DPI_FilterDomainType, having type DomainType
+ ParameterId["FilterDomainType"] = "filterDomainType";
+ // DPI_FilterDomains, having type DomainType[]
+ ParameterId["FilterDomains"] = "filterDomains";
+ // DPI_CategoricalFilterType, having type CategoricalFilterType
+ ParameterId["CategoricalFilterType"] = "categoricalFilterType";
+ // DPI_FilterPatternType, having type PatternType
+ ParameterId["FilterPatternType"] = "filterPatternType";
+ // DPI_FilterConditionType, having type ConditionType
+ ParameterId["FilterConditionType"] = "filterConditionType";
+ // DPI_FiltersPresetType, having type PresetType
+ ParameterId["FiltersPresetType"] = "filtersPresetType";
+ // DPI_FiltersRangeType, having type RangeType
+ ParameterId["FiltersRangeType"] = "filtersRangeType";
+ // DPI_DateRangeType, having type RelativeDateRangeType
+ ParameterId["DateRangeType"] = "dateRangeType";
+ // DPI_PageFlag, having type PageNavFlags
+ ParameterId["PageFlag"] = "pageFlag";
+ // DPI_MarksToTrail, having type MarksToTrail
+ ParameterId["MarksToTrail"] = "marksToTrail";
+ // DPI_TrailType, having type TrailType
+ ParameterId["TrailType"] = "trailType";
+ // DPI_ChangePageDirection, having type ChangePageType
+ ParameterId["ChangePageDirection"] = "changeTo";
+ // DPI_AnimationControl, having type PageAnimationControl
+ ParameterId["AnimationControl"] = "animationControl";
+ // DPI_LinePattern, having type LinePattern
+ ParameterId["LinePattern"] = "linePattern";
+ // DPI_LineCap, having type LineCap
+ ParameterId["LineCap"] = "lineCap";
+ // DPI_LineJoin, having type LineJoin
+ ParameterId["LineJoin"] = "lineJoin";
+ // DPI_LineAlignment, having type LineAlignment
+ ParameterId["LineAlignment"] = "lineAlignment";
+ // DPI_FillMode, having type FillMode
+ ParameterId["FillMode"] = "fillMode";
+ // DPI_CursorShape, having type CursorShape
+ ParameterId["CursorShape"] = "cursorShape";
+ // DPI_ShowMeCommandType, having type ShowMeCommandType
+ ParameterId["ShowMeCommandType"] = "showMeCommandType";
+ // DPI_ShelfIconType, having type ShelfIconType
+ ParameterId["ShelfIconType"] = "shelfIconType";
+ // DPI_ShelfIconTypes, having type ShelfIconType[]
+ ParameterId["ShelfIconTypes"] = "shelfIconTypes";
+ // DPI_ItemDrawStyle, having type ItemDrawStyle
+ ParameterId["ItemDrawStyle"] = "itemDrawStyle";
+ // DPI_ScaleMode, having type ScaleMode
+ ParameterId["ScaleMode"] = "pageScaleMode";
+ // DPI_PageOrientationOption, having type PageOrientation
+ ParameterId["PageOrientationOption"] = "pageOrientationOption";
+ // DPI_PageSizeOption, having type PageSizeOption
+ ParameterId["PageSizeOption"] = "pageSizeOption";
+ // DPI_SortRegionType, having type SortRegionType
+ ParameterId["SortRegionType"] = "sortRegion";
+ // DPI_LegendItemLayout, having type LegendItemLayout
+ ParameterId["LegendItemLayout"] = "legendLayout";
+ // DPI_LegendItemOrder, having type LegendItemOrder
+ ParameterId["LegendItemOrder"] = "legendOrder";
+ // DPI_VizImageRegion, having type VizImageRegion
+ ParameterId["VizImageRegion"] = "r";
+ // DPI_LegacyMenuName, having type LegacyMenuName
+ ParameterId["LegacyMenuName"] = "legacyMenuName";
+ // DPI_LegacyMenuState, having type LegacyMenuState
+ ParameterId["LegacyMenuState"] = "legacyMenuState";
+ // DPI_LegacyMenuStateList, having type LegacyMenuState[]
+ ParameterId["LegacyMenuStateList"] = "legacyMenuStates";
+ // DPI_DimensionType, having type DimensionType
+ ParameterId["DimensionType"] = "dimensionType";
+ // DPI_LayoutType, having type LayoutType
+ ParameterId["LayoutType"] = "layoutType";
+ // DPI_ShelfType, having type ShelfType
+ ParameterId["ShelfType"] = "shelfType";
+ // DPI_LastSelectionShelf, having type ShelfType
+ ParameterId["LastSelectionShelf"] = "lastShelf";
+ // DPI_SchemaViewerDataSourceType, having type SchemaViewerDataSourceType
+ ParameterId["SchemaViewerDataSourceType"] = "schemaDatasourceType";
+ // DPI_SchemaItemType, having type SchemaItemType
+ ParameterId["SchemaItemType"] = "schemaItemType";
+ // DPI_HSMSelectionMode, having type SelectionMode
+ ParameterId["HSMSelectionMode"] = "hsmSelectionMode";
+ // DPI_HSMDefaultMemberType, having type DefaultMemberType
+ ParameterId["HSMDefaultMemberType"] = "hsmDefaultMemberType";
+ // DPI_HSMNotificationType, having type NotificationType
+ ParameterId["HSMNotificationType"] = "hsmNotificationType";
+ // DPI_HSMSelectionRequestType, having type SelectionRequestType
+ ParameterId["HSMSelectionRequestType"] = "hsmSelectionRequestType";
+ // DPI_HSMMemberSelectRequestType, having type MemberSelectRequestType
+ ParameterId["HSMMemberSelectRequestType"] = "hsmMemberSelectRequestType";
+ // DPI_PivotStrategy, having type FieldPivotStrategy
+ ParameterId["PivotStrategy"] = "pivotStrategy";
+ // DPI_AliasType, having type AliasType
+ ParameterId["AliasType"] = "aliasType";
+ // DPI_DSODimensionSortOrder, having type DataSourceOrder
+ ParameterId["DSODimensionSortOrder"] = "dsoDimensionSortOrder";
+ // DPI_DSOMeasureSortOrder, having type DataSourceOrder
+ ParameterId["DSOMeasureSortOrder"] = "dsoMeasureSortOrder";
+ // DPI_DSOSortOrder, having type DataSourceOrder
+ ParameterId["DSOSortOrder"] = "dsoSortOrder";
+ // DPI_VTAggType, having type VTAggType
+ ParameterId["VTAggType"] = "vtAggregation";
+ // DPI_FieldTypeIconSet, having type FieldTypeIconSet
+ ParameterId["FieldTypeIconSet"] = "fieldIconSet";
+ // DPI_VisualPart, having type VisualPart
+ ParameterId["VisualPart"] = "visualPart";
+ // DPI_DefaultMapToolEnum, having type MapToolSelection
+ ParameterId["DefaultMapToolEnum"] = "defaultMapToolEnum";
+ // DPI_DefaultMapUnitEnum, having type MapUnitSelectionEnum
+ ParameterId["DefaultMapUnitEnum"] = "defaultMapUnitEnum";
+ // DPI_SceneModelDetail, having type Detail
+ ParameterId["SceneModelDetail"] = "sceneModelDetailEnum";
+ // DPI_SceneModelHitType, having type HitType
+ ParameterId["SceneModelHitType"] = "sceneModelHitType";
+ // DPI_HitTestStyle, having type HitTestStyle
+ ParameterId["HitTestStyle"] = "hitTestStyle";
+ // DPI_MarkState, having type MarkState
+ ParameterId["MarkState"] = "markState";
+ // DPI_SheetType, having type SheetType
+ ParameterId["SheetType"] = "sheetType";
+ // DPI_DragSource, having type DragDropType
+ ParameterId["DragSource"] = "dragSource";
+ // DPI_DropTarget, having type DragDropType
+ ParameterId["DropTarget"] = "dropTarget";
+ // DPI_ShelfDropAction, having type ShelfDropAction
+ ParameterId["ShelfDropAction"] = "shelfDropAction";
+ // DPI_ShelfDropContext, having type ShelfDropContext
+ ParameterId["ShelfDropContext"] = "shelfDropContext";
+ // DPI_FilterSelectionTracking, having type SelectionTracking
+ ParameterId["FilterSelectionTracking"] = "filterSelectionTracking";
+ // DPI_FilterUpdateType, having type FilterUpdateType
+ ParameterId["FilterUpdateType"] = "filterUpdateType";
+ // DPI_FilterUpdateQualifierType, having type FilterUpdateQualifierType
+ ParameterId["FilterUpdateQualifierType"] = "filterUpdateQualifierType";
+ // DPI_ParameterError, having type ParameterError
+ ParameterId["ParameterError"] = "parameterError";
+ // DPI_SelectionType, having type SelectionType
+ ParameterId["SelectionType"] = "selectionType";
+ // DPI_SelectionUpdateType, having type SelectionUpdateType
+ ParameterId["SelectionUpdateType"] = "selectionUpdateType";
+ // DPI_SelectOptions, having type SelectOptions
+ ParameterId["SelectOptions"] = "selectOptions";
+ // DPI_WhitespaceSelectionBehavior, having type WhitespaceSelectionBehavior
+ ParameterId["WhitespaceSelectionBehavior"] = "whitespaceSelectionBehavior";
+ // DPI_AxisOrientation, having type Orientation
+ ParameterId["AxisOrientation"] = "axisOrientation";
+ // DPI_DecimalMode, having type DecimalMode
+ ParameterId["DecimalMode"] = "decimalMode";
+ // DPI_ActivationMethod, having type ActivationMethod
+ ParameterId["ActivationMethod"] = "activation";
+ // DPI_SourceType, having type SourceType
+ ParameterId["SourceType"] = "sourceType";
+ // DPI_OnClear, having type OnClear
+ ParameterId["OnClear"] = "onClear";
+ // DPI_MergeOrSplit, having type MergeOrSplit
+ ParameterId["MergeOrSplit"] = "mergeOrSplit";
+ // DPI_FilterMode, having type FilterMode
+ ParameterId["FilterMode"] = "filterMode";
+ // DPI_FilterType, having type FilterType
+ ParameterId["FilterType"] = "filterType";
+ // DPI_ZoneType, having type ZoneType
+ ParameterId["ZoneType"] = "zoneType";
+ // DPI_ZoneLayoutType, having type ZoneLayoutType
+ ParameterId["ZoneLayoutType"] = "zoneLayoutType";
+ // DPI_QuickTableCalcType, having type QuickTableCalcCommandType
+ ParameterId["QuickTableCalcType"] = "quickTableCalcType";
+ // DPI_TableCalcCommandType, having type TableCalcCommandType
+ ParameterId["TableCalcCommandType"] = "tableCalcCommandType";
+ // DPI_TableCalcAddressType, having type TableCalcAddressCommandType
+ ParameterId["TableCalcAddressType"] = "tableCalcAddressType";
+ // DPI_MarkLayoutPrimitive, having type Primitive
+ ParameterId["MarkLayoutPrimitive"] = "markLayoutPrimitive";
+ // DPI_MarkLayoutVizType, having type VizType
+ ParameterId["MarkLayoutVizType"] = "markLayoutVizType";
+ // DPI_MarkAlignment, having type MarkAlignment
+ ParameterId["MarkAlignment"] = "markAlignment";
+ // DPI_ModifyZoneZOrderType, having type ModifyZoneZOrderCommandType
+ ParameterId["ModifyZoneZOrderType"] = "modifyZoneZOrderType";
+ // DPI_TextRegionHAlign, having type TextRegionHAlign
+ ParameterId["TextRegionHAlign"] = "halign";
+ // DPI_TextRegionVAlign, having type TextRegionVAlign
+ ParameterId["TextRegionVAlign"] = "valign";
+ // DPI_PathElement, having type PathElement
+ ParameterId["PathElement"] = "pathElement";
+ // DPI_PathElements, having type PathElement[]
+ ParameterId["PathElements"] = "pathElements";
+ // DPI_RenderMode, having type RenderMode
+ ParameterId["RenderMode"] = "renderMode";
+ // DPI_FontStyle, having type TableauFontStyle
+ ParameterId["FontStyle"] = "fontStyle";
+ // DPI_FontWeight, having type FontWeight
+ ParameterId["FontWeight"] = "fontWeight";
+ // DPI_TextDecoration, having type TextDecoration
+ ParameterId["TextDecoration"] = "textDecoration";
+ // DPI_BorderStyle, having type BorderStyle
+ ParameterId["BorderStyle"] = "borderStyle";
+ // DPI_BorderStyleTop, having type BorderStyle
+ ParameterId["BorderStyleTop"] = "borderStyleTop";
+ // DPI_BorderStyleRight, having type BorderStyle
+ ParameterId["BorderStyleRight"] = "borderStyleRight";
+ // DPI_BorderStyleBottom, having type BorderStyle
+ ParameterId["BorderStyleBottom"] = "borderStyleBottom";
+ // DPI_BorderStyleLeft, having type BorderStyle
+ ParameterId["BorderStyleLeft"] = "borderStyleLeft";
+ // DPI_FloatingToolbarVisibility, having type FloatingToolbarVisibility
+ ParameterId["FloatingToolbarVisibility"] = "floatingToolbarVisibility";
+ // DPI_GeoSearchVisibility, having type GeoSearchVisibility
+ ParameterId["GeoSearchVisibility"] = "geographicSearchVisibility";
+ // DPI_MapScaleVisibility, having type MapScaleVisibility
+ ParameterId["MapScaleVisibility"] = "mapScaleVisibility";
+ // DPI_VizNavigationSetting, having type VizNavigationSetting
+ ParameterId["VizNavigationSetting"] = "vizNavigationSetting";
+ // DPI_AutoDrillVisibility, having type AutoDrillVisibility
+ ParameterId["AutoDrillVisibility"] = "autoDrillVisibility";
+ // DPI_ClientUIMetricType, having type ClientUIMetricType
+ ParameterId["ClientUIMetricType"] = "clientUiMetricType";
+ // DPI_SheetScrollDirection, having type SheetScrollDirection
+ ParameterId["SheetScrollDirection"] = "sheetScrollDirection";
+ // DPI_SizeMode, having type SizeMode
+ ParameterId["SizeMode"] = "sizeMode";
+ // DPI_PerspectiveAggregate, having type PerspectiveAggregate
+ ParameterId["PerspectiveAggregate"] = "perspectiveAggregation";
+ // DPI_StyleAttribute, having type StyleAttribute
+ ParameterId["StyleAttribute"] = "styleAttribute";
+ // DPI_StyleAttributes, having type StyleAttribute[]
+ ParameterId["StyleAttributes"] = "styleAttributes";
+ // DPI_StyleElement, having type StyleElement
+ ParameterId["StyleElement"] = "styleElement";
+ // DPI_StyleDataClass, having type StyleDataClass
+ ParameterId["StyleDataClass"] = "styleClass";
+ // DPI_StyleFieldScope, having type StyleFieldScope
+ ParameterId["StyleFieldScope"] = "styleScope";
+ // DPI_FormatControlType, having type FormatControlType
+ ParameterId["FormatControlType"] = "formatType";
+ // DPI_LineInterpolationMode, having type LineInterpolationMode
+ ParameterId["LineInterpolationMode"] = "lineInterpolationMode";
+ // DPI_LineMarkerPosition, having type LineMarkerPosition
+ ParameterId["LineMarkerPosition"] = "lineMarkerPosition";
+ // DPI_MarkersMode, having type MarkMarkersMode
+ ParameterId["MarkersMode"] = "markersMode";
+ // DPI_AppConfigEnum, having type AppConfigEnum
+ ParameterId["AppConfigEnum"] = "appConfigEnum";
+ // DPI_ColorPaletteType, having type ColorPaletteType
+ ParameterId["ColorPaletteType"] = "colorPaletteType";
+ // DPI_ExtractType, having type ExtractType
+ ParameterId["ExtractType"] = "extractType";
+ // DPI_ActivityDisposition, having type ActivityDisposition
+ ParameterId["ActivityDisposition"] = "activityDisposition";
+ // DPI_ActivityResult, having type ActivityResult
+ ParameterId["ActivityResult"] = "activityResult";
+ // DPI_TooltipMode, having type TooltipMode
+ ParameterId["TooltipMode"] = "tooltipMode";
+ // DPI_RuntimeOutput, having type RuntimeOutput
+ ParameterId["RuntimeOutput"] = "runtimeOutput";
+ // DPI_AnalyticsObjectType, having type AnalyticsObjectType
+ ParameterId["AnalyticsObjectType"] = "analyticsObjectType";
+ // DPI_UIAutomationStatus, having type UIAutomationCommandStatus
+ ParameterId["UIAutomationStatus"] = "uiAutomationStatus";
+ // DPI_TableViewDataType, having type TableViewDataType
+ ParameterId["TableViewDataType"] = "tableViewerDataType";
+ // DPI_UnitsFormat, having type UnitsFormatEnum
+ ParameterId["UnitsFormat"] = "unitsFormat";
+ // DPI_FilterLimitType, having type LimitType
+ ParameterId["FilterLimitType"] = "filterLimitType";
+ // DPI_DistributionSelectedType, having type DistributionType
+ ParameterId["DistributionSelectedType"] = "distributionSelectedType";
+ // DPI_DistributionType, having type DistributionType
+ ParameterId["DistributionType"] = "distributionType";
+ // DPI_TranslatedDistributionType, having type TranslatedDistributionTypePresModel
+ ParameterId["TranslatedDistributionType"] = "translatedDistributionType";
+ // DPI_TranslatedDistributionTypes, having type TranslatedDistributionTypePresModel[]
+ ParameterId["TranslatedDistributionTypes"] = "translatedDistributionTypes";
+ // DPI_RefLineFormulaGroup, having type FormulaGroup
+ ParameterId["RefLineFormulaGroup"] = "reflineFormulaGroup";
+ // DPI_ReferenceLineScopeType, having type ScopeType
+ ParameterId["ReferenceLineScopeType"] = "referenceLineScopeType";
+ // DPI_StDevType, having type StDevType
+ ParameterId["StDevType"] = "stdevType";
+ // DPI_ShowBounds, having type ShowBounds
+ ParameterId["ShowBounds"] = "showBounds";
+ // DPI_BoxplotWhiskerType, having type BoxplotWhiskerType
+ ParameterId["BoxplotWhiskerType"] = "boxplotWhiskerType";
+ // DPI_ReferenceLineLabelType, having type LabelType
+ ParameterId["ReferenceLineLabelType"] = "referenceLineLabelType";
+ // DPI_PairedReferenceLineLabelType, having type LabelType
+ ParameterId["PairedReferenceLineLabelType"] = "pairedReferenceLineLabelType";
+ // DPI_ConfidenceIntervalSelectedState, having type ConfidenceIntervalState
+ ParameterId["ConfidenceIntervalSelectedState"] = "confidenceIntervalSelectedState";
+ // DPI_ConfidenceIntervalState, having type ConfidenceIntervalState
+ ParameterId["ConfidenceIntervalState"] = "confidenceIntervalState";
+ // DPI_TranslatedLabelType, having type TranslatedLabelTypePresModel
+ ParameterId["TranslatedLabelType"] = "translatedLabelType";
+ // DPI_ReferenceLineValidLabelTypes, having type TranslatedLabelTypePresModel[]
+ ParameterId["ReferenceLineValidLabelTypes"] = "validReferenceLineLabelTypes";
+ // DPI_ReferenceLineFormulaType, having type FormulaType
+ ParameterId["ReferenceLineFormulaType"] = "referenceLineFormulaType";
+ // DPI_PairedReferenceLineFormulaType, having type FormulaType
+ ParameterId["PairedReferenceLineFormulaType"] = "pairedReferenceLineFormulaType";
+ // DPI_TranslatedFormulaType, having type TranslatedFormulaTypePresModel
+ ParameterId["TranslatedFormulaType"] = "translatedFormulaType";
+ // DPI_ReferenceLineValidFormulaTypes, having type TranslatedFormulaTypePresModel[]
+ ParameterId["ReferenceLineValidFormulaTypes"] = "validReferenceLineFormulaTypes";
+ // DPI_ReferenceLineValidPairedFormulaTypes, having type TranslatedFormulaTypePresModel[]
+ ParameterId["ReferenceLineValidPairedFormulaTypes"] = "validReferenceLinePairedFormulaTypes";
+ // DPI_TranslatedConfidenceIntervalState, having type TranslatedConfidenceIntervalStatePresModel
+ ParameterId["TranslatedConfidenceIntervalState"] = "translatedConfidenceIntervalState";
+ // DPI_TranslatedConfidenceIntervalStates, having type TranslatedConfidenceIntervalStatePresModel[]
+ ParameterId["TranslatedConfidenceIntervalStates"] = "translatedConfidenceIntervalStates";
+ // DPI_TranslatedStDevType, having type TranslatedStDevTypePresModel
+ ParameterId["TranslatedStDevType"] = "translatedStdevType";
+ // DPI_TranslatedStDevTypes, having type TranslatedStDevTypePresModel[]
+ ParameterId["TranslatedStDevTypes"] = "translatedStdevTypes";
+ // DPI_ReferenceLineLODCalcType, having type LODCalcType
+ ParameterId["ReferenceLineLODCalcType"] = "referenceLineLodCalcType";
+ // DPI_ValueDomainType, having type ValueDomainType
+ ParameterId["ValueDomainType"] = "valueDomainType";
+ // DPI_ValueDomainTypes, having type ValueDomainType[]
+ ParameterId["ValueDomainTypes"] = "valueDomainTypes";
+ // DPI_OperationType, having type OperationType
+ ParameterId["OperationType"] = "operationType";
+ // DPI_OperationTypes, having type OperationType[]
+ ParameterId["OperationTypes"] = "operationTypes";
+ // DPI_ConnectionTypeCategory, having type ConnectionTypeCategory
+ ParameterId["ConnectionTypeCategory"] = "connectionTypeCategory";
+ // DPI_ConnectionTypeGroup, having type ConnectionTypeGroup
+ ParameterId["ConnectionTypeGroup"] = "connectionTypeGroup";
+ // DPI_CommandRedirectType, having type CommandRedirectType
+ ParameterId["CommandRedirectType"] = "commandRedirectType";
+ // DPI_CustomSplitMode, having type SplitMode
+ ParameterId["CustomSplitMode"] = "customSplitMode";
+ // DPI_CustomSplitSeparatorType, having type SeparatorType
+ ParameterId["CustomSplitSeparatorType"] = "customSplitSeparatorType";
+ // DPI_LevelSelectionState, having type LevelSelectionState
+ ParameterId["LevelSelectionState"] = "levelSelectionState";
+ // DPI_LevelSelectionStates, having type LevelSelectionState[]
+ ParameterId["LevelSelectionStates"] = "levelSelectionStates";
+ // DPI_SourceDestIcon, having type SourceDestIcon
+ ParameterId["SourceDestIcon"] = "sourceDestIcon";
+ // DPI_LegendLayout, having type LegendLayout
+ ParameterId["LegendLayout"] = "pageLegendLayout";
+ // DPI_ImagesEditResultCode, having type ImagesEditResultCode
+ ParameterId["ImagesEditResultCode"] = "imagesEditResultCode";
+ // DPI_CalculationContext, having type CalculationContext
+ ParameterId["CalculationContext"] = "calculationContext";
+ // DPI_WorkgroupPublishErrorType, having type WorkgroupPublishErrorType
+ ParameterId["WorkgroupPublishErrorType"] = "workgroupPublishErrorType";
+ // DPI_IsParameter, having type TriBool
+ ParameterId["IsParameter"] = "isParameter";
+ // DPI_AddressingState, having type WidgetState
+ ParameterId["AddressingState"] = "addressingState";
+ // DPI_AllPagesState, having type WidgetState
+ ParameterId["AllPagesState"] = "allPagesState";
+ // DPI_AtTheLevelState, having type WidgetState
+ ParameterId["AtTheLevelState"] = "atTheLevelState";
+ // DPI_ComputeCompoundedRateState, having type WidgetState
+ ParameterId["ComputeCompoundedRateState"] = "computeCompoundedRateState";
+ // DPI_CustomNullIfIncompleteState, having type WidgetState
+ ParameterId["CustomNullIfIncompleteState"] = "customNullIfIncompleteState";
+ // DPI_NestedCalcsState, having type WidgetState
+ ParameterId["NestedCalcsState"] = "nestedCalcsState";
+ // DPI_RankTypeState, having type WidgetState
+ ParameterId["RankTypeState"] = "rankTypeState";
+ // DPI_ReferenceOptionsState, having type WidgetState
+ ParameterId["ReferenceOptionsState"] = "referenceOptionsState";
+ // DPI_RestartEveryState, having type WidgetState
+ ParameterId["RestartEveryState"] = "restartEveryState";
+ // DPI_SortAggState, having type WidgetState
+ ParameterId["SortAggState"] = "sortAggState";
+ // DPI_SortState, having type WidgetState
+ ParameterId["SortState"] = "sortState";
+ // DPI_TableCalcTypeState, having type WidgetState
+ ParameterId["TableCalcTypeState"] = "tableCalcTypeState";
+ // DPI_TableCalcAssistanceWidgetState, having type WidgetState
+ ParameterId["TableCalcAssistanceWidgetState"] = "tableCalcAssistanceWidgetState";
+ // DPI_CalcNestingLevel, having type CalcNestingLevel
+ ParameterId["CalcNestingLevel"] = "calcNestingLevel";
+ // DPI_DataProviderType, having type DataProviderType
+ ParameterId["DataProviderType"] = "dataProviderType";
+ // DPI_HeuristicCommandReinterpretation, having type HeuristicCommandReinterpretation
+ ParameterId["HeuristicCommandReinterpretation"] = "heuristicCommandReinterpretation";
+ // DPI_ExtractRefreshStatus, having type ExtractRefreshStatus
+ ParameterId["ExtractRefreshStatus"] = "extractRefreshStatus";
+ // DPI_RichTextEditorWidgetKey, having type RichTextEditorWidgetKey
+ ParameterId["RichTextEditorWidgetKey"] = "richTextEditorWidgetKey";
+ // DPI_RichTextWidgetKeys, having type RichTextEditorWidgetKey[]
+ ParameterId["RichTextWidgetKeys"] = "richTextWidgetKeys";
+ // DPI_TypeOfFormatItem, having type TypeOfFormatItem
+ ParameterId["TypeOfFormatItem"] = "typeOfFormatItem";
+ // DPI_TypeOfFormatContainer, having type TypeOfFormatContainer
+ ParameterId["TypeOfFormatContainer"] = "typeOfFormatContainer";
+ // DPI_TypeOfFormatControl, having type TypeOfFormatControl
+ ParameterId["TypeOfFormatControl"] = "typeOfFormatControl";
+ // DPI_FormatWidgetKey, having type FormatWidgetKey
+ ParameterId["FormatWidgetKey"] = "formatWidgetKey";
+ // DPI_ColorSwatchType, having type ColorSwatchType
+ ParameterId["ColorSwatchType"] = "formatColorSwatchType";
+ // DPI_PickerType, having type PickerType
+ ParameterId["PickerType"] = "pickerType";
+ // DPI_ExtractHistoryRefreshType, having type RefreshType
+ ParameterId["ExtractHistoryRefreshType"] = "extractHistoryRefreshTypeEnum";
+ // DPI_AxisFoldState, having type AxisFoldState
+ ParameterId["AxisFoldState"] = "axisFoldState";
+ // DPI_TickMarkSpacingUnits, having type TickSpacingUnits
+ ParameterId["TickMarkSpacingUnits"] = "tickSpacingUnits";
+ // DPI_TickMarkState, having type TickMarkState
+ ParameterId["TickMarkState"] = "tickMarkState";
+ // DPI_AxisRangeType, having type AxisRangeType
+ ParameterId["AxisRangeType"] = "axisRangeType";
+ // DPI_ScaleType, having type ScaleType
+ ParameterId["ScaleType"] = "scaleType";
+ // DPI_DashboardDeviceLayout, having type DashboardDeviceLayout
+ ParameterId["DashboardDeviceLayout"] = "dashboardDeviceLayout";
+ // DPI_ActivateDeviceLayout, having type DashboardDeviceLayout
+ ParameterId["ActivateDeviceLayout"] = "activateDeviceLayout";
+ // DPI_DashboardDeviceLayouts, having type DashboardDeviceLayout[]
+ ParameterId["DashboardDeviceLayouts"] = "dashboardDeviceLayouts";
+ // DPI_DeviceSource, having type DeviceSource
+ ParameterId["DeviceSource"] = "deviceSource";
+ // DPI_DashboardSizingDimension, having type DashboardSizingDimension
+ ParameterId["DashboardSizingDimension"] = "dashboardSizingDimension";
+ // DPI_GridOverlayMode, having type GridOverlayMode
+ ParameterId["GridOverlayMode"] = "gridOverlayMode";
+ // DPI_DashboardSizingMode, having type DashboardSizingMode
+ ParameterId["DashboardSizingMode"] = "dashboardSizingMode";
+ // DPI_FlipboardNavType, having type FlipboardNavType
+ ParameterId["FlipboardNavType"] = "flipboardNavType";
+ // DPI_FieldPickerDialogUseCase, having type FieldPickerDialogUseCase
+ ParameterId["FieldPickerDialogUseCase"] = "fieldPickerDialogUseCase";
+ // DPI_StartOfWeekEnum, having type SOWValue
+ ParameterId["StartOfWeekEnum"] = "startOfWeekEnum";
+ // DPI_StartOfFiscalYear, having type FYSValues
+ ParameterId["StartOfFiscalYear"] = "startOfFiscalYear";
+ // DPI_TotalsInclusionValue, having type TotalsInclusion
+ ParameterId["TotalsInclusionValue"] = "totalsInclusionValue";
+ // DPI_FormatCode, having type FormatCode
+ ParameterId["FormatCode"] = "formatCode";
+ // DPI_FindType, having type FindType
+ ParameterId["FindType"] = "findType";
+ // DPI_PerspectiveType, having type PerspectiveType
+ ParameterId["PerspectiveType"] = "perspectiveType";
+ // DPI_GeometryType, having type GeometryType
+ ParameterId["GeometryType"] = "geometryType";
+ // DPI_PaneLabelComposition, having type PaneLabelComposition
+ ParameterId["PaneLabelComposition"] = "paneLabelComposition";
+ // DPI_WarningType, having type WarningType
+ ParameterId["WarningType"] = "warningType";
+ // DPI_UIMode, having type WorkbookUIMode
+ ParameterId["UIMode"] = "uiMode";
+ // DPI_MenuItemId, having type TopLevelMenuItem
+ ParameterId["MenuItemId"] = "menuItemId";
+ // DPI_CommandReturn, having type object
+ ParameterId["CommandReturn"] = "commandReturn";
+ // DPI_LegacyPresModel, having type object
+ ParameterId["LegacyPresModel"] = "legacyPresModel";
+ // DPI_PresentationModel, having type object
+ ParameterId["PresentationModel"] = "presModelHolder";
+ // DPI_Event, having type object
+ ParameterId["Event"] = "eventContainer";
+ // DPI_LineStyle, having type Array
+ ParameterId["LineStyle"] = "lineStyle";
+ // DPI_StrokeStyle, having type Array
+ ParameterId["StrokeStyle"] = "strokeStyle";
+ // DPI_Schema, having type Array
+ ParameterId["Schema"] = "schema";
+ // DPI_StartTuple, having type Array
+ ParameterId["StartTuple"] = "startTuple";
+ // DPI_EndTuple, having type Array
+ ParameterId["EndTuple"] = "endTuple";
+ // DPI_Tuple, having type Array
+ ParameterId["Tuple"] = "tuple";
+ // DPI_Tuples, having type Array[]
+ ParameterId["Tuples"] = "tuples";
+ // DPI_CustomDomainTuples, having type Array[]
+ ParameterId["CustomDomainTuples"] = "customDomainTuples";
+ // DPI_UpdatedTuples, having type Array[]
+ ParameterId["UpdatedTuples"] = "updatedTuples";
+ // DPI_Table, having type Array
+ ParameterId["Table"] = "table";
+ // DPI_AliasedValue, having type Array
+ ParameterId["AliasedValue"] = "valueAlias";
+ // DPI_FirstAliasedValue, having type Array
+ ParameterId["FirstAliasedValue"] = "firstAlisedValue";
+ // DPI_MaximumRange, having type Array
+ ParameterId["MaximumRange"] = "maximumRangeValue";
+ // DPI_MinimumRange, having type Array
+ ParameterId["MinimumRange"] = "minimumRangeValue";
+ // DPI_SecondAliasedValue, having type Array
+ ParameterId["SecondAliasedValue"] = "secondAlisedValue";
+ // DPI_AliasedSelectionList, having type Array[]
+ ParameterId["AliasedSelectionList"] = "aliasedSelectionList";
+ // DPI_AliasedValues, having type Array[]
+ ParameterId["AliasedValues"] = "valuesAliases";
+ // DPI_VerboseAliasedRangeMax, having type Array
+ ParameterId["VerboseAliasedRangeMax"] = "verboseAliasedRangeMax";
+ // DPI_VerboseAliasedValue, having type Array
+ ParameterId["VerboseAliasedValue"] = "verboseAliasedValue";
+ // DPI_MultiBucket, having type MultiBucket
+ ParameterId["MultiBucket"] = "xValues";
+ // DPI_PageName, having type PageName
+ ParameterId["PageName"] = "pageName";
+ // DPI_Selector, having type object
+ ParameterId["Selector"] = "selector";
+ // DPI_PaneId, having type object
+ ParameterId["PaneId"] = "paneId";
+ // DPI_PaneIds, having type PaneId[]
+ ParameterId["PaneIds"] = "paneIds";
+ // DPI_ImageRegionInfo, having type object
+ ParameterId["ImageRegionInfo"] = "vizRegionRect";
+ // DPI_ImageRegionInfoList, having type object[]
+ ParameterId["ImageRegionInfoList"] = "vizRegionRectList";
+ // DPI_VisualID, having type VisualID
+ ParameterId["VisualID"] = "visualId";
+ // DPI_VisualIDPM, having type VisualIDPresModel
+ ParameterId["VisualIDPM"] = "visualIdPresModel";
+ // DPI_InvalidSheets, having type VisualIDPresModel[]
+ ParameterId["InvalidSheets"] = "invalidSheets";
+ // DPI_VisualIDPMs, having type VisualIDPresModel[]
+ ParameterId["VisualIDPMs"] = "visualIds";
+ // DPI_SheetPathPM, having type SheetPathPresModel
+ ParameterId["SheetPathPM"] = "sheetPath";
+ // DPI_CapturedSheetPM, having type SheetPathPresModel
+ ParameterId["CapturedSheetPM"] = "capturedSheetPm";
+ // DPI_CurrentSheetPM, having type SheetPathPresModel
+ ParameterId["CurrentSheetPM"] = "currentSheetPm";
+ // DPI_DashboardPM, having type SheetPathPresModel
+ ParameterId["DashboardPM"] = "dashboardPm";
+ // DPI_NewSheetPM, having type SheetPathPresModel
+ ParameterId["NewSheetPM"] = "newSheetPm";
+ // DPI_SheetNamePM, having type SheetPathPresModel
+ ParameterId["SheetNamePM"] = "sheetNamePm";
+ // DPI_SheetPM, having type SheetPathPresModel
+ ParameterId["SheetPM"] = "sheetPm";
+ // DPI_SourceDashboardPM, having type SheetPathPresModel
+ ParameterId["SourceDashboardPM"] = "sourceDashboardPm";
+ // DPI_SourceSheetPM, having type SheetPathPresModel
+ ParameterId["SourceSheetPM"] = "sourceSheetPm";
+ // DPI_TargetSheetPM, having type SheetPathPresModel
+ ParameterId["TargetSheetPM"] = "targetSheetPm";
+ // DPI_WorksheetPM, having type SheetPathPresModel
+ ParameterId["WorksheetPM"] = "worksheetPm";
+ // DPI_ModifiedSheets, having type SheetPathPresModel[]
+ ParameterId["ModifiedSheets"] = "modifiedSheets";
+ // DPI_DataColumn, having type DataColumnPresModel
+ ParameterId["DataColumn"] = "dataColumn";
+ // DPI_DataColumns, having type DataColumnPresModel[]
+ ParameterId["DataColumns"] = "dataColumns";
+ // DPI_Addresses, having type DataColumnPresModel[]
+ ParameterId["Addresses"] = "addresses";
+ // DPI_EncodingColumns, having type Dictionary(of DataColumnPresModel)
+ ParameterId["EncodingColumns"] = "encodingColumns";
+ // DPI_TextRunColumns, having type Dictionary(of DataColumnPresModel)
+ ParameterId["TextRunColumns"] = "textRunColumns";
+ // DPI_TextStyleColumns, having type Dictionary(of DataColumnPresModel)
+ ParameterId["TextStyleColumns"] = "textStyleColumns";
+ // DPI_NamedDataColumn, having type NamedDataColumnPresModel
+ ParameterId["NamedDataColumn"] = "namedDataColumn";
+ // DPI_NamedDataColumns, having type NamedDataColumnPresModel[]
+ ParameterId["NamedDataColumns"] = "namedDataColumns";
+ // DPI_DataTable, having type DataTablePresModel
+ ParameterId["DataTable"] = "dataTable";
+ // DPI_ActionSpecification, having type None
+ ParameterId["ActionSpecification"] = "actionSpec";
+ // DPI_Column, having type Column
+ ParameterId["Column"] = "columnContext";
+ // DPI_SetFunction, having type SetFunction
+ ParameterId["SetFunction"] = "setFunction";
+ // DPI_SetFunctions, having type SetFunctions
+ ParameterId["SetFunctions"] = "setFunctions";
+ // DPI_VisualProfileShowMe, having type VisualProfileShowMe
+ ParameterId["VisualProfileShowMe"] = "vpsm";
+ // DPI_DataSourcePtr, having type DataSource
+ ParameterId["DataSourcePtr"] = "datasourcePtr";
+ // DPI_WorkgroupConnection, having type WorkgroupConnection
+ ParameterId["WorkgroupConnection"] = "workgroupConnection";
+ // DPI_Authenticator, having type AuthenticatorRawPtr
+ ParameterId["Authenticator"] = "authenticator";
+ // DPI_UpgradeAttr, having type UpgradeAttr
+ ParameterId["UpgradeAttr"] = "upgradeAttr";
+ // DPI_ExtractAttr, having type ExtractAttr
+ ParameterId["ExtractAttr"] = "extractAttr";
+ // DPI_RefreshAttr, having type RefreshAttr
+ ParameterId["RefreshAttr"] = "refreshAttr";
+ // DPI_ContextSpecification, having type ContextSpecification
+ ParameterId["ContextSpecification"] = "contextSpecification";
+ // DPI_SchemaViewerSelector, having type SchemaViewerSelectorPtr
+ ParameterId["SchemaViewerSelector"] = "schemaViewerSelector";
+ // DPI_Buckets, having type Buckets
+ ParameterId["Buckets"] = "buckets";
+ // DPI_LegendItems, having type MultiBuckets
+ ParameterId["LegendItems"] = "legendItems";
+ // DPI_LegendItem, having type MultiBucket
+ ParameterId["LegendItem"] = "legendItem";
+ // DPI_SourceItem, having type MultiBucket
+ ParameterId["SourceItem"] = "sourceItem";
+ // DPI_DestItem, having type MultiBucket
+ ParameterId["DestItem"] = "destItem";
+ // DPI_IQuickSortState, having type IQuickSortState
+ ParameterId["IQuickSortState"] = "quickSortState";
+ // DPI_AppBuildDate, having type DateTime
+ ParameterId["AppBuildDate"] = "appBuildDate";
+ // DPI_ForecastDateRangeEnd, having type DateTime
+ ParameterId["ForecastDateRangeEnd"] = "forecastDateRangeEnd";
+ // DPI_ForecastDateRangeStart, having type DateTime
+ ParameterId["ForecastDateRangeStart"] = "forecastDateRangeStart";
+ // DPI_LastModified, having type DateTime
+ ParameterId["LastModified"] = "lastModified";
+ // DPI_SearchDomainPtr, having type MultiDomain
+ ParameterId["SearchDomainPtr"] = "searchDomainPtr";
+ // DPI_ResultsDomainPtr, having type MultiDomain
+ ParameterId["ResultsDomainPtr"] = "resultsDomainPtr";
+ // DPI_Actions, having type object
+ ParameterId["Actions"] = "actions";
+ // DPI_SRCommands, having type object
+ ParameterId["SRCommands"] = "selectionRelaxationCommands";
+ // DPI_Commands, having type object
+ ParameterId["Commands"] = "commands";
+ // DPI_DataTypeCommands, having type object
+ ParameterId["DataTypeCommands"] = "datatypeCommands";
+ // DPI_MultiSelectCommands, having type object
+ ParameterId["MultiSelectCommands"] = "multiselectCommands";
+ // DPI_NonVizCommands, having type object
+ ParameterId["NonVizCommands"] = "nonVizCommands";
+ // DPI_QuickFilterCommands, having type object
+ ParameterId["QuickFilterCommands"] = "quickFilterCommands";
+ // DPI_ShowMeCommands, having type object
+ ParameterId["ShowMeCommands"] = "showMeCommands";
+ // DPI_SortIndicatorMenu, having type object
+ ParameterId["SortIndicatorMenu"] = "sortIndicatorMenu";
+ // DPI_StandardCommands, having type object
+ ParameterId["StandardCommands"] = "standardCommands";
+ // DPI_VizCommands, having type object
+ ParameterId["VizCommands"] = "vizCommands";
+ // DPI_ZoneChromeCommands, having type object
+ ParameterId["ZoneChromeCommands"] = "zoneChromeCommands";
+ // DPI_CommandItem, having type CommandsItem
+ ParameterId["CommandItem"] = "commandItem";
+ // DPI_CommandItems, having type CommandsItem[]
+ ParameterId["CommandItems"] = "commandItems";
+ // DPI_Command, having type SimpleCommandsPresModel
+ ParameterId["Command"] = "simpleCommandModel";
+ // DPI_AddCommand, having type SimpleCommandsPresModel
+ ParameterId["AddCommand"] = "addSimpleCommandModel";
+ // DPI_RemoveCommand, having type SimpleCommandsPresModel
+ ParameterId["RemoveCommand"] = "removeSimpleCommandModel";
+ // DPI_AcceptCommand, having type SimpleCommandsPresModel
+ ParameterId["AcceptCommand"] = "acceptSimpleCommandModel";
+ // DPI_DeclineCommand, having type SimpleCommandsPresModel
+ ParameterId["DeclineCommand"] = "declineSimpleCommandModel";
+ // DPI_DropCommand, having type SimpleCommandsPresModel
+ ParameterId["DropCommand"] = "dropCommandModel";
+ // DPI_EditCaptionCommand, having type SimpleCommandsPresModel
+ ParameterId["EditCaptionCommand"] = "editCaptionCommandModel";
+ // DPI_FontCommand, having type SimpleCommandsPresModel
+ ParameterId["FontCommand"] = "fontCommandModel";
+ // DPI_LineStyleCommand, having type SimpleCommandsPresModel
+ ParameterId["LineStyleCommand"] = "lineStyleCommandModel";
+ // DPI_FormatCommand, having type SimpleCommandsPresModel
+ ParameterId["FormatCommand"] = "formatCommandModel";
+ // DPI_DestructorCommand, having type SimpleCommandsPresModel
+ ParameterId["DestructorCommand"] = "destructorCommand";
+ // DPI_ClearFormatCommand, having type SimpleCommandsPresModel
+ ParameterId["ClearFormatCommand"] = "clearFormatCommandModel";
+ // DPI_RichTextCommand, having type SimpleCommandsPresModel
+ ParameterId["RichTextCommand"] = "richTextCommandModel";
+ // DPI_SortIndicatorCommand, having type SimpleCommandsPresModel
+ ParameterId["SortIndicatorCommand"] = "sortIndicatorCommand";
+ // DPI_ReleaseStoreCommand, having type SimpleCommandsPresModel
+ ParameterId["ReleaseStoreCommand"] = "releaseStoreCommand";
+ // DPI_ConfirmationCommand, having type SimpleCommandsPresModel
+ ParameterId["ConfirmationCommand"] = "confirmationCommand";
+ // DPI_CommandList, having type SimpleCommandsPresModel[]
+ ParameterId["CommandList"] = "commandList";
+ // DPI_ParameterCtrl, having type ParameterCtrlPresModel
+ ParameterId["ParameterCtrl"] = "parameterControl";
+ // DPI_ParameterCtrls, having type ParameterCtrlPresModel[]
+ ParameterId["ParameterCtrls"] = "parameterControls";
+ // DPI_PageModel, having type PagePresModel
+ ParameterId["PageModel"] = "pageModel";
+ // DPI_PageTrailOptions, having type PageTrailOptionsPresModel
+ ParameterId["PageTrailOptions"] = "pageTrailOptions";
+ // DPI_Field, having type FieldPresModel
+ ParameterId["Field"] = "field";
+ // DPI_FieldList, having type FieldPresModel[]
+ ParameterId["FieldList"] = "fieldList";
+ // DPI_DimensionsFieldList, having type FieldPresModel[]
+ ParameterId["DimensionsFieldList"] = "dimensionsFieldList";
+ // DPI_MeasuresFieldList, having type FieldPresModel[]
+ ParameterId["MeasuresFieldList"] = "measuresFieldList";
+ // DPI_SetsFieldList, having type FieldPresModel[]
+ ParameterId["SetsFieldList"] = "setsFieldList";
+ // DPI_ParametersFieldList, having type FieldPresModel[]
+ ParameterId["ParametersFieldList"] = "parametersFieldList";
+ // DPI_FieldColumn, having type FieldColumnPresModel
+ ParameterId["FieldColumn"] = "column";
+ // DPI_FieldColumnList, having type FieldColumnPresModel[]
+ ParameterId["FieldColumnList"] = "columnList";
+ // DPI_StructuredMeasure, having type StructuredMeasurePresModel
+ ParameterId["StructuredMeasure"] = "structuredMeasure";
+ // DPI_StructuredMeasureList, having type StructuredMeasurePresModel[]
+ ParameterId["StructuredMeasureList"] = "structuredMeasureList";
+ // DPI_Level, having type LevelPresModel
+ ParameterId["Level"] = "level";
+ // DPI_Parameter, having type ParameterPresModel
+ ParameterId["Parameter"] = "parameter";
+ // DPI_BaseDimension, having type BaseDimensionPresModel
+ ParameterId["BaseDimension"] = "baseDimension";
+ // DPI_Dimension, having type DimensionPresModel
+ ParameterId["Dimension"] = "dimension";
+ // DPI_AttributeDimensionList, having type DimensionPresModel[]
+ ParameterId["AttributeDimensionList"] = "attributeDimensionList";
+ // DPI_AttributeDimension, having type AttributeDimensionPresModel
+ ParameterId["AttributeDimension"] = "attributeDimension";
+ // DPI_AttributeAttributeDimensionList, having type AttributeDimensionPresModel[]
+ ParameterId["AttributeAttributeDimensionList"] = "attributeAttributeDimensionList";
+ // DPI_StandardDimension, having type StandardDimensionPresModel
+ ParameterId["StandardDimension"] = "standardDimension";
+ // DPI_RelationalTable, having type RelationalTablePresModel
+ ParameterId["RelationalTable"] = "relationalTable";
+ // DPI_DrillPath, having type DrillPathPresModel
+ ParameterId["DrillPath"] = "drillPath";
+ // DPI_FieldFolder, having type FieldFolderPresModel
+ ParameterId["FieldFolder"] = "fieldFolder";
+ // DPI_Group, having type GroupPresModel
+ ParameterId["Group"] = "group";
+ // DPI_UserDefinedAttributeList, having type GroupPresModel[]
+ ParameterId["UserDefinedAttributeList"] = "userDefinedAttributeList";
+ // DPI_Hierarchy, having type HierarchyPresModel
+ ParameterId["Hierarchy"] = "hierarchy";
+ // DPI_HierarchyList, having type HierarchyPresModel[]
+ ParameterId["HierarchyList"] = "hierarchyList";
+ // DPI_HierarchyMemberSelectedState, having type HierarchySelect_MemberSelectedStatePresModel
+ ParameterId["HierarchyMemberSelectedState"] = "hierarchyMemberSelectedState";
+ // DPI_HierarchySelectionChanges, having type HierarchySelect_MemberSelectedStatePresModel[]
+ ParameterId["HierarchySelectionChanges"] = "hierarchySelectionChanges";
+ // DPI_DisplayFolder, having type DisplayFolderPresModel
+ ParameterId["DisplayFolder"] = "displayFolder";
+ // DPI_DisplayFolderList, having type DisplayFolderPresModel[]
+ ParameterId["DisplayFolderList"] = "displayFolderList";
+ // DPI_DataSourceLayout, having type DataSourceLayoutPresModel
+ ParameterId["DataSourceLayout"] = "dataSourceLayout";
+ // DPI_BaseDataSource, having type BaseDataSourcePresModel
+ ParameterId["BaseDataSource"] = "baseDataSource";
+ // DPI_BaseDataSources, having type Dictionary(of BaseDataSourcePresModel)
+ ParameterId["BaseDataSources"] = "baseDataSources";
+ // DPI_DataSource, having type DataSourcePresModel
+ ParameterId["DataSource"] = "dataSource";
+ // DPI_DataSources, having type Dictionary(of DataSourcePresModel)
+ ParameterId["DataSources"] = "dataSources";
+ // DPI_SchemaViewerDataSource, having type SchemaViewerDataSourcePresModel
+ ParameterId["SchemaViewerDataSource"] = "schemaViewerDataSource";
+ // DPI_SchemaViewerDataSources, having type Dictionary(of SchemaViewerDataSourcePresModel)
+ ParameterId["SchemaViewerDataSources"] = "schemaViewerDataSources";
+ // DPI_BaseDataSchema, having type BaseDataSchemaPresModel
+ ParameterId["BaseDataSchema"] = "baseDataSchema";
+ // DPI_DataSchema, having type DataSchemaPresModel
+ ParameterId["DataSchema"] = "dataSchema";
+ // DPI_SchemaViewerDataSchema, having type SchemaViewerDataSchemaPresModel
+ ParameterId["SchemaViewerDataSchema"] = "schemaViewerDataSchema";
+ // DPI_SheetListItem, having type SheetListItemPresModel
+ ParameterId["SheetListItem"] = "sheetListItem";
+ // DPI_SheetListItems, having type SheetListItemPresModel[]
+ ParameterId["SheetListItems"] = "sheetListItems";
+ // DPI_SheetList, having type SheetListPresModel
+ ParameterId["SheetList"] = "sheetList";
+ // DPI_SizeModeOption, having type SizeModeOptionPresModel
+ ParameterId["SizeModeOption"] = "sizeModeOption";
+ // DPI_SizeModeOptions, having type SizeModeOptionPresModel[]
+ ParameterId["SizeModeOptions"] = "sizeModeOptions";
+ // DPI_DashboardSizeControl, having type DashboardSizeControlPresModel
+ ParameterId["DashboardSizeControl"] = "dashboardSizeControl";
+ // DPI_DeviceLayoutInfoItem, having type DeviceLayoutInfoItemPresModel
+ ParameterId["DeviceLayoutInfoItem"] = "deviceLayoutInfoItem";
+ // DPI_DeviceLayoutInfoItems, having type DeviceLayoutInfoItemPresModel[]
+ ParameterId["DeviceLayoutInfoItems"] = "deviceLayoutInfoItems";
+ // DPI_DeviceLayoutInfoList, having type DeviceLayoutInfoListPresModel
+ ParameterId["DeviceLayoutInfoList"] = "deviceLayoutInfoList";
+ // DPI_SpecializedDeviceLayoutItem, having type SpecializedDeviceLayoutItemPresModel
+ ParameterId["SpecializedDeviceLayoutItem"] = "specializedDeviceLayoutItem";
+ // DPI_SpecializedDeviceLayoutItems, having type SpecializedDeviceLayoutItemPresModel[]
+ ParameterId["SpecializedDeviceLayoutItems"] = "specializedDeviceLayoutItems";
+ // DPI_SpecializedDeviceLayoutList, having type SpecializedDeviceLayoutListPresModel
+ ParameterId["SpecializedDeviceLayoutList"] = "specializedDeviceLayoutList";
+ // DPI_SizeItem, having type SizeItemPresModel
+ ParameterId["SizeItem"] = "sizeItem";
+ // DPI_SizeItems, having type SizeItemPresModel[]
+ ParameterId["SizeItems"] = "sizeItems";
+ // DPI_DeviceSizesList, having type SizeItemListPresModel
+ ParameterId["DeviceSizesList"] = "deviceSizesList";
+ // DPI_PresetSizesList, having type SizeItemListPresModel
+ ParameterId["PresetSizesList"] = "presetSizesList";
+ // DPI_SizeItemList, having type SizeItemListPresModel
+ ParameterId["SizeItemList"] = "sizeItemList";
+ // DPI_SubstitutionKeyword, having type SubstitutionKeywordPresModel
+ ParameterId["SubstitutionKeyword"] = "substitutionKeyword";
+ // DPI_SubstitutionKeywords, having type SubstitutionKeywordPresModel[]
+ ParameterId["SubstitutionKeywords"] = "substitutionKeywords";
+ // DPI_SubstitutionKeywordSubList, having type SubstitutionKeywordSubListPresModel
+ ParameterId["SubstitutionKeywordSubList"] = "substitutionKeywordsSublist";
+ // DPI_SubstitutionKeywordSubLists, having type SubstitutionKeywordSubListPresModel[]
+ ParameterId["SubstitutionKeywordSubLists"] = "substitutionKeywordSublists";
+ // DPI_SubstitutionKeywordList, having type SubstitutionKeywordListPresModel
+ ParameterId["SubstitutionKeywordList"] = "substitutionKeywordsList";
+ // DPI_DeviceZoneListItem, having type DeviceZoneListItemPresModel
+ ParameterId["DeviceZoneListItem"] = "deviceZoneListItem";
+ // DPI_DeviceZoneListItems, having type DeviceZoneListItemPresModel[]
+ ParameterId["DeviceZoneListItems"] = "deviceZoneListItems";
+ // DPI_DeviceZoneList, having type DeviceZoneListPresModel
+ ParameterId["DeviceZoneList"] = "deviceZoneList";
+ // DPI_ZoneSnapLineListItem, having type ZoneSnapLineListItemPresModel
+ ParameterId["ZoneSnapLineListItem"] = "snapLineListItem";
+ // DPI_OuterHorizontalSnapLines, having type ZoneSnapLineListItemPresModel[]
+ ParameterId["OuterHorizontalSnapLines"] = "outerHorizontalSnapLines";
+ // DPI_OuterVerticalSnapLines, having type ZoneSnapLineListItemPresModel[]
+ ParameterId["OuterVerticalSnapLines"] = "outerVerticalSnapLines";
+ // DPI_InnerHorizontalSnapLines, having type ZoneSnapLineListItemPresModel[]
+ ParameterId["InnerHorizontalSnapLines"] = "innerHorizontalSnapLines";
+ // DPI_InnerVerticalSnapLines, having type ZoneSnapLineListItemPresModel[]
+ ParameterId["InnerVerticalSnapLines"] = "innerVerticalSnapLines";
+ // DPI_ZoneSnapLineList, having type ZoneSnapLineListPresModel
+ ParameterId["ZoneSnapLineList"] = "snapLineList";
+ // DPI_DashboardZoneHierarchy, having type DashboardZoneHierarchyPresModel
+ ParameterId["DashboardZoneHierarchy"] = "dashboardZoneHierarchy";
+ // DPI_DeviceZoneVisibilityListItem, having type DeviceZoneVisibilityListItemPresModel
+ ParameterId["DeviceZoneVisibilityListItem"] = "deviceZoneVisibilityListItem";
+ // DPI_DeviceZoneVisibilityListItems, having type DeviceZoneVisibilityListItemPresModel[]
+ ParameterId["DeviceZoneVisibilityListItems"] = "deviceZoneVisibilityListItems";
+ // DPI_DeviceZoneVisibilityList, having type DeviceZoneVisibilityListPresModel
+ ParameterId["DeviceZoneVisibilityList"] = "deviceZoneVisibilityList";
+ // DPI_WorksheetDataSchema, having type WorksheetDataSchemaPresModel
+ ParameterId["WorksheetDataSchema"] = "worksheetDataSchema";
+ // DPI_WorksheetDataSchemaMap, having type Dictionary(of WorksheetDataSchemaPresModel)
+ ParameterId["WorksheetDataSchemaMap"] = "worksheetDataSchemaMap";
+ // DPI_Shelf, having type ShelfPresModel
+ ParameterId["Shelf"] = "shelf";
+ // DPI_ShelfDetail, having type ShelfPresModel
+ ParameterId["ShelfDetail"] = "shelfDetail";
+ // DPI_ShelfList, having type ShelfPresModel[]
+ ParameterId["ShelfList"] = "shelfList";
+ // DPI_ShelfItem, having type ShelfItemPresModel
+ ParameterId["ShelfItem"] = "shelfItem";
+ // DPI_ShelfItems, having type ShelfItemPresModel[]
+ ParameterId["ShelfItems"] = "shelfItems";
+ // DPI_Shelves, having type ShelvesPresModel
+ ParameterId["Shelves"] = "shelves";
+ // DPI_FieldEncoding, having type FieldEncodingPresModel
+ ParameterId["FieldEncoding"] = "fieldEncoding";
+ // DPI_FieldEncodings, having type FieldEncodingPresModel[]
+ ParameterId["FieldEncodings"] = "fieldEncodings";
+ // DPI_UberTip, having type UberTipPresModel
+ ParameterId["UberTip"] = "uberTip";
+ // DPI_AnalyticsObjectDragInfo, having type AnalyticsObjectDragInfoPresModel
+ ParameterId["AnalyticsObjectDragInfo"] = "analyticsObjectDragInfo";
+ // DPI_TrendLine, having type TrendLinePresModel
+ ParameterId["TrendLine"] = "trendLine";
+ // DPI_TrendLineDialog, having type TrendLineDialogPresModel
+ ParameterId["TrendLineDialog"] = "trendLineDialog";
+ // DPI_TrendLineDescribePresModel, having type TrendLineDescribePresModel
+ ParameterId["TrendLineDescribePresModel"] = "trendLineDescribePresModel";
+ // DPI_TrendLineAOVModelPresModel, having type TrendLineAOVModelPresModel
+ ParameterId["TrendLineAOVModelPresModel"] = "trendLineAovModelPresModel";
+ // DPI_TrendLineAOVModelsPresModel, having type TrendLineAOVModelPresModel[]
+ ParameterId["TrendLineAOVModelsPresModel"] = "trendModelDescriptionVector";
+ // DPI_TrendLineLineCoefficientPresModel, having type TrendLineLineCoefficientPresModel
+ ParameterId["TrendLineLineCoefficientPresModel"] = "trendLineLineCoefficient";
+ // DPI_TrendLineLineCoefficientsPresModel, having type TrendLineLineCoefficientPresModel[]
+ ParameterId["TrendLineLineCoefficientsPresModel"] = "trendLineLineCoefficientsPresModel";
+ // DPI_TrendLineLinesPresModel, having type TrendLineLinesPresModel
+ ParameterId["TrendLineLinesPresModel"] = "trendLineLinesPresModel";
+ // DPI_TrendLineAOVPresModel, having type TrendLineAOVPresModel
+ ParameterId["TrendLineAOVPresModel"] = "trendLineAnovaPresModel";
+ // DPI_ReferenceLine, having type ReferenceLinePresModel
+ ParameterId["ReferenceLine"] = "referenceLine";
+ // DPI_ReferenceLines, having type ReferenceLinePresModel[]
+ ParameterId["ReferenceLines"] = "referenceLines";
+ // DPI_PercentileEditDataValue, having type EditDataValuePresModel
+ ParameterId["PercentileEditDataValue"] = "percentileEditDataValue";
+ // DPI_LimitEditDataValue, having type EditDataValuePresModel
+ ParameterId["LimitEditDataValue"] = "limitEditDataValue";
+ // DPI_ConfidenceLevelCombo, having type EditValueWidgetPresModel
+ ParameterId["ConfidenceLevelCombo"] = "confidenceLevelCombo";
+ // DPI_DistributionQuantilesCombo, having type EditValueWidgetPresModel
+ ParameterId["DistributionQuantilesCombo"] = "distributionQuantilesLevelCombo";
+ // DPI_PercentilesCombo, having type EditValueWidgetPresModel
+ ParameterId["PercentilesCombo"] = "distributionPercentilesLevelCombo";
+ // DPI_NumericBinSizeCombo, having type EditValueWidgetPresModel
+ ParameterId["NumericBinSizeCombo"] = "numericBinSizeCombo";
+ // DPI_FieldPickerField, having type FieldPickerFieldPresModel
+ ParameterId["FieldPickerField"] = "fieldPickerField";
+ // DPI_FieldPickerFields, having type FieldPickerFieldPresModel[]
+ ParameterId["FieldPickerFields"] = "fieldPickerFields";
+ // DPI_FieldPickerCombo, having type FieldPickerComboPresModel
+ ParameterId["FieldPickerCombo"] = "fieldPickerCombo";
+ // DPI_PairedFieldPickerCombo, having type FieldPickerComboPresModel
+ ParameterId["PairedFieldPickerCombo"] = "pairedFieldPickerCombo";
+ // DPI_ReferenceLineEditorPresModel, having type ReferenceLineEditorPresModel
+ ParameterId["ReferenceLineEditorPresModel"] = "referenceLineEditor";
+ // DPI_CloseDataSourceErrorDialogPresModel, having type CloseDataSourceErrorDialogPresModel
+ ParameterId["CloseDataSourceErrorDialogPresModel"] = "closeDsErrorDialog";
+ // DPI_EditReferenceLine, having type EditReferenceLinePresModel
+ ParameterId["EditReferenceLine"] = "editReferenceLine";
+ // DPI_EditReferenceBand, having type EditReferenceBandPresModel
+ ParameterId["EditReferenceBand"] = "editReferenceBand";
+ // DPI_EditDistribution, having type EditDistributionPresModel
+ ParameterId["EditDistribution"] = "editDistribution";
+ // DPI_DistributionPercentages, having type DistributionPercentagesPresModel
+ ParameterId["DistributionPercentages"] = "distributionPercentages";
+ // DPI_DistributionPercentiles, having type DistributionPercentilesPresModel
+ ParameterId["DistributionPercentiles"] = "distributionPercentiles";
+ // DPI_DistributionQuantiles, having type DistributionQuantilesPresModel
+ ParameterId["DistributionQuantiles"] = "distributionQuantiles";
+ // DPI_DistributionStandardDeviation, having type DistributionStandardDeviationPresModel
+ ParameterId["DistributionStandardDeviation"] = "distributionStddev";
+ // DPI_SortIndicators, having type SortIndicatorsPresModel
+ ParameterId["SortIndicators"] = "sortIndicators";
+ // DPI_SortIndicatorRegion, having type SortIndicatorRegionPresModel
+ ParameterId["SortIndicatorRegion"] = "sortIndicatorRegion";
+ // DPI_SortIndicatorRegions, having type SortIndicatorRegionPresModel[]
+ ParameterId["SortIndicatorRegions"] = "sortIndicatorRegions";
+ // DPI_SortIndicatorItem, having type SortIndicatorItemPresModel
+ ParameterId["SortIndicatorItem"] = "sortIndicatorItem";
+ // DPI_SortIndicatorItems, having type SortIndicatorItemPresModel[]
+ ParameterId["SortIndicatorItems"] = "sortIndicatorItems";
+ // DPI_BuilderConfig, having type BuilderConfigPresModel
+ ParameterId["BuilderConfig"] = "builderConfig";
+ // DPI_SheetLayoutInfo, having type SheetLayoutInfoPresModel
+ ParameterId["SheetLayoutInfo"] = "sheetLayoutInfo";
+ // DPI_AreaRect, having type RectanglePresModel
+ ParameterId["AreaRect"] = "areaRect";
+ // DPI_Border, having type RectanglePresModel
+ ParameterId["Border"] = "borderRect";
+ // DPI_BoundsRect, having type RectanglePresModel
+ ParameterId["BoundsRect"] = "boundsRect";
+ // DPI_ButtonRect, having type RectanglePresModel
+ ParameterId["ButtonRect"] = "buttonRect";
+ // DPI_DragRect, having type RectanglePresModel
+ ParameterId["DragRect"] = "dragRect";
+ // DPI_FocusRect, having type RectanglePresModel
+ ParameterId["FocusRect"] = "focusRect";
+ // DPI_ImageTileRect, having type RectanglePresModel
+ ParameterId["ImageTileRect"] = "tileRect";
+ // DPI_ItemRect, having type RectanglePresModel
+ ParameterId["ItemRect"] = "itemRect";
+ // DPI_LabelRect, having type RectanglePresModel
+ ParameterId["LabelRect"] = "labelRect";
+ // DPI_MarkRect, having type RectanglePresModel
+ ParameterId["MarkRect"] = "markRect";
+ // DPI_MarkTooltipRect, having type RectanglePresModel
+ ParameterId["MarkTooltipRect"] = "markTooltipRect";
+ // DPI_MenuButtonRect, having type RectanglePresModel
+ ParameterId["MenuButtonRect"] = "menuButtonRect";
+ // DPI_OutRegionRect, having type RectanglePresModel
+ ParameterId["OutRegionRect"] = "outRegionRect";
+ // DPI_PaneRect, having type RectanglePresModel
+ ParameterId["PaneRect"] = "paneRect";
+ // DPI_PixelExtents, having type RectanglePresModel
+ ParameterId["PixelExtents"] = "pixelExtents";
+ // DPI_RectMaxLabel, having type RectanglePresModel
+ ParameterId["RectMaxLabel"] = "rectMaxLabel";
+ // DPI_RectMinLabel, having type RectanglePresModel
+ ParameterId["RectMinLabel"] = "rectMinLabel";
+ // DPI_RectRamp, having type RectanglePresModel
+ ParameterId["RectRamp"] = "rectRamp";
+ // DPI_RectTitle, having type RectanglePresModel
+ ParameterId["RectTitle"] = "rectTitle";
+ // DPI_RegionRect, having type RectanglePresModel
+ ParameterId["RegionRect"] = "regionRect";
+ // DPI_SelectionRect, having type RectanglePresModel
+ ParameterId["SelectionRect"] = "selectionRect";
+ // DPI_UnusedRect, having type RectanglePresModel
+ ParameterId["UnusedRect"] = "unusedRect";
+ // DPI_ZoneEdgeRect, having type RectanglePresModel
+ ParameterId["ZoneEdgeRect"] = "zoneEdge";
+ // DPI_ZoneEdgeRectPix, having type RectanglePresModel
+ ParameterId["ZoneEdgeRectPix"] = "zoneEdgePix";
+ // DPI_ZoneEdgeRectPp, having type RectanglePresModel
+ ParameterId["ZoneEdgeRectPp"] = "zoneEdgePp";
+ // DPI_UIAutomationLinkRect, having type RectanglePresModel
+ ParameterId["UIAutomationLinkRect"] = "linkRect";
+ // DPI_Borders, having type RectanglePresModel[]
+ ParameterId["Borders"] = "borderRects";
+ // DPI_UIAutomationLinkRects, having type RectanglePresModel[]
+ ParameterId["UIAutomationLinkRects"] = "linkRects";
+ // DPI_DomainExtents, having type DoubleRectanglePresModel
+ ParameterId["DomainExtents"] = "domainExtents";
+ // DPI_MapDomainExtents, having type DoubleRectanglePresModel
+ ParameterId["MapDomainExtents"] = "mapDomainExtents";
+ // DPI_MapLatLongRect, having type MapRectPresModel
+ ParameterId["MapLatLongRect"] = "mapLatLongRect";
+ // DPI_Center, having type PointPresModel
+ ParameterId["Center"] = "center";
+ // DPI_CenterMarkLineBegin, having type PointPresModel
+ ParameterId["CenterMarkLineBegin"] = "centerMarkLineBegin";
+ // DPI_CenterMarkLineEnd, having type PointPresModel
+ ParameterId["CenterMarkLineEnd"] = "centerMarkLineEnd";
+ // DPI_DropLocation, having type PointPresModel
+ ParameterId["DropLocation"] = "dropLocation";
+ // DPI_EndPt, having type PointPresModel
+ ParameterId["EndPt"] = "endPoint";
+ // DPI_GrabLocation, having type PointPresModel
+ ParameterId["GrabLocation"] = "grabLocation";
+ // DPI_GridOrigin, having type PointPresModel
+ ParameterId["GridOrigin"] = "gridOrigin";
+ // DPI_LassoSelectionPoint, having type PointPresModel
+ ParameterId["LassoSelectionPoint"] = "lassoSelectionPoint";
+ // DPI_MenuLocation, having type PointPresModel
+ ParameterId["MenuLocation"] = "menuLocation";
+ // DPI_MoveOffset, having type PointPresModel
+ ParameterId["MoveOffset"] = "moveOffset";
+ // DPI_OverlayAnchor, having type PointPresModel
+ ParameterId["OverlayAnchor"] = "overlayAnchor";
+ // DPI_PanAmount, having type PointPresModel
+ ParameterId["PanAmount"] = "panAmount";
+ // DPI_PanLocation, having type PointPresModel
+ ParameterId["PanLocation"] = "panLocation";
+ // DPI_PaneResolverLocation, having type PointPresModel
+ ParameterId["PaneResolverLocation"] = "paneResolverLocation";
+ // DPI_PixelExtentsOffset, having type PointPresModel
+ ParameterId["PixelExtentsOffset"] = "extentsOffset";
+ // DPI_Point1, having type PointPresModel
+ ParameterId["Point1"] = "pt1";
+ // DPI_Point2, having type PointPresModel
+ ParameterId["Point2"] = "pt2";
+ // DPI_Point3, having type PointPresModel
+ ParameterId["Point3"] = "pt3";
+ // DPI_RegionPoint, having type PointPresModel
+ ParameterId["RegionPoint"] = "regionPoint";
+ // DPI_ScrollOffset, having type PointPresModel
+ ParameterId["ScrollOffset"] = "scrollOffset";
+ // DPI_SelectAtPoint, having type PointPresModel
+ ParameterId["SelectAtPoint"] = "selectAtPoint";
+ // DPI_SelectOffset, having type PointPresModel
+ ParameterId["SelectOffset"] = "selectOffset";
+ // DPI_TargetPt, having type PointPresModel
+ ParameterId["TargetPt"] = "targetPoint";
+ // DPI_TextOrigin, having type PointPresModel
+ ParameterId["TextOrigin"] = "textOrigin";
+ // DPI_TooltipAnchorPoint, having type PointPresModel
+ ParameterId["TooltipAnchorPoint"] = "tooltipAnchorPoint";
+ // DPI_TooltipOffset, having type PointPresModel
+ ParameterId["TooltipOffset"] = "tooltipOffset";
+ // DPI_VizLocation, having type PointPresModel
+ ParameterId["VizLocation"] = "vizLocation";
+ // DPI_ZoomAnchorPoint, having type PointPresModel
+ ParameterId["ZoomAnchorPoint"] = "zoomAnchorPoint";
+ // DPI_MenuAnchorPoint, having type PointPresModel
+ ParameterId["MenuAnchorPoint"] = "menuAnchorPoint";
+ // DPI_OverlayAnchors, having type PointPresModel[]
+ ParameterId["OverlayAnchors"] = "overlayAnchors";
+ // DPI_LassoSelection, having type PointPresModel[]
+ ParameterId["LassoSelection"] = "lassoSelection";
+ // DPI_ScrollOffsetPoints, having type PointPresModel[]
+ ParameterId["ScrollOffsetPoints"] = "scrollOffsetPoints";
+ // DPI_RadialSelection, having type CirclePresModel
+ ParameterId["RadialSelection"] = "radialSelection";
+ // DPI_DomainOrigin, having type FloatPointPresModel
+ ParameterId["DomainOrigin"] = "domainOrigin";
+ // DPI_FloatCenter, having type FloatPointPresModel
+ ParameterId["FloatCenter"] = "floatCenter";
+ // DPI_FloatPoint, having type FloatPointPresModel
+ ParameterId["FloatPoint"] = "floatPoint";
+ // DPI_ClientAvailableSpace, having type SizePresModel
+ ParameterId["ClientAvailableSpace"] = "clientAvailableSpace";
+ // DPI_DashboardPortSize, having type SizePresModel
+ ParameterId["DashboardPortSize"] = "dashboardPort";
+ // DPI_LegendSize, having type SizePresModel
+ ParameterId["LegendSize"] = "legendSize";
+ // DPI_StoryPortSize, having type SizePresModel
+ ParameterId["StoryPortSize"] = "storyPort";
+ // DPI_SwatchAreaSize, having type SizePresModel
+ ParameterId["SwatchAreaSize"] = "areaSize";
+ // DPI_SwatchImageSize, having type SizePresModel
+ ParameterId["SwatchImageSize"] = "imageSize";
+ // DPI_ViewportSize, having type SizePresModel
+ ParameterId["ViewportSize"] = "viewportSize";
+ // DPI_WorksheetPortSize, having type SizePresModel
+ ParameterId["WorksheetPortSize"] = "worksheetPort";
+ // DPI_ResizeEntity, having type ResizeEntityPresModel
+ ParameterId["ResizeEntity"] = "resizeEntity";
+ // DPI_RowResizers, having type ResizeEntityPresModel[]
+ ParameterId["RowResizers"] = "rowResizers";
+ // DPI_ColResizers, having type ResizeEntityPresModel[]
+ ParameterId["ColResizers"] = "colResizers";
+ // DPI_ResizeInfoPresModel, having type ResizeInfoPresModel
+ ParameterId["ResizeInfoPresModel"] = "resizeInfo";
+ // DPI_ServerSheet, having type ServerSheetPresModel
+ ParameterId["ServerSheet"] = "serverSheet";
+ // DPI_ServerSheets, having type ServerSheetPresModel[]
+ ParameterId["ServerSheets"] = "serverSheets";
+ // DPI_SheetInfo, having type SheetInfoPresModel
+ ParameterId["SheetInfo"] = "sheetInfo";
+ // DPI_SheetsInfo, having type SheetInfoPresModel[]
+ ParameterId["SheetsInfo"] = "sheetsInfo";
+ // DPI_ServerWorkbook, having type ServerWorkbookPresModel
+ ParameterId["ServerWorkbook"] = "serverWorkbook";
+ // DPI_PDFExportOptionsPresModel, having type PDFExportOptionsPresModel
+ ParameterId["PDFExportOptionsPresModel"] = "pdfExport";
+ // DPI_ExportFileResultPresModel, having type ExportFileResultPresModel
+ ParameterId["ExportFileResultPresModel"] = "pdfResult";
+ // DPI_PDFSheet, having type PDFSheetPresModel
+ ParameterId["PDFSheet"] = "pdfSheet";
+ // DPI_SheetOptions, having type PDFSheetPresModel[]
+ ParameterId["SheetOptions"] = "sheetOptions";
+ // DPI_ExportLayoutOptions, having type ExportLayoutOptionsPresModel
+ ParameterId["ExportLayoutOptions"] = "exportLayoutOptions";
+ // DPI_DataAlertConditionOperationType, having type DataAlertConditionOperationType
+ ParameterId["DataAlertConditionOperationType"] = "dataAlertConditionOp";
+ // DPI_DataAlertDialogPresModel, having type DataAlertDialogPresModel
+ ParameterId["DataAlertDialogPresModel"] = "dataAlertDialogPresModel";
+ // DPI_DataAlertMeasure, having type DataAlertMeasurePresModel
+ ParameterId["DataAlertMeasure"] = "dataAlertMeasure";
+ // DPI_DataAlertMeasures, having type DataAlertMeasurePresModel[]
+ ParameterId["DataAlertMeasures"] = "dataAlertMeasures";
+ // DPI_DataAlertConstantCondition, having type DataAlertConstantConditionPresModel
+ ParameterId["DataAlertConstantCondition"] = "dataAlertConstantCondition";
+ // DPI_DataAlertDialogMode, having type DataAlertDialogMode
+ ParameterId["DataAlertDialogMode"] = "dataAlertDialogMode";
+ // DPI_LightweightMapOptions, having type LightweightMapOptionsPresModel
+ ParameterId["LightweightMapOptions"] = "lightweightMapOptions";
+ // DPI_DataHighlighter, having type DataHighlighterPresModel
+ ParameterId["DataHighlighter"] = "dataHighlighter";
+ // DPI_DataHighlighterItemSet, having type DataHighlighterItemSetPresModel
+ ParameterId["DataHighlighterItemSet"] = "dataHighlighterItemSet";
+ // DPI_DataHighlighterItem, having type DataHighlighterItemPresModel
+ ParameterId["DataHighlighterItem"] = "dataHighlighterItem";
+ // DPI_DataHighlighterItems, having type DataHighlighterItemPresModel[]
+ ParameterId["DataHighlighterItems"] = "dataHighlighterItems";
+ // DPI_CategoricalLegendLayout, having type CategoricalLegendLayoutPresModel
+ ParameterId["CategoricalLegendLayout"] = "catLegendLayout";
+ // DPI_CategoricalLegend, having type CategoricalLegendPresModel
+ ParameterId["CategoricalLegend"] = "categoricalLegend";
+ // DPI_CategoricalLegends, having type CategoricalLegendPresModel[]
+ ParameterId["CategoricalLegends"] = "categoricalLegends";
+ // DPI_CategoricalColorLegend, having type CategoricalColorLegendPresModel
+ ParameterId["CategoricalColorLegend"] = "colorLegend";
+ // DPI_ColorLegendItem, having type CategoricalColorLegendItemPresModel
+ ParameterId["ColorLegendItem"] = "colorLegendItem";
+ // DPI_ColorLegendItems, having type CategoricalColorLegendItemPresModel[]
+ ParameterId["ColorLegendItems"] = "colorLegendItems";
+ // DPI_CategoricalShapeLegend, having type CategoricalShapeLegendPresModel
+ ParameterId["CategoricalShapeLegend"] = "categoricalShapeLegend";
+ // DPI_ShapeLegendItem, having type CategoricalShapeLegendItemPresModel
+ ParameterId["ShapeLegendItem"] = "shapeLegendItem";
+ // DPI_ShapeLegendItems, having type CategoricalShapeLegendItemPresModel[]
+ ParameterId["ShapeLegendItems"] = "shapeLegendItems";
+ // DPI_CategoricalHighlightLegend, having type CategoricalHighlightLegendPresModel
+ ParameterId["CategoricalHighlightLegend"] = "categoricalHighlightLegend";
+ // DPI_HighlightLegendItem, having type CategoricalLegendItemPresModel
+ ParameterId["HighlightLegendItem"] = "highlightLegendItem";
+ // DPI_HighlightLegendItems, having type CategoricalLegendItemPresModel[]
+ ParameterId["HighlightLegendItems"] = "highlightLegendItems";
+ // DPI_CategoricalSizeLegend, having type CategoricalSizeLegendPresModel
+ ParameterId["CategoricalSizeLegend"] = "categoricalSizeLegend";
+ // DPI_SizeLegendItem, having type CategoricalSizeLegendItemPresModel
+ ParameterId["SizeLegendItem"] = "sizeLegendItem";
+ // DPI_SizeLegendItems, having type CategoricalSizeLegendItemPresModel[]
+ ParameterId["SizeLegendItems"] = "sizeLegendItems";
+ // DPI_CategoricalMapLegend, having type CategoricalMapLegendPresModel
+ ParameterId["CategoricalMapLegend"] = "categoricalMapLegend";
+ // DPI_QuantitativeColorLegend, having type QuantitativeColorLegendPresModel
+ ParameterId["QuantitativeColorLegend"] = "quantitativeColorLegend";
+ // DPI_QuantitativeColorLegends, having type QuantitativeColorLegendPresModel[]
+ ParameterId["QuantitativeColorLegends"] = "quantitativeColorLegends";
+ // DPI_QuantitativeLegendLayout, having type QuantitativeLegendLayoutPresModel
+ ParameterId["QuantitativeLegendLayout"] = "quantitativeLegendLayout";
+ // DPI_ServerRenderedLegend, having type ServerRenderedLegendPresModel
+ ParameterId["ServerRenderedLegend"] = "serverRenderedLegend";
+ // DPI_CategoricalFilter, having type CategoricalFilterPresModel
+ ParameterId["CategoricalFilter"] = "categoricalFilter";
+ // DPI_CategoricalFilterRelational, having type CategoricalFilterRelationalPresModel
+ ParameterId["CategoricalFilterRelational"] = "categoricalFilterRelational";
+ // DPI_CategoricalFilterMemberDomainPage, having type CategoricalFilterMemberDomainPagePresModel
+ ParameterId["CategoricalFilterMemberDomainPage"] = "categoricalFilterMemberDomainPage";
+ // DPI_CategoricalFilterCacheInfo, having type CategoricalFilterCacheInfoPresModel
+ ParameterId["CategoricalFilterCacheInfo"] = "categoricalFilterCacheInfo";
+ // DPI_CategoricalFilterPatternDisplay, having type CategoricalFilterPatternDisplayPresModel
+ ParameterId["CategoricalFilterPatternDisplay"] = "categoricalFilterPatternDisplay";
+ // DPI_CategoricalFilterPatternUpdate, having type CategoricalFilterPatternUpdatePresModel
+ ParameterId["CategoricalFilterPatternUpdate"] = "categoricalFilterPatternUpdate";
+ // DPI_CategoricalFilterConditionDisplay, having type CategoricalFilterConditionDisplayPresModel
+ ParameterId["CategoricalFilterConditionDisplay"] = "categoricalFilterConditionDisplay";
+ // DPI_CategoricalFilterConditionUpdate, having type CategoricalFilterConditionUpdatePresModel
+ ParameterId["CategoricalFilterConditionUpdate"] = "categoricalFilterConditionUpdate";
+ // DPI_CategoricalFilterLimitDisplay, having type CategoricalFilterLimitDisplayPresModel
+ ParameterId["CategoricalFilterLimitDisplay"] = "categoricalFilterLimitDisplay";
+ // DPI_CategoricalFilterLimitUpdate, having type CategoricalFilterLimitUpdatePresModel
+ ParameterId["CategoricalFilterLimitUpdate"] = "categoricalFilterLimitUpdate";
+ // DPI_CategoricalFilterNew, having type CategoricalFilter_NewPresModel
+ ParameterId["CategoricalFilterNew"] = "categoricalFilterNew";
+ // DPI_CategoricalFilterHierarchy, having type CategoricalFilterHierarchyPresModel
+ ParameterId["CategoricalFilterHierarchy"] = "categoricalFilterHirerarchy";
+ // DPI_CategoricalFilterUpdate, having type CategoricalFilterUpdatePresModel
+ ParameterId["CategoricalFilterUpdate"] = "categoricalFilterUpdate";
+ // DPI_CategoricalFilterRelationalState, having type CategoricalFilterRelationalStatePresModel
+ ParameterId["CategoricalFilterRelationalState"] = "categoricalRelationalState";
+ // DPI_CategoricalFilterRelationalUpdatedState, having type CategoricalFilterRelationalStatePresModel
+ ParameterId["CategoricalFilterRelationalUpdatedState"] = "categoricalRelationalUpdatedState";
+ // DPI_CategoricalFilterRelationalDomainInfo, having type CategoricalFilterRelationalDomainInfoPresModel
+ ParameterId["CategoricalFilterRelationalDomainInfo"] = "categoricalFilterRelationalDomainInfo";
+ // DPI_CategoricalFilterRelationalDisplay, having type CategoricalFilterRelationalDisplayPresModel
+ ParameterId["CategoricalFilterRelationalDisplay"] = "categoricalFilterRelationalDisplay";
+ // DPI_ExpressionToken, having type ExpressionTokenPresModel
+ ParameterId["ExpressionToken"] = "expressionToken";
+ // DPI_ExpressionTokens, having type ExpressionTokenPresModel[]
+ ParameterId["ExpressionTokens"] = "expressionTokens";
+ // DPI_FormulaValidation, having type FormulaValidationPresModel
+ ParameterId["FormulaValidation"] = "formulaValidation";
+ // DPI_CaptionedFilterValue, having type FilterValuePresModel
+ ParameterId["CaptionedFilterValue"] = "captionedFilterValue";
+ // DPI_CaptionedRangeMin, having type FilterValuePresModel
+ ParameterId["CaptionedRangeMin"] = "captionedRangeMin";
+ // DPI_CaptionedRangeMax, having type FilterValuePresModel
+ ParameterId["CaptionedRangeMax"] = "captionedRangeMax";
+ // DPI_CaptionedAnchorDate, having type FilterValuePresModel
+ ParameterId["CaptionedAnchorDate"] = "captionedAnchorDate";
+ // DPI_CaptionedFilterValueList, having type FilterValuePresModel[]
+ ParameterId["CaptionedFilterValueList"] = "captionedFilterValueList";
+ // DPI_CategoricalFilterInfo, having type CategoricalFilterInfoPresModel
+ ParameterId["CategoricalFilterInfo"] = "categoricalFilterInfo";
+ // DPI_QuantitativeFilterInfo, having type QuantitativeFilterInfoPresModel
+ ParameterId["QuantitativeFilterInfo"] = "quantitativeFilterInfo";
+ // DPI_RelativeDateFilterInfo, having type RelativeDateFilterInfoPresModel
+ ParameterId["RelativeDateFilterInfo"] = "relativeDateFilterInfo";
+ // DPI_FilterSelectMeasure, having type FilterSelectMeasurePresModel
+ ParameterId["FilterSelectMeasure"] = "filterSelectMeasure";
+ // DPI_FilterListItem, having type FilterListItemPresModel
+ ParameterId["FilterListItem"] = "filterListItem";
+ // DPI_FilterListItems, having type FilterListItemPresModel[]
+ ParameterId["FilterListItems"] = "filterItems";
+ // DPI_FilterFieldInfo, having type FilterFieldInfoPresModel
+ ParameterId["FilterFieldInfo"] = "filterFieldInfo";
+ // DPI_FilterInfo, having type FilterInfoPresModel
+ ParameterId["FilterInfo"] = "filterInfo";
+ // DPI_FiltersInfo, having type FilterInforPresModel[]
+ ParameterId["FiltersInfo"] = "filtersInfo";
+ // DPI_CategoricalDomain, having type CategoricalDomainPresModel
+ ParameterId["CategoricalDomain"] = "categoricalDomain";
+ // DPI_QuantitativeDomain, having type QuantitativeDomainPresModel
+ ParameterId["QuantitativeDomain"] = "quantitativeDomain";
+ // DPI_ValidationResults, having type ValidationResultsPresModel
+ ParameterId["ValidationResults"] = "validationResults";
+ // DPI_DomainMember, having type DomainMemberPresModel
+ ParameterId["DomainMember"] = "domainMember";
+ // DPI_DomainMembers, having type DomainMemberPresModel[]
+ ParameterId["DomainMembers"] = "domainMembers";
+ // DPI_QuickFilterDisplay, having type QuickFilterDisplayPresModel
+ ParameterId["QuickFilterDisplay"] = "quickFilterDisplay";
+ // DPI_QuickFilter, having type QuickFilterPresModel
+ ParameterId["QuickFilter"] = "quickFilter";
+ // DPI_QuantitativeQuickFilter, having type QuantitativeQuickFilterPresModel
+ ParameterId["QuantitativeQuickFilter"] = "quantitativeQuickFilter";
+ // DPI_RelativeDateQuickFilter, having type RelativeDateQuickFilterPresModel
+ ParameterId["RelativeDateQuickFilter"] = "relativeDateQuickFilter";
+ // DPI_CategoricalQuickFilter, having type CategoricalQuickFilterPresModel
+ ParameterId["CategoricalQuickFilter"] = "categoricalQuickFilter";
+ // DPI_HierarchicalQuickFilter, having type HierarchicalQuickFilterPresModel
+ ParameterId["HierarchicalQuickFilter"] = "hierarchicalQuickFilter";
+ // DPI_DomainTable, having type DomainTablePresModel
+ ParameterId["DomainTable"] = "domainTable";
+ // DPI_DomainTables, having type DomainTablePresModel[]
+ ParameterId["DomainTables"] = "domainTables";
+ // DPI_DomainTuples, having type Tuples
+ ParameterId["DomainTuples"] = "domainTuples";
+ // DPI_SearchTuples, having type Tuples
+ ParameterId["SearchTuples"] = "searchTuples";
+ // DPI_SelectedTuples, having type TupleHash
+ ParameterId["SelectedTuples"] = "selectedTuples";
+ // DPI_PendingTuples, having type TupleHash
+ ParameterId["PendingTuples"] = "pendingTuples";
+ // DPI_Domain, having type MultiDomain
+ ParameterId["Domain"] = "domain";
+ // DPI_DateOption, having type DateBinDialogOptionPresModel
+ ParameterId["DateOption"] = "dateOption";
+ // DPI_DateOptions, having type DateBinDialogOptionPresModel[]
+ ParameterId["DateOptions"] = "dateOptions";
+ // DPI_FilterRangeAdd, having type FilterRangePresModel
+ ParameterId["FilterRangeAdd"] = "filterRangeAdd";
+ // DPI_FilterRangeRemove, having type FilterRangePresModel
+ ParameterId["FilterRangeRemove"] = "filterRangeRemove";
+ // DPI_FilterOptions, having type FilterOptionsPresModel
+ ParameterId["FilterOptions"] = "filterOptions";
+ // DPI_Layer, having type LayerPresModel
+ ParameterId["Layer"] = "layer";
+ // DPI_Layers, having type LayerPresModel[]
+ ParameterId["Layers"] = "layers";
+ // DPI_MarksCardPresModel, having type MarksCardPresModel
+ ParameterId["MarksCardPresModel"] = "marksCardPresModel";
+ // DPI_UIItem, having type UIItemPresModel
+ ParameterId["UIItem"] = "uiItem";
+ // DPI_EncodingUIItem, having type EncodingUIItemPresModel
+ ParameterId["EncodingUIItem"] = "encodingUiItem";
+ // DPI_EncodingUIItems, having type EncodingUIItemPresModel[]
+ ParameterId["EncodingUIItems"] = "encodingUiItems";
+ // DPI_PrimTypeUIItem, having type PrimitiveTypeUIItemPresModel
+ ParameterId["PrimTypeUIItem"] = "primitiveTypeUiItem";
+ // DPI_PrimTypeUIItems, having type PrimitiveTypeUIItemPresModel[]
+ ParameterId["PrimTypeUIItems"] = "primitiveTypeUiItems";
+ // DPI_PrimitiveTypeUIItemOptions, having type PrimitiveTypeUIItemOptionsPresModel
+ ParameterId["PrimitiveTypeUIItemOptions"] = "primitiveTypeUiItemOptions";
+ // DPI_LineUIItemOptions, having type LineUIItemOptionsPresModel
+ ParameterId["LineUIItemOptions"] = "lineUiItemOptions";
+ // DPI_LineInterpolationModeUIItem, having type LineInterpolationModeUIItemPresModel
+ ParameterId["LineInterpolationModeUIItem"] = "lineInterpolationModeUiItem";
+ // DPI_LineInterpolationModeUIItemSet, having type LineInterpolationModeUIItemPresModel[]
+ ParameterId["LineInterpolationModeUIItemSet"] = "lineInterpolationModeUiItemSet";
+ // DPI_LineMarkerPositionUIItem, having type LineMarkerPositionUIItemPresModel
+ ParameterId["LineMarkerPositionUIItem"] = "lineMarkerPositionUiItem";
+ // DPI_LineMarkerPositionUIItemSet, having type LineMarkerPositionUIItemPresModel[]
+ ParameterId["LineMarkerPositionUIItemSet"] = "lineMarkerPositionUiItemSet";
+ // DPI_MarksCardDropdownItem, having type MarksCardDropdownItemPresModel
+ ParameterId["MarksCardDropdownItem"] = "marksCardDropdownItem";
+ // DPI_TooltipDropdownItem, having type TooltipDropdownItemPresModel
+ ParameterId["TooltipDropdownItem"] = "tooltipDropdownItem";
+ // DPI_TextDropdownItem, having type TextDropdownItemPresModel
+ ParameterId["TextDropdownItem"] = "textDropdownItem";
+ // DPI_ColorDropdownItem, having type ColorDropdownItemPresModel
+ ParameterId["ColorDropdownItem"] = "colorDropdownItem";
+ // DPI_SizeSliderPresModel, having type SizeSliderPresModel
+ ParameterId["SizeSliderPresModel"] = "sizeSliderPresModel";
+ // DPI_InflectionPoint, having type InflectionPointPresModel
+ ParameterId["InflectionPoint"] = "inflectionPoint";
+ // DPI_InflectionPoints, having type InflectionPointPresModel[]
+ ParameterId["InflectionPoints"] = "inflectionPoints";
+ // DPI_Notch, having type NotchPresModel
+ ParameterId["Notch"] = "notch";
+ // DPI_Notches, having type NotchPresModel[]
+ ParameterId["Notches"] = "notches";
+ // DPI_MarkSizeOptionsPresModel, having type MarkSizeOptionsPresModel
+ ParameterId["MarkSizeOptionsPresModel"] = "markSizeOptionsPresModel";
+ // DPI_ModifyMarksInSet, having type AddOrRemoveMarks
+ ParameterId["ModifyMarksInSet"] = "addOrRemoveMarks";
+ // DPI_MarkLabelsSpecification, having type MarkLabelsSpecificationPresModel
+ ParameterId["MarkLabelsSpecification"] = "markLabelsSpecification";
+ // DPI_ColorPalette, having type ColorPalettePresModel
+ ParameterId["ColorPalette"] = "colorPalette";
+ // DPI_SelectedColorPalette, having type ColorPalettePresModel
+ ParameterId["SelectedColorPalette"] = "selectedColorPalette";
+ // DPI_ColorPalettes, having type ColorPalettePresModel[]
+ ParameterId["ColorPalettes"] = "colorPalettes";
+ // DPI_ColorPaletteGroup, having type ColorPaletteGroupPresModel
+ ParameterId["ColorPaletteGroup"] = "colorPaletteGroup";
+ // DPI_CatColorPaletteGroups, having type ColorPaletteGroupPresModel[]
+ ParameterId["CatColorPaletteGroups"] = "catColorPaletteGroups";
+ // DPI_QColorPaletteGroups, having type ColorPaletteGroupPresModel[]
+ ParameterId["QColorPaletteGroups"] = "qColorPaletteGroups";
+ // DPI_ColorPaletteCollection, having type ColorPaletteCollectionPresModel
+ ParameterId["ColorPaletteCollection"] = "colorPaletteCollection";
+ // DPI_QuantitativeColor, having type QuantitativeColorPresModel
+ ParameterId["QuantitativeColor"] = "quantitativeColor";
+ // DPI_CategoricalColor, having type CategoricalColorPresModel
+ ParameterId["CategoricalColor"] = "categoricalColor";
+ // DPI_ItemColorPair, having type ItemColorPairPresModel
+ ParameterId["ItemColorPair"] = "itemColorPair";
+ // DPI_ItemColorPairs, having type ItemColorPairPresModel[]
+ ParameterId["ItemColorPairs"] = "itemColorPairs";
+ // DPI_VQLCommandResponse, having type VQLCommandResponsePresModel
+ ParameterId["VQLCommandResponse"] = "vqlCmdResponse";
+ // DPI_LayoutStatus, having type LayoutStatusPresModel
+ ParameterId["LayoutStatus"] = "layoutStatus";
+ // DPI_VizState, having type VizStatePresModel
+ ParameterId["VizState"] = "vizState";
+ // DPI_VizStateList, having type VizStatePresModel[]
+ ParameterId["VizStateList"] = "vizStateList";
+ // DPI_CommandResult, having type CommandResultPresModel
+ ParameterId["CommandResult"] = "cmdResult";
+ // DPI_CommandResultList, having type CommandResultPresModel[]
+ ParameterId["CommandResultList"] = "cmdResultList";
+ // DPI_URLAction, having type URLActionPresModel
+ ParameterId["URLAction"] = "urlAction";
+ // DPI_URLActionList, having type URLActionPresModel[]
+ ParameterId["URLActionList"] = "urlActionList";
+ // DPI_LegacyMenu, having type LegacyMenuPresModel
+ ParameterId["LegacyMenu"] = "legacyMenu";
+ // DPI_LegacyMenus, having type LegacyMenuPresModel[]
+ ParameterId["LegacyMenus"] = "legacyMenus";
+ // DPI_ConnectionAttemptInfo, having type ConnectionAttemptInfoPresModel
+ ParameterId["ConnectionAttemptInfo"] = "connectionAttemptInfo";
+ // DPI_DataSourceConnectionAttemptInfo, having type DataSourceConnectionAttemptInfoPresModel
+ ParameterId["DataSourceConnectionAttemptInfo"] = "dataSourceConnectionAttemptInfo";
+ // DPI_DataSourceConnectionAttemptInfos, having type DataSourceConnectionAttemptInfoPresModel[]
+ ParameterId["DataSourceConnectionAttemptInfos"] = "dataSourceConnectionAttemptInfos";
+ // DPI_CommandValidationPresModel, having type CommandValidationPresModel
+ ParameterId["CommandValidationPresModel"] = "commandValidationPresModel";
+ // DPI_WarningMessage, having type WarningMessagePresModel
+ ParameterId["WarningMessage"] = "warningMessagePresModel";
+ // DPI_ApplicationPresModel, having type ApplicationPresModel
+ ParameterId["ApplicationPresModel"] = "applicationPresModel";
+ // DPI_ToolbarPresModel, having type ToolbarPresModel
+ ParameterId["ToolbarPresModel"] = "toolbarPresModel";
+ // DPI_WorkbookPresModel, having type WorkbookPresModel
+ ParameterId["WorkbookPresModel"] = "workbookPresModel";
+ // DPI_ServerFonts, having type ServerFontsPresModel
+ ParameterId["ServerFonts"] = "serverFonts";
+ // DPI_PublishDataSourceMetadataPresModel, having type PublishDataSourceMetadataPresModel
+ ParameterId["PublishDataSourceMetadataPresModel"] = "publishDataSourceMetadataPresModel";
+ // DPI_DashboardPresModel, having type DashboardPresModel
+ ParameterId["DashboardPresModel"] = "dashboardPresModel";
+ // DPI_DashboardSizePresModel, having type DashboardSizePresModel
+ ParameterId["DashboardSizePresModel"] = "dashboardSizePresModel";
+ // DPI_DashboardSizeWithValidationPresModel, having type DashboardSizeWithValidationPresModel
+ ParameterId["DashboardSizeWithValidationPresModel"] = "dashboardSizeWithValidationPresModel";
+ // DPI_DashboardInfoPresModel, having type DashboardInfoPresModel
+ ParameterId["DashboardInfoPresModel"] = "dashboardInfoPresModel";
+ // DPI_VisualPresModel, having type VisualPresModel
+ ParameterId["VisualPresModel"] = "visual";
+ // DPI_VisualPresModels, having type VisualPresModel[]
+ ParameterId["VisualPresModels"] = "visuals";
+ // DPI_DropLinesPresModel, having type DropLinesPresModel
+ ParameterId["DropLinesPresModel"] = "dropLinesPresModel";
+ // DPI_DropFieldPresModel, having type DropFieldPresModel
+ ParameterId["DropFieldPresModel"] = "dropFieldPresModel";
+ // DPI_DropFieldResultPresModel, having type DropFieldResultPresModel
+ ParameterId["DropFieldResultPresModel"] = "dropFieldResultPresModel";
+ // DPI_CurrentAxisRange, having type DataValueRangePresModel
+ ParameterId["CurrentAxisRange"] = "currentAxisRange";
+ // DPI_CurrentAxisRangeNoTime, having type DataValueRangePresModel
+ ParameterId["CurrentAxisRangeNoTime"] = "currentAxisRangeNoTime";
+ // DPI_DefaultAxisRange, having type DataValueRangePresModel
+ ParameterId["DefaultAxisRange"] = "defaultAxisRange";
+ // DPI_NewAxisRange, having type DataValueRangePresModel
+ ParameterId["NewAxisRange"] = "newAxisRange";
+ // DPI_AxisOptions, having type AxisOptionsPresModel
+ ParameterId["AxisOptions"] = "axis";
+ // DPI_AxisMajorTicks, having type TickMarkInfoPresModel
+ ParameterId["AxisMajorTicks"] = "axisMajorTicks";
+ // DPI_AxisMinorTicks, having type TickMarkInfoPresModel
+ ParameterId["AxisMinorTicks"] = "axisMinorTicks";
+ // DPI_EditAxisDialog, having type EditAxisDialogPresModel
+ ParameterId["EditAxisDialog"] = "editAxisDialog";
+ // DPI_MarkLabels, having type ScenePresModel
+ ParameterId["MarkLabels"] = "markLabels";
+ // DPI_Scene, having type ScenePresModel
+ ParameterId["Scene"] = "scene";
+ // DPI_MapServer, having type MapServerPresModel
+ ParameterId["MapServer"] = "mapServer";
+ // DPI_VisualList, having type VisualListPresModel
+ ParameterId["VisualList"] = "visualList";
+ // DPI_DrawFirst, having type VisualListPresModel[]
+ ParameterId["DrawFirst"] = "drawFirst";
+ // DPI_DrawLast, having type VisualListPresModel[]
+ ParameterId["DrawLast"] = "drawLast";
+ // DPI_DrawPane, having type VisualListPresModel[]
+ ParameterId["DrawPane"] = "drawPane";
+ // DPI_UserPaneInfo, having type UserPaneInfoPresModel
+ ParameterId["UserPaneInfo"] = "userPaneInfo";
+ // DPI_AnalyticsPane, having type AnalyticsPanePresModel
+ ParameterId["AnalyticsPane"] = "analyticsPane";
+ // DPI_AnalyticsObjectItem, having type AnalyticsObjectItemPresModel
+ ParameterId["AnalyticsObjectItem"] = "analyticsObjectItem";
+ // DPI_AnalyticsObjectItems, having type AnalyticsObjectItemPresModel[]
+ ParameterId["AnalyticsObjectItems"] = "analyticsObjectItems";
+ // DPI_AnalyticsObjectGroup, having type AnalyticsObjectGroupPresModel
+ ParameterId["AnalyticsObjectGroup"] = "analyticsObjectGroup";
+ // DPI_AnalyticsObjectGroups, having type AnalyticsObjectGroupPresModel[]
+ ParameterId["AnalyticsObjectGroups"] = "analyticsObjectGroups";
+ // DPI_DropZoneItem, having type DropZoneItemPresModel
+ ParameterId["DropZoneItem"] = "dropZoneItem";
+ // DPI_DropZoneItems, having type DropZoneItemPresModel[]
+ ParameterId["DropZoneItems"] = "dropZoneItems";
+ // DPI_DropTargetInfo, having type DropTargetInfoPresModel
+ ParameterId["DropTargetInfo"] = "dropTargetInfo";
+ // DPI_Pane, having type PanePresModel
+ ParameterId["Pane"] = "pane";
+ // DPI_Panes, having type PanePresModel[]
+ ParameterId["Panes"] = "panes";
+ // DPI_RadialSelectionDistanceInfo, having type RadialSelectionDistanceInfoPresModel
+ ParameterId["RadialSelectionDistanceInfo"] = "radialSelectionDistanceInfo";
+ // DPI_MapScaleInfo, having type MapScaleInfoPresModel
+ ParameterId["MapScaleInfo"] = "mapScaleInfo";
+ // DPI_RenderNode, having type RenderNodePresModel
+ ParameterId["RenderNode"] = "renderNode";
+ // DPI_RenderNodes, having type RenderNodePresModel[]
+ ParameterId["RenderNodes"] = "renderNodes";
+ // DPI_PredictionBand, having type PredictionBandPresModel
+ ParameterId["PredictionBand"] = "predictionBand";
+ // DPI_PredictionWhisker, having type PredictionWhiskerPresModel
+ ParameterId["PredictionWhisker"] = "predictionWhisker";
+ // DPI_DrawGroup, having type DrawPointsPresModel
+ ParameterId["DrawGroup"] = "drawGroup";
+ // DPI_ClipReset, having type DrawItemPresModel
+ ParameterId["ClipReset"] = "clipReset";
+ // DPI_DrawItem, having type DrawItemPresModel
+ ParameterId["DrawItem"] = "drawItem";
+ // DPI_TransformPop, having type DrawItemPresModel
+ ParameterId["TransformPop"] = "transformPop";
+ // DPI_TransformPush, having type DrawItemPresModel
+ ParameterId["TransformPush"] = "transformPush";
+ // DPI_DrawItems, having type DrawItemPresModel[]
+ ParameterId["DrawItems"] = "drawItems";
+ // DPI_ClipRect, having type DrawPointsPresModel
+ ParameterId["ClipRect"] = "clipRect";
+ // DPI_DrawEllipse, having type DrawPointsPresModel
+ ParameterId["DrawEllipse"] = "drawEllipse";
+ // DPI_DrawFillEllipse, having type DrawPointsPresModel
+ ParameterId["DrawFillEllipse"] = "drawFillEllipse";
+ // DPI_DrawFillPolygon, having type DrawPointsPresModel
+ ParameterId["DrawFillPolygon"] = "drawFillPolygon";
+ // DPI_DrawFillRect, having type DrawPointsPresModel
+ ParameterId["DrawFillRect"] = "drawFillRect";
+ // DPI_DrawPolygon, having type DrawPointsPresModel
+ ParameterId["DrawPolygon"] = "drawPolygon";
+ // DPI_DrawPolyline, having type DrawPointsPresModel
+ ParameterId["DrawPolyline"] = "drawPolyline";
+ // DPI_DrawRect, having type DrawPointsPresModel
+ ParameterId["DrawRect"] = "drawRect";
+ // DPI_DrawFillPath, having type DrawPathPresModel
+ ParameterId["DrawFillPath"] = "drawFillPath";
+ // DPI_DrawPath, having type DrawPathPresModel
+ ParameterId["DrawPath"] = "drawPath";
+ // DPI_DrawText, having type DrawTextPresModel
+ ParameterId["DrawText"] = "drawText";
+ // DPI_DrawImage, having type DrawImagePresModel
+ ParameterId["DrawImage"] = "drawImage";
+ // DPI_ImageTileInfo, having type ImageTileInfoPresModel
+ ParameterId["ImageTileInfo"] = "tileInfo";
+ // DPI_ImageTileInfos, having type ImageTileInfoPresModel[]
+ ParameterId["ImageTileInfos"] = "tileInfos";
+ // DPI_DrawImageTiles, having type DrawImageTilesPresModel
+ ParameterId["DrawImageTiles"] = "drawImageTiles";
+ // DPI_DrawPen, having type DrawPenPresModel
+ ParameterId["DrawPen"] = "drawPen";
+ // DPI_DrawSolidBrush, having type DrawSolidBrushPresModel
+ ParameterId["DrawSolidBrush"] = "drawSolidBrush";
+ // DPI_DrawTextProperties, having type DrawTextPropertiesPresModel
+ ParameterId["DrawTextProperties"] = "drawTextProps";
+ // DPI_DrawGradientBrush, having type DrawGradientBrushPresModel
+ ParameterId["DrawGradientBrush"] = "drawGradientBrush";
+ // DPI_DrawTransform, having type DrawTransformPresModel
+ ParameterId["DrawTransform"] = "transform";
+ // DPI_DrawAntialias, having type DrawAntialiasPresModel
+ ParameterId["DrawAntialias"] = "drawAntialias";
+ // DPI_ImageDictionary, having type ImageDictionaryPresModel
+ ParameterId["ImageDictionary"] = "imageDictionary";
+ // DPI_ColorDictionary, having type ColorDictionaryPresModel
+ ParameterId["ColorDictionary"] = "colorDictionary";
+ // DPI_MarkShape, having type MarkShapePresModel
+ ParameterId["MarkShape"] = "markShape";
+ // DPI_MarkShapeList, having type MarkShapePresModel[]
+ ParameterId["MarkShapeList"] = "markShapeList";
+ // DPI_PaneDescriptor, having type PaneDescriptorPresModel
+ ParameterId["PaneDescriptor"] = "paneDescriptor";
+ // DPI_PDMarks, having type PDMarksPresModel
+ ParameterId["PDMarks"] = "pdMarks";
+ // DPI_PDMarksMap, having type Dictionary(of PDMarksPresModel)
+ ParameterId["PDMarksMap"] = "pdMarksMap";
+ // DPI_LabelTextTable, having type LabelTextTable
+ ParameterId["LabelTextTable"] = "labelTextTable";
+ // DPI_TextTableHelper, having type TextTableHelper
+ ParameterId["TextTableHelper"] = "textTableHelper";
+ // DPI_GeometryTable, having type GeometryTable
+ ParameterId["GeometryTable"] = "geometryTable";
+ // DPI_PaneMarks, having type PaneMarksPresModel
+ ParameterId["PaneMarks"] = "paneMarks";
+ // DPI_PaneMarksList, having type PaneMarksPresModel[]
+ ParameterId["PaneMarksList"] = "paneMarksList";
+ // DPI_BrushingSelection, having type SelectionPresModel
+ ParameterId["BrushingSelection"] = "brushing";
+ // DPI_Selection, having type SelectionPresModel
+ ParameterId["Selection"] = "selection";
+ // DPI_BrushingSelectionList, having type SelectionPresModel[]
+ ParameterId["BrushingSelectionList"] = "brushingSelectionList";
+ // DPI_SelectionList, having type SelectionPresModel[]
+ ParameterId["SelectionList"] = "selectionList";
+ // DPI_ShelfSelectionModel, having type ShelfSelectionPresModel
+ ParameterId["ShelfSelectionModel"] = "shelfSelectionModel";
+ // DPI_ShelfSelectionModels, having type ShelfSelectionPresModel[]
+ ParameterId["ShelfSelectionModels"] = "shelfSelectionModels";
+ // DPI_ShelfSelectionsModel, having type ShelfSelectionsPresModel
+ ParameterId["ShelfSelectionsModel"] = "shelfSelectionsModel";
+ // DPI_DimValSelectionModel, having type DimensionValueSelectionPresModel
+ ParameterId["DimValSelectionModel"] = "dimensionValueSelectionModel";
+ // DPI_DimValSelectionModels, having type DimensionValueSelectionPresModel[]
+ ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels";
+ // DPI_HierValSelectionModel, having type HierarchicalValueSelectionPresModel
+ ParameterId["HierValSelectionModel"] = "hierarchicalValueSelectionModel";
+ // DPI_HierValSelectionModels, having type HierarchicalValueSelectionPresModel[]
+ ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels";
+ // DPI_QuantRangeSelectionModel, having type QuantativeRangeSelectionPresModel
+ ParameterId["QuantRangeSelectionModel"] = "quantativeRangeSelectionModel";
+ // DPI_QuantRangeSelectionModels, having type QuantativeRangeSelectionPresModel[]
+ ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels";
+ // DPI_QuantValueSelectionModel, having type QuantativeValueSelectionPresModel
+ ParameterId["QuantValueSelectionModel"] = "quantativeValueSelectionModel";
+ // DPI_QuantValueSelectionModels, having type QuantativeValueSelectionPresModel[]
+ ParameterId["QuantValueSelectionModels"] = "quantativeValueSelectionModels";
+ // DPI_LegendSelectionInfo, having type LegendSelectionInfoPresModel
+ ParameterId["LegendSelectionInfo"] = "legendSelectionInfo";
+ // DPI_NodeReference, having type NodeReferencePresModel
+ ParameterId["NodeReference"] = "nodeReference";
+ // DPI_PageReference, having type PageReferencePresModel
+ ParameterId["PageReference"] = "pageReference";
+ // DPI_OrientedNodeReference, having type OrientedNodeReferencePresModel
+ ParameterId["OrientedNodeReference"] = "orientedNodeReference";
+ // DPI_OrientedNodeReferences, having type OrientedNodeReferencePresModel[]
+ ParameterId["OrientedNodeReferences"] = "orientedNodeReferences";
+ // DPI_SelectionData, having type SelectionDataPresModel
+ ParameterId["SelectionData"] = "selectionData";
+ // DPI_HighlightedData, having type HighlightedDataPresModel
+ ParameterId["HighlightedData"] = "highlightedData";
+ // DPI_Node, having type NodePresModel
+ ParameterId["Node"] = "node";
+ // DPI_Nodes, having type NodePresModel[]
+ ParameterId["Nodes"] = "nodes";
+ // DPI_SelectedNodes, having type NodePresModel[]
+ ParameterId["SelectedNodes"] = "selectedNodes";
+ // DPI_UserAction, having type ActionPresModel
+ ParameterId["UserAction"] = "userAction";
+ // DPI_UserActions, having type ActionPresModel[]
+ ParameterId["UserActions"] = "userActions";
+ // DPI_LinkSpec, having type LinkSpecPresModel
+ ParameterId["LinkSpec"] = "linkSpec";
+ // DPI_ActionSpecificationModel, having type ActionSpecificationPresModel
+ ParameterId["ActionSpecificationModel"] = "actionSpecification";
+ // DPI_LinkSpecification, having type LinkSpecificationPresModel
+ ParameterId["LinkSpecification"] = "linkSpecification";
+ // DPI_ScriptDescription, having type ScriptDescriptionPresModel
+ ParameterId["ScriptDescription"] = "scriptDescription";
+ // DPI_ActionSource, having type ActionSourcePresModel
+ ParameterId["ActionSource"] = "actionSource";
+ // DPI_FieldExprItem, having type FieldExprItemPresModel
+ ParameterId["FieldExprItem"] = "fieldExpressionItem";
+ // DPI_FieldExprVector, having type FieldExprItemPresModel[]
+ ParameterId["FieldExprVector"] = "fieldExpressionVector";
+ // DPI_ActionComboItem, having type ActionComboItemPresModel
+ ParameterId["ActionComboItem"] = "actionComboItem";
+ // DPI_ActionComboVector, having type ActionComboItemPresModel[]
+ ParameterId["ActionComboVector"] = "actionComboVector";
+ // DPI_ActionSourceCombo, having type ActionSourceComboPresModel
+ ParameterId["ActionSourceCombo"] = "actionSourceCombo";
+ // DPI_ActionDestCombo, having type ActionComboPresModel
+ ParameterId["ActionDestCombo"] = "actionDestCombo";
+ // DPI_ActionFieldList, having type ActionFieldListPresModel
+ ParameterId["ActionFieldList"] = "actionFieldList";
+ // DPI_EditBrushAction, having type EditBrushActionPresModel
+ ParameterId["EditBrushAction"] = "editBrushAction";
+ // DPI_UpdateActionSource, having type UpdateActionSourcePresModel
+ ParameterId["UpdateActionSource"] = "updateActionSource";
+ // DPI_UpdateBrushAction, having type UpdateBrushActionPresModel
+ ParameterId["UpdateBrushAction"] = "updateBrushAction";
+ // DPI_ActionWarnings, having type ActionWarningsPresModel
+ ParameterId["ActionWarnings"] = "actionWarnings";
+ // DPI_EditHyperlinkAction, having type EditHyperlinkActionPresModel
+ ParameterId["EditHyperlinkAction"] = "editHyperlinkAction";
+ // DPI_UpdateHyperlinkAction, having type UpdateHyperlinkActionPresModel
+ ParameterId["UpdateHyperlinkAction"] = "updateHyperlinkAction";
+ // DPI_EditSheetLinkAction, having type EditSheetLinkActionPresModel
+ ParameterId["EditSheetLinkAction"] = "editSheetlinkAction";
+ // DPI_UpdateSheetLinkAction, having type UpdateSheetLinkActionPresModel
+ ParameterId["UpdateSheetLinkAction"] = "updateSheetlinkAction";
+ // DPI_ActionItem, having type ActionItemPresModel
+ ParameterId["ActionItem"] = "actionItem";
+ // DPI_ActionItemList, having type ActionItemPresModel[]
+ ParameterId["ActionItemList"] = "actionItemList";
+ // DPI_DataSegment, having type DataSegmentPresModel
+ ParameterId["DataSegment"] = "dataSegment";
+ // DPI_DataSegments, having type Dictionary(of DataSegmentPresModel)
+ ParameterId["DataSegments"] = "dataSegments";
+ // DPI_DataDictionary, having type DataDictionaryPresModel
+ ParameterId["DataDictionary"] = "dataDictionary";
+ // DPI_VizData, having type VizDataPresModel
+ ParameterId["VizData"] = "vizData";
+ // DPI_VizColumn, having type VizColumnPresModel
+ ParameterId["VizColumn"] = "vizColumn";
+ // DPI_VizColumns, having type VizColumnPresModel[]
+ ParameterId["VizColumns"] = "vizColumns";
+ // DPI_VizDataColumn, having type VizDataColumnPresModel
+ ParameterId["VizDataColumn"] = "vizDataColumn";
+ // DPI_VizDataColumns, having type VizDataColumnPresModel[]
+ ParameterId["VizDataColumns"] = "vizDataColumns";
+ // DPI_VizPaneColumn, having type VizPaneColumnPresModel
+ ParameterId["VizPaneColumn"] = "vizPaneColumn";
+ // DPI_VizPaneColumns, having type VizPaneColumnPresModel[]
+ ParameterId["VizPaneColumns"] = "vizPaneColumns";
+ // DPI_PaneColumns, having type PaneColumnsPresModel
+ ParameterId["PaneColumns"] = "paneColumns";
+ // DPI_PaneColumnsList, having type PaneColumnsPresModel[]
+ ParameterId["PaneColumnsList"] = "paneColumnsList";
+ // DPI_PaneColumnsData, having type PaneColumnsDataPresModel
+ ParameterId["PaneColumnsData"] = "paneColumnsData";
+ // DPI_FilterContext, having type FilterContextPresModel
+ ParameterId["FilterContext"] = "filterContext";
+ // DPI_UberTipPaneData, having type UberTipPaneDataPresModel
+ ParameterId["UberTipPaneData"] = "ubertipPaneData";
+ // DPI_UberTipPaneDatas, having type UberTipPaneDataPresModel[]
+ ParameterId["UberTipPaneDatas"] = "ubertipPaneDatas";
+ // DPI_UberTipData, having type UberTipDataPresModel
+ ParameterId["UberTipData"] = "ubertipData";
+ // DPI_RefLineTip, having type RefLineTipPresModel
+ ParameterId["RefLineTip"] = "refLineTip";
+ // DPI_RefLineTips, having type RefLineTipPresModel[]
+ ParameterId["RefLineTips"] = "refLineTips";
+ // DPI_NumericBin, having type NumericBinPresModel
+ ParameterId["NumericBin"] = "numericBin";
+ // DPI_NumericBinDialog, having type NumericBinDialogPresModel
+ ParameterId["NumericBinDialog"] = "numericBinDialog";
+ // DPI_DomainRange, having type DomainRangePresModel
+ ParameterId["DomainRange"] = "domainRange";
+ // DPI_BinSizeInfo, having type BinSizeInfoPresModel
+ ParameterId["BinSizeInfo"] = "binSizeInfo";
+ // DPI_DetailedErrorDialog, having type DetailedErrorPresModel
+ ParameterId["DetailedErrorDialog"] = "detailedErrorDialog";
+ // DPI_DragSourcePosition, having type ShelfDropPositionPresModel
+ ParameterId["DragSourcePosition"] = "shelfDragSourcePosition";
+ // DPI_DropTargetPosition, having type ShelfDropPositionPresModel
+ ParameterId["DropTargetPosition"] = "shelfDropTargetPosition";
+ // DPI_ShelfDropPosition, having type ShelfDropPositionPresModel
+ ParameterId["ShelfDropPosition"] = "shelfDropPosition";
+ // DPI_ShelfDropPositions, having type ShelfDropPositionPresModel[]
+ ParameterId["ShelfDropPositions"] = "shelfDropPositions";
+ // DPI_ShelfDropModel, having type ShelfDropPresModel
+ ParameterId["ShelfDropModel"] = "shelfDropModel";
+ // DPI_ShelfDropModels, having type ShelfDropPresModel[]
+ ParameterId["ShelfDropModels"] = "shelfDropModels";
+ // DPI_Drag, having type DragPresModel
+ ParameterId["Drag"] = "drag";
+ // DPI_SceneElement, having type SceneElementPresModel
+ ParameterId["SceneElement"] = "sceneElement";
+ // DPI_SceneElements, having type SceneElementPresModel[]
+ ParameterId["SceneElements"] = "sceneElements";
+ // DPI_QuickFilterType, having type QuickFilterType
+ ParameterId["QuickFilterType"] = "quickFilterType";
+ // DPI_CatMode, having type QuickFilterCategoricalMode
+ ParameterId["CatMode"] = "categoricalMode";
+ // DPI_CatCtrl, having type QuickFilterCategoricalCtrl
+ ParameterId["CatCtrl"] = "categoricalControl";
+ // DPI_QuantMode, having type QuickFilterQuantitativeMode
+ ParameterId["QuantMode"] = "quantitativeMode";
+ // DPI_QuantCtrl, having type QuickFilterQuantitativeCtrl
+ ParameterId["QuantCtrl"] = "quantitativeControl";
+ // DPI_ZoneCommon, having type ZoneCommonPresModel
+ ParameterId["ZoneCommon"] = "zoneCommon";
+ // DPI_ZoneCommonListItems, having type ZoneCommonPresModel[]
+ ParameterId["ZoneCommonListItems"] = "zoneCommonListItems";
+ // DPI_Zone, having type ZonePresModel
+ ParameterId["Zone"] = "zone";
+ // DPI_Zones, having type Dictionary(of ZonePresModel)
+ ParameterId["Zones"] = "zones";
+ // DPI_ImageZone, having type ImageZonePresModel
+ ParameterId["ImageZone"] = "imageZone";
+ // DPI_WebZone, having type WebZonePresModel
+ ParameterId["WebZone"] = "webZone";
+ // DPI_AddInZone, having type AddInZonePresModel
+ ParameterId["AddInZone"] = "addInZone";
+ // DPI_ButtonZonePresModel, having type ButtonZonePresModel
+ ParameterId["ButtonZonePresModel"] = "buttonZone";
+ // DPI_ButtonConfigDialog, having type ButtonConfigDialogPresModel
+ ParameterId["ButtonConfigDialog"] = "buttonConfigDialog";
+ // DPI_ZoneEdgeMoveType, having type ZoneEdgeMove
+ ParameterId["ZoneEdgeMoveType"] = "zoneEdgeMoveType";
+ // DPI_ZoneSide, having type SideType
+ ParameterId["ZoneSide"] = "zoneSide";
+ // DPI_SnapPoint, having type SnapPointPresModel
+ ParameterId["SnapPoint"] = "snapPoint";
+ // DPI_SnapPoints, having type SnapPointPresModel[]
+ ParameterId["SnapPoints"] = "snapPoints";
+ // DPI_TargetPreviewPair, having type DragDropTargetPreviewPairPresModel
+ ParameterId["TargetPreviewPair"] = "targetPreviewPair";
+ // DPI_TargetPreviewPairs, having type DragDropTargetPreviewPairPresModel[]
+ ParameterId["TargetPreviewPairs"] = "targetPreviewPairs";
+ // DPI_ContainerGuide, having type DragDropContainerGuidePresModel
+ ParameterId["ContainerGuide"] = "containerGuide";
+ // DPI_ContainerGuides, having type DragDropContainerGuidePresModel[]
+ ParameterId["ContainerGuides"] = "containerGuides";
+ // DPI_ZoneBorder, having type DragDropZoneBorderPresModel
+ ParameterId["ZoneBorder"] = "zoneBorder";
+ // DPI_ZoneBorders, having type DragDropZoneBorderPresModel[]
+ ParameterId["ZoneBorders"] = "zoneBorders";
+ // DPI_DashboardDragDrop, having type DashboardDragDropPresModel
+ ParameterId["DashboardDragDrop"] = "zoneDragDrop";
+ // DPI_DragZoneResize, having type DragZoneResizePresModel
+ ParameterId["DragZoneResize"] = "zoneResize";
+ // DPI_DashboardText, having type TextRegionPresModel
+ ParameterId["DashboardText"] = "dashboardText";
+ // DPI_DashboardTitle, having type TextRegionPresModel
+ ParameterId["DashboardTitle"] = "dashboardTitle";
+ // DPI_QuickFilterTitle, having type TextRegionPresModel
+ ParameterId["QuickFilterTitle"] = "quickFilterTitle";
+ // DPI_VisualCaption, having type TextRegionPresModel
+ ParameterId["VisualCaption"] = "visualCaption";
+ // DPI_VisualTitle, having type TextRegionPresModel
+ ParameterId["VisualTitle"] = "visualTitle";
+ // DPI_ZoneTitleRegion, having type TextRegionPresModel
+ ParameterId["ZoneTitleRegion"] = "zoneTitle";
+ // DPI_ForecastOptions, having type ForecastPresModel
+ ParameterId["ForecastOptions"] = "forecastOptions";
+ // DPI_ForecastDescription, having type ForecastDescribePresModel
+ ParameterId["ForecastDescription"] = "forecastDescription";
+ // DPI_WorkgroupPublishObject, having type WorkgroupPublishObjectPresModel
+ ParameterId["WorkgroupPublishObject"] = "publishDataSource";
+ // DPI_PublishPermissionsSummary, having type PublishPermissionsSummaryPresModel
+ ParameterId["PublishPermissionsSummary"] = "publishPermissionsSummary";
+ // DPI_CheckNameResults, having type CheckNameResultsPresModel
+ ParameterId["CheckNameResults"] = "checkNameResults";
+ // DPI_ValidatePublishViewsResult, having type ValidatePublishViewsResultPresModel
+ ParameterId["ValidatePublishViewsResult"] = "validatePublishViewsResult";
+ // DPI_PublishAuthenticationSettings, having type PublishAuthenticationSettingsPresModel
+ ParameterId["PublishAuthenticationSettings"] = "publishAuthenticationSettings";
+ // DPI_ManageDatasources, having type ManageDatasourcesPresModel
+ ParameterId["ManageDatasources"] = "manageDatasources";
+ // DPI_CredentialsAuthSettings, having type CredentialsAuthSettingsPresModel
+ ParameterId["CredentialsAuthSettings"] = "credentialsAuthSettings";
+ // DPI_ConnectionCredentialsAuthSettings, having type ConnectionCredentialsAuthSettingsPresModel
+ ParameterId["ConnectionCredentialsAuthSettings"] = "connectionCredentialsAuthSettings";
+ // DPI_ConnectionCredentialsAuthSettingsList, having type ConnectionCredentialsAuthSettingsPresModel[]
+ ParameterId["ConnectionCredentialsAuthSettingsList"] = "connectionCredentialsAuthSettingsList";
+ // DPI_PublishDatasourceFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel
+ ParameterId["PublishDatasourceFromWorkbookInfo"] = "publishDatasourceFromWorkbookInfo";
+ // DPI_PublishDatasourcesFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel[]
+ ParameterId["PublishDatasourcesFromWorkbookInfo"] = "publishDatasourcesFromWorkbookInfo";
+ // DPI_PublishSheet, having type PublishSheetPresModel
+ ParameterId["PublishSheet"] = "publishSheet";
+ // DPI_PublishSheets, having type PublishSheetPresModel[]
+ ParameterId["PublishSheets"] = "publishSheets";
+ // DPI_PublishObjectViews, having type PublishObjectViewsPresModel
+ ParameterId["PublishObjectViews"] = "publishObjectViews";
+ // DPI_PublishObjectPublishSheetResults, having type PublishObjectPublishSheetResultsPresModel
+ ParameterId["PublishObjectPublishSheetResults"] = "publishObjectPublishSheetResults";
+ // DPI_RefreshExtractSchedulingSettings, having type RefreshExtractSchedulingSettingsPresModel
+ ParameterId["RefreshExtractSchedulingSettings"] = "refreshExtractSchedulingSettings";
+ // DPI_SetRefreshExtractScheduleResult, having type SetRefreshExtractScheduleResultPresModel
+ ParameterId["SetRefreshExtractScheduleResult"] = "setRefreshExtractScheduleResult";
+ // DPI_CheckPublishObjectNameWarningsResults, having type CheckPublishObjectNameWarningsResultsPresModel
+ ParameterId["CheckPublishObjectNameWarningsResults"] = "checkPublishObjectNameWarningsResults";
+ // DPI_PublishDatasourceOnWorkbookPublishResults, having type PublishDatasourceOnWorkbookPublishResultsPresModel
+ ParameterId["PublishDatasourceOnWorkbookPublishResults"] = "publishDatasourceOnWorkbookPublishResult";
+ // DPI_PublishDataSourceResult, having type PublishDataSourceResultPresModel
+ ParameterId["PublishDataSourceResult"] = "publishDataSourceResult";
+ // DPI_PublishWarningMessage, having type PublishWarningMessagePresModel
+ ParameterId["PublishWarningMessage"] = "publishWarningMessage";
+ // DPI_MustDowngradeToPublishWarningMessagePresModel, having type PublishWarningMessagePresModel
+ ParameterId["MustDowngradeToPublishWarningMessagePresModel"] = "mustDowngradeToPublishWarningMessagePresModel";
+ // DPI_PublishSelectedAttributes, having type PublishSelectedAttributesPresModel
+ ParameterId["PublishSelectedAttributes"] = "publishSelectedAttributes";
+ // DPI_AutosaveFile, having type AutosaveFilePresModel
+ ParameterId["AutosaveFile"] = "autosaveFile";
+ // DPI_AutosaveFiles, having type AutosaveFilePresModel[]
+ ParameterId["AutosaveFiles"] = "autosaveFiles";
+ // DPI_FunctionGroup, having type FunctionGroup
+ ParameterId["FunctionGroup"] = "funcGrp";
+ // DPI_FunctionGroups, having type FunctionGroup[]
+ ParameterId["FunctionGroups"] = "funcGrps";
+ // DPI_FunctionArgType, having type FunctionArgType
+ ParameterId["FunctionArgType"] = "funcArgType";
+ // DPI_FunctionArgTypes, having type FunctionArgType[]
+ ParameterId["FunctionArgTypes"] = "funcArgTypes";
+ // DPI_CalculationStyle, having type CalcStyle
+ ParameterId["CalculationStyle"] = "calculationStyle";
+ // DPI_Calculation, having type CalculationPresModel
+ ParameterId["Calculation"] = "calculation";
+ // DPI_TypeInPill, having type CalculationPresModel
+ ParameterId["TypeInPill"] = "typeInPill";
+ // DPI_CalcErrorInfo, having type CalcErrorInfoPresModel
+ ParameterId["CalcErrorInfo"] = "errorInfo";
+ // DPI_CalcErrorInfos, having type CalcErrorInfoPresModel[]
+ ParameterId["CalcErrorInfos"] = "errorInfoList";
+ // DPI_CalcualtionValidation, having type CalculationValidationPresModel
+ ParameterId["CalcualtionValidation"] = "calculationValidation";
+ // DPI_ExpressionFunction, having type ExpressionFunctionPresModel
+ ParameterId["ExpressionFunction"] = "expressionFunc";
+ // DPI_ExpressionFunctions, having type ExpressionFunctionPresModel[]
+ ParameterId["ExpressionFunctions"] = "expressionFuncList";
+ // DPI_ExpressionFunctionsPM, having type ExpressionFunctionsPresModel
+ ParameterId["ExpressionFunctionsPM"] = "expressionFuncPm";
+ // DPI_StyleToken, having type StyleTokenPresModel
+ ParameterId["StyleToken"] = "styleToken";
+ // DPI_StyleTokens, having type StyleTokenPresModel[]
+ ParameterId["StyleTokens"] = "styleTokenList";
+ // DPI_CalcEditorTextSelection, having type CalcEditorTextSelectionPresModel
+ ParameterId["CalcEditorTextSelection"] = "calcEditorTextSelection";
+ // DPI_AutoCompleteItemType, having type AutoCompleteItemType
+ ParameterId["AutoCompleteItemType"] = "autocompleteType";
+ // DPI_AutoCompleteItem, having type AutoCompleteItemPresModel
+ ParameterId["AutoCompleteItem"] = "autocompleteItem";
+ // DPI_AutoCompleteItems, having type AutoCompleteItemPresModel[]
+ ParameterId["AutoCompleteItems"] = "autocompleteItemList";
+ // DPI_CalculationAutoCompleteContextMenu, having type CalculationAutoCompleteContextMenuPresModel
+ ParameterId["CalculationAutoCompleteContextMenu"] = "calculationAutocompleteContextMenu";
+ // DPI_CalcApplyResult, having type CalcApplyResult
+ ParameterId["CalcApplyResult"] = "calculationApplyResult";
+ // DPI_RampBorderStyledBox, having type StyledBoxPresModel
+ ParameterId["RampBorderStyledBox"] = "rampBorderStyledBox";
+ // DPI_StyledBox, having type StyledBoxPresModel
+ ParameterId["StyledBox"] = "styledBox";
+ // DPI_GlobalStyledBox, having type StyledBoxPresModel
+ ParameterId["GlobalStyledBox"] = "globalStyledBox";
+ // DPI_StyleContext, having type StyleContextPresModel
+ ParameterId["StyleContext"] = "styleContext";
+ // DPI_CurrentTextStyle, having type TextStylePresModel
+ ParameterId["CurrentTextStyle"] = "currentTextStyle";
+ // DPI_LabelTextStyle, having type TextStylePresModel
+ ParameterId["LabelTextStyle"] = "labelTextStyle";
+ // DPI_OriginalTextStyle, having type TextStylePresModel
+ ParameterId["OriginalTextStyle"] = "originalTextStyle";
+ // DPI_SelectedTextStyleModel, having type TextStylePresModel
+ ParameterId["SelectedTextStyleModel"] = "selectedTextStyleModel";
+ // DPI_SwatchTextStyleModel, having type TextStylePresModel
+ ParameterId["SwatchTextStyleModel"] = "swatchTextStyle";
+ // DPI_TextStyleModel, having type TextStylePresModel
+ ParameterId["TextStyleModel"] = "textStyle";
+ // DPI_TitleStyleModel, having type TextStylePresModel
+ ParameterId["TitleStyleModel"] = "titleStyleModel";
+ // DPI_PropertyBag, having type PropertyBagPresModel
+ ParameterId["PropertyBag"] = "propBagWrapper";
+ // DPI_PresModelMap, having type Dictionary(of PropertyBagPresModel)
+ ParameterId["PresModelMap"] = "presModelMap";
+ // DPI_PresentationLayerNotifications, having type PresModelMapPresModel
+ ParameterId["PresentationLayerNotifications"] = "presentationLayerNotifications";
+ // DPI_SecondaryInfo, having type PresModelMapPresModel
+ ParameterId["SecondaryInfo"] = "secondaryInfo";
+ // DPI_ClientDashboardUIMetric, having type ClientDashboardUIMetricPresModel
+ ParameterId["ClientDashboardUIMetric"] = "clientDashboardUiMetric";
+ // DPI_ClientDashboardUIMetrics, having type ClientDashboardUIMetricPresModel[]
+ ParameterId["ClientDashboardUIMetrics"] = "clientDashboardUiMetrics";
+ // DPI_ClientDashboardUIMetricContainer, having type ClientDashboardUIMetricContainerPresModel
+ ParameterId["ClientDashboardUIMetricContainer"] = "clientDashboardUiMetricContainer";
+ // DPI_ExtSvcConfig, having type ExtSvcConfigPresModel
+ ParameterId["ExtSvcConfig"] = "extSvcConfig";
+ // DPI_StoryboardSheetItem, having type StoryboardSheetItemPresModel
+ ParameterId["StoryboardSheetItem"] = "storyboardSheetItem";
+ // DPI_StoryboardSheetItems, having type StoryboardSheetItemPresModel[]
+ ParameterId["StoryboardSheetItems"] = "storyboardSheetItems";
+ // DPI_StoryboardSheetList, having type StoryboardSheetListPresModel
+ ParameterId["StoryboardSheetList"] = "storyboardSheetList";
+ // DPI_FitToStoryBoardOptionItem, having type FitToStoryBoardOptionItemPresModel
+ ParameterId["FitToStoryBoardOptionItem"] = "fitToStoryboardOptionItem";
+ // DPI_FitToStoryBoardOptionItems, having type FitToStoryBoardOptionItemPresModel[]
+ ParameterId["FitToStoryBoardOptionItems"] = "fitToStoryboardOptionItems";
+ // DPI_FitToStoryBoardOptionList, having type FitToStoryBoardOptionListPresModel
+ ParameterId["FitToStoryBoardOptionList"] = "fitToStoryboardOptionList";
+ // DPI_StoryPointNavItem, having type StoryPointNavItemPresModel
+ ParameterId["StoryPointNavItem"] = "storypointNavItem";
+ // DPI_StoryPointNavItems, having type StoryPointNavItemPresModel[]
+ ParameterId["StoryPointNavItems"] = "storypointNavItems";
+ // DPI_FlipboardNav, having type FlipboardNavPresModel
+ ParameterId["FlipboardNav"] = "flipboardNav";
+ // DPI_ScrollBarStyle, having type ScrollBarStylePresModel
+ ParameterId["ScrollBarStyle"] = "scrollBarStyle";
+ // DPI_DashboardZoneLayoutPane, having type DashboardZoneLayoutPanePresModel
+ ParameterId["DashboardZoneLayoutPane"] = "dashboardZoneLayoutPane";
+ // DPI_SelectedStoryPointStyle, having type StoryPointCaptionStylePresModel
+ ParameterId["SelectedStoryPointStyle"] = "selectedStoryPointStyle";
+ // DPI_UnselectedStoryPointStyle, having type StoryPointCaptionStylePresModel
+ ParameterId["UnselectedStoryPointStyle"] = "unselectedStoryPointStyle";
+ // DPI_FlipboardNavStyle, having type FlipboardNavStylePresModel
+ ParameterId["FlipboardNavStyle"] = "flipboardNavStyle";
+ // DPI_StoryPoint, having type StoryPointPresModel
+ ParameterId["StoryPoint"] = "storyPoint";
+ // DPI_StoryPoints, having type Dictionary(of StoryPointPresModel)
+ ParameterId["StoryPoints"] = "storyPoints";
+ // DPI_Flipboard, having type FlipboardPresModel
+ ParameterId["Flipboard"] = "flipboard";
+ // DPI_StoryPair, having type StoryPairPresModel
+ ParameterId["StoryPair"] = "storyPair";
+ // DPI_StoryPairs, having type StoryPairPresModel[]
+ ParameterId["StoryPairs"] = "storyPairs";
+ // DPI_StoryboardPM, having type StoryboardPresModel
+ ParameterId["StoryboardPM"] = "storyboardPm";
+ // DPI_HiDpiIconDictionary, having type ImageCollectionPresModel
+ ParameterId["HiDpiIconDictionary"] = "hiDpiIconDictionary";
+ // DPI_IconDictionary, having type ImageCollectionPresModel
+ ParameterId["IconDictionary"] = "iconDictionary";
+ // DPI_IconResourceDictionary, having type ImageResourceCollectionPresModel
+ ParameterId["IconResourceDictionary"] = "iconResDictionary";
+ // DPI_DataPreviewWindowMessage, having type DataPreviewWindowMessagePresModel
+ ParameterId["DataPreviewWindowMessage"] = "dataPreviewWindowMessage";
+ // DPI_DataSourceData, having type DataSourceDataPresModel
+ ParameterId["DataSourceData"] = "dataSrcData";
+ // DPI_DataSourceSort, having type DataSourceSortPresModel
+ ParameterId["DataSourceSort"] = "dataSrcSort";
+ // DPI_ColumnInfo, having type DSColumnInfoPresModel
+ ParameterId["ColumnInfo"] = "columnInfo";
+ // DPI_ColumnInfos, having type DSColumnInfoPresModel[]
+ ParameterId["ColumnInfos"] = "columnInfos";
+ // DPI_DataFormatter, having type DVFormatter
+ ParameterId["DataFormatter"] = "dataFormatter";
+ // DPI_JoinDescription, having type JoinDescriptionPresModel
+ ParameterId["JoinDescription"] = "joinDescription";
+ // DPI_JoinDescriptions, having type Dictionary(of JoinDescriptionPresModel)
+ ParameterId["JoinDescriptions"] = "joinDescriptions";
+ // DPI_FileTableInfo, having type FileTableInfoPresModel
+ ParameterId["FileTableInfo"] = "fileTableInfo";
+ // DPI_FieldMapping, having type FieldMappingPresModel
+ ParameterId["FieldMapping"] = "fieldMapping";
+ // DPI_FieldMappingData, having type FieldMappingDataPresModel
+ ParameterId["FieldMappingData"] = "fieldMappingData";
+ // DPI_FieldMappingDataVector, having type FieldMappingDataPresModel[]
+ ParameterId["FieldMappingDataVector"] = "fieldMappingDataVector";
+ // DPI_FrameFinder, having type FrameFinderPresModel
+ ParameterId["FrameFinder"] = "frameFinder";
+ // DPI_SheetLinkFieldMapping, having type SheetLinkFieldMappingPresModel
+ ParameterId["SheetLinkFieldMapping"] = "sheetLinkFieldMapping";
+ // DPI_UnionInfo, having type UnionInfoPresModel
+ ParameterId["UnionInfo"] = "unionInfo";
+ // DPI_UnionTableInfo, having type UnionTableInfoPresMode
+ ParameterId["UnionTableInfo"] = "unionTableInfo";
+ // DPI_UnionTableInfos, having type UnionTableInfoPresModel[]
+ ParameterId["UnionTableInfos"] = "unionTableInfos";
+ // DPI_ConnectionPBUnionInfo, having type PBUnionInfoPresModel
+ ParameterId["ConnectionPBUnionInfo"] = "connectionPbunionInfo";
+ // DPI_ConnectionPBUnionInfos, having type PBUnionInfoPresModel[]
+ ParameterId["ConnectionPBUnionInfos"] = "connectionPbunionInfos";
+ // DPI_JoinClause, having type JoinClausePresModel
+ ParameterId["JoinClause"] = "joinClause";
+ // DPI_JoinClauses, having type JoinClausePresModel[]
+ ParameterId["JoinClauses"] = "joinClauses";
+ // DPI_JoinValidationResult, having type JoinValidationResultPresModel
+ ParameterId["JoinValidationResult"] = "joinValidationResult";
+ // DPI_JoinTableInfo, having type JoinTableInfoPresModel
+ ParameterId["JoinTableInfo"] = "joinTableInfo";
+ // DPI_ParameterInfo, having type JoinTableInfoPresModel
+ ParameterId["ParameterInfo"] = "parameterInfo";
+ // DPI_JoinTableInfos, having type JoinTableInfoPresModel[]
+ ParameterId["JoinTableInfos"] = "joinTableInfos";
+ // DPI_JoinOnCalcInfo, having type JoinOnCalcInfoPresModel
+ ParameterId["JoinOnCalcInfo"] = "joinOnCalcInfo";
+ // DPI_ConnectionSummary, having type ConnectionSummaryPresModel
+ ParameterId["ConnectionSummary"] = "connectionSummary";
+ // DPI_ConnectionSummaries, having type ConnectionSummaryPresModel[]
+ ParameterId["ConnectionSummaries"] = "connectionSummaries";
+ // DPI_TopLevelConnectionDescription, having type TopLevelConnectionDescriptionPresModel
+ ParameterId["TopLevelConnectionDescription"] = "topLevelConnectionDescription";
+ // DPI_DataConnectionTableViewMessages, having type DataConnectionTableViewMessagesPresModel
+ ParameterId["DataConnectionTableViewMessages"] = "dataConnectionTableViewMessages";
+ // DPI_TextTransformScript, having type TextTransformScriptPresModel
+ ParameterId["TextTransformScript"] = "textTransformScript";
+ // DPI_CalendarDateOptions, having type CalendarDateOptionsPresModel
+ ParameterId["CalendarDateOptions"] = "calendarDateOptions";
+ // DPI_GoToWorksheetTooltipPresModel, having type GoToWorksheetTooltipPresModel
+ ParameterId["GoToWorksheetTooltipPresModel"] = "goToWorksheetTooltipPresModel";
+ // DPI_TableCleaningPresModel, having type TableCleaningPresModel
+ ParameterId["TableCleaningPresModel"] = "tableCleaningPresModel";
+ // DPI_PivotPresModel, having type PivotPresModel
+ ParameterId["PivotPresModel"] = "pivotPresModel";
+ // DPI_PivotTreeItemPresModel, having type PivotTreeItemPresModel
+ ParameterId["PivotTreeItemPresModel"] = "pivotTreeItemPresModel";
+ // DPI_PivotTreeItems, having type PivotTreeItemPresModel[]
+ ParameterId["PivotTreeItems"] = "pivotTreeItemsPresModel";
+ // DPI_PivotDisplay, having type PivotDisplayPresModel
+ ParameterId["PivotDisplay"] = "pivotDisplay";
+ // DPI_PivotTag, having type NameColumnsPairPresModel
+ ParameterId["PivotTag"] = "pivotTag";
+ // DPI_PivotGroups, having type NameColumnsPairPresModel[]
+ ParameterId["PivotGroups"] = "pivotGroups";
+ // DPI_DataSourceDropdown, having type DataSourceDropdownPresModel
+ ParameterId["DataSourceDropdown"] = "dataSourceDropdown";
+ // DPI_ConnectionDropdown, having type ConnectionDropdownPresModel
+ ParameterId["ConnectionDropdown"] = "connectionDropdown";
+ // DPI_ActivityEvent, having type ActivityEventPresModel
+ ParameterId["ActivityEvent"] = "activityEvent";
+ // DPI_UIAutomation, having type UIAutomationPresModel
+ ParameterId["UIAutomation"] = "uiAutomation";
+ // DPI_UIAutomationIndex, having type UIAutomationIndexPresModel
+ ParameterId["UIAutomationIndex"] = "uiAutomationIndex";
+ // DPI_UIAutomationIndexList, having type UIAutomationIndexPresModel[]
+ ParameterId["UIAutomationIndexList"] = "uiAutomationIndexList";
+ // DPI_UIAutomationComponentInfo, having type UIAutomationComponentInfoPresModel
+ ParameterId["UIAutomationComponentInfo"] = "uiAutomationComponentInfo";
+ // DPI_UIAutomationComponentInfoList, having type UIAutomationComponentInfoPresModel[]
+ ParameterId["UIAutomationComponentInfoList"] = "uiAutomationComponentInfoList";
+ // DPI_Geometry, having type GeometryPresModel
+ ParameterId["Geometry"] = "geometry";
+ // DPI_MultiPoint, having type MultiPointPresModel
+ ParameterId["MultiPoint"] = "multiPoint";
+ // DPI_MultiLine, having type MultiLinePresModel
+ ParameterId["MultiLine"] = "multiLine";
+ // DPI_MultiPolygon, having type MultiPolygonPresModel
+ ParameterId["MultiPolygon"] = "multiPolygon";
+ // DPI_Polygon, having type PolygonPresModel
+ ParameterId["Polygon"] = "polygon";
+ // DPI_PolygonList, having type PolygonPresModel[]
+ ParameterId["PolygonList"] = "polygonList";
+ // DPI_Line, having type LinePresModel
+ ParameterId["Line"] = "line";
+ // DPI_LineList, having type LinePresModel[]
+ ParameterId["LineList"] = "lineList";
+ // DPI_TabbedAuthentication, having type TabbedAuthenticationPresModel
+ ParameterId["TabbedAuthentication"] = "tabbedAuthentication";
+ // DPI_TabbedAuthenticationTabInfo, having type TabbedAuthenticationTabInfoPresModel
+ ParameterId["TabbedAuthenticationTabInfo"] = "tabbedAuthenticationTabInfo";
+ // DPI_TabbedAuthenticationTabInfos, having type TabbedAuthenticationTabInfoPresModel[]
+ ParameterId["TabbedAuthenticationTabInfos"] = "tabbedAuthenticationTabInfos";
+ // DPI_GeographicSearchCandidate, having type GeographicSearchCandidatePresModel
+ ParameterId["GeographicSearchCandidate"] = "geographicSearchCandidate";
+ // DPI_GeographicSearchCandidateList, having type GeographicSearchCandidatePresModel[]
+ ParameterId["GeographicSearchCandidateList"] = "geographicSearchCandidateList";
+ // DPI_GeographicSearchResults, having type GeographicSearchPresModel
+ ParameterId["GeographicSearchResults"] = "geographicSearchResults";
+ // DPI_ParamInfo, having type ParameterInfoPresModel
+ ParameterId["ParamInfo"] = "paramInfo";
+ // DPI_ParamInfos, having type ParameterInfoPresModel[]
+ ParameterId["ParamInfos"] = "paramInfos";
+ // DPI_ParamNamespaceInfo, having type ParameterNamespaceInfoInfoPresModel
+ ParameterId["ParamNamespaceInfo"] = "paramNamespaceInfo";
+ // DPI_ParamNamespaceInfos, having type ParameterNamespaceInfoPresModel[]
+ ParameterId["ParamNamespaceInfos"] = "paramNamespaceInfos";
+ // DPI_ParamRegistryInfo, having type ParameterRegistryInfoPresModel
+ ParameterId["ParamRegistryInfo"] = "paramRegistryInfo";
+ // DPI_DataSourceProperties, having type DataSourcePropertiesPresModel
+ ParameterId["DataSourceProperties"] = "connectionProperties";
+ // DPI_ConnectionTypePresModel, having type ConnectionTypePresModel
+ ParameterId["ConnectionTypePresModel"] = "connectionTypePresModel";
+ // DPI_ConnectionTypes, having type ConnectionTypePresModel[]
+ ParameterId["ConnectionTypes"] = "connectionTypes";
+ // DPI_ConnectionTypeGroupPresModel, having type ConnectionTypeGroupPresModel
+ ParameterId["ConnectionTypeGroupPresModel"] = "connectionTypeGroupPresModel";
+ // DPI_SavedDataSourcePresModel, having type SavedDataSourcePresModel
+ ParameterId["SavedDataSourcePresModel"] = "savedDatasourcePresModel";
+ // DPI_SavedDataSources, having type SavedDataSourcePresModel[]
+ ParameterId["SavedDataSources"] = "savedDatasources";
+ // DPI_SavedDataSourcesPresModel, having type SavedDataSourcesPresModel
+ ParameterId["SavedDataSourcesPresModel"] = "savedDatasourcesPresModel";
+ // DPI_OpenPaneItemPresModel, having type OpenPaneItemPresModel
+ ParameterId["OpenPaneItemPresModel"] = "openPaneItemPresModel";
+ // DPI_OpenPaneItems, having type OpenPaneItemPresModel[]
+ ParameterId["OpenPaneItems"] = "openPaneItems";
+ // DPI_OpenPaneItemsPresModel, having type OpenPaneItemsPresModel
+ ParameterId["OpenPaneItemsPresModel"] = "openPaneItemsPresModel";
+ // DPI_VariableValue, having type VariableValuePresModel
+ ParameterId["VariableValue"] = "variableValue";
+ // DPI_VariableValues, having type VariableValuePresModel[]
+ ParameterId["VariableValues"] = "variableValues";
+ // DPI_ServerVariableValue, having type ServerVariableValuePresModel
+ ParameterId["ServerVariableValue"] = "serverVariableValue";
+ // DPI_EditableVariableValue, having type EditableVariableValuePresModel
+ ParameterId["EditableVariableValue"] = "editableVariableValue";
+ // DPI_ServerVariableMetadata, having type ServerVariableMetadataPresModel
+ ParameterId["ServerVariableMetadata"] = "serverVariableMetadata";
+ // DPI_PromptVariable, having type PromptVariablePresModel
+ ParameterId["PromptVariable"] = "promptVariable";
+ // DPI_PromptVariables, having type PromptVariablePresModel[]
+ ParameterId["PromptVariables"] = "promptVariables";
+ // DPI_VariablePromptDialog, having type VariablePromptDialogPresModel
+ ParameterId["VariablePromptDialog"] = "variablePromptDialog";
+ // DPI_VariableValueOperation, having type VariableValueOperationPresModel
+ ParameterId["VariableValueOperation"] = "variableValueOperation";
+ // DPI_VariableValueOperations, having type VariableValueOperationPresModel[]
+ ParameterId["VariableValueOperations"] = "variableValueOperations";
+ // DPI_TableOptionsPresModel, having type TableOptionsPresModel
+ ParameterId["TableOptionsPresModel"] = "tableOptionsPresModel";
+ // DPI_ClientInfoPresModel, having type ClientInfoPresModel
+ ParameterId["ClientInfoPresModel"] = "clientInfoPresModel";
+ // DPI_TableauFileInfoPresModel, having type TableauFileInfoPresModel
+ ParameterId["TableauFileInfoPresModel"] = "tableauFileInfoPresModel";
+ // DPI_DebuggingInfoPresModel, having type DebuggingInfoPresModel
+ ParameterId["DebuggingInfoPresModel"] = "debuggingInfoPresModel";
+ // DPI_RunningThreadInfoPresModel, having type RunningThreadInfoPresModel
+ ParameterId["RunningThreadInfoPresModel"] = "runningThreadInfoPresModel";
+ // DPI_AboutDialogInfoPresModel, having type AboutDialogInfoPresModel
+ ParameterId["AboutDialogInfoPresModel"] = "aboutDialogInfoPresModel";
+ // DPI_HybridUIShowcasePresModel, having type HybridUIShowcasePresModel
+ ParameterId["HybridUIShowcasePresModel"] = "hybridUiShowcasePresModel";
+ // DPI_MenuConfiguration, having type MenuConfigurationPresModel
+ ParameterId["MenuConfiguration"] = "menuConfiguration";
+ // DPI_MenuItem, having type MenuItemPresModel
+ ParameterId["MenuItem"] = "menuItem";
+ // DPI_MenuItemModels, having type MenuItemPresModel[]
+ ParameterId["MenuItemModels"] = "menuItemModels";
+ // DPI_DefaultTextFormat, having type DefaultTextFormatPresModel
+ ParameterId["DefaultTextFormat"] = "defaultTextFormat";
+ // DPI_MapBoxServerInfoPresModel, having type MapBoxServerInfoPresModel
+ ParameterId["MapBoxServerInfoPresModel"] = "mapboxServerInfoPresModel";
+ // DPI_WMSServerInfoPresModel, having type WMSServerInfoPresModel
+ ParameterId["WMSServerInfoPresModel"] = "wmsServerInfoPresModel";
+ // DPI_MapSourceConflictPresModel, having type MapSourceConflictPresModel
+ ParameterId["MapSourceConflictPresModel"] = "mapSourceConflictPresModel";
+ // DPI_EnumeratedSetDialogPresModel, having type EnumeratedSetDialogPresModel
+ ParameterId["EnumeratedSetDialogPresModel"] = "enumeratedSetDialogPresModel";
+ // DPI_EditAliasesDialog, having type EditAliasesDialogPresModel
+ ParameterId["EditAliasesDialog"] = "editAliasesDialogPresModel";
+ // DPI_AliasesPresModel, having type AliasesPresModel
+ ParameterId["AliasesPresModel"] = "aliasesPresModel";
+ // DPI_ClearAliasesPresModel, having type AliasesPresModel
+ ParameterId["ClearAliasesPresModel"] = "clearAliasesPresModel";
+ // DPI_NewAliasesPresModel, having type NewAliasesPresModel
+ ParameterId["NewAliasesPresModel"] = "newAliasesPresModel";
+ // DPI_AliasPresModel, having type AliasPresModel
+ ParameterId["AliasPresModel"] = "aliasPresModel";
+ // DPI_AliasItem, having type AliasItemPresModel
+ ParameterId["AliasItem"] = "aliasItem";
+ // DPI_DuplicateAliasItem, having type AliasItemPresModel
+ ParameterId["DuplicateAliasItem"] = "duplicateAliasItem";
+ // DPI_AliasList, having type AliasItemPresModel[]
+ ParameterId["AliasList"] = "aliasList";
+ // DPI_AliasResultItem, having type AliasResultItemPresModel
+ ParameterId["AliasResultItem"] = "aliasResultItem";
+ // DPI_AliasResultList, having type AliasResultItemPresModel[]
+ ParameterId["AliasResultList"] = "aliasResultList";
+ // DPI_AliasResults, having type AliasResultsPresModel
+ ParameterId["AliasResults"] = "aliasResults";
+ // DPI_EditSetDialogPresModel, having type EditSetDialogPresModel
+ ParameterId["EditSetDialogPresModel"] = "editSetDialogPresModel";
+ // DPI_ConfirmationPresModel, having type ConfirmationPresModel
+ ParameterId["ConfirmationPresModel"] = "confirmationPresModel";
+ // DPI_NotificationPresModel, having type NotificationPresModel
+ ParameterId["NotificationPresModel"] = "notificationPresModel";
+ // DPI_RetargetDataSourceDialogPresModel, having type RetargetDataSourceDialogPresModel
+ ParameterId["RetargetDataSourceDialogPresModel"] = "retargetDatasourceDialogPresModel";
+ // DPI_SharedFilterPresModel, having type SharedFilterPresModel
+ ParameterId["SharedFilterPresModel"] = "sharedFilterPresModel";
+ // DPI_SharedFilterWorksheetInfo, having type SharedFilterWorksheetInfoPresModel
+ ParameterId["SharedFilterWorksheetInfo"] = "sharedFilterWorksheetInfo";
+ // DPI_SharedFilterWorksheetInfoList, having type SharedFilterWorksheetInfoPresModel[]
+ ParameterId["SharedFilterWorksheetInfoList"] = "sharedFilterWorksheetInfoList";
+ // DPI_FieldPickerTreePresModel, having type FieldPickerTreePresModel
+ ParameterId["FieldPickerTreePresModel"] = "fieldPickerTreePresModel";
+ // DPI_FieldPickerTreePresModelSource, having type FieldPickerTreePresModel
+ ParameterId["FieldPickerTreePresModelSource"] = "fieldPickerTreePresModelSource";
+ // DPI_FieldPickerTreePresModelTarget, having type FieldPickerTreePresModel
+ ParameterId["FieldPickerTreePresModelTarget"] = "fieldPickerTreePresModelTarget";
+ // DPI_ErrorInfo, having type ErrorInfoPresModel
+ ParameterId["ErrorInfo"] = "errorInfoPresModel";
+ // DPI_CustomSplitPresModel, having type CustomSplitPresModel
+ ParameterId["CustomSplitPresModel"] = "customSplitPresModel";
+ // DPI_PageSetup, having type PageSetupPresModel
+ ParameterId["PageSetup"] = "pageSetup";
+ // DPI_ServerConnectStatus, having type ServerConnectionStatus
+ ParameterId["ServerConnectStatus"] = "serverConnectionStatus";
+ // DPI_GetFilterItemsResponse, having type GetFilterItemsResponsePresModel
+ ParameterId["GetFilterItemsResponse"] = "getFilterItemsResponse";
+ // DPI_FilterSearchResponse, having type FilterSearchResponsePresModel
+ ParameterId["FilterSearchResponse"] = "filterSearchResponse";
+ // DPI_FilterSearchWithIndexResponse, having type FilterSearchWithIndexResponsePresModel
+ ParameterId["FilterSearchWithIndexResponse"] = "filterSearchWithIndexResponse";
+ // DPI_FilterShowChildrenResponse, having type FilterShowChildrenResponsePresModel
+ ParameterId["FilterShowChildrenResponse"] = "filterShowChildrenResponse";
+ // DPI_EditDataServerConnection, having type EditDataServerConnectionPresModel
+ ParameterId["EditDataServerConnection"] = "editDataServerConnection";
+ // DPI_ImagesEdit, having type ImagesEditPresModel
+ ParameterId["ImagesEdit"] = "imagesEdit";
+ // DPI_BackgroundImage, having type BackgroundImagePresModel
+ ParameterId["BackgroundImage"] = "backgroundImage";
+ // DPI_BackgroundImages, having type BackgroundImagePresModel[]
+ ParameterId["BackgroundImages"] = "backgroundImages";
+ // DPI_Predicate, having type PredicatePresModel
+ ParameterId["Predicate"] = "predicate";
+ // DPI_Predicates, having type PredicatePresModel[]
+ ParameterId["Predicates"] = "predicates";
+ // DPI_ImagesEditResult, having type ImagesEditResultPresModel
+ ParameterId["ImagesEditResult"] = "imagesEditResult";
+ // DPI_SortDialogPresModel, having type SortDialogPresModel
+ ParameterId["SortDialogPresModel"] = "sortDialogPresModel";
+ // DPI_CompoundTableCalc, having type CompoundTableCalculationPresModel
+ ParameterId["CompoundTableCalc"] = "compoundTableCalculationPresModel";
+ // DPI_TableCalc, having type TableCalculationPresModel
+ ParameterId["TableCalc"] = "tableCalculationPresModel";
+ // DPI_TableCalcs, having type TableCalculationPresModel[]
+ ParameterId["TableCalcs"] = "tableCalculationPresModels";
+ // DPI_TableCalcIdentifier, having type TableCalcIdentifierPresModel
+ ParameterId["TableCalcIdentifier"] = "tableCalcIdentifier";
+ // DPI_NestedTableCalcInfo, having type NestedTableCalcInfoPresModel
+ ParameterId["NestedTableCalcInfo"] = "nestedTableCalcInfo";
+ // DPI_NestedTableCalcInfos, having type NestedTableCalcInfoPresModel[]
+ ParameterId["NestedTableCalcInfos"] = "nestedTableCalcInfos";
+ // DPI_Ordering, having type TableCalcOrderingPresModel
+ ParameterId["Ordering"] = "tableCalcOrderingPresModel";
+ // DPI_Cumulative, having type CumulativeTableCalcPresModel
+ ParameterId["Cumulative"] = "cumulativeTableCalcPresModel";
+ // DPI_ReferenceOptions, having type TableCalcReferenceOptionsPresModel
+ ParameterId["ReferenceOptions"] = "tableCalcReferenceOptionsPresModel";
+ // DPI_Difference, having type DifferenceTableCalcPresModel
+ ParameterId["Difference"] = "differenceTableCalcPresModel";
+ // DPI_Window, having type WindowTableCalcPresModel
+ ParameterId["Window"] = "windowTableCalcPresModel";
+ // DPI_PercentTotal, having type PercentTotalTableCalcPresModel
+ ParameterId["PercentTotal"] = "percentTotalTableCalcPresModel";
+ // DPI_Rank, having type RankTableCalcPresModel
+ ParameterId["Rank"] = "rankTableCalcPresModel";
+ // DPI_Custom, having type CustomTableCalcPresModel
+ ParameterId["Custom"] = "customTableCalcPresModel";
+ // DPI_WebDataUrl, having type WebDataUrlPresModel
+ ParameterId["WebDataUrl"] = "webDataUrl";
+ // DPI_VisitedWebDataConnectors, having type WebDataUrlPresModel[]
+ ParameterId["VisitedWebDataConnectors"] = "visitedWebDataConnectors";
+ // DPI_WebDataSessionUrls, having type WebDataUrlPresModel[]
+ ParameterId["WebDataSessionUrls"] = "webDataSessionUrls";
+ // DPI_WebDataUrls, having type WebDataUrlPresModel[]
+ ParameterId["WebDataUrls"] = "webDataUrls";
+ // DPI_FieldPicker, having type FieldPickerPresModel
+ ParameterId["FieldPicker"] = "fieldPicker";
+ // DPI_DescribeField, having type DescribeFieldPresModel
+ ParameterId["DescribeField"] = "describeField";
+ // DPI_ShowDataPresModel, having type ShowDataPresModel
+ ParameterId["ShowDataPresModel"] = "showDataPresModel";
+ // DPI_DataTablePresModel, having type ShowDataTablePresModel
+ ParameterId["DataTablePresModel"] = "dataTablePresModel";
+ // DPI_DataTablePresModels, having type ShowDataTablePresModel[]
+ ParameterId["DataTablePresModels"] = "dataTablePresModels";
+ // DPI_SummaryTablePresModels, having type ShowDataTablePresModel[]
+ ParameterId["SummaryTablePresModels"] = "summaryTablePresModels";
+ // DPI_RefreshAllExtractsPresModel, having type RefreshAllExtractsPresModel
+ ParameterId["RefreshAllExtractsPresModel"] = "refeshAllExtractsPresModel";
+ // DPI_RefreshExtractDataSourcePresModel, having type RefreshExtractDataSourcePresModel
+ ParameterId["RefreshExtractDataSourcePresModel"] = "refreshExtractDatasourcePresModel";
+ // DPI_RefreshExtractDataSourceList, having type RefreshExtractDataSourcePresModel[]
+ ParameterId["RefreshExtractDataSourceList"] = "refreshExtractDatasourceList";
+ // DPI_ExtractHistoryPresModel, having type ExtractHistoryPresModel
+ ParameterId["ExtractHistoryPresModel"] = "extractHistoryPresModel";
+ // DPI_ExtractHistoryItemPresModel, having type ExtractHistoryItemPresModel
+ ParameterId["ExtractHistoryItemPresModel"] = "extractHistoryItem";
+ // DPI_ExtractHistoryList, having type ExtractHistoryItemPresModel[]
+ ParameterId["ExtractHistoryList"] = "extractHistoryList";
+ // DPI_DataProviderPresModel, having type DataProviderPresModel
+ ParameterId["DataProviderPresModel"] = "dataProviderPresModel";
+ // DPI_FormatItem, having type FormatItemPresModel
+ ParameterId["FormatItem"] = "formatItem";
+ // DPI_FormatItemList, having type FormatItemPresModel[]
+ ParameterId["FormatItemList"] = "formatItemList";
+ // DPI_FormatContainer, having type FormatContainerPresModel
+ ParameterId["FormatContainer"] = "formatContainer";
+ // DPI_FormatPane, having type FormatPanePresModel
+ ParameterId["FormatPane"] = "formatPane";
+ // DPI_FormatSection, having type FormatSectionPresModel
+ ParameterId["FormatSection"] = "formatSection";
+ // DPI_CollapsibleSection, having type CollapsibleSectionPresModel
+ ParameterId["CollapsibleSection"] = "collapsibleSection";
+ // DPI_CompositeContainer, having type CompositeContainerPresModel
+ ParameterId["CompositeContainer"] = "compositeContainer";
+ // DPI_UnitContainer, having type UnitContainerPresModel
+ ParameterId["UnitContainer"] = "unitContainer";
+ // DPI_TabGroup, having type TabGroupPresModel
+ ParameterId["TabGroup"] = "tabGroup";
+ // DPI_Tab, having type TabPresModel
+ ParameterId["Tab"] = "tab";
+ // DPI_FormatControl, having type FormatControlPresModel
+ ParameterId["FormatControl"] = "formatControl";
+ // DPI_TextControl, having type TextControlPresModel
+ ParameterId["TextControl"] = "textControl";
+ // DPI_NumericControl, having type NumericControlPresModel
+ ParameterId["NumericControl"] = "numericControl";
+ // DPI_ColorControl, having type ColorControlPresModel
+ ParameterId["ColorControl"] = "colorControl";
+ // DPI_ToggleControl, having type ToggleControlPresModel
+ ParameterId["ToggleControl"] = "toggleControl";
+ // DPI_SelectorControl, having type SelectorControlPresModel
+ ParameterId["SelectorControl"] = "enumStringStyle";
+ // DPI_StatsAnalyticSpec, having type StatsAnalyticSpecPresModel
+ ParameterId["StatsAnalyticSpec"] = "statsAnalyticSpec";
+ // DPI_ClusterSpec, having type ClusterSpecPresModel
+ ParameterId["ClusterSpec"] = "clusteringSpec";
+ // DPI_ClusterResults, having type ClusterResultsPresModel
+ ParameterId["ClusterResults"] = "clusterResults";
+ // DPI_ClusterUnit, having type ClusterUnitPresModel
+ ParameterId["ClusterUnit"] = "cluster";
+ // DPI_ClusterUnits, having type ClusterUnitPresModel[]
+ ParameterId["ClusterUnits"] = "clusterUnitPresModels";
+ // DPI_ClusterFieldANOVA, having type ClusterFieldANOVAPresModel
+ ParameterId["ClusterFieldANOVA"] = "clusterFieldAnova";
+ // DPI_ClusterFieldANOVATable, having type ClusterFieldANOVAPresModel[]
+ ParameterId["ClusterFieldANOVATable"] = "clusterFieldAnovaTablePresModel";
+ // DPI_ClusterEdit, having type ClusterEditPresModel
+ ParameterId["ClusterEdit"] = "clusterEditPresModel";
+ // DPI_ClusterDescription, having type ClusterDescribePresModel
+ ParameterId["ClusterDescription"] = "clusterDescription";
+ // DPI_OutlierResults, having type OutlierResultsPresModel
+ ParameterId["OutlierResults"] = "outlierResults";
+ // DPI_ConnectToDataServerSourceResult, having type ConnectToDataServerSourceResultPresModel
+ ParameterId["ConnectToDataServerSourceResult"] = "connectToDataServerSourceResult";
+ // DPI_DataServerConnectionReturnStatus, having type ConnectToDataServerSourceResultPresModel
+ ParameterId["DataServerConnectionReturnStatus"] = "dataServerConnectionReturnStatus";
+ // DPI_WebQuantitativeColorDialog, having type WebQuantitativeColorDialogPresModel
+ ParameterId["WebQuantitativeColorDialog"] = "quantitativeColorDialog";
+ // DPI_WebCategoricalColorDialog, having type WebCategoricalColorDialogPresModel
+ ParameterId["WebCategoricalColorDialog"] = "categoricalColorDialog";
+ // DPI_WebSaveDatasourceDialog, having type WebSaveDatasourceDialogPresModel
+ ParameterId["WebSaveDatasourceDialog"] = "saveDatasourceDialog";
+ // DPI_BorderStyleSpec, having type StyleSpecPresModel
+ ParameterId["BorderStyleSpec"] = "borderStyleSpec";
+ // DPI_HaloStyleSpec, having type StyleSpecPresModel
+ ParameterId["HaloStyleSpec"] = "haloStyleSpec";
+ // DPI_MarksColorUberEffects, having type MarksColorUberEffectsPresModel
+ ParameterId["MarksColorUberEffects"] = "marksColorUberEffects";
+ // DPI_CategoricalColorEncoding, having type CategoricalColorEncodingPresModel
+ ParameterId["CategoricalColorEncoding"] = "categoricalColorEncoding";
+ // DPI_CategoricalShapeEncoding, having type CategoricalShapeEncodingPresModel
+ ParameterId["CategoricalShapeEncoding"] = "categoricalShapeEncoding";
+ // DPI_ShapePalettePresModel, having type ShapePalettePresModel
+ ParameterId["ShapePalettePresModel"] = "shapePalettePresModel";
+ // DPI_ShapePalettePresModels, having type ShapePalettePresModel[]
+ ParameterId["ShapePalettePresModels"] = "shapePalettePresModels";
+ // DPI_DataSourceDateProperties, having type DataSourceDatePropertiesPresModel
+ ParameterId["DataSourceDateProperties"] = "datasourceDateProperties";
+ // DPI_DatePropertiesDateFormat, having type DatePropertiesDateFormatPresModel
+ ParameterId["DatePropertiesDateFormat"] = "datePropertiesDateFormat";
+ // DPI_DatePropertiesDateFormats, having type DatePropertiesDateFormatPresModel[]
+ ParameterId["DatePropertiesDateFormats"] = "datePropertiesDateFormats";
+ // DPI_HierarchySelect, having type HierarchySelectModel
+ ParameterId["HierarchySelect"] = "hierarchySelect";
+ // DPI_HierarchySelectMember, having type HierarchySelectMemberPresModel
+ ParameterId["HierarchySelectMember"] = "hierarchySelectMember";
+ // DPI_HierarchySelectMemberList, having type HierarchySelectMemberPresModel[]
+ ParameterId["HierarchySelectMemberList"] = "hierarchySelectMemberList";
+ // DPI_HierarchySetDefaultMember, having type HierarchySetDefaultMemberPresModel
+ ParameterId["HierarchySetDefaultMember"] = "hierarchySetDefaultMember";
+ // DPI_SemiStructSchema, having type SemiStructSchemaPresModel
+ ParameterId["SemiStructSchema"] = "semiStructSchema";
+ // DPI_SemiStructSchemaMember, having type SemiStructSchemaMemberPresModel
+ ParameterId["SemiStructSchemaMember"] = "semiStructSchemaMember";
+ // DPI_SemiStructSchemaMemberList, having type SemiStructSchemaMemberPresModel[]
+ ParameterId["SemiStructSchemaMemberList"] = "semiStructSchemaMemberList";
+ // DPI_ParameterEditInfo, having type ParameterEditInfoPresModel
+ ParameterId["ParameterEditInfo"] = "parameterEditInfo";
+ // DPI_ProductParameterInfo, having type ProductParameterInfoPresModel
+ ParameterId["ProductParameterInfo"] = "productParameterInfo";
+ // DPI_CaptionedDatasourceField, having type CaptionedDatasourceInfoPresModel
+ ParameterId["CaptionedDatasourceField"] = "captionedDatasourceField";
+ // DPI_CaptionedDatasourceFields, having type CaptionedDatasourceInfoPresModel[]
+ ParameterId["CaptionedDatasourceFields"] = "captionedDatasourceFields";
+ // DPI_EditedParameterRangeDomain, having type ParameterRangeDomainPresModel
+ ParameterId["EditedParameterRangeDomain"] = "editedParameterRangeDomain";
+ // DPI_ParameterRangeDomain, having type ParameterRangeDomainPresModel
+ ParameterId["ParameterRangeDomain"] = "parameterRangeDomain";
+ // DPI_ParameterListDomain, having type ParameterListDomainPresModel
+ ParameterId["ParameterListDomain"] = "parameterListDomain";
+ // DPI_ParameterListDomainMember, having type ParameterListDomainMemberPresModel
+ ParameterId["ParameterListDomainMember"] = "parameterListDomainMember";
+ // DPI_ParameterListDomainMembers, having type ParameterListDomainMemberPresModel[]
+ ParameterId["ParameterListDomainMembers"] = "parameterListDomainMembers";
+ // DPI_IndexedDomainMember, having type IndexedDomainMemberPresModel
+ ParameterId["IndexedDomainMember"] = "indexedDomainMember";
+ // DPI_IndexedDomainMembers, having type IndexedDomainMemberPresModel[]
+ ParameterId["IndexedDomainMembers"] = "indexedDomainMembers";
+ // DPI_NewIndexedDomainMembers, having type IndexedDomainMemberPresModel[]
+ ParameterId["NewIndexedDomainMembers"] = "newIndexedDomainMembers";
+ // DPI_ParameterListDomainDiff, having type parameter-list-domain-diff
+ ParameterId["ParameterListDomainDiff"] = "parameterListDomainDiff";
+ // DPI_IndexRange, having type IndexRangePresModel
+ ParameterId["IndexRange"] = "indexRange";
+ // DPI_IndexRanges, having type IndexRangePresModel[]
+ ParameterId["IndexRanges"] = "indexRanges";
+ // DPI_CategoricalFind, having type CategoricalFindPresModel
+ ParameterId["CategoricalFind"] = "categoricalFind";
+ // DPI_CaptionedDataValue, having type CaptionedDataValuePresModel
+ ParameterId["CaptionedDataValue"] = "captionedDataValue";
+ // DPI_SelectedValueCaption, having type CaptionedDataValuePresModel
+ ParameterId["SelectedValueCaption"] = "selectedValueCaption";
+ // DPI_DataValueCaptionList, having type CaptionedDataValuePresModel[]
+ ParameterId["DataValueCaptionList"] = "dataValueCatpionList";
+ // DPI_RangeDataValue, having type RangeDataValuePresModel
+ ParameterId["RangeDataValue"] = "rangeDataValue";
+ // DPI_ParameterRangeDataValue, having type RangeDataValuePresModel
+ ParameterId["ParameterRangeDataValue"] = "parameterRangeDataValue";
+ // DPI_DataValueRangeCaptions, having type DataValueRangeCaptionsPresModel
+ ParameterId["DataValueRangeCaptions"] = "dataValueRangeCaptions";
+ // DPI_IndependentDimension, having type IndependentDimensionPresModel
+ ParameterId["IndependentDimension"] = "independentDimension";
+ // DPI_IndependentDimensions, having type IndependentDimensionPresModel[]
+ ParameterId["IndependentDimensions"] = "independentDimensions";
+ // DPI_AttributePerspective, having type PerspectivePresModel
+ ParameterId["AttributePerspective"] = "attributePerspective";
+ // DPI_CubePerspective, having type PerspectivePresModel
+ ParameterId["CubePerspective"] = "cubePerspective";
+ // DPI_AttributePerspectives, having type PerspectivePresModel[]
+ ParameterId["AttributePerspectives"] = "attributePerspectives";
+ // DPI_CalculatedMembersForEditingPresModel, having type EditCalculatedMembersPresModel
+ ParameterId["CalculatedMembersForEditingPresModel"] = "calculatedMembersForEditingPresmodel";
+ // DPI_CalculatedMember, having type CalculatedMemberPresModel
+ ParameterId["CalculatedMember"] = "calculatedMember";
+ // DPI_NewCalculatedMember, having type CalculatedMemberPresModel
+ ParameterId["NewCalculatedMember"] = "newCalculatedMember";
+ // DPI_UpdatedCalculatedMember, having type CalculatedMemberPresModel
+ ParameterId["UpdatedCalculatedMember"] = "updatedCalculatedMember";
+ // DPI_CalculatedMembersList, having type CalculatedMemberPresModel[]
+ ParameterId["CalculatedMembersList"] = "calculatedMembersList";
+ // DPI_CalculatedMemberHierarchyItem, having type CalculatedMemberHierarchyItemPresModel
+ ParameterId["CalculatedMemberHierarchyItem"] = "calculatedMemberHierarchyItem";
+ // DPI_CalculatedMemberHierarchyList, having type CalculatedMemberHierarchyItemPresModel[]
+ ParameterId["CalculatedMemberHierarchyList"] = "calculatedMemberHierarchyList";
+ // DPI_SummaryCardPresModel, having type SummaryCardPresModel
+ ParameterId["SummaryCardPresModel"] = "summaryCard";
+ // DPI_MeasureSummary, having type MeasureSummaryPresModel
+ ParameterId["MeasureSummary"] = "measureSummary";
+ // DPI_MeasureSummaryList, having type MeasureSummaryPresModel[]
+ ParameterId["MeasureSummaryList"] = "measureSummaryList";
+ // DPI_AnnotationPresModel, having type AnnotationPresModel
+ ParameterId["AnnotationPresModel"] = "annotation";
+ // DPI_AnnotationList, having type AnnotationPresModel[]
+ ParameterId["AnnotationList"] = "annotationList";
+ // DPI_AnnotationShapeStyle, having type AnnotationShapeStylePresModel
+ ParameterId["AnnotationShapeStyle"] = "annotationShapeStyle";
+ // DPI_Telemetry, having type TelemetryPresModel
+ ParameterId["Telemetry"] = "telemetry";
+ // DPI_DataSourceTelemetry, having type DataSourceTelemetryPresModel
+ ParameterId["DataSourceTelemetry"] = "dataSourceTelemetry";
+ // DPI_DataSourceTelemetryList, having type DataSourceTelemetryPresModel[]
+ ParameterId["DataSourceTelemetryList"] = "dataSourceTelemetryList";
+ // DPI_VisualSpecificationTelemetry, having type VisualSpecificationTelemetryPresModel
+ ParameterId["VisualSpecificationTelemetry"] = "visualSpecificationTelemetry";
+ // DPI_VisualSpecificationTelemetryList, having type VisualSpecificationTelemetryPresModel[]
+ ParameterId["VisualSpecificationTelemetryList"] = "visualSpecificationTelemetryList";
+ // DPI_UnderlyingDataTable, having type UnderlyingDataTablePresModel
+ ParameterId["UnderlyingDataTable"] = "underlyingDataTable";
+ // DPI_UnderlyingDataTables, having type UnderlyingDataTablePresModel[]
+ ParameterId["UnderlyingDataTables"] = "underlyingDataTables";
+ // DPI_UnderlyingDataTableColumn, having type UnderlyingDataTableColumnPresModel
+ ParameterId["UnderlyingDataTableColumn"] = "underlyingDataTableColumn";
+ // DPI_UnderlyingDataTableColumns, having type UnderlyingDataTableColumnPresModel[]
+ ParameterId["UnderlyingDataTableColumns"] = "underlyingDataTableColumns";
+ // DPI_PageCacheID, having type PageCacheIDPresModel
+ ParameterId["PageCacheID"] = "pageCacheId";
+ // DPI_RelationalPageCacheID, having type PageCacheIDPresModel
+ ParameterId["RelationalPageCacheID"] = "relationalPageCacheId";
+ // DPI_SearchResultsCacheID, having type PageCacheIDPresModel
+ ParameterId["SearchResultsCacheID"] = "searchResultsCacheId";
+ // DPI_PageInfo, having type PageInfoPresModel
+ ParameterId["PageInfo"] = "pageInfo";
+ // DPI_RowColPair, having type RowColPairPresModel
+ ParameterId["RowColPair"] = "rowColPair";
+ // DPI_TopLeftRowCol, having type RowColPairPresModel
+ ParameterId["TopLeftRowCol"] = "topLeftRowCol";
+ // DPI_BotRightRowCol, having type RowColPairPresModel
+ ParameterId["BotRightRowCol"] = "botRightRowCol";
+ // DPI_RowColPairs, having type RowColPairPresModel[]
+ ParameterId["RowColPairs"] = "rowColPairs";
+ // DPI_TableViewCacheInfo, having type TableViewCachePresModel
+ ParameterId["TableViewCacheInfo"] = "tableViewCacheInfo";
+ // DPI_TableViewInfo, having type tableViewInfoPresModel
+ ParameterId["TableViewInfo"] = "tableViewInfo";
+ // DPI_TableViewColumnInfo, having type TableViewColumnInfoPresModel
+ ParameterId["TableViewColumnInfo"] = "tableViewColumnInfo";
+ // DPI_TableViewColumns, having type TableViewColumnInfoPresModel[]
+ ParameterId["TableViewColumns"] = "tableViewColumns";
+ // DPI_TableViewPageItem, having type TableViewPageItemPresModel
+ ParameterId["TableViewPageItem"] = "tableViewPageItem";
+ // DPI_TableViewPageColumns, having type TableViewPageItemPresModel[]
+ ParameterId["TableViewPageColumns"] = "tableViewPageColumns";
+ // DPI_TableViewPageRow, having type TableViewPageRowPresModel
+ ParameterId["TableViewPageRow"] = "tableViewPageRow";
+ // DPI_TableViewPageRows, having type TableViewPageRowPresModel[]
+ ParameterId["TableViewPageRows"] = "tableViewPageRows";
+ // DPI_TableViewPage, having type TableViewPagePresModel
+ ParameterId["TableViewPage"] = "tableViewPage";
+ // DPI_CategoricalValuePicker, having type CategoricalValuePickerPresModel
+ ParameterId["CategoricalValuePicker"] = "categoricalValuePicker";
+ // DPI_AnnotationShapeBorderStyle, having type LineStylePresModel
+ ParameterId["AnnotationShapeBorderStyle"] = "annotationShapeBorderStyle";
+ // DPI_AnotationShapeStrokeStyle, having type LineStylePresModel
+ ParameterId["AnotationShapeStrokeStyle"] = "annotationShapeStrokeStyle";
+ // DPI_CategoricalBinEditorPresModel, having type CategoricalBinEditorPresModel
+ ParameterId["CategoricalBinEditorPresModel"] = "categoricalBinEditor";
+ // DPI_CategoricalBinItem, having type CategoricalBinItemPresModel
+ ParameterId["CategoricalBinItem"] = "categoricalBinItemPresModel";
+ // DPI_CategoricalBinItems, having type CategoricalBinItemPresModel[]
+ ParameterId["CategoricalBinItems"] = "categoricalBinItemPresModels";
+ // DPI_MeasurePickerFieldInfo, having type MeasurePickerFieldInfoPresModel
+ ParameterId["MeasurePickerFieldInfo"] = "measurePickerFieldInfo";
+ // DPI_MeasurePickerFields, having type MeasurePickerFieldInfoPresModel[]
+ ParameterId["MeasurePickerFields"] = "measurePickerFields";
+ // DPI_MeasureAggregationInfo, having type MeasureAggregationInfoPresModel
+ ParameterId["MeasureAggregationInfo"] = "measureAggregationInfo";
+ // DPI_MeasureAggregations, having type MeasureAggregationInfoPresModel[]
+ ParameterId["MeasureAggregations"] = "measureAggregations";
+ // DPI_TuplePair, having type TuplePairPresModel
+ ParameterId["TuplePair"] = "tuplePair";
+ // DPI_DimensionBound, having type DimensionBoundPresModel
+ ParameterId["DimensionBound"] = "dimensionBound";
+ // DPI_PerspectiveBounds, having type DimensionBoundPresModel[]
+ ParameterId["PerspectiveBounds"] = "perspectiveBounds";
+ // DPI_FilterPerspectiveInfoPresModel, having type FilterPerspectiveInfoPresModel
+ ParameterId["FilterPerspectiveInfoPresModel"] = "filterPerspectiveInfo";
+ // DPI_TableRelevance, having type TableRelevancePresModel
+ ParameterId["TableRelevance"] = "tableRelevance";
+ // DPI_AddInRegistrationPresModel, having type AddInRegistrationPresModel
+ ParameterId["AddInRegistrationPresModel"] = "addInRegistrationPresModel";
+ // DPI_AddInRegistrationPresModelList, having type AddInRegistrationPresModel[]
+ ParameterId["AddInRegistrationPresModelList"] = "addInRegistrationPresModelList";
+ // DPI_AddInDashboardAuthoringWidget, having type AddInDashboardWidgetPresModel
+ ParameterId["AddInDashboardAuthoringWidget"] = "addInDashboardAuthoringWidgetPresModel";
+ // DPI_AddInInstance, having type AddInInstancePresModel
+ ParameterId["AddInInstance"] = "addInInstancePresModel";
+ // DPI_AddInLocator, having type AddInLocatorPresModel
+ ParameterId["AddInLocator"] = "addInLocatorPresModel";
+ // DPI_AddInContext, having type AddInContext
+ ParameterId["AddInContext"] = "addInContext";
+ // DPI_AddInMode, having type AddInMode
+ ParameterId["AddInMode"] = "addInMode";
+ // DPI_SetAxisDataValueResult, having type SetAxisDataValueResult
+ ParameterId["SetAxisDataValueResult"] = "setAxisDataValueResult";
+ // DPI_AxisExtentStartType, having type AxisExtentType
+ ParameterId["AxisExtentStartType"] = "axisExtentStartType";
+ // DPI_AxisExtentEndType, having type AxisExtentType
+ ParameterId["AxisExtentEndType"] = "axisExtentEndType";
+ // DPI_AxisExtentsType, having type AxisExtentType
+ ParameterId["AxisExtentsType"] = "axisExtentsType";
+ // DPI_AddInEnvironment, having type AddInEnvironmentPresModel
+ ParameterId["AddInEnvironment"] = "addInEnvironmentPresModel";
+ // DPI_AddInDashboardInfo, having type AddInDashboardInfoPresModel
+ ParameterId["AddInDashboardInfo"] = "addInDashboardInfoPresModel";
+ // DPI_AddInSettingsInfo, having type AddInSettingsInfoPresModel
+ ParameterId["AddInSettingsInfo"] = "addInSettingsInfo";
+ // DPI_AddInBootstrapInfo, having type AddInBootstrapInfoPresModel
+ ParameterId["AddInBootstrapInfo"] = "addInBootstrapInfo";
+ // DPI_AddInDebugSettings, having type AddInDebugSettingsPresModel
+ ParameterId["AddInDebugSettings"] = "addInDebugSettings";
+ // DPI_RichText, having type RichTextPresModel
+ ParameterId["RichText"] = "richText";
+ // DPI_RichTextKeywordSubList, having type RichTextKeywordSubListPresModel
+ ParameterId["RichTextKeywordSubList"] = "richTextKeywordsSublist";
+ // DPI_RichTextKeywordSubLists, having type RichTextKeywordSubListPresModel[]
+ ParameterId["RichTextKeywordSubLists"] = "richTextKeywordSublists";
+ // DPI_RichTextKeywordList, having type RichTextKeywordListPresModel
+ ParameterId["RichTextKeywordList"] = "richTextKeywordsList";
+ // DPI_RichTextBlockStyle, having type RichTextBlockStylePresModel
+ ParameterId["RichTextBlockStyle"] = "richTextBlockStyle";
+ // DPI_RichTextContentStyle, having type RichTextContentStylePresModel
+ ParameterId["RichTextContentStyle"] = "richTextContentStyle";
+ })(ParameterId = exports.ParameterId || (exports.ParameterId = {}));
+
+
+/***/ },
+/* 82 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_internal_contract_1 = __webpack_require__(79);
+ var CommandIds_1 = __webpack_require__(83);
+ var Params_1 = __webpack_require__(81);
+ var CommandMappingRegistry_1 = __webpack_require__(84);
+ var CommandRegistration_1 = __webpack_require__(85);
+ var CommandMappingRegistryFactory = (function () {
+ function CommandMappingRegistryFactory() {
+ }
+ /**
+ * Creates and populates a new CommandMappingRegistry for the specific version number requested
+ *
+ * @static
+ * @param {VersionNumber} versionNumber
+ * @param {boolean} runningInDesktop
+ * @returns {CommandMappingRegistry}
+ * @memberof CommandMappingRegistryFactory
+ */
+ CommandMappingRegistryFactory.createCommandMappingRegistry = function (versionNumber, runningInDesktop) {
+ var result = new CommandMappingRegistry_1.CommandMappingRegistry();
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.InitializeExtension, CommandIds_1.DocCommands.InitializeAddInInstance, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ExtensionLocator, Params_1.ParameterId.AddInLocator)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ExtensionBootstrapInfo, Params_1.ParameterId.AddInBootstrapInfo)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetUnderlyingData, CommandIds_1.DocCommands.GetUnderlyingData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IncludeAllColumns, Params_1.ParameterId.IncludeAllColumns),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.MaxRows, Params_1.ParameterId.MaxRows),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingDataTable, Params_1.ParameterId.UnderlyingDataTable)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSummaryData, CommandIds_1.DocCommands.GetSummaryData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingSummaryDataTable, Params_1.ParameterId.UnderlyingDataTable)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSourceData, CommandIds_1.DocCommands.GetDataSourceData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceId, Params_1.ParameterId.Datasource),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.MaxRows, Params_1.ParameterId.MaxRows),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ColumnsToInclude, Params_1.ParameterId.FieldDisplayNames)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceDataTable, Params_1.ParameterId.UnderlyingDataTable)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyCategoricalFilter, CommandIds_1.DocCommands.CategoricalFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterValues, Params_1.ParameterId.FilterAliases),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterUpdateType, Params_1.ParameterId.FilterUpdateType),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IsExcludeMode, Params_1.ParameterId.Exclude, true),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyRangeFilter, CommandIds_1.DocCommands.RangeFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMin, Params_1.ParameterId.RangeMin, true),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMax, Params_1.ParameterId.RangeMax, true),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeNullOption, Params_1.ParameterId.Included, true),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ClearFilter, CommandIds_1.DocCommands.ResetFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetSelectedMarks, CommandIds_1.DocCommands.GetSelectionData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SelectedData, Params_1.ParameterId.SelectionData)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetHighlightedMarks, CommandIds_1.DocCommands.GetHighlightedData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.HighlightedData, Params_1.ParameterId.HighlightedData)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.SaveExtensionSettings, CommandIds_1.DocCommands.SaveAddInSettings, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ExtensionLocator, Params_1.ParameterId.AddInLocator),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SettingsValues, Params_1.ParameterId.AddInSettings)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ExtensionSettingsInfo, Params_1.ParameterId.AddInSettingsInfo)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetParametersForSheet, CommandIds_1.DocCommands.GetParameterModels, [], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfos, Params_1.ParameterId.ParameterCtrls)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.FindParameter, CommandIds_1.DocCommands.FindParameterModel, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterCaption, Params_1.ParameterId.FieldCaption, true),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterFieldName, Params_1.ParameterId.FieldNameString, true)],
+ // We might not get a response if the parameter isn't found
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfo, Params_1.ParameterId.ParameterCtrl, true)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ChangeParameterValue, CommandIds_1.DocCommands.SetParameterValue, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterFieldName, Params_1.ParameterId.GlobalFieldName),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterValue, Params_1.ParameterId.ValueStr)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfo, Params_1.ParameterId.ParameterCtrl)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ClearSelectedMarks, CommandIds_1.DocCommands.ClearSelectedMarks, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)]));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.SelectByValue, CommandIds_1.DocCommands.SelectByValue, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.Selection, Params_1.ParameterId.Selection, true),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SelectionUpdateType, Params_1.ParameterId.SelectionUpdateType),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.HierValSelectionModels, Params_1.ParameterId.HierValSelectionModels, true),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DimValSelectionModels, Params_1.ParameterId.DimValSelectionModels, true),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.QuantRangeSelectionModels, Params_1.ParameterId.QuantRangeSelectionModels, true)]));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSources, CommandIds_1.DocCommands.GetSchema, [], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSchema, Params_1.ParameterId.DataSchema)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.RefreshDataSource, (runningInDesktop) ? CommandIds_1.UICommands.RefreshDataSourceUI : CommandIds_1.SrvCommands.RefreshData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceId, Params_1.ParameterId.Datasource)], undefined, (runningInDesktop) ? CommandRegistration_1.CommandNamespace.TabUI : CommandRegistration_1.CommandNamespace.TabSrv));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetFilters, CommandIds_1.DocCommands.GetWorksheetFilters, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.WorksheetFilters, Params_1.ParameterId.FiltersInfo)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetCategoricalDomain, CommandIds_1.DocCommands.GetCategoricalDomain, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldId, Params_1.ParameterId.FieldName),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DomainType, Params_1.ParameterId.FilterDomainType)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.CategoricalDomain, Params_1.ParameterId.CategoricalDomain)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetRangeDomain, CommandIds_1.DocCommands.GetQuantitativeDomain, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldId, Params_1.ParameterId.FieldName),
+ new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DomainType, Params_1.ParameterId.FilterDomainType)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.QuantitativeDomain, Params_1.ParameterId.QuantitativeDomain)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetJoinDescription, CommandIds_1.DocCommands.GetJoinDescriptionPresModel, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceId, Params_1.ParameterId.Datasource)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.JoinDescription, Params_1.ParameterId.JoinDescription)));
+ result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetConnectionDescriptionSummaries, CommandIds_1.DocCommands.GetConnectionDescriptionSummaryPresModels, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceId, Params_1.ParameterId.Datasource)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ConnectionDescriptionSummaries, Params_1.ParameterId.ConnectionDescriptionSummaries)));
+ return result;
+ };
+ return CommandMappingRegistryFactory;
+ }());
+ exports.CommandMappingRegistryFactory = CommandMappingRegistryFactory;
+
+
+/***/ },
+/* 83 */
+/***/ function(module, exports) {
+
+ "use strict";
+ /* tslint:disable */
+ // -----------------------------------------------------------------------------
+ //
+ // This file is the copyrighted property of Tableau Software and is protected
+ // by registered patents and other applicable U.S. and international laws and
+ // regulations.
+ //
+ // Unlicensed use of the contents of this file is prohibited. Please refer to
+ // the NOTICES.txt file for further details.
+ //
+ // -----------------------------------------------------------------------------
+ // WARNING: Computer generated file. Do not hand modify.
+ // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/commands-enum-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-cmd-wrappers.data']
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var DocCommands;
+ (function (DocCommands) {
+ // Saves the settings for the specified add-in id
+ DocCommands["SaveAddInSettings"] = "save-add-in-settings";
+ // Gets the pres model for an add-in instance.
+ DocCommands["GetAddInInstancePresModel"] = "get-add-in-instance-pres-model";
+ // Gets the pres model for the dashboard authoring widget for add-ins.
+ DocCommands["GetAddInDashboardAuthoringWidgetPresModel"] = "get-add-in-dashboard-authoring-widget-pres-model";
+ // Gets the necessary information for an add-in to initialize itself.
+ DocCommands["InitializeAddInInstance"] = "initialize-add-in-instance";
+ // Enables or disable javascript debugging of an add-in.
+ DocCommands["SetAddInJsDebuggingEnabled"] = "set-add-in-js-debugging-enabled";
+ // Whether or not we should pause before loading. If missing, toggle the value
+ DocCommands["SetPauseBeforeLoadingAddIn"] = "set-pause-before-loading-add-in";
+ // Reloads the Add-In widget and web page.
+ DocCommands["ReloadAddIn"] = "reload-add-in";
+ // Retrieves the context menu for a dashboard add-in.
+ DocCommands["GetAddInZoneContextMenu"] = "get-add-in-zone-context-menu";
+ // Gets the pres model which indicates what the debug settings for add-ins is.
+ DocCommands["GetAddInDebugSettingsPresModel"] = "get-add-in-debug-settings-pres-model";
+ // Primary use is for building context menus
+ DocCommands["IsSelectionAnEditableParameter"] = "is-selection-an-editable-parameter";
+ // Check if selection can be used as base for creating a new parameter. Primary use is for building context menus
+ DocCommands["GetCreateParameterState"] = "get-create-parameter-state";
+ // Uses EditParameter to get and return info about the presmodel without maintaining the controller
+ DocCommands["GetParameterEditInfo"] = "get-parameter-edit-info";
+ // Initialize the controller and its stored parameter then return a populated presmodel
+ DocCommands["CreateParameter"] = "create-parameter";
+ // Same underlying logic as CreateParameter but edits rather than creating a new parameter
+ DocCommands["EditParameter_New"] = "edit-parameter-new";
+ // Add a member of a parameter domain. Changes are applied to intermediate state and saved on commit
+ DocCommands["AddParameterMember"] = "add-parameter-member";
+ // Edit a member of a parameter domain. Changes are applied to intermediate state and saved on commit
+ DocCommands["EditParameterMember"] = "edit-parameter-member";
+ // Delete a series of ranges of members from the parameter list.
+ DocCommands["DeleteParameterMembers"] = "delete-parameter-members";
+ // Copy a series of ranges of members of a parameter list
+ DocCommands["CopyParameterMembers"] = "copy-parameter-members";
+ // Move a series of ranges of members of a parameter list
+ DocCommands["MoveParameterMembers"] = "move-parameter-members";
+ // Change domain of a parameter. Changes are applied to intermediate state and saved on commit
+ DocCommands["EditParameterDomainType"] = "edit-parameter-domain-type";
+ // Change datatype of a parameter. Changes are applied to intermediate state and saved on commit
+ DocCommands["EditParameterDataType"] = "edit-parameter-data-type";
+ // Change display format of a parameter. Changes are applied to intermediate state and saved on commit
+ DocCommands["EditParameterFormat"] = "edit-parameter-format";
+ // Validate changes to a parameter's range domain and apply to intermediate state. Changes are saved on commit
+ DocCommands["EditParameterRange"] = "edit-parameter-range";
+ // Edit the value of a non-list domain parameter
+ DocCommands["EditParameterValue"] = "edit-parameter-value";
+ // Edit the value of a list domain parameter
+ DocCommands["EditParameterValueIndex"] = "edit-parameter-value-index";
+ // Update the parameter caption and description - used to keep backend in sync. No verification/return is requried.
+ DocCommands["EditParameterDisplayInfo"] = "edit-parameter-display-info";
+ // Update the domain of the parameter using a field (column or parameter) as a base
+ DocCommands["UpdateParameterFromField"] = "update-parameter-from-field";
+ // Update the list domain of a parameter from a plain text representation of values
+ DocCommands["ParseParameterListDomain"] = "parse-parameter-list-domain";
+ // Clears the parameter's domain of all members
+ DocCommands["ClearParameterListDomain"] = "clear-parameter-list-domain";
+ // Creates or edits parameter from intermediate state. Takes a few properties that are cached in dialog and applies them pre-commit.
+ DocCommands["CommitParameterEdits"] = "commit-parameter-edits";
+ // Gets the model for a particular parameter or returns an empty response if one is not found.
+ DocCommands["FindParameterModel"] = "find-parameter-model";
+ // Gets the pres model for the show data dialog
+ DocCommands["GetShowDataPresModel"] = "get-show-data-pres-model";
+ // Export underlying data from the ShowDataDialog to a CSV file
+ DocCommands["ShowDataExportToCSV"] = "show-data-export-to-csv";
+ // Gets the summary data for a worksheet
+ DocCommands["GetSummaryData"] = "get-summary-data";
+ // Gets the underlying data for a worksheet
+ DocCommands["GetUnderlyingData"] = "get-underlying-data";
+ // Gets the underlying data for a specific data source.
+ DocCommands["GetDataSourceData"] = "get-data-source-data";
+ // Select all marks that have the tuple's value for the given field .
+ DocCommands["SelectByTupleValue"] = "select-by-tuple-value";
+ // Clear all the selected marks for the given worksheet
+ DocCommands["ClearSelectedMarks"] = "clear-selected-marks";
+ // Creates or updates and existing filter based on the provided updates.
+ DocCommands["ApplyCategoricalFilterUpdates"] = "apply-categorical-filter-updates";
+ // Search filter domain for text and return any matching tuples.
+ DocCommands["CategoricalFilterSearch"] = "categorical-filter-search";
+ // Clear all members from the table of the identified cache.
+ DocCommands["CategoricalFilterClearRelationalCache"] = "categorical-filter-clear-relational-cache";
+ // Create tuples for an existing filter from supplied text.
+ DocCommands["GetCategoricalFilterTuplesFromText"] = "get-categorical-filter-tuples-from-text";
+ // Returns a presmodel backing a categorical filter, initializing a data cache for fast lookup of the filter's member domain.
+ DocCommands["GetCategoricalFilter"] = "get-categorical-filter";
+ // Retrieves a page of data to display in the filter's list domain
+ DocCommands["GetCategoricalFilterDomainPage"] = "get-categorical-filter-domain-page";
+ // Reset filter to committed state
+ DocCommands["ResetCategoricalFilterDeferred"] = "reset-categorical-filter-deferred";
+ // Use uncommitted state to reset the filter's controller
+ DocCommands["RecreateCategoricalFilterController"] = "recreate-categorical-filter-controller";
+ // Validates a Categroical Filter name.
+ DocCommands["ValidateCategoricalFilterName"] = "validate-categorical-filter-name";
+ // Retrieves the field aggregations allowed for the field being filtered.
+ DocCommands["GetFilterFieldAggregations"] = "get-filter-field-aggregations";
+ // Gets a summary of the filter pattern.
+ DocCommands["GetCategoricalFilterPatternSummary"] = "get-categorical-filter-pattern-summary";
+ // Gets a summery of the filter condition.
+ DocCommands["GetCategoricalFilterConditionSummary"] = "get-categorical-filter-condition-summary";
+ // Load the current minimum and maximum data value range for the condition field.
+ DocCommands["LoadCategoricalFilterConditionFieldValueRange"] = "load-categorical-filter-condition-field-value-range";
+ // Validates a Categorical Filter's condition formula and re-writes it.
+ DocCommands["ValidateCategoricalFilterConditionFormula"] = "validate-categorical-filter-condition-formula";
+ // Gets a summery of the filter limit.
+ DocCommands["GetCategoricalFilterLimitSummary"] = "get-categorical-filter-limit-summary";
+ // Validates a Categorical Filter's limit count.
+ DocCommands["ValidateCategoricalFilterLimitCount"] = "validate-categorical-filter-limit-count";
+ // Validates a Categorical Filter's limit formula, and re-writes the formula.
+ DocCommands["ValidateCategoricalFilterLimitFormula"] = "validate-categorical-filter-limit-formula";
+ // Validates a Categorical Filter's limit.
+ DocCommands["ValidateCategoricalFilterLimit"] = "validate-categorical-filter-limit";
+ // Inform cache when a user changes the range
+ DocCommands["CategoricalFilterSetRangeTypeDeferred"] = "categorical-filter-set-range-type-deferred";
+ // Inform cache when a user changes whether the selection is exclusive
+ DocCommands["CategoricalFilterSetSelectionExclusiveDeferred"] = "categorical-filter-set-selection-exclusive-deferred";
+ // Inform cache when a user changes whether an empty selection should be considered a selection of 'All' in a Manual selection mode
+ DocCommands["CategoricalFilterSetUseAllWhenManualIsEmptyDeferred"] = "categorical-filter-set-use-all-when-manual-is-empty-deferred";
+ // Inform cache when a user alters the preset type
+ DocCommands["CategoricalFilterSetPresetTypeDeferred"] = "categorical-filter-set-preset-type-deferred";
+ // Inform cache the user has selected one or more members
+ DocCommands["CategoricalFilterSelectRelationalMembersDeferred"] = "categorical-filter-select-relational-members-deferred";
+ // Inform cache the user has deselected one or more members
+ DocCommands["CategoricalFilterDeselectRelationalMembersDeferred"] = "categorical-filter-deselect-relational-members-deferred";
+ // Inform cache when a user selects everything in the domain
+ DocCommands["CategoricalFilterSelectAllRelationalMembersDeferred"] = "categorical-filter-select-all-relational-members-deferred";
+ // Inform cache when a user deselects everything in the domain
+ DocCommands["CategoricalFilterDeselectAllRelationalMembersDeferred"] = "categorical-filter-deselect-all-relational-members-deferred";
+ // Inform cache the user wants to see a different domain (e.g. relevant values only)
+ DocCommands["CategoricalFilterSetDomainTypeDeferred"] = "categorical-filter-set-domain-type-deferred";
+ // Set whether filters apply to totals as well as non-totals table calcs
+ DocCommands["FilterApplyToTotalTableCalcs"] = "filter-apply-to-total-table-calcs";
+ // Gets the list of filters used in a worksheet
+ DocCommands["GetWorksheetFilters"] = "get-worksheet-filters";
+ // Gets the domain for a categorical Filter
+ DocCommands["GetCategoricalDomain"] = "get-categorical-domain";
+ // Gets the domain for a quantitative Filter
+ DocCommands["GetQuantitativeDomain"] = "get-quantitative-domain";
+ // Creates a datasource filter store and returns a list of the current datasource filters.
+ DocCommands["CreateDatasourceFilterStore"] = "create-datasource-filter-store";
+ // Commits the pending datasource filter changes in the filter store.
+ DocCommands["CommitDatasourceFilterStore"] = "commit-datasource-filter-store";
+ // Gets the list of datasource fields that can be filtered.
+ DocCommands["GetDatasourceFilterFieldPickerModel"] = "get-datasource-filter-field-picker-model";
+ // Get field information needed for creating a datasource filter.
+ DocCommands["GetDatasourceFilterFieldInfo"] = "get-datasource-filter-field-info";
+ // Gets a filter presentation model form a filter store.
+ DocCommands["GetFilterFromStore"] = "get-filter-from-store";
+ // Removes a filter from a filter store.
+ DocCommands["RemoveFilterFromStore"] = "remove-filter-from-store";
+ // Releases a filter store, and its resources, once it is no longer needed.
+ DocCommands["ReleaseFilterStore"] = "release-filter-store";
+ //
+ DocCommands["GetHighlightedData"] = "get-highlighted-data";
+ //
+ DocCommands["GetSelectionData"] = "get-selection";
+ //
+ DocCommands["Select"] = "select";
+ //
+ DocCommands["SelectAll"] = "select-all";
+ //
+ DocCommands["SelectByValue"] = "select-by-value";
+ //
+ DocCommands["SelectNoneIncludingMaster"] = "select-none-including-master";
+ //
+ DocCommands["AddManualItemsToFilter"] = "add-manual-items-to-filter";
+ //
+ DocCommands["CategoricalFilter"] = "categorical-filter";
+ //
+ DocCommands["CategoricalFilterByIndex"] = "categorical-filter-by-index";
+ //
+ DocCommands["ChangeSharedFilter"] = "change-shared-filter";
+ //
+ DocCommands["ClearContextFilters"] = "clear-context-filters";
+ //
+ DocCommands["ClearExistingFilter"] = "clear-existing-filter";
+ //
+ DocCommands["DefaultFilter"] = "default-filter";
+ //
+ DocCommands["FilterGeo"] = "filter-geo";
+ //
+ DocCommands["FilterNeg"] = "filter-neg";
+ //
+ DocCommands["FilterNulls"] = "filter-nulls";
+ //
+ DocCommands["FilterTargets"] = "filter-targets";
+ //
+ DocCommands["GetSharedFilterPresModel"] = "get-shared-filter-pres-model";
+ //
+ DocCommands["HierarchicalFilter"] = "hierarchical-filter";
+ //
+ DocCommands["KeepOnlyOrExclude"] = "keep-only-or-exclude";
+ //
+ DocCommands["RangeFilter"] = "range-filter";
+ //
+ DocCommands["RelDateFilter"] = "relative-date-filter";
+ //
+ DocCommands["ResetFilter"] = "reset-filter";
+ //
+ DocCommands["ShowGeoAtDefault"] = "show-geo-at-default";
+ //
+ DocCommands["ShowSVAtDefault"] = "show-sv-at-default";
+ //
+ DocCommands["ToggleLockQuickFilters"] = "toggle-lock-quick-filters";
+ //
+ DocCommands["AddDataConnection"] = "add-data-connection";
+ //
+ DocCommands["AddDrillPath"] = "add-drill-path";
+ //
+ DocCommands["AddCredentialsFromKeychain"] = "add-credentials-from-keychain";
+ //
+ DocCommands["AddCredentialsFromKeychainFile"] = "add-credentials-from-keychain-file";
+ //
+ DocCommands["AddFieldFolder"] = "add-field-folder";
+ //
+ DocCommands["AddSubtotals"] = "add-subtotals";
+ //
+ DocCommands["AddToDrillPath"] = "add-to-drill-path";
+ //
+ DocCommands["AddToFieldFolder"] = "add-to-field-folder";
+ //
+ DocCommands["AggregateMeasuresFlag"] = "aggregate-measures";
+ //
+ DocCommands["ApplyCalculation"] = "apply-calculation";
+ //
+ DocCommands["ApplyPageSetupOptions"] = "apply-page-setup-options";
+ //
+ DocCommands["ApplyTableOptions"] = "apply-table-options";
+ //
+ DocCommands["ApplyTypeInPill"] = "apply-type-in-pill";
+ //
+ DocCommands["Assert"] = "assert";
+ //
+ DocCommands["AttemptConnectDataSourcesOnSheet"] = "attempt-connect-datasources-on-sheet";
+ //
+ DocCommands["AttemptConnectWorkbook"] = "attempt-connect-workbook";
+ //
+ DocCommands["AttemptDataSourcesConnection"] = "attempt-datasources-connection";
+ //
+ DocCommands["AutoUpdates"] = "auto-update";
+ //
+ DocCommands["Brush"] = "highlight";
+ //
+ DocCommands["BrushSpecial"] = "highlight-special";
+ //
+ DocCommands["BuildDataSchemaDataSourceContextMenu"] = "build-data-schema-data-source-context-menu";
+ //
+ DocCommands["BuildDataSchemaContextMenu"] = "build-data-schema-context-menu";
+ //
+ DocCommands["BuildDataSchemaFieldContextMenu"] = "build-data-schema-field-context-menu";
+ //
+ DocCommands["BuildDataSchemaDrillPathContextMenu"] = "build-data-schema-drill-path-context-menu";
+ //
+ DocCommands["BuildFileTableInfoPresModel"] = "build-file-table-info-pres-model";
+ //
+ DocCommands["BuildSheetTabContextMenu"] = "build-sheet-tab-context-menu";
+ //
+ DocCommands["CancelDataSourcePresModel"] = "cancel-datasource-pres-model";
+ //
+ DocCommands["CatBinMergeSplitLabel"] = "categorical-bin-merge-split";
+ //
+ DocCommands["CategoricalQuickFilterEdit"] = "categorical-quick-filter-edit";
+ //
+ DocCommands["CategoricalQuickFilterExcludeValues"] = "categorical-quick-filter-exclude-values";
+ //
+ DocCommands["CategoricalQuickFilterIncludeAllWhenEmpty"] = "categorical-quick-filter-include-all-when-empty";
+ //
+ DocCommands["CategoricalQuickFilterMode"] = "categorical-quick-filter-mode";
+ //
+ DocCommands["CategoricalQuickFilterPattern"] = "categorical-quick-filter-pattern";
+ //
+ DocCommands["ChangeAggregation"] = "change-aggregation";
+ //
+ DocCommands["ChangeAlphaLevel"] = "change-alpha-level";
+ //
+ DocCommands["ChangeBorder"] = "change-border";
+ //
+ DocCommands["ChangeFieldType"] = "change-field-type";
+ //
+ DocCommands["ChangeForecastColumnType"] = "change-forecast-column-type";
+ //
+ DocCommands["ChangeHalo"] = "change-halo";
+ //
+ DocCommands["ChangeMarkers"] = "change-markers";
+ //
+ DocCommands["ChangeSize"] = "change-size";
+ //
+ DocCommands["ChangeSheetTabColor"] = "change-sheet-tab-color";
+ //
+ DocCommands["ClearAllAxisRanges"] = "clear-axis-ranges";
+ //
+ DocCommands["ClearCalcModel"] = "clear-calculation-model";
+ //
+ DocCommands["ClearFilters"] = "clear-filters";
+ //
+ DocCommands["ClearFormatting"] = "clear-formatting";
+ //
+ DocCommands["ClearFuture"] = "clear-future";
+ //
+ DocCommands["ClearLayout"] = "clear-layout";
+ //
+ DocCommands["ClearQuickFilter"] = "clear-quick-filter";
+ //
+ DocCommands["ClearSorts"] = "clear-sorts";
+ //
+ DocCommands["CloseConnection"] = "close-connection";
+ //
+ DocCommands["CloseDataSource"] = "close-data-source";
+ //
+ DocCommands["ConnectionAddGoogleAnalyticsDimension"] = "connection-add-google-analytics-dimension";
+ //
+ DocCommands["ConnectionAddGoogleAnalyticsMeasure"] = "connection-add-google-analytics-measure";
+ //
+ DocCommands["ConnectionAddNewTable"] = "connection-add-new-table";
+ //
+ DocCommands["ConnectionAddCoalesce"] = "connection-add-coalesce";
+ //
+ DocCommands["ConnectionAddPivot"] = "connection-add-pivot";
+ //
+ DocCommands["ConnectionConvertToUnionAndEdit"] = "connection-convert-to-union-and-edit";
+ //
+ DocCommands["ConnectionConvertToUnion"] = "connection-convert-to-union";
+ //
+ DocCommands["ConnectionEditUnion"] = "connection-edit-union";
+ //
+ DocCommands["ConnectionAddOrEditBatchUnion"] = "connection-add-or-edit-batch-union";
+ //
+ DocCommands["ConnectionChangeTableProperty"] = "connection-change-table-property";
+ //
+ DocCommands["ConnectionCountEntity"] = "connection-count-entity";
+ //
+ DocCommands["ConnectionDataServerFetchMoreDatasources"] = "connection-dataserver-fetch-more-datasources";
+ //
+ DocCommands["ConnectionDataServerProjectSelect"] = "connection-dataserver-change-selected-project";
+ //
+ DocCommands["ConnectionDataServerUpdateFetchParameters"] = "connection-dataserver-update-fetch-parameters";
+ //
+ DocCommands["ConnectionDataServerFlushCache"] = "connection-dataserver-flush-cache";
+ //
+ DocCommands["ConnectionDeleteAllTables"] = "connection-delete-all-tables";
+ //
+ DocCommands["ConnectionDeleteTable"] = "connection-delete-table";
+ //
+ DocCommands["ConnectionEditGoogleAnalyticsAccount"] = "connection-edit-google-analytics-account";
+ //
+ DocCommands["ConnectionEditGoogleAnalyticsDateRange"] = "connection-edit-google-analytics-date-range";
+ //
+ DocCommands["ConnectionEditGoogleAnalyticsMeasureGroup"] = "connection-edit-google-analytics-measure-group";
+ //
+ DocCommands["ConnectionToggleGAQueryPartitioning"] = "connection-toggle-ga-query-partitioning";
+ //
+ DocCommands["ConnectionEditGoogleAnalyticsProperty"] = "connection-edit-google-analytics-property";
+ //
+ DocCommands["ConnectionEditGoogleAnalyticsView"] = "connection-edit-google-analytics-view";
+ //
+ DocCommands["ConnectionEditGoogleAnalyticsSegment"] = "connection-edit-google-analytics-segment";
+ //
+ DocCommands["ConnectionEditJoinClauses"] = "connection-edit-join-clauses";
+ //
+ DocCommands["ConnectionEditJoinType"] = "connection-edit-join-type";
+ //
+ DocCommands["ConnectionEditSQLText"] = "connection-edit-sql-text";
+ //
+ DocCommands["ConnectionFetchEntity"] = "connection-fetch-entity";
+ //
+ DocCommands["ConnectionSetForceExtractRefresh"] = "connection-set-force-extract-refresh";
+ //
+ DocCommands["ConnectionPrepareDataSourceForEdit"] = "connection-prepare-datasource-for-edit";
+ //
+ DocCommands["ConnectionClearRefreshAttributes"] = "connection-clear-refresh-attributes";
+ //
+ DocCommands["ConnectionRemoveGoogleAnalyticsDimension"] = "connection-remove-google-analytics-dimension";
+ //
+ DocCommands["ConnectionRemoveGoogleAnalyticsMeasure"] = "connection-remove-google-analytics-measure";
+ //
+ DocCommands["ConnectionRemoveCoalesce"] = "connection-remove-coalesce";
+ //
+ DocCommands["ConnectionRemovePivot"] = "connection-remove-pivot";
+ //
+ DocCommands["ConnectionAddDateParseFormats"] = "connection-add-date-parse-formats";
+ //
+ DocCommands["ConnectionRenameTable"] = "connection-rename-table";
+ //
+ DocCommands["ConnectionReplaceRelationWithSQLText"] = "connection-replace-relation-with-sql-text";
+ //
+ DocCommands["ConnectionReplaceTable"] = "connection-replace-table";
+ //
+ DocCommands["ConnectionResetTableAlias"] = "connection-reset-table-alias";
+ //
+ DocCommands["ConnectionSelectCatalog"] = "connection-select-catalog";
+ //
+ DocCommands["ConnectionSelectCube"] = "connection-select-cube";
+ //
+ DocCommands["ConnectionSelectStoredProcedure"] = "connection-select-stored-procedure";
+ //
+ DocCommands["ConnectionSelectBigQueryLegacySQLCheckBox"] = "connection-select-bigquery-legacy-check";
+ //
+ DocCommands["ConnectionToggleHasHeaderRow"] = "connection-toggle-has-header-row";
+ //
+ DocCommands["ConnectionToggleTableCleaning"] = "connection-toggle-table-cleaning";
+ //
+ DocCommands["ConnectionToggleUseExtract"] = "connection-toggle-use-extract";
+ //
+ DocCommands["ConnectionViewTableCleaningResults"] = "connection-view-table-cleaning-results";
+ //
+ DocCommands["ConnectToDataServerSource"] = "connect-data-server-datasource";
+ //
+ DocCommands["ConsiderZerosEmptyFlag"] = "consider-zeros-empty";
+ //
+ DocCommands["ConvertUnnamedFields"] = "convert-unnamed-fields";
+ //
+ DocCommands["Crash"] = "crash";
+ //
+ DocCommands["CreateAggregateRole"] = "create-aggregate-role";
+ //
+ DocCommands["CreateConnection"] = "create-connection";
+ //
+ DocCommands["CreateDefaultQuickFilter"] = "create-default-quick-filter";
+ //
+ DocCommands["CreateTypeInPill"] = "create-type-in-pill";
+ //
+ DocCommands["CustomDataGridFieldOrder"] = "custom-datagrid-field-order";
+ //
+ DocCommands["CustomDateAggregation"] = "custom-date-aggregation";
+ //
+ DocCommands["CustomSplitField"] = "custom-split-field";
+ //
+ DocCommands["DebugAssertion"] = "debug-assertion";
+ //
+ DocCommands["DecrementParameterValue"] = "decr-parameter-value";
+ //
+ DocCommands["DeleteFields"] = "delete-calculation-fields-command";
+ //
+ DocCommands["DeleteSheet"] = "delete-sheet";
+ //
+ DocCommands["DescribeDrillPath"] = "describe-drill-path";
+ //
+ DocCommands["DescribeSortFilter"] = "describe-sort-filter";
+ //
+ DocCommands["DismissNullWart"] = "dismiss-null-wart";
+ //
+ DocCommands["DomainQuickFilter"] = "domain-quick-filter";
+ //
+ DocCommands["DoubleFreeCrash"] = "double-free";
+ //
+ DocCommands["DropNowhere"] = "drop-nowhere";
+ //
+ DocCommands["DropOnSchemaViewer"] = "drop-on-schema-viewer";
+ //
+ DocCommands["DropOnShelf"] = "drop-on-shelf";
+ //
+ DocCommands["DropOnCalcEditor"] = "drop-on-calc-editor";
+ //
+ DocCommands["DropOnShowMe"] = "drop-on-showme";
+ //
+ DocCommands["DropPrepare"] = "drop-prepare";
+ //
+ DocCommands["DualAxis"] = "dual-axis";
+ //
+ DocCommands["DuplicateSheet"] = "duplicate-sheet";
+ //
+ DocCommands["EditCopyCalc"] = "edit-copy-calc";
+ //
+ DocCommands["EditDropLines"] = "edit-drop-lines";
+ //
+ DocCommands["EditEnumeratedGroup"] = "edit-enumerated-group";
+ //
+ DocCommands["EditNestedGroup"] = "edit-nested-group";
+ //
+ DocCommands["EditPill"] = "edit-pill";
+ //
+ DocCommands["EditPrimitiveType"] = "edit-primitive-type";
+ //
+ DocCommands["EnableAllBrushing"] = "enable-all-highlights";
+ //
+ DocCommands["EnableQuickFilter"] = "enable-quick-filter";
+ //
+ DocCommands["EnableSheetBrushing"] = "enable-sheet-highlights";
+ //
+ DocCommands["EnableThemedBrushing"] = "enable-themed-highlights";
+ //
+ DocCommands["EnumerateVariables"] = "enumerate-variables";
+ //
+ DocCommands["EnumerateVariableSelectionValues"] = "enumerate-variable-selection-values";
+ //
+ DocCommands["EstablishConnection"] = "establish-connection";
+ //
+ DocCommands["EstablishMatchingConnections"] = "establish-matching-connections";
+ //
+ DocCommands["ExportDataToText"] = "export-data-to-text";
+ //
+ DocCommands["ExtSvcConfig"] = "ext-svc-config";
+ //
+ DocCommands["ExtSvcConfigConnect"] = "ext-svc-config-connect";
+ //
+ DocCommands["Extract"] = "extract";
+ //
+ DocCommands["SetDataGridCurrentTable"] = "set-data-grid-current-table";
+ //
+ DocCommands["FetchTableRelevance"] = "fetch-table-relevance";
+ //
+ DocCommands["FetchCachedTableRelevance"] = "fetch-cached-table-relevance";
+ //
+ DocCommands["FlipLabels"] = "flip-labels";
+ //
+ DocCommands["FloatingToolbar"] = "zoom-controls";
+ //
+ DocCommands["FloatingToolbarToggle"] = "zoom-controls-toggle";
+ //
+ DocCommands["ForecastConfig"] = "forecast-config";
+ //
+ DocCommands["ForecastToggle"] = "forecast-toggle";
+ //
+ DocCommands["FormatWorkbook"] = "format-workbook";
+ //
+ DocCommands["GeographicSearchQuery"] = "geographic-search-query";
+ //
+ DocCommands["GeographicSearchLoadData"] = "geographic-search-load-data";
+ //
+ DocCommands["GeographicSearchIsDataDoneLoading"] = "geographic-search-data-done-loading";
+ //
+ DocCommands["GeographicSearchToggleVisibility"] = "geographic-search-toggle-visibility";
+ //
+ DocCommands["GetEditConnectionPresModel"] = "get-edit-connection-pres-model";
+ //
+ DocCommands["GetEditEnumeratedGroupPresModel"] = "get-edit-enumerated-group-pres-model";
+ //
+ DocCommands["GetEditNestedGroupPresModel"] = "get-edit-nested-group-pres-model";
+ //
+ DocCommands["GetFrameFinderPresModel"] = "get-frame-finder-pres-model";
+ //
+ DocCommands["GetGoogleSheetsListPresModel"] = "get-google-sheets-list-pres-model";
+ //
+ DocCommands["GetGoogleSheetPanePresModel"] = "get-google-sheet-pane-pres-model";
+ //
+ DocCommands["GetInitialSQLPresModel"] = "get-initial-sql-pres-model";
+ //
+ DocCommands["GetQueryBandingPresModel"] = "get-query-banding-pres-model";
+ //
+ DocCommands["GetTabbedAuthenticationPresModel"] = "get-tabbed-authentication-pres-model";
+ //
+ DocCommands["GetActiveSheet"] = "get-active-sheet";
+ //
+ DocCommands["GetAlphaLevel"] = "get-alpha-level";
+ //
+ DocCommands["GetAppConfig"] = "get-app-config";
+ //
+ DocCommands["GetDisabledSecondaryDSFields"] = "get-disabled-secondaryds-fields";
+ //
+ DocCommands["GetBlendingFields"] = "get-blending-fields";
+ //
+ DocCommands["GetCalculationPresModel"] = "get-calculation-pres-model";
+ //
+ DocCommands["GetCategoricalColor"] = "get-categorical-color";
+ //
+ DocCommands["GetClientInfo"] = "get-client-info";
+ //
+ DocCommands["GetCommands"] = "get-commands";
+ //
+ DocCommands["GetConnectionDescriptionPresModel"] = "get-connection-description-pres-model";
+ //
+ DocCommands["GetDSDropdownPresModel"] = "get-ds-dropdown-pres-model";
+ //
+ DocCommands["GetDataPreviewWindowMessagePresModel"] = "get-data-preview-window-pres-model";
+ //
+ DocCommands["GetDataSourcePresModel"] = "get-datasource-pres-model";
+ //
+ DocCommands["GetDataSourceSortPresModel"] = "get-datasource-sort-pres-model";
+ //
+ DocCommands["GetDataSourcePropertiesPresModel"] = "get-datasource-properties-pres-model";
+ //
+ DocCommands["GetConnectionSettingsPresModel"] = "get-connection-settings-pres-model";
+ //
+ DocCommands["GetDashboard"] = "get-dashboard";
+ //
+ DocCommands["GetDataPreview"] = "get-data-preview";
+ //
+ DocCommands["GetDatabaseEnumerationPresModel"] = "get-database-enumeration-pres-model";
+ //
+ DocCommands["GetDefaultColor"] = "get-default-color";
+ //
+ DocCommands["GetDefaultShape"] = "get-default-shape";
+ //
+ DocCommands["GetDragPresModelForText"] = "get-drag-pres-model-for-text";
+ //
+ DocCommands["GetDropTargetPresModel"] = "get-drop-target-pres-model";
+ //
+ DocCommands["GetEditDataServerConnectionPresModel"] = "get-edit-data-server-connection-pres-model";
+ //
+ DocCommands["GetEditDropLinesModel"] = "get-edit-drop-lines-model";
+ //
+ DocCommands["GetEncodingState"] = "get-encoding-state";
+ //
+ DocCommands["GetEncodingTypeMenuModel"] = "get-encoding-type-menu";
+ //
+ DocCommands["GetExtSvcConfig"] = "get-ext-svc-config";
+ //
+ DocCommands["GetForecastPresModel"] = "get-forecast-pres-model";
+ //
+ DocCommands["GetJoinDescriptionPresModel"] = "get-join-description-pres-model";
+ //
+ DocCommands["GetQuickFilter"] = "get-quick-filter";
+ //
+ DocCommands["GetQuickFilters"] = "get-quick-filters";
+ //
+ DocCommands["GetReferenceLinePresModel"] = "get-reference-line-pres-model";
+ //
+ DocCommands["GetParameters"] = "get-parameters";
+ //
+ DocCommands["GetParameterModels"] = "get-parameter-models";
+ //
+ DocCommands["GetParametersRegistryInfo"] = "get-params-registry-info";
+ //
+ DocCommands["GetPivotPresModel"] = "get-pivot-pres-model";
+ //
+ DocCommands["GetScene"] = "get-scene";
+ //
+ DocCommands["GetSchemaEnumerationPresModel"] = "get-schema-enumeration-pres-model";
+ //
+ DocCommands["GetSheetsInfo"] = "get-sheets-info";
+ //
+ DocCommands["GetShowMe"] = "get-show-me";
+ //
+ DocCommands["GetStandardConnectionEnumerationPresModel"] = "get-standard-connection-enumeration-pres-model";
+ //
+ DocCommands["GetStoredProcedureEnumerationPresModel"] = "get-stored-procedure-enumeration-pres-model";
+ //
+ DocCommands["GetStoredProcedureParametersPresModel"] = "get-stored-procedure-parameters-pres-model";
+ //
+ DocCommands["GetTableEnumerationPresModel"] = "get-table-enumeration-pres-model";
+ //
+ DocCommands["GetTableCleaningPresModel"] = "get-table-cleaning-pres-model";
+ //
+ DocCommands["GetTargetFieldList"] = "get-target-field-list";
+ //
+ DocCommands["GetTopLevelConnectionDescriptionPresModel"] = "get-top-level-connection-description-pres-model";
+ //
+ DocCommands["GetTypeInPillPresModel"] = "get-type-in-pill-pres-model";
+ //
+ DocCommands["GetUberTipPresModel"] = "get-ubertip-pres-model";
+ //
+ DocCommands["GetUnionInfoPresModel"] = "get-union-info-pres-model";
+ //
+ DocCommands["GetVisual"] = "get-visual";
+ //
+ DocCommands["GetVizData"] = "get-viz-data";
+ //
+ DocCommands["GetWarehouseEnumerationPresModel"] = "get-warehouse-enumeration-pres-model";
+ //
+ DocCommands["GetWorkbook"] = "get-workbook";
+ //
+ DocCommands["GetWorldUpdate"] = "get-world-update";
+ //
+ DocCommands["GoToSheet"] = "goto-sheet";
+ //
+ DocCommands["HeapCorruptionCrash"] = "corrupt-heap";
+ //
+ DocCommands["HideColumnFieldLabel"] = "hide-column-field-label";
+ //
+ DocCommands["HideEmptyColsFlag"] = "hide-empty-cols";
+ //
+ DocCommands["HideEmptyRowsFlag"] = "hide-empty-rows";
+ //
+ DocCommands["HideLabel"] = "hide-label";
+ //
+ DocCommands["HideRowFieldLabel"] = "hide-row-field-label";
+ //
+ DocCommands["HierarchicalQuickFilterUpdateSetFunction"] = "hierarchical-quick-filter-update-set-function";
+ //
+ DocCommands["IncludeInTooltip"] = "include-in-tooltip";
+ //
+ DocCommands["IncludeOtherCategoricalBin"] = "include-other-cat-bin";
+ //
+ DocCommands["IncrementExtract"] = "increment-extract";
+ //
+ DocCommands["IncrementParameterValue"] = "incr-parameter-value";
+ //
+ DocCommands["CreateCalc"] = "create-calc";
+ //
+ DocCommands["EditCalc"] = "edit-calc";
+ //
+ DocCommands["InvokeHyperlink"] = "invoke-hyperlink";
+ //
+ DocCommands["KeepOnlyOrExcludeSelection"] = "keep-only-or-exclude-selection";
+ //
+ DocCommands["LabelDrill"] = "label-drill";
+ //
+ DocCommands["LabelDrillCtx"] = "label-drill-ctx";
+ //
+ DocCommands["LevelDrill"] = "level-drill";
+ //
+ DocCommands["LoadUrl"] = "load-url";
+ //
+ DocCommands["ListPublishedDataSources"] = "list-published-datasources";
+ //
+ DocCommands["MarkLabel"] = "mark-label";
+ //
+ DocCommands["MarkTrail"] = "mark-trail";
+ //
+ DocCommands["MemoryDumpObjectCounts"] = "memory-dump-object-counts";
+ //
+ DocCommands["MemoryLeak"] = "memory-leak";
+ //
+ DocCommands["Merge"] = "merge-or-split";
+ //
+ DocCommands["MigrateDataSource"] = "migrate-data-source";
+ //
+ DocCommands["ModifyMarksInSet"] = "add-or-remove-marks";
+ //
+ DocCommands["MoveAreaAnnotationText"] = "move-area-annotation-text";
+ //
+ DocCommands["MoveColumnTotals"] = "move-column-totals";
+ //
+ DocCommands["MoveMark"] = "move-mark";
+ //
+ DocCommands["MovePointAnnotation"] = "move-point-annotation";
+ //
+ DocCommands["MovePointAnnotationTarget"] = "move-point-annotation-target";
+ //
+ DocCommands["MoveReferenceLine"] = "move-reference-line";
+ //
+ DocCommands["MoveRowTotals"] = "move-row-totals";
+ //
+ DocCommands["NavigateToSheet"] = "navigate-to-sheet";
+ //
+ DocCommands["PostCalcJoinClauseResult"] = "post-calc-join-clause-result";
+ //
+ DocCommands["NewDocDashboard"] = "new-dashboard";
+ //
+ DocCommands["NewDocWorksheet"] = "new-worksheet";
+ //
+ DocCommands["NonRangedRemoveReferenceLine"] = "non-ranged-remove-reference-line";
+ //
+ DocCommands["OptimizeExtract"] = "optimize-extract";
+ //
+ DocCommands["OptOutActions"] = "opt-out-actions";
+ //
+ DocCommands["PageHistorySettings"] = "page-history-settings";
+ //
+ DocCommands["PageToggleTrails"] = "page-toggle-trails";
+ //
+ DocCommands["ParseUIName"] = "parse-ui-name";
+ //
+ DocCommands["Percentages"] = "percentages";
+ //
+ DocCommands["Perspectives"] = "perspectives";
+ //
+ DocCommands["PositionPointAnnotation"] = "position-point-annotation";
+ //
+ DocCommands["ProtocolPoolLog"] = "protocol-pool-log";
+ //
+ DocCommands["PublishToWorkgroup"] = "publish-to-workgroup";
+ //
+ DocCommands["PublishDataSource"] = "publish-datasource";
+ //
+ DocCommands["PublishDataSourceFromData"] = "publish-data-source-from-data";
+ //
+ DocCommands["PublishDataSourceFromWorkbookData"] = "publish-data-source-from-workbook-data";
+ //
+ DocCommands["QuantitativeQuickFilterEdit"] = "quantitative-quick-filter-edit";
+ //
+ DocCommands["QuantitativeModeQuickFilter"] = "quantitative-mode-quick-filter";
+ //
+ DocCommands["QueryMigrateDataSources"] = "query-migrate-data-sources";
+ //
+ DocCommands["QuickSort"] = "quick-sort";
+ //
+ DocCommands["RangedByIndexMerge"] = "ranged-by-index-merge";
+ //
+ DocCommands["RangedByValueMerge"] = "ranged-by-value-merge";
+ //
+ DocCommands["Record"] = "record";
+ //
+ DocCommands["Redo"] = "redo";
+ //
+ DocCommands["RefreshExtract"] = "refresh-extract";
+ //
+ DocCommands["RefreshFromSource"] = "refresh-from-source";
+ //
+ DocCommands["RelativeDateQuickFilterEdit"] = "relative-date-quick-filter-edit";
+ //
+ DocCommands["RemoveAllReferenceLines"] = "remove-all-reference-lines";
+ //
+ DocCommands["RemoveDrillPath"] = "remove-drill-path";
+ //
+ DocCommands["RemoveExtract"] = "remove-extract";
+ //
+ DocCommands["RemoveFieldFolder"] = "remove-field-folder";
+ //
+ DocCommands["RemoveFieldLabel"] = "remove-field-label";
+ //
+ DocCommands["RemoveFields"] = "remove-fields";
+ //
+ DocCommands["RemoveFieldsFromShelf"] = "remove-fields-from-shelf";
+ //
+ DocCommands["RemoveFromDrillPath"] = "remove-from-drill-path";
+ //
+ DocCommands["RemoveFromFieldFolder"] = "remove-from-field-folder";
+ //
+ DocCommands["RemoveReferenceLine"] = "remove-reference-line";
+ //
+ DocCommands["RemoveSubtotals"] = "remove-subtotals";
+ //
+ DocCommands["RenameDataSource"] = "rename-data-source";
+ //
+ DocCommands["RenameDrillPath"] = "rename-drill-path";
+ //
+ DocCommands["RenameFieldFolder"] = "rename-field-folder";
+ //
+ DocCommands["RenameSheet"] = "rename-sheet";
+ //
+ DocCommands["ReorderLabels"] = "reorder-labels";
+ //
+ DocCommands["ReportBug"] = "report-bug";
+ //
+ DocCommands["RequestDataSourcePresModel"] = "request-datasource-pres-model";
+ //
+ DocCommands["ResetParameterCtrlTitle"] = "reset-parameter-ctrl-title";
+ //
+ DocCommands["ResetTooltip"] = "reset-tooltip";
+ //
+ DocCommands["ResizeAreaAnnotationText"] = "resize-area-annotation-text";
+ //
+ DocCommands["ResizeAxis"] = "resize-axis";
+ //
+ DocCommands["ResizeCell"] = "resize-cell";
+ //
+ DocCommands["ResizeHeader"] = "resize-header";
+ //
+ DocCommands["ResizePointAnnotation"] = "resize-point-annotation";
+ //
+ DocCommands["Revert"] = "revert";
+ //
+ DocCommands["RotateFieldLabel"] = "rotate-field-label";
+ //
+ DocCommands["RotateLabel"] = "rotate-label";
+ //
+ DocCommands["SplitFieldLabel"] = "split-field-label";
+ //
+ DocCommands["RunAction"] = "run-action";
+ //
+ DocCommands["RunScript"] = "run-script";
+ //
+ DocCommands["RunUpdates"] = "run-update";
+ //
+ DocCommands["SaveModel"] = "save-model";
+ //
+ DocCommands["SavePublishedDStoFile"] = "save-published-ds-to-file";
+ //
+ DocCommands["SelectDataSource"] = "select-data-source";
+ //
+ DocCommands["SelectFieldsInShelf"] = "select-fields-in-shelf";
+ //
+ DocCommands["SendDataConnectionTableViewMessage"] = "send-data-connection-tableview-message";
+ //
+ DocCommands["SetActiveDataSourceName"] = "set-active-data-source-name";
+ //
+ DocCommands["SetActiveConnectionName"] = "set-active-connection-name";
+ //
+ DocCommands["SetActiveDataSource"] = "set-active-datasource";
+ //
+ DocCommands["SetBasePalette"] = "set-base-palette";
+ //
+ DocCommands["SetCategoricalColor"] = "set-categorical-color";
+ //
+ DocCommands["SetDataCacheDelta"] = "set-data-cache-delta";
+ //
+ DocCommands["SetDataPreviewAutoUpdate"] = "set-data-preview-auto-update";
+ //
+ DocCommands["SetDataPreviewCustomFieldOrder"] = "set-data-preview-custom-field-order";
+ //
+ DocCommands["SetDefaultColor"] = "set-default-color";
+ //
+ DocCommands["SetDefaultShape"] = "set-default-shape";
+ //
+ DocCommands["SetFilterContext"] = "set-filter-context";
+ //
+ DocCommands["SetFilterShared"] = "set-filter-shared";
+ //
+ DocCommands["SetInitialSQL"] = "set-initial-sql";
+ //
+ DocCommands["SetItemColor"] = "set-item-color";
+ //
+ DocCommands["SetItemColorResetCustomization"] = "set-item-color-reset-customization";
+ //
+ DocCommands["SetItemEncodingType"] = "set-item-encoding-type";
+ //
+ DocCommands["SetMarkSize"] = "set-mark-size";
+ //
+ DocCommands["SetPageNavFlag"] = "set-page-flag";
+ //
+ DocCommands["SetParameterCtrlDisplayFlags"] = "set-parameter-ctrl-display-flags";
+ //
+ DocCommands["SetParameterCtrlDisplayMode"] = "set-parameter-ctrl-display-mode";
+ //
+ DocCommands["SetParameterCtrlTitle"] = "set-parameter-ctrl-title";
+ //
+ DocCommands["SetParameterValue"] = "set-parameter-value";
+ //
+ DocCommands["SetPrimitive"] = "set-primitive";
+ //
+ DocCommands["SetQueryBanding"] = "set-query-banding";
+ //
+ DocCommands["SetQuickFilterIncludedValues"] = "set-quick-filter-included";
+ //
+ DocCommands["SetReferenceLineFormula"] = "set-reference-line-formula";
+ //
+ DocCommands["SetReferenceLineConstantValue"] = "set-reference-line-constant-value";
+ //
+ DocCommands["SetSheetFormatting"] = "set-sheet-formatting";
+ //
+ DocCommands["SetSheetSize"] = "set-sheet-size";
+ //
+ DocCommands["SetTotalsType"] = "set-totals-type";
+ //
+ DocCommands["SetWorkbookLocale"] = "set-workbook-locale";
+ //
+ DocCommands["ShowCatCtrlQuickFilter"] = "show-cat-ctrl-quick-filter";
+ //
+ DocCommands["ShowColFieldNamesFlag"] = "show-col-field-names";
+ //
+ DocCommands["ShowColTotalsFlag"] = "show-col-totals";
+ //
+ DocCommands["ShowColumnFieldLabel"] = "show-column-field-label";
+ //
+ DocCommands["ShowEmptyColsFlag"] = "show-empty-cols";
+ //
+ DocCommands["ShowEmptyRowsFlag"] = "show-empty-rows";
+ //
+ DocCommands["ShowForecastEditor"] = "show-forecast-editor";
+ //
+ DocCommands["ShowFullRange"] = "show-full-range";
+ //
+ DocCommands["ShowHeader"] = "show-header";
+ //
+ DocCommands["ShowHiddenData"] = "show-hidden-data";
+ //
+ DocCommands["ShowMe"] = "show-me";
+ //
+ DocCommands["ShowQuantCtrlQuickFilter"] = "show-quant-ctrl-quick-filter";
+ //
+ DocCommands["ShowQuickFilterDoc"] = "show-quickfilter-doc";
+ //
+ DocCommands["ShowReferenceLineEditor"] = "show-reference-line-editor";
+ //
+ DocCommands["ShowReferenceLineConstantValueEditor"] = "show-reference-line-constant-value-editor";
+ //
+ DocCommands["ShowReferenceLineFormatter"] = "show-reference-line-formatter";
+ //
+ DocCommands["ShowRowFieldLabel"] = "show-row-field-label";
+ //
+ DocCommands["ShowRowFieldNamesFlag"] = "show-row-field-names";
+ //
+ DocCommands["ShowRowTotalsFlag"] = "show-row-totals";
+ //
+ DocCommands["SimpleCommandList"] = "simple-command-list";
+ //
+ DocCommands["Sleep"] = "sleep";
+ //
+ DocCommands["SleepBackgroundThread"] = "sleep-background-thread";
+ //
+ DocCommands["SortDataGridByColumn"] = "sort-datagrid-by-column";
+ //
+ DocCommands["SortDataGridFields"] = "sort-datagrid-fields";
+ //
+ DocCommands["SpecialValues"] = "special-values";
+ //
+ DocCommands["SplitField"] = "split-field";
+ //
+ DocCommands["StackMarks"] = "stack-marks";
+ //
+ DocCommands["StackOverflowCrash"] = "stack-overflow";
+ //
+ DocCommands["SubtotalAggregation"] = "subtotal-aggregation";
+ //
+ DocCommands["Subtotals"] = "subtotals";
+ //
+ DocCommands["SwapFields"] = "swap-fields";
+ //
+ DocCommands["SwapRowsAndColumns"] = "swap-rows-and-columns";
+ //
+ DocCommands["TableauException"] = "tableau-exception";
+ //
+ DocCommands["ToggleDropLines"] = "toggle-drop-lines";
+ //
+ DocCommands["ToggleFieldBlending"] = "toggle-field-blending";
+ //
+ DocCommands["ToggleMarkLabels"] = "toggle-mark-labels";
+ //
+ DocCommands["TogglePageTitle"] = "toggle-page-title";
+ //
+ DocCommands["ToggleParameterCtrlDisplayFlag"] = "toggle-parameter-ctrl-display-flag";
+ //
+ DocCommands["ToggleParameterCtrlTitle"] = "toggle-parameter-ctrl-title";
+ //
+ DocCommands["ToggleQuickFilterTitle"] = "toggle-quick-filter-title";
+ //
+ DocCommands["ToggleVizNavigationSetting"] = "toggle-viz-navigation-setting";
+ //
+ DocCommands["Undo"] = "undo";
+ //
+ DocCommands["UnhideData"] = "unhide-data";
+ //
+ DocCommands["UnhideLabel"] = "unhide-label";
+ //
+ DocCommands["UpdateAreaAnnotation"] = "update-area-annotation";
+ //
+ DocCommands["UpdateCalcScopeIsolation"] = "update-scope-isolation-for-calculation";
+ //
+ DocCommands["UpdateDataServerConnectionInfo"] = "update-data-server-connection-info";
+ //
+ DocCommands["UpdatePointAnnotationPullback"] = "update-point-annotation-pullback";
+ //
+ DocCommands["UpdateTableCalcInfo"] = "update-table-calc-infomation";
+ //
+ DocCommands["UpgradeExtract"] = "upgrade-extract";
+ //
+ DocCommands["UseExtract"] = "use-extract";
+ //
+ DocCommands["ValidateDrillPathName"] = "validate-drill-path-name";
+ //
+ DocCommands["ValidateFormula"] = "validate-formula";
+ //
+ DocCommands["ValidateInitialSQL"] = "validate-initial-sql";
+ //
+ DocCommands["ValidateQueryBanding"] = "validate-query-banding";
+ //
+ DocCommands["ValidateTypeInPill"] = "validate-type-in-pill";
+ //
+ DocCommands["ViewParameterCtrls"] = "view-param-ctrls";
+ //
+ DocCommands["ViewQuickFilters"] = "view-quick-filters";
+ //
+ DocCommands["GetSchema"] = "get-schema";
+ //
+ DocCommands["GetSchemaViewerDataSchema"] = "get-schema-viewer-data-schema";
+ //
+ DocCommands["ConvertToDimension"] = "convert-to-dimension";
+ //
+ DocCommands["ConvertToMeasure"] = "convert-to-measure";
+ //
+ DocCommands["ConvertToContinuous"] = "convert-to-continuous";
+ //
+ DocCommands["ConvertToDiscrete"] = "convert-to-discrete";
+ //
+ DocCommands["RenameField"] = "rename-field";
+ //
+ DocCommands["HideField"] = "hide-field";
+ //
+ DocCommands["UnhideField"] = "unhide-field";
+ //
+ DocCommands["HideUnusedFields"] = "hide-unused-fields";
+ //
+ DocCommands["DuplicateFields"] = "duplicate-fields";
+ //
+ DocCommands["CleanValues"] = "clean-values";
+ //
+ DocCommands["ParseDate"] = "parse-date";
+ //
+ DocCommands["MakeDate"] = "make-date";
+ //
+ DocCommands["SetQualifyNames"] = "set-qualify-names";
+ //
+ DocCommands["CreateMeasureFromColumn"] = "create-measure-from-column";
+ //
+ DocCommands["RemoveFromSchemaDrillPath"] = "remove-from-schema-drill-path";
+ //
+ DocCommands["AddToSchemaDrillPath"] = "add-to-schema-drill-path";
+ //
+ DocCommands["RemoveSchemaDrillPath"] = "remove-schema-drill-path";
+ //
+ DocCommands["ShowHiddenFields"] = "show-hidden-fields";
+ //
+ DocCommands["ShowAliases"] = "show-aliases";
+ //
+ DocCommands["SetRowDisplayCount"] = "set-row-display-count";
+ //
+ DocCommands["ShowStructure"] = "show-structure";
+ //
+ DocCommands["GroupByTable"] = "group-by-table";
+ //
+ DocCommands["ChangeDataType"] = "change-data-type";
+ //
+ DocCommands["ChangePivotStrategy"] = "change-pivot-strategy";
+ //
+ DocCommands["ChangeDisplayAlias"] = "change-display-alias";
+ //
+ DocCommands["SetIncludeSharedMembers"] = "set-include-shared-members";
+ //
+ DocCommands["SetUtilityDimension"] = "set-utility-dimension";
+ //
+ DocCommands["SetDefaultHierarchy"] = "set-default-hierarchy";
+ //
+ DocCommands["DataSourceSortOrder"] = "data-source-sort-order";
+ //
+ DocCommands["ClearUtilityDimension"] = "clear-utility-dimension";
+ //
+ DocCommands["ClearDefaultSort"] = "clear-default-sort";
+ //
+ DocCommands["SetDefaultAggregation"] = "set-default-aggregation";
+ //
+ DocCommands["SetDefaultVTAggregation"] = "set-default-vtaggregation";
+ //
+ DocCommands["ChangeFiscalYear"] = "change-fiscal-year";
+ //
+ DocCommands["ChangeSemanticRole"] = "change-semantic-role";
+ //
+ DocCommands["AddToSheet"] = "add-to-sheet";
+ //
+ DocCommands["DropSchemaSelOnShelf"] = "drop-schema-sel-on-shelf";
+ //
+ DocCommands["AddToSchemaFieldFolder"] = "add-to-schema-field-folder";
+ //
+ DocCommands["RemoveFromSchemaFieldFolder"] = "remove-from-schema-field-folder";
+ //
+ DocCommands["RemoveSchemaFieldFolder"] = "remove-schema-field-folder";
+ //
+ DocCommands["DefaultTextFormat"] = "default-text-format";
+ //
+ DocCommands["EditSchemaCaption"] = "edit-schema-caption";
+ //
+ DocCommands["ResetSchemaCaption"] = "reset-schema-caption";
+ //
+ DocCommands["CreateOutlierSet"] = "create-outlier-set";
+ })(DocCommands = exports.DocCommands || (exports.DocCommands = {}));
+ var UICommands;
+ (function (UICommands) {
+ //
+ UICommands["About"] = "about";
+ //
+ UICommands["AddDataServerDataSourceUI"] = "add-data-server-datasource-ui";
+ //
+ UICommands["SwitchToDocumentAndAddDataServerDataSourceUI"] = "switch-to-document-and-add-data-server-ds-ui";
+ //
+ UICommands["AddDrillPathUI"] = "add-drillpath-ui";
+ //
+ UICommands["AddFieldFolderUI"] = "add-field-folder-ui";
+ //
+ UICommands["AddFileToExtractUI"] = "add-file-to-extract-ui";
+ //
+ UICommands["AddDataSourceToExtractUI"] = "add-data-source-to-extract-ui";
+ //
+ UICommands["AddQCToSheetUI"] = "add-qc-to-sheet-ui";
+ //
+ UICommands["AddReferenceLineUI"] = "add-reference-line-ui";
+ //
+ UICommands["AddSchemaFieldFolderUI"] = "add-to-schema-field-folder-ui";
+ //
+ UICommands["AddTableauServerDSConnectionUI"] = "add-tableau-server-ds-connection-ui";
+ //
+ UICommands["AddToSchemaDrillPathUI"] = "add-to-schema-drillpath-ui";
+ //
+ UICommands["AddToSheetUI"] = "add-to-sheet-ui";
+ //
+ UICommands["AnnotateUI"] = "annotate-ui";
+ //
+ UICommands["AppendDataSourceToRemoteExtractUI"] = "append-data-source-to-remote-extract-ui";
+ //
+ UICommands["AttemptConnectDataSourcesOnSheetUI"] = "attempt-connect-datasources-on-sheet-ui";
+ //
+ UICommands["AttemptDataSourceConnectionUI"] = "attempt-datasource-connect-ui";
+ //
+ UICommands["AutoHideSheet"] = "auto-hide-sheet";
+ //
+ UICommands["AutomationClickMRUItem"] = "click-mru-item";
+ //
+ UICommands["CalculatedMembersUI"] = "calculated-members-ui";
+ //
+ UICommands["ChangeAggregationUI"] = "change-aggregation-ui";
+ //
+ UICommands["ChangeDataServerLogonUI"] = "change-data-server-logon-ui";
+ //
+ UICommands["ChangeEssbaseAliasFile"] = "change-essbase-alias-file";
+ //
+ UICommands["ChangeFieldTypeUI"] = "change-field-type-ui";
+ //
+ UICommands["ChangeTabColorSheet"] = "change-tab-color-sheet";
+ //
+ UICommands["CheckForProductUpdates"] = "check-for-product-updates";
+ //
+ UICommands["ClearDashboardUI"] = "clear-dashboard-ui";
+ //
+ UICommands["ClearSheetUI"] = "clear-sheet-ui";
+ //
+ UICommands["ClearStoryUI"] = "clear-story-ui";
+ //
+ UICommands["ClearVizUI"] = "clear-viz-ui";
+ //
+ UICommands["CloseCalculationUI"] = "close-calculation-ui";
+ //
+ UICommands["CloseDataSourceUI"] = "close-datasource-ui";
+ //
+ UICommands["CloseWorkbook"] = "close-workbook";
+ //
+ UICommands["ColorLegendEditUI"] = "color-legend-edit-ui";
+ //
+ UICommands["CommitPillEditUI"] = "commit-pill-edit-ui";
+ //
+ UICommands["ConnectDataSourceUI"] = "connect-datasource-ui";
+ //
+ UICommands["ConnectRepromptUI"] = "connect-reprompt-ui";
+ //
+ UICommands["ConnectVariablePromptUI"] = "connect-variable-prompt-ui";
+ //
+ UICommands["ConnectVariablePromptMatchingUI"] = "connect-variable-prompt-matching-ui";
+ //
+ UICommands["ConnectionAddNewCustomSQLUI"] = "connection-add-new-custom-sql-ui";
+ //
+ UICommands["ConnectionAddNewTableUI"] = "connection-add-new-table-ui";
+ //
+ UICommands["ConnectionDataGridCopyUI"] = "connection-data-grid-copy-ui";
+ //
+ UICommands["ConnectionEditCustomSQLUI"] = "connection-custom-sql-ui";
+ //
+ UICommands["ConnectionEditExtractUI"] = "connection-extract-ui";
+ //
+ UICommands["ConnectionEditDBVariablesUI"] = "connection-edit-db-variables-ui";
+ //
+ UICommands["ConnectionEditConnectionUI"] = "connection-edit-connection-ui";
+ //
+ UICommands["ConnectionFinalizeDataSourceUI"] = "connection-finalize-datasource-ui";
+ //
+ UICommands["ConnectionFinalizeExtractStatesUI"] = "connection-finalize-extract-states-ui";
+ //
+ UICommands["ConnectionGetTypeGroupPresModelUI"] = "connection-get-type-group-pres-model-ui";
+ //
+ UICommands["ConnectionGetSavedDataSourcesPresModelUI"] = "connection-get-saved-ds-pres-model-ui";
+ //
+ UICommands["ConnectionPartitioningFailureUI"] = "connection-partitioning-failure-ui";
+ //
+ UICommands["ConnectionReplaceTableUI"] = "connection-replace-table-ui";
+ //
+ UICommands["ConnectionSearchCatalogUI"] = "connection-search-catalog-ui";
+ //
+ UICommands["ConnectionSearchCubeUI"] = "connection-search-cube-ui";
+ //
+ UICommands["ConnectionSelectCatalogUI"] = "connection-select-catalog-ui";
+ //
+ UICommands["ConnectionSelectCubeUI"] = "connection-select-cube-ui";
+ //
+ UICommands["ConnectionSelectStandardConnectionUI"] = "connection-select-standard-connection-ui";
+ //
+ UICommands["ConnectionSelectStoredProcedureUI"] = "connection-select-stored-procedure-ui";
+ //
+ UICommands["ConnectionShowEditTableDialogUI"] = "connection-show-edit-table-ui";
+ //
+ UICommands["ConnectionShowPivotDialogUI"] = "conneciton-show-pivot-dialog-ui";
+ //
+ UICommands["ConnectionSortCatalogUI"] = "connection-sort-catalog-ui";
+ //
+ UICommands["ConnectionSortCubeUI"] = "connection-sort-cube-ui";
+ //
+ UICommands["ConnectionValidateCustomSQLUI"] = "connection-validate-custom-sql-ui";
+ //
+ UICommands["ConnectToCloudFile"] = "connect-to-cloud-file";
+ //
+ UICommands["ConnectToDataServerSourceUI"] = "connect-data-server-datasource-ui";
+ //
+ UICommands["ConnectionConvertToSQLUI"] = "connection-convert-to-sql-ui";
+ //
+ UICommands["ConnectionRenameConnectionUI"] = "connection-rename-connection-ui";
+ //
+ UICommands["ExportUnderlyingDataToCSVUI"] = "export-to-csv-with-progress-ui";
+ //
+ UICommands["ConnectODBCUI"] = "connect-odbc-ui";
+ //
+ UICommands["CopyCrosstab"] = "copy-crosstab";
+ //
+ UICommands["CopyData"] = "copy-data";
+ //
+ UICommands["CopyDrillPathFieldsUI"] = "copy-drill-path-fields-ui";
+ //
+ UICommands["CopyFieldsDefnUI"] = "copy-fields-defn-ui";
+ //
+ UICommands["CopyImage"] = "copy-image";
+ //
+ UICommands["CopyImageDashboard"] = "copy-image-dashboard";
+ //
+ UICommands["CopyImageWorksheet"] = "copy-image-worksheet";
+ //
+ UICommands["CopyImageStory"] = "copy-image-story";
+ //
+ UICommands["CopyWorksheetFormatting"] = "copy-formatting";
+ //
+ UICommands["CreateCalculatedSetUI"] = "create-calculated-set-ui";
+ //
+ UICommands["CreateCalculationUI"] = "create-calculation-ui";
+ //
+ UICommands["CreateCombinedFieldUI"] = "create-combined-field-ui";
+ //
+ UICommands["CreateConnectionUI"] = "create-connection-ui";
+ //
+ UICommands["CreateDateBinUI"] = "create-Date-bin-ui";
+ //
+ UICommands["CreateGroupSelectionUI"] = "create-group-selection-ui";
+ //
+ UICommands["CreateGroupUI"] = "create-group-ui";
+ //
+ UICommands["CreateIdentitySet"] = "create-user-filter";
+ //
+ UICommands["CreateLeafConnectionUI"] = "create-leaf-connection-ui";
+ //
+ UICommands["CreateNumericBinsUI"] = "create-numeric-bins-ui";
+ //
+ UICommands["CreateSetUI"] = "create-set-ui";
+ //
+ UICommands["CustomDateAggregationUI"] = "custom-date-aggregation-ui";
+ //
+ UICommands["CutDrillPathFieldsUI"] = "cut-drill-path-fields-ui";
+ //
+ UICommands["CutFieldsDefnUI"] = "cut-fields-defn-ui";
+ //
+ UICommands["DeactivateDashboard"] = "deactivate-dashboard";
+ //
+ UICommands["DeleteCookies"] = "delete-cookies";
+ //
+ UICommands["DeleteFieldsUI"] = "delete-fields-ui";
+ //
+ UICommands["DeleteSheetUI"] = "delete-sheet-ui";
+ //
+ UICommands["DescribeAdhocClusterUI"] = "describe-adhoc-cluster-ui";
+ //
+ UICommands["DescribeDrillPathUI"] = "describe-drillpath-ui";
+ //
+ UICommands["DescribeFieldUI"] = "describe-field-ui";
+ //
+ UICommands["DescribeForecastUI"] = "describe-forecast-ui";
+ //
+ UICommands["DescribeSchemaDrillPathUI"] = "describe-schema-drillpath-ui";
+ //
+ UICommands["DescribeTrendLine"] = "describe-trend-line";
+ //
+ UICommands["DescribeTrendModel"] = "describe-trend-model";
+ //
+ UICommands["OpenDiscoverPaneLinks"] = "open-discover-pane-links";
+ //
+ UICommands["DismissGoToWorksheetTooltipUI"] = "dismiss-go-to-worksheet-tooltip-ui";
+ //
+ UICommands["DownloadCopyDataSource"] = "download-copy-data-source";
+ //
+ UICommands["DrilldownUI"] = "drilldown-ui";
+ //
+ UICommands["DropSchemaSelOnShelfUI"] = "drop-schema-sel-on-shelf-ui";
+ //
+ UICommands["DropUI"] = "drop-ui";
+ //
+ UICommands["DuplicateDataSourceUI"] = "duplicate-datasource-ui";
+ //
+ UICommands["DuplicateSheetAsCrosstab"] = "duplicate-sheet-as-crosstab";
+ //
+ UICommands["DuplicateSheetOrCrosstabUI"] = "duplicate-sheet-or-crosstab-ui";
+ //
+ UICommands["DuplicateSheetUI"] = "duplicate-sheet-ui";
+ //
+ UICommands["EditAliasesUI"] = "edit-aliases-ui";
+ //
+ UICommands["EditAnnotation"] = "edit-annotation";
+ //
+ UICommands["EditAxisUI"] = "edit-axis-ui";
+ //
+ UICommands["EditCalculatedSetUI"] = "edit-calculated-set-ui";
+ //
+ UICommands["EditCalculationUI"] = "edit-calculation-ui";
+ //
+ UICommands["EditCaptionUI"] = "edit-caption";
+ //
+ UICommands["EditCombinedFieldUI"] = "edit-combined-field";
+ //
+ UICommands["EditCopyFieldUI"] = "edit-copy-field-ui";
+ //
+ UICommands["EditDataSourceUI"] = "edit-datasource-ui";
+ //
+ UICommands["EditDataSourceFieldAliases"] = "edit-datasource-field-aliases";
+ //
+ UICommands["EditDataSourceFiltersUI"] = "edit-datasource-filters-ui";
+ //
+ UICommands["EditDataSourceSitePathsUI"] = "edit-datasource-site-paths-ui";
+ //
+ UICommands["EditDateBinUI"] = "edit-date-bin-ui";
+ //
+ UICommands["EditDefaultSortUI"] = "edit-default-sort-ui";
+ //
+ UICommands["EditDropLinesUI"] = "edit-drop-lines-ui";
+ //
+ UICommands["EditDropFieldUI"] = "edit-drop-field-ui";
+ //
+ UICommands["EditDataSourceRelationshipsUI"] = "edit-datasource-relationships-ui";
+ //
+ UICommands["EditEnumeratedSetUI"] = "edit-enumerated-set";
+ //
+ UICommands["EditFilterQuickFilter"] = "edit-filter-quick-filter";
+ //
+ UICommands["EditFilterUI"] = "edit-filter-ui";
+ //
+ UICommands["EditForecastUI"] = "edit-forecast-ui";
+ //
+ UICommands["EditGroupUI"] = "edit-group-ui";
+ //
+ UICommands["EditGroupValue"] = "edit-group-value";
+ //
+ UICommands["EditGroupValueLabel"] = "edit-group-value-label";
+ //
+ UICommands["EditLegendGroupValueUI"] = "edit-group-value-legend";
+ //
+ UICommands["EditImageUI"] = "edit-image-ui";
+ //
+ UICommands["EditLegendMemberAliasUI"] = "edit-legend-member-alias-ui";
+ //
+ UICommands["EditLegendTitleUI"] = "edit-legend-title-ui";
+ //
+ UICommands["EditMarkColorUI"] = "edit-mark-color-ui";
+ //
+ UICommands["EditMarkShapeUI"] = "edit-mark-shape-ui";
+ //
+ UICommands["EditMemberAlias"] = "edit-member-alias";
+ //
+ UICommands["EditMemberAliasLabel"] = "edit-member-alias-label";
+ //
+ UICommands["EditPageTitleUI"] = "edit-page-title-ui";
+ //
+ UICommands["EditParameterCtrlTitle"] = "edit-param-control-title";
+ //
+ UICommands["EditPdfPageSelectionUI"] = "edit-pdf-page-selection-ui";
+ //
+ UICommands["EditPrimaryAliasesUI"] = "edit-primary-aliases-ui";
+ //
+ UICommands["EditReferenceLine"] = "edit-reference-line";
+ //
+ UICommands["EditSchemaCalculationUI"] = "edit-schema-calculation-ui";
+ //
+ UICommands["EditSchemaCalculationRangeUI"] = "edit-schema-calculation-range-ui";
+ //
+ UICommands["EditSchemaCaptionUI"] = "edit-schema-caption-ui";
+ //
+ UICommands["EditSchemaFieldAliasUI"] = "edit-schema-field-alias-ui";
+ //
+ UICommands["ResetSchemaCaptionUI"] = "reset-schema-field-alias-ui";
+ //
+ UICommands["ResetMultipleSchemaCaptionsUI"] = "reset-multiple-schema-field-alias-ui";
+ //
+ UICommands["EditSchemaNumericBinsUI"] = "edit-schema-numeric-bins-ui";
+ //
+ UICommands["EditSetUI"] = "edit-set-ui";
+ //
+ UICommands["EditTitleQuickFilter"] = "edit-title-quick-filter";
+ //
+ UICommands["EditTitleUI"] = "edit-title";
+ //
+ UICommands["EditTooltipUI"] = "edit-tooltip";
+ //
+ UICommands["EditTrendLinesUI"] = "edit-trend-lines-ui";
+ //
+ UICommands["EditUserDescriptionUI"] = "edit-user-description-ui";
+ //
+ UICommands["EditWMSMapTileServer"] = "edit-wms-map-tile-server";
+ //
+ UICommands["EditZoneParam"] = "edit-zone-param";
+ //
+ UICommands["EditZoneUrl"] = "edit-zone-url";
+ //
+ UICommands["EstablishConnectionUI"] = "establish-connection-ui";
+ //
+ UICommands["EstablishTableauServerConnectionUI"] = "establish-tableau-server-connection-ui";
+ //
+ UICommands["ExecuteUIAutomationButton"] = "execute-ui-button-action";
+ //
+ UICommands["ExecuteUIAutomationComboBox"] = "execute-ui-combo-box-action";
+ //
+ UICommands["ExecuteUIAutomationGenericWidget"] = "execute-ui-generic-widget-action";
+ //
+ UICommands["ExecuteUIAutomationLabel"] = "execute-ui-label-action";
+ //
+ UICommands["ExecuteUIAutomationMenu"] = "execute-ui-menu-action";
+ //
+ UICommands["ExecuteUIAutomationItemView"] = "execute-ui-item-view-action";
+ //
+ UICommands["ExecuteUIAutomationTextBox"] = "execute-ui-text-box-action";
+ //
+ UICommands["ExecuteUIAutomationToggleButton"] = "execute-ui-toggle-button-action";
+ //
+ UICommands["ExecuteUIAutomationSlider"] = "execute-ui-slider-action";
+ //
+ UICommands["ExecuteUIAutomationWindow"] = "execute-ui-window-action";
+ //
+ UICommands["ExecuteUIAutomationWebView"] = "execute-ui-web-view-action";
+ //
+ UICommands["ExecuteUIAutomationTab"] = "execute-ui-tab-action";
+ //
+ UICommands["ExecuteUIAutomationTextBrowser"] = "execute-ui-text-browser-action";
+ //
+ UICommands["ExitApplication"] = "exit-application";
+ //
+ UICommands["ExportData"] = "export-data";
+ //
+ UICommands["ExportDataSourceUI"] = "export-datasource-ui";
+ //
+ UICommands["ExportPackagedWorkbook"] = "export-packaged";
+ //
+ UICommands["ExportWorkbookSheetsUI"] = "export-workbook-sheets-ui";
+ //
+ UICommands["ExtSvcConfigUI"] = "ext-svc-config-ui";
+ //
+ UICommands["ExtractHistory"] = "extract-history";
+ //
+ UICommands["ExtractPropertiesUI"] = "extract-properties-ui";
+ //
+ UICommands["ExtractUI"] = "extract-ui";
+ //
+ UICommands["FilterFieldLabelUI"] = "filter-field-label-ui";
+ //
+ UICommands["FormatAnnotation"] = "format-annotation";
+ //
+ UICommands["FormatAxisUI"] = "format-axis-ui";
+ //
+ UICommands["FormatCaptionTitleUI"] = "format-caption-title";
+ //
+ UICommands["FormatField"] = "format-pane";
+ //
+ UICommands["FormatFieldLabelUI"] = "format-field-label-ui";
+ //
+ UICommands["FormatLabel"] = "format-label";
+ //
+ UICommands["FormatLegendsUI"] = "format-legends-ui";
+ //
+ UICommands["FormatReferenceLine"] = "format-reference-line";
+ //
+ UICommands["FormatUI"] = "format-ui";
+ //
+ UICommands["FullScreen"] = "fullscreen";
+ //
+ UICommands["GetDashboardSidePaneMode"] = "get-dashboard-sidepane-mode";
+ //
+ UICommands["GetDebuggingInfo"] = "get-debugging-info";
+ //
+ UICommands["GetIconPathForEncodingType"] = "get-icon-path-for-encoding-type";
+ //
+ UICommands["GetIconPathForPrimitiveType"] = "get-icon-path-for-primitive-type";
+ //
+ UICommands["GetTableOptionsPresModel"] = "get-table-options-pres-model";
+ //
+ UICommands["GetWindowNameUI"] = "get-window-name";
+ //
+ UICommands["GetWorksheetSidePaneMode"] = "get-worksheet-sidepane-mode";
+ //
+ UICommands["GetHiddenSheets"] = "get-hidden-sheets";
+ //
+ UICommands["GetOpenPaneMRUs"] = "get-open-pane-mrus";
+ //
+ UICommands["GetOpenPaneSampleWorkbooks"] = "get-open-pane-sample-workbooks";
+ //
+ UICommands["GetRetargetDataSourcePresModelUI"] = "get-retarget-datasource-pres-model-ui";
+ //
+ UICommands["GetSchemaViewerPresModel"] = "get-schema-viewer-pres-model";
+ //
+ UICommands["GetSelectedSheets"] = "get-selected-sheets";
+ //
+ UICommands["GetSheetSorterThumbnail"] = "get-sheet-sorter-thumbnail";
+ //
+ UICommands["GetSheetTabUIThumbnail"] = "get-sheet-tab-ui-thumbnail";
+ //
+ UICommands["GetSheetTabUIText"] = "get-sheet-tab-ui-text";
+ //
+ UICommands["GetVisibleTreeItems"] = "get-visible-tree-items";
+ //
+ UICommands["GotoSheetRange"] = "goto";
+ //
+ UICommands["GotoURL"] = "goto-url";
+ //
+ UICommands["HideCaptionUI"] = "hide-caption";
+ //
+ UICommands["HideFilmstripUI"] = "hide-filmstrip-ui";
+ //
+ UICommands["HideTitleUI"] = "hide-title";
+ //
+ UICommands["HideZoneUI"] = "hide-zone-ui";
+ //
+ UICommands["HideAllSheetsUI"] = "hide-all-sheets-ui";
+ //
+ UICommands["UnhideAllSheetsUI"] = "unhide-all-sheets-ui";
+ //
+ UICommands["ImportLocalDataUI"] = "import-local-data-ui";
+ //
+ UICommands["ImportMapSource"] = "import-map-source";
+ //
+ UICommands["ImportMapSourceUI"] = "import-map-source-ui";
+ //
+ UICommands["ImportWorkbookUI"] = "import-workbook-ui";
+ //
+ UICommands["LoadDefaultFormattingUI"] = "load-formatting-ui";
+ //
+ UICommands["LocateFieldUI"] = "locate-field-ui";
+ //
+ UICommands["LogMemoryUsage"] = "log-memory-usage";
+ //
+ UICommands["ManageLicensing"] = "manage-licensing";
+ //
+ UICommands["ManageMapbox"] = "manage-mapbox";
+ //
+ UICommands["ManagePublicWorkbooks"] = "manage-public";
+ //
+ UICommands["ManageMapServices"] = "manage-map-services";
+ //
+ UICommands["MapLayersUI"] = "map-layers-ui";
+ //
+ UICommands["ManageWMS"] = "manage-wms";
+ //
+ UICommands["UpgradeDataSourcesUI"] = "upgrade-datasources-ui";
+ //
+ UICommands["UpgradeDataSourceUI"] = "upgrade-datasource-ui";
+ //
+ UICommands["MoveRepository"] = "move-repository";
+ //
+ UICommands["NewSchemaDrillPathUI"] = "new-schema-drill-path-ui";
+ //
+ UICommands["NewUIDashboard"] = "new-dashboard-ui";
+ //
+ UICommands["NewUIWorksheet"] = "new-worksheet-ui";
+ //
+ UICommands["NewUIStoryboard"] = "new-storyboard-ui";
+ //
+ UICommands["NewWorkbook"] = "new-workbook";
+ //
+ UICommands["NextSheet"] = "next-sheet";
+ //
+ UICommands["NonRangedEditReferenceLine"] = "non-ranged-edit-reference-line";
+ //
+ UICommands["OpenBookmark"] = "open-bookmark";
+ //
+ UICommands["OpenFromWorkgroup"] = "open-workbook-from-workgroup";
+ //
+ UICommands["OpenMapSource"] = "open-map-source";
+ //
+ UICommands["OpenMapSourceUI"] = "open-map-source-ui";
+ //
+ UICommands["OpenSampleWorkbook"] = "open-sample-workbook";
+ //
+ UICommands["OpenWorkbook"] = "open-workbook";
+ //
+ UICommands["OpenRecentWorkbook"] = "open-recent-workbook";
+ //
+ UICommands["OpenOtherFiles"] = "open-other-files";
+ //
+ UICommands["OptimizeExtractUI"] = "optimize-extract-ui";
+ //
+ UICommands["PageSetup"] = "page-setup";
+ //
+ UICommands["Paste"] = "paste";
+ //
+ UICommands["PasteFieldsDefnUI"] = "paste-fields-defn-ui";
+ //
+ UICommands["PasteWorksheetFormatting"] = "paste-formatting";
+ //
+ UICommands["PDFExport"] = "export-pdf";
+ //
+ UICommands["PerspectivesUI"] = "perspectives-ui";
+ //
+ UICommands["PresentationMode"] = "presentation-mode";
+ //
+ UICommands["Print"] = "print";
+ //
+ UICommands["PromptScript"] = "prompt-command";
+ //
+ UICommands["PropertiesDataSourceUI"] = "properties-datasource-ui";
+ //
+ UICommands["PublishDatasourceToWorkgroup"] = "publish-datasource-to-workgroup";
+ //
+ UICommands["PublishDatasourceToWorkgroupFromData"] = "publish-datasource-to-workgroup-from-data";
+ //
+ UICommands["PublishDatasourceToWorkgroupRange"] = "publish-datasource-to-workgroup-range";
+ //
+ UICommands["PublishWorkbookToWorkgroup"] = "publish-workbook-to-workgroup";
+ //
+ UICommands["PublishDatasourceToWorkgroupFromWorkbookData"] = "publish-datasource-to-workgroup-from-workbook-data";
+ //
+ UICommands["PromptForDataSourceFileUI"] = "prompt-for-datasource-file-ui";
+ //
+ UICommands["PromptUnknownWDCUrlUI"] = "prompt-unknown-wdc-url-ui";
+ //
+ UICommands["QueryDataSourceUI"] = "query-datasource-ui";
+ //
+ UICommands["QuickFilterFieldLabelUI"] = "quick-filter-field-label-ui";
+ //
+ UICommands["QuickTableCalcUI"] = "quick-table-calc-ui";
+ //
+ UICommands["ReconnectMapSourceUI"] = "reconnect-map-source-ui";
+ //
+ UICommands["RecordPerformance"] = "record-perf";
+ //
+ UICommands["RefreshAllExtractsUI"] = "refresh-all-extracts-ui";
+ //
+ UICommands["RefreshAllThumbnailsUI"] = "refresh-all-thumbnails";
+ //
+ UICommands["RefreshAutoExtractUI"] = "refresh-auto-extract-ui";
+ //
+ UICommands["RefreshDataSourceUI"] = "refresh-datasource-ui";
+ //
+ UICommands["RefreshExtractUI"] = "refresh-extract-ui";
+ //
+ UICommands["RefreshFromSourceUI"] = "refresh-from-source-ui";
+ //
+ UICommands["RefreshLocalDataUI"] = "refresh-local-data-ui";
+ //
+ UICommands["RefreshThumbnailUI"] = "refresh-thumbnail";
+ //
+ UICommands["ReleaseMemory"] = "release-memory";
+ //
+ UICommands["RemoveAnnotation"] = "remove-annotation";
+ //
+ UICommands["RemoveExtractUI"] = "remove-extract-ui";
+ //
+ UICommands["RemoveMRUItem"] = "remove-mru";
+ //
+ UICommands["RemoveSavedDataSourceUI"] = "remove-saved-datasource";
+ //
+ UICommands["RemoveSheetFromDashboardUI"] = "remove-sheet-from-dashboard-ui";
+ //
+ UICommands["RemoveTableUI"] = "remove-table-ui";
+ //
+ UICommands["RenameDataSourceUI"] = "rename-datasource-ui";
+ //
+ UICommands["RenameSchemaFieldFolderUI"] = "rename-field-folder-ui";
+ //
+ UICommands["RenameSchemaDrillPathUI"] = "rename-schema-drillpath-ui";
+ //
+ UICommands["RenameSheetUI"] = "rename-sheet-ui";
+ //
+ UICommands["ReorderSheetsUI"] = "reorder-sheets-ui";
+ //
+ UICommands["ReplaceDataSourceWithDataServerDataSourceUI"] = "replace-datasource-with-data-server-datasource-ui";
+ //
+ UICommands["ReplaceFieldUI"] = "replace-field-ui";
+ //
+ UICommands["ResetCaptionUI"] = "reset-caption-ui";
+ //
+ UICommands["ResetCards"] = "reset-cards";
+ //
+ UICommands["ResetLocalDataUI"] = "remove-local-data-ui";
+ //
+ UICommands["ResetMessages"] = "reset-messages";
+ //
+ UICommands["StartOnlineSyncClient"] = "start-online-sync-client";
+ //
+ UICommands["ResetTitleUI"] = "reset-title-ui";
+ //
+ UICommands["ResetToDefaultsMapCard"] = "reset-map-to-defaults";
+ //
+ UICommands["ResetWorkbook"] = "revert-workbook-ui";
+ //
+ UICommands["RetargetDataSource"] = "retarget-datasource";
+ //
+ UICommands["RetargetDataSourceUI"] = "retarget-datasource-ui";
+ //
+ UICommands["SaveAsWorkbook"] = "save-as-workbook";
+ //
+ UICommands["SaveBookmark"] = "save-bookmark";
+ //
+ UICommands["SaveDebuggingWorkbook"] = "save-debugging-workbook";
+ //
+ UICommands["SaveDefaultFormattingUI"] = "save-formatting-ui";
+ //
+ UICommands["SaveWorkbook"] = "save-workbook";
+ //
+ UICommands["SchemaDefaultMemberUI"] = "schema-default-member-ui";
+ //
+ UICommands["ScrollSheet"] = "scroll-sheet";
+ //
+ UICommands["SetAccountsDimension"] = "set-accounts-dimension";
+ //
+ UICommands["SetActiveConnectionUI"] = "set-active-connection-ui";
+ //
+ UICommands["SetAnalyticsDropTargetVisibility"] = "set-analytics-drop-target-visibility";
+ //
+ UICommands["SetDashboardSidePaneMode"] = "set-dashboard-sidepane-mode";
+ //
+ UICommands["SetDefaultDateFormatUI"] = "set-default-date-format-ui";
+ //
+ UICommands["SetDefaultLocationUI"] = "set-default-location-ui";
+ //
+ UICommands["SetDefaultMapSourceUI"] = "set-default-mapsource-ui";
+ //
+ UICommands["SetDefaultTextFormatUI"] = "set-default-text-format-ui";
+ //
+ UICommands["SetDefaultUtilityMember"] = "set-default-utility-member";
+ //
+ UICommands["SetFreeFormDashboardUI"] = "set-free-form-dashboard-ui";
+ //
+ UICommands["SetFilterSharedUI"] = "set-filter-shared-ui";
+ //
+ UICommands["SetKey"] = "set-key";
+ //
+ UICommands["SetProductAutoUpdate"] = "set-auto-update";
+ //
+ UICommands["SetQueryFailure"] = "set-query-failure";
+ //
+ UICommands["SetRendering"] = "set-rendering";
+ //
+ UICommands["SetRuntimeImmediateMode"] = "set-runtime-immediate-mode";
+ //
+ UICommands["SetUILanguage"] = "set-ui-language";
+ //
+ UICommands["SetWorkbookLocaleUI"] = "set-workbook-locale-ui";
+ //
+ UICommands["SetWorksheetSidePaneMode"] = "set-worksheet-sidepane-mode";
+ //
+ UICommands["SetZoneFixedSizeUI"] = "set-zone-fixed-size-ui";
+ //
+ UICommands["SetsInOutUI"] = "show-in-out-sets";
+ //
+ UICommands["ShapeLegendEditUI"] = "shape-legend-edit-ui";
+ //
+ UICommands["ShowCloudFileOAuthPromptAndSelectionUI"] = "show-cloudfile-oauth-prompt-and-selection-ui";
+ //
+ UICommands["ShowConnectionAuthUI"] = "show-connection-auth-ui";
+ //
+ UICommands["ShowConnectionAuthAndEstablishConnectionUI"] = "show-connection-auth-and-establish-connection-ui";
+ //
+ UICommands["ShowConnectTab"] = "show-connect-tab";
+ //
+ UICommands["ShowCustomSplitDialogUI"] = "show-custom-split-dialog-ui";
+ //
+ UICommands["ShowDocument"] = "document";
+ //
+ UICommands["ShowFeatureFlagDialog"] = "show-feature-flag-dialog";
+ //
+ UICommands["ShowFieldFormatUI"] = "show-field-format-ui";
+ //
+ UICommands["ShowFieldInSchemaUI"] = "show-field-in-schema";
+ //
+ UICommands["ShowFilmstripUI"] = "show-filmstrip-ui";
+ //
+ UICommands["ShowGoogleSheetsSelectionUI"] = "show-google-sheets-selection-ui";
+ //
+ UICommands["ShowHelp"] = "show-help";
+ //
+ UICommands["ShowHideDashboardSheetUI"] = "show-hide-dashboard-sheet-ui";
+ //
+ UICommands["ShowHideStoryboardSheetUI"] = "show-hide-storyboard-sheet-ui";
+ //
+ UICommands["ShowGraphicsAPI"] = "show-graphics-api-command";
+ //
+ UICommands["ShowMapOptionsDialog"] = "show-map-options-dialog";
+ //
+ UICommands["ShowMeasuresUI"] = "show-measures-ui";
+ //
+ UICommands["ShowMeCycleUI"] = "show-me-cycle-ui";
+ //
+ UICommands["ShowMeHideUI"] = "show-me-hide-ui";
+ //
+ UICommands["ShowMembersUI"] = "show-members-ui";
+ //
+ UICommands["ShowMeToggleUI"] = "show-me-toggle-ui";
+ //
+ UICommands["ShowOAuthPromptUI"] = "show-oauth-prompt-ui";
+ //
+ UICommands["ShowParameterControl"] = "show-parameter-control";
+ //
+ UICommands["ShowPublicStatusDialog"] = "show-public-status-dialog";
+ //
+ UICommands["ShowPublicQuotaExceededDialog"] = "show-public-quota-exceeded-dialog";
+ //
+ UICommands["ShowPublishDatasourceToWorkgroupDialog"] = "show-publish-datasource-to-workgroup-dialog";
+ //
+ UICommands["ShowQueryBandingAndInitialSQLDialogUI"] = "show-query-banding-and-initial-sql-dialog-ui";
+ //
+ UICommands["ShowQuickFilter"] = "show-quickfilter";
+ //
+ UICommands["ShowQuickFilterUI"] = "show-quickfilter-ui";
+ //
+ UICommands["ShowRuntimeIndicator"] = "show-runtime-indicator";
+ //
+ UICommands["ShowSheetSorter"] = "sheet-sorter";
+ //
+ UICommands["ShowTableOptionsDialog"] = "show-table-options-dialog";
+ //
+ UICommands["ShowWebDataConnectorUI"] = "show-web-data-connector-ui";
+ //
+ UICommands["ShowWidgetSandboxUI"] = "show-widget-sandbox-ui";
+ //
+ UICommands["SizeLegendEditUI"] = "size-legend-edit-ui";
+ //
+ UICommands["SleepUI"] = "sleep-ui";
+ //
+ UICommands["SortAscendingFieldLabelUI"] = "sort-ascending-field-label-ui";
+ //
+ UICommands["SortDescendingFieldLabelUI"] = "sort-descending-field-label-ui";
+ //
+ UICommands["SortFieldLabelUI"] = "sort-field-label-ui";
+ //
+ UICommands["SortUI"] = "sort-ui";
+ //
+ UICommands["SplitFieldUI"] = "split-field-ui";
+ //
+ UICommands["StackMarksUI"] = "stack-marks-ui";
+ //
+ UICommands["StartFileConnectionUI"] = "start-file-connection-ui";
+ //
+ UICommands["StartPillEditUI"] = "start-pill-edit-ui";
+ //
+ UICommands["SwitchToConnectTab"] = "switch-to-connect-tab";
+ //
+ UICommands["SwitchToDocument"] = "switch-to-document";
+ //
+ UICommands["SwitchToSheetSorter"] = "switch-to-sheet-sorter";
+ //
+ UICommands["TableCalcAddressUI"] = "table-calc-address-ui";
+ //
+ UICommands["TableCalcIgnoreUI"] = "table-calc-ignore-ui";
+ //
+ UICommands["TableCalcOrderingUI"] = "table-calc-ordering-ui";
+ //
+ UICommands["TableCalcUI"] = "table-calc-ui";
+ //
+ UICommands["ToggleConnectPaneUI"] = "toggle-connect-pane";
+ //
+ UICommands["ToggleFilmstripUI"] = "toggle-filmstrip-ui";
+ //
+ UICommands["ToggleINDJoinSemanticsUI"] = "toggle-ind-join-semantics-ui";
+ //
+ UICommands["TogglePinMRUItem"] = "toggle-pin-mru";
+ //
+ UICommands["ToggleReferentialIntegrityUI"] = "toggle-referential-integrity-ui";
+ //
+ UICommands["ToggleStartPageUI"] = "toggle-start-page";
+ //
+ UICommands["TrackMemory"] = "track-memory";
+ //
+ UICommands["TrendLinesFlagUI"] = "trend-lines-ui";
+ //
+ UICommands["UpdateDefaultsMapCard"] = "update-map-defaults";
+ //
+ UICommands["UpgradeExtractsUI"] = "upgrade-extracts-ui";
+ //
+ UICommands["UpgradeExtractUI"] = "upgrade-extract-ui";
+ //
+ UICommands["UseExtractUI"] = "use-extract-ui";
+ //
+ UICommands["UseMemory"] = "use-memory";
+ //
+ UICommands["UtilityDimensionUI"] = "utility-dimension-ui";
+ //
+ UICommands["ValidateExtractCredentialsUI"] = "validate-extract-credentials-ui";
+ //
+ UICommands["ViewCard"] = "view-card";
+ //
+ UICommands["ViewTitleCard"] = "view-title-card";
+ //
+ UICommands["ViewSummaryCard"] = "view-summary-card";
+ //
+ UICommands["ViewCaptionCard"] = "view-caption-card";
+ //
+ UICommands["ViewColumnsShelf"] = "view-columns-shelf";
+ //
+ UICommands["ViewRowsShelf"] = "view-rows-shelf";
+ //
+ UICommands["ViewPagesShelf"] = "view-pages-shelf";
+ //
+ UICommands["ViewFiltersShelf"] = "view-filters-shelf";
+ //
+ UICommands["ViewMeasuresShelf"] = "view-measures-shelf";
+ //
+ UICommands["ViewMarksShelf"] = "view-marks-shelf";
+ //
+ UICommands["ViewCurrentPageCard"] = "view-current-page-card";
+ //
+ UICommands["ViewData"] = "view-data";
+ //
+ UICommands["ViewSQLDataUI"] = "view-sql-data-ui";
+ //
+ UICommands["ViewDataSourceData"] = "view-datasource-data";
+ //
+ UICommands["ViewLegend"] = "view-legend";
+ //
+ UICommands["ViewSidePane"] = "view-side-pane";
+ //
+ UICommands["ViewStatusBar"] = "view-statusbar";
+ //
+ UICommands["ViewSummaryDetail"] = "view-summary-detail";
+ //
+ UICommands["ViewTableData"] = "view-table-data";
+ //
+ UICommands["ViewToolBar"] = "view-toolbar";
+ //
+ UICommands["WebViewEnableJavascript"] = "webview-enable-javascript";
+ //
+ UICommands["WebViewEnablePlugins"] = "webview-enable-plugins";
+ //
+ UICommands["WebViewBlockPopups"] = "webview-block-popups";
+ //
+ UICommands["WebViewEnableURLHoverActions"] = "webview-enable-url-hover-actions";
+ //
+ UICommands["WorkgroupChangeDataserver"] = "workgroup-change-dataserver";
+ //
+ UICommands["WorkgroupChangeServer"] = "workgroup-change-server";
+ //
+ UICommands["WorkgroupChangeUser"] = "workgroup-change-user";
+ //
+ UICommands["WorkgroupRemoveLastServer"] = "workgroup-remove-last-server";
+ })(UICommands = exports.UICommands || (exports.UICommands = {}));
+ var SrvCommands;
+ (function (SrvCommands) {
+ // pings the server to test if the session is expired
+ SrvCommands["PingSession"] = "ping-session";
+ // Applies snapshot from comments to the viz.
+ SrvCommands["ApplyCustomizedView"] = "apply-customized-view";
+ // Refreshes VQLSession Data
+ SrvCommands["RefreshData"] = "refresh-data";
+ })(SrvCommands = exports.SrvCommands || (exports.SrvCommands = {}));
+ (function (DocCommands) {
+ // Returns whether date properties should be enabled
+ DocCommands["GetDataSourceDatePropertiesAreEnabled"] = "get-datasource-date-properties-are-enabled";
+ // Get presmodel to populate date properties dialog
+ DocCommands["GetDataSourceDateProperties"] = "get-datasource-date-properties";
+ // Apply new settings for date properties
+ DocCommands["EditDataSourceDateProperties"] = "edit-datasource-date-properties";
+ // Apply data source delta to data source
+ DocCommands["ApplyDataSourceDelta"] = "apply-datasource-delta";
+ // Generate data source delta from local data source
+ DocCommands["GetDataSourceDelta"] = "get-datasource-delta";
+ // Gets the pres model for the Save Datasource dialog
+ DocCommands["GetWebSaveDatasourceDialog"] = "get-web-save-datasource-dialog";
+ // Creates a dialog in the browser to rename the datasource
+ DocCommands["WebRenameDatasourceDialog"] = "web-rename-datasource-dialog";
+ // Switches the view to the data tab for editing
+ DocCommands["WebEditDataSource"] = "web-edit-data-source";
+ // Toggles joining on null values
+ DocCommands["ToggleINDJoinSemantics"] = "toggle-ind-join-semantics";
+ // Join Null Values to Null Values
+ DocCommands["ToggleINDJoinSemanticsWrapper"] = "toggle-indjoin-semantics-wrapper";
+ // Toggles referential integrity
+ DocCommands["ToggleReferentialIntegrity"] = "toggle-referential-integrity";
+ // Retrieves list of summary objects, one for each connection in a datasource.
+ DocCommands["GetConnectionDescriptionSummaryPresModels"] = "get-connection-description-summary-pres-models";
+ // Gets the axis options .
+ DocCommands["GetAxisOptions"] = "get-axis-options";
+ // Reset the axis options .
+ DocCommands["ResetAxisOptions"] = "reset-axis-options";
+ // Show axis edit dialog
+ DocCommands["ShowEditAxisDialog"] = "show-edit-axis-dialog";
+ // Sets the axis direction
+ DocCommands["SetAxisReversed"] = "set-axis-reversed";
+ // Sets the axis scale type
+ DocCommands["SetAxisScaleType"] = "set-axis-scale-type";
+ // Sets the main title of a quantitative axis
+ DocCommands["SetAxisTitle"] = "set-axis-title";
+ // Sets the subtitle of a quantitative axis
+ DocCommands["SetAxisSubtitle"] = "set-axis-subtitle";
+ // Sets whether we should use the automatic subtitle for a quantitative axis
+ DocCommands["SetAxisUseAutomaticSubtitle"] = "set-axis-use-automatic-subtitle";
+ // Sets the axis range type of a quantitative axis
+ DocCommands["SetAxisExtentStartType"] = "set-axis-extent-start-type";
+ // Sets the axis range type of a quantitative axis
+ DocCommands["SetAxisExtentEndType"] = "set-axis-extent-end-type";
+ // Sets the axis range type of a quantitative axis
+ DocCommands["SetBothAxisExtentsType"] = "set-both-axis-extents-type";
+ // Sets whether or not to force-include zero on a quantitative axis
+ DocCommands["SetAxisIncludeZero"] = "set-axis-include-zero";
+ // Sets new min/max range endings for axis
+ DocCommands["SetAxisRangeEnd"] = "set-axis-range-end";
+ // Sets new min/max range endings for axis
+ DocCommands["SetAxisRangeStart"] = "set-axis-range-start";
+ // Synchronize dual axes on a folded quantitative axis
+ DocCommands["SetAxisFoldState"] = "set-axis-fold-state";
+ // Set the major tick mark state
+ DocCommands["SetMajorTickMarkState"] = "set-major-tick-mark-state";
+ // Set the minor tick mark state
+ DocCommands["SetMinorTickMarkState"] = "set-minor-tick-mark-state";
+ // Set the major tick mark origin
+ DocCommands["SetMajorTickMarkOrigin"] = "set-major-tick-mark-origin";
+ // Set the minor tick mark origin
+ DocCommands["SetMinorTickMarkOrigin"] = "set-minor-tick-mark-origin";
+ // Set the major tick mark spacing
+ DocCommands["SetMajorTickMarkSpacing"] = "set-major-tick-mark-spacing";
+ // Set the minor tick mark spacing
+ DocCommands["SetMinorTickMarkSpacing"] = "set-minor-tick-mark-spacing";
+ // Set the major tick mark units
+ DocCommands["SetMajorTickMarkUnits"] = "set-major-tick-mark-units";
+ // Set the minor tick mark units
+ DocCommands["SetMinorTickMarkUnits"] = "set-minor-tick-mark-units";
+ //
+ DocCommands["BoundingBoxPan"] = "bounding-box-pan";
+ //
+ DocCommands["OnToggleAxisRanges"] = "on-toggle-axis-ranges";
+ //
+ DocCommands["PanePan"] = "pane-pan";
+ //
+ DocCommands["PaneZoom"] = "pane-zoom";
+ //
+ DocCommands["PaneZoomFactor"] = "pane-zoom-factor";
+ //
+ DocCommands["PaneZoomPan"] = "pane-zoom-pan";
+ //
+ DocCommands["ReorderFoldedAxes"] = "reorder-folded-axes";
+ //
+ DocCommands["ResetAxisRange"] = "reset-axis-range";
+ //
+ DocCommands["SelectAxisTuples"] = "select-axis-tuples";
+ //
+ DocCommands["SwapReferenceLineFields"] = "swap-reference-line-fields";
+ //
+ DocCommands["SynchronizeAxis"] = "synchronize-axis";
+ //
+ DocCommands["ToggleDualAxis"] = "toggle-dual-axis";
+ //
+ DocCommands["ZoomLevel"] = "zoom-level";
+ })(DocCommands = exports.DocCommands || (exports.DocCommands = {}));
+
+
+/***/ },
+/* 84 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_utils_1 = __webpack_require__(80);
+ /**
+ * Registry which contains mappings from an Api VerbId to a pres-layer command.
+ * This includes the parameters and return values of the command as well
+ *
+ * @export
+ * @class CommandMappingRegistry
+ */
+ var CommandMappingRegistry = (function () {
+ /**
+ * Creates an instance of CommandMappingRegistry.
+ * @memberof CommandMappingRegistry
+ */
+ function CommandMappingRegistry() {
+ this._commands = {};
+ }
+ /**
+ * Adds a new command to the registry
+ *
+ * @param {CommandRegistration} command
+ * @memberof CommandMappingRegistry
+ */
+ CommandMappingRegistry.prototype.addCommand = function (command) {
+ this._commands[command.apiVerbId] = command;
+ };
+ /**
+ * Whether or not this registry contains a definition for this ApiVerbId
+ *
+ * @param {ApiVerbId} apiVerbId
+ * @returns {boolean}
+ * @memberof CommandMappingRegistry
+ */
+ CommandMappingRegistry.prototype.hasCommand = function (apiVerbId) {
+ if (!this._commands.hasOwnProperty(apiVerbId)) {
+ return false;
+ }
+ if (!this._commands[apiVerbId]) {
+ return false;
+ }
+ return true;
+ };
+ /**
+ * Gets the command registration for this command id or throws if it doesn't exist
+ *
+ * @param {ApiVerbId} apiVerbId
+ * @returns {CommandRegistration}
+ * @memberof CommandMappingRegistry
+ */
+ CommandMappingRegistry.prototype.getCommand = function (apiVerbId) {
+ if (!this.hasCommand(apiVerbId)) {
+ throw api_utils_1.TableauException.error(CommandMappingRegistry.UNKNOWN_APIVERB, [apiVerbId]);
+ }
+ return this._commands[apiVerbId];
+ };
+ CommandMappingRegistry.UNKNOWN_APIVERB = 'Unknown ApiVerb: %1';
+ return CommandMappingRegistry;
+ }());
+ exports.CommandMappingRegistry = CommandMappingRegistry;
+
+
+/***/ },
+/* 85 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_internal_contract_1 = __webpack_require__(79);
+ var api_utils_1 = __webpack_require__(80);
+ /**
+ * This is an enum used only internally by the api-core project.
+ * This enum represents the difference namespaces available for commands.
+ */
+ var CommandNamespace;
+ (function (CommandNamespace) {
+ CommandNamespace["TabDoc"] = "tabdoc";
+ CommandNamespace["TabSrv"] = "tabsrv";
+ CommandNamespace["TabUI"] = "tabui";
+ })(CommandNamespace = exports.CommandNamespace || (exports.CommandNamespace = {}));
+ /**
+ * Represents an input or output paramter for a command.
+ *
+ * @export
+ * @class CommandParameter
+ */
+ var CommandParameter = (function () {
+ /**
+ * Creates an instance of CommandParameter.
+ * @param {ApiParameterId} apiId
+ * @param {PresLayerParameterId} presLayerId
+ * @param {boolean} [isOptional]
+ * @memberof CommandParameter
+ */
+ function CommandParameter(_apiId, _presLayerId, _isOptional) {
+ this._apiId = _apiId;
+ this._presLayerId = _presLayerId;
+ this._isOptional = _isOptional;
+ }
+ Object.defineProperty(CommandParameter.prototype, "apiId", {
+ /**
+ * The Id of the Api Parameter
+ *
+ * @readonly
+ * @type {ApiParameterId}
+ * @memberof CommandParameter
+ */
+ get: function () {
+ return this._apiId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CommandParameter.prototype, "presLayerId", {
+ /**
+ * The Id of the Pres Layer Parameter
+ *
+ * @readonly
+ * @type {PresLayerParameterId}
+ * @memberof CommandParameter
+ */
+ get: function () {
+ return this._presLayerId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CommandParameter.prototype, "isOptional", {
+ /**
+ * Whether or not this is an optional parameter
+ *
+ * @readonly
+ * @type {boolean}
+ * @memberof CommandParameter
+ */
+ get: function () {
+ return !!this._isOptional;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return CommandParameter;
+ }());
+ exports.CommandParameter = CommandParameter;
+ /**
+ * Represents a the complete mapping of an ApiCommand to its corresponding pres-layer command
+ * and the conversion of the output value as well
+ *
+ * @export
+ * @class CommandRegistration
+ *
+ * @param {ApiVerbId} _apiVerbId the internal api verb ID of this command.
+ * @param {PresLayerDocCommandId | PresLayerSrvCommandId | PresLayerUICommandId} _commandId
+ * the pres layer command to execute
+ * @param {CommandParameter[]} _inputParameters list of parameters to send with this command to the platform.
+ * @param {CommandParameter} [isOptional] expected return paramters from the platform.
+ * @param {CommandNamespace} [isOptional] namespace of the command (defaults to TabDoc if not provided).
+ */
+ var CommandRegistration = (function () {
+ function CommandRegistration(_apiVerbId, _commandId, _inputParameters, _outputParameter, _namespace) {
+ this._apiVerbId = _apiVerbId;
+ this._commandId = _commandId;
+ this._inputParameters = _inputParameters;
+ this._outputParameter = _outputParameter;
+ this._namespace = _namespace;
+ }
+ Object.defineProperty(CommandRegistration.prototype, "apiVerbId", {
+ get: function () {
+ return this._apiVerbId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CommandRegistration.prototype, "commandId", {
+ get: function () {
+ return this._commandId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CommandRegistration.prototype, "namespace", {
+ get: function () {
+ return this._namespace || CommandNamespace.TabDoc;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CommandRegistration.prototype, "inputs", {
+ get: function () {
+ return this._inputParameters || new Array();
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CommandRegistration.prototype, "output", {
+ get: function () {
+ return this._outputParameter;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CommandRegistration.prototype, "needsAddInLocator", {
+ /**
+ * Whether or not this command requires an add-in locator to be injected into it
+ *
+ * @readonly
+ * @type {boolean}
+ * @memberof CommandRegistration
+ */
+ get: function () {
+ for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) {
+ var input = _a[_i];
+ if (input.apiId === api_internal_contract_1.ParameterId.ExtensionLocator) {
+ return true;
+ }
+ }
+ return false;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Creates a dictionary of pres-layer parameters from the input dictionary
+ * of api parameters.
+ *
+ * @param {ExecuteParameters} parameters - The parameters to convert
+ * @param {ApiToPresLayerMappingRegistry} apiToPresLayer - mapping to determine the conversion
+ * @returns {{ [paramId: string]: object; }} - parameters to send to the pres-layer
+ * @memberof CommandRegistration
+ */
+ CommandRegistration.prototype.createParams = function (parameters, apiToPresLayer) {
+ var result = {};
+ for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) {
+ var inputParam = _a[_i];
+ // First make sure the parameter is there or that it's optional
+ if (!parameters.hasOwnProperty(inputParam.apiId)) {
+ if (inputParam.isOptional) {
+ continue;
+ }
+ else {
+ throw api_utils_1.TableauException.missingParameter([inputParam.apiId]);
+ }
+ }
+ // Find the conversion function for this parameter
+ var conversionFn = apiToPresLayer.get(inputParam.apiId, inputParam.presLayerId);
+ // Convert the pres model and insert it into our results object
+ result[inputParam.presLayerId] = conversionFn(parameters[inputParam.apiId]);
+ }
+ return result;
+ };
+ /**
+ * Processes the result received back after executing a pres-layer command
+ *
+ * @param {{ [docParamId: string]: object; }} resultParameters
+ * @param {PresLayerToApiMappingRegistry} presLayerToApi
+ * @returns {Model}
+ * @memberof CommandRegistration
+ */
+ CommandRegistration.prototype.ProcessResult = function (resultParameters, presLayerToApi) {
+ // TODO: Add error handling
+ if (this.output === undefined) {
+ var noOutputModel = {};
+ return noOutputModel;
+ }
+ if (!resultParameters || !resultParameters.hasOwnProperty(this.output.presLayerId)) {
+ // if the output result is marked as optional, we don't consider this an error situation and just return an empty model
+ if (this.output.isOptional) {
+ return {};
+ }
+ throw api_utils_1.TableauException.missingParameter([this.output.presLayerId]);
+ }
+ var conversionFn = presLayerToApi.get(this.output.presLayerId, this.output.apiId);
+ return conversionFn(resultParameters[this.output.presLayerId]);
+ };
+ return CommandRegistration;
+ }());
+ exports.CommandRegistration = CommandRegistration;
+
+
+/***/ },
+/* 86 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_internal_contract_1 = __webpack_require__(79);
+ var Events_1 = __webpack_require__(87);
+ var PresLayerToApiConverter_1 = __webpack_require__(88);
+ /**
+ * Simple wrapper which holds a mapping to go from a pres-layer event to an API event
+ */
+ var EventMappingRegistration = (function () {
+ function EventMappingRegistration(_presLayerId, _apiId, _converter) {
+ this._presLayerId = _presLayerId;
+ this._apiId = _apiId;
+ this._converter = _converter;
+ }
+ Object.defineProperty(EventMappingRegistration.prototype, "presLayerId", {
+ get: function () {
+ return this._presLayerId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(EventMappingRegistration.prototype, "apiId", {
+ get: function () {
+ return this._apiId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(EventMappingRegistration.prototype, "converter", {
+ get: function () {
+ return this._converter;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return EventMappingRegistration;
+ }());
+ exports.EventMappingRegistration = EventMappingRegistration;
+ var EventMappingRegistryFactory = (function () {
+ function EventMappingRegistryFactory() {
+ }
+ /**
+ * Creates and populates a new EventMappingRegistry for the specific version number requested
+ *
+ * @param {VersionNumber} versionNumber
+ * @returns {EventMappingRegistry}
+ */
+ EventMappingRegistryFactory.createEventMappingRegistry = function (versionNumber) {
+ var registry = {};
+ registry[Events_1.NotificationId.SelectionChanged] = new EventMappingRegistration(Events_1.NotificationId.SelectionChanged, api_internal_contract_1.NotificationId.SelectedMarksChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId);
+ registry[Events_1.NotificationId.ParameterChanged] = new EventMappingRegistration(Events_1.NotificationId.ParameterChanged, api_internal_contract_1.NotificationId.ParameterChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertFieldCaptionPair);
+ registry[Events_1.NotificationId.FilterChanged] = new EventMappingRegistration(Events_1.NotificationId.FilterChanged, api_internal_contract_1.NotificationId.FilterChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertFilterEvent);
+ return registry;
+ };
+ return EventMappingRegistryFactory;
+ }());
+ exports.EventMappingRegistryFactory = EventMappingRegistryFactory;
+
+
+/***/ },
+/* 87 */
+/***/ function(module, exports) {
+
+ "use strict";
+ /* tslint:disable */
+ // -----------------------------------------------------------------------------
+ //
+ // This file is the copyrighted property of Tableau Software and is protected
+ // by registered patents and other applicable U.S. and international laws and
+ // regulations.
+ //
+ // Unlicensed use of the contents of this file is prohibited. Please refer to
+ // the NOTICES.txt file for further details.
+ //
+ // -----------------------------------------------------------------------------
+ // WARNING: Computer generated file. Do not hand modify.
+ // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/events-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-events.data', '../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/events-common.template']
+ Object.defineProperty(exports, "__esModule", { value: true });
+ // Events you can register to receive presentation models
+ var NotificationId;
+ (function (NotificationId) {
+ // Triggered when aliases are to be edited. Used to launch a dialog.
+ NotificationId["EditAliasesDialogNotification"] = "doc:edit-aliases-dialog-notification-event";
+ // for the calculation dialog
+ NotificationId["CalculationDialog"] = "doc:calculation-dialog-event";
+ // update for an adhoc calc in a type in pill
+ NotificationId["TypeInPill"] = "doc:type-in-pill-event";
+ // results of a validation command
+ NotificationId["CommandValidation"] = "doc:command-validation-event";
+ // event for the groups dialog
+ NotificationId["UpdateCategoricalBinEditDialog"] = "doc:update-categorical-bin-edit-dialog-event";
+ // for the categorical color dialog
+ NotificationId["CategoricalColor"] = "doc:categorical-color-event";
+ // update the web categorical color dialog
+ NotificationId["WebCategoricalColorDialog"] = "doc:web-categorical-color-dialog-event";
+ // user invoked action which requires a Data Alert Dialog
+ NotificationId["DataAlertDialog"] = "doc:data-alert-dialog-event";
+ // event to select field(s) in the data schema
+ NotificationId["DataSchemaSelection"] = "doc:data-schema-selection-event";
+ // event for when the data source being edited is updated
+ NotificationId["UpdateDataPreparation"] = "doc:update-data-preparation-event";
+ // event for when the data source data is updated
+ NotificationId["UpdateDataSourceData"] = "doc:update-data-source-data-event";
+ // event for when a client should request new data source or data source data pres models
+ NotificationId["DataSourceUpdateNeeded"] = "doc:data-source-update-needed-event";
+ // event for getting the pres model to update file join table properties
+ NotificationId["TextFileProperties"] = "doc:text-file-properties-event";
+ // notify changes to the state of a filter's relational model
+ NotificationId["FilterRelationalStateChanged"] = "doc:filter-relational-state-changed-event";
+ // notify changes to the size/selection count of a relational domain
+ NotificationId["FilterRelationalDomainChanged"] = "doc:filter-relational-domain-changed-event";
+ // notify when filter cache was requested but not found
+ NotificationId["FilterCacheNotFound"] = "doc:filter-cache-not-found-event";
+ // Hierarchy Select model observable notification.
+ NotificationId["HierarchyNotification"] = "doc:hierarchy-notification-event";
+ // Hierarchy selection change notifications.
+ NotificationId["HierarchySelection"] = "doc:hierarchy-selection-event";
+ // event for the map options dialog
+ NotificationId["MapOptionsDialog"] = "doc:map-options-dialog-event";
+ // notify the Page UI(hide/show states, layout) needs to be updated
+ NotificationId["UpdatePageUINotification"] = "doc:update-page-uinotification-event";
+ // notify to the SceneView has been drawn.
+ NotificationId["SceneViewDrawnNotification"] = "doc:scene-view-drawn-notification-event";
+ // The AnimationControlChange event fires when the user clicks an animation playback button: forward, stop, slow, fast, etc.
+ NotificationId["AnimationControlChange"] = "doc:animation-control-change-event";
+ // notify the sheet has been renamed
+ NotificationId["RenameSheetNotification"] = "doc:rename-sheet-notification-event";
+ // update the web quantitative color dialog
+ NotificationId["WebQuantitativeColorDialog"] = "doc:web-quantitative-color-dialog-event";
+ // update the button config dialog
+ NotificationId["UpdateButtonConfigDialog"] = "doc:update-button-config-dialog-event";
+ // event for the reference line dialog, which is only valid during web authoring
+ NotificationId["UpdateRefLineDialog"] = "doc:update-ref-line-dialog-event";
+ // event to trigger other reference line dialogs to close
+ NotificationId["RefLineDialogOpening"] = "doc:ref-line-dialog-opening-event";
+ // event for the close data source error dialog, which is only valid during web authoring
+ NotificationId["CloseDataSourceErrorDialog"] = "doc:close-data-source-error-dialog-event";
+ // update the web Save Datasource dialog
+ NotificationId["WebSaveDatasourceDialog"] = "doc:web-save-datasource-dialog-event";
+ // warning resulting from WarningMsg
+ NotificationId["WarningMessage"] = "doc:warning-message-event";
+ // event for the table calc dialog, on web, this is only valid during web authoring
+ NotificationId["TableCalcDialog"] = "doc:table-calc-dialog-event";
+ // user invoked action which requires Table Calc Dialog
+ NotificationId["TableCalcActivateDialog"] = "doc:table-calc-activate-dialog-event";
+ // event for the trend line dialog
+ NotificationId["UpdateTrendLineEditDialog"] = "doc:update-trend-line-edit-dialog-event";
+ // The table page cache has been refreshed; pages must be reloaded from the cache.
+ NotificationId["PageCacheRefresh"] = "doc:page-cache-refresh-event";
+ // The table page cache has expired and all resources have been released.
+ NotificationId["PageCacheExpired"] = "doc:page-cache-expired-event";
+ // All pages, identified by row/col, in the provided list have expired and should be reloaded.
+ NotificationId["PageCachePagesExpired"] = "doc:page-cache-pages-expired-event";
+ // All pages betweem the range (inclusive) in the provided list have expired and should be reloaded.
+ NotificationId["PageCachePageRangeExpired"] = "doc:page-cache-page-range-expired-event";
+ // Triggered when the user wants to reload an add-in instance.
+ NotificationId["ReloadAddIn"] = "doc:reload-add-in-event";
+ // Triggered when the selected marks have changed.
+ NotificationId["SelectionChanged"] = "doc:selection-changed-event";
+ // Triggered when the value of a parameter has changed. Emits the name and caption of the parameter
+ NotificationId["ParameterChanged"] = "doc:parameter-changed-event";
+ // Triggered when the filters have changed.
+ NotificationId["FilterChanged"] = "doc:filter-changed-event";
+ // Triggered when saved cluster needs to be recalculated.
+ NotificationId["ClusterRefitNotification"] = "doc:cluster-refit-notification-event";
+ // event for the detailed error dialog
+ NotificationId["UpdateDetailedErrorDialog"] = "doc:update-detailed-error-dialog-event";
+ // update the axis edit dialog
+ NotificationId["UpdateEditAxisDialog"] = "doc:update-edit-axis-dialog-event";
+ // notification to launch the hybrid UI showcase
+ NotificationId["LaunchHybridUIShowcase"] = "doc:launch-hybrid-uishowcase-event";
+ // notification of new echoed text for HybridUI showcase demo
+ NotificationId["HybridUIShowcaseEcho"] = "doc:hybrid-uishowcase-echo-event";
+ // event for the bin dialog
+ NotificationId["UpdateNumericBinEditDialog"] = "doc:update-numeric-bin-edit-dialog-event";
+ // Update for the rich text editor dialog
+ NotificationId["RichTextEditorDialog"] = "doc:rich-text-editor-dialog-event";
+ // event for the sort dialog
+ NotificationId["UpdateSortDialog"] = "doc:update-sort-dialog-event";
+ // a test event with a pres model
+ NotificationId["TestEventWithModel"] = "doc:test-event-with-model-event";
+ // a test event without a pres model
+ NotificationId["TestEventWithoutModel"] = "doc:test-event-without-model-event";
+ })(NotificationId = exports.NotificationId || (exports.NotificationId = {}));
+
+
+/***/ },
+/* 88 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Api = __webpack_require__(79);
+ var api_utils_1 = __webpack_require__(80);
+ var EnumMappings_1 = __webpack_require__(89);
+ /**
+ * Class containing helper methods for converting from PresLayerPresModels to their ApiPresModels equivalents
+ *
+ * @export
+ * @class PresLayerToApiConverter
+ */
+ var PresLayerToApiConverter = (function () {
+ function PresLayerToApiConverter() {
+ }
+ PresLayerToApiConverter.convertSheetPath = function (plSheetPath) {
+ var result = {
+ sheetName: plSheetPath.sheetName,
+ isDashboard: plSheetPath.isDashboard,
+ storyboard: plSheetPath.storyboard,
+ flipboardZoneID: plSheetPath.flipboardZoneId,
+ storyPointID: plSheetPath.storyPointId,
+ };
+ return result;
+ };
+ PresLayerToApiConverter.convertVisualId = function (plVisualId) {
+ var result = {
+ worksheet: plVisualId.worksheet,
+ dashboard: plVisualId.dashboard,
+ storyboard: plVisualId.storyboard,
+ flipboardZoneID: plVisualId.flipboardZoneId,
+ storyPointID: plVisualId.storyPointId,
+ };
+ return result;
+ };
+ PresLayerToApiConverter.convertExtensionLocator = function (plAddInLocator) {
+ var dashboardPath = undefined;
+ if (plAddInLocator.sheetPath) {
+ dashboardPath = PresLayerToApiConverter.convertSheetPath(plAddInLocator.sheetPath);
+ }
+ var result = {
+ instanceId: plAddInLocator.addInInstanceId,
+ dashboardPath: dashboardPath
+ };
+ return result;
+ };
+ PresLayerToApiConverter.convertDashboardInZones = function (plDashboard) {
+ var result = new Array();
+ for (var _i = 0, _a = Object.keys(plDashboard.zones); _i < _a.length; _i++) {
+ var zoneKey = _a[_i];
+ var zone = plDashboard.zones[zoneKey];
+ var apiZone = {
+ name: zone.zoneCommon.name,
+ zoneId: zone.zoneId,
+ zoneType: EnumMappings_1.PresLayerToApiEnumMappings.zoneType.convert(zone.zoneCommon.zoneType),
+ height: zone.zoneCommon.h,
+ width: zone.zoneCommon.w,
+ x: zone.zoneCommon.x,
+ y: zone.zoneCommon.y
+ };
+ result.push(apiZone);
+ }
+ return result;
+ };
+ PresLayerToApiConverter.convertDashboardInfo = function (plDashboardInfo) {
+ var result = {
+ zones: PresLayerToApiConverter.convertDashboardInZones(plDashboardInfo.dashboardPresModel),
+ name: plDashboardInfo.dashboardPresModel.sheetPath.sheetName,
+ extensionZoneId: plDashboardInfo.zoneId,
+ size: plDashboardInfo.dashboardPresModel.viewportSize
+ };
+ return result;
+ };
+ PresLayerToApiConverter.convertExtensionInstance = function (plAddInInstance) {
+ var result = {
+ url: plAddInInstance.addInRegistrationPresModel.url,
+ locator: PresLayerToApiConverter.convertExtensionLocator(plAddInInstance.addInLocatorPresModel)
+ };
+ return result;
+ };
+ PresLayerToApiConverter.convertExtensionEnivrionment = function (plAddInEnvironment) {
+ var result = {
+ extensionContext: EnumMappings_1.PresLayerToApiEnumMappings.extensionContext.convert(plAddInEnvironment.addInContext),
+ extensionMode: EnumMappings_1.PresLayerToApiEnumMappings.extensionMode.convert(plAddInEnvironment.addInMode),
+ extensionLocale: plAddInEnvironment.addInLocale,
+ extensionLanguage: plAddInEnvironment.addInLanguage,
+ tableauVersion: plAddInEnvironment.tableauVersion,
+ operatingSystem: plAddInEnvironment.operatingSystem,
+ apiVersion: plAddInEnvironment.apiVersion
+ };
+ return result;
+ };
+ PresLayerToApiConverter.convertExtensionSettingsInfo = function (plAddInSettings) {
+ var result = {
+ // addInSettings is undefined during bootstrap initialization
+ settingsValues: plAddInSettings.addInSettings || {}
+ };
+ return result;
+ };
+ PresLayerToApiConverter.convertExtensionBootstrapInfo = function (plBootstrapInfo) {
+ var result = {
+ extensionDashboardInfo: PresLayerToApiConverter.convertDashboardInfo(plBootstrapInfo.addInDashboardInfoPresModel),
+ extensionEnvironment: PresLayerToApiConverter.convertExtensionEnivrionment(plBootstrapInfo.addInEnvironmentPresModel),
+ extensionInstance: PresLayerToApiConverter.convertExtensionInstance(plBootstrapInfo.addInInstancePresModel),
+ extensionSettingsInfo: PresLayerToApiConverter.convertExtensionSettingsInfo(plBootstrapInfo.addInSettingsInfo)
+ };
+ return result;
+ };
+ PresLayerToApiConverter.convertFieldCaptionPair = function (plFieldCaptionPair) {
+ return plFieldCaptionPair.fn;
+ };
+ PresLayerToApiConverter.convertFilterEvent = function (plFilterEvent) {
+ var result = {
+ visualId: PresLayerToApiConverter.convertVisualId(plFilterEvent.visualIdPresModel),
+ fieldName: plFilterEvent.fieldCaption
+ };
+ return result;
+ };
+ PresLayerToApiConverter.convertDataSchema = function (dataSchema) {
+ var apiDataSources = {};
+ api_utils_1.Param.verifyValue(dataSchema, 'dataSchema');
+ api_utils_1.Param.verifyValue(dataSchema.dataSources, 'dataSchema.dataSources');
+ // Convert each pres layer datasource in the schema to an Api datasource
+ Object.keys(dataSchema.dataSources).forEach(function (key) {
+ // Skip the default Parameters datasource we receive from the platform.
+ if (dataSchema.dataSources[key].datasource !== PresLayerToApiConverter.PARAMETERS_DB_NAME) {
+ apiDataSources[key] = PresLayerToApiConverter.convertDataSource(dataSchema.dataSources[key]);
+ }
+ });
+ var schemaMap = PresLayerToApiConverter.convertWorksheetDataSchemaMap(dataSchema.worksheetDataSchemaMap);
+ var result = {
+ dataSources: apiDataSources,
+ worksheetDataSchemaMap: schemaMap,
+ };
+ return result;
+ };
+ PresLayerToApiConverter.convertDataSource = function (dataSource) {
+ var extractUpdateTime = (dataSource.extractUpdateTime === '') ? undefined : dataSource.extractUpdateTime;
+ var dataSourceFields = new Array();
+ api_utils_1.Param.verifyValue(dataSource, 'dataSource');
+ api_utils_1.Param.verifyValue(dataSource.fieldList, 'dataSchema.fieldList');
+ dataSource.fieldList.forEach(function (plField) {
+ // If the datasource contains hierarchies or folders, the base field will contain
+ // a list of the fields grouped beneath it, we are interested in those.
+ // Tableau does not support nested folders or hierarchies, so this does not need to be recursive.
+ var hierarchyModel = plField;
+ if (hierarchyModel.columnList) {
+ hierarchyModel.columnList.forEach(function (field) { return dataSourceFields.push(PresLayerToApiConverter.convertField(field)); });
+ }
+ else {
+ // This is a bit brittle for now, but this value is not exposed via the platform FieldType Enum.
+ if (plField.type !== 'field-folder' && plField.type !== 'dimension') {
+ dataSourceFields.push(PresLayerToApiConverter.convertField(plField));
+ }
+ }
+ });
+ var result = {
+ name: dataSource.datasourceCaption,
+ id: dataSource.datasource,
+ isExtract: (extractUpdateTime !== undefined),
+ extractUpdateTime: extractUpdateTime,
+ fields: dataSourceFields
+ };
+ return result;
+ };
+ PresLayerToApiConverter.convertWorksheetDataSchemaMap = function (schemaMap) {
+ var result = {};
+ Object.keys(schemaMap).forEach(function (key) {
+ // We need to remove any references to the "Parameters" datasource. This is treated as a separate
+ // datasource by the platform, but the Extensions API accesses Parameters directly.
+ var cleanReferencedDataSourceList = schemaMap[key].referencedDataSourceList.filter(function (dsName) {
+ return dsName !== PresLayerToApiConverter.PARAMETERS_DB_NAME;
+ });
+ var worksheetDataSourceInfo = {
+ primaryDataSource: schemaMap[key].primaryDatasource,
+ referencedDataSourceList: cleanReferencedDataSourceList
+ };
+ result[key] = worksheetDataSourceInfo;
+ });
+ return result;
+ };
+ PresLayerToApiConverter.convertField = function (plField) {
+ var fieldColumn = plField;
+ var groupColumn = plField;
+ var aggregation = Api.FieldAggregationType.None;
+ var role = Api.FieldRoleType.Unknown;
+ var isCalculated = false;
+ // We expect that every FieldPresModel we get back from the command that returns FieldPresModels
+ // is actually an instance of the derived FieldColumnPresModel.
+ if (fieldColumn.aggregation && fieldColumn.fieldRole) {
+ aggregation = EnumMappings_1.PresLayerToApiEnumMappings.fieldAggregationType.convert(fieldColumn.aggregation);
+ role = EnumMappings_1.PresLayerToApiEnumMappings.fieldRoleType.convert(fieldColumn.fieldRole);
+ isCalculated = fieldColumn.isCalculated || false;
+ }
+ else {
+ throw new Error('Unexpected Internal Error: field pres model is missing expected properties.');
+ }
+ var result = {
+ name: plField.description,
+ id: plField.name,
+ description: plField.userCaption,
+ aggregation: aggregation,
+ isHidden: !!(plField.isHidden),
+ isGenerated: plField.isGenerated,
+ isCalculatedField: isCalculated,
+ role: role,
+ isCombinedField: !!(groupColumn.isCombinedField)
+ };
+ return result;
+ };
+ PresLayerToApiConverter.convertJoinDescription = function (plJoinDescription) {
+ api_utils_1.Param.verifyValue(plJoinDescription, 'plJoinDescription');
+ var apiTables = plJoinDescription.joinTableInfos.map(function (joinTable) {
+ var apiTable = {
+ name: joinTable.tableAlias,
+ id: joinTable.tableName,
+ customSQL: (joinTable.isCustomSql) ? joinTable.sqlQuery : undefined,
+ connectionClassName: joinTable.connectionClassName,
+ connectionId: joinTable.connectionName
+ };
+ return apiTable;
+ });
+ var result = {
+ tables: apiTables
+ };
+ return result;
+ };
+ PresLayerToApiConverter.convertConnectionDescrptionSummaries = function (plConnectionDescription) {
+ return plConnectionDescription.map(function (plSummary) {
+ var apiConnection = {
+ name: plSummary.connectionDescriptionLabel,
+ id: plSummary.connectionName,
+ type: plSummary.connectionTypeLabel,
+ serverURI: plSummary.connectionUri
+ };
+ return apiConnection;
+ });
+ };
+ PresLayerToApiConverter.PARAMETERS_DB_NAME = 'Parameters';
+ return PresLayerToApiConverter;
+ }());
+ exports.PresLayerToApiConverter = PresLayerToApiConverter;
+
+
+/***/ },
+/* 89 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_internal_contract_1 = __webpack_require__(79);
+ var api_utils_1 = __webpack_require__(80);
+ var Enums = __webpack_require__(90);
+ /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */
+ var PresLayerToApiEnumMappings = (function () {
+ function PresLayerToApiEnumMappings() {
+ }
+ PresLayerToApiEnumMappings.zoneType = new api_utils_1.EnumConverter((_a = {},
+ _a[Enums.ZoneType.ZT_Invalid] = api_internal_contract_1.DashboardObjectType.Blank,
+ _a[Enums.ZoneType.ZT_Viz] = api_internal_contract_1.DashboardObjectType.Worksheet,
+ _a[Enums.ZoneType.ZT_ColorLegend] = api_internal_contract_1.DashboardObjectType.Legend,
+ _a[Enums.ZoneType.ZT_ShapeLegend] = api_internal_contract_1.DashboardObjectType.Legend,
+ _a[Enums.ZoneType.ZT_SizeLegend] = api_internal_contract_1.DashboardObjectType.Legend,
+ _a[Enums.ZoneType.ZT_MapLegend] = api_internal_contract_1.DashboardObjectType.Legend,
+ _a[Enums.ZoneType.ZT_QuickFilter] = api_internal_contract_1.DashboardObjectType.QuickFilter,
+ _a[Enums.ZoneType.ZT_Highlighter] = api_internal_contract_1.DashboardObjectType.Blank,
+ _a[Enums.ZoneType.ZT_CurrPage] = api_internal_contract_1.DashboardObjectType.PageFilter,
+ _a[Enums.ZoneType.ZT_Empty] = api_internal_contract_1.DashboardObjectType.Blank,
+ _a[Enums.ZoneType.ZT_Title] = api_internal_contract_1.DashboardObjectType.Title,
+ _a[Enums.ZoneType.ZT_Text] = api_internal_contract_1.DashboardObjectType.Text,
+ _a[Enums.ZoneType.ZT_Bitmap] = api_internal_contract_1.DashboardObjectType.Image,
+ _a[Enums.ZoneType.ZT_Web] = api_internal_contract_1.DashboardObjectType.WebPage,
+ _a[Enums.ZoneType.ZT_AddIn] = api_internal_contract_1.DashboardObjectType.Extension,
+ _a[Enums.ZoneType.ZT_ParamCtrl] = api_internal_contract_1.DashboardObjectType.ParameterControl,
+ _a[Enums.ZoneType.ZT_FlipboardNav] = api_internal_contract_1.DashboardObjectType.Blank,
+ _a[Enums.ZoneType.ZT_Flipboard] = api_internal_contract_1.DashboardObjectType.Blank,
+ _a[Enums.ZoneType.ZT_LayoutBasic] = api_internal_contract_1.DashboardObjectType.Blank,
+ _a[Enums.ZoneType.ZT_LayoutFlow] = api_internal_contract_1.DashboardObjectType.Blank,
+ _a[Enums.ZoneType.ZT_LayoutFreeForm] = api_internal_contract_1.DashboardObjectType.Blank,
+ _a[Enums.ZoneType.ZT_End] = api_internal_contract_1.DashboardObjectType.Blank,
+ _a[Enums.ZoneType.ZT_Button] = api_internal_contract_1.DashboardObjectType.Blank,
+ _a), api_internal_contract_1.DashboardObjectType.Blank);
+ PresLayerToApiEnumMappings.extensionContext = new api_utils_1.EnumConverter((_b = {},
+ _b[Enums.AddInContext.Unknown] = api_internal_contract_1.ExtensionContext.Unknown,
+ _b[Enums.AddInContext.Desktop] = api_internal_contract_1.ExtensionContext.Desktop,
+ _b[Enums.AddInContext.Server] = api_internal_contract_1.ExtensionContext.Server,
+ _b));
+ PresLayerToApiEnumMappings.extensionMode = new api_utils_1.EnumConverter((_c = {},
+ _c[Enums.AddInMode.Unknown] = api_internal_contract_1.ExtensionMode.Unknown,
+ _c[Enums.AddInMode.Authoring] = api_internal_contract_1.ExtensionMode.Authoring,
+ _c[Enums.AddInMode.Viewing] = api_internal_contract_1.ExtensionMode.Viewing,
+ _c));
+ PresLayerToApiEnumMappings.dataType = new api_utils_1.EnumConverter((_d = {},
+ _d[Enums.DataType.DT_BOOLEAN] = api_internal_contract_1.DataType.Bool,
+ _d[Enums.DataType.DT_DATE] = api_internal_contract_1.DataType.Date,
+ _d[Enums.DataType.DT_DATETIME] = api_internal_contract_1.DataType.DateTime,
+ _d[Enums.DataType.DT_INTEGER] = api_internal_contract_1.DataType.Int,
+ _d[Enums.DataType.DT_REAL] = api_internal_contract_1.DataType.Float,
+ _d[Enums.DataType.DT_STRING] = api_internal_contract_1.DataType.String,
+ _d[Enums.DataType.DT_SPATIAL] = api_internal_contract_1.DataType.Spatial,
+ _d));
+ PresLayerToApiEnumMappings.fieldAggregationType = new api_utils_1.EnumConverter((_e = {},
+ _e[Enums.AggType.AGG_ATTR] = api_internal_contract_1.FieldAggregationType.Attr,
+ _e[Enums.AggType.AGG_AVG] = api_internal_contract_1.FieldAggregationType.Avg,
+ _e[Enums.AggType.AGG_COUNT] = api_internal_contract_1.FieldAggregationType.Count,
+ _e[Enums.AggType.AGG_COUNTD] = api_internal_contract_1.FieldAggregationType.Countd,
+ _e[Enums.AggType.AGG_DAY] = api_internal_contract_1.FieldAggregationType.Day,
+ _e[Enums.AggType.AGG_END] = api_internal_contract_1.FieldAggregationType.End,
+ _e[Enums.AggType.AGG_HOUR] = api_internal_contract_1.FieldAggregationType.Hour,
+ _e[Enums.AggType.AGG_INOUT] = api_internal_contract_1.FieldAggregationType.InOut,
+ _e[Enums.AggType.AGG_KURTOSIS] = api_internal_contract_1.FieldAggregationType.Kurtosis,
+ _e[Enums.AggType.AGG_MAX] = api_internal_contract_1.FieldAggregationType.Max,
+ _e[Enums.AggType.AGG_MDY] = api_internal_contract_1.FieldAggregationType.Mdy,
+ _e[Enums.AggType.AGG_MEDIAN] = api_internal_contract_1.FieldAggregationType.Median,
+ _e[Enums.AggType.AGG_MIN] = api_internal_contract_1.FieldAggregationType.Min,
+ _e[Enums.AggType.AGG_MINUTE] = api_internal_contract_1.FieldAggregationType.Minute,
+ _e[Enums.AggType.AGG_MONTHYEAR] = api_internal_contract_1.FieldAggregationType.MonthYear,
+ _e[Enums.AggType.AGG_NONE] = api_internal_contract_1.FieldAggregationType.None,
+ _e[Enums.AggType.AGG_QTR] = api_internal_contract_1.FieldAggregationType.Qtr,
+ _e[Enums.AggType.AGG_QUART1] = api_internal_contract_1.FieldAggregationType.Quart1,
+ _e[Enums.AggType.AGG_QUART3] = api_internal_contract_1.FieldAggregationType.Quart3,
+ _e[Enums.AggType.AGG_SECOND] = api_internal_contract_1.FieldAggregationType.Second,
+ _e[Enums.AggType.AGG_SKEWNESS] = api_internal_contract_1.FieldAggregationType.Skewness,
+ _e[Enums.AggType.AGG_STDEV] = api_internal_contract_1.FieldAggregationType.Stdev,
+ _e[Enums.AggType.AGG_STDEVP] = api_internal_contract_1.FieldAggregationType.Stdevp,
+ _e[Enums.AggType.AGG_SUM] = api_internal_contract_1.FieldAggregationType.Sum,
+ _e[Enums.AggType.TRUNC_DAY] = api_internal_contract_1.FieldAggregationType.TruncDay,
+ _e[Enums.AggType.TRUNC_HOUR] = api_internal_contract_1.FieldAggregationType.TruncHour,
+ _e[Enums.AggType.TRUNC_MINUTE] = api_internal_contract_1.FieldAggregationType.TruncMinute,
+ _e[Enums.AggType.TRUNC_MONTH] = api_internal_contract_1.FieldAggregationType.TruncMonth,
+ _e[Enums.AggType.TRUNC_QTR] = api_internal_contract_1.FieldAggregationType.TruncQtr,
+ _e[Enums.AggType.TRUNC_SECOND] = api_internal_contract_1.FieldAggregationType.TruncSecond,
+ _e[Enums.AggType.TRUNC_WEEK] = api_internal_contract_1.FieldAggregationType.TruncWeek,
+ _e[Enums.AggType.TRUNC_YEAR] = api_internal_contract_1.FieldAggregationType.TruncYear,
+ _e[Enums.AggType.AGG_USER] = api_internal_contract_1.FieldAggregationType.User,
+ _e[Enums.AggType.AGG_VAR] = api_internal_contract_1.FieldAggregationType.Var,
+ _e[Enums.AggType.AGG_VARP] = api_internal_contract_1.FieldAggregationType.Varp,
+ _e[Enums.AggType.AGG_WEEK] = api_internal_contract_1.FieldAggregationType.Week,
+ _e[Enums.AggType.AGG_WEEKDAY] = api_internal_contract_1.FieldAggregationType.Weekday,
+ _e[Enums.AggType.AGG_YEAR] = api_internal_contract_1.FieldAggregationType.Year,
+ _e));
+ PresLayerToApiEnumMappings.fieldRoleType = new api_utils_1.EnumConverter((_f = {},
+ _f[Enums.FieldRole.ROLE_DIMENSION] = api_internal_contract_1.FieldRoleType.Dimension,
+ _f[Enums.FieldRole.ROLE_MEASURE] = api_internal_contract_1.FieldRoleType.Measure,
+ _f));
+ PresLayerToApiEnumMappings.parameterTypesDomainType = new api_utils_1.EnumConverter((_g = {},
+ _g[Enums.ParameterTypesDomainType.Domain_Any] = api_internal_contract_1.DomainRestrictionType.All,
+ _g[Enums.ParameterTypesDomainType.Domain_List] = api_internal_contract_1.DomainRestrictionType.List,
+ _g[Enums.ParameterTypesDomainType.Domain_Range] = api_internal_contract_1.DomainRestrictionType.Range,
+ _g));
+ PresLayerToApiEnumMappings.dateStepPeriod = new api_utils_1.EnumConverter((_h = {},
+ _h[Enums.DatePeriodType.PeriodYear] = api_internal_contract_1.DateStepPeriod.Years,
+ _h[Enums.DatePeriodType.PeriodQuarter] = api_internal_contract_1.DateStepPeriod.Quarters,
+ _h[Enums.DatePeriodType.PeriodMonth] = api_internal_contract_1.DateStepPeriod.Months,
+ _h[Enums.DatePeriodType.PeriodWeek] = api_internal_contract_1.DateStepPeriod.Weeks,
+ _h[Enums.DatePeriodType.PeriodDay] = api_internal_contract_1.DateStepPeriod.Days,
+ _h[Enums.DatePeriodType.PeriodHour] = api_internal_contract_1.DateStepPeriod.Hours,
+ _h[Enums.DatePeriodType.PeriodMinute] = api_internal_contract_1.DateStepPeriod.Minutes,
+ _h[Enums.DatePeriodType.PeriodSecond] = api_internal_contract_1.DateStepPeriod.Seconds,
+ _h));
+ PresLayerToApiEnumMappings.dateRangeType = new api_utils_1.EnumConverter((_j = {},
+ _j[Enums.FiltersRelativeDateRangeType.RangeCurrent] = api_internal_contract_1.DateRangeType.Current,
+ _j[Enums.FiltersRelativeDateRangeType.RangeCurrentToDate] = api_internal_contract_1.DateRangeType.ToDate,
+ _j[Enums.FiltersRelativeDateRangeType.RangeLast1] = api_internal_contract_1.DateRangeType.Last,
+ _j[Enums.FiltersRelativeDateRangeType.RangeLastN] = api_internal_contract_1.DateRangeType.LastN,
+ _j[Enums.FiltersRelativeDateRangeType.RangeNext1] = api_internal_contract_1.DateRangeType.Next,
+ _j[Enums.FiltersRelativeDateRangeType.RangeNextN] = api_internal_contract_1.DateRangeType.NextN,
+ _j));
+ PresLayerToApiEnumMappings.filterDomainType = new api_utils_1.EnumConverter((_k = {},
+ _k[Enums.FiltersDomainType.Relevant] = api_internal_contract_1.FilterDomainType.Relevant,
+ _k[Enums.FiltersDomainType.Database] = api_internal_contract_1.FilterDomainType.Database,
+ _k));
+ return PresLayerToApiEnumMappings;
+ }());
+ exports.PresLayerToApiEnumMappings = PresLayerToApiEnumMappings;
+ var ApiToPresLayerEnumMappings = (function () {
+ function ApiToPresLayerEnumMappings() {
+ }
+ ApiToPresLayerEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_a = {},
+ _a[api_internal_contract_1.FilterUpdateType.Add] = Enums.FilterUpdateType.ADD,
+ _a[api_internal_contract_1.FilterUpdateType.All] = Enums.FilterUpdateType.ALL,
+ _a[api_internal_contract_1.FilterUpdateType.Replace] = Enums.FilterUpdateType.REPLACE,
+ _a[api_internal_contract_1.FilterUpdateType.Remove] = Enums.FilterUpdateType.REMOVE,
+ _a));
+ ApiToPresLayerEnumMappings.nullOption = new api_utils_1.EnumConverter((_b = {},
+ _b[api_internal_contract_1.FilterNullOption.AllValues] = Enums.FiltersQuantitativeIncludedValues.All,
+ _b[api_internal_contract_1.FilterNullOption.NonNullValues] = Enums.FiltersQuantitativeIncludedValues.NonNull,
+ _b[api_internal_contract_1.FilterNullOption.NullValues] = Enums.FiltersQuantitativeIncludedValues.Null,
+ _b));
+ ApiToPresLayerEnumMappings.filterDomainType = new api_utils_1.EnumConverter((_c = {},
+ _c[api_internal_contract_1.FilterDomainType.Relevant] = Enums.FiltersDomainType.Relevant,
+ _c[api_internal_contract_1.FilterDomainType.Database] = Enums.FiltersDomainType.Database,
+ _c));
+ return ApiToPresLayerEnumMappings;
+ }());
+ exports.ApiToPresLayerEnumMappings = ApiToPresLayerEnumMappings;
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _a, _b, _c;
+ /* tslint:enable:typedef */
+
+
+/***/ },
+/* 90 */
+/***/ function(module, exports) {
+
+ "use strict";
+ /* tslint:disable */
+ // -----------------------------------------------------------------------------
+ //
+ // This file is the copyrighted property of Tableau Software and is protected
+ // by registered patents and other applicable U.S. and international laws and
+ // regulations.
+ //
+ // Unlicensed use of the contents of this file is prohibited. Please refer to
+ // the NOTICES.txt file for further details.
+ //
+ // -----------------------------------------------------------------------------
+ // WARNING: Computer generated file. Do not hand modify.
+ // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/enum-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-enums.data']
+ Object.defineProperty(exports, "__esModule", { value: true });
+ //
+ var DataScaling;
+ (function (DataScaling) {
+ //
+ DataScaling["SCALING_NONE"] = "none";
+ //
+ DataScaling["SCALING_STANDARDIZED"] = "standardized";
+ //
+ DataScaling["SCALING_NORMALIZED"] = "normalized";
+ })(DataScaling = exports.DataScaling || (exports.DataScaling = {}));
+ //
+ var ForecastModelType;
+ (function (ForecastModelType) {
+ //
+ ForecastModelType["ForecastModelTypeAutoSeason"] = "auto-season";
+ //
+ ForecastModelType["ForecastModelTypeAuto"] = "auto";
+ //
+ ForecastModelType["ForecastModelTypeCustom"] = "custom";
+ })(ForecastModelType = exports.ForecastModelType || (exports.ForecastModelType = {}));
+ //
+ var ForecastRangeType;
+ (function (ForecastRangeType) {
+ //
+ ForecastRangeType["ForecastRangeTypeAuto"] = "auto";
+ //
+ ForecastRangeType["ForecastRangeTypeNext"] = "next";
+ //
+ ForecastRangeType["ForecastRangeTypeEndOf"] = "end-of";
+ })(ForecastRangeType = exports.ForecastRangeType || (exports.ForecastRangeType = {}));
+ //
+ var ForecastStatus;
+ (function (ForecastStatus) {
+ //
+ ForecastStatus["FS_VALID"] = "fs-valid";
+ //
+ ForecastStatus["FS_INVALID_DATETIME"] = "fs-invalid-datetime";
+ //
+ ForecastStatus["FS_INVALID_RESPONSE"] = "fs-invalid-response";
+ //
+ ForecastStatus["FS_NEED_MORE_DATA"] = "fs-need-more-data";
+ //
+ ForecastStatus["FS_TIME_SERIES_TOO_SHORT"] = "fs-time-series-too-short";
+ //
+ ForecastStatus["FS_TIME_SERIES_IRREGULAR"] = "fs-time-series-irregular";
+ //
+ ForecastStatus["FS_NULL_DATETIME"] = "fs-null-datetime";
+ //
+ ForecastStatus["FS_NULL_RESPONSE"] = "fs-null-response";
+ //
+ ForecastStatus["FS_METADATA_INVALID"] = "fs-metadata-invalid";
+ //
+ ForecastStatus["FS_NO_RESPONSE"] = "fs-no-response";
+ //
+ ForecastStatus["FS_EXCESS_DATA"] = "fs-excess-data";
+ //
+ ForecastStatus["FS_EXCESS_PARTITIONS"] = "fs-excess-partitions";
+ //
+ ForecastStatus["FS_DIMENSION_INVALID"] = "fs-dimension-invalid";
+ //
+ ForecastStatus["FS_TABLECALC_INVALID"] = "fs-tablecalc-invalid";
+ //
+ ForecastStatus["FS_TIME_SERIES_TOO_IRREGULAR"] = "fs-time-series-too-irregular";
+ //
+ ForecastStatus["FS_AGGREGATE_FILTER"] = "fs-aggregate-filter";
+ //
+ ForecastStatus["FS_DISAGGREGATE_RESPONSE"] = "fs-disaggregate-response";
+ //
+ ForecastStatus["FS_PERCENTAGE_INVALID"] = "fs-percentage-invalid";
+ //
+ ForecastStatus["FS_TOTAL_INVALID"] = "fs-total-invalid";
+ //
+ ForecastStatus["FS_EXCESS_DATETIME"] = "fs-excess-datetime";
+ //
+ ForecastStatus["FS_DATE_AGG_INCOMPATIBLE"] = "fs-date-agg-incompatible";
+ //
+ ForecastStatus["FS_TIME_SERIES_NOT_POSITIVE"] = "fs-time-series-not-positive";
+ //
+ ForecastStatus["FS_REQUESTED_MODEL_INVALID"] = "fs-requested-model-invalid";
+ //
+ ForecastStatus["FS_TOO_SHORT_FOR_SEASON"] = "fs-too-short-for-season";
+ //
+ ForecastStatus["FS_REQUESTED_MODEL_UNSTABLE"] = "fs-requested-model-unstable";
+ //
+ ForecastStatus["FS_UNDEFINED"] = "fs-undefined";
+ })(ForecastStatus = exports.ForecastStatus || (exports.ForecastStatus = {}));
+ //
+ var StyleAttribute;
+ (function (StyleAttribute) {
+ //
+ StyleAttribute["saAlternateText"] = "saAlternateText";
+ //
+ StyleAttribute["saAltMarkColor"] = "saAltMarkColor";
+ //
+ StyleAttribute["saAspect"] = "saAspect";
+ //
+ StyleAttribute["saAutoSubtitle"] = "saAutoSubtitle";
+ //
+ StyleAttribute["saBackgroundColor"] = "saBackgroundColor";
+ //
+ StyleAttribute["saBackgroundTransparency"] = "saBackgroundTransparency";
+ //
+ StyleAttribute["saBandSize"] = "saBandSize";
+ //
+ StyleAttribute["saBandColor"] = "saBandColor";
+ //
+ StyleAttribute["saBandLevel"] = "saBandLevel";
+ //
+ StyleAttribute["saBodyType"] = "saBodyType";
+ //
+ StyleAttribute["saBorderColor"] = "saBorderColor";
+ //
+ StyleAttribute["saBorderColorTop"] = "saBorderColorTop";
+ //
+ StyleAttribute["saBorderColorRight"] = "saBorderColorRight";
+ //
+ StyleAttribute["saBorderColorBottom"] = "saBorderColorBottom";
+ //
+ StyleAttribute["saBorderColorLeft"] = "saBorderColorLeft";
+ //
+ StyleAttribute["saBorderStyle"] = "saBorderStyle";
+ //
+ StyleAttribute["saBorderStyleTop"] = "saBorderStyleTop";
+ //
+ StyleAttribute["saBorderStyleRight"] = "saBorderStyleRight";
+ //
+ StyleAttribute["saBorderStyleBottom"] = "saBorderStyleBottom";
+ //
+ StyleAttribute["saBorderStyleLeft"] = "saBorderStyleLeft";
+ //
+ StyleAttribute["saBorderWidth"] = "saBorderWidth";
+ //
+ StyleAttribute["saBorderWidthTop"] = "saBorderWidthTop";
+ //
+ StyleAttribute["saBorderWidthRight"] = "saBorderWidthRight";
+ //
+ StyleAttribute["saBorderWidthBottom"] = "saBorderWidthBottom";
+ //
+ StyleAttribute["saBorderWidthLeft"] = "saBorderWidthLeft";
+ //
+ StyleAttribute["saBoxplotStyle"] = "saBoxplotStyle";
+ //
+ StyleAttribute["saBreakOnSpecial"] = "saBreakOnSpecial";
+ //
+ StyleAttribute["saCell"] = "saCell";
+ //
+ StyleAttribute["saCellW"] = "saCellW";
+ //
+ StyleAttribute["saCellH"] = "saCellH";
+ //
+ StyleAttribute["saCellQ"] = "saCellQ";
+ //
+ StyleAttribute["saCellQMark"] = "saCellQMark";
+ //
+ StyleAttribute["saColor"] = "saColor";
+ //
+ StyleAttribute["saColorMode"] = "saColorMode";
+ //
+ StyleAttribute["saColLevels"] = "saColLevels";
+ //
+ StyleAttribute["saColVertLevels"] = "saColVertLevels";
+ //
+ StyleAttribute["saColHorizHeight"] = "saColHorizHeight";
+ //
+ StyleAttribute["saColVertHeight"] = "saColVertHeight";
+ // Deprecated
+ StyleAttribute["saColHeight"] = "saColHeight";
+ //
+ StyleAttribute["saColWidth"] = "saColWidth";
+ //
+ StyleAttribute["saContent"] = "saContent";
+ //
+ StyleAttribute["saDisplayFieldLabels"] = "saDisplayFieldLabels";
+ //
+ StyleAttribute["saDisplayHeader"] = "saDisplayHeader";
+ //
+ StyleAttribute["saDisplayAlternateText"] = "saDisplayAlternateText";
+ //
+ StyleAttribute["saDivLevel"] = "saDivLevel";
+ //
+ StyleAttribute["saEnabled"] = "saEnabled";
+ //
+ StyleAttribute["saFillAboveColor"] = "saFillAboveColor";
+ //
+ StyleAttribute["saFillBelowColor"] = "saFillBelowColor";
+ //
+ StyleAttribute["saFillColor"] = "saFillColor";
+ //
+ StyleAttribute["saFogBGColor"] = "saFogBGColor";
+ //
+ StyleAttribute["saFogDesaturationWithoutSelection"] = "saFogDesaturationWithoutSelection";
+ //
+ StyleAttribute["saFogDesaturationWithSelection"] = "saFogDesaturationWithSelection";
+ //
+ StyleAttribute["saFont"] = "saFont";
+ //
+ StyleAttribute["saFontFamily"] = "saFontFamily";
+ //
+ StyleAttribute["saFontSize"] = "saFontSize";
+ //
+ StyleAttribute["saFontStyle"] = "saFontStyle";
+ //
+ StyleAttribute["saFontWeight"] = "saFontWeight";
+ //
+ StyleAttribute["saGeographicAreaType"] = "saGeographicAreaType";
+ //
+ StyleAttribute["saHAlign"] = "saHAlign";
+ //
+ StyleAttribute["saHaloColor"] = "saHaloColor";
+ //
+ StyleAttribute["saHaloColorSelected"] = "saHaloColorSelected";
+ //
+ StyleAttribute["saHasFill"] = "saHasFill";
+ //
+ StyleAttribute["saHasHalo"] = "saHasHalo";
+ // Deprecated
+ StyleAttribute["saHasLabel"] = "saHasLabel";
+ //
+ StyleAttribute["saHasStroke"] = "saHasStroke";
+ //
+ StyleAttribute["saHeight"] = "saHeight";
+ //
+ StyleAttribute["saHeightHeader"] = "saHeightHeader";
+ //
+ StyleAttribute["saHighlightLegend"] = "saHighlightLegend";
+ //
+ StyleAttribute["saHnaxis"] = "saHnaxis";
+ //
+ StyleAttribute["saHnlabel"] = "saHnlabel";
+ //
+ StyleAttribute["saInTooltip"] = "saInTooltip";
+ //
+ StyleAttribute["saLineEnd"] = "saLineEnd";
+ //
+ StyleAttribute["saLineEndSize"] = "saLineEndSize";
+ //
+ StyleAttribute["saLineInterpolation"] = "saLineInterpolation";
+ //
+ StyleAttribute["saLineMarkerPosition"] = "saLineMarkerPosition";
+ //
+ StyleAttribute["saLinePattern"] = "saLinePattern";
+ //
+ StyleAttribute["saLinePatternOnly"] = "saLinePatternOnly";
+ //
+ StyleAttribute["saLineVisibility"] = "saLineVisibility";
+ //
+ StyleAttribute["saMap"] = "saMap";
+ //
+ StyleAttribute["saMapStyle"] = "saMapStyle";
+ //
+ StyleAttribute["saMargin"] = "saMargin";
+ //
+ StyleAttribute["saMarginTop"] = "saMarginTop";
+ //
+ StyleAttribute["saMarginRight"] = "saMarginRight";
+ //
+ StyleAttribute["saMarginBottom"] = "saMarginBottom";
+ //
+ StyleAttribute["saMarginLeft"] = "saMarginLeft";
+ //
+ StyleAttribute["saMarkColor"] = "saMarkColor";
+ //
+ StyleAttribute["saMarkTransparency"] = "saMarkTransparency";
+ //
+ StyleAttribute["saMarkLabelsShow"] = "saMarkLabelsShow";
+ //
+ StyleAttribute["saRunningOrderLabelsShow"] = "saRunningOrderLabelsShow";
+ //
+ StyleAttribute["saMarkLabelsMode"] = "saMarkLabelsMode";
+ //
+ StyleAttribute["saMarkLabelsCull"] = "saMarkLabelsCull";
+ //
+ StyleAttribute["saMarkLabelsLineEndFirst"] = "saMarkLabelsLineEndFirst";
+ //
+ StyleAttribute["saMarkLabelsLineEndLast"] = "saMarkLabelsLineEndLast";
+ //
+ StyleAttribute["saMarkLabelsRangeMin"] = "saMarkLabelsRangeMin";
+ //
+ StyleAttribute["saMarkLabelsRangeMax"] = "saMarkLabelsRangeMax";
+ //
+ StyleAttribute["saMarkLabelsRangeScope"] = "saMarkLabelsRangeScope";
+ //
+ StyleAttribute["saMarkLabelsRangeField"] = "saMarkLabelsRangeField";
+ //
+ StyleAttribute["saMarkMarkersMode"] = "saMarkMarkersMode";
+ //
+ StyleAttribute["saMaxHeight"] = "saMaxHeight";
+ //
+ StyleAttribute["saMaxFontSize"] = "saMaxFontSize";
+ //
+ StyleAttribute["saMaxStrokeWidth"] = "saMaxStrokeWidth";
+ //
+ StyleAttribute["saMaxWidth"] = "saMaxWidth";
+ //
+ StyleAttribute["saMidStrokeWidth"] = "saMidStrokeWidth";
+ //
+ StyleAttribute["saMinHeight"] = "saMinHeight";
+ //
+ StyleAttribute["saMinFontSize"] = "saMinFontSize";
+ //
+ StyleAttribute["saMinLength"] = "saMinLength";
+ //
+ StyleAttribute["saMinMapSize"] = "saMinMapSize";
+ //
+ StyleAttribute["saMinSize"] = "saMinSize";
+ //
+ StyleAttribute["saMinStrokeWidth"] = "saMinStrokeWidth";
+ //
+ StyleAttribute["saMinWidth"] = "saMinWidth";
+ //
+ StyleAttribute["saNonhighlightColor"] = "saNonhighlightColor";
+ //
+ StyleAttribute["saOmitOnSpecial"] = "saOmitOnSpecial";
+ //
+ StyleAttribute["saOpacity"] = "saOpacity";
+ //
+ StyleAttribute["saOrientation"] = "saOrientation";
+ //
+ StyleAttribute["saPadding"] = "saPadding";
+ //
+ StyleAttribute["saPaddingTop"] = "saPaddingTop";
+ //
+ StyleAttribute["saPaddingRight"] = "saPaddingRight";
+ //
+ StyleAttribute["saPaddingBottom"] = "saPaddingBottom";
+ //
+ StyleAttribute["saPaddingLeft"] = "saPaddingLeft";
+ //
+ StyleAttribute["saPalette"] = "saPalette";
+ //
+ StyleAttribute["saRenderFoldReversed"] = "saRenderFoldReversed";
+ //
+ StyleAttribute["saReversePalette"] = "saReversePalette";
+ //
+ StyleAttribute["saRounding"] = "saRounding";
+ //
+ StyleAttribute["saRowHorizLevels"] = "saRowHorizLevels";
+ //
+ StyleAttribute["saRowHorizWidth"] = "saRowHorizWidth";
+ //
+ StyleAttribute["saRowLevels"] = "saRowLevels";
+ //
+ StyleAttribute["saRowVertWidth"] = "saRowVertWidth";
+ //
+ StyleAttribute["saSeparator"] = "saSeparator";
+ //
+ StyleAttribute["saShape"] = "saShape";
+ // Deprecated
+ StyleAttribute["saShowLabels"] = "saShowLabels";
+ //
+ StyleAttribute["saSize"] = "saSize";
+ //
+ StyleAttribute["saSizeBar"] = "saSizeBar";
+ //
+ StyleAttribute["saSmartAutoAlignment"] = "saSmartAutoAlignment";
+ //
+ StyleAttribute["saSpace"] = "saSpace";
+ //
+ StyleAttribute["saStrokeColor"] = "saStrokeColor";
+ //
+ StyleAttribute["saStrokeSize"] = "saStrokeSize";
+ //
+ StyleAttribute["saSubtitle"] = "saSubtitle";
+ //
+ StyleAttribute["saTextAlign"] = "saTextAlign";
+ //
+ StyleAttribute["saTextAlignDefault"] = "saTextAlignDefault";
+ //
+ StyleAttribute["saTextDecoration"] = "saTextDecoration";
+ //
+ StyleAttribute["saTextIndent"] = "saTextIndent";
+ //
+ StyleAttribute["saTextOrientation"] = "saTextOrientation";
+ //
+ StyleAttribute["saTextFormat"] = "saTextFormat";
+ //
+ StyleAttribute["saTickColor"] = "saTickColor";
+ //
+ StyleAttribute["saTickLength"] = "saTickLength";
+ // Deprecated
+ StyleAttribute["saTickSpacing"] = "saTickSpacing";
+ //
+ StyleAttribute["saTitle"] = "saTitle";
+ //
+ StyleAttribute["saTotalLabel"] = "saTotalLabel";
+ //
+ StyleAttribute["saVAlign"] = "saVAlign";
+ //
+ StyleAttribute["saVerticalAlign"] = "saVerticalAlign";
+ //
+ StyleAttribute["saVerticalAlignDefault"] = "saVerticalAlignDefault";
+ //
+ StyleAttribute["saVnaxis"] = "saVnaxis";
+ //
+ StyleAttribute["saVnlabel"] = "saVnlabel";
+ //
+ StyleAttribute["saWarnOnSpecial"] = "saWarnOnSpecial";
+ //
+ StyleAttribute["saWashout"] = "saWashout";
+ //
+ StyleAttribute["saWhiskerEnd"] = "saWhiskerEnd";
+ //
+ StyleAttribute["saWhiskerStrokeColor"] = "saWhiskerStrokeColor";
+ //
+ StyleAttribute["saWhiskerStrokeSize"] = "saWhiskerStrokeSize";
+ //
+ StyleAttribute["saWidth"] = "saWidth";
+ //
+ StyleAttribute["saWidthHeader"] = "saWidthHeader";
+ //
+ StyleAttribute["saWrap"] = "saWrap";
+ //
+ StyleAttribute["saZoom"] = "saZoom";
+ // Special attributes used for matching
+ StyleAttribute["saNone"] = "saNone";
+ // Special attributes used for matching
+ StyleAttribute["saAny"] = "saAny";
+ })(StyleAttribute = exports.StyleAttribute || (exports.StyleAttribute = {}));
+ // lowest bit of enum value denotes two-tone styles; newly added styles should follow this pattern.
+ var BoxplotStyle;
+ (function (BoxplotStyle) {
+ // mask for checking if a style is two-tone
+ BoxplotStyle["BoxplotStyleTwoTone"] = "two-tone";
+ //
+ BoxplotStyle["BoxplotStyleModern"] = "modern";
+ //
+ BoxplotStyle["BoxplotStyleGlass"] = "glass";
+ //
+ BoxplotStyle["BoxplotStyleClassic"] = "classic";
+ //
+ BoxplotStyle["BoxplotStyleClassicTwoTone"] = "classic-two-tone";
+ })(BoxplotStyle = exports.BoxplotStyle || (exports.BoxplotStyle = {}));
+ // used for boxplots and prediction band whiskers
+ var WhiskerEnd;
+ (function (WhiskerEnd) {
+ //
+ WhiskerEnd["WhiskerEndNone"] = "none";
+ //
+ WhiskerEnd["WhiskerEndSmall"] = "small";
+ //
+ WhiskerEnd["WhiskerEndLarge"] = "large";
+ })(WhiskerEnd = exports.WhiskerEnd || (exports.WhiskerEnd = {}));
+ //
+ var StyleElement;
+ (function (StyleElement) {
+ //
+ StyleElement["elementAxis"] = "elementAxis";
+ //
+ StyleElement["elementCell"] = "elementCell";
+ //
+ StyleElement["elementDatalabel"] = "elementDatalabel";
+ //
+ StyleElement["elementDropspot"] = "elementDropspot";
+ //
+ StyleElement["elementHeader"] = "elementHeader";
+ //
+ StyleElement["elementFieldLabel"] = "elementFieldLabel";
+ //
+ StyleElement["elementFieldLabelDecoration"] = "elementFieldLabelDecoration";
+ //
+ StyleElement["elementFieldLabelSpanner"] = "elementFieldLabelSpanner";
+ //
+ StyleElement["elementLabel"] = "elementLabel";
+ //
+ StyleElement["elementMark"] = "elementMark";
+ //
+ StyleElement["elementPane"] = "elementPane";
+ //
+ StyleElement["elementTable"] = "elementTable";
+ //
+ StyleElement["elementWorksheet"] = "elementWorksheet";
+ //
+ StyleElement["elementBasesheet"] = "elementBasesheet";
+ //
+ StyleElement["elementDashboard"] = "elementDashboard";
+ //
+ StyleElement["elementStoryboard"] = "elementStoryboard";
+ //
+ StyleElement["elementCaption"] = "elementCaption";
+ //
+ StyleElement["elementDropline"] = "elementDropline";
+ //
+ StyleElement["elementRefline"] = "elementRefline";
+ //
+ StyleElement["elementRefBand"] = "elementRefBand";
+ //
+ StyleElement["elementRefBoxplot"] = "elementRefBoxplot";
+ //
+ StyleElement["elementGridline"] = "elementGridline";
+ //
+ StyleElement["elementZeroline"] = "elementZeroline";
+ //
+ StyleElement["elementTrendline"] = "elementTrendline";
+ //
+ StyleElement["elementTableDiv"] = "elementTableDiv";
+ //
+ StyleElement["elementHeaderDiv"] = "elementHeaderDiv";
+ //
+ StyleElement["elementMappedImage"] = "elementMappedImage";
+ //
+ StyleElement["elementAction"] = "elementAction";
+ //
+ StyleElement["elementTitle"] = "elementTitle";
+ //
+ StyleElement["elementLegend"] = "elementLegend";
+ //
+ StyleElement["elementLegendTitle"] = "elementLegendTitle";
+ //
+ StyleElement["elementLegendTitleText"] = "elementLegendTitleText";
+ //
+ StyleElement["elementAxisTitle"] = "elementAxisTitle";
+ //
+ StyleElement["elementAnnotation"] = "elementAnnotation";
+ //
+ StyleElement["elementDashTitle"] = "elementDashTitle";
+ //
+ StyleElement["elementDashSubtitle"] = "elementDashSubtitle";
+ //
+ StyleElement["elementDashText"] = "elementDashText";
+ //
+ StyleElement["elementDashZone"] = "elementDashZone";
+ //
+ StyleElement["elementDashContainer"] = "elementDashContainer";
+ //
+ StyleElement["elementScrollbar"] = "elementScrollbar";
+ // Static on/off map layers
+ StyleElement["elementMapLayer"] = "elementMapLayer";
+ // Contains washout
+ StyleElement["elementMap"] = "elementMap";
+ // Initially for UrbanMapping/Claritas data
+ StyleElement["elementMapDataLayer"] = "elementMapDataLayer";
+ //
+ StyleElement["elementQuickFilter"] = "elementQuickFilter";
+ //
+ StyleElement["elementQuickFilterTitle"] = "elementQuickFilterTitle";
+ //
+ StyleElement["elementParameterCtrl"] = "elementParameterCtrl";
+ //
+ StyleElement["elementParameterCtrlTitle"] = "elementParameterCtrlTitle";
+ //
+ StyleElement["elementPageCardTitle"] = "elementPageCardTitle";
+ //
+ StyleElement["elementStoryDescription"] = "elementStoryDescription";
+ //
+ StyleElement["elementStoryPointCaption"] = "elementStoryPointCaption";
+ //
+ StyleElement["elementStoryTitle"] = "elementStoryTitle";
+ //
+ StyleElement["elementTooltip"] = "elementTooltip";
+ //
+ StyleElement["elementAll"] = "elementAll";
+ //
+ StyleElement["elementPageCardBody"] = "elementPageCardBody";
+ //
+ StyleElement["elementDataHighlighter"] = "elementDataHighlighter";
+ //
+ StyleElement["elementDataHighlighterTitle"] = "elementDataHighlighterTitle";
+ // Special elements used for matching and organization
+ StyleElement["elementNone"] = "elementNone";
+ // Special elements used for matching and organization
+ StyleElement["elementAny"] = "elementAny";
+ // Special elements used for matching and organization
+ StyleElement["elementRoot"] = "elementRoot";
+ })(StyleElement = exports.StyleElement || (exports.StyleElement = {}));
+ // Do not mess with these values. They are sometimes used as array indexes/bounds
+ var StyleDataClass;
+ (function (StyleDataClass) {
+ //
+ StyleDataClass["dcNormal"] = "dcNormal";
+ //
+ StyleDataClass["dcTotal"] = "dcTotal";
+ //
+ StyleDataClass["dcSubtotal"] = "dcSubtotal";
+ //
+ StyleDataClass["dcCOUNT"] = "dcCOUNT";
+ })(StyleDataClass = exports.StyleDataClass || (exports.StyleDataClass = {}));
+ //
+ var StyleFieldScope;
+ (function (StyleFieldScope) {
+ //
+ StyleFieldScope["fsNone"] = "fsNone";
+ //
+ StyleFieldScope["fsRows"] = "fsRows";
+ //
+ StyleFieldScope["fsCols"] = "fsCols";
+ })(StyleFieldScope = exports.StyleFieldScope || (exports.StyleFieldScope = {}));
+ //
+ var StyleSwatch;
+ (function (StyleSwatch) {
+ //
+ StyleSwatch["ssUnspecified"] = "ssUnspecified";
+ //
+ StyleSwatch["ssLight"] = "ssLight";
+ //
+ StyleSwatch["ssDark"] = "ssDark";
+ })(StyleSwatch = exports.StyleSwatch || (exports.StyleSwatch = {}));
+ //
+ var TableauFontStyle;
+ (function (TableauFontStyle) {
+ //
+ TableauFontStyle["NormalStyle"] = "font-style-normal";
+ //
+ TableauFontStyle["Italic"] = "font-style-italic";
+ })(TableauFontStyle = exports.TableauFontStyle || (exports.TableauFontStyle = {}));
+ // Unsupported for Betsy
+ var TextDecoration;
+ (function (TextDecoration) {
+ //
+ TextDecoration["NoDecoration"] = "text-decoration-none";
+ //
+ TextDecoration["Underline"] = "text-decoration-underline";
+ // not yet supported
+ TextDecoration["Overline"] = "text-decoration-overline";
+ //
+ TextDecoration["Strikethrough"] = "text-decoration-strikethrough";
+ })(TextDecoration = exports.TextDecoration || (exports.TextDecoration = {}));
+ //
+ var FontWeight;
+ (function (FontWeight) {
+ //
+ FontWeight["NormalWeight"] = "font-weight-normal";
+ //
+ FontWeight["Bold"] = "font-weight-bold";
+ })(FontWeight = exports.FontWeight || (exports.FontWeight = {}));
+ //
+ var TextOrient;
+ (function (TextOrient) {
+ //
+ TextOrient["TO_Auto"] = "text-orient-auto";
+ //
+ TextOrient["TO_Horz"] = "text-orient-horizontal";
+ //
+ TextOrient["TO_VertUp"] = "text-orient-vertical-up";
+ //
+ TextOrient["TO_VertDown"] = "text-orient-vertical-down";
+ })(TextOrient = exports.TextOrient || (exports.TextOrient = {}));
+ //
+ var TextAlign;
+ (function (TextAlign) {
+ //
+ TextAlign["TA_Start"] = "text-align-start";
+ //
+ TextAlign["TA_Center"] = "text-align-center";
+ //
+ TextAlign["TA_End"] = "text-align-end";
+ })(TextAlign = exports.TextAlign || (exports.TextAlign = {}));
+ //
+ var TextWrapMode;
+ (function (TextWrapMode) {
+ //
+ TextWrapMode["TextWrapOff"] = "text-wrap-off";
+ //
+ TextWrapMode["TextWrapTruncate"] = "text-wrap-truncate";
+ //
+ TextWrapMode["TextWrapOn"] = "text-wrap-on";
+ //
+ TextWrapMode["TextWrapAuto"] = "text-wrap-auto";
+ })(TextWrapMode = exports.TextWrapMode || (exports.TextWrapMode = {}));
+ //
+ var TextWholeLineMode;
+ (function (TextWholeLineMode) {
+ //
+ TextWholeLineMode["TextWholeLineOff"] = "text-whole-line-off";
+ //
+ TextWholeLineMode["TextWholeLineOn"] = "text-whole-line-on";
+ //
+ TextWholeLineMode["TextWholeLineAuto"] = "text-whole-line-auto";
+ })(TextWholeLineMode = exports.TextWholeLineMode || (exports.TextWholeLineMode = {}));
+ //
+ var TextBreakMode;
+ (function (TextBreakMode) {
+ //
+ TextBreakMode["TextBreakWhitespaceOnly"] = "text-break-ws-only";
+ //
+ TextBreakMode["TextBreakAuto"] = "text-break-auto";
+ })(TextBreakMode = exports.TextBreakMode || (exports.TextBreakMode = {}));
+ // type of aggregation
+ var AggType;
+ (function (AggType) {
+ //
+ AggType["AGG_SUM"] = "sum";
+ //
+ AggType["AGG_AVG"] = "average";
+ //
+ AggType["AGG_MIN"] = "min";
+ //
+ AggType["AGG_MAX"] = "max";
+ //
+ AggType["AGG_STDEV"] = "std-dev";
+ //
+ AggType["AGG_STDEVP"] = "std-dev-p";
+ //
+ AggType["AGG_VAR"] = "var";
+ //
+ AggType["AGG_VARP"] = "var-p";
+ //
+ AggType["AGG_COUNT"] = "count";
+ //
+ AggType["AGG_COUNTD"] = "count-d";
+ //
+ AggType["AGG_MEDIAN"] = "median";
+ //
+ AggType["AGG_ATTR"] = "attr";
+ //
+ AggType["AGG_NONE"] = "none";
+ //
+ AggType["AGG_PERCENTILE"] = "percentile";
+ //
+ AggType["AGG_YEAR"] = "year";
+ //
+ AggType["AGG_QTR"] = "qtr";
+ //
+ AggType["AGG_MONTH"] = "month";
+ //
+ AggType["AGG_DAY"] = "day";
+ //
+ AggType["AGG_HOUR"] = "hour";
+ //
+ AggType["AGG_MINUTE"] = "minute";
+ //
+ AggType["AGG_SECOND"] = "second";
+ //
+ AggType["AGG_WEEK"] = "week";
+ //
+ AggType["AGG_WEEKDAY"] = "weekday";
+ //
+ AggType["AGG_MONTHYEAR"] = "month-year";
+ //
+ AggType["AGG_MDY"] = "mdy";
+ //
+ AggType["AGG_END"] = "end";
+ //
+ AggType["TRUNC_YEAR"] = "trunc-year";
+ //
+ AggType["TRUNC_QTR"] = "trunc-qtr";
+ //
+ AggType["TRUNC_MONTH"] = "trunc-month";
+ //
+ AggType["TRUNC_WEEK"] = "trunc-week";
+ //
+ AggType["TRUNC_DAY"] = "trunc-day";
+ //
+ AggType["TRUNC_HOUR"] = "trunc-hour";
+ //
+ AggType["TRUNC_MINUTE"] = "trunc-minute";
+ //
+ AggType["TRUNC_SECOND"] = "trunc-second";
+ //
+ AggType["AGG_QUART1"] = "quart1";
+ //
+ AggType["AGG_QUART3"] = "quart3";
+ //
+ AggType["AGG_SKEWNESS"] = "skewness";
+ //
+ AggType["AGG_KURTOSIS"] = "kurtosis";
+ //
+ AggType["AGG_INOUT"] = "in-out";
+ //
+ AggType["AGG_SUM_XSQR"] = "sum-xsqr";
+ //
+ AggType["AGG_USER"] = "user";
+ //
+ AggType["AGG_COLLECT"] = "collect";
+ //
+ AggType["AGG_COVAR"] = "covar";
+ //
+ AggType["AGG_COVARP"] = "covarp";
+ //
+ AggType["AGG_CORR"] = "corr";
+ })(AggType = exports.AggType || (exports.AggType = {}));
+ // DataValueFormatter::DataTypeEncodings has hardcoded values corresponding to following enum members. So any changes here should be done there too
+ var DataType;
+ (function (DataType) {
+ //
+ DataType["DT_INTEGER"] = "integer";
+ //
+ DataType["DT_REAL"] = "real";
+ //
+ DataType["DT_STRING"] = "cstring";
+ //
+ DataType["DT_DATETIME"] = "datetime";
+ //
+ DataType["DT_BOOLEAN"] = "boolean";
+ //
+ DataType["DT_DATE"] = "date";
+ //
+ DataType["DT_TUPLE"] = "tuple";
+ //
+ DataType["DT_SPATIAL"] = "spatial";
+ //
+ DataType["DT_UNKNOWN"] = "unknown";
+ //
+ DataType["DT_BINARY"] = "binary";
+ //
+ DataType["DT_TIME"] = "time";
+ })(DataType = exports.DataType || (exports.DataType = {}));
+ //
+ var DatePeriodType;
+ (function (DatePeriodType) {
+ //
+ DatePeriodType["PeriodYear"] = "year";
+ //
+ DatePeriodType["PeriodQuarter"] = "quarter";
+ //
+ DatePeriodType["PeriodMonth"] = "month";
+ //
+ DatePeriodType["PeriodWeek"] = "week";
+ //
+ DatePeriodType["PeriodDay"] = "day";
+ //
+ DatePeriodType["PeriodHour"] = "hour";
+ //
+ DatePeriodType["PeriodMinute"] = "minute";
+ //
+ DatePeriodType["PeriodSecond"] = "second";
+ })(DatePeriodType = exports.DatePeriodType || (exports.DatePeriodType = {}));
+ // Format prepended to format strings to specify type
+ var FormatCode;
+ (function (FormatCode) {
+ //
+ FormatCode["AutoFormat"] = "auto-format";
+ //
+ FormatCode["SystemLongDate"] = "system-long-date";
+ //
+ FormatCode["SystemShortDate"] = "system-short-date";
+ //
+ FormatCode["SystemNumber"] = "system-number";
+ //
+ FormatCode["SystemCurrency"] = "system-currency";
+ //
+ FormatCode["SystemTime"] = "system-time";
+ //
+ FormatCode["Custom"] = "custom";
+ //
+ FormatCode["CustomICU"] = "custom-icu";
+ //
+ FormatCode["CustomNumber"] = "custom-number";
+ //
+ FormatCode["CustomCurrency"] = "custom-currency";
+ //
+ FormatCode["CustomScientific"] = "custom-scientific";
+ //
+ FormatCode["CustomPercentage"] = "custom-percentage";
+ })(FormatCode = exports.FormatCode || (exports.FormatCode = {}));
+ // Units specified in a format string
+ var UnitsFormatEnum;
+ (function (UnitsFormatEnum) {
+ //
+ UnitsFormatEnum["UnitsFmtNone"] = "units-none";
+ //
+ UnitsFormatEnum["UnitsFmtThousands"] = "units-thousands";
+ //
+ UnitsFormatEnum["UnitsFmtMillions"] = "units-millions";
+ //
+ UnitsFormatEnum["UnitsFmtBillionsEnglish"] = "units-billions-english";
+ //
+ UnitsFormatEnum["UnitsFmtBillionsStandard"] = "units-billions-standard";
+ })(UnitsFormatEnum = exports.UnitsFormatEnum || (exports.UnitsFormatEnum = {}));
+ //
+ var ForecastColumnType;
+ (function (ForecastColumnType) {
+ //
+ ForecastColumnType["FORECAST_NONE"] = "none";
+ //
+ ForecastColumnType["FORECAST_VALUE"] = "value";
+ //
+ ForecastColumnType["FORECAST_INDICATOR"] = "indicator";
+ //
+ ForecastColumnType["FORECAST_PRECISION"] = "precision";
+ //
+ ForecastColumnType["FORECAST_QUALITY"] = "quality";
+ //
+ ForecastColumnType["FORECAST_FIT_TREND"] = "fit_trend";
+ //
+ ForecastColumnType["FORECAST_PRECISION_PERCENT"] = "precision_percent";
+ //
+ ForecastColumnType["FORECAST_PREDICTION_INTERVAL_UPPER"] = "prediction_upper";
+ //
+ ForecastColumnType["FORECAST_PREDICTION_INTERVAL_LOWER"] = "prediction_lower";
+ })(ForecastColumnType = exports.ForecastColumnType || (exports.ForecastColumnType = {}));
+ //
+ var MarkMarkersMode;
+ (function (MarkMarkersMode) {
+ //
+ MarkMarkersMode["MMM_Auto"] = "mmm-auto";
+ //
+ MarkMarkersMode["MMM_All"] = "mmm_all";
+ //
+ MarkMarkersMode["MMM_None"] = "mmm_none";
+ //
+ MarkMarkersMode["MMM_Default"] = "mmm_default";
+ })(MarkMarkersMode = exports.MarkMarkersMode || (exports.MarkMarkersMode = {}));
+ //
+ var PercentMode;
+ (function (PercentMode) {
+ //
+ PercentMode["PERCENT_CELL_IN_PANE"] = "cell-in-pane";
+ //
+ PercentMode["PERCENT_ROW_IN_PANE"] = "row-in-pane";
+ //
+ PercentMode["PERCENT_COLUMN_IN_PANE"] = "column-in-pane";
+ //
+ PercentMode["PERCENT_PANE"] = "pane";
+ //
+ PercentMode["PERCENT_ROW"] = "row";
+ //
+ PercentMode["PERCENT_COLUMN"] = "column";
+ //
+ PercentMode["PERCENT_TABLE"] = "table";
+ })(PercentMode = exports.PercentMode || (exports.PercentMode = {}));
+ //
+ var SpecialValuesMode;
+ (function (SpecialValuesMode) {
+ //
+ SpecialValuesMode["SPECIAL_VALUES_HIDE_AND_WARN"] = "hide-and-warn";
+ //
+ SpecialValuesMode["SPECIAL_VALUES_HIDE"] = "hide";
+ //
+ SpecialValuesMode["SPECIAL_VALUES_HIDE_BREAK_LINES"] = "hide-break-lines";
+ //
+ SpecialValuesMode["SPECIAL_VALUES_SHOW"] = "show";
+ })(SpecialValuesMode = exports.SpecialValuesMode || (exports.SpecialValuesMode = {}));
+ //
+ var LayoutType;
+ (function (LayoutType) {
+ //
+ LayoutType["LAYOUT_CARTESIAN"] = "cartesian";
+ //
+ LayoutType["LAYOUT_DEFAULT"] = "default";
+ })(LayoutType = exports.LayoutType || (exports.LayoutType = {}));
+ //
+ var ShelfType;
+ (function (ShelfType) {
+ //
+ ShelfType["ST_NONE"] = "none-shelf";
+ //
+ ShelfType["ST_COLUMNS_SHELF"] = "columns-shelf";
+ //
+ ShelfType["ST_ROWS_SHELF"] = "rows-shelf";
+ //
+ ShelfType["ST_PAGES_SHELF"] = "pages-shelf";
+ //
+ ShelfType["ST_FILTER_SHELF"] = "filter-shelf";
+ //
+ ShelfType["ST_IMAGE_SHELF"] = "image-shelf";
+ //
+ ShelfType["ST_MEASURES_SHELF"] = "measures-shelf";
+ //
+ ShelfType["ST_SHOWME_SHELF"] = "show-me-shelf";
+ //
+ ShelfType["ST_ENCODING_SHELF"] = "encoding-shelf";
+ //
+ ShelfType["ST_CLUSTER_SHELF"] = "cluster-shelf";
+ //
+ ShelfType["ST_GEOMETRY_SHELF"] = "geometry-shelf";
+ //
+ ShelfType["ST_END"] = "end-shelf";
+ //
+ ShelfType["ST_FINAL"] = "final-shelf";
+ })(ShelfType = exports.ShelfType || (exports.ShelfType = {}));
+ //
+ var RestrictType;
+ (function (RestrictType) {
+ //
+ RestrictType["RT_INTERSECT"] = "rt-intersection";
+ //
+ RestrictType["RT_UNION"] = "rt-union";
+ })(RestrictType = exports.RestrictType || (exports.RestrictType = {}));
+ //
+ var TooltipMode;
+ (function (TooltipMode) {
+ //
+ TooltipMode["TM_NONE"] = "none";
+ //
+ TooltipMode["TM_STICKY"] = "sticky";
+ //
+ TooltipMode["TM_SMOOTH"] = "smooth";
+ })(TooltipMode = exports.TooltipMode || (exports.TooltipMode = {}));
+ //
+ var ColumnGroups;
+ (function (ColumnGroups) {
+ // 0x01
+ ColumnGroups["COLS_IN_OUTPUT"] = "cols-in-output";
+ // 0x02
+ ColumnGroups["COLS_IN_FILTER_SHELF"] = "cols-in-filter-shelf";
+ // 0x04
+ ColumnGroups["COLS_REF_BY_FILTERS"] = "cols-ref-by-filters";
+ // 0x08
+ ColumnGroups["COLS_REF_BY_OMEASURES"] = "cols-ref-by-omeasures";
+ // 0x10
+ ColumnGroups["COLS_REF_BY_JOIN_LOD"] = "cols-ref-by-join-lod";
+ // 0x20
+ ColumnGroups["COLS_HIDDEN"] = "cols-hidden";
+ // 0x40
+ ColumnGroups["COLS_REF_BY_SORTS"] = "cols-ref-by-sorts";
+ //
+ ColumnGroups["COLS_REF_BY_FILTERS_OR_SORTS"] = "cols-ref-by-filters-or-sorts";
+ //
+ ColumnGroups["COLS_ON_SHELVES"] = "cols-on-shelves";
+ //
+ ColumnGroups["COLS_ALL"] = "cols-all";
+ })(ColumnGroups = exports.ColumnGroups || (exports.ColumnGroups = {}));
+ //
+ var ButtonsOption;
+ (function (ButtonsOption) {
+ //
+ ButtonsOption["BO_HIDE"] = "buttons-hide";
+ })(ButtonsOption = exports.ButtonsOption || (exports.ButtonsOption = {}));
+ //
+ var SelectionRelaxationOption;
+ (function (SelectionRelaxationOption) {
+ //
+ SelectionRelaxationOption["SRO_ALLOW"] = "selection-relaxation-allow";
+ //
+ SelectionRelaxationOption["SRO_DISALLOW"] = "selection-relaxation-disallow";
+ })(SelectionRelaxationOption = exports.SelectionRelaxationOption || (exports.SelectionRelaxationOption = {}));
+ //
+ var EncodingType;
+ (function (EncodingType) {
+ // a text encoding
+ EncodingType["ET_TEXT"] = "text-encoding";
+ // a color encoding
+ EncodingType["ET_COLOR"] = "color-encoding";
+ // a size encoding
+ EncodingType["ET_SIZE"] = "size-encoding";
+ // a shape encoding
+ EncodingType["ET_SHAPE"] = "shape-encoding";
+ // an image encoding
+ EncodingType["ET_IMAGE"] = "image-encoding";
+ // a sort (path) encoding (currently only for line or polygon charts)
+ EncodingType["ET_SORT"] = "sort-encoding";
+ // a wedge size (angle) encoding (currently only for pie charts)
+ EncodingType["ET_WEDGESIZE"] = "wedge-size-encoding";
+ // a geometry encoding
+ EncodingType["ET_GEOMETRY"] = "geometry-encoding";
+ // a level of detail encoding
+ EncodingType["ET_LOD"] = "level-of-detail-encoding";
+ // encoding used for the data highlighter/legend mechanism
+ EncodingType["ET_HIGHLIGHT"] = "highlight-encoding";
+ // a tooltip encoding
+ EncodingType["ET_TOOLTIP"] = "tooltip-encoding";
+ // a temporary label placed above marks for the table calc dialog
+ EncodingType["ET_RUNNINGORDER"] = "runningorder-encoding";
+ // the number of encodings, this is invalid input for an encoding presentation model
+ EncodingType["NUM_ENCODINGS"] = "num-encodings";
+ // an invalid encoding
+ EncodingType["ET_INVALID"] = "invalid-encoding";
+ })(EncodingType = exports.EncodingType || (exports.EncodingType = {}));
+ // Enumeration of valid horizontal alignments.
+ var LabelHAlignment;
+ (function (LabelHAlignment) {
+ //
+ LabelHAlignment["LHA_Left"] = "h-align-left";
+ //
+ LabelHAlignment["LHA_Center"] = "h-align-center";
+ //
+ LabelHAlignment["LHA_Right"] = "h-align-right";
+ //
+ LabelHAlignment["LHA_Automatic"] = "h-align-auto";
+ })(LabelHAlignment = exports.LabelHAlignment || (exports.LabelHAlignment = {}));
+ // Enumeration of valid vertical alignments.
+ var LabelVAlignment;
+ (function (LabelVAlignment) {
+ //
+ LabelVAlignment["LVA_Bottom"] = "v-align-bottom";
+ //
+ LabelVAlignment["LVA_Center"] = "v-align-center";
+ //
+ LabelVAlignment["LVA_Top"] = "v-align-top";
+ //
+ LabelVAlignment["LVA_Automatic"] = "v-align-auto";
+ })(LabelVAlignment = exports.LabelVAlignment || (exports.LabelVAlignment = {}));
+ // Enumeration of valid label positions.
+ var LabelPosition;
+ (function (LabelPosition) {
+ // Position each text run relative to the center of the original bbox. Use the original bbox as the height and width of the text mark. Used for non-stacked OO text marks.
+ LabelPosition["CenterInOriginalBbox"] = "label-position-center-in-original-box";
+ // Position each text run relative to the bottom left corner of the measured bbox. Use the measured bbox as the width and height of the label. Used for labels
+ LabelPosition["OriginAtLowerLeft"] = "label-position-origin-at-lower-left";
+ // Position each text run relative to the center of the measured bbox. Use the measured bbox as the width and height of the text mark. Used for most text marks.
+ LabelPosition["OriginAtCenter"] = "label-position-origin-at-center";
+ })(LabelPosition = exports.LabelPosition || (exports.LabelPosition = {}));
+ // Enumeration of ways to use color. Values can be or'ed together to make a mask for allowed options
+ var ColorMode;
+ (function (ColorMode) {
+ // Color user specified
+ ColorMode["CLRM_User"] = "clrm-user";
+ // Color selected automatically
+ ColorMode["CLRM_Auto"] = "clrm-auto";
+ // Color matches mark color
+ ColorMode["CLRM_Match"] = "clrm-match";
+ // No color (transparent or not drawn)
+ ColorMode["CLRM_None"] = "clrm-none";
+ })(ColorMode = exports.ColorMode || (exports.ColorMode = {}));
+ //
+ var MarkLabelsMode;
+ (function (MarkLabelsMode) {
+ //
+ MarkLabelsMode["MLM_All"] = "mlm-all";
+ //
+ MarkLabelsMode["MLM_Selection"] = "mlm-selection";
+ //
+ MarkLabelsMode["MLM_Highlight"] = "mlm-highlight";
+ //
+ MarkLabelsMode["MLM_LineEnds"] = "mlm-line-ends";
+ // min/max setting
+ MarkLabelsMode["MLM_Range"] = "mlm-range";
+ // most recent (only relevant when date field is in play)
+ MarkLabelsMode["MLM_MostRecent"] = "mlm-most-recent";
+ // ...this is " virtual " (runtime only, not saved, not shown as a user setting
+ MarkLabelsMode["MLM_MultipleValues"] = "mlm-multiple-values";
+ //
+ MarkLabelsMode["MLM_Default"] = "mlm-default";
+ })(MarkLabelsMode = exports.MarkLabelsMode || (exports.MarkLabelsMode = {}));
+ //
+ var MarkLabelsScope;
+ (function (MarkLabelsScope) {
+ //
+ MarkLabelsScope["MLS_Table"] = "mls-table";
+ //
+ MarkLabelsScope["MLS_Pane"] = "mls-pane";
+ //
+ MarkLabelsScope["MLS_Cell"] = "mls-cell";
+ //
+ MarkLabelsScope["MLS_MultiMark"] = "mls-multimark";
+ // ...this is " virtual " (runtime only, not saved, not shown as a user setting)
+ MarkLabelsScope["MLS_MultipleValues"] = "mls-multiple-values";
+ //
+ MarkLabelsScope["MLS_Default"] = "mls-default";
+ })(MarkLabelsScope = exports.MarkLabelsScope || (exports.MarkLabelsScope = {}));
+ //
+ var MarkLabelsVisibility;
+ (function (MarkLabelsVisibility) {
+ //
+ MarkLabelsVisibility["MLV_Hidden"] = "mlv-hidden";
+ //
+ MarkLabelsVisibility["MLV_Visible"] = "mlv-visible";
+ //
+ MarkLabelsVisibility["MLV_UseCurrent"] = "mlv-use-current";
+ })(MarkLabelsVisibility = exports.MarkLabelsVisibility || (exports.MarkLabelsVisibility = {}));
+ //
+ var StackingMode;
+ (function (StackingMode) {
+ //
+ StackingMode["StackingOff"] = "off";
+ //
+ StackingMode["StackingOn"] = "on";
+ //
+ StackingMode["StackingAuto"] = "auto";
+ })(StackingMode = exports.StackingMode || (exports.StackingMode = {}));
+ //
+ var MarkAlignment;
+ (function (MarkAlignment) {
+ //
+ MarkAlignment["MarkAlignmentLeft"] = "mark-alignment-left";
+ //
+ MarkAlignment["MarkAlignmentRight"] = "mark-alignment-right";
+ //
+ MarkAlignment["MarkAlignmentCenter"] = "mark-alignment-center";
+ })(MarkAlignment = exports.MarkAlignment || (exports.MarkAlignment = {}));
+ //
+ var PaneLabelComposition;
+ (function (PaneLabelComposition) {
+ //
+ PaneLabelComposition["PLC_None"] = "pane-label-composition-none";
+ //
+ PaneLabelComposition["PLC_Mixed"] = "pane-label-composition-mixed";
+ //
+ PaneLabelComposition["PLC_All"] = "pane-label-composition-all";
+ })(PaneLabelComposition = exports.PaneLabelComposition || (exports.PaneLabelComposition = {}));
+ // The user-specified mark type on the Marks Card
+ var PrimitiveType;
+ (function (PrimitiveType) {
+ //
+ PrimitiveType["PT_AUTOMATIC"] = "automatic";
+ //
+ PrimitiveType["PT_TEXT"] = "text";
+ //
+ PrimitiveType["PT_IMAGE"] = "image";
+ //
+ PrimitiveType["PT_SHAPE"] = "shape";
+ //
+ PrimitiveType["PT_RECTANGLE"] = "rectangle";
+ //
+ PrimitiveType["PT_BAR"] = "bar";
+ //
+ PrimitiveType["PT_GANTT"] = "gantt";
+ //
+ PrimitiveType["PT_SQUARE"] = "square";
+ //
+ PrimitiveType["PT_CIRCLE"] = "circle";
+ //
+ PrimitiveType["PT_POLYLINE"] = "polyline";
+ // line chart
+ PrimitiveType["PT_LINE"] = "line";
+ //
+ PrimitiveType["PT_POLYGON"] = "polygon";
+ // area chart
+ PrimitiveType["PT_AREA"] = "area";
+ //
+ PrimitiveType["PT_PIE"] = "pie";
+ //
+ PrimitiveType["PT_MULTIPOLYGON"] = "multipolygon";
+ // Not an actual primitive type. This is just used to flag the UI that multiple types are in play.
+ PrimitiveType["PT_MULTIPLE"] = "multiple";
+ // used for looping over all values
+ PrimitiveType["NUM_PRIMITIVES"] = "count";
+ // used to flag an unset or invalid state
+ PrimitiveType["PT_INVALID"] = "invalid";
+ })(PrimitiveType = exports.PrimitiveType || (exports.PrimitiveType = {}));
+ // Defines the way a given primitive behaves on a viz - for instance, a PT_CIRCLE is treated as a point, while a PT_POLYGON would be treated as an area.
+ var MarkType;
+ (function (MarkType) {
+ //
+ MarkType["MT_POINT"] = "point";
+ //
+ MarkType["MT_LINE"] = "line";
+ //
+ MarkType["MT_AREA"] = "area";
+ //
+ MarkType["MT_INVALID"] = "invalid";
+ })(MarkType = exports.MarkType || (exports.MarkType = {}));
+ // PaneAxis is used to describe which axis of a pane is the independent axis.
+ var PaneAxis;
+ (function (PaneAxis) {
+ // The independent axis is inferred from other properties of the pane.
+ PaneAxis["AXIS_AUTO"] = "auto";
+ //
+ PaneAxis["AXIS_X"] = "x";
+ //
+ PaneAxis["AXIS_Y"] = "y";
+ })(PaneAxis = exports.PaneAxis || (exports.PaneAxis = {}));
+ //
+ var Rounding;
+ (function (Rounding) {
+ //
+ Rounding["Rounding_None"] = "none";
+ //
+ Rounding["Rounding_Small"] = "small";
+ //
+ Rounding["Rounding_Medium"] = "medium";
+ //
+ Rounding["Rounding_Large"] = "large";
+ })(Rounding = exports.Rounding || (exports.Rounding = {}));
+ //
+ var LineEnd;
+ (function (LineEnd) {
+ //
+ LineEnd["LineEnd_None"] = "none";
+ //
+ LineEnd["LineEnd_Arrow"] = "arrow";
+ //
+ LineEnd["LineEnd_OpenArrow"] = "open-arrow";
+ //
+ LineEnd["LineEnd_Dot"] = "dot";
+ })(LineEnd = exports.LineEnd || (exports.LineEnd = {}));
+ //
+ var LineEndSize;
+ (function (LineEndSize) {
+ //
+ LineEndSize["LineEndSize_Smallest"] = "smallest";
+ //
+ LineEndSize["LineEndSize_Smaller"] = "smaller";
+ //
+ LineEndSize["LineEndSize_Small"] = "small";
+ //
+ LineEndSize["LineEndSize_Medium"] = "medium";
+ //
+ LineEndSize["LineEndSize_Large"] = "large";
+ //
+ LineEndSize["LineEndSize_Larger"] = "larger";
+ //
+ LineEndSize["LineEndSize_Largest"] = "largest";
+ })(LineEndSize = exports.LineEndSize || (exports.LineEndSize = {}));
+ //
+ var BodyType;
+ (function (BodyType) {
+ //
+ BodyType["BodyType_None"] = "none";
+ //
+ BodyType["BodyType_Box"] = "box";
+ //
+ BodyType["BodyType_Edge"] = "edge";
+ })(BodyType = exports.BodyType || (exports.BodyType = {}));
+ //
+ var StyleTheme;
+ (function (StyleTheme) {
+ //
+ StyleTheme["themeClassic"] = "classic";
+ //
+ StyleTheme["themeModern"] = "modern";
+ //
+ StyleTheme["themeClean"] = "clean";
+ //
+ StyleTheme["themeSmooth"] = "smooth";
+ //
+ StyleTheme["themeCustom"] = "custom";
+ })(StyleTheme = exports.StyleTheme || (exports.StyleTheme = {}));
+ //
+ var AxisFoldState;
+ (function (AxisFoldState) {
+ //
+ AxisFoldState["afNone"] = "none";
+ //
+ AxisFoldState["afFolded"] = "folded";
+ //
+ AxisFoldState["afSynchronized"] = "synchronized";
+ })(AxisFoldState = exports.AxisFoldState || (exports.AxisFoldState = {}));
+ //
+ var LinePattern;
+ (function (LinePattern) {
+ //
+ LinePattern["LinePatternNone"] = "none";
+ //
+ LinePattern["LinePatternSolid"] = "solid";
+ //
+ LinePattern["LinePatternDashed"] = "dashed";
+ //
+ LinePattern["LinePatternDotted"] = "dotted";
+ })(LinePattern = exports.LinePattern || (exports.LinePattern = {}));
+ //
+ var LineVisibility;
+ (function (LineVisibility) {
+ //
+ LineVisibility["LineVisibilityAuto"] = "automatic";
+ //
+ LineVisibility["LineVisibilityOn"] = "on";
+ //
+ LineVisibility["LineVisibilityOff"] = "off";
+ })(LineVisibility = exports.LineVisibility || (exports.LineVisibility = {}));
+ //
+ var StylesLinePattern;
+ (function (StylesLinePattern) {
+ //
+ StylesLinePattern["StylesLinePatternSolid"] = "solid";
+ //
+ StylesLinePattern["StylesLinePatternDashed"] = "dashed";
+ //
+ StylesLinePattern["StylesLinePatternDotted"] = "dotted";
+ })(StylesLinePattern = exports.StylesLinePattern || (exports.StylesLinePattern = {}));
+ //
+ var LineCap;
+ (function (LineCap) {
+ //
+ LineCap["LineCapFlat"] = "flat";
+ //
+ LineCap["LineCapSquare"] = "square";
+ //
+ LineCap["LineCapRound"] = "round";
+ //
+ LineCap["LineCapTriangle"] = "triangle";
+ })(LineCap = exports.LineCap || (exports.LineCap = {}));
+ //
+ var LineJoin;
+ (function (LineJoin) {
+ //
+ LineJoin["BevelJoin"] = "bevel";
+ //
+ LineJoin["MiterJoin"] = "miter";
+ //
+ LineJoin["RoundJoin"] = "round";
+ })(LineJoin = exports.LineJoin || (exports.LineJoin = {}));
+ //
+ var LineAlignment;
+ (function (LineAlignment) {
+ //
+ LineAlignment["AlignmentCenter"] = "center";
+ //
+ LineAlignment["AlignmentInset"] = "inset";
+ })(LineAlignment = exports.LineAlignment || (exports.LineAlignment = {}));
+ //
+ var FillMode;
+ (function (FillMode) {
+ //
+ FillMode["FillEvenOdd"] = "even-odd";
+ //
+ FillMode["FillWinding"] = "winding";
+ })(FillMode = exports.FillMode || (exports.FillMode = {}));
+ //
+ var BorderStyle;
+ (function (BorderStyle) {
+ // none
+ BorderStyle["BorderStyleNone"] = "bs-none";
+ // hidden
+ BorderStyle["BorderStyleHidden"] = "bs-hidden";
+ // dotted
+ BorderStyle["BorderStyleDotted"] = "bs-dotted";
+ // dashed
+ BorderStyle["BorderStyleDashed"] = "bs-dashed";
+ // solid
+ BorderStyle["BorderStyleSolid"] = "bs-solid";
+ // double
+ BorderStyle["BorderStyleDouble"] = "bs-double";
+ // groove
+ BorderStyle["BorderStyleGroove"] = "bs-groove";
+ // ridge
+ BorderStyle["BorderStyleRidge"] = "bs-ridge";
+ // inset
+ BorderStyle["BorderStyleInset"] = "bs-inset";
+ // outset
+ BorderStyle["BorderStyleOutset"] = "bs-outset";
+ // invalid
+ BorderStyle["BorderStyleInvalid"] = "bs-invalid";
+ })(BorderStyle = exports.BorderStyle || (exports.BorderStyle = {}));
+ //
+ var ColorPaletteType;
+ (function (ColorPaletteType) {
+ //
+ ColorPaletteType["ColorPaletteRegular"] = "color-palette-regular";
+ //
+ ColorPaletteType["ColorPaletteOrderedDiverging"] = "palette-ordered-diverging";
+ //
+ ColorPaletteType["ColorPaletteOrderedLinear"] = "palette-ordered-linear";
+ })(ColorPaletteType = exports.ColorPaletteType || (exports.ColorPaletteType = {}));
+ //
+ var PaletteFlags;
+ (function (PaletteFlags) {
+ //
+ PaletteFlags["PaletteFlagNone"] = "palette-flag-none";
+ //
+ PaletteFlags["PaletteFlagCustom"] = "palette-flag-custom";
+ //
+ PaletteFlags["PaletteFlagNotQuantitative"] = "palette-flag-not-quantitative";
+ //
+ PaletteFlags["PaletteFlagNotCategorical"] = "palette-flag-not-categorical";
+ //
+ PaletteFlags["PaletteFlagNotReferenceBand"] = "palette-flag-not-reference-band";
+ //
+ PaletteFlags["PaletteFlagNotBoxplot"] = "palette-flag-not-boxplot";
+ //
+ PaletteFlags["PaletteFlagNotFilledMapLight"] = "palette-flag-not-filled-map-light";
+ //
+ PaletteFlags["PaletteFlagNotFilledMapDark"] = "palette-flag-not-filled-map-dark";
+ //
+ PaletteFlags["PaletteFlagLegacy"] = "palette-flag-legacy";
+ })(PaletteFlags = exports.PaletteFlags || (exports.PaletteFlags = {}));
+ //
+ var DefaultPaletteType;
+ (function (DefaultPaletteType) {
+ //
+ DefaultPaletteType["SmallNominal"] = "palette-default-small-nominal";
+ //
+ DefaultPaletteType["LargeNominal"] = "palette-default-large-nominal";
+ //
+ DefaultPaletteType["Ordinal"] = "palette-default-ordinal";
+ //
+ DefaultPaletteType["QuantitativePositive"] = "palette-default-quant-pos";
+ //
+ DefaultPaletteType["QuantitativeNegative"] = "palette-default-quant-neg";
+ //
+ DefaultPaletteType["QuantitativeDiverging"] = "palette-default-quant-div";
+ //
+ DefaultPaletteType["QuantitativePositiveLight"] = "palette-default-quant-pos-light";
+ //
+ DefaultPaletteType["QuantitativeNegativeLight"] = "palette-default-quant-neg-light";
+ //
+ DefaultPaletteType["QuantitativeDivergingLight"] = "palette-default-quant-div-light";
+ //
+ DefaultPaletteType["QuantitativePositiveArea"] = "palette-default-quant-pos-area";
+ //
+ DefaultPaletteType["QuantitativeNegativeArea"] = "palette-default-quant-neg-area";
+ //
+ DefaultPaletteType["QuantitativeDivergingArea"] = "palette-default-quant-div-area";
+ })(DefaultPaletteType = exports.DefaultPaletteType || (exports.DefaultPaletteType = {}));
+ //
+ var ShowBounds;
+ (function (ShowBounds) {
+ //
+ ShowBounds["Both"] = "show-both";
+ //
+ ShowBounds["Upper"] = "show-upper";
+ //
+ ShowBounds["Lower"] = "show-lower";
+ })(ShowBounds = exports.ShowBounds || (exports.ShowBounds = {}));
+ // Sample vs. population standard deviation
+ var StDevType;
+ (function (StDevType) {
+ //
+ StDevType["Sample"] = "stdev-sample";
+ //
+ StDevType["Population"] = "stdev-population";
+ })(StDevType = exports.StDevType || (exports.StDevType = {}));
+ //
+ var ReferenceLineFormulaGroup;
+ (function (ReferenceLineFormulaGroup) {
+ //
+ ReferenceLineFormulaGroup["None"] = "none";
+ //
+ ReferenceLineFormulaGroup["Line"] = "line";
+ //
+ ReferenceLineFormulaGroup["Band"] = "band";
+ //
+ ReferenceLineFormulaGroup["Distribution"] = "distribution";
+ //
+ ReferenceLineFormulaGroup["Boxplot"] = "boxplot";
+ })(ReferenceLineFormulaGroup = exports.ReferenceLineFormulaGroup || (exports.ReferenceLineFormulaGroup = {}));
+ //
+ var ReferenceLineScopeType;
+ (function (ReferenceLineScopeType) {
+ //
+ ReferenceLineScopeType["PerCell"] = "per-cell";
+ //
+ ReferenceLineScopeType["PerPane"] = "per-pane";
+ //
+ ReferenceLineScopeType["PerTable"] = "per-table";
+ })(ReferenceLineScopeType = exports.ReferenceLineScopeType || (exports.ReferenceLineScopeType = {}));
+ // how should the line be labeled
+ var ReferenceLineLabelType;
+ (function (ReferenceLineLabelType) {
+ // no label
+ ReferenceLineLabelType["None"] = "none";
+ // an automatically generated label
+ ReferenceLineLabelType["Automatic"] = "automatic";
+ //
+ ReferenceLineLabelType["Value"] = "value";
+ //
+ ReferenceLineLabelType["Computation"] = "computation";
+ // a user defined label
+ ReferenceLineLabelType["Custom"] = "custom";
+ })(ReferenceLineLabelType = exports.ReferenceLineLabelType || (exports.ReferenceLineLabelType = {}));
+ // how should the line be computed
+ var ReferenceLineFormulaType;
+ (function (ReferenceLineFormulaType) {
+ // a user specified constant value
+ ReferenceLineFormulaType["Constant"] = "constant";
+ //
+ ReferenceLineFormulaType["Total"] = "total";
+ // total of all values at the given scope <- is this correct? looks like comment from FormulaTotal
+ ReferenceLineFormulaType["Sum"] = "sum";
+ // minimum value in the scope
+ ReferenceLineFormulaType["Min"] = "min";
+ // maximum value in the scope
+ ReferenceLineFormulaType["Max"] = "max";
+ // average value in the scope
+ ReferenceLineFormulaType["Average"] = "average";
+ // median value in the scope
+ ReferenceLineFormulaType["Median"] = "median";
+ // the n quantiles values in the scope
+ ReferenceLineFormulaType["Quantiles"] = "quantiles";
+ // a given percentile in the scope
+ ReferenceLineFormulaType["Percentile"] = "percentile";
+ // mean +- standard deviation
+ ReferenceLineFormulaType["StandardDeviation"] = "standard-deviation";
+ // a given confidence interval around the mean
+ ReferenceLineFormulaType["ConfidenceInterval"] = "confidence-interval";
+ //
+ ReferenceLineFormulaType["MedianConfidenceInterval"] = "median-confidence-interval";
+ })(ReferenceLineFormulaType = exports.ReferenceLineFormulaType || (exports.ReferenceLineFormulaType = {}));
+ // Line or confidence interval or both
+ var ReferenceLineConfidenceIntervalState;
+ (function (ReferenceLineConfidenceIntervalState) {
+ // display line only
+ ReferenceLineConfidenceIntervalState["LineOnly"] = "line-only";
+ // display the line and a confidence interval
+ ReferenceLineConfidenceIntervalState["LineAndConfidenceInterval"] = "line-and-interval";
+ // display confidence interval only
+ ReferenceLineConfidenceIntervalState["ConfidenceIntervalOnly"] = "interval-only";
+ })(ReferenceLineConfidenceIntervalState = exports.ReferenceLineConfidenceIntervalState || (exports.ReferenceLineConfidenceIntervalState = {}));
+ // type of distribution. i.e. Percentage, Percentile, Quantile, and Standard Deviation
+ var ReferenceLineDistributionType;
+ (function (ReferenceLineDistributionType) {
+ // distribution type percentage
+ ReferenceLineDistributionType["Percentages"] = "percentages";
+ // distribution type percentile
+ ReferenceLineDistributionType["Percentiles"] = "percentiles";
+ // distribution type quantile
+ ReferenceLineDistributionType["Quantiles"] = "quantiles";
+ // distribution type standard deviation
+ ReferenceLineDistributionType["StandardDeviation"] = "standard-deviation";
+ })(ReferenceLineDistributionType = exports.ReferenceLineDistributionType || (exports.ReferenceLineDistributionType = {}));
+ // the kind of LOD calc to use for a given reference line
+ var ReferenceLineLODCalcType;
+ (function (ReferenceLineLODCalcType) {
+ // Create a formula using a FIXED-like level-of-detail calculation, to which sheet filters apply, that will go onto a specific sheet
+ ReferenceLineLODCalcType["MeasureFormula"] = "measure-formula";
+ // Create a boolean formula that can be used as a filter
+ ReferenceLineLODCalcType["BooleanFilter"] = "boolean-filter";
+ })(ReferenceLineLODCalcType = exports.ReferenceLineLODCalcType || (exports.ReferenceLineLODCalcType = {}));
+ //
+ var BoxplotWhiskerType;
+ (function (BoxplotWhiskerType) {
+ //
+ BoxplotWhiskerType["Standard"] = "standard";
+ //
+ BoxplotWhiskerType["Minmax"] = "minmax";
+ })(BoxplotWhiskerType = exports.BoxplotWhiskerType || (exports.BoxplotWhiskerType = {}));
+ // categories of connection types displayed by the connection UI
+ var ConnectionTypeCategory;
+ (function (ConnectionTypeCategory) {
+ // standard database
+ ConnectionTypeCategory["CTC_Database"] = "database";
+ // 'More Items ...' meta item
+ ConnectionTypeCategory["CTC_More"] = "more";
+ // Other file types
+ ConnectionTypeCategory["CTC_Other"] = "other";
+ // invalid connection category
+ ConnectionTypeCategory["CTC_Invalid"] = "invalid";
+ })(ConnectionTypeCategory = exports.ConnectionTypeCategory || (exports.ConnectionTypeCategory = {}));
+ // a logical grouping of connection types displayed by the connection UI
+ var ConnectionTypeGroup;
+ (function (ConnectionTypeGroup) {
+ // in a file
+ ConnectionTypeGroup["CTG_File"] = "file";
+ // on a server
+ ConnectionTypeGroup["CTG_Server"] = "server";
+ // on a recent server
+ ConnectionTypeGroup["CTG_MruServer"] = "mru-server";
+ // invalid group
+ ConnectionTypeGroup["CTG_Invalid"] = "invalid";
+ })(ConnectionTypeGroup = exports.ConnectionTypeGroup || (exports.ConnectionTypeGroup = {}));
+ // The type of metadata a column contains
+ var CubeMetadataCategory;
+ (function (CubeMetadataCategory) {
+ // cube's name
+ CubeMetadataCategory["CMC_Name"] = "name";
+ // cube's description
+ CubeMetadataCategory["CMC_Description"] = "description";
+ // cube's last updated timestamp
+ CubeMetadataCategory["CMC_LastUpdated"] = "last-updated";
+ // invalid
+ CubeMetadataCategory["CMC_Invalid"] = "invalid";
+ })(CubeMetadataCategory = exports.CubeMetadataCategory || (exports.CubeMetadataCategory = {}));
+ // The type of widget to display to the user when they are specifying connection info
+ var ConnectionWidgetType;
+ (function (ConnectionWidgetType) {
+ // show the join area
+ ConnectionWidgetType["CWT_JoinArea"] = "join-area";
+ // show the cube selection ui
+ ConnectionWidgetType["CWT_CubeSelection"] = "cube-selection";
+ // show the google analytics ui
+ ConnectionWidgetType["CWT_GoogleAnalytics"] = "google-analytics";
+ // show the tableau server ui
+ ConnectionWidgetType["CWT_TableauServer"] = "tableau-server";
+ // do not show any connection widget
+ ConnectionWidgetType["CWT_NoWidget"] = "no-widget";
+ // invalid
+ ConnectionWidgetType["CWT_Invalid"] = "invalid";
+ })(ConnectionWidgetType = exports.ConnectionWidgetType || (exports.ConnectionWidgetType = {}));
+ // The type of google analytics basic info
+ var GoogleBasicInfoType;
+ (function (GoogleBasicInfoType) {
+ // google analytics account
+ GoogleBasicInfoType["GA_Account"] = "ga-account";
+ // google analytics property
+ GoogleBasicInfoType["GA_Property"] = "ga-property";
+ // google analytics view
+ GoogleBasicInfoType["GA_View"] = "ga-view";
+ // invalid
+ GoogleBasicInfoType["GA_Invalid"] = "invalid";
+ })(GoogleBasicInfoType = exports.GoogleBasicInfoType || (exports.GoogleBasicInfoType = {}));
+ // The way in which a piece of connection information is specified
+ var ConnectionSpecificationType;
+ (function (ConnectionSpecificationType) {
+ // Uses a combo box
+ ConnectionSpecificationType["CST_ComboBox"] = "combo-box";
+ // Uses a line edit
+ ConnectionSpecificationType["CST_LineEdit"] = "line-edit";
+ // Uses a line edit with a browse button next to it
+ ConnectionSpecificationType["CST_LineEditBrowse"] = "line-edit-browse";
+ // invalid
+ ConnectionSpecificationType["CST_Invalid"] = "invalid";
+ })(ConnectionSpecificationType = exports.ConnectionSpecificationType || (exports.ConnectionSpecificationType = {}));
+ // GA Date Range
+ var DateRange;
+ (function (DateRange) {
+ //
+ DateRange["DateRangeFirst"] = "date-range-first";
+ //
+ DateRange["DateRangeLast30Days"] = "date-range-last30";
+ //
+ DateRange["DateRangeToday"] = "date-range-today";
+ //
+ DateRange["DateRangeYesterday"] = "date-range-yesterday";
+ //
+ DateRange["DateRangeLastWeek"] = "date-range-last-week";
+ //
+ DateRange["DateRangeLastMonth"] = "date-range-last-month";
+ //
+ DateRange["DateRangeLastYear"] = "date-range-last-year";
+ //
+ DateRange["DateRangeThisWeekToYesterday"] = "date-range-this-week-to-yesterday";
+ //
+ DateRange["DateRangeThisMonthToYesterday"] = "date-range-this-month-to-yesterday";
+ //
+ DateRange["DateRangeThisYearToYesterday"] = "date-range-this-year-to-yesterday";
+ //
+ DateRange["DateRangeLastWeekToYesterday"] = "date-range-last-week-to-yesterday";
+ //
+ DateRange["DateRangeLastMonthToYesterday"] = "date-range-last-month-to-yesterday";
+ //
+ DateRange["DateRangeLastYearToYesterday"] = "date-range-last-year-to-yesterday";
+ //
+ DateRange["DateRangeFixedRange"] = "date-range-fixed-range";
+ //
+ DateRange["DateRangeFixedStart"] = "date-range-fixed-start";
+ //
+ DateRange["DateRangeCount"] = "date-range-count";
+ })(DateRange = exports.DateRange || (exports.DateRange = {}));
+ // Specifies the type of widget to show in ConnectServerWidget
+ var ConnectServerWidgetType;
+ (function (ConnectServerWidgetType) {
+ // invalid
+ ConnectServerWidgetType["CSWT_Invalid"] = "invalid";
+ // microsoft access
+ ConnectServerWidgetType["CSWT_Access"] = "access";
+ // generic odbc
+ ConnectServerWidgetType["CSWT_ODBC"] = "odbc";
+ // cubes
+ ConnectServerWidgetType["CSWT_Cube"] = "cube";
+ // relational data sources
+ ConnectServerWidgetType["CSWT_Relational"] = "relational";
+ })(ConnectServerWidgetType = exports.ConnectServerWidgetType || (exports.ConnectServerWidgetType = {}));
+ //
+ var AuthenticationEnumsMode;
+ (function (AuthenticationEnumsMode) {
+ // no authentication widget
+ AuthenticationEnumsMode["AuthModeNone"] = "auth-mode-none";
+ // username and password
+ AuthenticationEnumsMode["AuthModeBasic"] = "auth-mode-basic";
+ // username and password can be blank
+ AuthenticationEnumsMode["AuthModeBasicNoValidateFields"] = "auth-mode-basic-no-validate-fields";
+ // only username
+ AuthenticationEnumsMode["AuthModeBasicUserNameOnly"] = "auth-mode-basic-username-only";
+ // aws access key and secret ID
+ AuthenticationEnumsMode["AuthModeBasicAWS"] = "auth-mode-basic-aws";
+ // username, password, and a list of AuthOptions with radio buttons
+ AuthenticationEnumsMode["AuthModeRadio"] = "auth-mode-radio";
+ // Like AuthModeRadio, but enable username/password even for integrated auth
+ AuthenticationEnumsMode["AuthModeRadioUnindented"] = "auth-mode-radio-unindented";
+ // username, password, and a list of AuthOptions with a combobox
+ AuthenticationEnumsMode["AuthModeComboBox"] = "auth-mode-combobox";
+ // Like AuthModeCombobox, but with option not requiring username/password
+ AuthenticationEnumsMode["AuthModeComboBoxIntegrated"] = "auth-mode-combobox-integrated";
+ // driver, authentication, username, realm, etc
+ AuthenticationEnumsMode["AuthModeHive"] = "auth-mode-hive";
+ // none, azure marketplace account, explicit
+ AuthenticationEnumsMode["AuthModeOData"] = "auth-mode-odata";
+ // edition, authentication, sso domain, etc
+ AuthenticationEnumsMode["AuthModeSharePoint"] = "auth-mode-sharepoint";
+ // username, password, client, & language
+ AuthenticationEnumsMode["AuthModeSAPBW"] = "auth-mode-sapbw";
+ // Ability to switch between two different auth modes each in their own modal dialogs (basic and oauth)
+ AuthenticationEnumsMode["AuthModeSwitchModal"] = "auth-mode-switch-modal";
+ })(AuthenticationEnumsMode = exports.AuthenticationEnumsMode || (exports.AuthenticationEnumsMode = {}));
+ //
+ var AuthenticationEnumsReconnectMode;
+ (function (AuthenticationEnumsReconnectMode) {
+ // Auth not needed for reconnect
+ AuthenticationEnumsReconnectMode["ReconnectModeNone"] = "reconnect-mode-none";
+ // Username and password
+ AuthenticationEnumsReconnectMode["ReconnectModeBasic"] = "reconnect-mode-basic";
+ // Access file
+ AuthenticationEnumsReconnectMode["ReconnectModeAccess"] = "reconnect-mode-access";
+ // Microsoft Azure Data Market (OData)
+ AuthenticationEnumsReconnectMode["ReconnectModeDataMarket"] = "reconnect-mode-data-market";
+ // Google OAuth
+ AuthenticationEnumsReconnectMode["ReconnectModeGoogleOAuth"] = "reconnect-mode-google-oauth";
+ // SalesforceOAuth, with the option of username/password auth
+ AuthenticationEnumsReconnectMode["ReconnectModeSalesforceOAuth"] = "reconnect-mode-salesforce-oauth";
+ // Web data connector
+ AuthenticationEnumsReconnectMode["ReconnectModeWebData"] = "reconnect-mode-web-data";
+ })(AuthenticationEnumsReconnectMode = exports.AuthenticationEnumsReconnectMode || (exports.AuthenticationEnumsReconnectMode = {}));
+ //
+ var AuthenticationEnumsAuthOption;
+ (function (AuthenticationEnumsAuthOption) {
+ // FIRST
+ AuthenticationEnumsAuthOption["AuthExplicit"] = "auth-option-explicit";
+ //
+ AuthenticationEnumsAuthOption["AuthExplicitUnindented"] = "auth-option-explicit-unindented";
+ //
+ AuthenticationEnumsAuthOption["AuthUseWindows"] = "auth-option-use-windows";
+ //
+ AuthenticationEnumsAuthOption["AuthUseWindowsPreferred"] = "auth-option-windows-preferred";
+ //
+ AuthenticationEnumsAuthOption["AuthTeradata"] = "auth-option-teradata";
+ //
+ AuthenticationEnumsAuthOption["AuthLDAP"] = "auth-option-ldap";
+ //
+ AuthenticationEnumsAuthOption["AuthVirtualNode"] = "auth-option-virtual-node";
+ //
+ AuthenticationEnumsAuthOption["AuthODataAccount"] = "auth-option-odata";
+ //
+ AuthenticationEnumsAuthOption["AuthNone"] = "auth-option-none";
+ //
+ AuthenticationEnumsAuthOption["AuthKerberos"] = "auth-option-kerberos";
+ // Introduced for Kerberos with fallback, recognizing that the db may or may not be on Windows
+ AuthenticationEnumsAuthOption["AuthIntegrated"] = "auth-option-integrated";
+ //
+ AuthenticationEnumsAuthOption["AuthUsername"] = "auth-option-username";
+ //
+ AuthenticationEnumsAuthOption["AuthUsernameAndPassword"] = "auth-option-username-and-password";
+ //
+ AuthenticationEnumsAuthOption["AuthSSL"] = "auth-option-ssl";
+ //
+ AuthenticationEnumsAuthOption["AuthHDIEmulator"] = "auth-hdi-emulator";
+ //
+ AuthenticationEnumsAuthOption["AuthHDIService"] = "auth-hdi-service";
+ //
+ AuthenticationEnumsAuthOption["AuthHTTP"] = "auth-http";
+ //
+ AuthenticationEnumsAuthOption["AuthHTTPS"] = "auth-https";
+ //
+ AuthenticationEnumsAuthOption["AuthAccessNoSecurity"] = "auth-option-access-no";
+ //
+ AuthenticationEnumsAuthOption["AuthAccessYesSecurity"] = "auth-option-access-yes";
+ //
+ AuthenticationEnumsAuthOption["AuthOAuth"] = "auth-oauth";
+ //
+ AuthenticationEnumsAuthOption["AuthForms"] = "auth-forms";
+ //
+ AuthenticationEnumsAuthOption["AuthThirdPartySSO"] = "auth-third-party-SSO";
+ // LAST
+ AuthenticationEnumsAuthOption["AuthInvalid"] = "auth-option-invalid";
+ //
+ AuthenticationEnumsAuthOption["AuthSAMLIdP"] = "auth-option-saml-idp";
+ })(AuthenticationEnumsAuthOption = exports.AuthenticationEnumsAuthOption || (exports.AuthenticationEnumsAuthOption = {}));
+ // data source validation modes
+ var DataSourceParserValidationMode;
+ (function (DataSourceParserValidationMode) {
+ //
+ DataSourceParserValidationMode["WorkbookLoadValidation"] = "workbook-load-validation";
+ //
+ DataSourceParserValidationMode["AutoValidation"] = "auto-validation";
+ //
+ DataSourceParserValidationMode["ForceValidation"] = "force-validation";
+ //
+ DataSourceParserValidationMode["PreventValidation"] = "prevent-validation";
+ //
+ DataSourceParserValidationMode["PreventValidationAndThrow"] = "prevent-validation-and-throw";
+ })(DataSourceParserValidationMode = exports.DataSourceParserValidationMode || (exports.DataSourceParserValidationMode = {}));
+ // Enum for DataGrid/MetadataGrid fields reordering
+ var FieldOrderType;
+ (function (FieldOrderType) {
+ //
+ FieldOrderType["DATASOURCE_ORDER"] = "datasource-order";
+ //
+ FieldOrderType["ALPHA_PER_TABLE"] = "alpha-per-table";
+ //
+ FieldOrderType["ALPHABETICAL_ORDER"] = "alphabetical-order";
+ //
+ FieldOrderType["CUSTOM_ORDER"] = "custom-order";
+ })(FieldOrderType = exports.FieldOrderType || (exports.FieldOrderType = {}));
+ //
+ var LineInterpolationMode;
+ (function (LineInterpolationMode) {
+ //
+ LineInterpolationMode["LIM_Linear"] = "lim-linear";
+ //
+ LineInterpolationMode["LIM_Step"] = "lim-step";
+ //
+ LineInterpolationMode["LIM_Jump"] = "lim-jump";
+ })(LineInterpolationMode = exports.LineInterpolationMode || (exports.LineInterpolationMode = {}));
+ //
+ var LineMarkerPosition;
+ (function (LineMarkerPosition) {
+ //
+ LineMarkerPosition["LMP_Left"] = "lmp-left";
+ //
+ LineMarkerPosition["LMP_Center"] = "lmp-center";
+ //
+ LineMarkerPosition["LMP_Right"] = "lmp-right";
+ })(LineMarkerPosition = exports.LineMarkerPosition || (exports.LineMarkerPosition = {}));
+ //
+ var FolderRole;
+ (function (FolderRole) {
+ //
+ FolderRole["FOLDER_DIMENSIONS"] = "dimensions";
+ //
+ FolderRole["FOLDER_MEASURES"] = "measure";
+ //
+ FolderRole["FOLDER_GROUPS"] = "groups";
+ //
+ FolderRole["FOLDER_PARAMETERS"] = "parameters";
+ })(FolderRole = exports.FolderRole || (exports.FolderRole = {}));
+ //
+ var FieldTypeIconSet;
+ (function (FieldTypeIconSet) {
+ //
+ FieldTypeIconSet["FT_SET_ALL"] = "all";
+ //
+ FieldTypeIconSet["FT_SET_CUBE_MEASURES"] = "cube-measures";
+ //
+ FieldTypeIconSet["FT_SET_CUBE_DIMENSIONS"] = "cube-dimensions";
+ })(FieldTypeIconSet = exports.FieldTypeIconSet || (exports.FieldTypeIconSet = {}));
+ //
+ var FieldPivotStrategy;
+ (function (FieldPivotStrategy) {
+ //
+ FieldPivotStrategy["PIVOT_ON_KEY"] = "pivot-on-key";
+ //
+ FieldPivotStrategy["PIVOT_ON_ALIAS"] = "pivot-on-alias";
+ })(FieldPivotStrategy = exports.FieldPivotStrategy || (exports.FieldPivotStrategy = {}));
+ //
+ var AliasType;
+ (function (AliasType) {
+ //
+ AliasType["ALIAS_NOTSET"] = "alias-not-set";
+ //
+ AliasType["ALIAS_BEGIN"] = "alias-begin";
+ //
+ AliasType["ALIAS_KEY"] = "alias-key";
+ //
+ AliasType["ALIAS_KEY_NAME"] = "alias-key-name";
+ //
+ AliasType["ALIAS_KEY_MEDNAME"] = "alias-key-medname";
+ //
+ AliasType["ALIAS_KEY_LONGNAME"] = "alias-key-longname";
+ //
+ AliasType["ALIAS_NAME"] = "alias-name";
+ //
+ AliasType["ALIAS_NAME_KEY"] = "alias-name-key";
+ //
+ AliasType["ALIAS_MEDNAME"] = "alias-medname";
+ //
+ AliasType["ALIAS_MEDNAME_KEY"] = "alias-medname-key";
+ //
+ AliasType["ALIAS_LONGNAME"] = "alias-longname";
+ //
+ AliasType["ALIAS_LONGNAME_KEY"] = "alias-longname-key";
+ //
+ AliasType["ALIAS_END"] = "alias-end";
+ })(AliasType = exports.AliasType || (exports.AliasType = {}));
+ //
+ var AliasTypes;
+ (function (AliasTypes) {
+ //
+ AliasTypes["MASK_ALIAS_KEY"] = "mask-alias-key";
+ //
+ AliasTypes["MASK_ALIAS_NAME"] = "mask-alias-name";
+ //
+ AliasTypes["MASK_ALIAS_MEDNAME"] = "mask-alias-medname";
+ //
+ AliasTypes["MASK_ALIAS_LONGNAME"] = "mask-alias-longname";
+ })(AliasTypes = exports.AliasTypes || (exports.AliasTypes = {}));
+ //
+ var FieldRole;
+ (function (FieldRole) {
+ //
+ FieldRole["ROLE_DIMENSION"] = "dimension";
+ //
+ FieldRole["ROLE_MEASURE"] = "measure";
+ //
+ FieldRole["ROLE_UNKNOWN"] = "unknown";
+ })(FieldRole = exports.FieldRole || (exports.FieldRole = {}));
+ //
+ var FieldType;
+ (function (FieldType) {
+ //
+ FieldType["TYPE_QUANTITATIVE"] = "quantitative";
+ //
+ FieldType["TYPE_ORDINAL"] = "ordinal";
+ //
+ FieldType["TYPE_NOMINAL"] = "nominal";
+ //
+ FieldType["TYPE_UNKNOWN"] = "unknown";
+ })(FieldType = exports.FieldType || (exports.FieldType = {}));
+ //
+ var DataSourceOrder;
+ (function (DataSourceOrder) {
+ //
+ DataSourceOrder["DSO_ALPHABETIC"] = "dso-alphabetic";
+ //
+ DataSourceOrder["DSO_ORDINAL"] = "dso-ordinal";
+ })(DataSourceOrder = exports.DataSourceOrder || (exports.DataSourceOrder = {}));
+ // Where the column comes from
+ var ColumnClass;
+ (function (ColumnClass) {
+ // A metadata column (O or Q Measures)
+ ColumnClass["COL_METADATA"] = "col-metadata";
+ // A physical column on the database
+ ColumnClass["COL_DATABASE"] = "col-database";
+ // A numberic bin (a special kind of calculated column)
+ ColumnClass["COL_NUMERICBIN"] = "col-numericbin";
+ // A Categorical bin (group)
+ ColumnClass["COL_CATEGORICALBIN"] = "col-categoricalbin";
+ // A column instance
+ ColumnClass["COL_INSTANCE"] = "col-instance";
+ // A (raw) mdx calculated column
+ ColumnClass["COL_MDXCALC"] = "col-mdxcalc";
+ // A user-defined calculated column, Tableau expression syntax
+ ColumnClass["COL_USERCALC"] = "col-usercalc";
+ // A column that would have been COL_DATABASE, but the underlying database column does not exist
+ ColumnClass["COL_DANGLING"] = "col-dangling";
+ // A column that contains local supplied data (e.g. Latitude)
+ ColumnClass["COL_LOCALDATA"] = "col-localdata";
+ // A column that contains a visual model attribute (e.g. PaneIndex, Color, ...)
+ ColumnClass["COL_VISUALDATA"] = "col-visualdata";
+ // A column that's a Group (a " Set " in UI terminology)
+ ColumnClass["COL_GROUP"] = "col-group";
+ })(ColumnClass = exports.ColumnClass || (exports.ColumnClass = {}));
+ //
+ var VTAggType;
+ (function (VTAggType) {
+ //
+ VTAggType["VTAGG_SUM"] = "sum";
+ //
+ VTAggType["VTAGG_AVG"] = "avg";
+ //
+ VTAggType["VTAGG_MIN"] = "min";
+ //
+ VTAggType["VTAGG_MAX"] = "max";
+ //
+ VTAggType["VTAGG_SERVER"] = "server";
+ //
+ VTAggType["VTAGG_NONE"] = "none";
+ //
+ VTAggType["VTAGG_DEFAULT"] = "default";
+ })(VTAggType = exports.VTAggType || (exports.VTAggType = {}));
+ //
+ var EntityType;
+ (function (EntityType) {
+ //
+ EntityType["NoEnumerationEntity"] = "no-enumeration-entity";
+ //
+ EntityType["DatabaseEntity"] = "database-entity";
+ //
+ EntityType["SchemaEntity"] = "schema-entity";
+ //
+ EntityType["TableEntity"] = "table-entity";
+ })(EntityType = exports.EntityType || (exports.EntityType = {}));
+ //
+ var PickEntitySearchType;
+ (function (PickEntitySearchType) {
+ //
+ PickEntitySearchType["PickEntitySearchType_StartsWith"] = "starts-with";
+ //
+ PickEntitySearchType["PickEntitySearchType_Contains"] = "contains";
+ //
+ PickEntitySearchType["PickEntitySearchType_ExactMatch"] = "exact-match";
+ //
+ PickEntitySearchType["PickEntitySearchType_DEFAULT"] = "default";
+ })(PickEntitySearchType = exports.PickEntitySearchType || (exports.PickEntitySearchType = {}));
+ // Parsing methods and structures.
+ var ExpressionOp;
+ (function (ExpressionOp) {
+ //
+ ExpressionOp["LogicalOr"] = "op-logical-or";
+ //
+ ExpressionOp["LogicalAnd"] = "op-logical-and";
+ //
+ ExpressionOp["LogicalNot"] = "op-logical-not";
+ //
+ ExpressionOp["BitwiseXOr"] = "op-bitwise-xor";
+ //
+ ExpressionOp["BitwiseOr"] = "op-bitwise-or";
+ //
+ ExpressionOp["Equals"] = "op-equals";
+ //
+ ExpressionOp["Greater"] = "op-greater";
+ //
+ ExpressionOp["Less"] = "op-less";
+ //
+ ExpressionOp["GEqual"] = "op-gequal";
+ //
+ ExpressionOp["LEqual"] = "op-lequal";
+ //
+ ExpressionOp["NEqual"] = "op-nequal";
+ //
+ ExpressionOp["Plus"] = "op-plus";
+ //
+ ExpressionOp["Minus"] = "op-minus";
+ //
+ ExpressionOp["BitwiseAnd"] = "op-bitwise-and";
+ //
+ ExpressionOp["Multiply"] = "op-multiply";
+ //
+ ExpressionOp["Divide"] = "op-divide";
+ //
+ ExpressionOp["Modulo"] = "op-modulo";
+ //
+ ExpressionOp["Power"] = "op-power";
+ //
+ ExpressionOp["Positive"] = "op-positive";
+ //
+ ExpressionOp["Negative"] = "op-negative";
+ //
+ ExpressionOp["BitwiseNot"] = "op-bitwise-not";
+ //
+ ExpressionOp["Column"] = "op-column";
+ //
+ ExpressionOp["String"] = "op-string";
+ //
+ ExpressionOp["Number"] = "op-number";
+ //
+ ExpressionOp["Date"] = "op-date";
+ //
+ ExpressionOp["Boolean"] = "op-boolean";
+ //
+ ExpressionOp["Funcall"] = "op-funcall";
+ //
+ ExpressionOp["LParen"] = "op-lparen";
+ //
+ ExpressionOp["RParen"] = "op-rparen";
+ //
+ ExpressionOp["Comma"] = "op-comma";
+ //
+ ExpressionOp["Ident"] = "op-ident";
+ //
+ ExpressionOp["Null"] = "op-null";
+ //
+ ExpressionOp["If"] = "op-if";
+ //
+ ExpressionOp["Elseif"] = "op-elseif";
+ //
+ ExpressionOp["Case"] = "op-case";
+ //
+ ExpressionOp["When"] = "op-when";
+ //
+ ExpressionOp["Then"] = "op-then";
+ //
+ ExpressionOp["Else"] = "op-else";
+ //
+ ExpressionOp["EndExpr"] = "op-endexpr";
+ //
+ ExpressionOp["Whitespace"] = "op-whitespace";
+ //
+ ExpressionOp["Comment"] = "op-comment";
+ //
+ ExpressionOp["LBrace"] = "op-lbrace";
+ //
+ ExpressionOp["RBrace"] = "op-rbrace";
+ //
+ ExpressionOp["Colon"] = "op-colon";
+ //
+ ExpressionOp["Bar"] = "op-bar";
+ //
+ ExpressionOp["Txtype"] = "op-txtype";
+ //
+ ExpressionOp["End"] = "op-end";
+ //
+ ExpressionOp["RBrackets"] = "op-rbrackets";
+ // used to represent invalid tokens
+ ExpressionOp["Invalid"] = "op-invalid";
+ })(ExpressionOp = exports.ExpressionOp || (exports.ExpressionOp = {}));
+ // tri-state bool
+ var TriBool;
+ (function (TriBool) {
+ //
+ TriBool["TB_Invalid"] = "tribool-invalid";
+ //
+ TriBool["TB_False"] = "tribool-false";
+ //
+ TriBool["TB_True"] = "tribool-true";
+ })(TriBool = exports.TriBool || (exports.TriBool = {}));
+ // table calc reference options set
+ var ReferenceOptionsSet;
+ (function (ReferenceOptionsSet) {
+ //
+ ReferenceOptionsSet["ROS_Relative"] = "reference-options-set-relative";
+ //
+ ReferenceOptionsSet["ROS_Fixed"] = "reference-options-set-fixed";
+ //
+ ReferenceOptionsSet["ROS_Parameter"] = "reference-options-set-parameter";
+ //
+ ReferenceOptionsSet["ROS_None"] = "reference-options-set-none";
+ })(ReferenceOptionsSet = exports.ReferenceOptionsSet || (exports.ReferenceOptionsSet = {}));
+ // widget state
+ var WidgetState;
+ (function (WidgetState) {
+ //
+ WidgetState["Hidden"] = "widget-state-hidden";
+ //
+ WidgetState["Disabled"] = "widget-state-disabled";
+ //
+ WidgetState["Enabled"] = "widget-state-enabled";
+ })(WidgetState = exports.WidgetState || (exports.WidgetState = {}));
+ // rank type
+ var RankType;
+ (function (RankType) {
+ //
+ RankType["Competition"] = "rank-type-competition";
+ //
+ RankType["ModifiedCompetition"] = "rank-type-modified-competition";
+ //
+ RankType["Dense"] = "rank-type-dense";
+ //
+ RankType["Unique"] = "rank-type-unique";
+ })(RankType = exports.RankType || (exports.RankType = {}));
+ //
+ var TableCalcCommandType;
+ (function (TableCalcCommandType) {
+ //
+ TableCalcCommandType["TableCalcCommandClear"] = "clear";
+ })(TableCalcCommandType = exports.TableCalcCommandType || (exports.TableCalcCommandType = {}));
+ //
+ var CalcNestingLevel;
+ (function (CalcNestingLevel) {
+ //
+ CalcNestingLevel["Primary"] = "primary";
+ // used only for type != TC_CUSTOM
+ CalcNestingLevel["Secondary"] = "secondary";
+ // used only for type == TC_CUSTOM
+ CalcNestingLevel["Nested"] = "nested";
+ })(CalcNestingLevel = exports.CalcNestingLevel || (exports.CalcNestingLevel = {}));
+ //
+ var DecimalMode;
+ (function (DecimalMode) {
+ //
+ DecimalMode["DecimalModeAutomatic"] = "automatic";
+ //
+ DecimalMode["DecimalModeManual"] = "manual";
+ })(DecimalMode = exports.DecimalMode || (exports.DecimalMode = {}));
+ //
+ var TableCalcOrderingType;
+ (function (TableCalcOrderingType) {
+ // Advanced...
+ TableCalcOrderingType["OTField"] = "field";
+ // Table (Across)
+ TableCalcOrderingType["OTRows"] = "rows";
+ // Table (Down)
+ TableCalcOrderingType["OTColumns"] = "columns";
+ // Table (Across then Down)
+ TableCalcOrderingType["OTTable"] = "table";
+ // Table (Down then Across)
+ TableCalcOrderingType["OTTableColumnPrecedence"] = "table-column-precedence";
+ // Pane Across
+ TableCalcOrderingType["OTRowInPane"] = "row-in-pane";
+ // Pane (Down)
+ TableCalcOrderingType["OTColumnInPane"] = "column-in-pane";
+ // Pane (Across then Down)
+ TableCalcOrderingType["OTPane"] = "pane";
+ // Pane (Down then Across)
+ TableCalcOrderingType["OTPaneColumnPrecedence"] = "pane-column-precedence";
+ // Cell
+ TableCalcOrderingType["OTCellInPane"] = "cell-in-pane";
+ })(TableCalcOrderingType = exports.TableCalcOrderingType || (exports.TableCalcOrderingType = {}));
+ //
+ var TableCalcSortMode;
+ (function (TableCalcSortMode) {
+ //
+ TableCalcSortMode["SM_Automatic"] = "sort-mode-automatic";
+ //
+ TableCalcSortMode["SM_Custom"] = "sort-mode-custom";
+ })(TableCalcSortMode = exports.TableCalcSortMode || (exports.TableCalcSortMode = {}));
+ //
+ var TableCalcTableCalcType;
+ (function (TableCalcTableCalcType) {
+ // none (used to initialize variables)
+ TableCalcTableCalcType["TC_NONE"] = "none";
+ // Running Total
+ TableCalcTableCalcType["TC_CUMULATIVE"] = "cumulative";
+ // Moving Calculation
+ TableCalcTableCalcType["TC_WINDOW"] = "window";
+ // Difference From
+ TableCalcTableCalcType["TC_DIFF"] = "diff";
+ // Percent Difference From
+ TableCalcTableCalcType["TC_PCTDIFF"] = "pct-diff";
+ // Percent From
+ TableCalcTableCalcType["TC_PCTVALUE"] = "pct-value";
+ // Percent Of Total
+ TableCalcTableCalcType["TC_PCTTOTAL"] = "pct-total";
+ // Rank
+ TableCalcTableCalcType["TC_RANK"] = "rank";
+ // Percentile
+ TableCalcTableCalcType["TC_PCTRANK"] = "pct-rank";
+ // Custom
+ TableCalcTableCalcType["TC_CUSTOM"] = "custom";
+ })(TableCalcTableCalcType = exports.TableCalcTableCalcType || (exports.TableCalcTableCalcType = {}));
+ //
+ var QuickTableCalcCommandType;
+ (function (QuickTableCalcCommandType) {
+ //
+ QuickTableCalcCommandType["QuickTableCalcCommandRunTotal"] = "run-total";
+ //
+ QuickTableCalcCommandType["QuickTableCalcCommandDifference"] = "difference";
+ //
+ QuickTableCalcCommandType["QuickTableCalcCommandPctDiff"] = "pct-diff";
+ //
+ QuickTableCalcCommandType["QuickTableCalcCommandPctTotal"] = "pct-total";
+ //
+ QuickTableCalcCommandType["QuickTableCalcCommandRank"] = "rank";
+ //
+ QuickTableCalcCommandType["QuickTableCalcCommandPctRank"] = "pct-rank";
+ //
+ QuickTableCalcCommandType["QuickTableCalcCommandMovingAvg"] = "moving-avg";
+ //
+ QuickTableCalcCommandType["QuickTableCalcCommandYtd"] = "ytd";
+ //
+ QuickTableCalcCommandType["QuickTableCalcCommandCgr"] = "cgr";
+ //
+ QuickTableCalcCommandType["QuickTableCalcCommandYOverY"] = "y-over-y";
+ //
+ QuickTableCalcCommandType["QuickTableCalcCommandYtdGrowth"] = "ytd-growth";
+ //
+ QuickTableCalcCommandType["QuickTableCalcCommandCustom"] = "custom";
+ })(QuickTableCalcCommandType = exports.QuickTableCalcCommandType || (exports.QuickTableCalcCommandType = {}));
+ //
+ var TableCalcAddressCommandType;
+ (function (TableCalcAddressCommandType) {
+ //
+ TableCalcAddressCommandType["TableCalcAddressCommandRel"] = "rel";
+ //
+ TableCalcAddressCommandType["TableCalcAddressCommandAbs"] = "abs";
+ //
+ TableCalcAddressCommandType["TableCalcAddressCommandParam"] = "param";
+ //
+ TableCalcAddressCommandType["TableCalcAddressCommandMore"] = "more";
+ })(TableCalcAddressCommandType = exports.TableCalcAddressCommandType || (exports.TableCalcAddressCommandType = {}));
+ // relative addressing
+ var TableCalcRelativeAddress;
+ (function (TableCalcRelativeAddress) {
+ //
+ TableCalcRelativeAddress["RelAddrFirst"] = "relative-address-first";
+ //
+ TableCalcRelativeAddress["RelAddrPrevious"] = "relative-address-previous";
+ //
+ TableCalcRelativeAddress["RelAddrNext"] = "relative-address-next";
+ //
+ TableCalcRelativeAddress["RelAddrLast"] = "relative-address-last";
+ })(TableCalcRelativeAddress = exports.TableCalcRelativeAddress || (exports.TableCalcRelativeAddress = {}));
+ //
+ var CategoricalBinItemType;
+ (function (CategoricalBinItemType) {
+ //
+ CategoricalBinItemType["Unbinned"] = "unbinned";
+ //
+ CategoricalBinItemType["BinMember"] = "categorical-bin-member";
+ //
+ CategoricalBinItemType["Bin"] = "categorical-bin";
+ })(CategoricalBinItemType = exports.CategoricalBinItemType || (exports.CategoricalBinItemType = {}));
+ // The class properties
+ var CredentialTypePropertiesFlag;
+ (function (CredentialTypePropertiesFlag) {
+ //
+ CredentialTypePropertiesFlag["None"] = "none";
+ //
+ CredentialTypePropertiesFlag["GenericAuthClass"] = "generic-auth-class";
+ //
+ CredentialTypePropertiesFlag["ProviderClass"] = "provider-class";
+ //
+ CredentialTypePropertiesFlag["DataConnectionClass"] = "data-connection-class";
+ })(CredentialTypePropertiesFlag = exports.CredentialTypePropertiesFlag || (exports.CredentialTypePropertiesFlag = {}));
+ // The connector type
+ var ConnectorType;
+ (function (ConnectorType) {
+ //
+ ConnectorType["Invalid"] = "invalid";
+ //
+ ConnectorType["WebDataConnector"] = "web-data-connector";
+ //
+ ConnectorType["CloudFileConnector"] = "cloud-file-connector";
+ //
+ ConnectorType["LegacyConnector"] = "legacy-connector";
+ })(ConnectorType = exports.ConnectorType || (exports.ConnectorType = {}));
+ //
+ var TablePillIcon;
+ (function (TablePillIcon) {
+ //
+ TablePillIcon["ListItem"] = "list-item";
+ //
+ TablePillIcon["Sheet"] = "sheet";
+ //
+ TablePillIcon["FoundTable"] = "found-table";
+ //
+ TablePillIcon["NamedRange"] = "named-range";
+ //
+ TablePillIcon["StoredProcedure"] = "stored-procedure";
+ })(TablePillIcon = exports.TablePillIcon || (exports.TablePillIcon = {}));
+ //
+ var JoinValidationError;
+ (function (JoinValidationError) {
+ //
+ JoinValidationError["JVE_NoError"] = "no-error";
+ //
+ JoinValidationError["JVE_EmptyClause"] = "empty-clause";
+ //
+ JoinValidationError["JVE_TypeMismatch"] = "type-mismatch";
+ //
+ JoinValidationError["JVE_InvalidField"] = "invalid-field";
+ //
+ JoinValidationError["JVE_BadClause"] = "bad-clause";
+ //
+ JoinValidationError["JVE_BadInputRelation"] = "bad-input-relation";
+ //
+ JoinValidationError["JVE_RepeatedFieldReferences"] = "repeated-field-references";
+ //
+ JoinValidationError["JVE_UnsupportedJoinType"] = "unsupported-join-type";
+ //
+ JoinValidationError["JVE_InvalidCalculation"] = "invalid-calculation";
+ //
+ JoinValidationError["JVE_NonSpatialType"] = "non-spatial-type";
+ //
+ JoinValidationError["JVE_NonSpatialComparison"] = "non-spatial-comp";
+ //
+ JoinValidationError["JVE_Unknown"] = "unknown";
+ })(JoinValidationError = exports.JoinValidationError || (exports.JoinValidationError = {}));
+ //
+ var ConnectionTypeEnum;
+ (function (ConnectionTypeEnum) {
+ // -d-s is used to force the enum generator to generate DS with capital letters in .cs just like the .cpp
+ ConnectionTypeEnum["InvalidDS"] = "invalid-d-s";
+ //
+ ConnectionTypeEnum["FileDS"] = "file-d-s";
+ //
+ ConnectionTypeEnum["ServerDS"] = "server-d-s";
+ //
+ ConnectionTypeEnum["InternetDS"] = "internet-d-s";
+ //
+ ConnectionTypeEnum["TableauServerDS"] = "tableau-server-d-s";
+ })(ConnectionTypeEnum = exports.ConnectionTypeEnum || (exports.ConnectionTypeEnum = {}));
+ //
+ var ConnectionErrorStage;
+ (function (ConnectionErrorStage) {
+ //
+ ConnectionErrorStage["Unknown"] = "unknown";
+ //
+ ConnectionErrorStage["CreateProtocolFailed"] = "create-protocol-failed";
+ //
+ ConnectionErrorStage["LoadMetadataFailed"] = "load-metadata-failed";
+ })(ConnectionErrorStage = exports.ConnectionErrorStage || (exports.ConnectionErrorStage = {}));
+ //
+ var SortDirection;
+ (function (SortDirection) {
+ // ascending
+ SortDirection["ST_ASC"] = "asc";
+ // descending
+ SortDirection["ST_DESC"] = "desc";
+ })(SortDirection = exports.SortDirection || (exports.SortDirection = {}));
+ //
+ var SortType;
+ (function (SortType) {
+ // Use the defined ordering
+ SortType["ST_NATURAL"] = "data-source-order";
+ // Alphabetic/numeric ordering of data
+ SortType["ST_ALPHABETIC"] = "alpha";
+ // Specify a secondary field
+ SortType["ST_COMPUTED"] = "field";
+ // Manually defined ordering
+ SortType["ST_MANUAL"] = "manual";
+ })(SortType = exports.SortType || (exports.SortType = {}));
+ //
+ var SortEnd;
+ (function (SortEnd) {
+ //
+ SortEnd["ST_TOP"] = "top";
+ //
+ SortEnd["ST_BOTTOM"] = "bottom";
+ })(SortEnd = exports.SortEnd || (exports.SortEnd = {}));
+ // Enumeration for the type of join connecting two tables
+ var SQLJoinType;
+ (function (SQLJoinType) {
+ //
+ SQLJoinType["SQL_InnerJoin"] = "sql-inner-join";
+ //
+ SQLJoinType["SQL_LeftJoin"] = "sql-left-join";
+ //
+ SQLJoinType["SQL_RightJoin"] = "sql-right-join";
+ //
+ SQLJoinType["SQL_FullJoin"] = "sql-full-join";
+ //
+ SQLJoinType["SQL_CrossJoin"] = "sql-cross-join";
+ })(SQLJoinType = exports.SQLJoinType || (exports.SQLJoinType = {}));
+ // The result of parsing and setting a data value for a property of a quantitative axis.
+ var SetAxisDataValueResult;
+ (function (SetAxisDataValueResult) {
+ //
+ SetAxisDataValueResult["Success"] = "set-axis-data-value-result-success";
+ //
+ SetAxisDataValueResult["ParseFailure"] = "set-axis-data-value-result-parse-failure";
+ //
+ SetAxisDataValueResult["ValueFailure"] = "set-axis-data-value-result-value-failure";
+ })(SetAxisDataValueResult = exports.SetAxisDataValueResult || (exports.SetAxisDataValueResult = {}));
+ // The type of an axis' extent
+ var AxisExtentType;
+ (function (AxisExtentType) {
+ //
+ AxisExtentType["Automatic"] = "axis-extent-automatic";
+ //
+ AxisExtentType["Uniform"] = "axis-extent-uniform";
+ //
+ AxisExtentType["Independent"] = "axis-extent-independent";
+ //
+ AxisExtentType["Fixed"] = "axis-extent-fixed";
+ })(AxisExtentType = exports.AxisExtentType || (exports.AxisExtentType = {}));
+ // Enumeration of units tick spacing can take
+ var TickSpacingUnits;
+ (function (TickSpacingUnits) {
+ //
+ TickSpacingUnits["NoUnits"] = "no-units";
+ //
+ TickSpacingUnits["Years"] = "years";
+ //
+ TickSpacingUnits["Quarters"] = "quarters";
+ //
+ TickSpacingUnits["Months"] = "months";
+ //
+ TickSpacingUnits["Weeks"] = "weeks";
+ //
+ TickSpacingUnits["Days"] = "days";
+ //
+ TickSpacingUnits["Hours"] = "hours";
+ //
+ TickSpacingUnits["Minutes"] = "minutes";
+ //
+ TickSpacingUnits["Seconds"] = "seconds";
+ })(TickSpacingUnits = exports.TickSpacingUnits || (exports.TickSpacingUnits = {}));
+ // Enumeration of whether totals are included in or excluded from the color encoding
+ var TotalsInclusion;
+ (function (TotalsInclusion) {
+ // Totals included in color encoding
+ TotalsInclusion["IncludeTotals"] = "include-totals";
+ // Totals excluded from color encoding
+ TotalsInclusion["ExcludeTotals"] = "exclude-totals";
+ })(TotalsInclusion = exports.TotalsInclusion || (exports.TotalsInclusion = {}));
+ // How tick marks are being calculated
+ var TickMarkState;
+ (function (TickMarkState) {
+ //
+ TickMarkState["TicksAutomatic"] = "ticks-automatic";
+ //
+ TickMarkState["TicksManual"] = "ticks-manual";
+ //
+ TickMarkState["TicksNone"] = "ticks-None";
+ })(TickMarkState = exports.TickMarkState || (exports.TickMarkState = {}));
+ // Setting for type of axis range
+ var AxisRangeType;
+ (function (AxisRangeType) {
+ //
+ AxisRangeType["AutomaticRange"] = "automatic-range";
+ //
+ AxisRangeType["UniformRange"] = "uniform-range";
+ //
+ AxisRangeType["IndependentRange"] = "independent-range";
+ //
+ AxisRangeType["FixedRange"] = "fixed-range";
+ //
+ AxisRangeType["FixedMin"] = "fixed-min";
+ //
+ AxisRangeType["FixedMax"] = "fixed-max";
+ //
+ AxisRangeType["FixedMinUniformMax"] = "fixed-min-uniform-max";
+ //
+ AxisRangeType["FixedMinIndependentMax"] = "fixed-min-independent-max";
+ //
+ AxisRangeType["FixedMaxUniformMin"] = "fixed-max-uniform-min";
+ //
+ AxisRangeType["FixedMaxIndependentMin"] = "fixed-max-independent-min";
+ //
+ AxisRangeType["FixedRangeOrdinal"] = "fixed-range-ordinal";
+ })(AxisRangeType = exports.AxisRangeType || (exports.AxisRangeType = {}));
+ // represents type of widget on the toolbar of rich text editor
+ var RichTextEditorWidgetKey;
+ (function (RichTextEditorWidgetKey) {
+ //
+ RichTextEditorWidgetKey["None"] = "none";
+ //
+ RichTextEditorWidgetKey["FontSize"] = "fontsize";
+ //
+ RichTextEditorWidgetKey["FontName"] = "fontname";
+ //
+ RichTextEditorWidgetKey["FontColor"] = "color";
+ //
+ RichTextEditorWidgetKey["Bold"] = "bold";
+ //
+ RichTextEditorWidgetKey["Italic"] = "italic";
+ //
+ RichTextEditorWidgetKey["Underline"] = "underline";
+ //
+ RichTextEditorWidgetKey["AlignLeft"] = "justifyleft";
+ //
+ RichTextEditorWidgetKey["AlignCenter"] = "justifycenter";
+ //
+ RichTextEditorWidgetKey["AlignRight"] = "justifyright";
+ //
+ RichTextEditorWidgetKey["ClearFormatting"] = "clearformatting";
+ //
+ RichTextEditorWidgetKey["TableauKeywords"] = "tableaukeywords";
+ })(RichTextEditorWidgetKey = exports.RichTextEditorWidgetKey || (exports.RichTextEditorWidgetKey = {}));
+ //
+ var CellSizeChange;
+ (function (CellSizeChange) {
+ //
+ CellSizeChange["CSC_Taller"] = "taller";
+ //
+ CellSizeChange["CSC_Shorter"] = "shorter";
+ //
+ CellSizeChange["CSC_Wider"] = "wider";
+ //
+ CellSizeChange["CSC_Narrower"] = "narrower";
+ //
+ CellSizeChange["CSC_Bigger"] = "bigger";
+ //
+ CellSizeChange["CSC_Smaller"] = "smaller";
+ })(CellSizeChange = exports.CellSizeChange || (exports.CellSizeChange = {}));
+ //
+ var CellTypeEnum;
+ (function (CellTypeEnum) {
+ //
+ CellTypeEnum["CLT_Square"] = "square";
+ //
+ CellTypeEnum["CLT_Text"] = "text";
+ })(CellTypeEnum = exports.CellTypeEnum || (exports.CellTypeEnum = {}));
+ // represents type of formatting pres model
+ var TypeOfFormatItem;
+ (function (TypeOfFormatItem) {
+ //
+ TypeOfFormatItem["FT_FormatItem"] = "formatItem";
+ //
+ TypeOfFormatItem["FT_FormatContainer"] = "formatContainer";
+ //
+ TypeOfFormatItem["FT_FormatControl"] = "formatControl";
+ })(TypeOfFormatItem = exports.TypeOfFormatItem || (exports.TypeOfFormatItem = {}));
+ // represents type of formatting container
+ var TypeOfFormatContainer;
+ (function (TypeOfFormatContainer) {
+ //
+ TypeOfFormatContainer["FT_FormatPane"] = "formatPane";
+ //
+ TypeOfFormatContainer["FT_FormatSection"] = "formatSection";
+ //
+ TypeOfFormatContainer["FT_CollapsibleSection"] = "collapsibleSection";
+ //
+ TypeOfFormatContainer["FT_CompositeContainer"] = "compositeContainer";
+ //
+ TypeOfFormatContainer["FT_UnitContainer"] = "unitContainer";
+ //
+ TypeOfFormatContainer["FT_Tab"] = "tab";
+ //
+ TypeOfFormatContainer["FT_TabGroup"] = "tabGroup";
+ })(TypeOfFormatContainer = exports.TypeOfFormatContainer || (exports.TypeOfFormatContainer = {}));
+ // represents type of formatting control
+ var TypeOfFormatControl;
+ (function (TypeOfFormatControl) {
+ //
+ TypeOfFormatControl["FT_None"] = "none";
+ //
+ TypeOfFormatControl["FT_NumericControl"] = "numeric-control";
+ //
+ TypeOfFormatControl["FT_TextControl"] = "text-control";
+ //
+ TypeOfFormatControl["FT_ColorControl"] = "color-control";
+ //
+ TypeOfFormatControl["FT_SelectorControl"] = "selector-control";
+ //
+ TypeOfFormatControl["FT_ToggleControl"] = "toggle-control";
+ })(TypeOfFormatControl = exports.TypeOfFormatControl || (exports.TypeOfFormatControl = {}));
+ // represents type of formatting widget
+ var FormatWidgetKey;
+ (function (FormatWidgetKey) {
+ //
+ FormatWidgetKey["FWK_None"] = "none";
+ //
+ FormatWidgetKey["FWK_FontFamily"] = "fontFamily";
+ //
+ FormatWidgetKey["FWK_FontSize"] = "fontSize";
+ //
+ FormatWidgetKey["FWK_ColorSwatch"] = "colorSwatch";
+ //
+ FormatWidgetKey["FWK_Bold"] = "bold";
+ //
+ FormatWidgetKey["FWK_Italics"] = "italics";
+ //
+ FormatWidgetKey["FWK_Underline"] = "underline";
+ //
+ FormatWidgetKey["FWK_LineVisibility"] = "lineVisibility";
+ //
+ FormatWidgetKey["FWK_LinePattern"] = "linePattern";
+ //
+ FormatWidgetKey["FWK_LineSize"] = "lineSize";
+ //
+ FormatWidgetKey["FWK_NumberType"] = "numericType";
+ //
+ FormatWidgetKey["FWK_DecimalPlaces"] = "decimalPlaces";
+ //
+ FormatWidgetKey["FWK_ThousandsSeparator"] = "thousandsSeparator";
+ //
+ FormatWidgetKey["FWK_NumericUnits"] = "numericUnits";
+ })(FormatWidgetKey = exports.FormatWidgetKey || (exports.FormatWidgetKey = {}));
+ // represents identifier for each node in format pane
+ var FormatNodeIdentifier;
+ (function (FormatNodeIdentifier) {
+ //
+ FormatNodeIdentifier["Format_None_Key"] = "none";
+ //
+ FormatNodeIdentifier["Format_Workbook_Key"] = "workbook";
+ //
+ FormatNodeIdentifier["Format_Font_Key"] = "font";
+ //
+ FormatNodeIdentifier["Format_Color_Key"] = "color";
+ //
+ FormatNodeIdentifier["Format_Lines_Key"] = "lines";
+ //
+ FormatNodeIdentifier["Format_FontAll_Key"] = "font-all";
+ //
+ FormatNodeIdentifier["Format_FontAllControls_Key"] = "font-all-controls";
+ //
+ FormatNodeIdentifier["Format_FontMore_Key"] = "font-more";
+ //
+ FormatNodeIdentifier["Format_FontWorksheetTitles_Key"] = "worksheet-titles";
+ //
+ FormatNodeIdentifier["Format_FontToolTip_Key"] = "font-tooltip";
+ //
+ FormatNodeIdentifier["Format_FontWorksheet_Key"] = "font-worksheet";
+ //
+ FormatNodeIdentifier["Format_FontDashTitles_Key"] = "dash-titles";
+ //
+ FormatNodeIdentifier["Format_FontStoryTitles_Key"] = "story-titles";
+ //
+ FormatNodeIdentifier["Format_FontTitlesControls_Key"] = "titles-controls";
+ //
+ FormatNodeIdentifier["Format_FontTooltipControls_Key"] = "tooltip-controls";
+ //
+ FormatNodeIdentifier["Format_FontWorksheetControls_Key"] = "worksheet-controls";
+ //
+ FormatNodeIdentifier["Format_LineMore_Key"] = "line-more";
+ //
+ FormatNodeIdentifier["Format_LineGrid_Key"] = "line-grid";
+ //
+ FormatNodeIdentifier["Format_LineGridTabs_Key"] = "line-grid-tabs";
+ //
+ FormatNodeIdentifier["Format_LineZero_Key"] = "line-zero";
+ //
+ FormatNodeIdentifier["Format_LineZeroTabs_Key"] = "line-zero-tabs";
+ //
+ FormatNodeIdentifier["Format_LineAxisTick_Key"] = "line-axis-tick";
+ //
+ FormatNodeIdentifier["Format_LineAxisTickTabs_Key"] = "line-axis-tick-tabs";
+ //
+ FormatNodeIdentifier["Format_LineAxisRuler_Key"] = "line-axis-ruler";
+ //
+ FormatNodeIdentifier["Format_LineAxisRulerTabs_Key"] = "line-axis-ruler-tabs";
+ //
+ FormatNodeIdentifier["Format_LineHeaderDivider_Key"] = "line-header-divider";
+ //
+ FormatNodeIdentifier["Format_LineHeaderDividerTabs_Key"] = "line-header-divider-tabs";
+ //
+ FormatNodeIdentifier["Format_LinePaneDivider_Key"] = "line-paneDivider";
+ //
+ FormatNodeIdentifier["Format_LinePaneDividerTabs_Key"] = "line-paneDivider-tabs";
+ //
+ FormatNodeIdentifier["Format_LineGridAll_Key"] = "line-grid-all";
+ //
+ FormatNodeIdentifier["Format_LineGridRow_Key"] = "line-grid-row";
+ //
+ FormatNodeIdentifier["Format_LineGridColumn_Key"] = "line-grid-column";
+ //
+ FormatNodeIdentifier["Format_LineZeroAll_Key"] = "line-zero-all";
+ //
+ FormatNodeIdentifier["Format_LineZeroRow_Key"] = "line-zero-row";
+ //
+ FormatNodeIdentifier["Format_LineZeroColumn_Key"] = "line-zero-column";
+ //
+ FormatNodeIdentifier["Format_LineAxisTickAll_Key"] = "line-axis-tick-all";
+ //
+ FormatNodeIdentifier["Format_LineAxisTickRow_Key"] = "line-axis-tick-row";
+ //
+ FormatNodeIdentifier["Format_LineAxisTickColumn_Key"] = "line-axis-tick-column";
+ //
+ FormatNodeIdentifier["Format_LineAxisRulerAll_Key"] = "line-axis-ruler-all";
+ //
+ FormatNodeIdentifier["Format_LineAxisRulerRow_Key"] = "line-axis-ruler-row";
+ //
+ FormatNodeIdentifier["Format_LineAxisRulerColumn_Key"] = "line-axis-ruler-column";
+ //
+ FormatNodeIdentifier["Format_LineReference_Key"] = "line-reference";
+ //
+ FormatNodeIdentifier["Format_LineDrop_Key"] = "line-drop";
+ //
+ FormatNodeIdentifier["Format_LineTrend_Key"] = "line-trend";
+ //
+ FormatNodeIdentifier["Format_LineVisibility_Key"] = "line-visibility";
+ //
+ FormatNodeIdentifier["Format_LinePattern_Key"] = "line-pattern";
+ //
+ FormatNodeIdentifier["Format_LineWidth_Key"] = "line-width";
+ //
+ FormatNodeIdentifier["Format_LineColor_Key"] = "line-color";
+ //
+ FormatNodeIdentifier["Format_TickColor_Key"] = "tick-color";
+ //
+ FormatNodeIdentifier["Format_BorderPattern_Key"] = "border-pattern";
+ //
+ FormatNodeIdentifier["Format_BorderColor_Key"] = "border-color";
+ //
+ FormatNodeIdentifier["Format_DividerColor_Key"] = "divider-color";
+ //
+ FormatNodeIdentifier["Format_FontFamily_Key"] = "font-family-key";
+ //
+ FormatNodeIdentifier["Format_FontSize_Key"] = "font-size-key";
+ //
+ FormatNodeIdentifier["Format_Bold_Key"] = "bold-key";
+ //
+ FormatNodeIdentifier["Format_Italics_Key"] = "italics-key";
+ //
+ FormatNodeIdentifier["Format_Underline_Key"] = "underline-key";
+ //
+ FormatNodeIdentifier["Format_FontColor_Key"] = "font-color-key";
+ //
+ FormatNodeIdentifier["Format_Number_Container_Key"] = "number-container";
+ //
+ FormatNodeIdentifier["Format_Number_Type_Key"] = "number-container-type";
+ //
+ FormatNodeIdentifier["Format_Number_Units_Key"] = "number-container-units";
+ //
+ FormatNodeIdentifier["Format_Number_Decimal_Key"] = "number-container-decimal";
+ //
+ FormatNodeIdentifier["Format_Number_Thousands_Separator_Key"] = "number-container-thousands-separator";
+ //
+ FormatNodeIdentifier["Format_FontPickerMinimal_Key"] = "font-picker-minimal";
+ //
+ FormatNodeIdentifier["Format_FontPickerDefault_Key"] = "font-picker-default";
+ //
+ FormatNodeIdentifier["Format_LinePickerDefault_Key"] = "line-picker-default";
+ //
+ FormatNodeIdentifier["Format_LinePickerNoVis_Key"] = "line-picker-no-visibility";
+ //
+ FormatNodeIdentifier["Format_LineAxisTickPicker_Key"] = "line-axis-tick-picker";
+ })(FormatNodeIdentifier = exports.FormatNodeIdentifier || (exports.FormatNodeIdentifier = {}));
+ // represents the color swatch that will be used in the ColorControlPresModel
+ var ColorSwatchType;
+ (function (ColorSwatchType) {
+ //
+ ColorSwatchType["CST_Dark"] = "dark-swatch";
+ //
+ ColorSwatchType["CST_Light"] = "light-swatch";
+ })(ColorSwatchType = exports.ColorSwatchType || (exports.ColorSwatchType = {}));
+ // represents the type of a style picker, affecting the preview rendering and, possibly, the layout
+ var PickerType;
+ (function (PickerType) {
+ //
+ PickerType["PT_None"] = "none";
+ //
+ PickerType["PT_Font"] = "font";
+ //
+ PickerType["PT_Line"] = "line";
+ //
+ PickerType["PT_Number"] = "number";
+ })(PickerType = exports.PickerType || (exports.PickerType = {}));
+ //
+ var UpdateScope;
+ (function (UpdateScope) {
+ //
+ UpdateScope["US_Worksheet"] = "worksheet";
+ //
+ UpdateScope["US_Dashboard"] = "dashboard";
+ //
+ UpdateScope["US_QuickFilters"] = "quick-filters";
+ //
+ UpdateScope["US_Story"] = "story";
+ })(UpdateScope = exports.UpdateScope || (exports.UpdateScope = {}));
+ //
+ var ParameterCtrlTypesDisplayMode;
+ (function (ParameterCtrlTypesDisplayMode) {
+ //
+ ParameterCtrlTypesDisplayMode["MODE_TYPE_IN"] = "type_in";
+ //
+ ParameterCtrlTypesDisplayMode["MODE_COMPACT_LIST"] = "compact";
+ //
+ ParameterCtrlTypesDisplayMode["MODE_LIST"] = "list";
+ //
+ ParameterCtrlTypesDisplayMode["MODE_SLIDER"] = "slider";
+ //
+ ParameterCtrlTypesDisplayMode["MODE_DATETIME"] = "datetime";
+ })(ParameterCtrlTypesDisplayMode = exports.ParameterCtrlTypesDisplayMode || (exports.ParameterCtrlTypesDisplayMode = {}));
+ // flags for display options
+ var ParameterCtrlTypesDisplayFlag;
+ (function (ParameterCtrlTypesDisplayFlag) {
+ //
+ ParameterCtrlTypesDisplayFlag["DISPLAY_CUSTOM_TITLE"] = "custom_title";
+ //
+ ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_SLIDER"] = "hide_slider_slider";
+ //
+ ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_READOUT"] = "hide_slider_readout";
+ //
+ ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_BUTTONS"] = "hide_slider_buttons";
+ })(ParameterCtrlTypesDisplayFlag = exports.ParameterCtrlTypesDisplayFlag || (exports.ParameterCtrlTypesDisplayFlag = {}));
+ // The follow supports 1024 custom palettes, each with 4m shapes. Encoding is palette << PaletteShift | shape.
+ var ShapeEncodeConstants;
+ (function (ShapeEncodeConstants) {
+ // Shift value for palette
+ ShapeEncodeConstants["EncodePaletteShift"] = "paletteShift";
+ // Mask for getting palette from encoded value. (Then shift down)
+ ShapeEncodeConstants["EncodePaletteMask"] = "paletteMask";
+ // Mask for getting shape from encoded value
+ ShapeEncodeConstants["EncodeShapeMask"] = "shapeMask";
+ })(ShapeEncodeConstants = exports.ShapeEncodeConstants || (exports.ShapeEncodeConstants = {}));
+ //
+ var ShapeType;
+ (function (ShapeType) {
+ //
+ ShapeType["ShapeCircle"] = "circle";
+ //
+ ShapeType["ShapeSquare"] = "square";
+ //
+ ShapeType["ShapePlus"] = "plus";
+ //
+ ShapeType["ShapeTimes"] = "times";
+ //
+ ShapeType["ShapeAsterisk"] = "asterisk";
+ //
+ ShapeType["ShapeDiamond"] = "diamond";
+ //
+ ShapeType["ShapeTriangle"] = "triangle";
+ //
+ ShapeType["ShapeDownTriangle"] = "down-triangle";
+ //
+ ShapeType["ShapeLeftTriangle"] = "left-triangle";
+ //
+ ShapeType["ShapeRightTriangle"] = "right-triangle";
+ //
+ ShapeType["MaxAllShapes"] = "invalid";
+ })(ShapeType = exports.ShapeType || (exports.ShapeType = {}));
+ //
+ var ShapePalette;
+ (function (ShapePalette) {
+ // built-in palette
+ ShapePalette["ShapePaletteFilled"] = "filled";
+ // custom palettes
+ ShapePalette["ShapePaletteCustom1"] = "custom1";
+ //
+ ShapePalette["ShapePaletteCustom2"] = "custom2";
+ //
+ ShapePalette["ShapePaletteCustom3"] = "custom3";
+ //
+ ShapePalette["ShapePaletteCustom4"] = "custom4";
+ //
+ ShapePalette["ShapePaletteCustom5"] = "custom5";
+ //
+ ShapePalette["ShapePaletteCustom6"] = "custom6";
+ //
+ ShapePalette["ShapePaletteCustom7"] = "custom7";
+ //
+ ShapePalette["ShapePaletteCustom8"] = "custom8";
+ //
+ ShapePalette["ShapePaletteCustom9"] = "custom9";
+ //
+ ShapePalette["ShapePaletteCustom10"] = "custom10";
+ //
+ ShapePalette["ShapePaletteCustom11"] = "custom11";
+ // and so on...
+ ShapePalette["ShapePaletteCustom12"] = "custom12";
+ //
+ ShapePalette["ShapePaletteHidden"] = "hidden";
+ })(ShapePalette = exports.ShapePalette || (exports.ShapePalette = {}));
+ // ShapeType and palette mapped into a single value. This enum depends on ShapeType and the implementation of ShapeManager::IntEncode.
+ var ShapeID;
+ (function (ShapeID) {
+ //
+ ShapeID["ShapeIDCircle"] = "shapeIDCircle";
+ //
+ ShapeID["ShapeIDSquare"] = "shapeIDSquare";
+ //
+ ShapeID["ShapeIDPlus"] = "shapeIDPlus";
+ //
+ ShapeID["ShapeIDTimes"] = "shapeIDTimes";
+ //
+ ShapeID["ShapeIDAsterisk"] = "shapeIDAsterisk";
+ //
+ ShapeID["ShapeIDDiamond"] = "shapeIDDiamond";
+ //
+ ShapeID["ShapeIDTriangle"] = "shapeIDTriangle";
+ //
+ ShapeID["ShapeIDDownTriangle"] = "shapeIDDownTriangle";
+ //
+ ShapeID["ShapeIDLeftTriangle"] = "shapeIDLeftTriangle";
+ //
+ ShapeID["ShapeIDRightTriangle"] = "shapeIDRightTriangle";
+ //
+ ShapeID["ShapeIDFilledCircle"] = "shapeIDFilledCircle";
+ //
+ ShapeID["ShapeIDFilledSquare"] = "shapeIDFilledSquare";
+ //
+ ShapeID["ShapeIDFilledPlus"] = "shapeIDFilledPlus";
+ //
+ ShapeID["ShapeIDFilledTimes"] = "shapeIDFilledTimes";
+ //
+ ShapeID["ShapeIDFilledStar"] = "shapeIDFilledStar";
+ //
+ ShapeID["ShapeIDFilledDiamond"] = "shapeIDFilledDiamond";
+ //
+ ShapeID["ShapeIDFilledTriangle"] = "shapeIDFilledTriangle";
+ //
+ ShapeID["ShapeIDFilledDownTriangle"] = "shapeIDFilledDownTriangle";
+ //
+ ShapeID["ShapeIDFilledLeftTriangle"] = "shapeIDFilledLeftTriangle";
+ //
+ ShapeID["ShapeIDFilledRightTriangle"] = "shapeIDFilledRightTriangle";
+ // 0+(ShapePaletteHidden< -1;
+ });
+ // Create a mapping of which index in the data dictionary our columns are in
+ var columnIndices = columns.map(function (vizDataColumn) {
+ // The columnIndex is in the same position as the paneIndex
+ var paneIndex = vizDataColumn.paneIndices.indexOf(i);
+ var columnIndex = vizDataColumn.columnIndices[paneIndex];
+ return columnIndex;
+ });
+ // Get the data for the pane we are processing
+ var vizPane = vizData.paneColumnsData.paneColumnsList[i];
+ if (vizPane.vizPaneColumns.length !== columns.length) {
+ throw api_utils_1.TableauException.error(ActiveMarksDataConverter.MALFORMED_DATA);
+ }
+ var headers = new Array();
+ var rows = new Array();
+ // Column 0 will be the tuple id column. We can use this as a counter for how many rows we have
+ var tupleIds = vizPane.vizPaneColumns[0].tupleIds;
+ var marks = new Array();
+ for (var tupleIndex = 0; tupleIndex < tupleIds.length; tupleIndex++) {
+ // TODO Need to revaluate the place of this logic. If it turns out that we need a separate command
+ // call to get the marks info, then this logic should not be here but instead in a layer above somewhere
+ var mark = {
+ type: api_internal_contract_1.MarkType.Bar,
+ color: 'red',
+ tupleId: tupleIds[tupleIndex],
+ };
+ marks.push(mark);
+ // We will have 1 less value in this row since there's the tupleId column
+ var cells = new Array(vizPane.vizPaneColumns.length - 1);
+ for (var j = 1 /* skip the first which is tuple ids */; j < vizPane.vizPaneColumns.length; j++) {
+ // Next, we need to figure out which column we are reading data for
+ var column = columns[columnIndices[j]];
+ var vizPaneColumnData = vizPane.vizPaneColumns[j];
+ // Define the header when we are processing the first row
+ if (tupleIndex === 0) {
+ var header = {
+ dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType),
+ fieldName: column.fn,
+ isReferenced: true,
+ index: j - 1,
+ fieldCaption: column.fieldCaption
+ };
+ headers.push(header);
+ }
+ var value = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.valueIndices[tupleIndex]);
+ var aliasValue = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.aliasIndices[tupleIndex]) || '';
+ var formattedValue = aliasValue; // TODO - Figure out how to use the formatStrings
+ var dataCell = {
+ value: value,
+ formattedValue: formattedValue,
+ aliasedValue: aliasValue
+ };
+ // Add our cell to this row
+ cells[j - 1] = dataCell;
+ }
+ rows.push(cells);
+ }
+ var dataTable = {
+ dataTable: rows,
+ headers: headers,
+ marks: marks
+ };
+ result.push(dataTable);
+ };
+ // The data model for the VizDataPresModel is a little strange, so this parsing takes some time to figure out.
+ // There can be multiple panes of data, so we must go through them one at a time to create data tables
+ for (var i = 0; i < vizData.paneColumnsData.paneColumnsList.length; i++) {
+ _loop_1(i);
+ }
+ return result;
+ };
+ ActiveMarksDataConverter.MALFORMED_DATA = 'Malformed data table';
+ return ActiveMarksDataConverter;
+ }());
+ exports.ActiveMarksDataConverter = ActiveMarksDataConverter;
+
+
+/***/ },
+/* 93 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var Enums = __webpack_require__(90);
+ var EnumMappings_1 = __webpack_require__(89);
+ var api_utils_1 = __webpack_require__(80);
+ /**
+ * Contains static helper methods for converting from an underlying data pres model into the api representation.
+ * Most of the code is a direct port from ApiUnderlyingDataHandler.cs
+ * https://opengrok/source/xref/teams_near/workgroup/vqlweb/scriptsharp/src/UI/Api/ApiUnderlyingDataHandler.cs
+ */
+ var UnderlyingDataConverter = (function () {
+ function UnderlyingDataConverter() {
+ }
+ UnderlyingDataConverter.lookupValueFromDictionary = function (dataDictionary, dt, index) {
+ if (index < 0) {
+ // per cl 280396 / bugzid 81197 negative data value index means that it is special
+ dt = Enums.DataType.DT_STRING;
+ index = -index - 1;
+ }
+ var result = null;
+ var rawValue = UnderlyingDataConverter.getRawValue(dataDictionary, dt, index);
+ if (rawValue !== null) {
+ result = rawValue.toString();
+ }
+ return result;
+ };
+ /* tslint:disable-next-line:no-any */
+ UnderlyingDataConverter.getRawValue = function (dataDictionary, dt, index) {
+ if (!dataDictionary.dataSegments) {
+ return null;
+ }
+ for (var _i = 0, _a = Object.keys(dataDictionary.dataSegments); _i < _a.length; _i++) {
+ var key = _a[_i];
+ var dataSegment = dataDictionary.dataSegments[key];
+ for (var _b = 0, _c = dataSegment.dataColumns; _b < _c.length; _b++) {
+ var dataColumn = _c[_b];
+ if (!dataColumn || dataColumn.dataType !== dt) {
+ continue;
+ }
+ if (index < dataColumn.dataValues.length) {
+ return dataColumn.dataValues[index];
+ }
+ index -= dataColumn.dataValues.length;
+ break;
+ }
+ }
+ return null;
+ };
+ UnderlyingDataConverter.buildDataTable = function (dataDictionary, columns) {
+ var result = {
+ dataTable: UnderlyingDataConverter.buildTable(dataDictionary, columns),
+ headers: columns.map(function (c, i) { return UnderlyingDataConverter.buildColumnModel(c, i); })
+ };
+ return result;
+ };
+ UnderlyingDataConverter.buildUnderlyingDataTable = function (isSummary, underlyingDataTable) {
+ var result = {
+ data: UnderlyingDataConverter.buildDataTable(underlyingDataTable.dataDictionary, underlyingDataTable.underlyingDataTableColumns),
+ isSummary: isSummary
+ };
+ return result;
+ };
+ UnderlyingDataConverter.buildActiveMarksTable = function (dataDictionary, vizData) {
+ throw api_utils_1.TableauException.apiNotImplemented(['buildActiveMarksTable']);
+ };
+ UnderlyingDataConverter.buildColumnModel = function (column, index) {
+ return {
+ dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType),
+ fieldName: column.fn,
+ fieldCaption: column.fieldCaption,
+ isReferenced: !!column.isReferenced,
+ index: index
+ };
+ };
+ UnderlyingDataConverter.buildTable = function (dataDictionary, columns) {
+ if (columns.length === 0) {
+ return new Array();
+ }
+ var rowCount = columns[0].formatValIdxs.length;
+ var columnCount = columns.length;
+ var result = new Array(rowCount);
+ // Initialize all of our rows
+ for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) {
+ result[rowIndex] = new Array(columnCount);
+ }
+ // Go through column-by-column and convert the values
+ for (var columnIndex = 0; columnIndex < columnCount; columnIndex++) {
+ var column = columns[columnIndex];
+ for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) {
+ var formattedValue = UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, Enums.DataType.DT_STRING, column.formatValIdxs[rowIndex]);
+ if (formattedValue === null) {
+ throw api_utils_1.TableauException.isNull(['formattedValue']);
+ }
+ var value = {
+ value: UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, column.valueIndices[rowIndex]),
+ formattedValue: formattedValue,
+ aliasedValue: formattedValue
+ };
+ result[rowIndex][columnIndex] = value;
+ }
+ }
+ return result;
+ };
+ return UnderlyingDataConverter;
+ }());
+ exports.UnderlyingDataConverter = UnderlyingDataConverter;
+
+
+/***/ },
+/* 94 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_utils_1 = __webpack_require__(80);
+ var EnumMappings_1 = __webpack_require__(89);
+ /**
+ * Class containing helper methods for converting from ApiPresModels to their PresLayer equivalents
+ *
+ * @export
+ * @class ApiToPresLayerConverter
+ */
+ var ApiToPresLayerConverter = (function () {
+ function ApiToPresLayerConverter() {
+ }
+ ApiToPresLayerConverter.convertSheetPath = function (apiSheetPath) {
+ if (!apiSheetPath) {
+ throw api_utils_1.TableauException.isUndefined(['sheetPath']);
+ }
+ var result = {
+ sheetName: apiSheetPath.sheetName,
+ isDashboard: apiSheetPath.isDashboard,
+ storyboard: apiSheetPath.storyboard || '',
+ flipboardZoneId: apiSheetPath.flipboardZoneID || 0,
+ storyPointId: apiSheetPath.storyPointID || 0,
+ };
+ return result;
+ };
+ ApiToPresLayerConverter.convertExtensionLocator = function (apiExtensionLocator) {
+ var result = {
+ addInInstanceId: apiExtensionLocator.instanceId,
+ sheetPath: ApiToPresLayerConverter.convertSheetPath(apiExtensionLocator.dashboardPath)
+ };
+ return result;
+ };
+ ApiToPresLayerConverter.convertVisualId = function (apiVisualid) {
+ var result = {
+ worksheet: apiVisualid.worksheet,
+ dashboard: apiVisualid.dashboard,
+ storyboard: apiVisualid.storyboard,
+ storyPointId: apiVisualid.storyPointID,
+ flipboardZoneId: apiVisualid.flipboardZoneID
+ };
+ return result;
+ };
+ ApiToPresLayerConverter.convertVisualIdToWorksheet = function (apiVisualId) {
+ return apiVisualId.worksheet;
+ };
+ ApiToPresLayerConverter.convertVisualIdToDashboard = function (apiVisualId) {
+ return apiVisualId.dashboard || '';
+ };
+ ApiToPresLayerConverter.convertFilterValues = function (filterValues) {
+ if (filterValues.length === 0) {
+ // platform code expects an empty string for clearing filter values
+ return [''];
+ }
+ return filterValues;
+ };
+ ApiToPresLayerConverter.convertFilterType = function (filterUpdateType) {
+ return EnumMappings_1.ApiToPresLayerEnumMappings.filterUpdateType.convert(filterUpdateType);
+ };
+ ApiToPresLayerConverter.ConvertNullOption = function (nullOption) {
+ return EnumMappings_1.ApiToPresLayerEnumMappings.nullOption.convert(nullOption);
+ };
+ ApiToPresLayerConverter.ConvertFilterDomainType = function (filterDomainType) {
+ return EnumMappings_1.ApiToPresLayerEnumMappings.filterDomainType.convert(filterDomainType);
+ };
+ return ApiToPresLayerConverter;
+ }());
+ exports.ApiToPresLayerConverter = ApiToPresLayerConverter;
+
+
+/***/ },
+/* 95 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_internal_contract_1 = __webpack_require__(79);
+ var Enums_1 = __webpack_require__(90);
+ var EnumMappings_1 = __webpack_require__(89);
+ var PresLayerToApiConverter_1 = __webpack_require__(88);
+ var FiltersConverter = (function () {
+ function FiltersConverter() {
+ }
+ FiltersConverter.convertFiltersPresModel = function (filterPms) {
+ var filters = [];
+ filterPms.forEach(function (filterPm) {
+ switch (filterPm.filterType) {
+ case Enums_1.FilterType.FLTR_Categorical: {
+ filters.push(FiltersConverter.convertCategoricalFilterPresModel(filterPm));
+ break;
+ }
+ case Enums_1.FilterType.FLTR_Quantitative: {
+ filters.push(FiltersConverter.convertQuantitativeFilterPresModel(filterPm));
+ break;
+ }
+ case Enums_1.FilterType.FLTR_RelativeDate: {
+ filters.push(FiltersConverter.convertRelativeDateFilterPresModel(filterPm));
+ break;
+ }
+ default:
+ return;
+ }
+ });
+ return filters;
+ };
+ FiltersConverter.convertCategoricalFilterPresModel = function (filterPm) {
+ var selectedValues = filterPm.categoricalFilterInfo.captionedFilterValueList.map(function (filterValue) {
+ return FiltersConverter.convertFilterValuePresModel(filterValue);
+ });
+ var filter = {
+ values: selectedValues,
+ isExclude: filterPm.categoricalFilterInfo.exclude,
+ filterType: api_internal_contract_1.FilterType.Categorical,
+ fieldCaption: filterPm.fieldCaption,
+ fieldName: filterPm.fn,
+ visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel)
+ };
+ return filter;
+ };
+ FiltersConverter.convertQuantitativeFilterPresModel = function (filterPm) {
+ var minValue = FiltersConverter.convertFilterValuePresModel(filterPm.quantitativeFilterInfo.captionedRangeMin);
+ var maxValue = FiltersConverter.convertFilterValuePresModel(filterPm.quantitativeFilterInfo.captionedRangeMax);
+ var filter = {
+ filterType: api_internal_contract_1.FilterType.Range,
+ fieldCaption: filterPm.fieldCaption,
+ fieldName: filterPm.fn,
+ visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel),
+ min: minValue,
+ max: maxValue,
+ includeNullValues: FiltersConverter.convertIncludedNullValues(filterPm.quantitativeFilterInfo.included)
+ };
+ return filter;
+ };
+ FiltersConverter.convertRelativeDateFilterPresModel = function (filterPm) {
+ var anchorDateValue = FiltersConverter.convertFilterValuePresModel(filterPm.relativeDateFilterInfo.captionedAnchorDate);
+ var filter = {
+ filterType: api_internal_contract_1.FilterType.RelativeDate,
+ fieldCaption: filterPm.fieldCaption,
+ fieldName: filterPm.fn,
+ visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel),
+ anchorDate: anchorDateValue,
+ periodType: EnumMappings_1.PresLayerToApiEnumMappings.dateStepPeriod.convert(filterPm.relativeDateFilterInfo.datePeriodType),
+ rangeType: EnumMappings_1.PresLayerToApiEnumMappings.dateRangeType.convert(filterPm.relativeDateFilterInfo.dateRangeType),
+ rangeN: filterPm.relativeDateFilterInfo.rangeN
+ };
+ return filter;
+ };
+ FiltersConverter.convertCategoricalDomain = function (domainPm) {
+ var domainValues = domainPm.captionedFilterValueList.map(function (filterValue) {
+ return FiltersConverter.convertFilterValuePresModel(filterValue);
+ });
+ return { values: domainValues };
+ };
+ FiltersConverter.convertQuantitativeDomain = function (domainPm) {
+ var minValue = FiltersConverter.convertFilterValuePresModel(domainPm.captionedRangeMin);
+ var maxValue = FiltersConverter.convertFilterValuePresModel(domainPm.captionedRangeMax);
+ return {
+ max: maxValue,
+ min: minValue
+ };
+ };
+ FiltersConverter.convertFilterValuePresModel = function (dvPM) {
+ /*tslint:disable-next-line:no-any */
+ var value;
+ switch (dvPM.dataType) {
+ case Enums_1.DataType.DT_BOOLEAN: {
+ value = Boolean(dvPM.dataValueStr);
+ break;
+ }
+ case Enums_1.DataType.DT_DATE: {
+ value = new Date(dvPM.dataValueStr);
+ break;
+ }
+ case Enums_1.DataType.DT_DATETIME: {
+ value = new Date(dvPM.dataValueStr);
+ break;
+ }
+ case Enums_1.DataType.DT_INTEGER: {
+ value = Number.parseInt(dvPM.dataValueStr);
+ break;
+ }
+ case Enums_1.DataType.DT_REAL: {
+ value = Number.parseFloat(dvPM.dataValueStr);
+ break;
+ }
+ // default to string
+ default: {
+ value = dvPM.dataValueStr;
+ break;
+ }
+ }
+ return {
+ value: value,
+ // TODO: no easy way of getting back aliased value from platform, will need to investigate further
+ aliasedValue: '',
+ formattedValue: dvPM.dataValueDisplayString
+ };
+ };
+ FiltersConverter.convertIncludedNullValues = function (includeNull) {
+ return (includeNull === Enums_1.FiltersQuantitativeIncludedValues.InRangeOrNull ||
+ includeNull === Enums_1.FiltersQuantitativeIncludedValues.All ||
+ includeNull === Enums_1.FiltersQuantitativeIncludedValues.Null);
+ };
+ return FiltersConverter;
+ }());
+ exports.FiltersConverter = FiltersConverter;
+
+
+/***/ },
+/* 96 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_utils_1 = __webpack_require__(80);
+ /**
+ * Simple registry class which creates a mapping based on two keys.
+ *
+ * @export
+ * @class MappingRegistry
+ * @template TInputEnumType
+ * @template TOutputEnumType
+ * @template TMappingStorageType
+ */
+ var MappingRegistry = (function () {
+ function MappingRegistry() {
+ this._registry = {};
+ }
+ MappingRegistry.prototype.has = function (inputType, outputType) {
+ var key = this.makeKey(inputType, outputType);
+ if (!this._registry.hasOwnProperty(key)) {
+ return false;
+ }
+ if (!this._registry[key]) {
+ return false;
+ }
+ return true;
+ };
+ MappingRegistry.prototype.get = function (inputType, outputType) {
+ if (!this.has(inputType, outputType)) {
+ throw api_utils_1.TableauException.error(MappingRegistry.MISSING_REQUESTED_MAPPING, [inputType, outputType]);
+ }
+ var key = this.makeKey(inputType, outputType);
+ return this._registry[key];
+ };
+ MappingRegistry.prototype.addRegistration = function (inputType, outputType, storageItem) {
+ var key = this.makeKey(inputType, outputType);
+ // Add this item
+ this._registry[key] = storageItem;
+ };
+ /**
+ * Combines the two keys into a unique string
+ *
+ * @private
+ * @param {TInputEnumType} inputType
+ * @param {TOutputEnumType} outputType
+ * @returns {string}
+ * @memberof MappingRegistry
+ */
+ MappingRegistry.prototype.makeKey = function (inputType, outputType) {
+ var keyObj = { input: inputType, output: outputType };
+ return JSON.stringify(keyObj);
+ };
+ MappingRegistry.MISSING_REQUESTED_MAPPING = 'Missing requested mapping: %1 to %2';
+ return MappingRegistry;
+ }());
+ exports.MappingRegistry = MappingRegistry;
+
+
+/***/ },
+/* 97 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var api_internal_contract_1 = __webpack_require__(79);
+ var api_utils_1 = __webpack_require__(80);
+ var EnumMappings_1 = __webpack_require__(89);
+ /**
+ * Contains logic for converting Parameter models into their equivalent Api versions
+ */
+ var ParametersDataConverter = (function () {
+ function ParametersDataConverter() {
+ }
+ ParametersDataConverter.convertParameterList = function (parameters) {
+ return parameters.map(ParametersDataConverter.convertParameter);
+ };
+ // Converts a single parameter.
+ // Rough port of https://opengrok/source/xref/dev_nessie/workgroup/vqlweb/scriptsharp/src/UI/Api/ApiParameterHandler.cs#95
+ ParametersDataConverter.convertParameter = function (param) {
+ var currentValue = ParametersDataConverter.convertAliasedDataValue(param.valueAlias, param.formattedValue);
+ var allowableValuesType = EnumMappings_1.PresLayerToApiEnumMappings.parameterTypesDomainType.convert(param.parameterDomainType);
+ var result = {
+ name: param.fieldCaption,
+ fieldName: param.parameterName,
+ dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(param.dataType),
+ currentValue: currentValue,
+ allowableValuesType: allowableValuesType
+ };
+ if (allowableValuesType === api_internal_contract_1.DomainRestrictionType.List) {
+ var allowableValues = new Array();
+ for (var i = 0; i < param.valuesAliases.length; i++) {
+ var adv = param.valuesAliases[i];
+ var formattedValue = param.formattedValues[i];
+ allowableValues.push(ParametersDataConverter.convertAliasedDataValue(adv, formattedValue));
+ }
+ result.allowableValues = allowableValues;
+ }
+ else if (allowableValuesType === api_internal_contract_1.DomainRestrictionType.Range) {
+ result.minValue = ParametersDataConverter.makeDataValue(param.valueMin, param.formattedMin);
+ result.maxValue = ParametersDataConverter.makeDataValue(param.valueMax, param.formattedMax);
+ result.stepSize = ParametersDataConverter.convertNumber(result.dataType, param.valueInc);
+ result.dateStepPeriod = EnumMappings_1.PresLayerToApiEnumMappings.dateStepPeriod.convert(param.datePeriodType, false);
+ }
+ else {
+ // Nothing to do in the case that all values are allowed
+ }
+ return result;
+ };
+ ParametersDataConverter.convertNumber = function (dataType, value) {
+ if (value) {
+ if (dataType === api_internal_contract_1.DataType.Int || dataType === api_internal_contract_1.DataType.Date || dataType === api_internal_contract_1.DataType.DateTime) {
+ return parseInt(value, 10);
+ }
+ else if (dataType === api_internal_contract_1.DataType.Float) {
+ return parseFloat(value);
+ }
+ }
+ return undefined;
+ };
+ /*tslint:disable-next-line:no-any */
+ ParametersDataConverter.makeDataValue = function (value, formattedValue, alias) {
+ var result = {
+ value: value,
+ formattedValue: formattedValue,
+ aliasedValue: alias || formattedValue
+ };
+ return result;
+ };
+ /*tslint:disable-next-line:no-any */
+ ParametersDataConverter.convertAliasedDataValue = function (adv, formattedValue) {
+ // AliasedDataValues are serialized in kind of a strange way from the platform code. They are output
+ // as an array of 2 values. The first is the actual value, the second is the alias. See AliasedDataValueSerializer::ToSerializer
+ if (!adv || !(adv instanceof Array)) {
+ throw api_utils_1.TableauException.invalid(['aliased data value']);
+ }
+ var value = adv[0];
+ var alias = adv.length < 2 ? undefined : adv[1];
+ return ParametersDataConverter.makeDataValue(value, formattedValue, alias);
+ };
+ return ParametersDataConverter;
+ }());
+ exports.ParametersDataConverter = ParametersDataConverter;
+
+
+/***/ },
+/* 98 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+ }
+ Object.defineProperty(exports, "__esModule", { value: true });
+ __export(__webpack_require__(4));
+ __export(__webpack_require__(5));
+ __export(__webpack_require__(6));
+ __export(__webpack_require__(7));
+ __export(__webpack_require__(8));
+
+
+/***/ },
+/* 99 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ /**
+ * This is your main. This is where you re-export everything you want to be publicly available.
+ *
+ * The build enforces that the file has the same name as the global variable that is exported.
+ */
+ Object.defineProperty(exports, "__esModule", { value: true });
+ var EnumConverter_1 = __webpack_require__(14);
+ exports.EnumConverter = EnumConverter_1.EnumConverter;
+ var Param_1 = __webpack_require__(16);
+ exports.Param = Param_1.Param;
+ var TableauException_1 = __webpack_require__(15);
+ exports.TableauException = TableauException_1.TableauException;
+
+
+/***/ },
+/* 100 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * Implemenation of the PresentationLayer contract with a bit of extra information
+ * added to work with add-ins. Most work is delegated down to the interopObject which
+ * communicates directly with the c++ layer via QWebChannel
+ *
+ * @class AddInApiPresLayerImpl
+ * @implements {contract.PresentationLayer}
+ */
+ var AddInApiPresLayerImpl = (function () {
+ function AddInApiPresLayerImpl(_interopObject) {
+ var _this = this;
+ this._interopObject = _interopObject;
+ this._notificationHandlers = {};
+ if (_interopObject && _interopObject.OnNotification) {
+ _interopObject.OnNotification.connect(function (notification) {
+ _this.dispatchNotification(notification);
+ });
+ }
+ }
+ Object.defineProperty(AddInApiPresLayerImpl.prototype, "AddInInstanceInfo", {
+ /**
+ * Gets the instance info for this particular add-in from the c++ code
+ *
+ * @readonly
+ * @type {AddInInstancePresModel}
+ * @memberof AddInApiPresLayerImpl
+ */
+ get: function () {
+ return this._interopObject.addInInstanceInfo;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Invokes a command using the pres-layer interop
+ *
+ * @template T - The expected return type
+ * @param {string} commandNamespace
+ * @param {string} commandName
+ * @param {object} params
+ * @returns {Promise}
+ * @memberof AddInApiPresLayerImpl
+ */
+ AddInApiPresLayerImpl.prototype.invokeCommand = function (commandNamespace, commandName, params) {
+ var _this = this;
+ return new Promise(function (resolve, reject) {
+ try {
+ commandNamespace = commandNamespace || 'tabdoc';
+ _this._interopObject.ExecuteCommand(commandNamespace, commandName, params, function (response) {
+ if (!response.Success) {
+ var msg = 'ExecuteCommand failed, with result:' + JSON.stringify(response.Result);
+ reject(new Error(msg));
+ }
+ else {
+ resolve(response.Result);
+ }
+ });
+ }
+ catch (err) {
+ reject(err);
+ }
+ });
+ };
+ // This implementation will registration a single instance of a notification handler with the Native C++ object,
+ // and implement multi-dispatch to the web objects from h.ere
+ AddInApiPresLayerImpl.prototype.registerNotificationHandler = function (eventId, handler) {
+ var _this = this;
+ if (eventId in this._notificationHandlers) {
+ this._notificationHandlers[eventId].push(handler);
+ }
+ else {
+ this._notificationHandlers[eventId] = [handler];
+ try {
+ this._interopObject.RegisterNotificationHandler(eventId);
+ }
+ catch (err) {
+ // console.log('RegisterNotificationHandler failed: ' + err);
+ }
+ }
+ return function () { return _this.removeNotificationHandler(eventId, handler); };
+ };
+ AddInApiPresLayerImpl.prototype.removeNotificationHandler = function (eventId, handler) {
+ var handlerList = this._notificationHandlers[eventId];
+ if (!handlerList) {
+ return;
+ }
+ var foundIndex = handlerList.indexOf(handler);
+ if (foundIndex >= 0) {
+ handlerList.splice(foundIndex, 1);
+ }
+ if (handlerList.length === 0) {
+ delete this._notificationHandlers[eventId];
+ }
+ };
+ AddInApiPresLayerImpl.prototype.dispatchNotification = function (notification) {
+ // console.log('received notification: ' + JSON.stringify(notification));
+ var eventId = notification.eventId;
+ var presModel = notification.presModel;
+ if (eventId in this._notificationHandlers) {
+ var handlers = this._notificationHandlers[eventId];
+ for (var i = handlers.length - 1; i >= 0; i--) {
+ handlers[i](presModel);
+ }
+ }
+ };
+ return AddInApiPresLayerImpl;
+ }());
+ exports.AddInApiPresLayerImpl = AddInApiPresLayerImpl;
+
+
+/***/ },
+/* 101 */
+/***/ function(module, exports) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ /**
+ * Implementation of the InternalApiDispatcher for desktop. Since this will run in the same
+ * frame as the ApiEventHandler, this class mostly just marshalls down to that implementation
+ *
+ * @export
+ * @class DesktopApiDispatcher
+ * @implements {InternalApiDispatcher}
+ */
+ var DesktopApiDispatcher = (function () {
+ function DesktopApiDispatcher(_apiEventHandler) {
+ var _this = this;
+ this._apiEventHandler = _apiEventHandler;
+ this._notificationHandlers = [];
+ this._apiEventHandler.setEventHandler(function (notificationId, model) {
+ _this._notificationHandlers.forEach(function (handler) { return handler({
+ notificationId: notificationId,
+ data: model
+ }); });
+ });
+ }
+ DesktopApiDispatcher.prototype.setVersionNumber = function (versionNumber) {
+ this._apiEventHandler.setVersionNumber(versionNumber);
+ };
+ DesktopApiDispatcher.prototype.execute = function (verb, parameters) {
+ // Just pass this right through to the ApiEventHandler
+ return this._apiEventHandler.execute(verb, parameters);
+ };
+ DesktopApiDispatcher.prototype.registerNotificationHandler = function (handler) {
+ this._notificationHandlers.push(handler);
+ };
+ DesktopApiDispatcher.prototype.unregisterNotificationHandler = function (handler) {
+ this._notificationHandlers = this._notificationHandlers.filter(function (h) { return h !== handler; });
+ };
+ return DesktopApiDispatcher;
+ }());
+ exports.DesktopApiDispatcher = DesktopApiDispatcher;
+
+
+/***/ },
+/* 102 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+ Object.defineProperty(exports, "__esModule", { value: true });
+ __webpack_require__(103);
+ var qwebchannel_1 = __webpack_require__(104);
+ /**
+ * Initializes the QWebChannel contract and returns the pres layer interop object
+ *
+ * @returns {Promise}
+ */
+ function initializeWebChannelPresLayer() {
+ return new Promise(function (resolve, reject) {
+ try {
+ // tslint:disable-next-line
+ new qwebchannel_1.QWebChannel(qt.webChannelTransport, function (channel) {
+ // tslint:disable-next-line
+ var addInPresLayer = channel.objects['addInPresLayer'];
+ resolve(addInPresLayer);
+ });
+ }
+ catch (e) {
+ reject(e);
+ }
+ });
+ }
+ exports.initializeWebChannelPresLayer = initializeWebChannelPresLayer;
+ function hasQt() {
+ return typeof qt === 'object';
+ }
+ exports.hasQt = hasQt;
+
+
+/***/ },
+/* 103 */
+/***/ function(module, exports) {
+
+
+
+/***/ },
+/* 104 */
+/***/ function(module, exports, __webpack_require__) {
+
+ /****************************************************************************
+ **
+ ** Copyright (C) 2015 The Qt Company Ltd.
+ ** Copyright (C) 2014 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff
+ ** Contact: http://www.qt.io/licensing/
+ **
+ ** This file is part of the QtWebChannel module of the Qt Toolkit.
+ **
+ ** $QT_BEGIN_LICENSE:LGPL21$
+ ** Commercial License Usage
+ ** Licensees holding valid commercial Qt licenses may use this file in
+ ** accordance with the commercial license agreement provided with the
+ ** Software or, alternatively, in accordance with the terms contained in
+ ** a written agreement between you and The Qt Company. For licensing terms
+ ** and conditions see http://www.qt.io/terms-conditions. For further
+ ** information use the contact form at http://www.qt.io/contact-us.
+ **
+ ** GNU Lesser General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU Lesser
+ ** General Public License version 2.1 or version 3 as published by the Free
+ ** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+ ** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+ ** following information to ensure the GNU Lesser General Public License
+ ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+ ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ **
+ ** As a special exception, The Qt Company gives you certain additional
+ ** rights. These rights are described in The Qt Company LGPL Exception
+ ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+ **
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
+
+ "use strict";
+
+ var QWebChannelMessageTypes = {
+ signal: 1,
+ propertyUpdate: 2,
+ init: 3,
+ idle: 4,
+ debug: 5,
+ invokeMethod: 6,
+ connectToSignal: 7,
+ disconnectFromSignal: 8,
+ setProperty: 9,
+ response: 10,
+ };
+
+ var QWebChannel = function(transport, initCallback)
+ {
+ if (typeof transport !== "object" || typeof transport.send !== "function") {
+ console.error("The QWebChannel expects a transport object with a send function and onmessage callback property." +
+ " Given is: transport: " + typeof(transport) + ", transport.send: " + typeof(transport.send));
+ return;
+ }
+
+ var channel = this;
+ this.transport = transport;
+
+ this.send = function(data)
+ {
+ if (typeof(data) !== "string") {
+ data = JSON.stringify(data);
+ }
+ channel.transport.send(data);
+ }
+
+ this.transport.onmessage = function(message)
+ {
+ var data = message.data;
+ if (typeof data === "string") {
+ data = JSON.parse(data);
+ }
+ switch (data.type) {
+ case QWebChannelMessageTypes.signal:
+ channel.handleSignal(data);
+ break;
+ case QWebChannelMessageTypes.response:
+ channel.handleResponse(data);
+ break;
+ case QWebChannelMessageTypes.propertyUpdate:
+ channel.handlePropertyUpdate(data);
+ break;
+ default:
+ console.error("invalid message received:", message.data);
+ break;
+ }
+ }
+
+ this.execCallbacks = {};
+ this.execId = 0;
+ this.exec = function(data, callback)
+ {
+ if (!callback) {
+ // if no callback is given, send directly
+ channel.send(data);
+ return;
+ }
+ if (channel.execId === Number.MAX_VALUE) {
+ // wrap
+ channel.execId = Number.MIN_VALUE;
+ }
+ if (data.hasOwnProperty("id")) {
+ console.error("Cannot exec message with property id: " + JSON.stringify(data));
+ return;
+ }
+ data.id = channel.execId++;
+ channel.execCallbacks[data.id] = callback;
+ channel.send(data);
+ };
+
+ this.objects = {};
+
+ this.handleSignal = function(message)
+ {
+ var object = channel.objects[message.object];
+ if (object) {
+ object.signalEmitted(message.signal, message.args);
+ } else {
+ console.warn("Unhandled signal: " + message.object + "::" + message.signal);
+ }
+ }
+
+ this.handleResponse = function(message)
+ {
+ if (!message.hasOwnProperty("id")) {
+ console.error("Invalid response message received: ", JSON.stringify(message));
+ return;
+ }
+ channel.execCallbacks[message.id](message.data);
+ delete channel.execCallbacks[message.id];
+ }
+
+ this.handlePropertyUpdate = function(message)
+ {
+ for (var i in message.data) {
+ var data = message.data[i];
+ var object = channel.objects[data.object];
+ if (object) {
+ object.propertyUpdate(data.signals, data.properties);
+ } else {
+ console.warn("Unhandled property update: " + data.object + "::" + data.signal);
+ }
+ }
+ channel.exec({type: QWebChannelMessageTypes.idle});
+ }
+
+ this.debug = function(message)
+ {
+ channel.send({type: QWebChannelMessageTypes.debug, data: message});
+ };
+
+ channel.exec({type: QWebChannelMessageTypes.init}, function(data) {
+ for (var objectName in data) {
+ var object = new QObject(objectName, data[objectName], channel);
+ }
+ // now unwrap properties, which might reference other registered objects
+ for (var objectName in channel.objects) {
+ channel.objects[objectName].unwrapProperties();
+ }
+ if (initCallback) {
+ initCallback(channel);
+ }
+ channel.exec({type: QWebChannelMessageTypes.idle});
+ });
+ };
+
+ function QObject(name, data, webChannel)
+ {
+ this.__id__ = name;
+ webChannel.objects[name] = this;
+
+ // List of callbacks that get invoked upon signal emission
+ this.__objectSignals__ = {};
+
+ // Cache of all properties, updated when a notify signal is emitted
+ this.__propertyCache__ = {};
+
+ var object = this;
+
+ // ----------------------------------------------------------------------
+
+ this.unwrapQObject = function(response)
+ {
+ if (response instanceof Array) {
+ // support list of objects
+ var ret = new Array(response.length);
+ for (var i = 0; i < response.length; ++i) {
+ ret[i] = object.unwrapQObject(response[i]);
+ }
+ return ret;
+ }
+ if (!response
+ || !response["__QObject*__"]
+ || response["id"] === undefined) {
+ return response;
+ }
+
+ var objectId = response.id;
+ if (webChannel.objects[objectId])
+ return webChannel.objects[objectId];
+
+ if (!response.data) {
+ console.error("Cannot unwrap unknown QObject " + objectId + " without data.");
+ return;
+ }
+
+ var qObject = new QObject( objectId, response.data, webChannel );
+ qObject.destroyed.connect(function() {
+ if (webChannel.objects[objectId] === qObject) {
+ delete webChannel.objects[objectId];
+ // reset the now deleted QObject to an empty {} object
+ // just assigning {} though would not have the desired effect, but the
+ // below also ensures all external references will see the empty map
+ // NOTE: this detour is necessary to workaround QTBUG-40021
+ var propertyNames = [];
+ for (var propertyName in qObject) {
+ propertyNames.push(propertyName);
+ }
+ for (var idx in propertyNames) {
+ delete qObject[propertyNames[idx]];
+ }
+ }
+ });
+ // here we are already initialized, and thus must directly unwrap the properties
+ qObject.unwrapProperties();
+ return qObject;
+ }
+
+ this.unwrapProperties = function()
+ {
+ for (var propertyIdx in object.__propertyCache__) {
+ object.__propertyCache__[propertyIdx] = object.unwrapQObject(object.__propertyCache__[propertyIdx]);
+ }
+ }
+
+ function addSignal(signalData, isPropertyNotifySignal)
+ {
+ var signalName = signalData[0];
+ var signalIndex = signalData[1];
+ object[signalName] = {
+ connect: function(callback) {
+ if (typeof(callback) !== "function") {
+ console.error("Bad callback given to connect to signal " + signalName);
+ return;
+ }
+
+ object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || [];
+ object.__objectSignals__[signalIndex].push(callback);
+
+ if (!isPropertyNotifySignal && signalName !== "destroyed") {
+ // only required for "pure" signals, handled separately for properties in propertyUpdate
+ // also note that we always get notified about the destroyed signal
+ webChannel.exec({
+ type: QWebChannelMessageTypes.connectToSignal,
+ object: object.__id__,
+ signal: signalIndex
+ });
+ }
+ },
+ disconnect: function(callback) {
+ if (typeof(callback) !== "function") {
+ console.error("Bad callback given to disconnect from signal " + signalName);
+ return;
+ }
+ object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || [];
+ var idx = object.__objectSignals__[signalIndex].indexOf(callback);
+ if (idx === -1) {
+ console.error("Cannot find connection of signal " + signalName + " to " + callback.name);
+ return;
+ }
+ object.__objectSignals__[signalIndex].splice(idx, 1);
+ if (!isPropertyNotifySignal && object.__objectSignals__[signalIndex].length === 0) {
+ // only required for "pure" signals, handled separately for properties in propertyUpdate
+ webChannel.exec({
+ type: QWebChannelMessageTypes.disconnectFromSignal,
+ object: object.__id__,
+ signal: signalIndex
+ });
+ }
+ }
+ };
+ }
+
+ /**
+ * Invokes all callbacks for the given signalname. Also works for property notify callbacks.
+ */
+ function invokeSignalCallbacks(signalName, signalArgs)
+ {
+ var connections = object.__objectSignals__[signalName];
+ if (connections) {
+ connections.forEach(function(callback) {
+ callback.apply(callback, signalArgs);
+ });
+ }
+ }
+
+ this.propertyUpdate = function(signals, propertyMap)
+ {
+ // update property cache
+ for (var propertyIndex in propertyMap) {
+ var propertyValue = propertyMap[propertyIndex];
+ object.__propertyCache__[propertyIndex] = propertyValue;
+ }
+
+ for (var signalName in signals) {
+ // Invoke all callbacks, as signalEmitted() does not. This ensures the
+ // property cache is updated before the callbacks are invoked.
+ invokeSignalCallbacks(signalName, signals[signalName]);
+ }
+ }
+
+ this.signalEmitted = function(signalName, signalArgs)
+ {
+ invokeSignalCallbacks(signalName, signalArgs);
+ }
+
+ function addMethod(methodData)
+ {
+ var methodName = methodData[0];
+ var methodIdx = methodData[1];
+ object[methodName] = function() {
+ var args = [];
+ var callback;
+ for (var i = 0; i < arguments.length; ++i) {
+ if (typeof arguments[i] === "function")
+ callback = arguments[i];
+ else
+ args.push(arguments[i]);
+ }
+
+ webChannel.exec({
+ "type": QWebChannelMessageTypes.invokeMethod,
+ "object": object.__id__,
+ "method": methodIdx,
+ "args": args
+ }, function(response) {
+ if (response !== undefined) {
+ var result = object.unwrapQObject(response);
+ if (callback) {
+ (callback)(result);
+ }
+ }
+ });
+ };
+ }
+
+ function bindGetterSetter(propertyInfo)
+ {
+ var propertyIndex = propertyInfo[0];
+ var propertyName = propertyInfo[1];
+ var notifySignalData = propertyInfo[2];
+ // initialize property cache with current value
+ // NOTE: if this is an object, it is not directly unwrapped as it might
+ // reference other QObject that we do not know yet
+ object.__propertyCache__[propertyIndex] = propertyInfo[3];
+
+ if (notifySignalData) {
+ if (notifySignalData[0] === 1) {
+ // signal name is optimized away, reconstruct the actual name
+ notifySignalData[0] = propertyName + "Changed";
+ }
+ addSignal(notifySignalData, true);
+ }
+
+ Object.defineProperty(object, propertyName, {
+ get: function () {
+ var propertyValue = object.__propertyCache__[propertyIndex];
+ if (propertyValue === undefined) {
+ // This shouldn't happen
+ console.warn("Undefined value in property cache for property \"" + propertyName + "\" in object " + object.__id__);
+ }
+
+ return propertyValue;
+ },
+ set: function(value) {
+ if (value === undefined) {
+ console.warn("Property setter for " + propertyName + " called with undefined value!");
+ return;
+ }
+ object.__propertyCache__[propertyIndex] = value;
+ webChannel.exec({
+ "type": QWebChannelMessageTypes.setProperty,
+ "object": object.__id__,
+ "property": propertyIndex,
+ "value": value
+ });
+ }
+ });
+
+ }
+
+ // ----------------------------------------------------------------------
+
+ data.methods.forEach(addMethod);
+
+ data.properties.forEach(bindGetterSetter);
+
+ data.signals.forEach(function(signal) { addSignal(signal, false); });
+
+ for (var name in data.enums) {
+ object[name] = data.enums[name];
+ }
+ }
+
+ //required for use with nodejs
+ if (true) {
+ module.exports = {
+ QWebChannel: QWebChannel
+ };
+ }
+
+
+/***/ }
+/******/ ])
+});
+;
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCA4ZDdmMWNiOWI3NjA0NzNiNTZjNiIsIndlYnBhY2s6Ly8vLi4vc3JjL01haW4udHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL0V4dGVuc2lvbnNBcGkudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL0ltcGwvRXh0ZW5zaW9uc0ltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9BcGlJbnRlcm5hbENvbnRyYWN0LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL0VudW1zLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL0ludGVybmFsQXBpRGlzcGF0Y2hlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9Ob3RpZmljYXRpb25zLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL1BhcmFtZXRlcnMudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9pbnRlcmZhY2UvVmVyYnMudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvQXBpU2hhcmVkLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0Rhc2hib2FyZC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TaGVldC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudExpc3RlbmVyTWFuYWdlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktdXRpbHMvc3JjL0FwaVV0aWxzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvRW51bUNvbnZlcnRlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktdXRpbHMvc3JjL1RhYmxlYXVFeGNlcHRpb24udHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL3NyYy9QYXJhbS50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9WZXJzaW9uTnVtYmVyLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ltcGwvRGFzaGJvYXJkSW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktZXh0ZXJuYWwtY29udHJhY3Qvc3JjL0FwaUV4dGVybmFsQ29udHJhY3QudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWV4dGVybmFsLWNvbnRyYWN0L3NyYy9FbnVtcy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9EYXNoYm9hcmRPYmplY3QudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Qb2ludC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TaXplLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1dvcmtzaGVldC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9JbXBsL1NoZWV0SW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnkudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvSW1wbC9TaGVldEluZm9JbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ltcGwvV29ya3NoZWV0SW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9EYXRhU291cmNlLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ltcGwvRGF0YVNvdXJjZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvSW1wbC9GaWVsZEltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvQ29ubmVjdGlvblN1bW1hcnkudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRmllbGQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvVGFibGVTdW1tYXJ5LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ltcGwvU2luZ2xlRXZlbnRNYW5hZ2VySW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvRmlsdGVyQ2hhbmdlZEV2ZW50LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9UYWJsZWF1V29ya3NoZWV0RXZlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL1RhYmxlYXVTaGVldEV2ZW50LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9UYWJsZWF1RXZlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL01hcmtzU2VsZWN0ZWRFdmVudC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9HZXREYXRhU2VydmljZS50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9SZWdpc3RlckFsbFNoYXJlZFNlcnZpY2VzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvRGF0YVNvdXJjZVNlcnZpY2VJbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvRmlsdGVyU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRW51bU1hcHBpbmdzL0V4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Nb2RlbHMvRmlsdGVyTW9kZWxzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL01vZGVscy9HZXREYXRhTW9kZWxzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvR2V0RGF0YVNlcnZpY2VJbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvTm90aWZpY2F0aW9uU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvaW1wbC9QYXJhbWV0ZXJzU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvSW1wbC9QYXJhbWV0ZXJJbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9QYXJhbWV0ZXJDaGFuZ2VkRXZlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvUGFyYW1ldGVyLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvU2VsZWN0aW9uU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvTW9kZWxzL1NlbGVjdGlvbk1vZGVscy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Dcm9zc0ZyYW1lL0Nyb3NzRnJhbWVCb290c3RyYXAudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLW1lc3NhZ2luZy9zcmMvQXBpTWVzc2FnaW5nLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1tZXNzYWdpbmcvc3JjL0Nyb3NzRnJhbWVNZXNzZW5nZXIudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9HdWlkLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1tZXNzYWdpbmcvc3JjL0Nyb3NzRnJhbWVQcmVwYXJlZE1lc3NhZ2UudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLW1lc3NhZ2luZy9zcmMvaW50ZXJmYWNlL01lc3NhZ2VUeXBlcy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktbWVzc2FnaW5nL3NyYy9NZXNzYWdlVHlwZUNoZWNrcy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Dcm9zc0ZyYW1lL0Nyb3NzRnJhbWVEaXNwYXRjaGVyLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2V4dGVuc2lvbnMtYXBpL3NyYy9OYW1lc3BhY2VzL0Rhc2hib2FyZENvbnRlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL05hbWVzcGFjZXMvRW52aXJvbm1lbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL05hbWVzcGFjZXMvU2V0dGluZ3MudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL1NlcnZpY2VzL1JlZ2lzdGVyQWxsRXh0ZW5zaW9uc1NlcnZpY2VzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2V4dGVuc2lvbnMtYXBpL3NyYy9TZXJ2aWNlcy9JbXBsL0luaXRpYWxpemF0aW9uU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL1NlcnZpY2VzL0ltcGwvU2V0dGluZ3NTZXJ2aWNlSW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9leHRlbnNpb25zLWFwaS9zcmMvSW1wbC9TZXR0aW5nc0ltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL05hbWVzcGFjZXMvRXh0ZW5zaW9ucy50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0ZyZWxhcmREZXNrdG9wQm9vdHN0cmFwLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9BcGlDb3JlLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9BcGlFdmVudEhhbmRsZXIudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWNvcmUvZ2VuLXNyYy9wcmVzbGF5ZXIvUGFyYW1zLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9Db21tYW5kTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeS50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9nZW4tc3JjL3ByZXNsYXllci9Db21tYW5kSWRzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9Db21tYW5kTWFwcGluZ1JlZ2lzdHJ5LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9Db21tYW5kUmVnaXN0cmF0aW9uLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9FdmVudE1hcHBpbmdSZWdpc3RyeUZhY3RvcnkudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWNvcmUvZ2VuLXNyYy9wcmVzbGF5ZXIvRXZlbnRzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9QcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9zcmMvbWFwcGluZ3MvRW51bU1hcHBpbmdzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL2dlbi1zcmMvcHJlc2xheWVyL0VudW1zLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9QYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9BY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL21hcHBpbmdzL1VuZGVybHlpbmdEYXRhQ29udmVydGVyLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9BcGlUb1ByZXNMYXllckNvbnZlcnRlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9zcmMvbWFwcGluZ3MvRmlsdGVyc0NvbnZlcnRlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9zcmMvbWFwcGluZ3MvTWFwcGluZ1JlZ2lzdHJ5LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9QYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0FkZEluQXBpUHJlc0xheWVySW1wbC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0Rlc2t0b3BBcGlEaXNwYXRjaGVyLnRzIiwid2VicGFjazovLy8uLi9zcmMvUXRXZWJDaGFubmVsSW1wbC50cyIsIndlYnBhY2s6Ly8vLi4vfi9xd2ViY2hhbm5lbC9xd2ViY2hhbm5lbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsTztBQ1ZBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUFlO0FBQ2Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7Ozs7Ozs7OztBQ3RDQSxzQ0FBbUQ7QUFFbkQseURBQXdEO0FBRXhELHFGQUFvRjtBQUNwRix5REFBd0Q7QUFDeEQsc0NBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFDO0tBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDcEQsRUFBQyxDQUFDLENBQUM7QUFXSCxPQUFNLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQzs7Ozs7Ozs7QUNuQnpCOzs7O0lBSUc7O0FBRUgsMkZBQTBGO0FBQzFGLDZGQUE0RjtBQUM1RixtQkFBa0I7QUFFbEIsK0NBQXVEO0FBQ3ZELDRDQUFxRDtBQUVyRCwyQ0FBb0Q7QUFHcEQsMkJBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUE0QixDQUFD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QixDQUFDLFFBQVEsSUFBRyw0Q0FBNEIsQ0FBQyxRQUFRO1NBQzlFLEdBQUMsNENBQTRCLENBQUMsR0FBRyxJQUFHLDRDQUE0QixDQUFDLEdBQUc7U0FDcEUsR0FBQyw0Q0FBNEIsQ0FBQyxHQUFHLElBQUcsNENBQTRCLENBQUMsR0FBRztTQUNwRSxHQUFDLDRDQUE0QixDQUFDLE1BQU0sSUFBRyw0Q0FBNEIsQ0FBQyxNQUFNO1NBQzFFLEdBQUMsNENBQTRCLENBQUMsR0FBRyxJQUFHLDRDQUE0QixDQUFDLEdBQUc7U0FDcEUsR0FBQyw0Q0FBNEIsQ0FBQyxNQUFNLElBQUcsNENBQTRCLENBQUMsTUFBTTtTQUMxRSxHQUFDLDRDQUE0QixDQUFDLFNBQVMsSUFBRyw0Q0FBNEIsQ0FBQyxTQUFTO1NBQ2hGLEdBQUMsNENBQTRCLENBQUMsSUFBSSxJQUFHLDRDQUE0QixDQUFDLElBQUk7U0FDdEUsR0FBQyw0Q0FBNEIsQ0FBQyxHQUFHLElBQUcsNENBQTRCLENBQUMsR0FBRztTQUNwRSxHQUFDLDRDQUE0QixDQUFDLE1BQU0sSUFBRyw0Q0FBNEIsQ0FBQyxNQUFNO1NBQzFFLEdBQUMsNENBQTRCLENBQUMsTUFBTSxJQUFHLDRDQUE0QixDQUFDLE1BQU07U0FDMUUsR0FBQyw0Q0FBNEIsQ0FBQyxNQUFNLElBQUcsNENBQTRCLENBQUMsTUFBTTtTQUMxRSxHQUFDLDRDQUE0QixDQUFDLFFBQVEsSUFBRyw0Q0FBNEIsQ0FBQyxRQUFRO1NBQzlFLEdBQUMsNENBQTRCLENBQUMsS0FBSyxJQUFHLDRDQUE0QixDQUFDLEtBQUs7U0FDeEUsR0FBQyw0Q0FBNEIsQ0FBQyxNQUFNLElBQUcsNENBQTRCLENBQUMsTUFBTTtTQUMxRSxHQUFDLDRDQUE0QixDQUFDLEdBQUcsSUFBRyw0Q0FBNEIsQ0FBQyxHQUFHO1NBQ3BFLEdBQUMsNENBQTRCLENBQUMsUUFBUSxJQUFHLDRDQUE0QixDQUFDLFFBQVE7U0FDOUUsR0FBQyw0Q0FBNEIsQ0FBQyxTQUFTLElBQUcsNENBQTRCLENBQUMsU0FBUztTQUNoRixHQUFDLDRDQUE0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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBUztBQUNUO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsdUJBQXNCLG1DQUFtQztBQUN6RDs7QUFFQTtBQUNBO0FBQ0EsdUJBQXNCLG1EQUFtRDtBQUN6RTs7QUFFQSxtQkFBa0IsbUNBQW1DO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXNCLG1DQUFtQztBQUN6RCxNQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBMkIscUJBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnRUFBK0Q7QUFDL0QscUNBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXFCO0FBQ3JCO0FBQ0EsY0FBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFhO0FBQ2I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBMkIsc0JBQXNCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFhO0FBQ2I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxjQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFpQjtBQUNqQjtBQUNBLFVBQVM7O0FBRVQ7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUEsNENBQTJDLDBCQUEwQixFQUFFOztBQUV2RTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZnJlbGFyZC1kZXNrdG9wLWJvb3RzdHJhcC5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIk1haW5cIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiTWFpblwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKCkge1xucmV0dXJuIFxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvblxuICoqLyIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRleHBvcnRzOiB7fSxcbiBcdFx0XHRpZDogbW9kdWxlSWQsXG4gXHRcdFx0bG9hZGVkOiBmYWxzZVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9kaXN0L1wiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjay9ib290c3RyYXAgOGQ3ZjFjYjliNzYwNDczYjU2YzZcbiAqKi8iLCJpbXBvcnQgKiBhcyB0YWJsZWF1IGZyb20gJ0B0YWJsZWF1L2V4dGVuc2lvbnMtYXBpJztcclxuXHJcbmltcG9ydCB7IGRvQm9vdHN0cmFwIH0gZnJvbSAnLi9GcmVsYXJkRGVza3RvcEJvb3RzdHJhcCc7XHJcblxyXG4vLyBUaGlzIE1haW4gZnVuY3Rpb24gd2lsbCBiZSBleGVjdXRlZCB3aGVuIHRoaXMgbW9kdWxlIGlzIGxvYWRlZC4gQXR0ZW1wdCB0byBkbyBvdXJcclxuLy8gYm9vdHN0cmFwcGluZyB3aXRoIHF0IGFuZCBsb2cgYW55IGVycm9ycyB3ZSBlbmNvdW50ZXJcclxuZG9Cb290c3RyYXAoKS5jYXRjaChlID0+IHtcclxuICBjb25zb2xlLmxvZygnRGVza3RvcCBib290c3RyYXBwaW5nIGZhaWxlZDogJyArIGUpO1xyXG59KTtcclxuXHJcbi8vIERlY2xhcmUgdGhlIGltcG9ydGVkIHRhYmxlYXUgb2JqZWN0IG9uIHRoZSBnbG9iYWwgbmFtZXNwYWNlXHJcbi8vIChUaGlzIG11c3QgZ28gYXdheSBvbmNlIHdlIGRvbid0IGltcG9ydCBhdCB0aGUgQVBJIG91cnNlbHZlcylcclxuZGVjbGFyZSBnbG9iYWwgIHtcclxuICBpbnRlcmZhY2UgV2luZG93IHtcclxuICAgIC8qdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gICAgdGFibGVhdTogYW55O1xyXG4gIH1cclxufVxyXG5cclxud2luZG93LnRhYmxlYXUgPSB0YWJsZWF1O1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvTWFpbi50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXHJcbiAqL1xyXG5cclxuLy8gRHVlIHRvIHRoZSB3YXkgd2UgY29uZmlndXJlZCB3ZWJwYWNrLCB3ZSBzaG91bGQgYmUgZXhwb3J0aW5nIHRoaW5ncyB3aGljaCB3aWxsIGJlIHVuZGVyXHJcbi8vIGEgZ2xvYmFsIHZhcmlhYmxlIGNhbGxlZCBcInRhYmxlYXVcIi4gRXhwb3J0IGV2ZXJ5dGhpbmcgd2Ugd2FudCB0byBiZSB2aXNpYmxlIHVuZGVyIHRhYmxlYXVcclxuLy8gZnJvbSB0aGlzIGZpbGUuXHJcblxyXG5pbXBvcnQgeyBFeHRlbnNpb25zSW1wbCB9IGZyb20gJy4vSW1wbC9FeHRlbnNpb25zSW1wbCc7XHJcbmltcG9ydCB7IEV4dGVuc2lvbnMgfSBmcm9tICcuL05hbWVzcGFjZXMvRXh0ZW5zaW9ucyc7XHJcblxyXG5pbXBvcnQgeyBWZXJzaW9uTnVtYmVyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcblxyXG5kZWNsYXJlIHZhciBFWFRFTlNJT05fQVBJX1ZFUlNJT05fTlVNQkVSOiBzdHJpbmc7XHJcblZlcnNpb25OdW1iZXIuU2V0VmVyc2lvbk51bWJlcihFWFRFTlNJT05fQVBJX1ZFUlNJT05fTlVNQkVSKTtcclxuXHJcbmNvbnN0IGV4dGVuc2lvbkltcGwgPSBuZXcgRXh0ZW5zaW9uc0ltcGwoKTtcclxuZXhwb3J0IGNvbnN0IGV4dGVuc2lvbnMgPSBuZXcgRXh0ZW5zaW9ucyhleHRlbnNpb25JbXBsKTtcclxuXHJcbi8vIEV4cG9ydCBFbnVtc1xyXG4vLyBUaGVzZSBzaG93IHVwIHVuZGVyIHRoZSB0YWJsZWF1IG9iamVjdC4gSS5lLiB0YWJsZWF1LkV4dGVuc2lvbkNvbnRleHQuU2VydmVyXHJcbmV4cG9ydCB7XHJcbiAgRXh0ZW5zaW9uQ29udGV4dCxcclxuICBFeHRlbnNpb25Nb2RlLFxyXG4gIEFuYWx5dGljc09iamVjdFR5cGUsXHJcbiAgQ29sdW1uVHlwZSxcclxuICBEYXNoYm9hcmRPYmplY3RUeXBlLFxyXG4gIERhdGFUeXBlLFxyXG4gIERhdGVSYW5nZVR5cGUsXHJcbiAgRGlhbG9nRXZlbnRUeXBlLFxyXG4gIEVuY29kaW5nVHlwZSxcclxuICBFcnJvckNvZGVzLFxyXG4gIEZpZWxkQWdncmVnYXRpb25UeXBlLFxyXG4gIEZpZWxkUm9sZVR5cGUsXHJcbiAgRmlsdGVyRG9tYWluVHlwZSxcclxuICBGaWx0ZXJUeXBlLFxyXG4gIEZpbHRlclVwZGF0ZVR5cGUsXHJcbiAgRmlsdGVyTnVsbE9wdGlvbixcclxuICBNYXJrVHlwZSxcclxuICBQYXJhbWV0ZXJWYWx1ZVR5cGUsXHJcbiAgUGVyaW9kVHlwZSxcclxuICBRdWlja1RhYmxlQ2FsY1R5cGUsXHJcbiAgU2VsZWN0aW9uVXBkYXRlVHlwZSxcclxuICBTaGVldFR5cGUsXHJcbiAgU29ydERpcmVjdGlvbixcclxuICBUYWJsZWF1RXZlbnRUeXBlLFxyXG4gIFRyZW5kTGluZU1vZGVsVHlwZVxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL0V4dGVuc2lvbnNBcGkudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEV4dGVuc2lvbkRhc2hib2FyZEluZm8sXHJcbiAgRXh0ZW5zaW9uU2V0dGluZ3NJbmZvLFxyXG4gIEludGVybmFsQXBpRGlzcGF0Y2hlcixcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIsXHJcbiAgU2hlZXRQYXRoLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeSxcclxuICBEYXNoYm9hcmQsXHJcbiAgRGFzaGJvYXJkSW1wbCxcclxuICBkb0Nyb3NzRnJhbWVCb290c3RyYXAsXHJcbiAgcmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcyxcclxuICBWZXJzaW9uTnVtYmVyXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IERhc2hib2FyZENvbnRlbnQgfSBmcm9tICcuLi9OYW1lc3BhY2VzL0Rhc2hib2FyZENvbnRlbnQnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL05hbWVzcGFjZXMvRW52aXJvbm1lbnQnO1xyXG5pbXBvcnQgeyBTZXR0aW5ncyB9IGZyb20gJy4uL05hbWVzcGFjZXMvU2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBFeHRlbnNpb25zU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvRXh0ZW5zaW9uc1NlcnZpY2VOYW1lcyc7XHJcbmltcG9ydCB7IEluaXRpYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL0luaXRpYWxpemF0aW9uU2VydmljZSc7XHJcbmltcG9ydCB7IHJlZ2lzdGVyQWxsRXh0ZW5zaW9uc1NlcnZpY2VzIH0gZnJvbSAnLi4vU2VydmljZXMvUmVnaXN0ZXJBbGxFeHRlbnNpb25zU2VydmljZXMnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc0ltcGwgfSBmcm9tICcuL1NldHRpbmdzSW1wbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaW9uc0ltcGwge1xyXG4gIHByaXZhdGUgX2luaXRpYWxpemF0aW9uUHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgcHVibGljIGRhc2hib2FyZENvbnRlbnQ6IERhc2hib2FyZENvbnRlbnQ7XHJcbiAgcHVibGljIGVudmlyb25tZW50OiBFbnZpcm9ubWVudDtcclxuICBwdWJsaWMgc2V0dGluZ3M6IFNldHRpbmdzO1xyXG5cclxuICBwdWJsaWMgaW5pdGlhbGl6ZUFzeW5jKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLl9pbml0aWFsaXphdGlvblByb21pc2UpIHtcclxuICAgICAgdGhpcy5faW5pdGlhbGl6YXRpb25Qcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgIC8vIEZpcnN0IHRoaW5nIHdlIHdhbnQgdG8gZG8gaXMgY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGlzIGEgZGVza3RvcCBkaXNwYXRjaGVyIGFscmVhZHkgcmVnaXN0ZXJlZCBmb3IgdXNcclxuICAgICAgICBpZiAoSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyLmhhc0Rlc2t0b3BBcGlEaXNwYXRjaGVyUHJvbWlzZSgpKSB7XHJcbiAgICAgICAgICAvLyBSdW5uaW5nIGluIGRlc2t0b3AsIHVzZSB0aGlzIHByb21pc2VcclxuICAgICAgICAgIGNvbnN0IGRlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZSA9IEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5nZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UoKTtcclxuICAgICAgICAgIGRlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZS50aGVuKHRoaXMub25EaXNwYXRjaGVyUmVjZWl2ZWQuYmluZCh0aGlzKSkudGhlbigoKSA9PiB7IHJlc29sdmUoKTsgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIFdlIG11c3QgYmUgcnVubmluZyBpbiBzZXJ2ZXIsIHNvIHdlIHNob3VsZCB0cnkgdG8ga2ljayBvZiB0aGUgc2VydmVyIGRpc3BhdGNoZXIgYm9vdHN0cmFwcGluZ1xyXG4gICAgICAgICAgZG9Dcm9zc0ZyYW1lQm9vdHN0cmFwKHdpbmRvdywgVmVyc2lvbk51bWJlci5JbnN0YW5jZSkudGhlbih0aGlzLm9uRGlzcGF0Y2hlclJlY2VpdmVkLmJpbmQodGhpcykpLnRoZW4oKCkgPT4geyByZXNvbHZlKCk7IH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemF0aW9uUHJvbWlzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25EaXNwYXRjaGVyUmVjZWl2ZWQoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBkaXNwYXRjaGVyLnNldFZlcnNpb25OdW1iZXIoVmVyc2lvbk51bWJlci5JbnN0YW5jZSk7XHJcblxyXG4gICAgLy8gQ2FsbCB0byByZWdpc3RlciBhbGwgdGhlIHNlcnZpY2VzIHdoaWNoIHdpbGwgdXNlIHRoZSBuZXdseSBpbml0aWFsaXplZCBkaXNwYXRjaGVyXHJcbiAgICByZWdpc3RlckFsbFNoYXJlZFNlcnZpY2VzKGRpc3BhdGNoZXIpO1xyXG4gICAgcmVnaXN0ZXJBbGxFeHRlbnNpb25zU2VydmljZXMoZGlzcGF0Y2hlcik7XHJcblxyXG4gICAgLy8gR2V0IHRoZSBpbml0aWFsaXphdGlvbiBzZXJ2aWNlIGFuZCBpbml0aWFsaXplIHRoaXMgZXh0ZW5zaW9uXHJcbiAgICBjb25zdCBpbml0aWFsaXphdGlvblNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxJbml0aWFsaXphdGlvblNlcnZpY2U+KFxyXG4gICAgICBFeHRlbnNpb25zU2VydmljZU5hbWVzLkluaXRpYWxpemF0aW9uU2VydmljZSk7XHJcblxyXG4gICAgcmV0dXJuIGluaXRpYWxpemF0aW9uU2VydmljZS5pbml0aWFsaXplRGFzaGJvYXJkRXh0ZW5zaW9uc0FzeW5jKCkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICBpZiAoIXJlc3VsdC5leHRlbnNpb25JbnN0YW5jZS5sb2NhdG9yLmRhc2hib2FyZFBhdGgpIHtcclxuICAgICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmlzVW5kZWZpbmVkKFsnRGFzaGJvYXJkUGF0aCddKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kYXNoYm9hcmRDb250ZW50ID0gdGhpcy5pbml0aWFsaXplRGFzaGJvYXJkQ29udGVudChyZXN1bHQuZXh0ZW5zaW9uRGFzaGJvYXJkSW5mbyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuZXh0ZW5zaW9uSW5zdGFuY2UubG9jYXRvci5kYXNoYm9hcmRQYXRoKTtcclxuICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IG5ldyBFbnZpcm9ubWVudChyZXN1bHQuZXh0ZW5zaW9uRW52aXJvbm1lbnQpO1xyXG4gICAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5pbml0aWFsaXplU2V0dGluZ3MocmVzdWx0LmV4dGVuc2lvblNldHRpbmdzSW5mbyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURhc2hib2FyZENvbnRlbnQoaW5mbzogRXh0ZW5zaW9uRGFzaGJvYXJkSW5mbywgc2hlZXRQYXRoOiBTaGVldFBhdGgpOiBEYXNoYm9hcmRDb250ZW50IHtcclxuICAgIGNvbnN0IGRhc2hib2FyZEltcGwgPSBuZXcgRGFzaGJvYXJkSW1wbChpbmZvLCBzaGVldFBhdGgpO1xyXG4gICAgY29uc3QgZGFzaGJvYXJkID0gbmV3IERhc2hib2FyZChkYXNoYm9hcmRJbXBsKTtcclxuICAgIHJldHVybiBuZXcgRGFzaGJvYXJkQ29udGVudChkYXNoYm9hcmQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplU2V0dGluZ3Moc2V0dGluZ3NJbmZvOiBFeHRlbnNpb25TZXR0aW5nc0luZm8pOiBTZXR0aW5ncyB7XHJcbiAgICBjb25zdCBzZXR0aW5nc0ltcGwgPSBuZXcgU2V0dGluZ3NJbXBsKHNldHRpbmdzSW5mbyk7XHJcbiAgICByZXR1cm4gbmV3IFNldHRpbmdzKHNldHRpbmdzSW1wbCk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL0ltcGwvRXh0ZW5zaW9uc0ltcGwudHNcbiAqKi8iLCIvKipcclxuICogVGhpcyBpcyB5b3VyIG1haW4uIFRoaXMgaXMgd2hlcmUgeW91IHJlLWV4cG9ydCBldmVyeXRoaW5nIHlvdSB3YW50IHRvIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cclxuICpcclxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlL0VudW1zJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvSW50ZXJuYWxBcGlEaXNwYXRjaGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvTW9kZWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvTm90aWZpY2F0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlL1BhcmFtZXRlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZS9WZXJicyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlL1ZlcnNpb25OdW1iZXInO1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvQXBpSW50ZXJuYWxDb250cmFjdC50c1xuICoqLyIsImV4cG9ydCBlbnVtIEV4dGVuc2lvbkNvbnRleHQge1xyXG4gIERlc2t0b3AgPSAnZGVza3RvcCcsXHJcbiAgU2VydmVyID0gJ3NlcnZlcicsXHJcbiAgVW5rbm93biA9ICd1bmtub3duJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFeHRlbnNpb25Nb2RlIHtcclxuICBBdXRob3JpbmcgPSAnYXV0aG9yaW5nJyxcclxuICBWaWV3aW5nID0gJ3ZpZXdpbmcnLFxyXG4gIFVua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQ29sdW1uVHlwZSB7XHJcbiAgRGlzY3JldGUgPSAnZGlzY3JldGUnLFxyXG4gIENvbnRpbnVvdXMgPSAnY29udGludW91cydcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRGFzaGJvYXJkT2JqZWN0VHlwZSB7XHJcbiAgQmxhbmsgPSAnYmxhbmsnLFxyXG4gIFdvcmtzaGVldCA9ICd3b3Jrc2hlZXQnLFxyXG4gIFF1aWNrRmlsdGVyID0gJ3F1aWNrLWZpbHRlcicsXHJcbiAgUGFyYW1ldGVyQ29udHJvbCA9ICdwYXJhbWV0ZXItY29udHJvbCcsXHJcbiAgUGFnZUZpbHRlciA9ICdwYWdlLWZpbHRlcicsXHJcbiAgTGVnZW5kID0gJ2xlZ2VuZCcsXHJcbiAgVGl0bGUgPSAndGl0bGUnLFxyXG4gIFRleHQgPSAndGV4dCcsXHJcbiAgSW1hZ2UgPSAnaW1hZ2UnLFxyXG4gIFdlYlBhZ2UgPSAnd2ViLXBhZ2UnLFxyXG4gIEV4dGVuc2lvbiA9ICdleHRlbnNpb24nXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcclxuICBTdHJpbmcgPSAnc3RyaW5nJyxcclxuICBJbnQgPSAnaW50JyxcclxuICBGbG9hdCA9ICdmbG9hdCcsXHJcbiAgQm9vbCA9ICdib29sJyxcclxuICBEYXRlID0gJ2RhdGUnLFxyXG4gIERhdGVUaW1lID0gJ2RhdGUtdGltZScsXHJcbiAgU3BhdGlhbCA9ICdzcGF0aWFsJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFbmNvZGVkRGF0YVR5cGUge1xyXG4gIE51bWJlciA9ICdudW1iZXInLFxyXG4gIFN0cmluZyA9ICdzdHJpbmcnLFxyXG4gIERhdGUgPSAnZGF0ZScsXHJcbiAgQm9vbGVhbiA9ICdib29sZWFuJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFcnJvckNvZGUge1xyXG4gIFNlcnZlckVycm9yID0gJ3NlcnZlci1lcnJvcicsXHJcbiAgSW52YWxpZEFnZ3JlZ2F0aW9uRmllbGROYW1lID0gJ2ludmFsaWQtYWdncmVnYXRpb24tZmllbGQtbmFtZScsXHJcbiAgSW52YWxpZEZpbHRlckZpZWxkTmFtZSA9ICdpbnZhbGlkLWZpbHRlci1maWVsZG5hbWUnLFxyXG4gIEludmFsaWRGaWx0ZXJGaWVsZFZhbHVlID0gJ2ludmFsaWQtZmlsdGVyLWZpZWxkLXZhbHVlJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWVsZEFnZ3JlZ2F0aW9uVHlwZSB7XHJcbiAgU3VtID0gJ3N1bScsXHJcbiAgQXZnID0gJ2F2ZycsXHJcbiAgTWluID0gJ21pbicsXHJcbiAgTWF4ID0gJ21heCcsXHJcbiAgU3RkZXYgPSAnc3RkZXYnLFxyXG4gIFN0ZGV2cCA9ICdzdGRldnAnLFxyXG4gIFZhciA9ICd2YXInLFxyXG4gIFZhcnAgPSAndmFycCcsXHJcbiAgQ291bnQgPSAnY291bnQnLFxyXG4gIENvdW50ZCA9ICdjb3VudGQnLFxyXG4gIE1lZGlhbiA9ICdtZWRpYW4nLFxyXG4gIEF0dHIgPSAnYXR0cicsXHJcbiAgTm9uZSA9ICdub25lJyxcclxuICBZZWFyID0gJ3llYXInLFxyXG4gIFF0ciA9ICdxdHInLFxyXG4gIE1vbnRoID0gJ21vbnRoJyxcclxuICBEYXkgPSAnZGF5JyxcclxuICBIb3VyID0gJ2hvdXInLFxyXG4gIE1pbnV0ZSA9ICdtaW51dGUnLFxyXG4gIFNlY29uZCA9ICdzZWNvbmQnLFxyXG4gIFdlZWsgPSAnd2VlaycsXHJcbiAgV2Vla2RheSA9ICd3ZWVrZGF5JyxcclxuICBNb250aFllYXIgPSAnbW9udGgteWVhcicsXHJcbiAgTWR5ID0gJ21keScsXHJcbiAgRW5kID0gJ2VuZCcsXHJcbiAgVHJ1bmNZZWFyID0gJ3RydW5jLXllYXInLFxyXG4gIFRydW5jUXRyID0gJ3RydW5jLXF0cicsXHJcbiAgVHJ1bmNNb250aCA9ICd0cnVuYy1tb250aCcsXHJcbiAgVHJ1bmNXZWVrID0gJ3RydW5jLXdlZWsnLFxyXG4gIFRydW5jRGF5ID0gJ3RydW5jLWRheScsXHJcbiAgVHJ1bmNIb3VyID0gJ3RydW5jLWhvdXInLFxyXG4gIFRydW5jTWludXRlID0gJ3RydW5jLW1pbnV0ZScsXHJcbiAgVHJ1bmNTZWNvbmQgPSAndHJ1bmMtc2Vjb25kJyxcclxuICBRdWFydDEgPSAncXVhcnQxJyxcclxuICBRdWFydDMgPSAncXVhcnQzJyxcclxuICBTa2V3bmVzcyA9ICdza2V3bmVzcycsXHJcbiAgS3VydG9zaXMgPSAna3VydG9zaXMnLFxyXG4gIEluT3V0ID0gJ2luLW91dCcsXHJcbiAgVXNlciA9ICd1c2VyJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWVsZFJvbGVUeXBlIHtcclxuICBEaW1lbnNpb24gPSAnZGltZW5zaW9uJyxcclxuICBNZWFzdXJlID0gJ21lYXN1cmUnLFxyXG4gIFVua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuLyoqXHJcbiAqICBUaGUgZGlmZmVyZW50IHVwZGF0ZSB0eXBlcyBmb3IgYXBwbHlpbmcgZmlsdGVyLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRmlsdGVyVXBkYXRlVHlwZSB7XHJcbiAgQWRkID0gJ2FkZCcsXHJcbiAgQWxsID0gJ2FsbCcsXHJcbiAgUmVwbGFjZSA9ICdyZXBsYWNlJyxcclxuICBSZW1vdmUgPSAncmVtb3ZlJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTaGVldFR5cGUge1xyXG4gIERhc2hib2FyZCA9ICdkYXNoYm9hcmQnLFxyXG4gIFN0b3J5ID0gJ3N0b3J5JyxcclxuICBXb3Jrc2hlZXQgPSAnd29ya3NoZWV0J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEb21haW5SZXN0cmljdGlvblR5cGUge1xyXG4gIEFsbCA9ICdhbGwnLFxyXG4gIExpc3QgPSAnbGlzdCcsXHJcbiAgUmFuZ2UgPSAncmFuZ2UnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERhdGVTdGVwUGVyaW9kIHtcclxuICBZZWFycyA9ICd5ZWFycycsXHJcbiAgUXVhcnRlcnMgPSAncXVhcnRlcnMnLFxyXG4gIE1vbnRocyA9ICdtb250aHMnLFxyXG4gIFdlZWtzID0gJ3dlZWtzJyxcclxuICBEYXlzID0gJ2RheXMnLFxyXG4gIEhvdXJzID0gJ2hvdXJzJyxcclxuICBNaW51dGVzID0gJ21pbnV0ZXMnLFxyXG4gIFNlY29uZHMgPSAnc2Vjb25kcydcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBvcHRpb24gZm9yIHNwZWNpZnlpbmcgd2hpY2ggdmFsdWVzIHRvIGluY2x1ZGUgZm9yIGZpbHRlcmluZy5cclxuICovXHJcbmV4cG9ydCBlbnVtIEZpbHRlck51bGxPcHRpb24ge1xyXG4gIE51bGxWYWx1ZXMgPSAnbnVsbHZhbHVlcycsXHJcbiAgTm9uTnVsbFZhbHVlcyA9ICdub25udWxsdmFsdWVzJyxcclxuICBBbGxWYWx1ZXMgPSAnYWxsdmFsdWVzJ1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIHR5cGUgb2YgZmlsdGVyIGRvbWFpblxyXG4gKi9cclxuZXhwb3J0IGVudW0gRmlsdGVyRG9tYWluVHlwZSB7XHJcbiAgUmVsZXZhbnQgPSAncmVsZXZhbnQnLFxyXG4gIERhdGFiYXNlID0gJ2RhdGFiYXNlJ1xyXG59XHJcblxyXG4vKipcclxuICogSW50ZXJuYWwgZW51bSBmb3Igc3BlY2lmeWluZyB0aGUgc2VsZWN0aW9uIHR5cGUgZm9yIHNlbGVjdCBtYXJrcyBhcGkuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBTZWxlY3Rpb25VcGRhdGVUeXBlIHtcclxuICBSZXBsYWNlID0gJ3NlbGVjdC1yZXBsYWNlJyxcclxuICBBZGQgPSAnc2VsZWN0LWFkZCcsXHJcbiAgUmVtb3ZlID0gJ3NlbGVjdC1yZW1vdmUnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbnRlcm5hbCBlbnVtIGZvciBzcGVjaWZ5aW5nIHRoZSBpbmNsdWRlZCB2YWx1ZXMgdHlwZSBmb3IgcmFuZ2Ugc2VsZWN0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMge1xyXG4gIEluY2x1ZGVOdWxsID0gJ2luY2x1ZGUtbnVsbCcsXHJcbiAgSW5jbHVkZU5vbk51bGwgPSAnaW5jbHVkZS1ub24tbnVsbCcsXHJcbiAgSW5jbHVkZUFsbCA9ICdpbmNsdWRlLWFsbCdcclxufVxyXG5cclxuLyoqXHJcbiAqIFR5cGUgb2YgbWFyayBmb3IgYSBnaXZlbiBtYXJrcyBjYXJkIGluIGEgdml6LlxyXG4gKi9cclxuZXhwb3J0IGVudW0gTWFya1R5cGUge1xyXG4gICAgQmFyID0gJ2JhcicsXHJcbiAgICBMaW5lID0gJ2xpbmUnLFxyXG4gICAgQXJlYSA9ICdhcmVhJyxcclxuICAgIFNxdWFyZSA9ICdzcXVhcmUnLFxyXG4gICAgQ2lyY2xlID0gJ2NpcmNsZScsXHJcbiAgICBTaGFwZSA9ICdzaGFwZScsXHJcbiAgICBUZXh0ID0gJ3RleHQnLFxyXG4gICAgTWFwID0gJ21hcCcsXHJcbiAgICBQaWUgPSAncGllJyxcclxuICAgIEdhbnR0QmFyID0gJ2dhbnR0LWJhcicsXHJcbiAgICBQb2x5Z29uID0gJ3BvbHlnb24nLFxyXG59XHJcblxyXG4vKipcclxuICogSW50ZXJuYWwgZW51bSBmb3Igc3BlY2lmeWluZyB0aGUgdHlwZSBvZiBmaWx0ZXJcclxuICovXHJcbmV4cG9ydCBlbnVtIEZpbHRlclR5cGUge1xyXG4gIENhdGVnb3JpY2FsID0gJ2NhdGVnb3JpY2FsJyxcclxuICBSYW5nZSA9ICdyYW5nZScsXHJcbiAgUmVsYXRpdmVEYXRlID0gJ3JlbGF0aXZlRGF0ZScsXHJcbiAgSGllcmFyY2hpY2FsID0gJ2hpZXJhcmNoaWNhbCdcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVybmFsIGVudW0gZm9yIHNwZWNpZnlpbmcgdGhlIERhdGVSYW5nZVR5cGUgb2YgYSByZWxhdGl2ZSBkYXRlIGZpbHRlclxyXG4gKi9cclxuZXhwb3J0IGVudW0gRGF0ZVJhbmdlVHlwZSB7XHJcbiAgLyoqXHJcbiAgICogUmVmZXJzIHRvIHRoZSBsYXN0IGRheSwgd2VlaywgbW9udGgsIGV0Yy4gb2YgdGhlIGRhdGUgcGVyaW9kLlxyXG4gICAqL1xyXG4gIExhc3QgPSAnbGFzdCcsXHJcbiAgLyoqXHJcbiAgICogUmVmZXJzIHRvIHRoZSBsYXN0IE4gZGF5cywgd2Vla3MsIG1vbnRocywgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXHJcbiAgICovXHJcbiAgTGFzdE4gPSAnbGFzdE4nLFxyXG4gIC8qKlxyXG4gICAqIFJlZmVycyB0byB0aGUgbmV4dCBkYXksIHdlZWssIG1vbnRoLCBldGMuIG9mIHRoZSBkYXRlIHBlcmlvZC5cclxuICAgKi9cclxuICBOZXh0ID0gJ25leHQnLFxyXG4gIC8qKlxyXG4gICAqIFJlZmVycyB0byB0aGUgbmV4dCBOIGRheXMsIHdlZWtzLCBtb250aHMsIGV0Yy4gb2YgdGhlIGRhdGUgcGVyaW9kLlxyXG4gICAqL1xyXG4gIE5leHROID0gJ25leHROJyxcclxuICAvKipcclxuICAgKiBSZWZlcnMgdG8gdGhlIGN1cnJlbnQgZGF5LCB3ZWVrLCBtb250aCwgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXHJcbiAgICovXHJcbiAgQ3VycmVudCA9ICdjdXJyZW50JyxcclxuICAvKipcclxuICAgKiBSZWZlcnMgdG8gZXZlcnl0aGluZyB1cCB0byBhbmQgaW5jbHVkaW5nIHRoZSBjdXJyZW50IGRheSwgd2VlaywgbW9udGgsIGV0Yy4gb2YgdGhlIGRhdGUgcGVyaW9kLlxyXG4gICAqL1xyXG4gIFRvRGF0ZSA9ICd0b0RhdGUnXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9FbnVtcy50c1xuICoqLyIsImltcG9ydCB7IE1vZGVsIH0gZnJvbSAnLi9Nb2RlbHMnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25JZCB9IGZyb20gJy4vTm90aWZpY2F0aW9ucyc7XHJcbmltcG9ydCB7IFZlcmJJZCB9IGZyb20gJy4vVmVyYnMnO1xyXG5pbXBvcnQgeyBWZXJzaW9uTnVtYmVyIH0gZnJvbSAnLi9WZXJzaW9uTnVtYmVyJztcclxuXHJcbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvbkhhbmRsZXIgPSAobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHZvaWQ7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVQYXJhbWV0ZXJzIHtcclxuICBba2V5OiBzdHJpbmddOiBNb2RlbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRlUmVzcG9uc2Uge1xyXG4gIHJlc3VsdDogTW9kZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uIHtcclxuICBub3RpZmljYXRpb25JZDogTm90aWZpY2F0aW9uSWQ7XHJcbiAgZGF0YTogTW9kZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJuYWxBcGlEaXNwYXRjaGVyIHtcclxuICBzZXRWZXJzaW9uTnVtYmVyKHZlcnNpb25OdW1iZXI6IFZlcnNpb25OdW1iZXIpOiB2b2lkO1xyXG4gIGV4ZWN1dGUodmVyYjogVmVyYklkLCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyk6IFByb21pc2U8RXhlY3V0ZVJlc3BvbnNlPjtcclxuICByZWdpc3Rlck5vdGlmaWNhdGlvbkhhbmRsZXIoaGFuZGxlcjogTm90aWZpY2F0aW9uSGFuZGxlcik6IHZvaWQ7XHJcbiAgdW5yZWdpc3Rlck5vdGlmaWNhdGlvbkhhbmRsZXIoaGFuZGxlcjogTm90aWZpY2F0aW9uSGFuZGxlcik6IHZvaWQ7XHJcbn1cclxuXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICBpbnRlcmZhY2UgV2luZG93IHsgX190YWJsZWF1RGVza3RvcERpc3BhdGNoZXI6IFByb21pc2U8SW50ZXJuYWxBcGlEaXNwYXRjaGVyPjsgfVxyXG59XHJcblxyXG5leHBvcnQgbmFtZXNwYWNlIEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlciB7XHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZSgpOiBQcm9taXNlPEludGVybmFsQXBpRGlzcGF0Y2hlcj4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5fX3RhYmxlYXVEZXNrdG9wRGlzcGF0Y2hlcjtcclxuICB9XHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBoYXNEZXNrdG9wQXBpRGlzcGF0Y2hlclByb21pc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISFJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIuZ2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gc2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKGRpc3BhdGNoZXI6IFByb21pc2U8SW50ZXJuYWxBcGlEaXNwYXRjaGVyPik6IHZvaWQge1xyXG4gICAgd2luZG93Ll9fdGFibGVhdURlc2t0b3BEaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9JbnRlcm5hbEFwaURpc3BhdGNoZXIudHNcbiAqKi8iLCJleHBvcnQgZW51bSBOb3RpZmljYXRpb25JZCB7XHJcbiAgU2VsZWN0ZWRNYXJrc0NoYW5nZWQgPSAnc2VsZWN0ZWQtbWFya3MtY2hhbmdlZCcsXHJcbiAgUGFyYW1ldGVyQ2hhbmdlZCA9ICdwYXJhbWV0ZXItY2hhbmdlZCcsXHJcbiAgRmlsdGVyQ2hhbmdlZCA9ICdmaWx0ZXItY2hhbmdlZCdcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL05vdGlmaWNhdGlvbnMudHNcbiAqKi8iLCJleHBvcnQgZW51bSBQYXJhbWV0ZXJJZCB7XHJcbiAgRXh0ZW5zaW9uTG9jYXRvciA9ICdleHRlbnNpb24tbG9jYXRvcicsXHJcbiAgRXh0ZW5zaW9uQm9vdHN0cmFwSW5mbyA9ICdleHRlbnNpb24tYm9vdHN0cmFwLWluZm8nLFxyXG4gIEV4dGVuc2lvblNldHRpbmdzSW5mbyA9ICdleHRlbnNpb24tc2V0dGluZ3MtaW5mbycsXHJcbiAgVmlzdWFsSWQgPSAndmlzdWFsLWlkJyxcclxuICBTaGVldFBhdGggPSAnc2hlZXQtcGF0aCcsXHJcbiAgSWdub3JlQWxpYXNlcyA9ICdpZ25vcmUtYWxpYXNlcycsXHJcbiAgSWdub3JlU2VsZWN0aW9uID0gJ2lnbm9yZS1zZWxlY3Rpb24nLFxyXG4gIEluY2x1ZGVBbGxDb2x1bW5zID0gJ2luY2x1ZGUtYWxsLWNvbHVtbnMnLFxyXG4gIE1heFJvd3MgPSAnbWF4LXJvd3MnLFxyXG4gIFVuZGVybHlpbmdEYXRhVGFibGUgPSAndW5kZXJseWluZy1kYXRhLXRhYmxlJyxcclxuICBVbmRlcmx5aW5nU3VtbWFyeURhdGFUYWJsZSA9ICd1bmRlcmx5aW5nLXN1bW1hcnktZGF0YS10YWJsZScsXHJcbiAgRGF0YVNvdXJjZURhdGFUYWJsZSA9ICdkYXRhLXNvdXJjZS1kYXRhLXRhYmxlJyxcclxuICBTZXR0aW5nc1ZhbHVlcyA9ICdzZXR0aW5ncy12YWx1ZXMnLFxyXG4gIFNlbGVjdGVkRGF0YSA9ICdzZWxlY3RlZC1kYXRhJyxcclxuICBIaWdobGlnaHRlZERhdGEgPSAnaGlnaGxpZ2h0ZWQtZGF0YScsXHJcblxyXG4gICAvLyBGaWx0ZXIgUGFyYW1zXHJcbiAgRmllbGROYW1lID0gJ2ZpZWxkLW5hbWUnLFxyXG4gIEZpbHRlclZhbHVlcyA9ICdmaWx0ZXItdmFsdWVzJyxcclxuICBGaWx0ZXJVcGRhdGVUeXBlID0gJ2ZpbHRlci11cGRhdGUtdHlwZScsXHJcbiAgSXNFeGNsdWRlTW9kZSA9ICdpcy1leGNsdWRlJyxcclxuICBGaWx0ZXJSYW5nZU1pbiA9ICdmaWx0ZXItcmFuZ2UtbWluJyxcclxuICBGaWx0ZXJSYW5nZU1heCA9ICdmaWx0ZXItcmFuZ2UtbWF4JyxcclxuICBGaWx0ZXJSYW5nZU51bGxPcHRpb24gPSAnZmlsdGVyLXJhbmdlLW51bGwtb3B0aW9uJyxcclxuICBXb3Jrc2hlZXRGaWx0ZXJzID0gJ3dvcmtzaGVldC1maWx0ZXJzJyxcclxuICBGaWVsZElkID0gJ2ZpZWxkLWlkJyxcclxuICBEb21haW5UeXBlID0gJ2RvbWFpbi10eXBlJyxcclxuICBDYXRlZ29yaWNhbERvbWFpbiA9ICdjYXRlZ29yaWNhbC1kb21haW4nLFxyXG4gIFF1YW50aXRhdGl2ZURvbWFpbiA9ICdxdWFudGl0YXRpdmUtZG1haW4nLFxyXG5cclxuICBXb3Jrc2hlZXROYW1lID0gJ3dvcmtzaGVldC1uYW1lJyxcclxuICBEYXNoYm9hcmROYW1lID0gJ2Rhc2hib2FyZCcsXHJcblxyXG4gIFBhcmFtZXRlckluZm8gPSAncGFyYW1ldGVyLWluZm8nLFxyXG4gIFBhcmFtZXRlckluZm9zID0gJ3BhcmFtZXRlci1pbmZvcycsXHJcbiAgUGFyYW1ldGVyQ2FwdGlvbiA9ICdwYXJlbWV0ZXItY2FwdGlvbicsXHJcbiAgUGFyYW1ldGVyRmllbGROYW1lID0gJ3BhcmFtZXRlci1maWVsZC1uYW1lJyxcclxuICBQYXJhbWV0ZXJWYWx1ZSA9ICdwYXJhbWV0ZXItdmFsdWUnLFxyXG4gIFNlbGVjdGlvbiA9ICdzZWxlY3Rpb24nLFxyXG4gIFNlbGVjdGlvblVwZGF0ZVR5cGUgPSAnc2VsZWN0aW9uVXBkYXRlVHlwZScsXHJcbiAgSGllclZhbFNlbGVjdGlvbk1vZGVscyA9ICdoaWVyYXJjaGljYWxWYWx1ZVNlbGVjdGlvbk1vZGVscycsXHJcbiAgUXVhbnRSYW5nZVNlbGVjdGlvbk1vZGVscyA9ICdxdWFudGF0aXZlUmFuZ2VTZWxlY3Rpb25Nb2RlbHMnLFxyXG4gIERpbVZhbFNlbGVjdGlvbk1vZGVscyA9ICdkaW1lbnNpb25WYWx1ZVNlbGVjdGlvbk1vZGVscycsXHJcblxyXG4gIERhdGFTb3VyY2VJZCA9ICdkYXRhLXNvdXJjZS1pZCcsXHJcbiAgRGF0YVNjaGVtYSA9ICdkYXRhLXNjaGVtYScsXHJcbiAgRGF0YVNvdXJjZU5hbWUgPSAnZGF0YS1zb3VyY2UtbmFtZScsXHJcbiAgQ29sdW1uc1RvSW5jbHVkZSA9ICdjb2x1bW5zLXRvLWluY2x1ZGUnLFxyXG4gIEpvaW5EZXNjcmlwdGlvbiA9ICdqb2luLWRlc2NyaXB0aW9uJyxcclxuICBDb25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJpZXMgPSAnY29ubmVjdGlvbi1kZXNjcmlwdGlvbi1zdW1tYXJpZXMnLFxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9pbnRlcmZhY2UvUGFyYW1ldGVycy50c1xuICoqLyIsIi8vIERlY2xhcmUgdGhpcyBrZXkgdHlwZSBhbmQgZXhwb3J0IHRoZSBOb3RpZmljYXRpb25JZCB0byBtYWtlIHRoaXMgYmVoYXZlIGxpa2UgYSBzdHJpbmcgZW51bVxyXG5leHBvcnQgZW51bSBWZXJiSWQge1xyXG4gIEFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXIgPSAnY2F0ZWdvcmljYWwtZmlsdGVyJyxcclxuICBBcHBseVJhbmdlRmlsdGVyID0gJ3JhbmdlLWZpbHRlcicsXHJcbiAgQ2xlYXJGaWx0ZXIgPSAnY2xlYXItZmlsdGVyJyxcclxuICBJbml0aWFsaXplRXh0ZW5zaW9uID0gJ2luaXRpYWxpemUtZXh0ZW5zaW9uJyxcclxuICBHZXREYXRhU3VtbWFyeURhdGEgPSAnZ2V0LXN1bW1hcnktZGF0YScsXHJcbiAgR2V0VW5kZXJseWluZ0RhdGEgPSAnZ2V0LXVuZGVybHlpbmctZGF0YScsXHJcbiAgR2V0RGF0YVNvdXJjZURhdGEgPSAnZ2V0LWRhdGFzb3VyY2UtZGF0YScsXHJcbiAgU2F2ZUV4dGVuc2lvblNldHRpbmdzID0gJ3NhdmUtZXh0ZW5zaW9uLXNldHRpbmdzJyxcclxuICBHZXRTZWxlY3RlZE1hcmtzID0gJ2dldC1zZWxlY3RlZC1tYXJrcycsXHJcbiAgR2V0SGlnaGxpZ2h0ZWRNYXJrcyA9ICdnZXQtaGlnaGxpZ2h0ZWQtbWFya3MnLFxyXG4gIEdldFBhcmFtZXRlcnNGb3JTaGVldCA9ICdnZXQtcGFyYW1ldGVycy1mb3Itc2hlZXQnLFxyXG4gIEZpbmRQYXJhbWV0ZXIgPSAnZmluZC1wYXJhbWV0ZXInLFxyXG4gIENoYW5nZVBhcmFtZXRlclZhbHVlID0gJ2NoYW5nZS1wYXJhbWV0ZXItdmFsdWUnLFxyXG4gIENsZWFyU2VsZWN0ZWRNYXJrcyA9ICdjbGVhci1zZWxlY3RlZC1tYXJrcycsXHJcbiAgU2VsZWN0QnlWYWx1ZSA9ICdzZWxlY3QtYnktdmFsdWUnLFxyXG4gIEdldERhdGFTb3VyY2VzID0gJ2dldC1kYXRhLXNvdXJjZXMnLFxyXG4gIFJlZnJlc2hEYXRhU291cmNlID0gJ3JlZnJlc2gtZGF0YS1zb3VyY2UnLFxyXG4gIEdldEZpbHRlcnMgPSAnZ2V0LWZpbHRlcnMnLFxyXG4gIEdldENhdGVnb3JpY2FsRG9tYWluID0gJ2dldC1jYXRlZ29yaWNhbC1kb21haW4nLFxyXG4gIEdldFJhbmdlRG9tYWluID0gJ2dldC1yYW5nZS1kb21haW4nLFxyXG4gIEdldEpvaW5EZXNjcmlwdGlvbiA9ICdnZXQtam9pbi1kZXNjcmlwdGlvbicsXHJcbiAgR2V0Q29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyaWVzID0gJ2dldC1jb25uZWN0aW9uLWRlc2NyaXB0aW9uLXN1bW1hcmllcycsXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9WZXJicy50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXHJcbiAqL1xyXG5cclxuZXhwb3J0IHsgRGFzaGJvYXJkIH0gZnJvbSAnLi9EYXNoYm9hcmQnO1xyXG5leHBvcnQgeyBWZXJzaW9uTnVtYmVyIH0gZnJvbSAnLi9WZXJzaW9uTnVtYmVyJztcclxuXHJcbmV4cG9ydCB7IERhc2hib2FyZEltcGwgfSBmcm9tICcuL0ltcGwvRGFzaGJvYXJkSW1wbCc7XHJcblxyXG5leHBvcnQgeyBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MgfSBmcm9tICcuL0VudW1NYXBwaW5ncy9JbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9TZXJ2aWNlcy9SZWdpc3RlckFsbFNoYXJlZFNlcnZpY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9Dcm9zc0ZyYW1lL0Nyb3NzRnJhbWVCb290c3RyYXAnO1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0FwaVNoYXJlZC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBEYXNoYm9hcmRJbXBsIH0gZnJvbSAnLi9JbXBsL0Rhc2hib2FyZEltcGwnO1xyXG5pbXBvcnQgeyBTaGVldCB9IGZyb20gJy4vU2hlZXQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhc2hib2FyZCBleHRlbmRzIFNoZWV0IGltcGxlbWVudHMgQ29udHJhY3QuRGFzaGJvYXJkIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZGFzaGJvYXJkSW1wbDogRGFzaGJvYXJkSW1wbCkge1xyXG4gICAgc3VwZXIoX2Rhc2hib2FyZEltcGwpO1xyXG4gICAgX2Rhc2hib2FyZEltcGwuaW5pdGlhbGl6ZVdpdGhQdWJsaWNJbnRlcmZhY2VzKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB3b3Jrc2hlZXRzKCk6IEFycmF5PENvbnRyYWN0LldvcmtzaGVldD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rhc2hib2FyZEltcGwud29ya3NoZWV0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgb2JqZWN0cygpOiBBcnJheTxDb250cmFjdC5EYXNoYm9hcmRPYmplY3Q+IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXNoYm9hcmRJbXBsLm9iamVjdHM7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRGFzaGJvYXJkLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEV2ZW50TGlzdGVuZXJNYW5hZ2VyIH0gZnJvbSAnLi9FdmVudExpc3RlbmVyTWFuYWdlcic7XHJcblxyXG5pbXBvcnQgeyBTaGVldEltcGwgfSBmcm9tICcuL0ltcGwvU2hlZXRJbXBsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBTaGVldCBleHRlbmRzIEV2ZW50TGlzdGVuZXJNYW5hZ2VyIGltcGxlbWVudHMgQ29udHJhY3QuU2hlZXQge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zaGVldEltcGw6IFNoZWV0SW1wbCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW1wbC5uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaGVldFR5cGUoKTogQ29udHJhY3QuU2hlZXRUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9zaGVldEltcGwuc2hlZXRUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaXplKCk6IENvbnRyYWN0LlNpemUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW1wbC5zaXplO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbmRQYXJhbWV0ZXJBc3luYyhwYXJhbWV0ZXJOYW1lOiBzdHJpbmcpOiBQcm9taXNlPENvbnRyYWN0LlBhcmFtZXRlciB8IHVuZGVmaW5lZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW1wbC5maW5kUGFyYW1ldGVyQXN5bmMocGFyYW1ldGVyTmFtZSwgdGhpcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGFyYW1ldGVyc0FzeW5jKCk6IFByb21pc2U8QXJyYXk8Q29udHJhY3QuUGFyYW1ldGVyPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW1wbC5nZXRQYXJhbWV0ZXJzQXN5bmModGhpcyk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2hlZXQudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IFNpbmdsZUV2ZW50TWFuYWdlciB9IGZyb20gJy4vU2luZ2xlRXZlbnRNYW5hZ2VyJztcclxuXHJcbi8qKlxyXG4gKiBDbGFzcyBkZXNpZ25lZCB0byByZWdpc3RlciBhbmQgdW5yZWdpc3RlciBoYW5kbGVycyBmcm9tIGEgdXNlci4gT25seSB0aG9zZSBldmVudHNcclxuICogd2hpY2ggYXJlIGFkZGVkIHZpYSBBZGROZXdFdmVudFR5cGUgd2lsbCBiZSBzdXBwb3J0ZWQgYnkgdGhpcyBpbnN0YW5jZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEV2ZW50TGlzdGVuZXJNYW5hZ2VyIGltcGxlbWVudHMgIENvbnRyYWN0LkV2ZW50TGlzdGVuZXJNYW5hZ2VyIHtcclxuICBwcml2YXRlIHN0YXRpYyBVTlNVUFBPUlRFRF9FVkVOVDogc3RyaW5nID0gJ1Vuc3VwcG9ydGVkIGV2ZW50IHR5cGUgOiAlMSc7XHJcbiAgcHJpdmF0ZSBfZXZlbnRMaXN0ZW5lck1hbmFnZXJzOiB7IFt0YWJsZWF1RXZlbnRUeXBlOiBzdHJpbmddOiBTaW5nbGVFdmVudE1hbmFnZXI7IH07XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2VycyA9IHt9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlOiBDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXI6IENvbnRyYWN0LlRhYmxlYXVFdmVudEhhbmRsZXJGbik6IENvbnRyYWN0LlRhYmxlYXVFdmVudFVucmVnaXN0ZXJGbiB7XHJcbiAgICBpZiAoIXRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2Vycy5oYXNPd25Qcm9wZXJ0eShldmVudFR5cGUpKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoRXZlbnRMaXN0ZW5lck1hbmFnZXIuVU5TVVBQT1JURURfRVZFTlQsIFtldmVudFR5cGVdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRMaXN0ZW5lck1hbmFnZXJzW2V2ZW50VHlwZV0uYWRkRXZlbnRMaXN0ZW5lcihoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSwgaGFuZGxlcjogQ29udHJhY3QuVGFibGVhdUV2ZW50SGFuZGxlckZuKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2Vycy5oYXNPd25Qcm9wZXJ0eShldmVudFR5cGUpKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoRXZlbnRMaXN0ZW5lck1hbmFnZXIuVU5TVVBQT1JURURfRVZFTlQsIFtldmVudFR5cGVdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRMaXN0ZW5lck1hbmFnZXJzW2V2ZW50VHlwZV0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhZGROZXdFdmVudFR5cGUoZXZlbnRNYW5hZ2VyOiBTaW5nbGVFdmVudE1hbmFnZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2Vyc1tldmVudE1hbmFnZXIuZXZlbnRUeXBlXSA9IGV2ZW50TWFuYWdlcjtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudExpc3RlbmVyTWFuYWdlci50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXHJcbiAqL1xyXG5cclxuZXhwb3J0IHsgRW51bUNvbnZlcnRlciB9IGZyb20gJy4vRW51bUNvbnZlcnRlcic7XHJcbmV4cG9ydCB7IFBhcmFtIH0gZnJvbSAnLi9QYXJhbSc7XHJcbmV4cG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICcuL1RhYmxlYXVFeGNlcHRpb24nO1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvQXBpVXRpbHMudHNcbiAqKi8iLCJpbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnLi9UYWJsZWF1RXhjZXB0aW9uJztcclxuLyoqXHJcbiAqIFRoaXMgY2xhc3MgY29udmVydHMgZnJvbSBhIHNvdXJjZSBlbnVtIHZhbHVlIHRvIGRlc3RpbmF0aW9uIGVudW1cclxuICogdmFsdWUgZ2l2ZW4gYSBtYXBwaW5nIGZyb20gc291cmNlIHRvIGRlc3RpbmF0aW9uIHdoZW4gY29uc3RydWN0ZWQuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRW51bUNvbnZlcnRlcjxUU291cmNlVHlwZSBleHRlbmRzIHN0cmluZywgVERlc3RpbmF0aW9uVHlwZT4ge1xyXG4gIHByaXZhdGUgc3RhdGljIE1BUFBJTkdfTk9UX0ZPVU5EOiBzdHJpbmcgPSAnTWFwcGluZyBub3QgZm91bmQgZm9yICUxJztcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9tYXBwaW5nczogeyBbZW51bVZhbDogc3RyaW5nXTogVERlc3RpbmF0aW9uVHlwZTsgfSxcclxuICAgIHByaXZhdGUgX2RlZmF1bHRWYWw/OiBURGVzdGluYXRpb25UeXBlKSB7IH1cclxuXHJcbiAgcHVibGljIGNvbnZlcnQoZW51bVZhbDogVFNvdXJjZVR5cGUsIHRocm93SWZNaXNzaW5nPzogYm9vbGVhbik6IFREZXN0aW5hdGlvblR5cGUge1xyXG4gICAgaWYgKHRoaXMuX21hcHBpbmdzLmhhc093blByb3BlcnR5KGVudW1WYWwpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9tYXBwaW5nc1tlbnVtVmFsIGFzIHN0cmluZ107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX2RlZmF1bHRWYWwgIT09IHVuZGVmaW5lZCAmJiAhdGhyb3dJZk1pc3NpbmcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRWYWw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5lcnJvcihFbnVtQ29udmVydGVyLk1BUFBJTkdfTk9UX0ZPVU5ELCBbZW51bVZhbF0pO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvRW51bUNvbnZlcnRlci50c1xuICoqLyIsImV4cG9ydCBjbGFzcyBUYWJsZWF1RXhjZXB0aW9uIHtcclxuICBwdWJsaWMgc3RhdGljIEFQSV9OT1RfSU1QTEVNRU5URUQ6IHN0cmluZyA9ICclMSBBUEkgbm90IHlldCBpbXBsZW1lbnRlZC4nO1xyXG4gIHB1YmxpYyBzdGF0aWMgVU5ERUZJTkVEOiBzdHJpbmcgPSAnJTEgaXMgdW5kZWZpbmVkLic7XHJcbiAgcHVibGljIHN0YXRpYyBJTlZBTElEX1BBUkFNRVRFUl9WQUxVRTogc3RyaW5nID0gJ0ludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlcjogJTEuICUyJztcclxuICBwdWJsaWMgc3RhdGljIElOVkFMSURfUEFSQU1FVEVSX1RZUEU6IHN0cmluZyA9ICdJbnZhbGlkIHR5cGUgZm9yIHBhcmFtZXRlcjogJTEuICUyJztcclxuICBwdWJsaWMgc3RhdGljIE1JU1NJTkdfUEFSQU1FVEVSOiBzdHJpbmcgPSAnTWlzc2luZyBQYXJhbWV0ZXI6ICUxLic7XHJcbiAgcHVibGljIHN0YXRpYyBVTktOT1dOX0VSUk9SOiBzdHJpbmcgPSAnVW5rbm93biBlcnJvci4nO1xyXG4gIHB1YmxpYyBzdGF0aWMgSU5URVJOQUxfRVJST1I6IHN0cmluZyA9ICdJbnRlcm5hbCBlcnJvcjogJTEuJztcclxuICBwdWJsaWMgc3RhdGljIElOVkFMSUQ6IHN0cmluZyA9ICdJbnZhbGlkOiAlMS4gJTInO1xyXG4gIHB1YmxpYyBzdGF0aWMgSVNfTlVMTDogc3RyaW5nID0gJyUxIGlzIG51bGwuJztcclxuXHJcbiAgcHVibGljIHN0YXRpYyBhcGlOb3RJbXBsZW1lbnRlZCAocGFyYW1zOiBBcnJheTxzdHJpbmc+KTogRXJyb3Ige1xyXG4gICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFRhYmxlYXVFeGNlcHRpb24uZm9ybWF0KFRhYmxlYXVFeGNlcHRpb24uQVBJX05PVF9JTVBMRU1FTlRFRCwgcGFyYW1zKTtcclxuICAgIHJldHVybiBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzVW5kZWZpbmVkIChwYXJhbXM6IEFycmF5PHN0cmluZz4pOiBFcnJvciB7XHJcbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gVGFibGVhdUV4Y2VwdGlvbi5mb3JtYXQoVGFibGVhdUV4Y2VwdGlvbi5VTkRFRklORUQsIHBhcmFtcyk7XHJcbiAgICByZXR1cm4gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpc051bGwgKHBhcmFtczogQXJyYXk8c3RyaW5nPik6IEVycm9yIHtcclxuICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBUYWJsZWF1RXhjZXB0aW9uLmZvcm1hdChUYWJsZWF1RXhjZXB0aW9uLklTX05VTEwsIHBhcmFtcyk7XHJcbiAgICByZXR1cm4gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpbnZhbGlkUGFyYW1WYWx1ZSAocGFyYW1zOiBBcnJheTxzdHJpbmc+KTogRXJyb3Ige1xyXG4gICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFRhYmxlYXVFeGNlcHRpb24uZm9ybWF0KFRhYmxlYXVFeGNlcHRpb24uSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUsIHBhcmFtcyk7XHJcbiAgICByZXR1cm4gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpbnZhbGlkUGFyYW1UeXBlIChwYXJhbXM6IEFycmF5PHN0cmluZz4pOiBFcnJvciB7XHJcbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gVGFibGVhdUV4Y2VwdGlvbi5mb3JtYXQoVGFibGVhdUV4Y2VwdGlvbi5JTlZBTElEX1BBUkFNRVRFUl9UWVBFLCBwYXJhbXMpO1xyXG4gICAgcmV0dXJuIG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgbWlzc2luZ1BhcmFtZXRlciAocGFyYW1zOiBBcnJheTxzdHJpbmc+KTogRXJyb3Ige1xyXG4gICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFRhYmxlYXVFeGNlcHRpb24uZm9ybWF0KFRhYmxlYXVFeGNlcHRpb24uTUlTU0lOR19QQVJBTUVURVIsIHBhcmFtcyk7XHJcbiAgICByZXR1cm4gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpbnZhbGlkIChwYXJhbXM6IEFycmF5PHN0cmluZz4pOiBFcnJvciB7XHJcbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gVGFibGVhdUV4Y2VwdGlvbi5mb3JtYXQoVGFibGVhdUV4Y2VwdGlvbi5JTlZBTElELCBwYXJhbXMpO1xyXG4gICAgcmV0dXJuIG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaW50ZXJuYWxFcnJvciAocGFyYW1zOiBBcnJheTxzdHJpbmc+KTogRXJyb3Ige1xyXG4gICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFRhYmxlYXVFeGNlcHRpb24uZm9ybWF0KFRhYmxlYXVFeGNlcHRpb24uSU5URVJOQUxfRVJST1IsIHBhcmFtcyk7XHJcbiAgICByZXR1cm4gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBlcnJvciAobWVzc2FnZTogc3RyaW5nLCBwYXJhbXM/OiBBcnJheTxzdHJpbmc+KTogRXJyb3Ige1xyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nO1xyXG4gICAgaWYgKHBhcmFtcykge1xyXG4gICAgICByZXN1bHQgPSBUYWJsZWF1RXhjZXB0aW9uLmZvcm1hdChtZXNzYWdlLCBwYXJhbXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzdWx0ID0gbWVzc2FnZTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRXJyb3IocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0IChtZXNzYWdlOiBzdHJpbmcsIHBhcmFtczogQXJyYXk8c3RyaW5nPik6IHN0cmluZyB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcmFtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgbWF0Y2g6IHN0cmluZyA9ICclJyArIChpICsgMSk7XHJcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UobmV3IFJlZ0V4cChtYXRjaCwgJ2cnKSwgcGFyYW1zW2ldKTtcclxuICAgIH1cclxuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UobmV3IFJlZ0V4cCgnJVswLTldKycsICdnJyksICcnKTtcclxuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnRyaW0oKTtcclxuICAgIHJldHVybiBtZXNzYWdlO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvVGFibGVhdUV4Y2VwdGlvbi50c1xuICoqLyIsImltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICcuL1RhYmxlYXVFeGNlcHRpb24nO1xyXG5leHBvcnQgY2xhc3MgUGFyYW0ge1xyXG4gIC8qKlxyXG4gICAqIFZlcmlmaWVzIHRoYXQgYW4gaW5jb21pbmcgcGFyYW1ldGVyIGlzICd0cnV0aHknIGFuZCB0aHJvd3NcclxuICAgKiBhbiBlcnJvciBpZiBpdCdzIG5vdC4gVGhpcyB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSB2YWx1ZVxyXG4gICAqIGlzIG51bGwsIHVuZGVmaW5lZCwgTmFOLCB0aGUgZW1wdHkgc3RyaW5nLCAwLCBvciBmYWxzZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBhcmd1bWVudFZhbHVlIHZhbHVlIHRvIHZlcmlmeVxyXG4gICAqIEBwYXJhbSBhcmd1bWVudE5hbWUgbmFtZSBvZiBhcmd1bWVudCB0byB2ZXJpZnlcclxuICAgKi9cclxuICAvKnRzbGludDpkaXNhYmxlLW5leHQtbGluZSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgdmVyaWZ5VmFsdWUoYXJndW1lbnRWYWx1ZTogYW55LCBhcmd1bWVudE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKCFhcmd1bWVudFZhbHVlKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW52YWxpZFBhcmFtVmFsdWUoW2FyZ3VtZW50TmFtZV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhhdCBhIHN0cmluZyBpcyB2YWxpZC4gIFRocm93cyBhbiBlcnJvciBpZiB0aGUgc3RyaW5nIGlzXHJcbiAgICogbnVsbCwgdW5kZWZpbmVkLCBvciBOYU4uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYXJndW1lbnRWYWx1ZSB2YWx1ZSB0byB2ZXJpZnlcclxuICAgKiBAcGFyYW0gYXJndW1lbnROYW1lIG5hbWUgb2YgYXJndW1lbnQgdG8gdmVyaWZ5XHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyB2ZXJpZnlTdHJpbmcoYXJndW1lbnRWYWx1ZTogc3RyaW5nLCBhcmd1bWVudE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKGFyZ3VtZW50VmFsdWUgPT09IG51bGwgfHwgYXJndW1lbnRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW52YWxpZFBhcmFtVmFsdWUoW2FyZ3VtZW50TmFtZV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhlIHZhbHVlIGlzIHBhcnQgb2YgdGhlIEVudW1cclxuICAgKlxyXG4gICAqIFN0cmluZyBlbnVtcyBhcmUge3N0cmluZyA6IHN0cmluZ30gZGljdGlvbmFyaWVzIHdoaWNoIGFyZSBub3QgcmV2ZXJzZSBtYXBwYWJsZVxyXG4gICAqIFRoaXMgaXMgYW4gdWdseSB3b3JrYXJvdW5kXHJcbiAgICogQHBhcmFtIHZhbHVlIHZhbHVlIHRvIHZlcmlmeVxyXG4gICAqIEBwYXJhbSBlbnVtVHlwZSBlbnVtIHRvIHZlcmlmeSBhZ2FpbnN0XHJcbiAgICovXHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRW51bVZhbHVlPEVudW1UeXBlPih2YWx1ZTogRW51bVR5cGUsIGVudW1UeXBlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1ZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBPYmplY3Qua2V5cyhlbnVtVHlwZSkuZm9yRWFjaCgoZW51bUtleSkgPT4ge1xyXG4gICAgICBpZiAoZW51bVR5cGVbZW51bUtleV0gPT09IHZhbHVlLnRvU3RyaW5nKCkpIHtcclxuICAgICAgICBpc1ZhbGlkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaXNWYWxpZDtcclxuICB9XHJcbiAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cclxuXHJcbiAgLyoqXHJcbiAgICogc2VyaWFsaXplcyB0aGUgZGF0ZSBpbnRvIHRoZSBmb3JtYXQgdGhhdCB0aGUgc2VydmVyIGV4cGVjdHMuXHJcbiAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgdG8gc2VyaWFsaXplXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBzZXJpYWxpemVEYXRlRm9yUGxhdGZvcm0oZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB5ZWFyOiBudW1iZXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBtb250aDogbnVtYmVyID0gZGF0ZS5nZXRVVENNb250aCgpICsgMTtcclxuICAgIGNvbnN0IGRheTogbnVtYmVyID0gZGF0ZS5nZXRVVENEYXRlKCk7XHJcbiAgICBjb25zdCBoaDogbnVtYmVyID0gZGF0ZS5nZXRVVENIb3VycygpO1xyXG4gICAgY29uc3QgbW06IG51bWJlciA9IGRhdGUuZ2V0VVRDTWludXRlcygpO1xyXG4gICAgY29uc3Qgc2VjOiBudW1iZXIgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcclxuICAgIHJldHVybiB5ZWFyICsgJy0nICsgbW9udGggKyAnLScgKyBkYXkgKyAnICcgKyBoaCArICc6JyArIG1tICsgJzonICsgc2VjO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzZXJpYWxpemVCb29sZWFuRm9yUGxhdGZvcm0oYm9vbDogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYm9vbCA/ICd0cnVlJyA6ICdmYWxzZSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHNlcmlhbGl6ZU51bWJlckZvclBsYXRmb3JtKG51bTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBudW0udG9TdHJpbmcoMTApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhlIHBhcmFtcyBtaW4gYW5kIG1heCBmb3IgYXBwbHlpbmcgcmFuZ2UgZmlsdGVyXHJcbiAgICogQHBhcmFtIG1pbiByYW5nZSBtaW5cclxuICAgKiBAcGFyYW0gbWF4IHJhbmdlIG1heFxyXG4gICAqL1xyXG4gIC8qIHRzbGludDpkaXNhYmxlOm5vLWFueSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgdmVyaWZ5UmFuZ2VQYXJhbVR5cGUobWluOiBhbnksIG1heDogYW55KTogdm9pZCB7XHJcbiAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cclxuICAgIGlmICghbWluICYmICFtYXgpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5pbnZhbGlkUGFyYW1WYWx1ZShbJ1JhbmdlIHBhcmFtZXRlcnMnLCAnQXQgbGVhc3Qgb25lIG9mIG1pbiBvciBtYXggaXMgcmVxdWlyZWQuJ10pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghUGFyYW0uaXNUeXBlTnVtYmVyKG1pbikgJiYgIVBhcmFtLmlzVHlwZURhdGUobWluKSkge1xyXG4gICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWRQYXJhbVR5cGUoWydSYW5nZSBwYXJhbWV0ZXJzJywgJ09ubHkgRGF0ZSBhbmQgbnVtYmVyIGFyZSBhbGxvd2VkIGZvciBwYXJhbWV0ZXIgbWluLiddKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIVBhcmFtLmlzVHlwZU51bWJlcihtYXgpICYmICFQYXJhbS5pc1R5cGVEYXRlKG1heCkpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5pbnZhbGlkUGFyYW1UeXBlKFsnUmFuZ2UgcGFyYW1ldGVycycsICdPbmx5IERhdGUgYW5kIG51bWJlciBhcmUgYWxsb3dlZCBmb3IgcGFyYW1ldGVyIG1heC4nXSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZihtaW4pICE9PSB0eXBlb2YobWF4KSkge1xyXG4gICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWRQYXJhbVR5cGUoWydSYW5nZSBwYXJhbWV0ZXJzJywgJ1BhcmFtZXRlcnMgbWluIGFuZCBtYXggc2hvdWxkIGJlIG9mIHRoZSBzYW1lIHR5cGUuJ10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhlIGlucHV0IGlzIGEgbnVtYmVyXHJcbiAgICovXHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1R5cGVOdW1iZXIoaW5wdXQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZihpbnB1dCkgPT09ICdudW1iZXInIHx8IGlucHV0IGluc3RhbmNlb2YgTnVtYmVyO1xyXG4gIH1cclxuICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWFueSAqL1xyXG5cclxuICAvKipcclxuICAgKiBWZXJpZmllcyB0aGUgaW5wdXQgaXMgYSBEYXRlXHJcbiAgICovXHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1R5cGVEYXRlKGlucHV0OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpbnB1dCBpbnN0YW5jZW9mIERhdGU7XHJcbiAgfVxyXG4gIC8qIHRzbGludDplbmFibGU6bm8tYW55ICovXHJcblxyXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cclxuICBwdWJsaWMgc3RhdGljIGlzVHlwZVN0cmluZyhpbnB1dDogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mKGlucHV0KSA9PT0gJ3N0cmluZycgfHwgaW5wdXQgaW5zdGFuY2VvZiBTdHJpbmc7XHJcbiAgfVxyXG5cclxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1R5cGVCb29sKGlucHV0OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YoaW5wdXQpID09PSAnYm9vbGVhbicgfHwgaW5wdXQgaW5zdGFuY2VvZiBCb29sZWFuO1xyXG4gIH1cclxuXHJcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgc2VyaWFsaXplUGFyYW10ZXJWYWx1ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgIGlmIChQYXJhbS5pc1R5cGVOdW1iZXIodmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiBQYXJhbS5zZXJpYWxpemVOdW1iZXJGb3JQbGF0Zm9ybSh2YWx1ZSBhcyBudW1iZXIpO1xyXG4gICAgfSBlbHNlIGlmIChQYXJhbS5pc1R5cGVEYXRlKHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gUGFyYW0uc2VyaWFsaXplRGF0ZUZvclBsYXRmb3JtKHZhbHVlIGFzIERhdGUpO1xyXG4gICAgfSBlbHNlIGlmIChQYXJhbS5pc1R5cGVCb29sKHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gUGFyYW0uc2VyaWFsaXplQm9vbGVhbkZvclBsYXRmb3JtKHZhbHVlIGFzIGJvb2xlYW4pO1xyXG4gICAgfSBlbHNlIGlmIChQYXJhbS5pc1R5cGVTdHJpbmcodmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW52YWxpZFBhcmFtVmFsdWUoWyd2YWx1ZSddKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktdXRpbHMvc3JjL1BhcmFtLnRzXG4gKiovIiwiaW1wb3J0IHsgVmVyc2lvbk51bWJlciBhcyBWZXJzaW9uTnVtYmVyQ29udHJhY3QgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIGV4dGVuc2lvbnMgbGlicmFyeVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFZlcnNpb25OdW1iZXIgaW1wbGVtZW50cyBWZXJzaW9uTnVtYmVyQ29udHJhY3Qge1xyXG5cclxuICAvLyBVc2luZyBzb21lIHdlYnBhY2sgdHJpY2tzLCB3ZSBjYW4gaW5qZWN0IHRoaXMgdmVyc2lvbiBpbnRvIG91ciBjb2RlIChraW5kYSBsaWtlIGMrKyBwcmVwcm9jZXNzb3Igc3R1ZmYpXHJcbiAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBWZXJzaW9uTnVtYmVyO1xyXG4gIHByaXZhdGUgc3RhdGljIElOVkFMSURfVkVSU0lPTl9OVU1CRVI6IHN0cmluZyA9ICdJbnZhbGlkIHZlcnNpb24gbnVtYmVyOiAnO1xyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIHZlcnNpb24gbnVtYmVyLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IEluc3RhbmNlKCk6IFZlcnNpb25OdW1iZXIge1xyXG4gICAgcmV0dXJuIFZlcnNpb25OdW1iZXIuX2luc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBTZXRWZXJzaW9uTnVtYmVyKG51bVN0cmluZzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBWZXJzaW9uTnVtYmVyLl9pbnN0YW5jZSA9IG5ldyBWZXJzaW9uTnVtYmVyKG51bVN0cmluZyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgbWFqb3I6IG51bWJlcjtcclxuICBwdWJsaWMgcmVhZG9ubHkgbWlub3I6IG51bWJlcjtcclxuICBwdWJsaWMgcmVhZG9ubHkgZml4OiBudW1iZXI7XHJcblxyXG4gIC8vIHByaXZhdGUgY29uc3RydWN0b3Igc28gZXZlcnlvbmUgdXNlcyB0aGUgc2luZ2xldG9uIGluc3RhbmNlXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2ZXJzaW9uU3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHBhcnRzID0gdmVyc2lvblN0cmluZy5zcGxpdCgnLicpLm1hcChwID0+IHBhcnNlSW50KHAsIDEwKSk7XHJcbiAgICBpZiAocGFydHMubGVuZ3RoICE9PSAzKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoVmVyc2lvbk51bWJlci5JTlZBTElEX1ZFUlNJT05fTlVNQkVSLCBbdmVyc2lvblN0cmluZ10pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubWFqb3IgPSBwYXJ0c1swXTtcclxuICAgIHRoaXMubWlub3IgPSBwYXJ0c1sxXTtcclxuICAgIHRoaXMuZml4ID0gcGFydHNbMl07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5tYWpvcn0uJHt0aGlzLm1pbm9yfS4ke3RoaXMuZml4fWA7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvVmVyc2lvbk51bWJlci50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IERhc2hib2FyZE9iamVjdFR5cGUsIEV4dGVuc2lvbkRhc2hib2FyZEluZm8sIFNoZWV0UGF0aCwgVmlzdWFsSWQgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRGFzaGJvYXJkT2JqZWN0IH0gZnJvbSAnLi4vRGFzaGJvYXJkT2JqZWN0JztcclxuaW1wb3J0IHsgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzIH0gZnJvbSAnLi4vRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncyc7XHJcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vUG9pbnQnO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnLi4vU2l6ZSc7XHJcbmltcG9ydCB7IFdvcmtzaGVldCB9IGZyb20gJy4uL1dvcmtzaGVldCc7XHJcblxyXG5pbXBvcnQgeyBTaGVldEltcGwgfSBmcm9tICcuL1NoZWV0SW1wbCc7XHJcbmltcG9ydCB7IFNoZWV0SW5mb0ltcGwgfSBmcm9tICcuL1NoZWV0SW5mb0ltcGwnO1xyXG5pbXBvcnQgeyBXb3Jrc2hlZXRJbXBsIH0gZnJvbSAnLi9Xb3Jrc2hlZXRJbXBsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRJbXBsIGV4dGVuZHMgU2hlZXRJbXBsIHtcclxuICBwcml2YXRlIF93b3Jrc2hlZXRzOiBBcnJheTxDb250cmFjdC5Xb3Jrc2hlZXQ+O1xyXG4gIHByaXZhdGUgX29iamVjdHM6IEFycmF5PENvbnRyYWN0LkRhc2hib2FyZE9iamVjdD47XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pbmZvOiBFeHRlbnNpb25EYXNoYm9hcmRJbmZvLCBwcml2YXRlIF9zaGVldFBhdGg6IFNoZWV0UGF0aCkge1xyXG4gICAgc3VwZXIobmV3IFNoZWV0SW5mb0ltcGwoX2luZm8ubmFtZSwgQ29udHJhY3QuU2hlZXRUeXBlLkRhc2hib2FyZCwgbmV3IFNpemUoX2luZm8uc2l6ZS5oLCBfaW5mby5zaXplLncpKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHdvcmtzaGVldHMoKTogQXJyYXk8Q29udHJhY3QuV29ya3NoZWV0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgb2JqZWN0cygpOiBBcnJheTxDb250cmFjdC5EYXNoYm9hcmRPYmplY3Q+IHtcclxuICAgIHJldHVybiB0aGlzLl9vYmplY3RzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRpYWxpemVXaXRoUHVibGljSW50ZXJmYWNlcyhkYXNoYm9hcmQ6IENvbnRyYWN0LkRhc2hib2FyZCk6IHZvaWQge1xyXG4gICAgdGhpcy5fd29ya3NoZWV0cyA9IG5ldyBBcnJheTxXb3Jrc2hlZXQ+KCk7XHJcbiAgICB0aGlzLl9vYmplY3RzID0gbmV3IEFycmF5PENvbnRyYWN0LkRhc2hib2FyZE9iamVjdD4oKTtcclxuXHJcbiAgICAvLyBQcm9jZXNzIGFsbCB0aGUgem9uZXMgd2hpY2ggYXJlIGNvbnRhaW5lZCBpbiB0aGlzIGRhc2hib2FyZFxyXG4gICAgZm9yIChjb25zdCB6b25lIG9mIHRoaXMuX2luZm8uem9uZXMpIHtcclxuICAgICAgbGV0IHdvcmtzaGVldDogV29ya3NoZWV0IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG5cclxuICAgICAgY29uc3Qgem9uZVNpemUgPSBuZXcgU2l6ZSh6b25lLmhlaWdodCwgem9uZS53aWR0aCk7XHJcblxyXG4gICAgICBpZiAoem9uZS56b25lVHlwZSA9PT0gRGFzaGJvYXJkT2JqZWN0VHlwZS5Xb3Jrc2hlZXQpIHtcclxuICAgICAgICBjb25zdCBzaGVldEluZm8gPSBuZXcgU2hlZXRJbmZvSW1wbCh6b25lLm5hbWUsIENvbnRyYWN0LlNoZWV0VHlwZS5Xb3Jrc2hlZXQsIHpvbmVTaXplKTtcclxuICAgICAgICBjb25zdCB2aXpJZDogVmlzdWFsSWQgPSB7XHJcbiAgICAgICAgICB3b3Jrc2hlZXQ6IHpvbmUubmFtZSxcclxuICAgICAgICAgIGRhc2hib2FyZDogdGhpcy5faW5mby5uYW1lLFxyXG4gICAgICAgICAgc3Rvcnlib2FyZDogdGhpcy5fc2hlZXRQYXRoLnN0b3J5Ym9hcmQsXHJcbiAgICAgICAgICBmbGlwYm9hcmRab25lSUQ6IHRoaXMuX3NoZWV0UGF0aC5mbGlwYm9hcmRab25lSUQsXHJcbiAgICAgICAgICBzdG9yeVBvaW50SUQ6IHRoaXMuX3NoZWV0UGF0aC5zdG9yeVBvaW50SURcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCB3b3Jrc2hlZXRJbXBsID0gbmV3IFdvcmtzaGVldEltcGwoc2hlZXRJbmZvLCB2aXpJZCwgZGFzaGJvYXJkKTtcclxuICAgICAgICB3b3Jrc2hlZXQgPSBuZXcgV29ya3NoZWV0KHdvcmtzaGVldEltcGwpO1xyXG4gICAgICAgIHRoaXMuX3dvcmtzaGVldHMucHVzaCh3b3Jrc2hlZXQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB6b25lUG9pbnQgPSBuZXcgUG9pbnQoem9uZS54LCB6b25lLnkpO1xyXG5cclxuICAgICAgY29uc3QgZGFzaGJvYXJkT2JqZWN0ID0gbmV3IERhc2hib2FyZE9iamVjdChcclxuICAgICAgICBkYXNoYm9hcmQsXHJcbiAgICAgICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmRhc2hib2FyZE9iamVjdFR5cGUuY29udmVydCh6b25lLnpvbmVUeXBlKSxcclxuICAgICAgICB6b25lUG9pbnQsXHJcbiAgICAgICAgem9uZVNpemUsXHJcbiAgICAgICAgd29ya3NoZWV0XHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLl9vYmplY3RzLnB1c2goZGFzaGJvYXJkT2JqZWN0KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9JbXBsL0Rhc2hib2FyZEltcGwudHNcbiAqKi8iLCIvKipcclxuICogVGhpcyBpcyB5b3VyIG1haW4uIFRoaXMgaXMgd2hlcmUgeW91IHJlLWV4cG9ydCBldmVyeXRoaW5nIHlvdSB3YW50IHRvIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cclxuICpcclxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vQW5hbHl0aWNzSW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRGF0YVNvdXJjZUludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL0RhdGFUYWJsZUludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL0VuY29kaW5nSW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRW51bXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL0V2ZW50SW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRmlsdGVySW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VsZWN0aW9uSW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vUGFyYW1ldGVySW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VsZWN0aW9uSW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2hlZXRJbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCB7IEV4dGVuc2lvbnMgfSBmcm9tICcuL05hbWVzcGFjZXMvRXh0ZW5zaW9ucyc7XHJcbmV4cG9ydCB7IERhc2hib2FyZENvbnRlbnQgfSBmcm9tICcuL05hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudCc7XHJcbmV4cG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi9OYW1lc3BhY2VzL0Vudmlyb25tZW50JztcclxuZXhwb3J0IHsgU2V0dGluZ3MgfSBmcm9tICcuL05hbWVzcGFjZXMvU2V0dGluZ3MnO1xyXG5leHBvcnQgeyBVSSB9IGZyb20gJy4vTmFtZXNwYWNlcy9VSSc7XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWV4dGVybmFsLWNvbnRyYWN0L3NyYy9BcGlFeHRlcm5hbENvbnRyYWN0LnRzXG4gKiovIiwiLy8gQWxsIGVudW0gdmFsdWVzIG1hZGUgYXZhaWxhYmxlIHRvIEV4dGVuc2lvbnMgZGV2ZWxvcGVycy5cclxuLy8gRW51bXMgc2hvdWxkIGJlIGtlcHQgaW4gYWxwaGFiZXRpY2FsIG9yZGVyLlxyXG5cclxuLyoqXHJcbiAqIFRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBFeHRlbnNpb25zIGlzIGN1cnJlbnRseSBydW5uaW5nLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRXh0ZW5zaW9uQ29udGV4dCB7XHJcbiAgRGVza3RvcCA9ICdkZXNrdG9wJyxcclxuICBTZXJ2ZXIgPSAnc2VydmVyJ1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIG1vZGUgaW4gd2hpY2ggdGhlIEV4dGVuc2lvbnMgaXMgY3VycmVudGx5IHJ1bm5pbmcuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBFeHRlbnNpb25Nb2RlIHtcclxuICBBdXRob3JpbmcgPSAnYXV0aG9yaW5nJyxcclxuICBWaWV3aW5nID0gJ3ZpZXdpbmcnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFuYWx5dGljc09iamVjdFR5cGUge1xyXG4gIENsdXN0ZXIgPSAnY2x1c3RlcicsXHJcbiAgRm9yZWNhc3QgPSAnZm9yZWNhc3QnLFxyXG4gIFRyZW5kTGluZSA9ICd0cmVuZC1saW5lJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBDb2x1bW5UeXBlIHtcclxuICBEaXNjcmV0ZSA9ICdkaXNjcmV0ZScsXHJcbiAgQ29udGludW91cyA9ICdjb250aW51b3VzJ1xyXG59XHJcblxyXG4vKipcclxuICogV2hhdCB0aGUgb2JqZWN0IHJlcHJlc2VudHMgaW4gYSBkYXNoYm9hcmQuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBEYXNoYm9hcmRPYmplY3RUeXBlIHtcclxuICBCbGFuayA9ICdibGFuaycsXHJcbiAgV29ya3NoZWV0ID0gJ3dvcmtzaGVldCcsXHJcbiAgUXVpY2tGaWx0ZXIgPSAncXVpY2stZmlsdGVyJyxcclxuICBQYXJhbWV0ZXJDb250cm9sID0gJ3BhcmFtZXRlci1jb250cm9sJyxcclxuICBQYWdlRmlsdGVyID0gJ3BhZ2UtZmlsdGVyJyxcclxuICBMZWdlbmQgPSAnbGVnZW5kJyxcclxuICBUaXRsZSA9ICd0aXRsZScsXHJcbiAgVGV4dCA9ICd0ZXh0JyxcclxuICBJbWFnZSA9ICdpbWFnZScsXHJcbiAgV2ViUGFnZSA9ICd3ZWItcGFnZScsXHJcbiAgRXh0ZW5zaW9uID0gJ2V4dGVuc2lvbidcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgZGF0YSBhIHZhbHVlIGNhbiBoYXZlXHJcbiAqL1xyXG5leHBvcnQgZW51bSBEYXRhVHlwZSB7XHJcbiAgU3RyaW5nID0gJ3N0cmluZycsXHJcbiAgSW50ID0gJ2ludCcsXHJcbiAgRmxvYXQgPSAnZmxvYXQnLFxyXG4gIEJvb2wgPSAnYm9vbCcsXHJcbiAgRGF0ZSA9ICdkYXRlJyxcclxuICBEYXRlVGltZSA9ICdkYXRlLXRpbWUnLFxyXG4gIFNwYXRpYWwgPSAnc3BhdGlhbCdcclxufVxyXG5cclxuLyoqXHJcbiAqIFZhbGlkIGRhdGUgcmFuZ2VzIGZvciBhIHJlbGF0aXZlIGRhdGUgZmlsdGVyLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRGF0ZVJhbmdlVHlwZSB7XHJcbiAgTGFzdCA9ICdsYXN0JyxcclxuICBMYXN0TiA9ICdsYXN0LW4nLFxyXG4gIE5leHQgPSAnbmV4dCcsXHJcbiAgTmV4dE4gPSAnbmV4dC1uJyxcclxuICBDdXJyZW50ID0gJ2N1cnJlbnQnLFxyXG4gIFRvRGF0ZSA9ICd0by1kYXRlJ1xyXG59XHJcblxyXG4vKipcclxuICogVHlwZXMgb2YgZGlhbG9nIGV2ZW50IGZvciBldmVudCBsaXN0ZW5pbmcgYmV0d2VlbiBhIHBhcmVudCBFeHRlbnNpb25zIGFuZCBhIHBvcHVwIGRpYWxvZy5cclxuICovXHJcbmV4cG9ydCBlbnVtIERpYWxvZ0V2ZW50VHlwZSB7XHJcbiAgRGlhbG9nTWVzc2FnZSA9ICdkaWFsb2ctbWVzc2FnZScsXHJcbiAgRGlhbG9nRXZlbnQgPSAnZGlhbG9nLWV2ZW50J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFbmNvZGluZ1R5cGUge1xyXG4gIENvbHVtbiA9ICdjb2x1bW4nLFxyXG4gIFJvdyA9ICdyb3cnLFxyXG4gIFBhZ2UgPSAncGFnZScsXHJcbiAgRmlsdGVyID0gJ2ZpbHRlcicsXHJcbiAgTWFya3NUeXBlID0gJ21hcmtzLXR5cGUnLFxyXG4gIE1lYXN1cmVWYWx1ZXMgPSAnbWVhc3VyZS12YWx1ZXMnLFxyXG4gIENvbG9yID0gJ2NvbG9yJyxcclxuICBTaXplID0gJ3NpemUnLFxyXG4gIExhYmVsID0gJ2xhYmVsJyxcclxuICBEZXRhaWwgPSAnZGV0YWlsJyxcclxuICBUb29sdGlwID0gJ3Rvb2x0aXAnLFxyXG4gIFNoYXBlID0gJ3NoYXBlJyxcclxuICBQYXRoID0gJ3BhdGgnLFxyXG4gIEFuZ2xlID0gJ2FuZ2xlJ1xyXG59XHJcblxyXG4vKipcclxuICogQWxsIGVycm9yIGNvZGVzIHVzZWQgYnkgdGhlIEV4dGVuc2lvbnMgQVBJLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRXJyb3JDb2RlcyB7XHJcbiAgLyoqXHJcbiAgICogT25seSBvbmUgZGlhbG9nIGNhbiBiZSBvcGVuZWQgYXQgdGltZSB3aXRoIHRoZSBVSSBuYW1lc3BhY2UgZnVuY3Rpb25hbGl0eS5cclxuICAgKi9cclxuICBEaWFsb2dBbHJlYWR5T3BlbiA9ICdkaWFsb2ctYWxyZWFkeS1vcGVuJyxcclxuICAvKipcclxuICAgKiBUaGUgb3BlbiBkaWFsb2cgd2FzIGNsb3NlZCBieSB0aGUgdXNlci5cclxuICAgKi9cclxuICBEaWFsb2dDbG9zZWRCeVVzZXIgPSAnZGlhbG9nLWNsb3NlZC1ieS11c2VyJyxcclxuICAvKipcclxuICAgKiBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYSBmaWx0ZXIgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIEZpbHRlckNhbm5vdEJlUGVyZm9ybWVkID0gJ2ZpbHRlci1jYW5ub3QtYmUtcGVyZm9ybWVkJyxcclxuICAvKipcclxuICAgKiBBbiBlcnJvciBvY2N1cnJlZCB3aXRoaW4gdGhlIFRhYmxlYXUgRXh0ZW5zaW9ucyBBUEkuIENvbnRhY3QgVGFibGVhdSBTdXBwb3J0LlxyXG4gICAqL1xyXG4gIEludGVybmFsRXJyb3IgPSAnaW50ZXJuYWwtZXJyb3InLFxyXG4gIC8qKlxyXG4gICAqIEFuIGludmFsaWQgYWdncmVnYXRpb24gd2FzIHNwZWNpZmllZCBmb3IgdGhlIGZpbHRlciwgc3VjaCBhcyBzZXR0aW5nIGEgcmFuZ2UgZmlsdGVyIHRvIFwiU1VNKFNhbGVzKVwiIGluc3RlYWQgb2YgXCJTYWxlc1wiLlxyXG4gICAqL1xyXG4gIEludmFsaWRBZ2dyZWdhdGlvbkZpZWxkTmFtZSA9ICdpbnZhbGlkLWFnZ3JlZ2F0aW9uLWZpZWxkLW5hbWUnLFxyXG4gIC8qKlxyXG4gICAqIEEgZGlhbG9nIG11c3QgZmlyc3QgbGF1bmNoIHRvLCBhbmQgc2VuZCBtZXNzYWdlcyBmcm9tLCB0aGUgc2FtZSBkb21haW4gYXMgdGhlIHBhcmVudCBFeHRlbnNpb25zLlxyXG4gICAqL1xyXG4gIEludmFsaWREb21haW5EaWFsb2cgPSAnaW52YWxpZC1kaWFsb2ctZG9tYWluJyxcclxuICAvKipcclxuICAgKiBBbiBpbnZhbGlkIGRhdGUgd2FzIHNwZWNpZmllZCBpbiBhIG1ldGhvZCB0aGF0IHJlcXVpcmVkIGEgZGF0ZSBwYXJhbWV0ZXIuXHJcbiAgICovXHJcbiAgSW52YWxpZERhdGVQYXJhbWV0ZXIgPSAnaW52YWxpZC1kYXRlLXBhcmFtZXRlcicsXHJcbiAgLyoqXHJcbiAgICogQSBmaWx0ZXIgb3BlcmF0aW9uIHdhcyBhdHRlbXB0ZWQgb24gYSBmaWVsZCB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBkYXRhIHNvdXJjZS5cclxuICAgKi9cclxuICBJbnZhbGlkRmlsdGVyRmllbGROYW1lID0gJ2ludmFsaWQtZmlsdGVyLWZpZWxkLW5hbWUnLFxyXG4gIC8qKlxyXG4gICAqIEEgZmlsdGVyIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIHVzaW5nIGEgdmFsdWUgdGhhdCBpcyB0aGUgd3JvbmcgZGF0YSB0eXBlIG9yIGZvcm1hdC5cclxuICAgKi9cclxuICBJbnZhbGlkRmlsdGVyRmllbGRWYWx1ZSA9ICdpbnZhbGlkLWZpbHRlci1maWVsZC12YWx1ZScsXHJcbiAgLyoqXHJcbiAgICogQSBwYXJhbWV0ZXIgaXMgbm90IHRoZSBjb3JyZWN0IGRhdGEgdHlwZSBvciBmb3JtYXQuIFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkIGluIHRoZSBFcnJvci5tZXNzYWdlIGZpZWxkLlxyXG4gICAqL1xyXG4gIEludmFsaWRQYXJhbWV0ZXIgPSAnaW52YWxpZC1wYXJhbWV0ZXInLFxyXG4gIC8qKlxyXG4gICAqIEFuIGludmFsaWQgZGF0ZSB2YWx1ZSB3YXMgc3BlY2lmaWVkIGluIGEgU2hlZXQuc2VsZWN0TWFya3NBc3luYygpIGNhbGwgZm9yIGEgZGF0ZSBmaWVsZC5cclxuICAgKi9cclxuICBJbnZhbGlkU2VsZWN0aW9uRGF0ZSA9ICdpbnZhbGlkLXNlbGVjdGlvbi1kYXRlJyxcclxuICAvKipcclxuICAgKiBBIGZpZWxkIHdhcyBzcGVjaWZpZWQgaW4gYSBTaGVldC5zZWxlY3RNYXJrc0FzeW5jKCkgY2FsbCB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBkYXRhIHNvdXJjZS5cclxuICAgKi9cclxuICBJbnZhbGlkU2VsZWN0aW9uRmllbGROYW1lID0gJ2ludmFsaWQtc2VsZWN0aW9uLWZpZWxkLW5hbWUnLFxyXG4gIC8qKlxyXG4gICAqIEFuIGludmFsaWQgdmFsdWUgd2FzIHNwZWNpZmllZCBpbiBhIFNoZWV0LnNlbGVjdE1hcmtzQXN5bmMoKSBjYWxsLlxyXG4gICAqL1xyXG4gIEludmFsaWRTZWxlY3Rpb25WYWx1ZSA9ICdpbnZhbGlkLXNlbGVjdGlvbi12YWx1ZScsXHJcbiAgLyoqXHJcbiAgICogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2FzIG5vdCBzcGVjaWZpZWQsIG51bGwsIG9yIGFuIGVtcHR5IHN0cmluZy9hcnJheS5cclxuICAgKi9cclxuICBOdWxsT3JFbXB0eVBhcmFtZXRlciA9ICdudWxsLW9yLWVtcHR5LXBhcmFtZXRlcicsXHJcbiAgLyoqXHJcbiAgICogQW4gdW5rbm93biBldmVudCBuYW1lIHdhcyBzcGVjaWZpZWQgaW4gdGhlIGNhbGwgdG8gVml6LmFkZEV2ZW50TGlzdGVuZXJvciBWaXoucmVtb3ZlRXZlbnRMaXN0ZW5lci5cclxuICAgKi9cclxuICBVbnN1cHBvcnRlZEV2ZW50TmFtZSA9ICd1bnN1cHBvcnRlZC1ldmVudC1uYW1lJyxcclxuICAvKipcclxuICAgKiBBIG1ldGhvZCB3YXMgdXNlZCBmb3IgYSB0eXBlIG9mIGRhdGFzb3VyY2UgdGhhdCBkb2Vzbid0IHN1cHBvcnQgdGhhdCBtZXRob2QgKHNlZSBnZXRBY3RpdmVUYWJsZXNBc3luYyBmb3IgYW4gZXhhbXBsZSlcclxuICAgKi9cclxuICBVbnN1cHBvcnRlZE1ldGhvZEZvckRhdGFTb3VyY2VUeXBlID0gJ3Vuc3VwcG9ydGVkLW1ldGhvZC1mb3ItZGF0YS1zb3VyY2UtdHlwZSdcclxufVxyXG5cclxuLyoqXHJcbiAqICBUeXBlIG9mIGFnZ3JlZ2F0aW9uIG9uIGEgZmllbGQuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWVsZEFnZ3JlZ2F0aW9uVHlwZSB7XHJcbiAgU3VtID0gJ3N1bScsXHJcbiAgQXZnID0gJ2F2ZycsXHJcbiAgTWluID0gJ21pbicsXHJcbiAgTWF4ID0gJ21heCcsXHJcbiAgU3RkZXYgPSAnc3RkZXYnLFxyXG4gIFN0ZGV2cCA9ICdzdGRldnAnLFxyXG4gIFZhciA9ICd2YXInLFxyXG4gIFZhcnAgPSAndmFycCcsXHJcbiAgQ291bnQgPSAnY291bnQnLFxyXG4gIENvdW50ZCA9ICdjb3VudGQnLFxyXG4gIE1lZGlhbiA9ICdtZWRpYW4nLFxyXG4gIEF0dHIgPSAnYXR0cicsXHJcbiAgTm9uZSA9ICdub25lJyxcclxuICBZZWFyID0gJ3llYXInLFxyXG4gIFF0ciA9ICdxdHInLFxyXG4gIE1vbnRoID0gJ21vbnRoJyxcclxuICBEYXkgPSAnZGF5JyxcclxuICBIb3VyID0gJ2hvdXInLFxyXG4gIE1pbnV0ZSA9ICdtaW51dGUnLFxyXG4gIFNlY29uZCA9ICdzZWNvbmQnLFxyXG4gIFdlZWsgPSAnd2VlaycsXHJcbiAgV2Vla2RheSA9ICd3ZWVrZGF5JyxcclxuICBNb250aFllYXIgPSAnbW9udGgteWVhcicsXHJcbiAgTWR5ID0gJ21keScsXHJcbiAgRW5kID0gJ2VuZCcsXHJcbiAgVHJ1bmNZZWFyID0gJ3RydW5jLXllYXInLFxyXG4gIFRydW5jUXRyID0gJ3RydW5jLXF0cicsXHJcbiAgVHJ1bmNNb250aCA9ICd0cnVuYy1tb250aCcsXHJcbiAgVHJ1bmNXZWVrID0gJ3RydW5jLXdlZWsnLFxyXG4gIFRydW5jRGF5ID0gJ3RydW5jLWRheScsXHJcbiAgVHJ1bmNIb3VyID0gJ3RydW5jLWhvdXInLFxyXG4gIFRydW5jTWludXRlID0gJ3RydW5jLW1pbnV0ZScsXHJcbiAgVHJ1bmNTZWNvbmQgPSAndHJ1bmMtc2Vjb25kJyxcclxuICBRdWFydDEgPSAncXVhcnQxJyxcclxuICBRdWFydDMgPSAncXVhcnQzJyxcclxuICBTa2V3bmVzcyA9ICdza2V3bmVzcycsXHJcbiAgS3VydG9zaXMgPSAna3VydG9zaXMnLFxyXG4gIEluT3V0ID0gJ2luLW91dCcsXHJcbiAgVXNlciA9ICd1c2VyJ1xyXG59XHJcblxyXG4vKipcclxuICogUm9sZSBvZiBhIGZpZWxkLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRmllbGRSb2xlVHlwZSB7XHJcbiAgRGltZW5zaW9uID0gJ2RpbWVuc2lvbicsXHJcbiAgTWVhc3VyZSA9ICdtZWFzdXJlJyxcclxuICBVbmtub3duID0gJ3Vua25vd24nXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBbiBlbnVtZXJhdGlvbiBvZiB0aGUgdmFsaWQgdHlwZXMgb2YgZmlsdGVycyB0aGF0IGNhbiBiZSBhcHBsaWVkLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRmlsdGVyVHlwZSB7XHJcbiAgQ2F0ZWdvcmljYWwgPSAnY2F0ZWdvcmljYWwnLFxyXG4gIFJhbmdlID0gJ3JhbmdlJyxcclxuICBIaWVyYXJjaGljYWwgPSAnaGllcmFyY2hpY2FsJyxcclxuICBSZWxhdGl2ZURhdGUgPSAncmVsYXRpdmUtZGF0ZSdcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBkaWZmZXJlbnQgdXBkYXRlIHR5cGVzIGZvciBhcHBseWluZyBmaWx0ZXJcclxuICovXHJcbmV4cG9ydCBlbnVtIEZpbHRlclVwZGF0ZVR5cGUge1xyXG4gIEFkZCA9ICdhZGQnLFxyXG4gIEFsbCA9ICdhbGwnLFxyXG4gIFJlcGxhY2UgPSAncmVwbGFjZScsXHJcbiAgUmVtb3ZlID0gJ3JlbW92ZSdcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBkb21haW4gdHlwZSBmb3IgYSBmaWx0ZXJcclxuICovXHJcbmV4cG9ydCBlbnVtIEZpbHRlckRvbWFpblR5cGUge1xyXG4gIC8qKlxyXG4gICAqIFRoZSBkb21haW4gdmFsdWVzIHRoYXQgYXJlIHJlbGV2YW50IHRvIHRoZSBzcGVjaWZpZWQgZmlsdGVyXHJcbiAgICogaS5lLiB0aGUgZG9tYWluIGlzIHJlc3RyaWN0ZWQgYnkgYSBwcmV2aW91cyBmaWx0ZXJcclxuICAgKi9cclxuICBSZWxldmFudCA9ICdyZWxldmFudCcsXHJcbiAgLyoqXHJcbiAgICogbGlzdCBvZiBhbGwgcG9zc2libGUgZG9tYWluIHZhbHVlcyBmcm9tIGRhdGFiYXNlXHJcbiAgICovXHJcbiAgRGF0YWJhc2UgPSAnZGF0YWJhc2UnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgb3B0aW9uIGZvciBzcGVjaWZ5aW5nIHdoaWNoIHZhbHVlcyB0byBpbmNsdWRlIGZvciBmaWx0ZXJpbmdcclxuICogSW5kaWNhdGVzIHdoYXQgdG8gZG8gd2l0aCBudWxsIHZhbHVlcyBmb3IgYSBnaXZlbiBmaWx0ZXIgb3IgbWFyayBzZWxlY3Rpb24gY2FsbC5cclxuICovXHJcbmV4cG9ydCBlbnVtIEZpbHRlck51bGxPcHRpb24ge1xyXG4gIE51bGxWYWx1ZXMgPSAnbnVsbC12YWx1ZXMnLFxyXG4gIE5vbk51bGxWYWx1ZXMgPSAnbm9uLW51bGwtdmFsdWVzJyxcclxuICBBbGxWYWx1ZXMgPSAnYWxsLXZhbHVlcydcclxufVxyXG5cclxuLyoqXHJcbiAqIFR5cGUgb2YgbWFyayBmb3IgYSBnaXZlbiBtYXJrcyBjYXJkIGluIGEgdml6LlxyXG4gKi9cclxuZXhwb3J0IGVudW0gTWFya1R5cGUge1xyXG4gIEJhciA9ICdiYXInLFxyXG4gIExpbmUgPSAnbGluZScsXHJcbiAgQXJlYSA9ICdhcmVhJyxcclxuICBTcXVhcmUgPSAnc3F1YXJlJyxcclxuICBDaXJjbGUgPSAnY2lyY2xlJyxcclxuICBTaGFwZSA9ICdzaGFwZScsXHJcbiAgVGV4dCA9ICd0ZXh0JyxcclxuICBNYXAgPSAnbWFwJyxcclxuICBQaWUgPSAncGllJyxcclxuICBHYW50dEJhciA9ICdnYW50dC1iYXInLFxyXG4gIFBvbHlnb24gPSAncG9seWdvbidcclxufVxyXG5cclxuLyoqXHJcbiAqIEFuIGVudW1lcmF0aW9uIGRlc2NyaWJpbmcgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiBhbGxvd2FibGUgdmFsdWVzLlxyXG4gKiBUaGlzIGlzIHVzZWQgZm9yIHJlc3RyaWN0aW5nIHRoZSBkb21haW4gb2YgYSBwYXJhbWV0ZXJcclxuICovXHJcbmV4cG9ydCBlbnVtIFBhcmFtZXRlclZhbHVlVHlwZSB7XHJcbiAgQWxsID0gJ2FsbCcsXHJcbiAgTGlzdCA9ICdsaXN0JyxcclxuICBSYW5nZSA9ICdyYW5nZSdcclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGUgcGVyaW9kIHVzZWQgaW4gZmlsdGVycyBhbmQgaW4gcGFyYW1ldGVycy5cclxuICovXHJcbmV4cG9ydCBlbnVtIFBlcmlvZFR5cGUge1xyXG4gIFllYXJzID0gJ3llYXJzJyxcclxuICBRdWFydGVycyA9ICdxdWFydGVycycsXHJcbiAgTW9udGhzID0gJ21vbnRocycsXHJcbiAgV2Vla3MgPSAnd2Vla3MnLFxyXG4gIERheXMgPSAnZGF5cycsXHJcbiAgSG91cnMgPSAnaG91cnMnLFxyXG4gIE1pbnV0ZXMgPSAnbWludXRlcycsXHJcbiAgU2Vjb25kcyA9ICdzZWNvbmRzJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBRdWlja1RhYmxlQ2FsY1R5cGUge1xyXG4gIFJ1bm5pbmdUb3RhbCA9ICdydW5uaW5nLXRvdGFsJyxcclxuICBEaWZmZXJlbmNlID0gJ2RpZmZlcmVuY2UnLFxyXG4gIFBlcmNlbnREaWZmZXJlbmNlID0gJ3BlcmNlbnQtZGlmZmVyZW5jZScsXHJcbiAgUGVyY2VudE9mVG90YWwgPSAncGVyY2VudC1vZi10b3RhbCcsXHJcbiAgUmFuayA9ICdyYW5rJyxcclxuICBQZXJjZW50aWxlID0gJ3BlcmNlbnRpbGUnLFxyXG4gIE1vdmluZ0F2ZXJhZ2UgPSAnbW92aW5nLWF2ZXJhZ2UnLFxyXG4gIFlURFRvdGFsID0gJ3l0ZC10b3RhbCcsXHJcbiAgQ29tcG91bmRHcm93dGhSYXRlID0gJ2NvbXBvdW5kLWdyb3d0aC1yYXRlJyxcclxuICBZZWFyT3ZlclllYXJHcm93dGggPSAneWVhci1vdmVyLXllYXItZ3Jvd3RoJyxcclxuICBZVERHcm93dGggPSAneXRkLWdyb3d0aCcsXHJcbiAgVW5kZWZpbmVkID0gJ3VuZGVmaW5lZCdcclxufVxyXG5cclxuLyoqXHJcbiAqIEVudW0gZm9yIHNwZWNpZnlpbmcgdGhlIHNlbGVjdGlvbiB0eXBlIGZvciBzZWxlY3QgbWFya3MgYXBpLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gU2VsZWN0aW9uVXBkYXRlVHlwZSB7XHJcbiAgUmVwbGFjZSA9ICdzZWxlY3QtcmVwbGFjZScsXHJcbiAgQWRkID0gJ3NlbGVjdC1hZGQnLFxyXG4gIFJlbW92ZSA9ICdzZWxlY3QtcmVtb3ZlJ1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIHR5cGUgb2Ygc2hlZXQgYSBTaGVldCBvYmplY3QgcmVwcmVzZW50c1xyXG4gKi9cclxuZXhwb3J0IGVudW0gU2hlZXRUeXBlIHtcclxuICBEYXNoYm9hcmQgPSAnZGFzaGJvYXJkJyxcclxuICBTdG9yeSA9ICdzdG9yeScsXHJcbiAgV29ya3NoZWV0ID0gJ3dvcmtzaGVldCdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU29ydERpcmVjdGlvbiB7XHJcbiAgSW5jcmVhc2luZyA9ICdpbmNyZWFzaW5nJyxcclxuICBEZWNyZWFzaW5nID0gJ2RlY3JlYXNpbmcnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIGEgY2VydGFpbiB0eXBlIG9mIGV2ZW50IHdoaWNoIGNhbiBiZSBsaXN0ZW5lZCBmb3JcclxuICovXHJcbmV4cG9ydCBlbnVtIFRhYmxlYXVFdmVudFR5cGUge1xyXG4gIC8qKiBSYWlzZWQgd2hlbiBhbnkgZmlsdGVyIGhhcyBjaGFuZ2VkIHN0YXRlLiovXHJcbiAgRmlsdGVyQ2hhbmdlZCA9ICdmaWx0ZXItY2hhbmdlZCcsXHJcblxyXG4gIC8qKiBUaGUgc2VsZWN0ZWQgbWFya3Mgb24gYSB2aXN1YWxpemF0aW9uIGhhcyBjaGFuZ2VkICovXHJcbiAgTWFya1NlbGVjdGlvbkNoYW5nZWQgPSAnbWFyay1zZWxlY3Rpb24tY2hhbmdlZCcsXHJcblxyXG4gIC8qKiBBIHBhcmFtZXRlciBoYXMgaGFkIGl0cyB2YWx1ZSBtb2RpZmllZCAqL1xyXG4gIFBhcmFtZXRlckNoYW5nZWQgPSAncGFyYW1ldGVyLWNoYW5nZWQnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFRyZW5kTGluZU1vZGVsVHlwZSB7XHJcbiAgTGluZWFyID0gJ2xpbmVhcicsXHJcbiAgTG9nYXJpdGhtaWMgPSAnbG9nYXJpdGhtaWMnLFxyXG4gIEV4cG9uZW50aWFsID0gJ2V4cG9uZW50aWFsJyxcclxuICBQb2x5bm9taWFsID0gJ3BvbHlub21pYWwnXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktZXh0ZXJuYWwtY29udHJhY3Qvc3JjL0VudW1zLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGFzaGJvYXJkIG9iamVjdHMgLSB0aGUgem9uZXMgaW4gYSBkYXNoYm9hcmQuXHJcbiAqIFRoaXMgZG9lcyBub3QgZm9sbG93IHRoZSBJbXBsIHBhdHRlcm4gYXMgaXQgaXMganVzdCBhIHByb3BlcnR5IGJhZy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRPYmplY3QgaW1wbGVtZW50cyBDb250cmFjdC5EYXNoYm9hcmRPYmplY3Qge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2Rhc2hib2FyZDogQ29udHJhY3QuRGFzaGJvYXJkLFxyXG4gICAgcHJpdmF0ZSBfdHlwZTogQ29udHJhY3QuRGFzaGJvYXJkT2JqZWN0VHlwZSxcclxuICAgIHByaXZhdGUgX3Bvc2l0aW9uOiBDb250cmFjdC5Qb2ludCxcclxuICAgIHByaXZhdGUgX3NpemU6IENvbnRyYWN0LlNpemUsXHJcbiAgICBwcml2YXRlIF93b3Jrc2hlZXQ6IENvbnRyYWN0LldvcmtzaGVldCB8IHVuZGVmaW5lZFxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGFzaGJvYXJkKCk6IENvbnRyYWN0LkRhc2hib2FyZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGFzaGJvYXJkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0eXBlKCk6IENvbnRyYWN0LkRhc2hib2FyZE9iamVjdFR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHBvc2l0aW9uKCk6IENvbnRyYWN0LlBvaW50IHtcclxuICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2l6ZSgpOiBDb250cmFjdC5TaXplIHtcclxuICAgIHJldHVybiB0aGlzLl9zaXplO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB3b3Jrc2hlZXQoKTogQ29udHJhY3QuV29ya3NoZWV0IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXQ7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRGFzaGJvYXJkT2JqZWN0LnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBDb2x1bW5UeXBlIGFzIEV4dGVybmFsQ29sdW1uVHlwZSxcclxuICBEYXNoYm9hcmRPYmplY3RUeXBlIGFzIEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZSxcclxuICBEYXRhVHlwZSBhcyBFeHRlcm5hbERhdGFUeXBlLFxyXG4gIERhdGVSYW5nZVR5cGUgYXMgRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLFxyXG4gIEV4dGVuc2lvbkNvbnRleHQgYXMgRXh0ZXJuYWxFeHRlbnNpb25zQ29udGV4dCxcclxuICBFeHRlbnNpb25Nb2RlIGFzIEV4dGVybmFsRXh0ZW5zaW9uc01vZGUsXHJcbiAgRmllbGRBZ2dyZWdhdGlvblR5cGUgYXMgRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZSxcclxuICBGaWVsZFJvbGVUeXBlIGFzIEV4dGVybmFsRmllbGRSb2xlVHlwZSxcclxuICBGaWx0ZXJUeXBlIGFzIEV4dGVybmFsRmlsdGVyVHlwZSxcclxuICBGaWx0ZXJVcGRhdGVUeXBlIGFzIEV4dGVybmFsRmlsdGVyVXBkYXRlVHlwZSxcclxuICBQYXJhbWV0ZXJWYWx1ZVR5cGUgYXMgRXh0ZXJuYWxQYXJhbWV0ZXJWYWx1ZVR5cGUsXHJcbiAgUGVyaW9kVHlwZSBhcyBFeHRlcm5hbERhdGVQZXJpb2QsXHJcbiAgU2hlZXRUeXBlIGFzIEV4dGVybmFsU2hlZXRUeXBlLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbHVtblR5cGUgYXMgSW50ZXJuYWxDb2x1bW5UeXBlLFxyXG4gIERhc2hib2FyZE9iamVjdFR5cGUgYXMgSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLFxyXG4gIERhdGFUeXBlIGFzIEludGVybmFsRGF0YVR5cGUsXHJcbiAgRGF0ZVJhbmdlVHlwZSBhcyBJbnRlcm5hbERhdGVSYW5nZVR5cGUsXHJcbiAgRGF0ZVN0ZXBQZXJpb2QgYXMgSW50ZXJuYWxEYXRlU3RlcFBlcmlvZCxcclxuICBEb21haW5SZXN0cmljdGlvblR5cGUgYXMgSW50ZXJuYWxEb21haW5SZXN0cmljdGlvblR5cGUsXHJcbiAgRXh0ZW5zaW9uQ29udGV4dCBhcyBJbnRlcm5hbEV4dGVuc2lvbnNDb250ZXh0LFxyXG4gIEV4dGVuc2lvbk1vZGUgYXMgSW50ZXJuYWxFeHRlbnNpb25zTW9kZSxcclxuICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZSBhcyBJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLFxyXG4gIEZpZWxkUm9sZVR5cGUgYXMgSW50ZXJuYWxGaWVsZFJvbGVUeXBlLFxyXG4gIEZpbHRlclR5cGUgYXMgSW50ZXJuYWxGaWx0ZXJUeXBlLFxyXG4gIEZpbHRlclVwZGF0ZVR5cGUgYXMgSW50ZXJuYWxGaWx0ZXJVcGRhdGVUeXBlLFxyXG4gIFNoZWV0VHlwZSBhcyBJbnRlcm5hbFNoZWV0VHlwZSxcclxufSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRW51bUNvbnZlcnRlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZTp0eXBlZGVmIC0gRGlzYWJsZSB0aGlzIHRvIG1ha2UgZGVjbGFyaW5nIHRoZXNlIGNsYXNzZXMgYSBiaXQgZWFzaWVyICovXHJcbi8qKlxyXG4gKiBNYXBzIGVudW1zIHVzZWQgYnkgdGhlIGludGVybmFsLWFwaS1jb250cmFjdCB0byB0aGUgZW51bXMgdXNlZFxyXG4gKiBpbiB0aGUgZXh0ZXJuYWwtYXBpLWNvbnRyYWN0LCB3aGljaCBkZXZlbG9wZXJzIGNvZGUgYWdhaW5zdC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3Mge1xyXG4gIHB1YmxpYyBzdGF0aWMgZXh0ZW5zaW9uQ29udGV4dCA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRXh0ZW5zaW9uc0NvbnRleHQsIEV4dGVybmFsRXh0ZW5zaW9uc0NvbnRleHQ+KHtcclxuICAgIFtJbnRlcm5hbEV4dGVuc2lvbnNDb250ZXh0LkRlc2t0b3BdOiBFeHRlcm5hbEV4dGVuc2lvbnNDb250ZXh0LkRlc2t0b3AsXHJcbiAgICBbSW50ZXJuYWxFeHRlbnNpb25zQ29udGV4dC5TZXJ2ZXJdOiBFeHRlcm5hbEV4dGVuc2lvbnNDb250ZXh0LlNlcnZlclxyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGV4dGVuc2lvbk1vZGUgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbEV4dGVuc2lvbnNNb2RlLCBFeHRlcm5hbEV4dGVuc2lvbnNNb2RlPih7XHJcbiAgICBbSW50ZXJuYWxFeHRlbnNpb25zTW9kZS5BdXRob3JpbmddOiBFeHRlcm5hbEV4dGVuc2lvbnNNb2RlLkF1dGhvcmluZyxcclxuICAgIFtJbnRlcm5hbEV4dGVuc2lvbnNNb2RlLlZpZXdpbmddOiBFeHRlcm5hbEV4dGVuc2lvbnNNb2RlLlZpZXdpbmdcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb2x1bW5UeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxDb2x1bW5UeXBlLCBFeHRlcm5hbENvbHVtblR5cGU+KHtcclxuICAgIFtJbnRlcm5hbENvbHVtblR5cGUuQ29udGludW91c106IEV4dGVybmFsQ29sdW1uVHlwZS5Db250aW51b3VzLFxyXG4gICAgW0ludGVybmFsQ29sdW1uVHlwZS5EaXNjcmV0ZV06IEV4dGVybmFsQ29sdW1uVHlwZS5EaXNjcmV0ZVxyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGZpZWxkQWdncmVnYXRpb25UeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZSwgRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZT4oe1xyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuQXR0cl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuQXR0cixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkF2Z106IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuQXZnLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnRdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkNvdW50LFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnRkXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Db3VudGQsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5EYXldOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkRheSxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkVuZF06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuRW5kLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuSG91cl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuSG91cixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkluT3V0XTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Jbk91dCxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkt1cnRvc2lzXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5LdXJ0b3NpcyxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk1heF06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTWF4LFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTWR5XTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NZHksXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NZWRpYW5dOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk1lZGlhbixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk1pbl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTWluLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTWludXRlXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NaW51dGUsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Nb250aFllYXJdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk1vbnRoWWVhcixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk5vbmVdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk5vbmUsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdHJdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlF0cixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlF1YXJ0MV06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuUXVhcnQxLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuUXVhcnQzXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdWFydDMsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TZWNvbmRdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlNlY29uZCxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlNrZXduZXNzXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Ta2V3bmVzcyxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlN0ZGV2XTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TdGRldixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlN0ZGV2cF06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuU3RkZXZwLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuU3VtXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TdW0sXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY0RheV06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNEYXksXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY0hvdXJdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jSG91cixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTWludXRlXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY01pbnV0ZSxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTW9udGhdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTW9udGgsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1F0cl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNRdHIsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1NlY29uZF06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNTZWNvbmQsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1dlZWtdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jV2VlayxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jWWVhcl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNZZWFyLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVXNlcl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVXNlcixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlZhcl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVmFyLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVmFycF06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVmFycCxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLldlZWtdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLldlZWssXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5XZWVrZGF5XTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5XZWVrZGF5LFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuWWVhcl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuWWVhcixcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBmaWVsZFJvbGVUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxGaWVsZFJvbGVUeXBlLCBFeHRlcm5hbEZpZWxkUm9sZVR5cGU+KHtcclxuICAgIFtJbnRlcm5hbEZpZWxkUm9sZVR5cGUuRGltZW5zaW9uXTogRXh0ZXJuYWxGaWVsZFJvbGVUeXBlLkRpbWVuc2lvbixcclxuICAgIFtJbnRlcm5hbEZpZWxkUm9sZVR5cGUuTWVhc3VyZV06IEV4dGVybmFsRmllbGRSb2xlVHlwZS5NZWFzdXJlLFxyXG4gICAgW0ludGVybmFsRmllbGRSb2xlVHlwZS5Vbmtub3duXTogRXh0ZXJuYWxGaWVsZFJvbGVUeXBlLlVua25vd24sXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgc2hlZXRUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxTaGVldFR5cGUsIEV4dGVybmFsU2hlZXRUeXBlPih7XHJcbiAgICBbSW50ZXJuYWxTaGVldFR5cGUuRGFzaGJvYXJkXTogRXh0ZXJuYWxTaGVldFR5cGUuRGFzaGJvYXJkLFxyXG4gICAgW0ludGVybmFsU2hlZXRUeXBlLlN0b3J5XTogRXh0ZXJuYWxTaGVldFR5cGUuU3RvcnksXHJcbiAgICBbSW50ZXJuYWxTaGVldFR5cGUuV29ya3NoZWV0XTogRXh0ZXJuYWxTaGVldFR5cGUuV29ya3NoZWV0XHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZGFzaGJvYXJkT2JqZWN0VHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZSwgRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlPih7XHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkV4dGVuc2lvbl06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5FeHRlbnNpb24sXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5JbWFnZV06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5JbWFnZSxcclxuICAgIFtJbnRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUuTGVnZW5kXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcclxuICAgIFtJbnRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUuUGFnZUZpbHRlcl06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5QYWdlRmlsdGVyLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5QYXJhbWV0ZXJDb250cm9sXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlBhcmFtZXRlckNvbnRyb2wsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlF1aWNrRmlsdGVyXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlF1aWNrRmlsdGVyLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5UZXh0XTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRleHQsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRpdGxlXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRpdGxlLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5XZWJQYWdlXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLldlYlBhZ2UsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLldvcmtzaGVldF06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5Xb3Jrc2hlZXRcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRhVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRGF0YVR5cGUsIEV4dGVybmFsRGF0YVR5cGU+KHtcclxuICAgIFtJbnRlcm5hbERhdGFUeXBlLkJvb2xdOiBFeHRlcm5hbERhdGFUeXBlLkJvb2wsXHJcbiAgICBbSW50ZXJuYWxEYXRhVHlwZS5EYXRlXTogRXh0ZXJuYWxEYXRhVHlwZS5EYXRlLFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuRGF0ZVRpbWVdOiBFeHRlcm5hbERhdGFUeXBlLkRhdGVUaW1lLFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuRmxvYXRdOiBFeHRlcm5hbERhdGFUeXBlLkZsb2F0LFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuSW50XTogRXh0ZXJuYWxEYXRhVHlwZS5JbnQsXHJcbiAgICBbSW50ZXJuYWxEYXRhVHlwZS5TdHJpbmddOiBFeHRlcm5hbERhdGFUeXBlLlN0cmluZ1xyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGZpbHRlclVwZGF0ZVR5cGUgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbEZpbHRlclVwZGF0ZVR5cGUsIEV4dGVybmFsRmlsdGVyVXBkYXRlVHlwZT4oe1xyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5BZGRdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuQWRkLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5BbGxdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuQWxsLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5SZW1vdmVdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuUmVtb3ZlLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5SZXBsYWNlXTogRXh0ZXJuYWxGaWx0ZXJVcGRhdGVUeXBlLlJlcGxhY2VcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBhbGxvd2FibGVWYWx1ZXMgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbERvbWFpblJlc3RyaWN0aW9uVHlwZSwgRXh0ZXJuYWxQYXJhbWV0ZXJWYWx1ZVR5cGU+KHtcclxuICAgIFtJbnRlcm5hbERvbWFpblJlc3RyaWN0aW9uVHlwZS5BbGxdOiBFeHRlcm5hbFBhcmFtZXRlclZhbHVlVHlwZS5BbGwsXHJcbiAgICBbSW50ZXJuYWxEb21haW5SZXN0cmljdGlvblR5cGUuTGlzdF06IEV4dGVybmFsUGFyYW1ldGVyVmFsdWVUeXBlLkxpc3QsXHJcbiAgICBbSW50ZXJuYWxEb21haW5SZXN0cmljdGlvblR5cGUuUmFuZ2VdOiBFeHRlcm5hbFBhcmFtZXRlclZhbHVlVHlwZS5SYW5nZVxyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGRhdGVTdGVwUGVyaW9kID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxEYXRlU3RlcFBlcmlvZCwgRXh0ZXJuYWxEYXRlUGVyaW9kPih7XHJcbiAgICBbSW50ZXJuYWxEYXRlU3RlcFBlcmlvZC5ZZWFyc106IEV4dGVybmFsRGF0ZVBlcmlvZC5ZZWFycyxcclxuICAgIFtJbnRlcm5hbERhdGVTdGVwUGVyaW9kLlF1YXJ0ZXJzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLlF1YXJ0ZXJzLFxyXG4gICAgW0ludGVybmFsRGF0ZVN0ZXBQZXJpb2QuTW9udGhzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLk1vbnRocyxcclxuICAgIFtJbnRlcm5hbERhdGVTdGVwUGVyaW9kLldlZWtzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLldlZWtzLFxyXG4gICAgW0ludGVybmFsRGF0ZVN0ZXBQZXJpb2QuRGF5c106IEV4dGVybmFsRGF0ZVBlcmlvZC5EYXlzLFxyXG4gICAgW0ludGVybmFsRGF0ZVN0ZXBQZXJpb2QuSG91cnNdOiBFeHRlcm5hbERhdGVQZXJpb2QuSG91cnMsXHJcbiAgICBbSW50ZXJuYWxEYXRlU3RlcFBlcmlvZC5NaW51dGVzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLk1pbnV0ZXMsXHJcbiAgICBbSW50ZXJuYWxEYXRlU3RlcFBlcmlvZC5TZWNvbmRzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLlNlY29uZHNcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRlUmFuZ2VUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxEYXRlUmFuZ2VUeXBlLCBFeHRlcm5hbERhdGVSYW5nZVR5cGU+KHtcclxuICAgIFtJbnRlcm5hbERhdGVSYW5nZVR5cGUuQ3VycmVudF06IEV4dGVybmFsRGF0ZVJhbmdlVHlwZS5DdXJyZW50LFxyXG4gICAgW0ludGVybmFsRGF0ZVJhbmdlVHlwZS5MYXN0XTogRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLkxhc3QsXHJcbiAgICBbSW50ZXJuYWxEYXRlUmFuZ2VUeXBlLkxhc3ROXTogRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLkxhc3ROLFxyXG4gICAgW0ludGVybmFsRGF0ZVJhbmdlVHlwZS5OZXh0XTogRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLk5leHQsXHJcbiAgICBbSW50ZXJuYWxEYXRlUmFuZ2VUeXBlLk5leHROXTogRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLk5leHROLFxyXG4gICAgW0ludGVybmFsRGF0ZVJhbmdlVHlwZS5Ub0RhdGVdOiBFeHRlcm5hbERhdGVSYW5nZVR5cGUuVG9EYXRlXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRmlsdGVyVHlwZSwgRXh0ZXJuYWxGaWx0ZXJUeXBlPih7XHJcbiAgICBbSW50ZXJuYWxGaWx0ZXJUeXBlLkNhdGVnb3JpY2FsXTogRXh0ZXJuYWxGaWx0ZXJUeXBlLkNhdGVnb3JpY2FsLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVHlwZS5SYW5nZV0gOiBFeHRlcm5hbEZpbHRlclR5cGUuUmFuZ2UsXHJcbiAgICBbSW50ZXJuYWxGaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZV06IEV4dGVybmFsRmlsdGVyVHlwZS5SZWxhdGl2ZURhdGUsXHJcbiAgICBbSW50ZXJuYWxGaWx0ZXJUeXBlLkhpZXJhcmNoaWNhbF06IEV4dGVybmFsRmlsdGVyVHlwZS5IaWVyYXJjaGljYWxcclxuICB9KTtcclxufVxyXG4vKiB0c2xpbnQ6ZW5hYmxlOnR5cGVkZWYgKi9cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FbnVtTWFwcGluZ3MvSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBQb2ludCBpbXBsZW1lbnRzIENvbnRyYWN0LlBvaW50IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfeDogbnVtYmVyLCBwcml2YXRlIF95OiBudW1iZXIpIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl94O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB5KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5feTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Qb2ludC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2l6ZSBpbXBsZW1lbnRzIENvbnRyYWN0LlNpemUge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9oZWlnaHQ6IG51bWJlciwgcHJpdmF0ZSBfd2lkdGg6IG51bWJlcikgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaGVpZ2h0KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5faGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB3aWR0aCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dpZHRoO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NpemUudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IFNoZWV0IH0gZnJvbSAnLi9TaGVldCc7XHJcblxyXG5pbXBvcnQgeyBXb3Jrc2hlZXRJbXBsIH0gZnJvbSAnLi9JbXBsL1dvcmtzaGVldEltcGwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFdvcmtzaGVldCBleHRlbmRzIFNoZWV0IGltcGxlbWVudHMgQ29udHJhY3QuV29ya3NoZWV0IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfd29ya3NoZWV0SW1wbDogV29ya3NoZWV0SW1wbCkge1xyXG4gICAgc3VwZXIoX3dvcmtzaGVldEltcGwpO1xyXG5cclxuICAgIC8vIENhbGwgdG8gaW5pdGlhbGl6ZSBldmVudHMgYW5kIHRoZW4gY2FsbCBkb3duIHRvIHRoZSBldmVudCBsaXN0ZW5lciBtYW5hZ2VyIHRvIGhhbmRsZSB0aGluZ3NcclxuICAgIHRoaXMuX3dvcmtzaGVldEltcGwuaW5pdGlhbGl6ZUV2ZW50cyh0aGlzKS5mb3JFYWNoKGUgPT4gdGhpcy5hZGROZXdFdmVudFR5cGUoZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBwYXJlbnREYXNoYm9hcmQoKTogQ29udHJhY3QuRGFzaGJvYXJkIHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLnBhcmVudERhc2hib2FyZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseUZpbHRlckFzeW5jKFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsIHZhbHVlczogQXJyYXk8c3RyaW5nPiwgdXBkYXRlVHlwZTogQ29udHJhY3QuRmlsdGVyVXBkYXRlVHlwZSwgb3B0aW9uczogQ29udHJhY3QuRmlsdGVyT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmFwcGx5RmlsdGVyQXN5bmMoZmllbGROYW1lLCB2YWx1ZXMsIHVwZGF0ZVR5cGUsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGx5UmFuZ2VGaWx0ZXJBc3luYyhmaWVsZE5hbWU6IHN0cmluZywgZmlsdGVyT3B0aW9uczogQ29udHJhY3QuUmFuZ2VGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmFwcGx5UmFuZ2VGaWx0ZXJBc3luYyhmaWVsZE5hbWUsIGZpbHRlck9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyRmlsdGVyQXN5bmMoZmllbGROYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuY2xlYXJGaWx0ZXJBc3luYyhmaWVsZE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFuYWx5dGljT2JqZWN0c0FzeW5jKCk6IFByb21pc2U8QXJyYXk8Q29udHJhY3QuQW5hbHl0aWNzT2JqZWN0Pj4ge1xyXG4gICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5hcGlOb3RJbXBsZW1lbnRlZChbJ2dldEFuYWx5dGljT2JqZWN0c0FzeW5jJ10pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERhdGFTb3VyY2VzQXN5bmMoKTogUHJvbWlzZTxBcnJheTxDb250cmFjdC5EYXRhU291cmNlPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuZ2V0RGF0YVNvdXJjZXNBc3luYygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEVuY29kaW5nc0FzeW5jKCk6IFByb21pc2U8QXJyYXk8Q29udHJhY3QuRW5jb2Rpbmc+PiB7XHJcbiAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmFwaU5vdEltcGxlbWVudGVkKFsnZ2V0RW5jb2RpbmdzQXN5bmMnXSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RmlsdGVyc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuRmlsdGVyW10+IHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldEZpbHRlcnNBc3luYygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkTWFya3NBc3luYygpOiBQcm9taXNlPENvbnRyYWN0Lk1hcmtzQ29sbGVjdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuZ2V0U2VsZWN0ZWRNYXJrc0FzeW5jKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5nZXRIaWdobGlnaHRlZE1hcmtzQXN5bmMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdW1tYXJ5RGF0YUFzeW5jKG9wdGlvbnM6IENvbnRyYWN0LkdldFN1bW1hcnlEYXRhT3B0aW9ucyk6IFByb21pc2U8Q29udHJhY3QuRGF0YVRhYmxlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5nZXRTdW1tYXJ5RGF0YUFzeW5jKG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFVuZGVybHlpbmdEYXRhQXN5bmMob3B0aW9uczogQ29udHJhY3QuR2V0VW5kZXJseWluZ0RhdGFPcHRpb25zKTogUHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+IHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldFVuZGVybHlpbmdEYXRhQXN5bmMob3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJTZWxlY3RlZE1hcmtzQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5jbGVhclNlbGVjdGVkTWFya3NBc3luYygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE1hcmtzQnlJREFzeW5jKG1hcmtzSW5mbzogQXJyYXk8Q29udHJhY3QuTWFya0luZm8+LCB1cGRhdGVUeXBlOiBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5zZWxlY3RNYXJrc0J5SWRBc3luYyhtYXJrc0luZm8sIHVwZGF0ZVR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE1hcmtzQnlWYWx1ZUFzeW5jKHNlbGVjdGlvbnM6IEFycmF5PENvbnRyYWN0LlNlbGVjdGlvbkNyaXRlcmlhPixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVXBkYXRlVHlwZTogQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuc2VsZWN0TWFya3NCeVZhbHVlQXN5bmMoc2VsZWN0aW9ucywgc2VsZWN0aW9uVXBkYXRlVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0TWFya3NCeUlkQXN5bmMoc2VsZWN0aW9uczogQXJyYXk8Q29udHJhY3QuTWFya0luZm8+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25VcGRhdGVUeXBlOiBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5zZWxlY3RNYXJrc0J5SWRBc3luYyhzZWxlY3Rpb25zLCBzZWxlY3Rpb25VcGRhdGVUeXBlKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Xb3Jrc2hlZXQudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBTaGVldFBhdGggfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgU2hlZXRJbmZvSW1wbCB9IGZyb20gJy4vU2hlZXRJbmZvSW1wbCc7XHJcblxyXG5pbXBvcnQgeyBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL1BhcmFtZXRlcnNTZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5LCBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNoZWV0SW1wbCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NoZWV0SW5mb0ltcGw6IFNoZWV0SW5mb0ltcGwpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW5mb0ltcGwubmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hlZXRUeXBlKCk6IENvbnRyYWN0LlNoZWV0VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hlZXRJbmZvSW1wbC5zaGVldFR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNoZWV0UGF0aCgpOiBTaGVldFBhdGgge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW5mb0ltcGwuc2hlZXRQYXRoO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaXplKCk6IENvbnRyYWN0LlNpemUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW5mb0ltcGwuc2hlZXRTaXplO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbmRQYXJhbWV0ZXJBc3luYyhwYXJhbWV0ZXJOYW1lOiBzdHJpbmcsIHNoZWV0OiBDb250cmFjdC5TaGVldCk6IFByb21pc2U8Q29udHJhY3QuUGFyYW1ldGVyIHwgdW5kZWZpbmVkPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8UGFyYW1ldGVyc1NlcnZpY2U+KFNlcnZpY2VOYW1lcy5QYXJhbWV0ZXJzKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmZpbmRQYXJhbWV0ZXJCeU5hbWVBc3luYyhwYXJhbWV0ZXJOYW1lLCBzaGVldCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGFyYW1ldGVyc0FzeW5jKHNoZWV0OiBDb250cmFjdC5TaGVldCk6IFByb21pc2U8QXJyYXk8Q29udHJhY3QuUGFyYW1ldGVyPj4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPFBhcmFtZXRlcnNTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuUGFyYW1ldGVycyk7XHJcbiAgICByZXR1cm4gc2VydmljZS5nZXRQYXJhbWV0ZXJzRm9yU2hlZXRBc3luYyh0aGlzLnNoZWV0UGF0aCwgc2hlZXQpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ltcGwvU2hlZXRJbXBsLnRzXG4gKiovIiwiaW1wb3J0IHsgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcbi8qKlxyXG4gKiBCYXNlIGludGVyZmFjZSBmb3IgYW4gYXBpIHNlcnZpY2VcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBpU2VydmljZSB7XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgbmFtZSBmb3IgdGhpcyBzZXJ2aWNlLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0aW9uIG9mIHNlcnZpY2UgbmFtZSB3aGljaCB3aWxsIGJlIHJlZ2lzdGVyZWQgaW4gdGhlIGFwaS1zaGFyZWQgcHJvamVjdFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGVudW0gU2VydmljZU5hbWVzIHtcclxuICBEYXRhU291cmNlU2VydmljZSA9ICdkYXRhLXNvdXJjZS1zZXJ2aWNlJyxcclxuICBHZXREYXRhID0gJ2dldC1kYXRhLXNlcnZpY2UnLFxyXG4gIEZpbHRlciA9ICdmaWx0ZXItc2VydmljZScsXHJcbiAgTm90aWZpY2F0aW9uID0gJ25vdGlmaWNhdGlvbi1zZXJ2aWNlJyxcclxuICBQYXJhbWV0ZXJzID0gJ3BhcmFtZXRlcnMtc2VydmljZScsXHJcbiAgU2VsZWN0aW9uID0gJ3NlbGVjdGlvbi1zZXJ2aWNlJ1xyXG59XHJcblxyXG4vKipcclxuICogRG8gc29tZSBnbG9iYWJsIGRlY2xhcmF0aW9ucyBzbyB3ZSBjYW4gY3JlYXRlIGEgc2luZ2xldG9uIG9uIHRoZSB3aW5kb3cgb2JqZWN0XHJcbiAqL1xyXG5kZWNsYXJlIGdsb2JhbCB7XHJcbiAgaW50ZXJmYWNlIFdpbmRvdyB7IF9fdGFibGVhdUFwaVNlcnZpY2VSZWdpc3RyeTogU2VydmljZVJlZ2lzdHJ5IHwgdW5kZWZpbmVkOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZVJlZ2lzdHJ5IHtcclxuICAvKipcclxuICAgKiBSZWdpc3RlcnMgYSBuZXcgc2VydmljZSBpbnRvIHRoZSBzZXJ2aWNlIHJlZ2lzdHJ5LiBBbnkgZXhpc3Rpbmcgb25lIHdpbGxcclxuICAgKiBiZSBvdmVyd3JpdHRlbi4gdGhlIHNlcnZpY2UgaXMgcmVnaXN0ZXJlZCB1bmRlciBzZXJ2aWNlLnNlcnZpY2VOYW1lXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0FwaVNlcnZpY2V9IHNlcnZpY2UgVGhlIHNlcnZpdmUgdG8gcmVnaXN0ZXJcclxuICAgKi9cclxuICByZWdpc3RlclNlcnZpY2Uoc2VydmljZTogQXBpU2VydmljZSk6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgZ2l2ZW4gc2VydmljZSBmcm9tIHRoZSByZWdpc3RyeS4gSWYgdGhlcmUgaXMgbm90IGFcclxuICAgKiBzZXJ2aWNlIHJlZ2lzdGVyZWQgdW5kZXIgdGhhdCBuYW1lLCB0aHJvd3MgYW5kIGVycm9yXHJcbiAgICpcclxuICAgKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiB0aGUgc2VydmljZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZXJ2aWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgc2VydmljZS5cclxuICAgKiBAcmV0dXJucyB7VH0gVGhlIHJlcXVlc3RlZCBzZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0U2VydmljZTxUIGV4dGVuZHMgQXBpU2VydmljZT4oc2VydmljZU5hbWU6IHN0cmluZyk6IFQ7XHJcbn1cclxuXHJcbmNsYXNzIFNlcnZpY2VSZWdpc3RyeUltcGwgaW1wbGVtZW50cyBTZXJ2aWNlUmVnaXN0cnkge1xyXG4gIHByaXZhdGUgc3RhdGljIFNFUlZJQ0VfTk9UX1JFR0lTVEVSRUQ6IHN0cmluZyA9ICdObyBTZXJ2aWNlICUxIGlzIHJlZ2lzdGVyZWQnO1xyXG4gIHByaXZhdGUgX3NlcnZpY2VzOiB7IFtzZXJ2aWNlTmFtZTogc3RyaW5nXTogQXBpU2VydmljZTsgfTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fc2VydmljZXMgPSB7fTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3RlclNlcnZpY2Uoc2VydmljZTogQXBpU2VydmljZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2VydmljZXNbc2VydmljZS5zZXJ2aWNlTmFtZV0gPSBzZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlcnZpY2U8VCBleHRlbmRzIEFwaVNlcnZpY2U+KHNlcnZpY2VOYW1lOiBzdHJpbmcpOiBUIHtcclxuICAgIGlmICghdGhpcy5fc2VydmljZXMuaGFzT3duUHJvcGVydHkoc2VydmljZU5hbWUpKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoU2VydmljZVJlZ2lzdHJ5SW1wbC5TRVJWSUNFX05PVF9SRUdJU1RFUkVELCBbc2VydmljZU5hbWVdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fc2VydmljZXNbc2VydmljZU5hbWVdIGFzIFQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogc3RhdGljIGNsYXNzIHVzZWQgZm9yIGdldHRpbmcgYWNjZXNzIHRvIHRoZSBzaW5nbGUgaW5zdGFuY2VcclxuICogb2YgdGhlIEFwaVNlcnZpY2VSZWdpc3RyeVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFwaVNlcnZpY2VSZWdpc3RyeSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgU0VSVklDRV9SRUdJU1RSWV9GQUlMRUQ6IHN0cmluZyA9ICdBc3NpZ25pbmcgc2VydmljZSByZWdpc3RyeSBmYWlsZWQnO1xyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGUgU2VydmljZVJlZ2lzdHJ5XHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogU2VydmljZVJlZ2lzdHJ5IHtcclxuICAgIGlmICghd2luZG93Ll9fdGFibGVhdUFwaVNlcnZpY2VSZWdpc3RyeSkge1xyXG4gICAgICBBcGlTZXJ2aWNlUmVnaXN0cnkuc2V0SW5zdGFuY2UobmV3IFNlcnZpY2VSZWdpc3RyeUltcGwoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF3aW5kb3cuX190YWJsZWF1QXBpU2VydmljZVJlZ2lzdHJ5KSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoQXBpU2VydmljZVJlZ2lzdHJ5LlNFUlZJQ0VfUkVHSVNUUllfRkFJTEVEKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gd2luZG93Ll9fdGFibGVhdUFwaVNlcnZpY2VSZWdpc3RyeTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlbHBlciBtZXRob2QgdG8gb3ZlcnJpZGUgdGhlIHJlZ2lzdHJ5IGluc3RhbmNlLiBDYW4gYmUgdXNlZCBieSB1bml0IHRlc3RzXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1NlcnZpY2VSZWdpc3RyeX0gc2VydmljZVJlZ2lzdHJ5IFRoZSBuZXcgcmVnaXN0cnlcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHNldEluc3RhbmNlKHNlcnZpY2VSZWdpc3RyeT86IFNlcnZpY2VSZWdpc3RyeSk6IHZvaWQge1xyXG4gICAgd2luZG93Ll9fdGFibGVhdUFwaVNlcnZpY2VSZWdpc3RyeSA9IHNlcnZpY2VSZWdpc3RyeTtcclxuICB9XHJcblxyXG4gIC8vIFByaXZhdGUgdG8gYXZvaWQgYW55b25lIGNvbnN0cnVjdGluZyB0aGlzXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnkudHNcbiAqKi8iLCJpbXBvcnQgeyBTaGVldFR5cGUsIFNpemUgfSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBTaGVldFBhdGggfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNoZWV0SW5mb0ltcGwge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX25hbWU6IHN0cmluZyxcclxuICAgIHByaXZhdGUgX3NoZWV0VHlwZTogU2hlZXRUeXBlLFxyXG4gICAgcHJpdmF0ZSBfc2hlZXRTaXplOiBTaXplXHJcbiAgKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hlZXRTaXplKCk6IFNpemUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0U2l6ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hlZXRUeXBlKCk6IFNoZWV0VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hlZXRUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaGVldFBhdGgoKTogU2hlZXRQYXRoIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNoZWV0TmFtZTogdGhpcy5uYW1lLFxyXG4gICAgICBpc0Rhc2hib2FyZDogdGhpcy5zaGVldFR5cGUgPT09IFNoZWV0VHlwZS5EYXNoYm9hcmRcclxuICAgICAgLy8gVE9ETyAtIFN0b3JpZXNcclxuICAgIH07XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvSW1wbC9TaGVldEluZm9JbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBEYXRhU2NoZW1hLFxyXG4gIERhdGFTb3VyY2UgYXMgRGF0YVNvdXJjZUluZm8sXHJcbiAgRmlsdGVyRXZlbnQsIE5vdGlmaWNhdGlvbklkLFxyXG4gIFZpc3VhbElkLFxyXG4gIFdvcmtzaGVldERhdGFTb3VyY2VJbmZvXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuLi9EYXRhU291cmNlJztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnLi4vV29ya3NoZWV0JztcclxuXHJcbmltcG9ydCB7IERhdGFTb3VyY2VJbXBsIH0gZnJvbSAnLi9EYXRhU291cmNlSW1wbCc7XHJcbmltcG9ydCB7IFNoZWV0SW1wbCB9IGZyb20gJy4vU2hlZXRJbXBsJztcclxuaW1wb3J0IHsgU2hlZXRJbmZvSW1wbCB9IGZyb20gJy4vU2hlZXRJbmZvSW1wbCc7XHJcbmltcG9ydCB7IFNpbmdsZUV2ZW50TWFuYWdlckltcGwgfSBmcm9tICcuL1NpbmdsZUV2ZW50TWFuYWdlckltcGwnO1xyXG5cclxuaW1wb3J0IHsgRmlsdGVyQ2hhbmdlZEV2ZW50IH0gZnJvbSAnLi4vRXZlbnRzL0ZpbHRlckNoYW5nZWRFdmVudCc7XHJcbmltcG9ydCB7IE1hcmtzU2VsZWN0ZWRFdmVudCB9IGZyb20gJy4uL0V2ZW50cy9NYXJrc1NlbGVjdGVkRXZlbnQnO1xyXG5pbXBvcnQgeyBTaW5nbGVFdmVudE1hbmFnZXIgfSBmcm9tICcuLi9TaW5nbGVFdmVudE1hbmFnZXInO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9EYXRhU291cmNlU2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlclNlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9GaWx0ZXJTZXJ2aWNlJztcclxuaW1wb3J0IHsgR2V0RGF0YVNlcnZpY2UsIEdldERhdGFUeXBlIH0gZnJvbSAnLi4vU2VydmljZXMvR2V0RGF0YVNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vU2VydmljZXMvTm90aWZpY2F0aW9uU2VydmljZSc7XHJcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9TZWxlY3Rpb25TZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5LCBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuY29uc3QgdmlzdWFsSWRzQXJlRXF1YWwgPSBmdW5jdGlvbihhOiBWaXN1YWxJZCwgYjogVmlzdWFsSWQpOiBib29sZWFuIHtcclxuICByZXR1cm4gYSAmJiBiICYmXHJcbiAgICBhLndvcmtzaGVldCA9PT0gYi53b3Jrc2hlZXQgJiZcclxuICAgIGEuZGFzaGJvYXJkID09PSBiLmRhc2hib2FyZCAmJlxyXG4gICAgYS5zdG9yeWJvYXJkID09PSBiLnN0b3J5Ym9hcmQgJiZcclxuICAgIGEuc3RvcnlQb2ludElEID09PSBiLnN0b3J5UG9pbnRJRCAmJlxyXG4gICAgYS5mbGlwYm9hcmRab25lSUQgPT09IGIuZmxpcGJvYXJkWm9uZUlEO1xyXG59O1xyXG5cclxuZXhwb3J0IGNsYXNzIFdvcmtzaGVldEltcGwgZXh0ZW5kcyBTaGVldEltcGwge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzaGVldEluZm9JbXBsOiBTaGVldEluZm9JbXBsLFxyXG4gICAgICAgICAgICAgICAgICAgICBwcml2YXRlIF92aXN1YWxJZDogVmlzdWFsSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgX3BhcmVudERhc2hib2FyZDogQ29udHJhY3QuRGFzaGJvYXJkKSB7XHJcbiAgICBzdXBlcihzaGVldEluZm9JbXBsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcGFyZW50RGFzaGJvYXJkKCk6IENvbnRyYWN0LkRhc2hib2FyZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RGFzaGJvYXJkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGVscGVyIG1ldGhvZCB3aGljaCBnb2VzIHRocm91Z2ggYW5kIHJlZ2lzdGVycyBlYWNoIGV2ZW50IHR5cGUgdGhpcyBpbXBsIGtub3dzIGFib3V0XHJcbiAgICogd2l0aCB0aGUgTm90aWZpY2F0aW9uU2VydmljZS4gSXQgcmV0dXJucyBhbiBhcnJheSBvZiBTaW5nbGVFdmVudE1hbmFnZXIgb2JqZWN0cyB3aGljaFxyXG4gICAqIGNhbiB0aGVuIGJlIHBhc3NlZCB0byBhbiBFdmVudExpc3RlbmVyTWFuYWdlciB0byBoYW5kbGUgdXNlciByZWdpc3RyYXRpb24gLyB1bnJlZ2lzdHJhdGlvbi5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7V29ya3NoZWV0fSB3b3Jrc2hlZXQgVGhlIHdvcmtzaGVldCBvYmplY3Qgd2hpY2ggd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoZSBldmVudCBub3RpZmljYXRpb25zXHJcbiAgICogQHJldHVybnMge0FycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj59IENvbGxlY3Rpb24gb2YgZXZlbnQgbWFuYWdlcnMgdG8gcGFzcyB0byBhbiBFdmVudExpc3RlbmVyTWFuYWdlclxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbml0aWFsaXplRXZlbnRzKHdvcmtzaGVldDogV29ya3NoZWV0KTogQXJyYXk8U2luZ2xlRXZlbnRNYW5hZ2VyPiB7XHJcbiAgICBjb25zdCByZXN1bHRzID0gbmV3IEFycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj4oKTtcclxuICAgIGxldCBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIG5vdGlmaWNhdGlvblNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxOb3RpZmljYXRpb25TZXJ2aWNlPihTZXJ2aWNlTmFtZXMuTm90aWZpY2F0aW9uKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIHNlcnZpY2UgcmVnaXN0ZXJlZCwganVzdCByZXR1cm5cclxuICAgICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSW5pdGlhbGl6ZSBhbGwgb2YgdGhlIGV2ZW50IG1hbmFnZXJzIHdlJ2xsIG5lZWQgKG9uZSBmb3IgZWFjaCBldmVudCB0eXBlKVxyXG4gICAgY29uc3QgbWFya3NFdmVudCA9IG5ldyBTaW5nbGVFdmVudE1hbmFnZXJJbXBsPE1hcmtzU2VsZWN0ZWRFdmVudD4oQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZS5NYXJrU2VsZWN0aW9uQ2hhbmdlZCk7XHJcbiAgICBub3RpZmljYXRpb25TZXJ2aWNlLnJlZ2lzdGVySGFuZGxlcihOb3RpZmljYXRpb25JZC5TZWxlY3RlZE1hcmtzQ2hhbmdlZCwgKG1vZGVsKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZpc3VhbElkID0gbW9kZWwgYXMgVmlzdWFsSWQ7XHJcbiAgICAgIHJldHVybiB2aXN1YWxJZHNBcmVFcXVhbCh2aXN1YWxJZCwgdGhpcy52aXN1YWxJZCk7XHJcbiAgICB9LCAodml6OiBWaXN1YWxJZCkgPT4ge1xyXG4gICAgICBtYXJrc0V2ZW50LnRyaWdnZXJFdmVudCgoKSA9PiBuZXcgTWFya3NTZWxlY3RlZEV2ZW50KHdvcmtzaGVldCkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgZmlsdGVyRXZlbnQgPSBuZXcgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbDxGaWx0ZXJDaGFuZ2VkRXZlbnQ+KENvbnRyYWN0LlRhYmxlYXVFdmVudFR5cGUuRmlsdGVyQ2hhbmdlZCk7XHJcbiAgICBub3RpZmljYXRpb25TZXJ2aWNlLnJlZ2lzdGVySGFuZGxlcihOb3RpZmljYXRpb25JZC5GaWx0ZXJDaGFuZ2VkLCAobW9kZWwpID0+IHtcclxuICAgICAgY29uc3QgZmlsdGVyRXZlbnRSZXNwb25zZSA9IG1vZGVsIGFzIEZpbHRlckV2ZW50O1xyXG4gICAgICByZXR1cm4gdGhpcy52aXN1YWxJZC53b3Jrc2hlZXQgPT09IGZpbHRlckV2ZW50UmVzcG9uc2UudmlzdWFsSWQud29ya3NoZWV0O1xyXG4gICAgfSwgKGV2ZW50OiBGaWx0ZXJFdmVudCkgPT4ge1xyXG4gICAgICBmaWx0ZXJFdmVudC50cmlnZ2VyRXZlbnQoKCkgPT4gbmV3IEZpbHRlckNoYW5nZWRFdmVudCh3b3Jrc2hlZXQsIGV2ZW50LmZpZWxkTmFtZSkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmVzdWx0cy5wdXNoKG1hcmtzRXZlbnQpO1xyXG4gICAgcmVzdWx0cy5wdXNoKGZpbHRlckV2ZW50KTtcclxuXHJcbiAgICAvLyBUT0RPIC0gb3RoZXIgZXZlbnQgdHlwZXNcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdmlzdWFsSWQoKTogVmlzdWFsSWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Zpc3VhbElkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGx5RmlsdGVyQXN5bmMoXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZywgdmFsdWVzOiBBcnJheTxzdHJpbmc+LCB1cGRhdGVUeXBlOiBDb250cmFjdC5GaWx0ZXJVcGRhdGVUeXBlLCBvcHRpb25zOiBDb250cmFjdC5GaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEZpbHRlclNlcnZpY2U+KFNlcnZpY2VOYW1lcy5GaWx0ZXIpO1xyXG4gICAgICByZXR1cm4gc2VydmljZS5hcHBseUZpbHRlckFzeW5jKHRoaXMudmlzdWFsSWQsIGZpZWxkTmFtZSwgdmFsdWVzLCB1cGRhdGVUeXBlLCBvcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgcHVibGljIGFwcGx5UmFuZ2VGaWx0ZXJBc3luYyhmaWVsZE5hbWU6IHN0cmluZywgZmlsdGVyT3B0aW9uczogQ29udHJhY3QuUmFuZ2VGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxGaWx0ZXJTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuRmlsdGVyKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmFwcGx5UmFuZ2VGaWx0ZXJBc3luYyh0aGlzLnZpc3VhbElkLCBmaWVsZE5hbWUsIGZpbHRlck9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyRmlsdGVyQXN5bmMoZmllbGROYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEZpbHRlclNlcnZpY2U+KFNlcnZpY2VOYW1lcy5GaWx0ZXIpO1xyXG4gICAgcmV0dXJuIHNlcnZpY2UuY2xlYXJGaWx0ZXJBc3luYyh0aGlzLnZpc3VhbElkLCBmaWVsZE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERhdGFTb3VyY2VzQXN5bmMoKTogUHJvbWlzZTxBcnJheTxDb250cmFjdC5EYXRhU291cmNlPj4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPERhdGFTb3VyY2VTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuRGF0YVNvdXJjZVNlcnZpY2UpO1xyXG5cclxuICAgIHJldHVybiBzZXJ2aWNlLmdldERhdGFTb3VyY2VzQXN5bmMoKS50aGVuPEFycmF5PENvbnRyYWN0LkRhdGFTb3VyY2U+PihyZXN1bHQgPT4ge1xyXG4gICAgICBjb25zdCBkYXRhU2NoZW1hOiBEYXRhU2NoZW1hID0gcmVzdWx0IGFzIERhdGFTY2hlbWE7XHJcbiAgICAgIGNvbnN0IHdvcmtzaGVldERhdGFTb3VyY2VJbmZvOiBXb3Jrc2hlZXREYXRhU291cmNlSW5mbyA9IGRhdGFTY2hlbWEud29ya3NoZWV0RGF0YVNjaGVtYU1hcFt0aGlzLm5hbWVdO1xyXG5cclxuICAgICAgbGV0IGRhdGFTb3VyY2VzOiBBcnJheTxDb250cmFjdC5EYXRhU291cmNlPiA9IFtdO1xyXG5cclxuICAgICAgLy8gRmlyc3QsIGFkZCB0aGUgcHJpbWFyeSBkYXRhc291cmNlLiAgQnkgY29udmVudGlvbiwgaXQgY29tZXMgZmlyc3QgaW4gdGhlIHJldHVybmVkIGFycmF5LlxyXG4gICAgICBsZXQgcHJpbWFyeUlkOiBzdHJpbmcgPSB3b3Jrc2hlZXREYXRhU291cmNlSW5mby5wcmltYXJ5RGF0YVNvdXJjZTtcclxuICAgICAgZGF0YVNvdXJjZXMucHVzaCh0aGlzLmNyZWF0ZURhdGFTb3VyY2VGcm9tSW5mbyhkYXRhU2NoZW1hLmRhdGFTb3VyY2VzW3ByaW1hcnlJZF0pKTtcclxuXHJcbiAgICAgIC8vIFRoZW4sIGxvb3AgdGhyb3VnaCBhbnkgc2Vjb25kYXJ5IGRhdGEgc291cmNlcyBhbmQgYWRkIHRoZW0uXHJcbiAgICAgIGZvciAobGV0IHNlY29uZGFyeUlkIG9mIHdvcmtzaGVldERhdGFTb3VyY2VJbmZvLnJlZmVyZW5jZWREYXRhU291cmNlTGlzdCkge1xyXG4gICAgICAgIGlmIChzZWNvbmRhcnlJZCAhPT0gcHJpbWFyeUlkKSB7XHJcbiAgICAgICAgICBkYXRhU291cmNlcy5wdXNoKHRoaXMuY3JlYXRlRGF0YVNvdXJjZUZyb21JbmZvKGRhdGFTY2hlbWEuZGF0YVNvdXJjZXNbc2Vjb25kYXJ5SWRdKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZGF0YVNvdXJjZXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGaWx0ZXJzQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5GaWx0ZXJbXT4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEZpbHRlclNlcnZpY2U+KFNlcnZpY2VOYW1lcy5GaWx0ZXIpO1xyXG4gICAgcmV0dXJuIHNlcnZpY2UuZ2V0RmlsdGVyc0FzeW5jKHRoaXMudmlzdWFsSWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkTWFya3NBc3luYygpOiBQcm9taXNlPENvbnRyYWN0Lk1hcmtzQ29sbGVjdGlvbj4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEdldERhdGFTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuR2V0RGF0YSk7XHJcbiAgICByZXR1cm4gc2VydmljZS5nZXRTZWxlY3RlZE1hcmtzQXN5bmModGhpcy52aXN1YWxJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8R2V0RGF0YVNlcnZpY2U+KFNlcnZpY2VOYW1lcy5HZXREYXRhKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmdldEhpZ2hsaWdodGVkTWFya3NBc3luYyh0aGlzLnZpc3VhbElkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdW1tYXJ5RGF0YUFzeW5jKG9wdGlvbnM6IENvbnRyYWN0LkdldFN1bW1hcnlEYXRhT3B0aW9ucyk6IFByb21pc2U8Q29udHJhY3QuRGF0YVRhYmxlPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8R2V0RGF0YVNlcnZpY2U+KFNlcnZpY2VOYW1lcy5HZXREYXRhKTtcclxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xyXG5cclxuICAgIHJldHVybiBzZXJ2aWNlLmdldFVuZGVybHlpbmdEYXRhQXN5bmMoXHJcbiAgICAgIHRoaXMudmlzdWFsSWQsIEdldERhdGFUeXBlLlN1bW1hcnksICEhb3B0aW9ucy5pZ25vcmVBbGlhc2VzLCAhIW9wdGlvbnMuaWdub3JlU2VsZWN0aW9uLCB0cnVlLCAwKTtcclxuICAgIH1cclxuXHJcbiAgcHVibGljIGdldFVuZGVybHlpbmdEYXRhQXN5bmMob3B0aW9uczogQ29udHJhY3QuR2V0VW5kZXJseWluZ0RhdGFPcHRpb25zKTogUHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxHZXREYXRhU2VydmljZT4oU2VydmljZU5hbWVzLkdldERhdGEpO1xyXG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XHJcbiAgICByZXR1cm4gc2VydmljZS5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jKFxyXG4gICAgICB0aGlzLnZpc3VhbElkLFxyXG4gICAgICBHZXREYXRhVHlwZS5VbmRlcmx5aW5nLFxyXG4gICAgICAhIW9wdGlvbnMuaWdub3JlQWxpYXNlcyxcclxuICAgICAgISFvcHRpb25zLmlnbm9yZVNlbGVjdGlvbixcclxuICAgICAgISFvcHRpb25zLmluY2x1ZGVBbGxDb2x1bW5zLFxyXG4gICAgICBvcHRpb25zLm1heFJvd3MgfHwgMCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJTZWxlY3RlZE1hcmtzQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8U2VsZWN0aW9uU2VydmljZT4oU2VydmljZU5hbWVzLlNlbGVjdGlvbik7XHJcbiAgICByZXR1cm4gc2VydmljZS5jbGVhclNlbGVjdGVkTWFya3NBc3luYyh0aGlzLnZpc3VhbElkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RNYXJrc0J5VmFsdWVBc3luYyhzZWxlY3Rpb25zOiBBcnJheTxDb250cmFjdC5TZWxlY3Rpb25Dcml0ZXJpYT4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblVwZGF0ZVR5cGU6IENvbnRyYWN0LlNlbGVjdGlvblVwZGF0ZVR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxTZWxlY3Rpb25TZXJ2aWNlPihTZXJ2aWNlTmFtZXMuU2VsZWN0aW9uKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLnNlbGVjdE1hcmtzQnlWYWx1ZUFzeW5jKHRoaXMudmlzdWFsSWQsIHNlbGVjdGlvbnMsIHNlbGVjdGlvblVwZGF0ZVR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE1hcmtzQnlJZEFzeW5jKHNlbGVjdGlvbnM6IEFycmF5PENvbnRyYWN0Lk1hcmtJbmZvPixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVXBkYXRlVHlwZTogQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPFNlbGVjdGlvblNlcnZpY2U+KFNlcnZpY2VOYW1lcy5TZWxlY3Rpb24pO1xyXG4gICAgcmV0dXJuIHNlcnZpY2Uuc2VsZWN0TWFya3NCeUlkQXN5bmModGhpcy52aXN1YWxJZCwgc2VsZWN0aW9ucywgc2VsZWN0aW9uVXBkYXRlVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZURhdGFTb3VyY2VGcm9tSW5mbyhkYXRhU291cmNlSW5mbzogRGF0YVNvdXJjZUluZm8pOiBDb250cmFjdC5EYXRhU291cmNlIHtcclxuICAgIGNvbnN0IGRhdGFTb3VyY2VJbXBsID0gbmV3IERhdGFTb3VyY2VJbXBsKGRhdGFTb3VyY2VJbmZvKTtcclxuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSBuZXcgRGF0YVNvdXJjZShkYXRhU291cmNlSW1wbCk7XHJcbiAgICBkYXRhU291cmNlSW1wbC5pbml0aWFsaXplV2l0aFB1YmxpY0ludGVyZmFjZXMoZGF0YVNvdXJjZSk7XHJcbiAgICByZXR1cm4gZGF0YVNvdXJjZTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9JbXBsL1dvcmtzaGVldEltcGwudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZUltcGwgfSBmcm9tICcuL0ltcGwvRGF0YVNvdXJjZUltcGwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2UgaW1wbGVtZW50cyBDb250cmFjdC5EYXRhU291cmNlIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZGF0YVNvdXJjZUltcGw6IERhdGFTb3VyY2VJbXBsKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwubmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5pZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZmllbGRzKCk6IENvbnRyYWN0LkZpZWxkW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbXBsLmZpZWxkcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZXh0cmFjdFVwZGF0ZVRpbWUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5leHRyYWN0VXBkYXRlVGltZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNFeHRyYWN0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbXBsLmlzRXh0cmFjdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWZyZXNoQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwucmVmcmVzaEFzeW5jKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QWN0aXZlVGFibGVzQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5UYWJsZVN1bW1hcnlbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbXBsLmdldEFjdGl2ZVRhYmxlc0FzeW5jKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q29ubmVjdGlvblN1bW1hcmllc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuQ29ubmVjdGlvblN1bW1hcnlbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbXBsLmdldENvbm5lY3Rpb25TdW1tYXJpZXNBc3luYygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFVuZGVybHlpbmdEYXRhQXN5bmMob3B0aW9ucz86IENvbnRyYWN0LkRhdGFTb3VyY2VVbmRlcmx5aW5nRGF0YU9wdGlvbnMpOlxyXG4gICAgUHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jKG9wdGlvbnMpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0RhdGFTb3VyY2UudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgKiBhcyBJbnRlcm5hbENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBGaWVsZEltcGwgfSBmcm9tICcuL0ZpZWxkSW1wbCc7XHJcblxyXG5pbXBvcnQgeyBDb25uZWN0aW9uU3VtbWFyeSB9IGZyb20gJy4uL0Nvbm5lY3Rpb25TdW1tYXJ5JztcclxuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi9GaWVsZCc7XHJcbmltcG9ydCB7IFRhYmxlU3VtbWFyeSB9IGZyb20gJy4uL1RhYmxlU3VtbWFyeSc7XHJcblxyXG5pbXBvcnQgeyBEYXRhU291cmNlU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL0RhdGFTb3VyY2VTZXJ2aWNlJztcclxuaW1wb3J0IHsgR2V0RGF0YVNlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9HZXREYXRhU2VydmljZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSwgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvU2VydmljZVJlZ2lzdHJ5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlSW1wbCB7XHJcbiAgcHJpdmF0ZSBfZmllbGRzOiBGaWVsZFtdO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZGF0YVNvdXJjZUluZm86IEludGVybmFsQ29udHJhY3QuRGF0YVNvdXJjZSkge1xyXG4gICAgdGhpcy5fZmllbGRzID0gX2RhdGFTb3VyY2VJbmZvLmZpZWxkcy5tYXAoZmllbGRNb2RlbCA9PiB7XHJcbiAgICAgIGNvbnN0IGZpZWxkSW1wbCA9IG5ldyBGaWVsZEltcGwoZmllbGRNb2RlbCwgdGhpcyk7XHJcbiAgICAgIHJldHVybiBuZXcgRmllbGQoZmllbGRJbXBsKTtcclxuICAgIH0pO1xyXG4gICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbmZvLm5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUluZm8uaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGV4dHJhY3RVcGRhdGVUaW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUluZm8uZXh0cmFjdFVwZGF0ZVRpbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpZWxkcygpOiBDb250cmFjdC5GaWVsZFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzRXh0cmFjdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW5mby5pc0V4dHJhY3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaEFzeW5jKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgZGF0YVNvdXJjZVNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxEYXRhU291cmNlU2VydmljZT4oXHJcbiAgICAgIFNlcnZpY2VOYW1lcy5EYXRhU291cmNlU2VydmljZSk7XHJcblxyXG4gICAgcmV0dXJuIGRhdGFTb3VyY2VTZXJ2aWNlLnJlZnJlc2hBc3luYyh0aGlzLl9kYXRhU291cmNlSW5mby5pZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q29ubmVjdGlvblN1bW1hcmllc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuQ29ubmVjdGlvblN1bW1hcnlbXT4ge1xyXG4gICAgY29uc3QgZGF0YVNvdXJjZVNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxEYXRhU291cmNlU2VydmljZT4oXHJcbiAgICAgIFNlcnZpY2VOYW1lcy5EYXRhU291cmNlU2VydmljZSk7XHJcblxyXG4gICAgcmV0dXJuIGRhdGFTb3VyY2VTZXJ2aWNlLmdldENvbm5lY3Rpb25TdW1tYXJpZXNBc3luYyh0aGlzLl9kYXRhU291cmNlSW5mby5pZCkudGhlbjxDb250cmFjdC5Db25uZWN0aW9uU3VtbWFyeVtdPihzdW1tYXJpZXMgPT4ge1xyXG4gICAgICByZXR1cm4gc3VtbWFyaWVzLm1hcChzdW1tYXJ5ID0+IG5ldyBDb25uZWN0aW9uU3VtbWFyeShzdW1tYXJ5KSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBY3RpdmVUYWJsZXNBc3luYygpOiBQcm9taXNlPENvbnRyYWN0LlRhYmxlU3VtbWFyeVtdPiB7XHJcbiAgICBjb25zdCBkYXRhU291cmNlU2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPERhdGFTb3VyY2VTZXJ2aWNlPihcclxuICAgICAgU2VydmljZU5hbWVzLkRhdGFTb3VyY2VTZXJ2aWNlKTtcclxuXHJcbiAgICByZXR1cm4gZGF0YVNvdXJjZVNlcnZpY2UuZ2V0QWN0aXZlVGFibGVzQXN5bmModGhpcy5fZGF0YVNvdXJjZUluZm8uaWQpLnRoZW48Q29udHJhY3QuVGFibGVTdW1tYXJ5W10+KHRhYmxlSW5mb3MgPT4ge1xyXG4gICAgICByZXR1cm4gdGFibGVJbmZvcy5tYXAodGFibGVJbmZvID0+IG5ldyBUYWJsZVN1bW1hcnkodGFibGVJbmZvKSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVbmRlcmx5aW5nRGF0YUFzeW5jKG9wdGlvbnM/OiBDb250cmFjdC5EYXRhU291cmNlVW5kZXJseWluZ0RhdGFPcHRpb25zKTpcclxuICAgIFByb21pc2U8Q29udHJhY3QuRGF0YVRhYmxlPiB7XHJcbiAgICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xyXG4gICAgICAgICAgaWdub3JlQWxpYXNlczogZmFsc2UsXHJcbiAgICAgICAgICBtYXhSb3dzOiAxMDAwMCxcclxuICAgICAgICAgIGNvbHVtbnNUb0luY2x1ZGU6IFtdLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XHJcblxyXG4gICAgICBjb25zdCBnZXREYXRhU2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEdldERhdGFTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuR2V0RGF0YSk7XHJcbiAgICAgIHJldHVybiBnZXREYXRhU2VydmljZS5nZXREYXRhU291cmNlRGF0YUFzeW5jKFxyXG4gICAgICAgIHRoaXMuaWQsXHJcbiAgICAgICAgISFvcHRpb25zLmlnbm9yZUFsaWFzZXMsXHJcbiAgICAgICAgb3B0aW9ucy5tYXhSb3dzIHx8IGRlZmF1bHRPcHRpb25zLm1heFJvd3MsXHJcbiAgICAgICAgb3B0aW9ucy5jb2x1bW5zVG9JbmNsdWRlIHx8IGRlZmF1bHRPcHRpb25zLmNvbHVtbnNUb0luY2x1ZGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRpYWxpemVXaXRoUHVibGljSW50ZXJmYWNlcyhkYXRhU291cmNlOiBDb250cmFjdC5EYXRhU291cmNlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9maWVsZHMgPSB0aGlzLl9kYXRhU291cmNlSW5mby5maWVsZHMubWFwKGZpZWxkTW9kZWwgPT4ge1xyXG4gICAgICBjb25zdCBmaWVsZEltcGwgPSBuZXcgRmllbGRJbXBsKGZpZWxkTW9kZWwsIGRhdGFTb3VyY2UpO1xyXG4gICAgICByZXR1cm4gbmV3IEZpZWxkKGZpZWxkSW1wbCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9JbXBsL0RhdGFTb3VyY2VJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0ICogYXMgSW50ZXJuYWxDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzIH0gZnJvbSAnLi4vRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmllbGRJbXBsIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZmllbGRJbmZvOiBJbnRlcm5hbENvbnRyYWN0LkZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgICBwcml2YXRlIF9wYXJlbnREYXRhU291cmNlOiBDb250cmFjdC5EYXRhU291cmNlKSB7ICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5pZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uZGVzY3JpcHRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFnZ3JlZ2F0aW9uKCk6IENvbnRyYWN0LkZpZWxkQWdncmVnYXRpb25UeXBlIHtcclxuICAgIHJldHVybiBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuZmllbGRBZ2dyZWdhdGlvblR5cGUuY29udmVydCh0aGlzLl9maWVsZEluZm8uYWdncmVnYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkYXRhU291cmNlKCk6IENvbnRyYWN0LkRhdGFTb3VyY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudERhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJvbGUoKTogQ29udHJhY3QuRmllbGRSb2xlVHlwZSB7XHJcbiAgICByZXR1cm4gSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmZpZWxkUm9sZVR5cGUuY29udmVydCh0aGlzLl9maWVsZEluZm8ucm9sZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzSGlkZGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5pc0hpZGRlbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNHZW5lcmF0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJbmZvLmlzR2VuZXJhdGVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc0NhbGN1bGF0ZWRGaWVsZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uaXNDYWxjdWxhdGVkRmllbGQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzQ29tYmluZWRGaWVsZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uaXNDb21iaW5lZEZpZWxkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENhbGN1bGF0ZWRGaWVsZEFzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuQ2FsY3VsYXRlZEZpZWxkIHwgdW5kZWZpbmVkPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpZWxkIGdldENhbGN1bGF0ZWRGaWVsZEFzeW5jIG1ldGhvZCBub3QgeWV0IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ltcGwvRmllbGRJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgQ29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeSB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG4vKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgYSBjb25uZWN0aW9uIHN1bW1hcnkuXHJcbiAqIFRoaXMgZG9lcyBub3QgZm9sbG93IHRoZSBJbXBsIHBhdHRlcm4gYXMgaXQgaXMganVzdCBhIHByb3BlcnR5IGJhZy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uU3VtbWFyeSBpbXBsZW1lbnRzIENvbnRyYWN0LkNvbm5lY3Rpb25TdW1tYXJ5IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfY29ubmVjdGlvbkluZm86IENvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcnkpIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9uSW5mby5uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25JbmZvLmlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2ZXJVUkkoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9uSW5mby5zZXJ2ZXJVUkk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9uSW5mby50eXBlO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0Nvbm5lY3Rpb25TdW1tYXJ5LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcbmltcG9ydCB7IEZpZWxkSW1wbCB9IGZyb20gJy4vSW1wbC9GaWVsZEltcGwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpZWxkIGltcGxlbWVudHMgQ29udHJhY3QuRmllbGQge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9maWVsZEltcGw6IEZpZWxkSW1wbCkgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5pZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuZGVzY3JpcHRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFnZ3JlZ2F0aW9uKCk6IENvbnRyYWN0LkZpZWxkQWdncmVnYXRpb25UeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuYWdncmVnYXRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGFTb3VyY2UoKTogQ29udHJhY3QuRGF0YVNvdXJjZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJbXBsLmRhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJvbGUoKTogQ29udHJhY3QuRmllbGRSb2xlVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJbXBsLnJvbGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzSGlkZGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5pc0hpZGRlbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNHZW5lcmF0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJbXBsLmlzR2VuZXJhdGVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc0NhbGN1bGF0ZWRGaWVsZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuaXNDYWxjdWxhdGVkRmllbGQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbHVtblR5cGUoKTogQ29udHJhY3QuQ29sdW1uVHlwZSB7XHJcbiAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmFwaU5vdEltcGxlbWVudGVkKFsnRmllbGQuY29sdW1uVHlwZSddKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNDb21iaW5lZEZpZWxkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5pc0NvbWJpbmVkRmllbGQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q2FsY3VsYXRlZEZpZWxkQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5DYWxjdWxhdGVkRmllbGQgfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuZ2V0Q2FsY3VsYXRlZEZpZWxkQXN5bmMoKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9GaWVsZC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlSW5mbyB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG4vKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgYSB0YWJsZSBzdW1tYXJ5LlxyXG4gKiBUaGlzIGRvZXMgbm90IGZvbGxvdyB0aGUgSW1wbCBwYXR0ZXJuIGFzIGl0IGlzIGp1c3QgYSBwcm9wZXJ0eSBiYWcuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVGFibGVTdW1tYXJ5IGltcGxlbWVudHMgQ29udHJhY3QuVGFibGVTdW1tYXJ5IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfdGFibGVJbmZvOiBUYWJsZUluZm8pIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90YWJsZUluZm8ubmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90YWJsZUluZm8uaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbm5lY3Rpb25JZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlSW5mby5jb25uZWN0aW9uSWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGN1c3RvbVNRTCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlSW5mby5jdXN0b21TUUw7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvVGFibGVTdW1tYXJ5LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFNpbmdsZUV2ZW50TWFuYWdlciB9IGZyb20gJy4uL1NpbmdsZUV2ZW50TWFuYWdlcic7XHJcblxyXG4vKipcclxuICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHRoZSBTaW5nbGVFdmVudE1hbmFnZXIgaW50ZXJmYWNlIGZvciBhIHNpbmdsZSB0eXBlIG9mIFRhYmxlYXUgZXZlbnRcclxuICpcclxuICogQHRlbXBsYXRlIFRFdmVudFR5cGUgVGhlIFRhYmxlYXUgZXZlbnQgdHlwZSB0aGlzIGNsYXNzIHNwZWNpYWxpemVzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbDxURXZlbnRUeXBlIGV4dGVuZHMgQ29udHJhY3QuVGFibGVhdUV2ZW50PiBpbXBsZW1lbnRzIFNpbmdsZUV2ZW50TWFuYWdlciB7XHJcbiAgcHJpdmF0ZSBfZXZlbnRUeXBlOiBDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlO1xyXG4gIHByaXZhdGUgX2hhbmRsZXJzOiBBcnJheTwoZXZlbnRPYmo6IFRFdmVudFR5cGUpID0+IHZvaWQ+O1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZXZlbnRUeXBlOiBDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlKSB7XHJcbiAgICB0aGlzLl9ldmVudFR5cGUgPSBldmVudFR5cGU7XHJcbiAgICB0aGlzLl9oYW5kbGVycyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBldmVudFR5cGUoKTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEV2ZW50TGlzdGVuZXIoaGFuZGxlcjogKGV2ZW50T2JqOiBURXZlbnRUeXBlKSA9PiB2b2lkKTogQ29udHJhY3QuVGFibGVhdUV2ZW50VW5yZWdpc3RlckZuIHtcclxuICAgIHRoaXMuX2hhbmRsZXJzLnB1c2goaGFuZGxlcik7XHJcbiAgICByZXR1cm4gKCkgPT4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZUV2ZW50TGlzdGVuZXIoaGFuZGxlcjogKGV2ZW50T2JqOiBURXZlbnRUeXBlKSA9PiB2b2lkKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBiZWZvcmVDb3VudCA9IHRoaXMuX2hhbmRsZXJzLmxlbmd0aDtcclxuICAgIHRoaXMuX2hhbmRsZXJzID0gdGhpcy5faGFuZGxlcnMuZmlsdGVyKGggPT4gaCAhPT0gaGFuZGxlcik7XHJcbiAgICByZXR1cm4gYmVmb3JlQ291bnQgPiB0aGlzLl9oYW5kbGVycy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJpZ2dlckV2ZW50KGV2ZW50R2VuZXJhdG9yOiAoKSA9PiBURXZlbnRUeXBlKTogdm9pZCB7XHJcbiAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgdGhpcy5faGFuZGxlcnMpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBldmVudE1vZGVsID0gZXZlbnRHZW5lcmF0b3IoKTtcclxuICAgICAgICBoYW5kbGVyKGV2ZW50TW9kZWwpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgLy8gU2luY2UgdGhpcyBoYW5kbGVyIGNvdWxkIGJlIG91dHNpZGUgb3VyIGNvbnRyb2wsIGp1c3QgY2F0Y2ggYW55dGhpbmcgaXQgdGhyb3dzIGFuZCBjb250aW51ZSBvblxyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvSW1wbC9TaW5nbGVFdmVudE1hbmFnZXJJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZWF1V29ya3NoZWV0RXZlbnQgfSBmcm9tICcuL1RhYmxlYXVXb3Jrc2hlZXRFdmVudCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyQ2hhbmdlZEV2ZW50IGV4dGVuZHMgVGFibGVhdVdvcmtzaGVldEV2ZW50IGltcGxlbWVudHMgQ29udHJhY3QuRmlsdGVyQ2hhbmdlZEV2ZW50IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3Iod29ya3NoZWV0OiBDb250cmFjdC5Xb3Jrc2hlZXQsIHByaXZhdGUgX2ZpZWxkTmFtZTogc3RyaW5nKSB7XHJcbiAgICBzdXBlcihDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlLkZpbHRlckNoYW5nZWQsIHdvcmtzaGVldCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpZWxkTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkTmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGaWx0ZXJBc3luYygpOiBQcm9taXNlPENvbnRyYWN0LkZpbHRlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldC5nZXRGaWx0ZXJzQXN5bmMoKS50aGVuPENvbnRyYWN0LkZpbHRlcj4oZmlsdGVycyA9PiB7XHJcbiAgICAgIC8vIFRPRE86IEZpbHRlcmluZyBvZiB0aGUgZmlsdGVycyBzaG91bGQgZXZlbnR1YWxseSBiZSBkb25lIHBsYXRmb3JtIHNpZGUuXHJcbiAgICAgIGNvbnN0IGV2ZW50ZWRGaWx0ZXIgPSBmaWx0ZXJzLmZpbmQoKGZpbHRlcikgPT4gKGZpbHRlci5maWVsZE5hbWUgPT09IHRoaXMuX2ZpZWxkTmFtZSkpO1xyXG5cclxuICAgICAgaWYgKCFldmVudGVkRmlsdGVyKSB7XHJcbiAgICAgICAgLy8gV2Ugc2hvdWxkbid0IGhpdCB0aGlzIHVubGVzcyB0aGUgZmlsdGVyIHdhcyByZW1vdmVkIGZyb20gdGhlIHdvcmtzaGVldFxyXG4gICAgICAgIC8vIGFmdGVyIHRoZSBldmVudCB3YXMgcmFpc2VkLlxyXG4gICAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW50ZXJuYWxFcnJvcihbJ0ZpbHRlciBubyBsb25nZXIgZm91bmQgaW4gd29ya3NoZWV0LiddKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGV2ZW50ZWRGaWx0ZXI7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvRmlsdGVyQ2hhbmdlZEV2ZW50LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFRhYmxlYXVTaGVldEV2ZW50IH0gZnJvbSAnLi9UYWJsZWF1U2hlZXRFdmVudCc7XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVhdVdvcmtzaGVldEV2ZW50IGV4dGVuZHMgVGFibGVhdVNoZWV0RXZlbnQgaW1wbGVtZW50cyBDb250cmFjdC5UYWJsZWF1V29ya3NoZWV0RXZlbnQge1xyXG4gIHB1YmxpYyBnZXQgd29ya3NoZWV0KCk6IENvbnRyYWN0LldvcmtzaGVldCB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHR5cGU6IENvbnRyYWN0LlRhYmxlYXVFdmVudFR5cGUsIHByb3RlY3RlZCBfd29ya3NoZWV0OiBDb250cmFjdC5Xb3Jrc2hlZXQpIHtcclxuICAgIHN1cGVyKHR5cGUsIF93b3Jrc2hlZXQpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9UYWJsZWF1V29ya3NoZWV0RXZlbnQudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgVGFibGVhdUV2ZW50IH0gZnJvbSAnLi9UYWJsZWF1RXZlbnQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlYXVTaGVldEV2ZW50IGV4dGVuZHMgVGFibGVhdUV2ZW50IGltcGxlbWVudHMgQ29udHJhY3QuVGFibGVhdVNoZWV0RXZlbnQge1xyXG4gIHByaXZhdGUgX3NoZWV0OiBDb250cmFjdC5TaGVldDtcclxuXHJcbiAgcHVibGljIGdldCBzaGVldCgpOiBDb250cmFjdC5TaGVldCB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hlZXQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IodHlwZTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSwgc2hlZXQ6IENvbnRyYWN0LlNoZWV0KSB7XHJcbiAgICBzdXBlcih0eXBlKTtcclxuXHJcbiAgICB0aGlzLl9zaGVldCA9IHNoZWV0O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9UYWJsZWF1U2hlZXRFdmVudC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVhdUV2ZW50IGltcGxlbWVudHMgQ29udHJhY3QuVGFibGVhdUV2ZW50IHtcclxuICBwcml2YXRlIF90eXBlOiBDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IodHlwZTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSkge1xyXG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHR5cGUoKTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvVGFibGVhdUV2ZW50LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFRhYmxlYXVXb3Jrc2hlZXRFdmVudCB9IGZyb20gJy4vVGFibGVhdVdvcmtzaGVldEV2ZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBNYXJrc1NlbGVjdGVkRXZlbnQgZXh0ZW5kcyBUYWJsZWF1V29ya3NoZWV0RXZlbnQgaW1wbGVtZW50cyBDb250cmFjdC5NYXJrc1NlbGVjdGVkRXZlbnQge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih3b3Jrc2hlZXQ6IENvbnRyYWN0LldvcmtzaGVldCkge1xyXG4gICAgc3VwZXIoQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZS5NYXJrU2VsZWN0aW9uQ2hhbmdlZCwgd29ya3NoZWV0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRNYXJrc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy53b3Jrc2hlZXQuZ2V0U2VsZWN0ZWRNYXJrc0FzeW5jKCk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL01hcmtzU2VsZWN0ZWRFdmVudC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFZpc3VhbElkIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuL1NlcnZpY2VSZWdpc3RyeSc7XHJcblxyXG4vKipcclxuICogRGVmaW5lcyB3aGljaCB0eXBlIG9mIGdldERhdGEgY2FsbCB0byBtYWtlLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gR2V0RGF0YVR5cGUge1xyXG4gIFN1bW1hcnkgPSAnc3VtbWFyeScsXHJcbiAgVW5kZXJseWluZyA9ICd1bmRlcmx5aW5nJ1xyXG59XHJcblxyXG4vKipcclxuICogU2VydmljZSBmb3IgaW1wbGVtZW50aW5nIHRoZSBsb2dpYyBmb3IgdmFyaW91cyBnZXREYXRhIGNhbGxzXHJcbiAqXHJcbiAqIEBpbnRlcmZhY2UgR2V0RGF0YVNlcnZpY2VcclxuICogQGV4dGVuZHMge0FwaVNlcnZpY2V9XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEdldERhdGFTZXJ2aWNlIGV4dGVuZHMgQXBpU2VydmljZSB7XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgdW5kZXJseWluZyBkYXRhIGZvciBhIHBhcnRpY3VsYXIgdmlzdWFsXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1Zpc3VhbElkfSB2aXN1YWxJZCAgVGhlIHZpc3VhbCB0byBnZXQgZGF0YSBmb3JcclxuICAgKiBAcGFyYW0ge0dldERhdGFUeXBlfSBnZXRUeXBlICBUaGUgdHlwZSBvZiBnZXREYXRhIGNhbGwgdG8gbWFrZVxyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaWdub3JlQWxpYXNlcyAgV2hldGhlciBvciBub3QgYWxpYXNlcyBzaG91bGQgYmUgaWdub3JlZFxyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaWdub3JlU2VsZWN0aW9uICBXaGV0aGVyIG9yIG5vdCBzZWxlY3Rpb24gc2hvdWxkIGJlIGlnbm9yZWRcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGluY2x1ZGVBbGxDb2x1bW5zICBTaG91bGQgYWxsIGNvbHVtbnMgYmUgaW5jbHVkZWRcclxuICAgKiBAcGFyYW0ge251bWJlcn0gbWF4Um93cyAgTWF4aW11bSBudW1iZXIgb2Ygcm93cyB0byByZXR1cm5cclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+fSAgRGF0YSB0YWJsZSB3aXRoIHRoZSByZXF1ZXN0ZWQgZGF0YVxyXG4gICAqL1xyXG4gICAgZ2V0VW5kZXJseWluZ0RhdGFBc3luYyhcclxuICAgICAgdmlzdWFsSWQ6IFZpc3VhbElkLFxyXG4gICAgICBnZXRUeXBlOiBHZXREYXRhVHlwZSxcclxuICAgICAgaWdub3JlQWxpYXNlczogYm9vbGVhbixcclxuICAgICAgaWdub3JlU2VsZWN0aW9uOiBib29sZWFuLFxyXG4gICAgICBpbmNsdWRlQWxsQ29sdW1uczogYm9vbGVhbixcclxuICAgICAgbWF4Um93czogbnVtYmVyKTogUHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIG1hcmtzIGZvciBhIGdpdmVuIHZpc3VhbFxyXG4gICAgICpcclxuICAgICogQHBhcmFtIHtWaXN1YWxJZH0gdmlzdWFsSWQgIFRoZSB2aXN1YWwgdG8gZ2V0IGRhdGEgZm9yXHJcbiAgICAqIEByZXR1cm5zIHtQcm9taXNlPEFjdGl2ZU1hcmtzPn0gIENvbGxlY3Rpb24gb2YgZGF0YSB0YWJsZXMgd2l0aCB0aGUgYWN0aXZlIG1hcmtzXHJcbiAgICAqL1xyXG4gICAgZ2V0U2VsZWN0ZWRNYXJrc0FzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGN1cnJlbnRseSBoaWdobGlnaHRlZCBtYXJrcyBmb3IgYSBnaXZlbiB2aXN1YWxcclxuICAgICAqXHJcbiAgICAqIEBwYXJhbSB7VmlzdWFsSWR9IHZpc3VhbElkICBUaGUgdmlzdWFsIHRvIGdldCBkYXRhIGZvclxyXG4gICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBY3RpdmVNYXJrcz59ICBDb2xsZWN0aW9uIG9mIGRhdGEgdGFibGVzIHdpdGggdGhlIGFjdGl2ZSBtYXJrc1xyXG4gICAgKi9cclxuICAgIGdldEhpZ2hsaWdodGVkTWFya3NBc3luYyh2aXN1YWxJZDogVmlzdWFsSWQpOiBQcm9taXNlPENvbnRyYWN0Lk1hcmtzQ29sbGVjdGlvbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGF0YXNvdXJjZUlkICBUaGUgaWQgb2YgdGhlIGRhdGFzb3VyY2UgdG8gZ2V0IGRhdGEgZm9yXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlnbm9yZUFsaWFzZXMgIFdoZXRoZXIgYWxpYXMgdmFsdWVzIHNob3VsZCBiZSBpZ25vcmVkIGluIHRoZSByZXR1cm5lZCBkYXRhXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbWF4Um93cyBUaGUgbWF4aW11bSBudW1iZXIgb2Ygcm93cyB0byByZXRyaWV2ZVxyXG4gICAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBjb2x1bW5zVG9JbmNsdWRlICBDb2xsZWN0aW9uIG9mIGNvbHVtbiBjYXB0aW9ucyB3aGljaCBzaG91bGQgYmUgcmV0dXJuZWQuIEVtcHR5IG1lYW5zIGFsbCBjb2x1bW5zXHJcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+fSAgRGF0YSB0YWJsZSB3aXRoIHRoZSByZXF1ZXN0ZWQgZGF0YVxyXG4gICAgICovXHJcbiAgICBnZXREYXRhU291cmNlRGF0YUFzeW5jKFxyXG4gICAgICBkYXRhc291cmNlSWQ6IHN0cmluZyxcclxuICAgICAgaWdub3JlQWxpYXNlczogYm9vbGVhbixcclxuICAgICAgbWF4Um93czogbnVtYmVyLFxyXG4gICAgICBjb2x1bW5zVG9JbmNsdWRlOiBBcnJheTxzdHJpbmc+KTogUHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+O1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvR2V0RGF0YVNlcnZpY2UudHNcbiAqKi8iLCJpbXBvcnQgeyBJbnRlcm5hbEFwaURpc3BhdGNoZXIgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZVNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL0RhdGFTb3VyY2VTZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IEZpbHRlclNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL0ZpbHRlclNlcnZpY2VJbXBsJztcclxuaW1wb3J0IHsgR2V0RGF0YVNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL0dldERhdGFTZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL05vdGlmaWNhdGlvblNlcnZpY2VJbXBsJztcclxuaW1wb3J0IHsgUGFyYW1ldGVyc1NlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL1BhcmFtZXRlcnNTZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL1NlbGVjdGlvblNlcnZpY2VJbXBsJztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5IH0gZnJvbSAnLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKTogdm9pZCB7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgRGF0YVNvdXJjZVNlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcclxuICBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBHZXREYXRhU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IEZpbHRlclNlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcclxuICBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgUGFyYW1ldGVyc1NlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcclxuICBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBTZWxlY3Rpb25TZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9SZWdpc3RlckFsbFNoYXJlZFNlcnZpY2VzLnRzXG4gKiovIiwiaW1wb3J0IHsgRXJyb3JDb2RlcyB9IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7XHJcbiAgQ29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeSxcclxuICBEYXRhU2NoZW1hLFxyXG4gIEV4ZWN1dGVQYXJhbWV0ZXJzLFxyXG4gIEludGVybmFsQXBpRGlzcGF0Y2hlcixcclxuICBKb2luRGVzY3JpcHRpb24sXHJcbiAgUGFyYW1ldGVySWQsXHJcbiAgVGFibGVJbmZvLFxyXG4gIFZlcmJJZFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IERhdGFTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vRGF0YVNvdXJjZVNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIERhdGFTb3VyY2VTZXJ2aWNlIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFNlcnZpY2VOYW1lcy5EYXRhU291cmNlU2VydmljZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWZyZXNoQXN5bmMoZGF0YVNvdXJjZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge1tQYXJhbWV0ZXJJZC5EYXRhU291cmNlSWRdOiBkYXRhU291cmNlSWR9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLlJlZnJlc2hEYXRhU291cmNlLCBwYXJhbWV0ZXJzKS50aGVuPHZvaWQ+KHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QWN0aXZlVGFibGVzQXN5bmMoZGF0YVNvdXJjZUlkOiBzdHJpbmcpOiBQcm9taXNlPFRhYmxlSW5mb1tdPiB7XHJcbiAgICBjb25zdCBqb2luUGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7W1BhcmFtZXRlcklkLkRhdGFTb3VyY2VJZF06IGRhdGFTb3VyY2VJZH07XHJcblxyXG4gICAgLy8gR2V0IHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgdGFibGVzIHVzZWQgYnkgdGhpcyBjb25uZWN0aW9uXHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5HZXRKb2luRGVzY3JpcHRpb24sIGpvaW5QYXJhbWV0ZXJzKS50aGVuPFRhYmxlSW5mb1tdPihqb2luUmVzcG9uc2UgPT4ge1xyXG4gICAgICBjb25zdCBqb2luRGVzY3JpcHRpb24gPSBqb2luUmVzcG9uc2UucmVzdWx0IGFzIEpvaW5EZXNjcmlwdGlvbjtcclxuXHJcbiAgICAgIC8vIGdldEFjdGl2ZVRhYmxlcyBpcyB1bnN1cHBvcnRlZCBmb3IgY3ViZXMgYW5kIEdBLiBXZSBkbyBub3QgaGF2ZSBhIGNvbm5lY3Rpb24gdHlwZSBwcm9wZXJ0eVxyXG4gICAgICAvLyBhdmFpbGFibGUgZnJvbSB0aGUgcGxhdGZvcm0gKGludGVudGlvbmFsbHksIHRvIHJlZHVjZSBjb2RlIGNodXJuIGFzIG5ldyBjb25uZWN0aW9ucyBhcmUgYWRkZWQpLlxyXG4gICAgICAvLyBJbnN0ZWFkLGp1c3QgY2hlY2sgaWYgYW55IHRhYmxlcyBhcmUgcmV0dXJuZWQuIFRoaXMgYXJyYXkgd2lsbCBiZSBlbXB0eSBmb3IgYW55IG5vbi10YWJsZSBiYXNlZCBkYXRhc291cmNlLlxyXG4gICAgICBpZiAoam9pbkRlc2NyaXB0aW9uLnRhYmxlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmVycm9yKCdnZXRBY3RpdmVUYWJsZXNBc3luYyBpcyB1bnN1cHBvcnRlZCBmb3IgRGF0YVNvdXJjZS4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtFcnJvckNvZGVzLlVuc3VwcG9ydGVkTWV0aG9kRm9yRGF0YVNvdXJjZVR5cGVdKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGpvaW5EZXNjcmlwdGlvbi50YWJsZXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREYXRhU291cmNlc0FzeW5jKCk6IFByb21pc2U8RGF0YVNjaGVtYT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuR2V0RGF0YVNvdXJjZXMsIHt9KS50aGVuPERhdGFTY2hlbWE+KHJlc3BvbnNlID0+IHtcclxuICAgICAgY29uc3QgZGF0YVNjaGVtYSA9IHJlc3BvbnNlLnJlc3VsdCBhcyBEYXRhU2NoZW1hO1xyXG4gICAgICByZXR1cm4gZGF0YVNjaGVtYTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENvbm5lY3Rpb25TdW1tYXJpZXNBc3luYyhkYXRhU291cmNlSWQ6IHN0cmluZyk6IFByb21pc2U8Q29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeVtdPiB7XHJcbiAgICBjb25zdCBwYXJhbXM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge1tQYXJhbWV0ZXJJZC5EYXRhU291cmNlSWRdOiBkYXRhU291cmNlSWR9O1xyXG5cclxuICAgIC8vIEdldCB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIHRhYmxlcyB1c2VkIGJ5IHRoaXMgY29ubmVjdGlvblxyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuR2V0Q29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyaWVzLCBwYXJhbXMpLnRoZW48Q29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeVtdPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9uU3VtbWFyaWVzID0gcmVzcG9uc2UucmVzdWx0IGFzIENvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcnlbXTtcclxuICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uU3VtbWFyaWVzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvaW1wbC9EYXRhU291cmNlU2VydmljZUltcGwudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgKiBhcyBJbnRlcm5hbENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tbWFuZEVycm9yLFxyXG4gIEV4ZWN1dGVQYXJhbWV0ZXJzLFxyXG4gIEZpbHRlclR5cGUsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFZlcmJJZCxcclxuICBWaXN1YWxJZFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFBhcmFtLCBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IEV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncyBhcyBFeHRlcm5hbEVudW1Db252ZXJ0ZXIgfSBmcm9tICcuLi8uLi9FbnVtTWFwcGluZ3MvRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzJztcclxuaW1wb3J0IHsgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzIGFzIEludGVybmFsRW51bUNvbnZlcnRlciB9IGZyb20gJy4uLy4uL0VudW1NYXBwaW5ncy9JbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MnO1xyXG5pbXBvcnQge1xyXG4gIENhdGVnb3JpY2FsRG9tYWluLFxyXG4gIENhdGVnb3JpY2FsRmlsdGVyLFxyXG4gIFJhbmdlRG9tYWluLFxyXG4gIFJhbmdlRmlsdGVyLFxyXG4gIFJlbGF0aXZlRGF0ZUZpbHRlclxyXG59IGZyb20gJy4uLy4uL01vZGVscy9GaWx0ZXJNb2RlbHMnO1xyXG5pbXBvcnQgeyBEYXRhVmFsdWUgfSBmcm9tICcuLi8uLi9Nb2RlbHMvR2V0RGF0YU1vZGVscyc7XHJcblxyXG5pbXBvcnQgeyBGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vRmlsdGVyU2VydmljZSc7XHJcbmltcG9ydCB7IFNlcnZpY2VOYW1lcyB9IGZyb20gJy4uL1NlcnZpY2VSZWdpc3RyeSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyU2VydmljZUltcGwgaW1wbGVtZW50cyBGaWx0ZXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIHN0YXRpYyBGSUxURVJfRVJST1I6IHN0cmluZyA9ICdFcnJvciBBcHBseWluZyBGaWx0ZXI6ICUxJztcclxuICBwcml2YXRlIF9kaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXI7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihkaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXIpIHtcclxuICAgIHRoaXMuX2Rpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFNlcnZpY2VOYW1lcy5GaWx0ZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXBwbHlGaWx0ZXJBc3luYyhcclxuICAgIHZpc3VhbElkOiBWaXN1YWxJZCxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgdmFsdWVzOiBBcnJheTxzdHJpbmc+LFxyXG4gICAgdXBkYXRlVHlwZTogQ29udHJhY3QuRmlsdGVyVXBkYXRlVHlwZSxcclxuICAgIGZpbHRlck9wdGlvbnM6IENvbnRyYWN0LkZpbHRlck9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICBpZiAoIVBhcmFtLmlzVmFsaWRFbnVtVmFsdWU8Q29udHJhY3QuRmlsdGVyVXBkYXRlVHlwZT4odXBkYXRlVHlwZSwgQ29udHJhY3QuRmlsdGVyVXBkYXRlVHlwZSkpIHtcclxuICAgICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWRQYXJhbVZhbHVlKFsnRmlsdGVyVXBkYXRlVHlwZSddKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB2ZXJiID0gVmVyYklkLkFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXI7XHJcbiAgICAgIGNvbnN0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge307XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQ7XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmllbGROYW1lXSA9IGZpZWxkTmFtZTtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWx0ZXJWYWx1ZXNdID0gdmFsdWVzO1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkZpbHRlclVwZGF0ZVR5cGVdID0gdXBkYXRlVHlwZTtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5Jc0V4Y2x1ZGVNb2RlXSA9XHJcbiAgICAgICAgKGZpbHRlck9wdGlvbnMgPT09IHVuZGVmaW5lZCB8fCBmaWx0ZXJPcHRpb25zLmlzRXhjbHVkZU1vZGUgPT09IHVuZGVmaW5lZCkgPyBmYWxzZSA6IGZpbHRlck9wdGlvbnMuaXNFeGNsdWRlTW9kZTtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbjxzdHJpbmc+KHJlc3BvbnNlID0+IHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHJlc3BvbnNlLnJlc3VsdCBhcyBDb21tYW5kRXJyb3I7XHJcbiAgICAgICAgaWYgKCEoZXJyb3IuZXJyb3JDb2RlID09PSBudWxsIHx8IGVycm9yLmVycm9yQ29kZSA9PT0gdW5kZWZpbmVkKSkge1xyXG4gICAgICAgICAgLy8gVE9ETzogY29tZSBiYWNrIGFuZCBpbXBsZW1lbnQgZXJyb3IgaGFuZGxpbmcgbG9naWNcclxuICAgICAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoRmlsdGVyU2VydmljZUltcGwuRklMVEVSX0VSUk9SLCBbZXJyb3IuZXJyb3JDb2RlXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmaWVsZE5hbWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICBwdWJsaWMgYXBwbHlSYW5nZUZpbHRlckFzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCwgZmllbGROYW1lOiBzdHJpbmcsIGZpbHRlck9wdGlvbnM6IENvbnRyYWN0LlJhbmdlRmlsdGVyT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBpZiAoIWZpbHRlck9wdGlvbnMpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5taXNzaW5nUGFyYW1ldGVyKFsnUmFuZ2VGaWx0ZXJPcHRpb25zJ10pO1xyXG4gICAgfVxyXG4gICAgUGFyYW0udmVyaWZ5UmFuZ2VQYXJhbVR5cGUoZmlsdGVyT3B0aW9ucy5taW4sIGZpbHRlck9wdGlvbnMubWF4KTtcclxuXHJcbiAgICBjb25zdCB2ZXJiID0gVmVyYklkLkFwcGx5UmFuZ2VGaWx0ZXI7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHt9O1xyXG5cclxuICAgIGlmIChmaWx0ZXJPcHRpb25zLm1pbikge1xyXG4gICAgICBsZXQgbWluOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICAgIGlmIChmaWx0ZXJPcHRpb25zLm1pbiBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICBtaW4gPSBQYXJhbS5zZXJpYWxpemVEYXRlRm9yUGxhdGZvcm0oZmlsdGVyT3B0aW9ucy5taW4pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1pbiA9IGZpbHRlck9wdGlvbnMubWluO1xyXG4gICAgICB9XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmlsdGVyUmFuZ2VNaW5dID0gbWluO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJPcHRpb25zLm1heCkge1xyXG4gICAgICBsZXQgbWF4OiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICAgIGlmIChmaWx0ZXJPcHRpb25zLm1heCBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICBtYXggPSBQYXJhbS5zZXJpYWxpemVEYXRlRm9yUGxhdGZvcm0oZmlsdGVyT3B0aW9ucy5tYXgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1heCA9IGZpbHRlck9wdGlvbnMubWF4O1xyXG4gICAgICB9XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmlsdGVyUmFuZ2VNYXhdID0gbWF4O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJPcHRpb25zLm51bGxPcHRpb24pIHtcclxuICAgICAgaWYgKCFQYXJhbS5pc1ZhbGlkRW51bVZhbHVlPENvbnRyYWN0LkZpbHRlck51bGxPcHRpb24+KGZpbHRlck9wdGlvbnMubnVsbE9wdGlvbiwgQ29udHJhY3QuRmlsdGVyTnVsbE9wdGlvbikpIHtcclxuICAgICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWRQYXJhbVZhbHVlKFsnTnVsbE9wdGlvbiddKTtcclxuICAgICAgfVxyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkZpbHRlclJhbmdlTnVsbE9wdGlvbl0gPSBFeHRlcm5hbEVudW1Db252ZXJ0ZXIubnVsbE9wdGlvbnMuY29udmVydChmaWx0ZXJPcHRpb25zLm51bGxPcHRpb24pO1xyXG4gICAgfVxyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWVsZE5hbWVdID0gZmllbGROYW1lO1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKHZlcmIsIHBhcmFtZXRlcnMpLnRoZW48c3RyaW5nPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiBmaWVsZE5hbWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckZpbHRlckFzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCwgZmllbGROYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgdmVyYiA9IFZlcmJJZC5DbGVhckZpbHRlcjtcclxuICAgIGxldCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHt9O1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcclxuICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmllbGROYW1lXSA9IGZpZWxkTmFtZTtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbjxzdHJpbmc+KHJlc3Bvc25lID0+IHtcclxuICAgICAgcmV0dXJuIGZpZWxkTmFtZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEZpbHRlcnNBc3luYyh2aXN1YWxJZDogVmlzdWFsSWQpOiBQcm9taXNlPENvbnRyYWN0LkZpbHRlcltdPiB7XHJcbiAgICBjb25zdCB2ZXJiID0gVmVyYklkLkdldEZpbHRlcnM7XHJcbiAgICBsZXQgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7fTtcclxuICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQ7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKHZlcmIsIHBhcmFtZXRlcnMpLnRoZW48Q29udHJhY3QuRmlsdGVyW10+KHJlc3BvbnNlID0+IHtcclxuICAgICAgbGV0IGZpbHRlcnMgPSByZXNwb25zZS5yZXN1bHQgYXMgSW50ZXJuYWxDb250cmFjdC5GaWx0ZXJbXTtcclxuICAgICAgcmV0dXJuIHRoaXMuY29udmVydERvbWFpbkZpbHRlcnMoZmlsdGVycyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDYXRlZ29yaWNhbERvbWFpbkFzeW5jKFxyXG4gICAgd29ya3NoZWV0TmFtZTogc3RyaW5nLFxyXG4gICAgZmllbGRJZDogc3RyaW5nLFxyXG4gICAgZG9tYWluVHlwZTogQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZSk6IFByb21pc2U8Q29udHJhY3QuQ2F0ZWdvcmljYWxEb21haW4+IHtcclxuICAgIGlmICghUGFyYW0uaXNWYWxpZEVudW1WYWx1ZTxDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlPihkb21haW5UeXBlLCBDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciBGaWx0ZXJEb21haW5UeXBlJyk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2ZXJiID0gVmVyYklkLkdldENhdGVnb3JpY2FsRG9tYWluO1xyXG4gICAgbGV0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge307XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLlZpc3VhbElkXSA9IHtcclxuICAgICAgd29ya3NoZWV0OiB3b3Jrc2hlZXROYW1lXHJcbiAgICB9O1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWVsZElkXSA9IGZpZWxkSWQ7XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkRvbWFpblR5cGVdID0gZG9tYWluVHlwZTtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbjxDb250cmFjdC5DYXRlZ29yaWNhbERvbWFpbj4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICBsZXQgZG9tYWluID0gcmVzcG9uc2UucmVzdWx0IGFzIEludGVybmFsQ29udHJhY3QuQ2F0ZWdvcmljYWxEb21haW47XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRDYXRlZ29yaWNhbERvbWFpbihkb21haW4sIGRvbWFpblR5cGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UmFuZ2VEb21haW5Bc3luYyh3b3Jrc2hlZXROYW1lOiBzdHJpbmcsIGZpZWxkSWQ6IHN0cmluZywgZG9tYWluVHlwZTogQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZSk6IFByb21pc2U8Q29udHJhY3QuUmFuZ2VEb21haW4+IHtcclxuICAgIGlmICghUGFyYW0uaXNWYWxpZEVudW1WYWx1ZTxDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlPihkb21haW5UeXBlLCBDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciBGaWx0ZXJEb21haW5UeXBlJyk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2ZXJiID0gVmVyYklkLkdldFJhbmdlRG9tYWluO1xyXG4gICAgbGV0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge307XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLlZpc3VhbElkXSA9IHtcclxuICAgICAgd29ya3NoZWV0OiB3b3Jrc2hlZXROYW1lXHJcbiAgICB9O1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWVsZElkXSA9IGZpZWxkSWQ7XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkRvbWFpblR5cGVdID0gRXh0ZXJuYWxFbnVtQ29udmVydGVyLmZpbHRlckRvbWFpblR5cGUuY29udmVydChkb21haW5UeXBlKTtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbjxDb250cmFjdC5SYW5nZURvbWFpbj4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICBsZXQgZG9tYWluID0gcmVzcG9uc2UucmVzdWx0IGFzIEludGVybmFsQ29udHJhY3QuUmFuZ2VEb21haW47XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0UmFuZ2VEb21haW4oZG9tYWluLCBkb21haW5UeXBlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gSGVscGVyIE1ldGhvZHNcclxuICBwcml2YXRlIGNvbnZlcnREb21haW5GaWx0ZXJzKGRvbWFpbkZpbHRlcnM6IEludGVybmFsQ29udHJhY3QuRmlsdGVyW10pOiBDb250cmFjdC5GaWx0ZXJbXSB7XHJcbiAgICBsZXQgZmlsdGVyczogQ29udHJhY3QuRmlsdGVyW10gPSBbXTtcclxuICAgIGRvbWFpbkZpbHRlcnMuZm9yRWFjaChkb21haW5GaWx0ZXIgPT4ge1xyXG4gICAgICBzd2l0Y2ggKGRvbWFpbkZpbHRlci5maWx0ZXJUeXBlKSB7XHJcbiAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLkNhdGVnb3JpY2FsOiB7XHJcbiAgICAgICAgICBsZXQgZmlsdGVyID0gZG9tYWluRmlsdGVyIGFzIEludGVybmFsQ29udHJhY3QuQ2F0ZWdvcmljYWxGaWx0ZXI7XHJcbiAgICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh0aGlzLmNvbnZlcnRDYXRlZ29yaWNhbEZpbHRlcihmaWx0ZXIpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBDYXRlZ29yaWNhbCBGaWx0ZXInKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLlJhbmdlOiB7XHJcbiAgICAgICAgICBsZXQgZmlsdGVyID0gZG9tYWluRmlsdGVyIGFzIEludGVybmFsQ29udHJhY3QuUmFuZ2VGaWx0ZXI7XHJcbiAgICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh0aGlzLmNvbnZlcnRSYW5nZUZpbHRlcihmaWx0ZXIpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBSYW5nZSBGaWx0ZXInKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZToge1xyXG4gICAgICAgICAgbGV0IGZpbHRlciA9IGRvbWFpbkZpbHRlciBhcyBJbnRlcm5hbENvbnRyYWN0LlJlbGF0aXZlRGF0ZUZpbHRlcjtcclxuICAgICAgICAgIGlmIChmaWx0ZXIpIHtcclxuICAgICAgICAgICAgZmlsdGVycy5wdXNoKHRoaXMuY29udmVydFJlbGF0aXZlRGF0ZUZpbHRlcihmaWx0ZXIpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBSZWxhdGl2ZSBEYXRlIEZpbHRlcicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRDYXRlZ29yaWNhbEZpbHRlcihkb21haW5GaWx0ZXI6IEludGVybmFsQ29udHJhY3QuQ2F0ZWdvcmljYWxGaWx0ZXIpOiBDb250cmFjdC5DYXRlZ29yaWNhbEZpbHRlciB7XHJcbiAgICBsZXQgYXBwbGllZFZhbHVlczogQ29udHJhY3QuRGF0YVZhbHVlW10gPSBkb21haW5GaWx0ZXIudmFsdWVzLm1hcChkdiA9PiB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0YVZhbHVlKGR2LnZhbHVlLCBkdi5mb3JtYXR0ZWRWYWx1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV3IENhdGVnb3JpY2FsRmlsdGVyKFxyXG4gICAgICBkb21haW5GaWx0ZXIudmlzdWFsSWQud29ya3NoZWV0LFxyXG4gICAgICBkb21haW5GaWx0ZXIuZmllbGRDYXB0aW9uLFxyXG4gICAgICBkb21haW5GaWx0ZXIuZmllbGROYW1lLFxyXG4gICAgICBDb250cmFjdC5GaWx0ZXJUeXBlLkNhdGVnb3JpY2FsLFxyXG4gICAgICBhcHBsaWVkVmFsdWVzLFxyXG4gICAgICBkb21haW5GaWx0ZXIuaXNFeGNsdWRlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udmVydFJhbmdlRmlsdGVyKGRvbWFpbkZpbHRlcjogSW50ZXJuYWxDb250cmFjdC5SYW5nZUZpbHRlcik6IENvbnRyYWN0LlJhbmdlRmlsdGVyIHtcclxuICAgIGxldCBtaW5WYWx1ZTogRGF0YVZhbHVlID0gbmV3IERhdGFWYWx1ZShkb21haW5GaWx0ZXIubWluLnZhbHVlLCBkb21haW5GaWx0ZXIubWluLmZvcm1hdHRlZFZhbHVlKTtcclxuICAgIGxldCBtYXhWYWx1ZTogRGF0YVZhbHVlID0gbmV3IERhdGFWYWx1ZShkb21haW5GaWx0ZXIubWF4LnZhbHVlLCBkb21haW5GaWx0ZXIubWF4LmZvcm1hdHRlZFZhbHVlKTtcclxuICAgIHJldHVybiBuZXcgUmFuZ2VGaWx0ZXIoXHJcbiAgICAgIGRvbWFpbkZpbHRlci52aXN1YWxJZC53b3Jrc2hlZXQsXHJcbiAgICAgIGRvbWFpbkZpbHRlci5maWVsZENhcHRpb24sXHJcbiAgICAgIGRvbWFpbkZpbHRlci5maWVsZE5hbWUsXHJcbiAgICAgIENvbnRyYWN0LkZpbHRlclR5cGUuUmFuZ2UsXHJcbiAgICAgIG1pblZhbHVlLFxyXG4gICAgICBtYXhWYWx1ZSxcclxuICAgICAgZG9tYWluRmlsdGVyLmluY2x1ZGVOdWxsVmFsdWVzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0UmVsYXRpdmVEYXRlRmlsdGVyKGRvbWFpbkZpbHRlcjogSW50ZXJuYWxDb250cmFjdC5SZWxhdGl2ZURhdGVGaWx0ZXIpOiBDb250cmFjdC5SZWxhdGl2ZURhdGVGaWx0ZXIge1xyXG4gICAgbGV0IGFuY2hvckRhdGVWYWx1ZTogRGF0YVZhbHVlID0gbmV3IERhdGFWYWx1ZShkb21haW5GaWx0ZXIuYW5jaG9yRGF0ZS52YWx1ZSwgZG9tYWluRmlsdGVyLmFuY2hvckRhdGUuZm9ybWF0dGVkVmFsdWUpO1xyXG4gICAgcmV0dXJuIG5ldyBSZWxhdGl2ZURhdGVGaWx0ZXIgKFxyXG4gICAgICBkb21haW5GaWx0ZXIudmlzdWFsSWQud29ya3NoZWV0LFxyXG4gICAgICBkb21haW5GaWx0ZXIuZmllbGRDYXB0aW9uLFxyXG4gICAgICBkb21haW5GaWx0ZXIuZmllbGROYW1lLFxyXG4gICAgICBDb250cmFjdC5GaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZSxcclxuICAgICAgYW5jaG9yRGF0ZVZhbHVlLFxyXG4gICAgICBJbnRlcm5hbEVudW1Db252ZXJ0ZXIuZGF0ZVN0ZXBQZXJpb2QuY29udmVydChkb21haW5GaWx0ZXIucGVyaW9kVHlwZSksXHJcbiAgICAgIEludGVybmFsRW51bUNvbnZlcnRlci5kYXRlUmFuZ2VUeXBlLmNvbnZlcnQoZG9tYWluRmlsdGVyLnJhbmdlVHlwZSksXHJcbiAgICAgIGRvbWFpbkZpbHRlci5yYW5nZU5cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRDYXRlZ29yaWNhbERvbWFpbihcclxuICAgIGRvbWFpbjogSW50ZXJuYWxDb250cmFjdC5DYXRlZ29yaWNhbERvbWFpbixcclxuICAgIGRvbWFpblR5cGU6IENvbnRyYWN0LkZpbHRlckRvbWFpblR5cGUpOiBDb250cmFjdC5DYXRlZ29yaWNhbERvbWFpbiB7XHJcbiAgICBsZXQgdmFsdWVzOiBEYXRhVmFsdWVbXSA9IGRvbWFpbi52YWx1ZXMubWFwKChkb21haW5EdikgPT4ge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGFWYWx1ZShkb21haW5Edi52YWx1ZSwgZG9tYWluRHYuZm9ybWF0dGVkVmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbmV3IENhdGVnb3JpY2FsRG9tYWluKHZhbHVlcywgZG9tYWluVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRSYW5nZURvbWFpbihkb21haW46IEludGVybmFsQ29udHJhY3QuUmFuZ2VEb21haW4sIGRvbWFpblR5cGU6IENvbnRyYWN0LkZpbHRlckRvbWFpblR5cGUpOiBDb250cmFjdC5SYW5nZURvbWFpbiB7XHJcbiAgICBsZXQgbWluOiBEYXRhVmFsdWUgPSBuZXcgRGF0YVZhbHVlKGRvbWFpbi5taW4udmFsdWUsIGRvbWFpbi5taW4uZm9ybWF0dGVkVmFsdWUpO1xyXG4gICAgbGV0IG1heDogRGF0YVZhbHVlID0gbmV3IERhdGFWYWx1ZShkb21haW4ubWF4LnZhbHVlLCBkb21haW4ubWF4LmZvcm1hdHRlZFZhbHVlKTtcclxuICAgIHJldHVybiBuZXcgUmFuZ2VEb21haW4oXHJcbiAgICAgIG1pbixcclxuICAgICAgbWF4LFxyXG4gICAgICBkb21haW5UeXBlXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvRmlsdGVyU2VydmljZUltcGwudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEZpbHRlckRvbWFpblR5cGUgYXMgRXh0ZXJuYWxEb21haW5UeXBlLFxyXG4gIEZpbHRlck51bGxPcHRpb24gYXMgRXh0ZXJuYWxOdWxsT3B0aW9uXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBGaWx0ZXJEb21haW5UeXBlIGFzIEludGVybmFsRG9tYWluVHlwZSxcclxuICBGaWx0ZXJOdWxsT3B0aW9uIGFzIEludGVybmFsTnVsbE9wdGlvblxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBFbnVtQ29udmVydGVyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbi8qIHRzbGludDpkaXNhYmxlOnR5cGVkZWYgLSBEaXNhYmxlIHRoaXMgdG8gbWFrZSBkZWNsYXJpbmcgdGhlc2UgY2xhc3NlcyBhIGJpdCBlYXNpZXIgKi9cclxuLyoqXHJcbiAqIE1hcHMgZW51bXMgdXNlZCBieSB0aGUgZXh0ZXJuYWwtYXBpLWNvbnRyYWN0IHRvIHRoZSBlbnVtcyB1c2VkXHJcbiAqIGluIHRoZSBpbnRlcm5hbC1hcGktY29udHJhY3QsIHdoaWNoIGRldmVsb3BlcnMgY29kZSBhZ2FpbnN0LlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncyB7XHJcbiAgcHVibGljIHN0YXRpYyBudWxsT3B0aW9ucyA9IG5ldyBFbnVtQ29udmVydGVyPEV4dGVybmFsTnVsbE9wdGlvbiwgSW50ZXJuYWxOdWxsT3B0aW9uPih7XHJcbiAgICBbRXh0ZXJuYWxOdWxsT3B0aW9uLkFsbFZhbHVlc106IEludGVybmFsTnVsbE9wdGlvbi5BbGxWYWx1ZXMsXHJcbiAgICBbRXh0ZXJuYWxOdWxsT3B0aW9uLk5vbk51bGxWYWx1ZXNdOiBJbnRlcm5hbE51bGxPcHRpb24uTm9uTnVsbFZhbHVlcyxcclxuICAgIFtFeHRlcm5hbE51bGxPcHRpb24uTm9uTnVsbFZhbHVlc106IEludGVybmFsTnVsbE9wdGlvbi5OdWxsVmFsdWVzXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyRG9tYWluVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEV4dGVybmFsRG9tYWluVHlwZSwgSW50ZXJuYWxEb21haW5UeXBlPih7XHJcbiAgICBbRXh0ZXJuYWxEb21haW5UeXBlLlJlbGV2YW50XTogSW50ZXJuYWxEb21haW5UeXBlLlJlbGV2YW50LFxyXG4gICAgW0V4dGVybmFsRG9tYWluVHlwZS5EYXRhYmFzZV06IEludGVybmFsRG9tYWluVHlwZS5EYXRhYmFzZVxyXG4gIH0pO1xyXG59XHJcbi8qIHRzbGludDplbmFibGU6dHlwZWRlZiAqL1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0VudW1NYXBwaW5ncy9FeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL0ZpbHRlclNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlUmVnaXN0cnksIFNlcnZpY2VOYW1lcyB9IGZyb20gJy4uL1NlcnZpY2VzL1NlcnZpY2VSZWdpc3RyeSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyIGltcGxlbWVudHMgQ29udHJhY3QuRmlsdGVyIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgX3dvcmtzaGVldE5hbWU6IHN0cmluZyxcclxuICAgIHByb3RlY3RlZCBfZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclR5cGU6IENvbnRyYWN0LkZpbHRlclR5cGUsXHJcbiAgICBwcm90ZWN0ZWQgX2ZpZWxkSWQ6IHN0cmluZykge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB3b3Jrc2hlZXROYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0TmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZmllbGROYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGROYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmaWVsZElkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZmlsdGVyVHlwZSgpOiBDb250cmFjdC5GaWx0ZXJUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9maWx0ZXJUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEZpZWxkQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5GaWVsZD4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkJyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcmljYWxGaWx0ZXIgZXh0ZW5kcyBGaWx0ZXIgaW1wbGVtZW50cyBDb250cmFjdC5DYXRlZ29yaWNhbEZpbHRlciB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgd29ya3NoZWV0TmFtZTogc3RyaW5nLFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBmaWVsZElkOiBzdHJpbmcsXHJcbiAgICBmaWx0ZXJUeXBlOiBDb250cmFjdC5GaWx0ZXJUeXBlLFxyXG4gICAgcHJpdmF0ZSBfYXBwbGllZFZhbHVlczogQ29udHJhY3QuRGF0YVZhbHVlW10sXHJcbiAgICBwcml2YXRlIF9pc0V4Y2x1ZGVNb2RlOiBib29sZWFuKSB7XHJcbiAgICAgIHN1cGVyKHdvcmtzaGVldE5hbWUsIGZpZWxkTmFtZSwgZmlsdGVyVHlwZSwgZmllbGRJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFwcGxpZWRWYWx1ZXMoKTogQ29udHJhY3QuRGF0YVZhbHVlW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwcGxpZWRWYWx1ZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzRXhjbHVkZU1vZGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNFeGNsdWRlTW9kZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREb21haW5Bc3luYyhkb21haW5UeXBlPzogQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZSk6IFByb21pc2U8Q29udHJhY3QuQ2F0ZWdvcmljYWxEb21haW4+IHtcclxuICAgIGlmICghZG9tYWluVHlwZSkge1xyXG4gICAgICBkb21haW5UeXBlID0gQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZS5SZWxldmFudDtcclxuICAgIH1cclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxGaWx0ZXJTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuRmlsdGVyKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmdldENhdGVnb3JpY2FsRG9tYWluQXN5bmModGhpcy5fd29ya3NoZWV0TmFtZSwgdGhpcy5fZmllbGRJZCwgZG9tYWluVHlwZSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmFuZ2VGaWx0ZXIgZXh0ZW5kcyBGaWx0ZXIgaW1wbGVtZW50cyBDb250cmFjdC5SYW5nZUZpbHRlciB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgd29ya3NoZWV0TmFtZTogc3RyaW5nLFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBmaWVsZElkOiBzdHJpbmcsXHJcbiAgICBmaWx0ZXJUeXBlOiBDb250cmFjdC5GaWx0ZXJUeXBlLFxyXG4gICAgcHJpdmF0ZSBfbWluOiBDb250cmFjdC5EYXRhVmFsdWUsXHJcbiAgICBwcml2YXRlIF9tYXg6IENvbnRyYWN0LkRhdGFWYWx1ZSxcclxuICAgIHByaXZhdGUgX2luY2x1ZGVOdWxsVmFsdWVzOiBib29sZWFuKSB7XHJcbiAgICAgIHN1cGVyKHdvcmtzaGVldE5hbWUsIGZpZWxkTmFtZSwgZmlsdGVyVHlwZSwgZmllbGRJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1pblZhbHVlKCk6IENvbnRyYWN0LkRhdGFWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWluO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBDb250cmFjdC5EYXRhVmFsdWUge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaW5jbHVkZU51bGxWYWx1ZXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faW5jbHVkZU51bGxWYWx1ZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgIGdldERvbWFpbkFzeW5jKGRvbWFpblR5cGU/OiBDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlKTogUHJvbWlzZTxDb250cmFjdC5SYW5nZURvbWFpbj4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEZpbHRlclNlcnZpY2U+KFNlcnZpY2VOYW1lcy5GaWx0ZXIpO1xyXG4gICAgaWYgKCFkb21haW5UeXBlKSB7XHJcbiAgICAgIGRvbWFpblR5cGUgPSBDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlLlJlbGV2YW50O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNlcnZpY2UuZ2V0UmFuZ2VEb21haW5Bc3luYyh0aGlzLl93b3Jrc2hlZXROYW1lLCB0aGlzLl9maWVsZElkLCBkb21haW5UeXBlKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZWxhdGl2ZURhdGVGaWx0ZXIgZXh0ZW5kcyBGaWx0ZXIgaW1wbGVtZW50cyBDb250cmFjdC5SZWxhdGl2ZURhdGVGaWx0ZXIge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHdvcmtzaGVldE5hbWU6IHN0cmluZyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgZmllbGRJZDogc3RyaW5nLFxyXG4gICAgZmlsdGVyVHlwZTogQ29udHJhY3QuRmlsdGVyVHlwZSxcclxuICAgIHByaXZhdGUgX2FuY2hvckRhdGU6IENvbnRyYWN0LkRhdGFWYWx1ZSxcclxuICAgIHByaXZhdGUgX3BlcmlvZFR5cGU6IENvbnRyYWN0LlBlcmlvZFR5cGUsXHJcbiAgICBwcml2YXRlIF9yYW5nZVR5cGU6IENvbnRyYWN0LkRhdGVSYW5nZVR5cGUsXHJcbiAgICBwcml2YXRlIF9yYW5nZU46IG51bWJlcikge1xyXG4gICAgICBzdXBlcih3b3Jrc2hlZXROYW1lLCBmaWVsZE5hbWUsIGZpbHRlclR5cGUsIGZpZWxkSWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhbmNob3JEYXRlKCk6IENvbnRyYWN0LkRhdGFWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW5jaG9yRGF0ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcGVyaW9kVHlwZSgpOiBDb250cmFjdC5QZXJpb2RUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9wZXJpb2RUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByYW5nZVR5cGUoKTogQ29udHJhY3QuRGF0ZVJhbmdlVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2VUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByYW5nZU4oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9yYW5nZU47XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcmljYWxEb21haW4gaW1wbGVtZW50cyBDb250cmFjdC5DYXRlZ29yaWNhbERvbWFpbiB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdmFsdWVzOiBDb250cmFjdC5EYXRhVmFsdWVbXSxcclxuICAgIHByaXZhdGUgX2RvbWFpblR5cGU6IENvbnRyYWN0LkZpbHRlckRvbWFpblR5cGUpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdmFsdWVzKCk6IENvbnRyYWN0LkRhdGFWYWx1ZVtdIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHR5cGUoKTogQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZG9tYWluVHlwZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSYW5nZURvbWFpbiBpbXBsZW1lbnRzIENvbnRyYWN0LlJhbmdlRG9tYWluIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9taW46IENvbnRyYWN0LkRhdGFWYWx1ZSxcclxuICAgIHByaXZhdGUgX21heDogQ29udHJhY3QuRGF0YVZhbHVlLFxyXG4gICAgcHJpdmF0ZSBfZG9tYWluVHlwZTogQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZSkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0eXBlKCk6IENvbnRyYWN0LkZpbHRlckRvbWFpblR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RvbWFpblR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1pbigpOiBDb250cmFjdC5EYXRhVmFsdWUge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbWF4KCk6IENvbnRyYWN0LkRhdGFWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL01vZGVscy9GaWx0ZXJNb2RlbHMudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZSBpbXBsZW1lbnRzIENvbnRyYWN0LkRhdGFUYWJsZSB7XHJcbiAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kYXRhOiBBcnJheTxBcnJheTxDb250cmFjdC5EYXRhVmFsdWU+PixcclxuICAgIHByaXZhdGUgX2NvbHVtbnM6IEFycmF5PENvbnRyYWN0LkNvbHVtbj4sXHJcbiAgICBwcml2YXRlIF90b3RhbFJvd0NvdW50OiBudW1iZXIsXHJcbiAgICBwcml2YXRlIF9pc1N1bW1hcnlEYXRhOiBib29sZWFuLFxyXG4gICAgcHJpdmF0ZSBfbWFya3NJbmZvPzogQXJyYXk8TWFya0luZm8+KSB7XHJcbiAgICAgICAgLy8gVE9ETzogZ2V0IHJpZCBvZiB0aGlzIGluIHJlZGVzaWduLlxyXG4gICAgICAgIHRoaXMuX25hbWUgPSBfaXNTdW1tYXJ5RGF0YSA/ICdTdW1tYXJ5IERhdGEgVGFibGUnIDogJ1VuZGVybHlpbmcgRGF0YSBUYWJsZSc7XHJcbiAgICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGEoKTogQXJyYXk8QXJyYXk8Q29udHJhY3QuRGF0YVZhbHVlPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbHVtbnMoKTogQXJyYXk8Q29udHJhY3QuQ29sdW1uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbWFya3NJbmZvKCk6IEFycmF5PENvbnRyYWN0Lk1hcmtJbmZvPiB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWFya3NJbmZvO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0b3RhbFJvd0NvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fdG90YWxSb3dDb3VudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNTdW1tYXJ5RGF0YSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1N1bW1hcnlEYXRhO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1hcmtJbmZvIGltcGxlbWVudHMgQ29udHJhY3QuTWFya0luZm8ge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3R5cGU6IENvbnRyYWN0Lk1hcmtUeXBlLFxyXG4gICAgcHJpdmF0ZSBfY29sb3I6IHN0cmluZyxcclxuICAgIHByaXZhdGUgX3R1cGxlSWQ/OiBOdW1iZXJcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHlwZSgpOiBDb250cmFjdC5NYXJrVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29sb3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xvcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHVwbGVJZCgpOiBOdW1iZXIgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R1cGxlSWQ7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sdW1uIGltcGxlbWVudHMgQ29udHJhY3QuQ29sdW1uIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9maWVsZE5hbWU6IHN0cmluZyxcclxuICAgIHByaXZhdGUgX2RhdGFUeXBlOiBDb250cmFjdC5EYXRhVHlwZSwgLy8gVE9ETzogdGhpcyBzaG91ZGwgYmUgYW4gZW51bSB0eXBlXHJcbiAgICBwcml2YXRlIF9pc1JlZmVyZW5jZWQ6IGJvb2xlYW4sXHJcbiAgICBwcml2YXRlIF9pbmRleDogbnVtYmVyKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpZWxkTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkTmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGF0YVR5cGUoKTogQ29udHJhY3QuRGF0YVR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc1JlZmVyZW5jZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNSZWZlcmVuY2VkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpbmRleCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2luZGV4O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFWYWx1ZSBpbXBsZW1lbnRzIENvbnRyYWN0LkRhdGFWYWx1ZSB7XHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdmFsdWU6IGFueSxcclxuICAgIHByaXZhdGUgX2Zvcm1hdHRlZFZhbHVlOiBzdHJpbmcpIHt9XHJcblxyXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtYXR0ZWRWYWx1ZTtcclxuICB9XHJcbiAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL01vZGVscy9HZXREYXRhTW9kZWxzLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBEYXRhVGFibGUgYXMgRGF0YVRhYmxlSW50ZXJuYWxDb250cmFjdCxcclxuICBFeGVjdXRlUGFyYW1ldGVycyxcclxuICBIaWdobGlnaHRlZE1hcmtzVGFibGUsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFNlbGVjdGVkTWFya3NUYWJsZSxcclxuICBVbmRlcmx5aW5nRGF0YVRhYmxlLFxyXG4gIFZlcmJJZCxcclxuICBWaXN1YWxJZCxcclxufSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgQ29sdW1uLCBEYXRhVGFibGUsIERhdGFWYWx1ZSwgTWFya0luZm8gfSBmcm9tICcuLi8uLi9Nb2RlbHMvR2V0RGF0YU1vZGVscyc7XHJcbmltcG9ydCB7IEdldERhdGFTZXJ2aWNlLCBHZXREYXRhVHlwZSB9IGZyb20gJy4uL0dldERhdGFTZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZVJlZ2lzdHJ5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBHZXREYXRhU2VydmljZUltcGwgaW1wbGVtZW50cyBHZXREYXRhU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7XHJcbiAgICB0aGlzLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuR2V0RGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVbmRlcmx5aW5nRGF0YUFzeW5jKFxyXG4gICAgdmlzdWFsSWQ6IFZpc3VhbElkLFxyXG4gICAgZ2V0VHlwZTogR2V0RGF0YVR5cGUsXHJcbiAgICBpZ25vcmVBbGlhc2VzOiBib29sZWFuLFxyXG4gICAgaWdub3JlU2VsZWN0aW9uOiBib29sZWFuLFxyXG4gICAgaW5jbHVkZUFsbENvbHVtbnM6IGJvb2xlYW4sXHJcbiAgICBtYXhSb3dzOiBudW1iZXIpOiBQcm9taXNlPERhdGFUYWJsZT4ge1xyXG4gICAgICAvLyBDcmVhdGUgYWxsIG9mIG91ciBwYXJhbWV0ZXJzXHJcbiAgICAgIGNvbnN0IHZlcmIgPSBnZXRUeXBlID09PSBHZXREYXRhVHlwZS5TdW1tYXJ5ID8gVmVyYklkLkdldERhdGFTdW1tYXJ5RGF0YSA6IFZlcmJJZC5HZXRVbmRlcmx5aW5nRGF0YTtcclxuICAgICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7fTtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5JZ25vcmVBbGlhc2VzXSA9IGlnbm9yZUFsaWFzZXM7XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuSWdub3JlU2VsZWN0aW9uXSA9IGlnbm9yZVNlbGVjdGlvbjtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5JbmNsdWRlQWxsQ29sdW1uc10gPSBpbmNsdWRlQWxsQ29sdW1ucztcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5NYXhSb3dzXSA9IG1heFJvd3M7XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKHZlcmIsIHBhcmFtZXRlcnMpLnRoZW48RGF0YVRhYmxlPihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2UucmVzdWx0IGFzIFVuZGVybHlpbmdEYXRhVGFibGU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1Jlc3VsdHNUYWJsZShyZXNwb25zZURhdGEuZGF0YSwgcmVzcG9uc2VEYXRhLmlzU3VtbWFyeSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRNYXJrc0FzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHsgW1BhcmFtZXRlcklkLlZpc3VhbElkXTogdmlzdWFsSWQgfTtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLkdldFNlbGVjdGVkTWFya3MsIHBhcmFtZXRlcnMpLnRoZW48Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlc3BvbnNlLnJlc3VsdCBhcyBTZWxlY3RlZE1hcmtzVGFibGU7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF0YTogcmVzcG9uc2VEYXRhLmRhdGEubWFwKHRhYmxlID0+IHRoaXMucHJvY2Vzc1Jlc3VsdHNUYWJsZSh0YWJsZSwgdHJ1ZSkpXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIaWdobGlnaHRlZE1hcmtzQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkKTogUHJvbWlzZTxDb250cmFjdC5NYXJrc0NvbGxlY3Rpb24+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0geyBbUGFyYW1ldGVySWQuVmlzdWFsSWRdOiB2aXN1YWxJZCB9O1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuR2V0SGlnaGxpZ2h0ZWRNYXJrcywgcGFyYW1ldGVycykudGhlbjxDb250cmFjdC5NYXJrc0NvbGxlY3Rpb24+KHJlc3BvbnNlID0+IHtcclxuICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2UucmVzdWx0IGFzIEhpZ2hsaWdodGVkTWFya3NUYWJsZTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBkYXRhOiByZXNwb25zZURhdGEuZGF0YS5tYXAodGFibGUgPT4gdGhpcy5wcm9jZXNzUmVzdWx0c1RhYmxlKHRhYmxlLCB0cnVlKSlcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERhdGFTb3VyY2VEYXRhQXN5bmMoXHJcbiAgICBkYXRhU291cmNlSWQ6IHN0cmluZyxcclxuICAgIGlnbm9yZUFsaWFzZXM6IGJvb2xlYW4sXHJcbiAgICBtYXhSb3dzOiBudW1iZXIsXHJcbiAgICBjb2x1bW5zVG9JbmNsdWRlOiBBcnJheTxzdHJpbmc+KTogUHJvbWlzZTxEYXRhVGFibGU+IHtcclxuICAgICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7XHJcbiAgICAgICAgW1BhcmFtZXRlcklkLkRhdGFTb3VyY2VJZF06IGRhdGFTb3VyY2VJZCxcclxuICAgICAgICBbUGFyYW1ldGVySWQuSWdub3JlQWxpYXNlc106IGlnbm9yZUFsaWFzZXMsXHJcbiAgICAgICAgW1BhcmFtZXRlcklkLk1heFJvd3NdOiBtYXhSb3dzLFxyXG4gICAgICAgIFtQYXJhbWV0ZXJJZC5Db2x1bW5zVG9JbmNsdWRlXTogY29sdW1uc1RvSW5jbHVkZSxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLkdldERhdGFTb3VyY2VEYXRhLCBwYXJhbWV0ZXJzKS50aGVuPERhdGFUYWJsZT4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlc3BvbnNlLnJlc3VsdCBhcyBVbmRlcmx5aW5nRGF0YVRhYmxlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NSZXN1bHRzVGFibGUocmVzcG9uc2VEYXRhLmRhdGEsIGZhbHNlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIHByb3RlY3RlZCBwcm9jZXNzUmVzdWx0c1RhYmxlKHJlc3BvbnNlRGF0YTogRGF0YVRhYmxlSW50ZXJuYWxDb250cmFjdCwgaXNTdW1tYXJ5OiBib29sZWFuKTogRGF0YVRhYmxlIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZURhdGEuaGVhZGVycy5tYXAoaCA9PiBuZXcgQ29sdW1uKGguZmllbGRDYXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cmFjdC5EYXRhVHlwZS5TdHJpbmcgLypoLkRhdGFUeXBlKi8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGguaXNSZWZlcmVuY2VkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLmluZGV4KSk7XHJcbiAgICAvLyBUT0RPIFRoaXMgc2hvdWxkIGJlIGNvbnRyb2xsZWQgYnkgYSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGlzIGFwaSB3aWxsIHJlc3BvbmQgbWFya3MgaW5mbyBvciBub3RcclxuICAgIGxldCBtYXJrcztcclxuICAgIGlmIChyZXNwb25zZURhdGEubWFya3MpIHtcclxuICAgICAgbWFya3MgPSByZXNwb25zZURhdGEubWFya3MubWFwKGggPT4gbmV3IE1hcmtJbmZvKGgudHlwZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLmNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgudHVwbGVJZCkpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGFibGUgPSByZXNwb25zZURhdGEuZGF0YVRhYmxlLm1hcChyb3cgPT4ge1xyXG4gICAgICByZXR1cm4gcm93Lm1hcChjZWxsID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGFWYWx1ZShjZWxsLnZhbHVlLCBjZWxsLmZvcm1hdHRlZFZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAobWFya3MpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRhVGFibGUodGFibGUsIGhlYWRlcnMsIHRhYmxlLmxlbmd0aCwgaXNTdW1tYXJ5LCBtYXJrcyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IERhdGFUYWJsZSh0YWJsZSwgaGVhZGVycywgdGFibGUubGVuZ3RoLCBpc1N1bW1hcnkpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvR2V0RGF0YVNlcnZpY2VJbXBsLnRzXG4gKiovIiwiaW1wb3J0IHsgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLCBNb2RlbCwgTm90aWZpY2F0aW9uLCBOb3RpZmljYXRpb25JZCB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlLCBVbnJlZ2lzdGVyRm4gfSBmcm9tICcuLi9Ob3RpZmljYXRpb25TZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZVJlZ2lzdHJ5JztcclxuXHJcbmNsYXNzIFJlZ2lzdHJhdGlvbiB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZmlsdGVyRm46IChub3RpZmljYXRpb25Nb2RlbDogTW9kZWwpID0+IGJvb2xlYW4sXHJcbiAgICBwcml2YXRlIF9jYWxsYmFja0ZuOiAobm90aWZpY2F0aW9uTW9kZWw6IE1vZGVsKSA9PiB2b2lkKSB7XHJcbiAgICAgIC8vIE5vdGhpbmcgSGVyZVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbk1vZGVsOiBNb2RlbCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2ZpbHRlckZuKG5vdGlmaWNhdGlvbk1vZGVsKSkge1xyXG4gICAgICB0aGlzLl9jYWxsYmFja0ZuKG5vdGlmaWNhdGlvbk1vZGVsKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIE5vdGlmaWNhdGlvblNlcnZpY2Uge1xyXG4gIHByaXZhdGUgX2hhbmRsZXJzOiB7IFtub3RpZmljYXRpb25JZDogc3RyaW5nXTogQXJyYXk8UmVnaXN0cmF0aW9uPiB9O1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBkaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXIpIHtcclxuICAgIHRoaXMuX2hhbmRsZXJzID0ge307XHJcbiAgICB0aGlzLmRpc3BhdGNoZXIucmVnaXN0ZXJOb3RpZmljYXRpb25IYW5kbGVyKHRoaXMub25Ob3RpZmljYXRpb24uYmluZCh0aGlzKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNlcnZpY2VOYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gU2VydmljZU5hbWVzLk5vdGlmaWNhdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3RlckhhbmRsZXIoaWQ6IE5vdGlmaWNhdGlvbklkLCBmaWx0ZXJGbjogKG1vZGVsOiBNb2RlbCkgPT4gYm9vbGVhbiwgaGFuZGxlcjogKG1vZGVsOiBNb2RlbCkgPT4gdm9pZCk6IFVucmVnaXN0ZXJGbiB7XHJcbiAgICBjb25zdCBoYW5kbGVycyA9IHRoaXMuX2hhbmRsZXJzW2lkXSB8fCBuZXcgQXJyYXk8UmVnaXN0cmF0aW9uPigpO1xyXG4gICAgY29uc3QgcmVnaXN0cmF0aW9uID0gbmV3IFJlZ2lzdHJhdGlvbihmaWx0ZXJGbiwgaGFuZGxlcik7XHJcbiAgICBoYW5kbGVycy5wdXNoKHJlZ2lzdHJhdGlvbik7XHJcbiAgICB0aGlzLl9oYW5kbGVyc1tpZF0gPSBoYW5kbGVycztcclxuICAgIHJldHVybiAoKSA9PiB0aGlzLnJlbW92ZVJlZ2lzdHJhdGlvbihpZCwgcmVnaXN0cmF0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzSGFuZGxlcnNGb3JOb3RpZmljYXRpb25UeXBlKGlkOiBOb3RpZmljYXRpb25JZCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hhbmRsZXJzLmhhc093blByb3BlcnR5KGlkKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5oYXNIYW5kbGVyc0Zvck5vdGlmaWNhdGlvblR5cGUobm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbklkKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gR28gdGhyb3VnaCBhbmQgY2hlY2sgZm9yIGFsbCB0aGUgaGFuZGxlcnMgb2YgdGhpcyBwYXJ0aWN1bGFyIG5vdGlmaWNhdGlvblxyXG4gICAgdGhpcy5faGFuZGxlcnNbbm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbklkXS5mb3JFYWNoKGggPT4gaC5vbk5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZGF0YSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVSZWdpc3RyYXRpb24oaWQ6IE5vdGlmaWNhdGlvbklkLCByZWdpc3RyYXRpb246IFJlZ2lzdHJhdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmhhc0hhbmRsZXJzRm9yTm90aWZpY2F0aW9uVHlwZShpZCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2hhbmRsZXJzW2lkXSA9IHRoaXMuX2hhbmRsZXJzW2lkXS5maWx0ZXIocmVnID0+IHJlZyAhPT0gcmVnaXN0cmF0aW9uKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL05vdGlmaWNhdGlvblNlcnZpY2VJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBFeGVjdXRlUGFyYW1ldGVycyxcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXIsXHJcbiAgTW9kZWwsXHJcbiAgUGFyYW1ldGVySWQsXHJcbiAgUGFyYW1ldGVySW5mbyxcclxuICBTaGVldFBhdGgsXHJcbiAgVmVyYklkLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgUGFyYW1ldGVySW1wbCB9IGZyb20gJy4uLy4uL0ltcGwvUGFyYW1ldGVySW1wbCc7XHJcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gJy4uLy4uL1BhcmFtZXRlcic7XHJcbmltcG9ydCB7IFBhcmFtZXRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vUGFyYW1ldGVyc1NlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGNsYXNzIFBhcmFtZXRlcnNTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIFBhcmFtZXRlcnNTZXJ2aWNlIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBkaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXIpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuUGFyYW1ldGVycztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRQYXJhbWV0ZXJzRm9yU2hlZXRBc3luYyhzaGVldFBhdGg6IFNoZWV0UGF0aCwgc2hlZXQ6IENvbnRyYWN0LlNoZWV0KTogUHJvbWlzZTxBcnJheTxQYXJhbWV0ZXI+PiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0ge1xyXG4gICAgICBbUGFyYW1ldGVySWQuU2hlZXRQYXRoXTogc2hlZXRQYXRoXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuR2V0UGFyYW1ldGVyc0ZvclNoZWV0LCBwYXJhbWV0ZXJzKS50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgLy8gVE9ETyAtIENoZWNrIGZvciBlcnJvclxyXG5cclxuICAgICAgY29uc3QgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0IGFzIEFycmF5PFBhcmFtZXRlckluZm8+O1xyXG4gICAgICByZXR1cm4gcmVzdWx0Lm1hcChwYXJhbWV0ZXJJbmZvID0+IHtcclxuICAgICAgICBjb25zdCBpbXBsID0gbmV3IFBhcmFtZXRlckltcGwocGFyYW1ldGVySW5mbyk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXIoaW1wbCwgc2hlZXQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVBhcmFtZXRlclZhbHVlQXN5bmMoZmllbGROYW1lOiBzdHJpbmcsIG5ld1ZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPFBhcmFtZXRlckluZm8+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7XHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5QYXJhbWV0ZXJGaWVsZE5hbWVdOiBmaWVsZE5hbWUsXHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5QYXJhbWV0ZXJWYWx1ZV06IG5ld1ZhbHVlXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuQ2hhbmdlUGFyYW1ldGVyVmFsdWUsIHBhcmFtZXRlcnMpLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQgYXMgUGFyYW1ldGVySW5mbztcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbmRQYXJhbWV0ZXJCeU5hbWVBc3luYyhuYW1lOiBzdHJpbmcsIHNoZWV0OiBDb250cmFjdC5TaGVldCk6IFByb21pc2U8UGFyYW1ldGVyIHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5maW5kUGFyYW1ldGVyQXN5bmMoc2hlZXQsIG5hbWUsIHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmluZFBhcmFtZXRlckJ5R2xvYmFsRmllbGROYW1lQXN5bmMoZmllbGROYW1lOiBzdHJpbmcsIHNoZWV0OiBDb250cmFjdC5TaGVldCk6IFByb21pc2U8UGFyYW1ldGVyIHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5maW5kUGFyYW1ldGVyQXN5bmMoc2hlZXQsIHVuZGVmaW5lZCwgZmllbGROYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZFBhcmFtZXRlckFzeW5jKFxyXG4gICAgc2hlZXQ6IENvbnRyYWN0LlNoZWV0LFxyXG4gICAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBQcm9taXNlPFBhcmFtZXRlciB8IHVuZGVmaW5lZD4ge1xyXG4gICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7fTtcclxuICAgIGlmIChuYW1lICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5QYXJhbWV0ZXJDYXB0aW9uXSA9IG5hbWU7XHJcbiAgICB9IGVsc2UgaWYgKGZpZWxkTmFtZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuUGFyYW1ldGVyRmllbGROYW1lXSA9IGZpZWxkTmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24ubWlzc2luZ1BhcmFtZXRlcihbJ2ZpZWxkIG5hbWUgb3IgY2FwdGlvbiddKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLkZpbmRQYXJhbWV0ZXIsIHBhcmFtZXRlcnMpLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICBjb25zdCBpbnN0YW5jZU9mUGFyYW1ldGVySW5mbyA9IChvYmplY3Q6IE1vZGVsKTogb2JqZWN0IGlzIFBhcmFtZXRlckluZm8gPT4ge1xyXG4gICAgICAgIHJldHVybiAnZmllbGROYW1lJyBpbiBvYmplY3Q7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIHRvIHNlZSBpZiB3ZSBnb3QgYSB2YWxpZCByZXNwb25zZSBiYWNrIGFnYWluXHJcbiAgICAgIGlmIChpbnN0YW5jZU9mUGFyYW1ldGVySW5mbyhyZXNwb25zZS5yZXN1bHQpKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0IGFzIFBhcmFtZXRlckluZm87XHJcbiAgICAgICAgY29uc3QgaW1wbCA9IG5ldyBQYXJhbWV0ZXJJbXBsKHJlc3VsdCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXIoaW1wbCwgc2hlZXQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uSWQsIFBhcmFtZXRlckluZm8gfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBQYXJhbSB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQgeyBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MgfSBmcm9tICcuLi9FbnVtTWFwcGluZ3MvSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzJztcclxuaW1wb3J0IHsgUGFyYW1ldGVyQ2hhbmdlZEV2ZW50IH0gZnJvbSAnLi4vRXZlbnRzL1BhcmFtZXRlckNoYW5nZWRFdmVudCc7XHJcbmltcG9ydCB7IERhdGFWYWx1ZSB9IGZyb20gJy4uL01vZGVscy9HZXREYXRhTW9kZWxzJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL05vdGlmaWNhdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL1BhcmFtZXRlcnNTZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5LCBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnknO1xyXG5pbXBvcnQgeyBTaW5nbGVFdmVudE1hbmFnZXIgfSBmcm9tICcuLi9TaW5nbGVFdmVudE1hbmFnZXInO1xyXG5pbXBvcnQgeyBTaW5nbGVFdmVudE1hbmFnZXJJbXBsIH0gZnJvbSAnLi9TaW5nbGVFdmVudE1hbmFnZXJJbXBsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXJJbXBsIHtcclxuICBwcml2YXRlIF9hbGxvd2FibGVWYWx1ZXM6IENvbnRyYWN0LlBhcmFtZXRlckRvbWFpblJlc3RyaWN0aW9uO1xyXG4gIHByaXZhdGUgX2dsb2JhbEZpZWxkTmFtZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3BhcmFtZXRlckluZm86IFBhcmFtZXRlckluZm87XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbWV0ZXJJbmZvOiBQYXJhbWV0ZXJJbmZvKSB7XHJcbiAgICB0aGlzLnNldFBhcmFtZXRlckluZm8ocGFyYW1ldGVySW5mbyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wYXJhbWV0ZXJJbmZvLm5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGN1cnJlbnRWYWx1ZSgpOiBEYXRhVmFsdWUge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRhVmFsdWUodGhpcy5fcGFyYW1ldGVySW5mby5jdXJyZW50VmFsdWUudmFsdWUsIHRoaXMuX3BhcmFtZXRlckluZm8uY3VycmVudFZhbHVlLmZvcm1hdHRlZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGF0YVR5cGUoKTogQ29udHJhY3QuRGF0YVR5cGUge1xyXG4gICAgcmV0dXJuIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5kYXRhVHlwZS5jb252ZXJ0KHRoaXMuX3BhcmFtZXRlckluZm8uZGF0YVR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dsb2JhbEZpZWxkTmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWxsb3dhYmxlVmFsdWVzKCk6IENvbnRyYWN0LlBhcmFtZXRlckRvbWFpblJlc3RyaWN0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLl9hbGxvd2FibGVWYWx1ZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlVmFsdWVBc3luYyhuZXdWYWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IERhdGUpOiBQcm9taXNlPERhdGFWYWx1ZT4ge1xyXG4gICAgbGV0IGNvZXJjZWRWYWx1ZSA9IFBhcmFtLnNlcmlhbGl6ZVBhcmFtdGVyVmFsdWUobmV3VmFsdWUpO1xyXG4gICAgY29uc3QgcGFyYW1ldGVyc1NlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxQYXJhbWV0ZXJzU2VydmljZT4oU2VydmljZU5hbWVzLlBhcmFtZXRlcnMpO1xyXG4gICAgcmV0dXJuIHBhcmFtZXRlcnNTZXJ2aWNlLmNoYW5nZVBhcmFtZXRlclZhbHVlQXN5bmModGhpcy5fZ2xvYmFsRmllbGROYW1lLCBjb2VyY2VkVmFsdWUpLnRoZW4ocGFyYW1ldGVySW5mbyA9PiB7XHJcbiAgICAgIHRoaXMuc2V0UGFyYW1ldGVySW5mbyhwYXJhbWV0ZXJJbmZvKTtcclxuICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFZhbHVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIZWxwZXIgbWV0aG9kIHdoaWNoIGdvZXMgdGhyb3VnaCBhbmQgcmVnaXN0ZXJzIGVhY2ggZXZlbnQgdHlwZSB0aGlzIGltcGwga25vd3MgYWJvdXRcclxuICAgKiB3aXRoIHRoZSBOb3RpZmljYXRpb25TZXJ2aWNlLiBJdCByZXR1cm5zIGFuIGFycmF5IG9mIFNpbmdsZUV2ZW50TWFuYWdlciBvYmplY3RzIHdoaWNoXHJcbiAgICogY2FuIHRoZW4gYmUgcGFzc2VkIHRvIGFuIEV2ZW50TGlzdGVuZXJNYW5hZ2VyIHRvIGhhbmRsZSB1c2VyIHJlZ2lzdHJhdGlvbiAvIHVucmVnaXN0cmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNoZWV0IFRoZSBzaGVldCBvYmplY3Qgd2hpY2ggd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoZSBldmVudCBub3RpZmljYXRpb25zXHJcbiAgICogQHJldHVybnMge0FycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj59IENvbGxlY3Rpb24gb2YgZXZlbnQgbWFuYWdlcnMgdG8gcGFzcyB0byBhbiBFdmVudExpc3RlbmVyTWFuYWdlclxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbml0aWFsaXplRXZlbnRzKHNoZWV0OiBDb250cmFjdC5TaGVldCk6IEFycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj4ge1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IG5ldyBBcnJheTxTaW5nbGVFdmVudE1hbmFnZXI+KCk7XHJcbiAgICBsZXQgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBub3RpZmljYXRpb25TZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8Tm90aWZpY2F0aW9uU2VydmljZT4oU2VydmljZU5hbWVzLk5vdGlmaWNhdGlvbik7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgdGhpcyBzZXJ2aWNlIHJlZ2lzdGVyZWQsIGp1c3QgcmV0dXJuXHJcbiAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEluaXRpYWxpemUgYWxsIG9mIHRoZSBldmVudCBtYW5hZ2VycyB3ZSdsbCBuZWVkIChvbmUgZm9yIGVhY2ggZXZlbnQgdHlwZSlcclxuICAgIGNvbnN0IHBhcmFtZXRlckV2ZW50ID0gbmV3IFNpbmdsZUV2ZW50TWFuYWdlckltcGw8UGFyYW1ldGVyQ2hhbmdlZEV2ZW50PihDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlLlBhcmFtZXRlckNoYW5nZWQpO1xyXG4gICAgbm90aWZpY2F0aW9uU2VydmljZS5yZWdpc3RlckhhbmRsZXIoTm90aWZpY2F0aW9uSWQuUGFyYW1ldGVyQ2hhbmdlZCwgKG1vZGVsKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IG1vZGVsIGFzIHN0cmluZztcclxuICAgICAgcmV0dXJuIGZpZWxkTmFtZSA9PT0gdGhpcy5fZ2xvYmFsRmllbGROYW1lO1xyXG4gICAgfSwgKGZpZWxkTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHBhcmFtZXRlckV2ZW50LnRyaWdnZXJFdmVudCgoKSA9PiBuZXcgUGFyYW1ldGVyQ2hhbmdlZEV2ZW50KGZpZWxkTmFtZSwgc2hlZXQpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJlc3VsdHMucHVzaChwYXJhbWV0ZXJFdmVudCk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFBhcmFtZXRlckluZm8ocGFyYW1ldGVySW5mbzogUGFyYW1ldGVySW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5fcGFyYW1ldGVySW5mbyA9IHBhcmFtZXRlckluZm87XHJcbiAgICB0aGlzLl9nbG9iYWxGaWVsZE5hbWUgPSBwYXJhbWV0ZXJJbmZvLmZpZWxkTmFtZTtcclxuXHJcbiAgICBjb25zdCB0eXBlID0gSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmFsbG93YWJsZVZhbHVlcy5jb252ZXJ0KHBhcmFtZXRlckluZm8uYWxsb3dhYmxlVmFsdWVzVHlwZSk7XHJcbiAgICBsZXQgbGlzdFZhbHVlczogQXJyYXk8RGF0YVZhbHVlPiB8IHVuZGVmaW5lZDtcclxuICAgIGxldCBtaW5WYWx1ZTogRGF0YVZhbHVlIHwgdW5kZWZpbmVkO1xyXG4gICAgbGV0IG1heFZhbHVlOiBEYXRhVmFsdWUgfCB1bmRlZmluZWQ7XHJcbiAgICBsZXQgc3RlcFNpemU6IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIGxldCBkYXRlU3RlcFBlcmlvZDogQ29udHJhY3QuUGVyaW9kVHlwZSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBpZiAodHlwZSA9PT0gQ29udHJhY3QuUGFyYW1ldGVyVmFsdWVUeXBlLkxpc3QpIHtcclxuICAgICAgY29uc3QgdmFsdWVzID0gcGFyYW1ldGVySW5mby5hbGxvd2FibGVWYWx1ZXMgfHwgW107XHJcbiAgICAgIGxpc3RWYWx1ZXMgPSB2YWx1ZXMubWFwKHZhbCA9PiBuZXcgRGF0YVZhbHVlKHZhbC52YWx1ZSwgdmFsLmZvcm1hdHRlZFZhbHVlKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IENvbnRyYWN0LlBhcmFtZXRlclZhbHVlVHlwZS5SYW5nZSkge1xyXG4gICAgICBtaW5WYWx1ZSA9IHBhcmFtZXRlckluZm8ubWluVmFsdWUgJiYgbmV3IERhdGFWYWx1ZShwYXJhbWV0ZXJJbmZvLm1pblZhbHVlLnZhbHVlLCBwYXJhbWV0ZXJJbmZvLm1pblZhbHVlLmZvcm1hdHRlZFZhbHVlKTtcclxuICAgICAgbWF4VmFsdWUgPSBwYXJhbWV0ZXJJbmZvLm1heFZhbHVlICYmIG5ldyBEYXRhVmFsdWUocGFyYW1ldGVySW5mby5tYXhWYWx1ZS52YWx1ZSwgcGFyYW1ldGVySW5mby5tYXhWYWx1ZS5mb3JtYXR0ZWRWYWx1ZSk7XHJcbiAgICAgIHN0ZXBTaXplID0gcGFyYW1ldGVySW5mby5zdGVwU2l6ZTtcclxuICAgICAgZGF0ZVN0ZXBQZXJpb2QgPSBwYXJhbWV0ZXJJbmZvLmRhdGVTdGVwUGVyaW9kICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmRhdGVTdGVwUGVyaW9kLmNvbnZlcnQocGFyYW1ldGVySW5mby5kYXRlU3RlcFBlcmlvZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fYWxsb3dhYmxlVmFsdWVzID0ge1xyXG4gICAgICB0eXBlOiB0eXBlLFxyXG4gICAgICBhbGxvd2FibGVWYWx1ZXM6IGxpc3RWYWx1ZXMsXHJcbiAgICAgIG1pblZhbHVlOiBtaW5WYWx1ZSxcclxuICAgICAgbWF4VmFsdWU6IG1heFZhbHVlLFxyXG4gICAgICBzdGVwU2l6ZTogc3RlcFNpemUsXHJcbiAgICAgIGRhdGVTdGVwUGVyaW9kOiBkYXRlU3RlcFBlcmlvZFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9JbXBsL1BhcmFtZXRlckltcGwudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuaW1wb3J0IHsgUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9QYXJhbWV0ZXJzU2VydmljZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSwgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvU2VydmljZVJlZ2lzdHJ5JztcclxuaW1wb3J0IHsgVGFibGVhdVNoZWV0RXZlbnQgfSBmcm9tICcuL1RhYmxlYXVTaGVldEV2ZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXJDaGFuZ2VkRXZlbnQgZXh0ZW5kcyBUYWJsZWF1U2hlZXRFdmVudCBpbXBsZW1lbnRzIENvbnRyYWN0LlBhcmFtZXRlckNoYW5nZWRFdmVudCB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgUEFSQU1fTk9UX0ZPVU5EOiBzdHJpbmcgPSAnVW5hYmxlIHRvIGZpbmQgcGFyYW1ldGVyJztcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZ2xvYmFsRmllbGROYW1lOiBzdHJpbmcsIHNoZWV0OiBDb250cmFjdC5TaGVldCkge1xyXG4gICAgc3VwZXIoQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZS5QYXJhbWV0ZXJDaGFuZ2VkLCBzaGVldCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGFyYW1ldGVyQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5QYXJhbWV0ZXI+IHtcclxuICAgIC8vIENhbGwgZG93biB0byBvdXIgc2VydmljZSB0byBnZXQgdGhlIHBhcmFtZXRlciBiYWNrIHZpYSBpdHMgZmllbGQgbmFtZVxyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPFBhcmFtZXRlcnNTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuUGFyYW1ldGVycyk7XHJcbiAgICByZXR1cm4gc2VydmljZS5maW5kUGFyYW1ldGVyQnlHbG9iYWxGaWVsZE5hbWVBc3luYyh0aGlzLl9nbG9iYWxGaWVsZE5hbWUsIHRoaXMuc2hlZXQpLnRoZW4ocGFyYW1ldGVyID0+IHtcclxuICAgICAgaWYgKHBhcmFtZXRlciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5lcnJvcihQYXJhbWV0ZXJDaGFuZ2VkRXZlbnQuUEFSQU1fTk9UX0ZPVU5EKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHBhcmFtZXRlcjtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9QYXJhbWV0ZXJDaGFuZ2VkRXZlbnQudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRXZlbnRMaXN0ZW5lck1hbmFnZXIgfSBmcm9tICcuL0V2ZW50TGlzdGVuZXJNYW5hZ2VyJztcclxuaW1wb3J0IHsgUGFyYW1ldGVySW1wbCB9IGZyb20gJy4vSW1wbC9QYXJhbWV0ZXJJbXBsJztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgUGFyYW1ldGVyIGNvbnRyYWN0LiBDYWxscyBkb3duIHRvIHRoZSBpbXBsXHJcbiAqIGNsYXNzIGZvciBhbG1vc3QgYWxsIG9mIHRoZSB3b3JrIGl0IGRvZXMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVyIGV4dGVuZHMgRXZlbnRMaXN0ZW5lck1hbmFnZXIgaW1wbGVtZW50cyBDb250cmFjdC5QYXJhbWV0ZXIge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmFtZXRlckltcGw6IFBhcmFtZXRlckltcGwsIHNoZWV0OiBDb250cmFjdC5TaGVldCkge1xyXG4gICAgc3VwZXIoKTtcclxuXHJcbiAgICAvLyBJbml0aWFsaXplIG91ciBldmVudCBoYW5kbGluZyBmb3IgdGhpcyBjbGFzc1xyXG4gICAgdGhpcy5wYXJhbWV0ZXJJbXBsLmluaXRpYWxpemVFdmVudHMoc2hlZXQpLmZvckVhY2goZSA9PiB0aGlzLmFkZE5ld0V2ZW50VHlwZShlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckltcGwubmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY3VycmVudFZhbHVlKCk6IENvbnRyYWN0LkRhdGFWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJJbXBsLmN1cnJlbnRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGF0YVR5cGUoKTogQ29udHJhY3QuRGF0YVR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVySW1wbC5kYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWxsb3dhYmxlVmFsdWVzKCk6IENvbnRyYWN0LlBhcmFtZXRlckRvbWFpblJlc3RyaWN0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckltcGwuYWxsb3dhYmxlVmFsdWVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVySW1wbC5pZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VWYWx1ZUFzeW5jKG5ld1ZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSk6IFByb21pc2U8Q29udHJhY3QuRGF0YVZhbHVlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJJbXBsLmNoYW5nZVZhbHVlQXN5bmMobmV3VmFsdWUpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1BhcmFtZXRlci50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7XHJcbiAgRXhlY3V0ZVBhcmFtZXRlcnMsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLFxyXG4gIFNlbGVjdGlvblVwZGF0ZVR5cGUgYXMgU2VsZWN0aW9uVXBkYXRlVHlwZUludGVybmFsLFxyXG4gIFZlcmJJZCxcclxuICBWaXN1YWxJZFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5pbXBvcnQgeyBEaW1lbnNpb25TZWxlY3Rpb25Nb2RlbCxcclxuICBIaWVyYXJjaGljYWxTZWxlY3Rpb25Nb2RlbCxcclxuICBSYW5nZVNlbGVjdGlvbk1vZGVsLFxyXG4gIFNlbGVjdGlvbk1vZGVsc0NvbnRhaW5lcixcclxuICBUdXBsZVNlbGVjdGlvbk1vZGVsLFxyXG4gIFZhbHVlU2VsZWN0aW9uTW9kZWxcclxufSBmcm9tICcuLi8uLi9Nb2RlbHMvU2VsZWN0aW9uTW9kZWxzJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL1NlbGVjdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvblNlcnZpY2VJbXBsIGltcGxlbWVudHMgU2VsZWN0aW9uU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7XHJcbiAgICB0aGlzLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuU2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kIHRvIGNsZWFyIGFsbCB0aGUgc2VsZWN0ZWQgbWFya3MgZm9yIHRoZSBnaXZlbiB3b3Jrc2hlZXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdmlzdWFsSWRcclxuICAgKi9cclxuICBwdWJsaWMgY2xlYXJTZWxlY3RlZE1hcmtzQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHtbUGFyYW1ldGVySWQuVmlzdWFsSWRdOiB2aXN1YWxJZH07XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5DbGVhclNlbGVjdGVkTWFya3MsIHBhcmFtZXRlcnMpLnRoZW48dm9pZD4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gOyAvLyBFeHBlY3RpbmcgYW4gZW1wdHkgbW9kZWwgYW5kIGhlbmNlIHRoZSB2b2lkIHJlc3BvbnNlLlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gc2VsZWN0IG1hcmtzIGZvciB0aGUgZ2l2ZW4gd29ya3NoZWV0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHZpc3VhbElkXHJcbiAgICogQHBhcmFtIHNlbGVjdGlvbkNyaXRlcmlhXHJcbiAgICogQHBhcmFtIHNlbGVjdGlvblVwZGF0ZVR5cGVcclxuICAgKi9cclxuICBwdWJsaWMgc2VsZWN0TWFya3NCeVZhbHVlQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Dcml0ZXJpYXM6IEFycmF5PENvbnRyYWN0LlNlbGVjdGlvbkNyaXRlcmlhPixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVXBkYXRlVHlwZTogQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHNlbGVjdGlvbkNyaXRlcmlhcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5pbnZhbGlkKFsnU2VsZWN0aW9uIGNyaXRlcmlhJywgJ1NlbGVjdGlvbnMgbWlzc2luZy4nXSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0aW9uVHlwZTogc3RyaW5nID0gdGhpcy52YWxpZGF0ZVNlbGVjdGlvblVwZGF0ZVR5cGUoc2VsZWN0aW9uVXBkYXRlVHlwZSk7XHJcbiAgICBsZXQgc2VsZWN0aW9uQ3JpdGVyaWFUeXBlOiBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUgPSB0aGlzLnZhbGlkYXRlU2VsZWN0aW9uQ3JpdGVyaWEoc2VsZWN0aW9uQ3JpdGVyaWFzWzBdKTtcclxuICAgIGxldCBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lcjogU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyID0gdGhpcy5wYXJzZVNlbGVjdGlvbk1hcmtzKHNlbGVjdGlvbkNyaXRlcmlhcywgc2VsZWN0aW9uQ3JpdGVyaWFUeXBlKTtcclxuXHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHtcclxuICAgICAgW1BhcmFtZXRlcklkLlZpc3VhbElkXTogdmlzdWFsSWQsXHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5TZWxlY3Rpb25VcGRhdGVUeXBlXTogc2VsZWN0aW9uVHlwZVxyXG4gICAgfTtcclxuXHJcbiAgICBzd2l0Y2ggKHNlbGVjdGlvbkNyaXRlcmlhVHlwZSkge1xyXG4gICAgICBjYXNlIFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5IaWVyYXJjaGljYWxUeXBlOiB7XHJcbiAgICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5IaWVyVmFsU2VsZWN0aW9uTW9kZWxzXSA9IHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyLmhpZXJNb2RlbEFycjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5SYW5nZVR5cGU6IHtcclxuICAgICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLlF1YW50UmFuZ2VTZWxlY3Rpb25Nb2RlbHNdID0gc2VsZWN0aW9uTW9kZWxDb250YWluZXIucXVhbnRNb2RlbEFycjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5EaW1lbnNpb25UeXBlOiB7XHJcbiAgICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5EaW1WYWxTZWxlY3Rpb25Nb2RlbHNdID0gc2VsZWN0aW9uTW9kZWxDb250YWluZXIuZGltTW9kZWxBcnI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLlNlbGVjdEJ5VmFsdWUsIHBhcmFtZXRlcnMpLnRoZW48dm9pZD4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAvLyBFeHBlY3RpbmcgYW4gZW1wdHkgbW9kZWwgYW5kIGhlbmNlIHRoZSB2b2lkIHJlc3BvbnNlLlxyXG4gICAgICByZXR1cm47XHJcbiAgICAgIC8vIFRPRE8gSW52ZXN0aWdhdGUgdGhlIGVycm9yIHJlc3BvbnNlIHdpdGggbXVsdGlwbGUgb3V0cHV0IHBhcmFtcyBhbmQgdGhyb3cgZXJyb3IgYWNjb3JkaW5nbHkuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICogTWV0aG9kIHRvIHNlbGVjdCBtYXJrcyBmb3IgdGhlIGdpdmVuIHdvcmtzaGVldC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB2aXN1YWxJZFxyXG4gICAqIEBwYXJhbSBNYXJrSW5mb1xyXG4gICAqIEBwYXJhbSBzZWxlY3Rpb25VcGRhdGVUeXBlXHJcbiAgICovXHJcbiAgcHVibGljIHNlbGVjdE1hcmtzQnlJZEFzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya3M6IEFycmF5PENvbnRyYWN0Lk1hcmtJbmZvPixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVXBkYXRlVHlwZTogQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKG1hcmtzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWQoWydTZWxlY3Rpb24nLCAnTWFya3MgaW5mbyBtaXNzaW5nLiddKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3Rpb25UeXBlOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRlU2VsZWN0aW9uVXBkYXRlVHlwZShzZWxlY3Rpb25VcGRhdGVUeXBlKTtcclxuICAgIGxldCBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lcjogU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyID0gdGhpcy5wYXJzZVNlbGVjdGlvbklkcyhtYXJrcyk7XHJcblxyXG4gICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7XHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5WaXN1YWxJZF06IHZpc3VhbElkLFxyXG4gICAgICBbUGFyYW1ldGVySWQuU2VsZWN0aW9uVXBkYXRlVHlwZV06IHNlbGVjdGlvblR5cGUsXHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5TZWxlY3Rpb25dOiBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5zZWxlY3Rpb25cclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5TZWxlY3RCeVZhbHVlLCBwYXJhbWV0ZXJzKS50aGVuPHZvaWQ+KHJlc3BvbnNlID0+IHtcclxuICAgICAgLy8gRXhwZWN0aW5nIGFuIGVtcHR5IG1vZGVsIGFuZCBoZW5jZSB0aGUgdm9pZCByZXNwb25zZS5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgICAvLyBUT0RPIEludmVzdGlnYXRlIHRoZSBlcnJvciByZXNwb25zZSB3aXRoIG11bHRpcGxlIG91dHB1dCBwYXJhbXMgYW5kIHRocm93IGVycm9yIGFjY29yZGluZ2x5LlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gcHJlcGFyZSB0aGUgcHJlcyBtb2RlbHMgZm9yIHNlbGVjdGlvbiBieSBNYXJrc0luZm9cclxuICAgKiBAcGFyYW0gbWFya3NcclxuICAgKi9cclxuICBwcml2YXRlIHBhcnNlU2VsZWN0aW9uSWRzKG1hcmtzOiBBcnJheTxDb250cmFjdC5NYXJrSW5mbz4pOiBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIge1xyXG4gICAgbGV0IGlkczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gICAgbGV0IHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyOiBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIgPSBuZXcgU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyKCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hcmtzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCB0dXBsZUlkOiBOdW1iZXIgfCB1bmRlZmluZWQgID0gbWFya3NbaV0udHVwbGVJZDtcclxuICAgICAgaWYgKHR1cGxlSWQgIT09IHVuZGVmaW5lZCAmJiB0dXBsZUlkICE9PSBudWxsKSB7IC8vIElmIHR1cGxlIGlkIGlzIHByb3ZpZGVkIHVzZSB0aGF0IGluc3RlYWQgb2YgcGFpclxyXG4gICAgICAgICBpZHMucHVzaCh0dXBsZUlkLnRvU3RyaW5nKCkpOyAvLyBjb2xsZWN0IHRoZSB0dXBsZSBpZHNcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWQoWyd0dXBsZUlkJ10pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoaWRzLmxlbmd0aCAhPT0gMCkgeyAvLyB0dXBsZSBpZHMgYmFzZWQgc2VsZWN0aW9uXHJcbiAgICAgIGxldCB0dXBsZVNlbGVjdGlvbk1vZGVsOiBUdXBsZVNlbGVjdGlvbk1vZGVsID0gbmV3IFR1cGxlU2VsZWN0aW9uTW9kZWwoKTtcclxuICAgICAgdHVwbGVTZWxlY3Rpb25Nb2RlbC5zZWxlY3Rpb25UeXBlID0gJ3R1cGxlcyc7XHJcbiAgICAgIHR1cGxlU2VsZWN0aW9uTW9kZWwub2JqZWN0SWRzID0gaWRzO1xyXG4gICAgICBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5zZWxlY3Rpb24gPSB0dXBsZVNlbGVjdGlvbk1vZGVsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gcHJlcGFyZSB0aGUgcHJlcyBtb2RlbHMgZm9yIHNlbGVjdGlvbiBieSB2YWx1ZXMuXHJcbiAgICpcclxuICAgKiBTdXBwb3J0cyAzIHR5cGVzIGZvciBzZWxlY3Rpb246XHJcbiAgICogMSkgaGllcmFyY2hpY2FsIHZhbHVlIGJhc2VkIHNlbGVjdGlvblxyXG4gICAqIDIpIHJhbmdlIHZhbHVlIGJhc2VkIHNlbGVjdGlvblxyXG4gICAqIDMpIERpbWVuc2lvbiB2YWx1ZSBiYXNlZCBzZWxlY3Rpb25cclxuICAgKlxyXG4gICAqIEBwYXJhbSBtYXJrc1xyXG4gICAqIEBwYXJhbSBoaWVyTW9kZWxBcnJcclxuICAgKiBAcGFyYW0gZGltTW9kZWxBcnJcclxuICAgKiBAcGFyYW0gcXVhbnRNb2RlbEFyclxyXG4gICAqIEBwYXJhbSBzZWxlY3Rpb25cclxuICAgKi9cclxuICBwcml2YXRlIHBhcnNlU2VsZWN0aW9uTWFya3Moc2VsZWN0aW9uQ3JpdGVyaWFzOiBBcnJheTxDb250cmFjdC5TZWxlY3Rpb25Dcml0ZXJpYT4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblR5cGU6IFNlbGVjdGlvbkNyaXRlcmlhVHlwZSk6IFNlbGVjdGlvbk1vZGVsc0NvbnRhaW5lciB7XHJcbiAgICBsZXQgc2VsZWN0aW9uTW9kZWxDb250YWluZXI6IFNlbGVjdGlvbk1vZGVsc0NvbnRhaW5lciA9IG5ldyBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIoKTtcclxuICAgIGxldCBtaXhlZFNlbGVjdGlvbnNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0aW9uQ3JpdGVyaWFzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHN0ID0gc2VsZWN0aW9uQ3JpdGVyaWFzW2ldO1xyXG4gICAgICBpZiAoc3QuZmllbGROYW1lICYmIChzdC52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHN0LnZhbHVlICE9PSBudWxsKSkge1xyXG4gICAgICAgIGxldCBjYXRSZWdleCA9IG5ldyBSZWdFeHAoJyhcXFtbQS1aYS16MC05XStdKS4qJywgJ2cnKTtcclxuICAgICAgICBsZXQgcmFuZ2VPcHRpb246IENvbnRyYWN0LlJhbmdlVmFsdWUgPSBzdC52YWx1ZSBhcyBDb250cmFjdC5SYW5nZVZhbHVlO1xyXG4gICAgICAgIGlmIChjYXRSZWdleC50ZXN0KHN0LmZpZWxkTmFtZSkpIHsgLy8gSGllcmFyY2hpY2FsIHZhbHVlIHNlbGVjdGlvblxyXG4gICAgICAgICAgaWYgKHNlbGVjdGlvblR5cGUgPT09IFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5IaWVyYXJjaGljYWxUeXBlKSB7XHJcbiAgICAgICAgICAgIGxldCBoaWVyTW9kZWw6IEhpZXJhcmNoaWNhbFNlbGVjdGlvbk1vZGVsID0gPEhpZXJhcmNoaWNhbFNlbGVjdGlvbk1vZGVsPiB0aGlzLmFkZFRvUGFyYW1zTGlzdChzdC5maWVsZE5hbWUsIHN0LnZhbHVlKTtcclxuICAgICAgICAgICAgc2VsZWN0aW9uTW9kZWxDb250YWluZXIuaGllck1vZGVsQXJyLnB1c2goaGllck1vZGVsKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1peGVkU2VsZWN0aW9uc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICgoPENvbnRyYWN0LlJhbmdlVmFsdWU+IHJhbmdlT3B0aW9uKS5taW4gIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgJiYgKDxDb250cmFjdC5SYW5nZVZhbHVlPiByYW5nZU9wdGlvbikubWF4ICE9PSB1bmRlZmluZWQpIHsgLy8gUmFuZ2UgdmFsdWUgc2VsZWN0aW9uXHJcbiAgICAgICAgICBpZiAoc2VsZWN0aW9uVHlwZSA9PT0gU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLlJhbmdlVHlwZSkge1xyXG4gICAgICAgICAgICBsZXQgcXVhbnRNb2RlbDogUmFuZ2VTZWxlY3Rpb25Nb2RlbCA9IHRoaXMuYWRkVG9SYW5nZVBhcmFtc0xpc3Qoc3QuZmllbGROYW1lLCByYW5nZU9wdGlvbik7XHJcbiAgICAgICAgICAgIHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyLnF1YW50TW9kZWxBcnIucHVzaChxdWFudE1vZGVsKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1peGVkU2VsZWN0aW9uc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHsgLy8gRGltZW5zaW9uIHZhbHVlIHNlbGVjdGlvblxyXG4gICAgICAgICAgaWYgKHNlbGVjdGlvblR5cGUgPT09IFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5EaW1lbnNpb25UeXBlKSB7XHJcbiAgICAgICAgICAgIGxldCBkaW1Nb2RlbDogRGltZW5zaW9uU2VsZWN0aW9uTW9kZWwgPSA8RGltZW5zaW9uU2VsZWN0aW9uTW9kZWw+IHRoaXMuYWRkVG9QYXJhbXNMaXN0KHN0LmZpZWxkTmFtZSwgc3QudmFsdWUpO1xyXG4gICAgICAgICAgICBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5kaW1Nb2RlbEFyci5wdXNoKGRpbU1vZGVsKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1peGVkU2VsZWN0aW9uc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG1peGVkU2VsZWN0aW9uc0Vycm9yKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW52YWxpZChbJ1NlbGVjdGlvbiBDcml0ZXJpYScsICdEaWZmZXJlbnQgdHlwZXMgb2Ygc2VsZWN0aW9uIGNyaXRlcmlhcyBwcm92aWRlZC4nXSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc2VsZWN0aW9uTW9kZWxDb250YWluZXI7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBzZWxlY3Rpb25Dcml0ZXJpYXMgVmFsaWRhdGUgYW5kIGRldGVybWluZSB0aGUgc2VsZWN0aW9uIGNyaXRlcmlhcyB0eXBlLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgdmFsaWRhdGVTZWxlY3Rpb25Dcml0ZXJpYShzZWxlY3Rpb25Dcml0ZXJpYTogQ29udHJhY3QuU2VsZWN0aW9uQ3JpdGVyaWEpOiBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUge1xyXG4gICAgbGV0IHNlbGVjdGlvblR5cGU6IFNlbGVjdGlvbkNyaXRlcmlhVHlwZTtcclxuICAgIC8vIERldGVybWluZSB0aGUgdHlwZSBvZiBzZWxlY3Rpb24sIHRoaXMgY29tbWFuZCBpcyBieSBsb29raW5nIGF0IHRoZSBmaXJzdCBzZWxlY3Rpb25cclxuICAgIGxldCBjcml0OiBDb250cmFjdC5TZWxlY3Rpb25Dcml0ZXJpYSA9IHNlbGVjdGlvbkNyaXRlcmlhO1xyXG5cclxuICAgIGxldCBjYXRSZWdleCA9IG5ldyBSZWdFeHAoJyhcXFtbQS1aYS16MC05XStdKS4qJywgJ2cnKTtcclxuICAgIGxldCByYW5nZU9wdGlvbjogQ29udHJhY3QuUmFuZ2VWYWx1ZSA9IGNyaXQudmFsdWUgYXMgQ29udHJhY3QuUmFuZ2VWYWx1ZTtcclxuXHJcbiAgICBpZiAoY3JpdC5maWVsZE5hbWUgJiYgKGNyaXQudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBjcml0LnZhbHVlICE9PSBudWxsKSkge1xyXG4gICAgICBpZiAoY2F0UmVnZXgudGVzdChjcml0LmZpZWxkTmFtZSkpIHsgLy8gSGllcmFyY2hpY2FsIHZhbHVlIHNlbGVjdGlvblxyXG4gICAgICAgIHNlbGVjdGlvblR5cGUgPSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUuSGllcmFyY2hpY2FsVHlwZTtcclxuICAgICAgfSBlbHNlIGlmICgoPENvbnRyYWN0LlJhbmdlVmFsdWU+IHJhbmdlT3B0aW9uKS5taW4gIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgJiYgKDxDb250cmFjdC5SYW5nZVZhbHVlPiByYW5nZU9wdGlvbikubWF4ICE9PSB1bmRlZmluZWQpIHsgLy8gUmFuZ2UgdmFsdWUgc2VsZWN0aW9uXHJcbiAgICAgICAgc2VsZWN0aW9uVHlwZSA9IFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5SYW5nZVR5cGU7XHJcbiAgICAgIH0gZWxzZSB7IC8vIERpbWVyc2lvbiB2YWx1ZSBzZWxlY3Rpb25cclxuICAgICAgICBzZWxlY3Rpb25UeXBlID0gU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLkRpbWVuc2lvblR5cGU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW52YWxpZChbJ1NlbGVjdGlvbicsICdDcml0ZXJpYSBmb3JtYXQuJ10pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNlbGVjdGlvblR5cGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gdHJhbnNmb3JtIHRoZSBrZXkgdmFsdWUgcGFpciBpbnRvIHZhbHVlIGJhc2VkIHByZXMgbW9kZWwgb2JqZWN0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHZhbHVlU2VsZWN0aW9uTW9kZWxcclxuICAgKiBAcGFyYW0gZmllbGROYW1lXHJcbiAgICogQHBhcmFtIHZhbHVlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRUb1BhcmFtc0xpc3QoZmllbGROYW1lOiBzdHJpbmcsIHZhbHVlOiBvYmplY3QpOiBWYWx1ZVNlbGVjdGlvbk1vZGVsIHtcclxuICAgIGxldCB2YWx1ZVNlbGVjdGlvbk1vZGVsOiBWYWx1ZVNlbGVjdGlvbk1vZGVsID0gbmV3IFZhbHVlU2VsZWN0aW9uTW9kZWwoKTtcclxuICAgIGxldCBtYXJrVmFsdWVzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcblxyXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgbGV0IHZhbHVlQXJyOiBBcnJheTxzdHJpbmc+ID0gdmFsdWU7XHJcbiAgICAgIGZvciAoIGxldCBpID0gMDsgaSA8IHZhbHVlQXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbWFya1ZhbHVlcy5wdXNoKHZhbHVlQXJyW2ldLnRvU3RyaW5nKCkpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBtYXJrVmFsdWVzLnB1c2godmFsdWUudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFsdWVTZWxlY3Rpb25Nb2RlbC5xdWFsaWZpZWRGaWVsZENhcHRpb24gPSBmaWVsZE5hbWU7XHJcbiAgICB2YWx1ZVNlbGVjdGlvbk1vZGVsLnNlbGVjdFZhbHVlcyA9IG1hcmtWYWx1ZXM7XHJcbiAgICByZXR1cm4gdmFsdWVTZWxlY3Rpb25Nb2RlbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZCB0byB0cmFuc2Zvcm0gdGhlIGtleSB2YWx1ZSBwYWlyIGludG8gcmFuZ2UgYmFzZWQgc2VsZWN0aW9uIHByZXMgbW9kZWwuXHJcbiAgICpcclxuICAgKiBUT0RPOiBOZWVkIHRvIGhhbmRsZSB0aGUgcGFyc2luZyBvZiBkYXRlIHR5cGUgdmFsdWVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHZhbHVlU2VsZWN0aW9uTW9kZWxcclxuICAgKiBAcGFyYW0gZmllbGROYW1lXHJcbiAgICogQHBhcmFtIHZhbHVlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRUb1JhbmdlUGFyYW1zTGlzdChmaWVsZE5hbWU6IHN0cmluZywgdmFsdWU6IENvbnRyYWN0LlJhbmdlVmFsdWUpOiBSYW5nZVNlbGVjdGlvbk1vZGVsIHtcclxuICAgIGxldCByYW5nZVNlbGVjdGlvbk1vZGVsOiBSYW5nZVNlbGVjdGlvbk1vZGVsID0gbmV3IFJhbmdlU2VsZWN0aW9uTW9kZWwoKTtcclxuICAgIHJhbmdlU2VsZWN0aW9uTW9kZWwucXVhbGlmaWVkRmllbGRDYXB0aW9uID0gZmllbGROYW1lO1xyXG4gICAgaWYgKHZhbHVlLm1heCAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLm1heCAhPT0gbnVsbCkge1xyXG4gICAgICByYW5nZVNlbGVjdGlvbk1vZGVsLm1heFZhbHVlID0gdmFsdWUubWF4LnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWUubWluICE9PSB1bmRlZmluZWQgJiYgdmFsdWUubWluICE9PSBudWxsKSB7XHJcbiAgICAgIHJhbmdlU2VsZWN0aW9uTW9kZWwubWluVmFsdWUgPSB2YWx1ZS5taW4udG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIHJhbmdlU2VsZWN0aW9uTW9kZWwuaW5jbHVkZWQgPSB0aGlzLnZhbGlkYXRlTnVsbE9wdGlvblR5cGUodmFsdWUubnVsbE9wdGlvbik7XHJcbiAgICByZXR1cm4gcmFuZ2VTZWxlY3Rpb25Nb2RlbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZCB0byB2YWxpZGF0ZSB0aGUgc2VsZWN0aW9uIHVwZGF0ZSB0eXBlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNlbGVjdGlvblVwZGF0ZVR5cGVcclxuICAgKi9cclxuICBwcml2YXRlIHZhbGlkYXRlU2VsZWN0aW9uVXBkYXRlVHlwZShzZWxlY3Rpb25VcGRhdGVUeXBlOiBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlKTogc3RyaW5nIHtcclxuICAgIGlmIChzZWxlY3Rpb25VcGRhdGVUeXBlID09PSBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlLlJlcGxhY2UpIHtcclxuICAgICAgcmV0dXJuIFNlbGVjdGlvblVwZGF0ZVR5cGVJbnRlcm5hbC5SZXBsYWNlO1xyXG4gICAgfSBlbHNlIGlmIChzZWxlY3Rpb25VcGRhdGVUeXBlID09PSBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlLkFkZCkge1xyXG4gICAgICByZXR1cm4gU2VsZWN0aW9uVXBkYXRlVHlwZUludGVybmFsLkFkZDtcclxuICAgIH0gZWxzZSBpZiAoc2VsZWN0aW9uVXBkYXRlVHlwZSA9PT0gQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZS5SZW1vdmUpIHtcclxuICAgICAgcmV0dXJuIFNlbGVjdGlvblVwZGF0ZVR5cGVJbnRlcm5hbC5SZW1vdmU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gU2VsZWN0aW9uVXBkYXRlVHlwZUludGVybmFsLlJlcGxhY2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gdmFsaWRhdGUgdGhlIGluY2x1ZGUgdHlwZSBmb3IgcmFuZ2Ugc2VsZWN0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG51bGxPcHRpb25cclxuICAgKi9cclxuICBwcml2YXRlIHZhbGlkYXRlTnVsbE9wdGlvblR5cGUobnVsbE9wdGlvbjogQ29udHJhY3QuRmlsdGVyTnVsbE9wdGlvbiB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XHJcbiAgICBpZiAobnVsbE9wdGlvbikge1xyXG4gICAgICBpZiAobnVsbE9wdGlvbiA9PT0gQ29udHJhY3QuRmlsdGVyTnVsbE9wdGlvbi5OdWxsVmFsdWVzKSB7XHJcbiAgICAgICAgcmV0dXJuIFF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLkluY2x1ZGVOdWxsO1xyXG4gICAgICB9IGVsc2UgaWYgKG51bGxPcHRpb24gPT09IENvbnRyYWN0LkZpbHRlck51bGxPcHRpb24uTm9uTnVsbFZhbHVlcykge1xyXG4gICAgICAgIHJldHVybiBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcy5JbmNsdWRlTm9uTnVsbDtcclxuICAgICAgfSBlbHNlIGlmIChudWxsT3B0aW9uID09PSBDb250cmFjdC5GaWx0ZXJOdWxsT3B0aW9uLkFsbFZhbHVlcykge1xyXG4gICAgICAgIHJldHVybiBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcy5JbmNsdWRlQWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLkluY2x1ZGVBbGw7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLyoqXHJcbiAqIEVudW0gZm9yIHRoZSBkaWZmZXJlbnQgc2VsZWN0aW9uIGNyaXRlcmlhIHR5cGVzLlxyXG4gKi9cclxuZW51bSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUge1xyXG4gIEhpZXJhcmNoaWNhbFR5cGUgPSAxLFxyXG4gIFJhbmdlVHlwZSA9IDIsXHJcbiAgRGltZW5zaW9uVHlwZSA9IDMsXHJcbiAgVHVwbGVzVHlwZSA9IDQsXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL1NlbGVjdGlvblNlcnZpY2VJbXBsLnRzXG4gKiovIiwiLyoqXHJcbiAqIFNlbGVjdGlvbiBNb2RlbC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25Nb2RlbCB7XHJcbiAgcXVhbGlmaWVkRmllbGRDYXB0aW9uOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBWYWx1ZSBiYXNlZCBzZWxlY3Rpb24gbW9kZWwuIE1lYW50IGZvciBoaWVyYXJjaGljYWwsIHJhbmdlIGFuZCBjYXRlZ29yaWNhbCBzZWxlY3Rpb25zLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFZhbHVlU2VsZWN0aW9uTW9kZWwgZXh0ZW5kcyBTZWxlY3Rpb25Nb2RlbCB7XHJcbiAgc2VsZWN0VmFsdWVzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBIaWVyYXJjaGljYWwgdmFsdWUgc2VsZWN0aW9uIG1vZGVsXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgSGllcmFyY2hpY2FsU2VsZWN0aW9uTW9kZWwgZXh0ZW5kcyBWYWx1ZVNlbGVjdGlvbk1vZGVsIHtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJhbmdlIGJhc2VkIHZhbHVlIHNlbGVjdGlvbiBtb2RlbFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJhbmdlU2VsZWN0aW9uTW9kZWwgZXh0ZW5kcyBTZWxlY3Rpb25Nb2RlbCB7XHJcbiAgbWluVmFsdWU6IHN0cmluZztcclxuICBtYXhWYWx1ZTogc3RyaW5nO1xyXG4gIGluY2x1ZGVkOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEaW1lbnNpb24gdmFsdWUgc2VsZWN0aW9uIG1vZGVsXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRGltZW5zaW9uU2VsZWN0aW9uTW9kZWwgZXh0ZW5kcyBWYWx1ZVNlbGVjdGlvbk1vZGVsIHtcclxufVxyXG4vKipcclxuICogVHVwbGUgYmFzZWQgc2VsZWN0aW9uIG1vZGVsXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVHVwbGVTZWxlY3Rpb25Nb2RlbCB7XHJcbiAgc2VsZWN0aW9uVHlwZTogc3RyaW5nO1xyXG4gIG9iamVjdElkczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udGFpbmVyIGNsYXNzIHRvIHBvcHVsYXRlIGFsbCB0aGUgc2VsZWN0aW9uIG1vZGVscyB3aGVuIHBhcnNpbmcgaW5wdXRcclxuICovXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIge1xyXG4gIGhpZXJNb2RlbEFycjogQXJyYXk8SGllcmFyY2hpY2FsU2VsZWN0aW9uTW9kZWw+ID0gW107XHJcbiAgZGltTW9kZWxBcnI6IEFycmF5PERpbWVuc2lvblNlbGVjdGlvbk1vZGVsPiA9IFtdO1xyXG4gIHF1YW50TW9kZWxBcnI6IEFycmF5PFJhbmdlU2VsZWN0aW9uTW9kZWw+ID0gW107XHJcbiAgc2VsZWN0aW9uOiBUdXBsZVNlbGVjdGlvbk1vZGVsO1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvTW9kZWxzL1NlbGVjdGlvbk1vZGVscy50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tbWFuZFJlc3BvbnNlTWVzc2FnZSxcclxuICBDcm9zc0ZyYW1lTWVzc2VuZ2VyLFxyXG4gIFZFUlNJT04gYXMgQXBpTWVzc2FnaW5nVmVyc2lvbixcclxufSBmcm9tICdAdGFibGVhdS9hcGktbWVzc2FnaW5nJztcclxuXHJcbmltcG9ydCB7IENyb3NzRnJhbWVEaXNwYXRjaGVyIH0gZnJvbSAnLi9Dcm9zc0ZyYW1lRGlzcGF0Y2hlcic7XHJcblxyXG4vLyBDaGVja3MgdG8gc2VlIGlmIHdlIGFyZSBydW5uaW5nIGluIGFuIGlmcmFtZSBjdXJyZW50bHk6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zMjYwNzYvODgyMTE1M1xyXG5mdW5jdGlvbiBpbklmcmFtZSh0aGlzV2luZG93OiBXaW5kb3cpOiBib29sZWFuIHtcclxuICB0cnkge1xyXG4gICAgcmV0dXJuIHRoaXNXaW5kb3cuc2VsZiAhPT0gdGhpc1dpbmRvdy5wYXJlbnQ7XHJcbiAgfSBjYXRjaCAoZSkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogQXR0ZW1wdHMgdG8gYm9vdHN0cmFwIHRoZSBleHRlbnNpb24gd2l0aCBhIGNyb3NzLWZyYW1lIHBhcmVudCB3aGVyZSBUYWJsZWF1IGlzIHJ1bm5pbmdcclxuICpcclxuICogQHBhcmFtIHRoaXNXaW5kb3cgVGhlIHdpbmRvdyB3aGljaCB3ZSBhcmUgcnVubmluZyBpbiAoaW5qZWN0ZWQgZm9yIHVuaXQgdGVzdGluZyBwdXJwb3NlcylcclxuICogQHBhcmFtIHZlcnNpb25OdW1iZXIgVGhlIHZlcnNpb24gbnVtYmVyIG9mIG91ciBBUEkgdG8gaW5jbHVkZSBpbiB0aGUgaW5pdGlhbGl6YXRpb24gbWVzc2FnZVxyXG4gKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggaXMgZG9pbmcgdGhlIGFjdHVhbCBib290c3RyYXBwaW5nXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZG9Dcm9zc0ZyYW1lQm9vdHN0cmFwKHRoaXNXaW5kb3c6IFdpbmRvdywgdmVyc2lvbk51bWJlcjogQ29udHJhY3QuVmVyc2lvbk51bWJlcik6IFByb21pc2U8Q29udHJhY3QuSW50ZXJuYWxBcGlEaXNwYXRjaGVyPiB7XHJcbiAgcmV0dXJuIG5ldyBQcm9taXNlPENvbnRyYWN0LkludGVybmFsQXBpRGlzcGF0Y2hlcj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cclxuICAgIC8vIENoZWNrIHRvIG1ha2Ugc3VyZSB3ZSdyZSBpbiBhbiBpZnJhbWUgYW5kIGhhdmUgYSBwYXJlbnQgdG8gY29tbXVuaWNhdGUgd2l0aFxyXG4gICAgaWYgKCFpbklmcmFtZSh0aGlzV2luZG93KSkge1xyXG4gICAgICByZWplY3QoJ1RoaXMgZXh0ZW5zaW9uIGlzIG5vdCBydW5uaW5nIGluc2lkZSBhbiBpZnJhbWUgb3IgZGVza3RvcC4gSW5pdGlhbGl6YXRpb24gZmFpbGVkLicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENyZWF0ZSB0aGUgbWVzc2VuZ2VyIHdoaWNoIHdpbGwgZG8gaGUgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHRoaXMgd2luZG93IGFuZCBvdXIgcGFyZW50XHJcbiAgICAvLyBTaW5jZSB3ZSBkb24ndCBrbm93IHdoZXJlIHdlIGFyZSBydW5uaW5nIHlldCwgd2UgaGF2ZSB0byBtYWtlIHRoaXMgaW5pdGlhbCBvcmlnaW4gJyonLiBPbmNlXHJcbiAgICAvLyB3ZSBoYXZlIHN1Y2Nlc3NmdWxseSBpbml0aWFsaXplZCBvdXIgZXh0ZW5zaW9uLCB3ZSB3aWxsIGxpbWl0IHdoZXJlIHdlIHNlbmQgbWVzc2FnZXNcclxuICAgIGNvbnN0IG1lc3NlbmdlciA9IG5ldyBDcm9zc0ZyYW1lTWVzc2VuZ2VyKHRoaXNXaW5kb3csIHRoaXNXaW5kb3cucGFyZW50LCAnKicpO1xyXG5cclxuICAgIC8vIFByZXBhcmUgdG8gc2VuZCBhbiBpbml0aWFsaXphdGlvbiBtZXNzYWdlIHRvIHRoZSBwYXJlbnQgZnJhbWVcclxuICAgIGNvbnN0IGluaXRpYWxpemF0aW9uTWVzc2FnZSA9IG1lc3Nlbmdlci5wcmVwYXJlSW5pdGlhbGl6YXRpb25NZXNzYWdlKHZlcnNpb25OdW1iZXIsIEFwaU1lc3NhZ2luZ1ZlcnNpb24pO1xyXG5cclxuICAgIC8vIFdoZW4gd2UgcmVjZWl2ZSBhIHJlc3BvbnNlIGJhY2sgZnJvbSB0aGUgcGFyZW50LCB3ZSBjaGVjayB0byBtYWtlIHN1cmUgdGhlIGd1aWRzIG1hdGNoIGFuZCB0aGVuIHdlIGtub3dcclxuICAgIC8vIHRoYXQgdGhlIHBhcmVudCBpcyBhd2FyZSBvZiB1cyBhbmQgd2UgY2FuIHN0YXJ0IGNvbW11bmljYXRpbmdcclxuICAgIG1lc3Nlbmdlci5zZXRDb21tYW5kUmVzcG9uc2VNZXNzYWdlSGFuZGxlcihmdW5jdGlvbihtc2c6IENvbW1hbmRSZXNwb25zZU1lc3NhZ2UpOiB2b2lkIHtcclxuXHJcbiAgICAgIC8vIFZlcmlmeSB3ZSBhcmUgZ2V0dGluZyBhIHJlc3BvbnNlIGZyb20gb3VyIGluaXRpYWxpemUgbWVzc2FnZVxyXG4gICAgICBpZiAobXNnLmNvbW1hbmRHdWlkID09PSBpbml0aWFsaXphdGlvbk1lc3NhZ2UubWVzc2FnZUd1aWQpIHtcclxuICAgICAgICBjb25zdCBkaXNwYXRjaGVyID0gbmV3IENyb3NzRnJhbWVEaXNwYXRjaGVyKG1lc3Nlbmdlcik7XHJcbiAgICAgICAgcmVzb2x2ZShkaXNwYXRjaGVyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gTm93IHRoYXQgb3VyIGhhbmRsZXJzIGFyZSByZWFkeSwgc3RhcnQgbGlzdGVuaW5nIGFuZCBzZW5kIG91ciBpbml0aWFsaXphdGlvbiBtZXNzYWdlXHJcbiAgICBtZXNzZW5nZXIuc3RhcnRMaXN0ZW5pbmcoKTtcclxuICAgIGluaXRpYWxpemF0aW9uTWVzc2FnZS5zZW5kKCk7XHJcbiAgfSk7XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Dcm9zc0ZyYW1lL0Nyb3NzRnJhbWVCb290c3RyYXAudHNcbiAqKi8iLCIvKipcclxuICogVGhpcyBpcyB5b3VyIG1haW4uIFRoaXMgaXMgd2hlcmUgeW91IHJlLWV4cG9ydCBldmVyeXRoaW5nIHlvdSB3YW50IHRvIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cclxuICpcclxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vQ3Jvc3NGcmFtZU1lc3Nlbmdlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlL01lc3NhZ2VEaXNwYXRjaGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvTWVzc2FnZUxpc3RlbmVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvTWVzc2FnZVR5cGVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvTWVzc2VuZ2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvUHJlcGFyZWRNZXNzYWdlJztcclxuXHJcbi8vIEV4cG9ydCB0aGUgdmVyc2lvbiBudW1iZXIgb2YgbWVzc2FnaW5nIGZvciBjb25zdW1lcnMgdG8gdXNlLlxyXG4vLyBCZSB2ZXJ5IGNhcmVmdWwgbWFraW5nIGFueSB1cGRhdGVzIHRvIHRoaXMgY29udHJhY3Qgd2hpY2ggYnJlYWsgdmVyc2lvbiBjb21wYXRpYmlsaXR5LlxyXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IHtcclxuICBtYWpvcjogMSxcclxuICBtaW5vcjogMCxcclxuICBmaXg6IDBcclxufTtcclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktbWVzc2FnaW5nL3NyYy9BcGlNZXNzYWdpbmcudHNcbiAqKi8iLCJpbXBvcnQgeyBFeGVjdXRlUGFyYW1ldGVycywgTW9kZWwsIE5vdGlmaWNhdGlvbklkLCBWZXJiSWQsIFZlcnNpb25OdW1iZXIgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBHdWlkIH0gZnJvbSAnQHRhYmxlYXUvZ3VpZCc7XHJcblxyXG5pbXBvcnQgeyBDcm9zc0ZyYW1lUHJlcGFyZWRNZXNzYWdlIH0gZnJvbSAnLi9Dcm9zc0ZyYW1lUHJlcGFyZWRNZXNzYWdlJztcclxuaW1wb3J0IHtcclxuICBDb21tYW5kTWVzc2FnZSxcclxuICBDb21tYW5kUmVzcG9uc2VNZXNzYWdlLFxyXG4gIEluaXRpYWxpemVNZXNzYWdlLFxyXG4gIE1lc3NhZ2UsXHJcbiAgTWVzc2FnZVR5cGUsXHJcbiAgTm90aWZpY2F0aW9uTWVzc2FnZSxcclxufSBmcm9tICcuL2ludGVyZmFjZS9NZXNzYWdlVHlwZXMnO1xyXG5pbXBvcnQgeyBNZXNzZW5nZXIgfSBmcm9tICcuL2ludGVyZmFjZS9NZXNzZW5nZXInO1xyXG5pbXBvcnQgeyBQcmVwYXJlZE1lc3NhZ2UgfSBmcm9tICcuL2ludGVyZmFjZS9QcmVwYXJlZE1lc3NhZ2UnO1xyXG5pbXBvcnQge1xyXG4gIGlzQ29tbWFuZE1lc3NhZ2UsXHJcbiAgaXNDb21tYW5kUmVzcG9uc2VNZXNzYWdlLFxyXG4gIGlzSW5pdE1lc3NhZ2UsXHJcbiAgaXNNZXNzYWdlLFxyXG4gIGlzTm90aWZpY2F0aW9uTWVzc2FnZSxcclxufSBmcm9tICcuL01lc3NhZ2VUeXBlQ2hlY2tzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgQ3Jvc3NGcmFtZU1lc3NlbmdlciBpcyB0aGUgcHJpbWFyeSBleHBvcnQgZnJvbSB0aGUgYXBpLW1lc3NhZ2luZyBtb2R1bGUuIEFuIGluc3RhbmNlIG9mXHJcbiAqIHRoaXMgY2xhc3MgY2FuIGJlIGluc3RhbnRpYXRlZCBvbiBib3RoIHNpZGVzIG9mIGEgZnJhbWUgYm91bmRhcnkgdG8gZmFjaWxpdGF0ZSBjb21tdW5pY2F0aW9uXHJcbiAqIGluIGJvdGggZGlyZWN0aW9ucyBiZXR3ZWVuIHRoZSBmcmFtZXMuIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBib3RoIHRoZSBkaXNwYXRjaGVyIGFuZCB0aGUgbGlzdGVuZXJcclxuICogcG9ydGlvbnMsIGJ1dCBkb2Vzbid0IHJlcXVpcmUgY2FsbGVycyB0byBjYXJlIGFib3V0IGJvdGguXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ3Jvc3NGcmFtZU1lc3NlbmdlciBpbXBsZW1lbnRzIE1lc3NlbmdlciB7XHJcbiAgcHJpdmF0ZSB1bnJlZ2lzdGVyRnVuY3Rpb246IHVuZGVmaW5lZCB8ICgoKSA9PiB2b2lkKTtcclxuICBwcml2YXRlIGluaXRpYWxpemVNZXNzYWdlSGFuZGxlcjogdW5kZWZpbmVkIHwgKChtc2c6IEluaXRpYWxpemVNZXNzYWdlLCBzb3VyY2U6IFdpbmRvdykgPT4gdm9pZCk7XHJcbiAgcHJpdmF0ZSBjb21tYW5kUmVzcG9uc2VNZXNzYWdlSGFuZGxlcjogdW5kZWZpbmVkIHwgKChtc2c6IENvbW1hbmRSZXNwb25zZU1lc3NhZ2UsIHNvdXJjZTogV2luZG93KSA9PiB2b2lkKTtcclxuICBwcml2YXRlIGNvbW1hbmRNZXNzYWdlSGFuZGxlcjogdW5kZWZpbmVkIHwgKChtc2c6IENvbW1hbmRNZXNzYWdlLCBzb3VyY2U6IFdpbmRvdykgPT4gdm9pZCk7XHJcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25NZXNzYWdlSGFuZGxlcjogdW5kZWZpbmVkIHwgKChtc2c6IE5vdGlmaWNhdGlvbk1lc3NhZ2UsIHNvdXJjZTogV2luZG93KSA9PiB2b2lkKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBDcm9zc0ZyYW1lTWVzc2VuZ2VyLiBJZiB5b3Ugd291bGQgbGlrZSB0byB1c2UgdGhlIENyb3NzRnJhbWVNZXNzZW5nZXIgYXMgYSBNZXNzYWdlTGlzdGVuZXIsXHJcbiAgICogYmUgc3VyZSB0byBjYWxsIFN0YXJ0TGlzdGVuaW5nIGFuZCByZWdpc3RlciBtZXNzYWdlIGhhbmRsZXJzLlxyXG4gICAqIEBwYXJhbSB0aGlzV2luZG93IFRoZSB3aW5kb3cgb2JqZWN0IHdoaWNoIHRoZSBDcm9zc0ZyYW1lTWVzc2VuZ2VyIGxpdmVzLiBBbiBvbk1lc3NhZ2UgbGlzdGVuZXIgd2lsbCBiZSBhZGRlZCBoZXJlLlxyXG4gICAqIEBwYXJhbSBbb3RoZXJXaW5kb3ddIE9wdGlvbmFsIG90aGVyV2luZG93IHdoaWNoIG1lc3NhZ2VzIHdpbGwgYmUgcG9zdGVkIHRvLlxyXG4gICAqICAgICAgICAgICAgICAgICAgICAgIElmIGRlZmluZWQsIGluY29taW5nIG1lc3NhZ2VzIG11c3Qgb3JpZ2luYXRlIGZyb20gb3RoZXJXaW5kb3cgdG8gYmUgcGFzc2VkIG9uXHJcbiAgICogQHBhcmFtIFtvdGhlcldpbmRvd09yaWdpbl0gVGhlIHRhcmdldCBvcmlnaW4gd2hpY2ggb3RoZXJXaW5kb3cgbXVzdCBoYXZlIGluIG9yZGVyIHRvIHJlY2VpdmUgZGlzcGF0Y2hlZCBtZXNzYWdlcy5cclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHZhbHVlIHdpbGwgYmUgc2VudCBhcyB0aGUgdGFyZ2V0T3JpZ2luIG9mIGEgcG9zdE1lc3NhZ2VcclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1dpbmRvdy9wb3N0TWVzc2FnZSlcclxuICAgKi9cclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSB0aGlzV2luZG93OiBXaW5kb3csIHByaXZhdGUgb3RoZXJXaW5kb3c/OiBXaW5kb3csIHByaXZhdGUgb3RoZXJXaW5kb3dPcmlnaW4/OiBzdHJpbmcpIHtcclxuICAgIC8vIE1ha2Ugc3VyZSB0byBjYWxsIFN0YXJ0TGlzdGVuaW5nXHJcbiAgfVxyXG5cclxuICAvLy8vLyBNZXNzYWdlTGlzdGVuZXIgSW1wbGVtZW50YXRpb25cclxuXHJcbiAgcHVibGljIHN0YXJ0TGlzdGVuaW5nKCk6IHZvaWQge1xyXG4gICAgLy8gQ2hlY2sgaWYgd2UgYWxyZWFkeSBhcmUgbGlzdGVuaW5nLCBpZiBub3QsIGhvb2sgdXAgYSBtZXNzYWdlIGxpc3RlbmVyXHJcbiAgICBpZiAoIXRoaXMudW5yZWdpc3RlckZ1bmN0aW9uKSB7XHJcbiAgICAgIGNvbnN0IGJvdW5kSGFuZGxlciA9IHRoaXMub25NZXNzYWdlUmVjZWl2ZWQuYmluZCh0aGlzKTtcclxuICAgICAgdGhpcy50aGlzV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBib3VuZEhhbmRsZXIsIHRydWUpO1xyXG4gICAgICB0aGlzLnVucmVnaXN0ZXJGdW5jdGlvbiA9ICgpID0+IHRoaXMudGhpc1dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgYm91bmRIYW5kbGVyLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9wTGlzdGVuaW5nKCk6IHZvaWQge1xyXG4gICAgLy8gU3RvcCBsaXN0ZW5pbmcgaWYgd2UgaGF2ZSBzdGFydGVkIGxpc3RlbmluZ1xyXG4gICAgaWYgKHRoaXMudW5yZWdpc3RlckZ1bmN0aW9uKSB7XHJcbiAgICAgIHRoaXMudW5yZWdpc3RlckZ1bmN0aW9uKCk7XHJcbiAgICAgIHRoaXMudW5yZWdpc3RlckZ1bmN0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEluaXRpYWxpemVNZXNzYWdlSGFuZGxlcihoYW5kbGVyPzogKG1zZzogSW5pdGlhbGl6ZU1lc3NhZ2UsIHNvdXJjZTogV2luZG93KSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVNZXNzYWdlSGFuZGxlciA9IGhhbmRsZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q29tbWFuZFJlc3BvbnNlTWVzc2FnZUhhbmRsZXIoaGFuZGxlcj86IChtc2c6IENvbW1hbmRSZXNwb25zZU1lc3NhZ2UsIHNvdXJjZTogV2luZG93KSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbW1hbmRSZXNwb25zZU1lc3NhZ2VIYW5kbGVyID0gaGFuZGxlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRDb21tYW5kTWVzc2FnZUhhbmRsZXIoaGFuZGxlcj86IChtc2c6IENvbW1hbmRNZXNzYWdlLCBzb3VyY2U6IFdpbmRvdykgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb21tYW5kTWVzc2FnZUhhbmRsZXIgPSBoYW5kbGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldE5vdGlmaWNhdGlvbk1lc3NhZ2VIYW5kbGVyKGhhbmRsZXI/OiAobXNnOiBOb3RpZmljYXRpb25NZXNzYWdlLCBzb3VyY2U6IFdpbmRvdykgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25NZXNzYWdlSGFuZGxlciA9IGhhbmRsZXI7XHJcbiAgfVxyXG5cclxuICAvLy8vLyBNZXNzYWdlRGlzcGF0Y2hlciBJbXBsZW1lbnRhdGlvblxyXG5cclxuICBwdWJsaWMgcHJlcGFyZUluaXRpYWxpemF0aW9uTWVzc2FnZShhcGlWZXJzaW9uOiBWZXJzaW9uTnVtYmVyLCBjcm9zc0ZyYW1lVmVyc2lvbjogVmVyc2lvbk51bWJlcik6IFByZXBhcmVkTWVzc2FnZSB7XHJcbiAgICBjb25zdCBtZXNzYWdlOiBJbml0aWFsaXplTWVzc2FnZSA9IHtcclxuICAgICAgbXNnR3VpZDogR3VpZC5jcmVhdGUoKS5mb3JtYXR0ZWRWYWx1ZSxcclxuICAgICAgbXNnVHlwZTogTWVzc2FnZVR5cGUuSW5pdGlhbGl6ZSxcclxuICAgICAgY3Jvc3NGcmFtZVZlcnNpb246IGNyb3NzRnJhbWVWZXJzaW9uLFxyXG4gICAgICBhcGlWZXJzaW9uOiBhcGlWZXJzaW9uXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLnByZXBhcmVNZXNzYWdlKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByZXBhcmVDb21tYW5kTWVzc2FnZSh2ZXJiSWQ6IFZlcmJJZCwgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMpOiBQcmVwYXJlZE1lc3NhZ2Uge1xyXG4gICAgY29uc3QgbWVzc2FnZTogQ29tbWFuZE1lc3NhZ2UgPSB7XHJcbiAgICAgIG1zZ0d1aWQ6IEd1aWQuY3JlYXRlKCkuZm9ybWF0dGVkVmFsdWUsXHJcbiAgICAgIG1zZ1R5cGU6IE1lc3NhZ2VUeXBlLkNvbW1hbmQsXHJcbiAgICAgIHZlcmJJZDogdmVyYklkLFxyXG4gICAgICBwYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLnByZXBhcmVNZXNzYWdlKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByZXBhcmVDb21tYW5kUmVzcG9uc2VNZXNzYWdlKGNvbW1hbmRHdWlkOiBzdHJpbmcsIGRhdGE6IE1vZGVsIHwgdW5kZWZpbmVkLCBlcnJvcjogTW9kZWwgfCB1bmRlZmluZWQpOiBQcmVwYXJlZE1lc3NhZ2Uge1xyXG4gICAgY29uc3QgbWVzc2FnZTogQ29tbWFuZFJlc3BvbnNlTWVzc2FnZSA9IHtcclxuICAgICAgbXNnR3VpZDogR3VpZC5jcmVhdGUoKS5mb3JtYXR0ZWRWYWx1ZSxcclxuICAgICAgbXNnVHlwZTogTWVzc2FnZVR5cGUuQ29tbWFuZFJlc3BvbnNlLFxyXG4gICAgICBjb21tYW5kR3VpZDogY29tbWFuZEd1aWQsXHJcbiAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgIGVycm9yOiBlcnJvclxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wcmVwYXJlTWVzc2FnZShtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwcmVwYXJlTm90aWZpY2F0aW9uTWVzc2FnZShub3RpZmljYXRpb25JZDogTm90aWZpY2F0aW9uSWQsIGRhdGE6IE1vZGVsKTogUHJlcGFyZWRNZXNzYWdlIHtcclxuICAgIGNvbnN0IG1lc3NhZ2U6IE5vdGlmaWNhdGlvbk1lc3NhZ2UgPSB7XHJcbiAgICAgIG1zZ0d1aWQ6IEd1aWQuY3JlYXRlKCkuZm9ybWF0dGVkVmFsdWUsXHJcbiAgICAgIG1zZ1R5cGU6IE1lc3NhZ2VUeXBlLk5vdGlmaWNhdGlvbixcclxuICAgICAgbm90aWZpY2F0aW9uSWQ6IG5vdGlmaWNhdGlvbklkLFxyXG4gICAgICBkYXRhOiBkYXRhXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLnByZXBhcmVNZXNzYWdlKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJlcGFyZXMgYSBwZW5kaW5nIG1lc3NhZ2UgZm9yIHNlbmRpbmcgYW5kIHJldHVybnMgdGhlIHByZXBhcmVkIG1lc3NhZ2VcclxuICAgKlxyXG4gICAqIEBwYXJhbSBtc2cgVGhlIG1lc3NhZ2UgdG8gYmUgc2VudCB0byB0aGlzLm90aGVyV2luZG93XHJcbiAgICogQHJldHVybnMgVGhlIHByZXBhcmVkIG1lc3NhZ2VcclxuICAgKi9cclxuICBwcml2YXRlIHByZXBhcmVNZXNzYWdlKG1zZzogTWVzc2FnZSk6IFByZXBhcmVkTWVzc2FnZSB7XHJcbiAgICBpZiAoIXRoaXMub3RoZXJXaW5kb3cgfHwgIXRoaXMub3RoZXJXaW5kb3dPcmlnaW4pIHtcclxuICAgICAgdGhyb3cgJ090aGVyIHdpbmRvdyBub3QgaW5pdGlhbGl6ZWQsIGNhbm5vdCBkaXNwYXRjaCBtZXNzYWdlcyc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcHJlcGFyZWRNZXNzYWdlID0gbmV3IENyb3NzRnJhbWVQcmVwYXJlZE1lc3NhZ2UobXNnLCB0aGlzLm90aGVyV2luZG93LCB0aGlzLm90aGVyV2luZG93T3JpZ2luKTtcclxuICAgIHJldHVybiBwcmVwYXJlZE1lc3NhZ2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYWxsZWQgd2hlbiBhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQuIERvZXMgc29tZSB2YWxpZGF0aW9uIG9mIHRoZSBtZXNzYWdlLCBhbmQgdGhlblxyXG4gICAqIGNhbGxzIGFuIGFwcHJvcHJpYXRlIG1lc3NhZ2UgaGFuZGxlciBpZiBvbmUgaXMgZGVmaW5lZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGV2ZW50IFRoZSBpbmNvbWluZyBNZXNzYWdlRXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIG9uTWVzc2FnZVJlY2VpdmVkKGV2ZW50OiBNZXNzYWdlRXZlbnQpOiB2b2lkIHtcclxuXHJcbiAgICAvLyBJZiB3ZSBoYXZlIGFuIG90aGVyV2luZG93IGRlZmluZWQsIG1ha2Ugc3VyZSB0aGUgbWVzc2FnZSBpcyBjb21pbmcgZnJvbSB0aGVyZVxyXG4gICAgaWYgKHRoaXMub3RoZXJXaW5kb3cgJiYgZXZlbnQuc291cmNlICE9PSB0aGlzLm90aGVyV2luZG93KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEbyBzb21lIHZhbGlkYXRpb24gb24gZXZlbnQuZGF0YSB0byBtYWtlIHN1cmUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIGEgcmVhbCBtZXNzYWdlXHJcbiAgICBpZiAoIWV2ZW50LmRhdGEpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1lc3NhZ2UgPSBldmVudC5kYXRhO1xyXG4gICAgaWYgKCFpc01lc3NhZ2UobWVzc2FnZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENoZWNrIHRoZSBkZWNsYXJlZCBtZXNzYWdlIHR5cGUsIHZhbGlkYXRlIHRoZSBtZXNzYWdlLCBhbmQgY2FsbCBhbiBhcHByb3ByaWF0ZSBoYW5kZXIgaWYgb25lIGV4aXN0c1xyXG4gICAgc3dpdGNoIChtZXNzYWdlLm1zZ1R5cGUpIHtcclxuICAgICAgY2FzZSBNZXNzYWdlVHlwZS5Jbml0aWFsaXplOiB7XHJcbiAgICAgICAgaWYgKCFpc0luaXRNZXNzYWdlKG1lc3NhZ2UpIHx8ICF0aGlzLmluaXRpYWxpemVNZXNzYWdlSGFuZGxlcikge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5pbml0aWFsaXplTWVzc2FnZUhhbmRsZXIobWVzc2FnZSwgZXZlbnQuc291cmNlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIE1lc3NhZ2VUeXBlLkNvbW1hbmRSZXNwb25zZToge1xyXG4gICAgICAgIGlmICghaXNDb21tYW5kUmVzcG9uc2VNZXNzYWdlKG1lc3NhZ2UpIHx8ICF0aGlzLmNvbW1hbmRSZXNwb25zZU1lc3NhZ2VIYW5kbGVyKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNvbW1hbmRSZXNwb25zZU1lc3NhZ2VIYW5kbGVyKG1lc3NhZ2UsIGV2ZW50LnNvdXJjZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSBNZXNzYWdlVHlwZS5Db21tYW5kOiB7XHJcbiAgICAgICAgaWYgKCFpc0NvbW1hbmRNZXNzYWdlKG1lc3NhZ2UpIHx8ICF0aGlzLmNvbW1hbmRNZXNzYWdlSGFuZGxlcikge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jb21tYW5kTWVzc2FnZUhhbmRsZXIobWVzc2FnZSwgZXZlbnQuc291cmNlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIE1lc3NhZ2VUeXBlLk5vdGlmaWNhdGlvbjoge1xyXG4gICAgICAgIGlmICghaXNOb3RpZmljYXRpb25NZXNzYWdlKG1lc3NhZ2UpIHx8ICF0aGlzLm5vdGlmaWNhdGlvbk1lc3NhZ2VIYW5kbGVyKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbk1lc3NhZ2VIYW5kbGVyKG1lc3NhZ2UsIGV2ZW50LnNvdXJjZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICAvLyBKdXN0IGlnbm9yZSB0aGlzIHNpbmNlIHdlIGRvbid0IGtub3cgaG93IHRvIGhhbmRsZSB0aGUgbWVzc2FnZSB0eXBlXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLW1lc3NhZ2luZy9zcmMvQ3Jvc3NGcmFtZU1lc3Nlbmdlci50c1xuICoqLyIsIm51bGxcblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvR3VpZC50c1xuICoqLyIsImltcG9ydCB7IE1lc3NhZ2UgfSBmcm9tICcuL2ludGVyZmFjZS9NZXNzYWdlVHlwZXMnO1xyXG5pbXBvcnQgeyBQcmVwYXJlZE1lc3NhZ2UgfSBmcm9tICcuL2ludGVyZmFjZS9QcmVwYXJlZE1lc3NhZ2UnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBQcmVwYXJlZE1lc3NhZ2UgaW50ZXJmYWNlIHVzZWQgdG8gcG9zdCBtZXNzYWdlcyBiZXR3ZWVuXHJcbiAqIHR3byBmcmFtZXMgdXNpbmcgd2luZG93LnBvc3RNZXNzYWdlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ3Jvc3NGcmFtZVByZXBhcmVkTWVzc2FnZSBpbXBsZW1lbnRzIFByZXBhcmVkTWVzc2FnZSB7XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBDcm9zc0ZyYW1lUHJlcGFyZWRNZXNzYWdlLlxyXG4gICAqIEBwYXJhbSBfbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBiZSBzZW50XHJcbiAgICogQHBhcmFtIF90YXJnZXQgVGhlIHRhcmdldCB3aW5kb3cgd2hlcmUgdGhlIG1lc3NhZ2Ugd2lsbCBiZSBzZW50XHJcbiAgICogQHBhcmFtIF9vcmlnaW4gVGhlIHRhcmdldE9yaWdpbiB3aGVyZSB0aGlzIG1lc3NhZ2UgY2FuIGJlIHJlY2VpdmVkXHJcbiAgICovXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX21lc3NhZ2U6IE1lc3NhZ2UsIHByaXZhdGUgX3RhcmdldDogV2luZG93LCBwcml2YXRlIF9vcmlnaW46IHN0cmluZykge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbWVzc2FnZUd1aWQoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX21lc3NhZ2UubXNnR3VpZDsgfVxyXG5cclxuICBwdWJsaWMgc2VuZCgpOiBQcmVwYXJlZE1lc3NhZ2Uge1xyXG4gICAgdGhpcy5fdGFyZ2V0LnBvc3RNZXNzYWdlKHRoaXMuX21lc3NhZ2UsIHRoaXMuX29yaWdpbik7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktbWVzc2FnaW5nL3NyYy9Dcm9zc0ZyYW1lUHJlcGFyZWRNZXNzYWdlLnRzXG4gKiovIiwiaW1wb3J0IHsgRXhlY3V0ZVBhcmFtZXRlcnMsIE1vZGVsLCBOb3RpZmljYXRpb25JZCwgVmVyYklkLCBWZXJzaW9uTnVtYmVyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuXHJcbi8qKlxyXG4gKiBFbnVtIGRlZmluaW5nIHRoZSA0IGRpZmZlcmVudCB0eXBlcyBvZiBtZXNzYWdlcyB3ZSBoYXZlIGRlZmluZWRcclxuICovXHJcbmV4cG9ydCBlbnVtIE1lc3NhZ2VUeXBlIHtcclxuICBJbml0aWFsaXplID0gJ2luaXRpYWxpemUnLFxyXG4gIE5vdGlmaWNhdGlvbiA9ICdub3RpZmljYXRpb24nLFxyXG4gIENvbW1hbmQgPSAnY29tbWFuZCcsXHJcbiAgQ29tbWFuZFJlc3BvbnNlID0gJ2NvbW1hbmQtcmVzcG9uc2UnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgTWVzc2FnZSBpbnRlcmZhY2UgaXMgdGhlIGJhc2UgaW50ZXJmYWNlIGZvciBhbGwgdGhlIG90aGVyXHJcbiAqIG1lc3NhZ2UgdHlwZSBpbnRlcmZhY2VzLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlIHtcclxuICAvKipcclxuICAgKiBBIHVuaXF1ZSBpZCBmb3IgdGhpcyBtZXNzYWdlXHJcbiAgICovXHJcbiAgbXNnR3VpZDogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgdHlwZSBvZiB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBtc2dUeXBlOiBNZXNzYWdlVHlwZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBpbml0aWFsaXplIG1lc3NhZ2UgaXMgdGhlIGZpcnN0IG1lc3NhZ2Ugd2hpY2ggd2lsbCBiZSBzZW50XHJcbiAqIGZyb20gdGhlIGphdmFzY3JpcHQgdG8gc2V0IHVwIGNvbW11bmljYXRpb25zXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEluaXRpYWxpemVNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSB7XHJcbiAgLyoqXHJcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIGFwaSB3aGljaCB0aGUgc2VuZGVyIHdhbnRzIHRvIHVzZVxyXG4gICAqL1xyXG4gIGFwaVZlcnNpb246IFZlcnNpb25OdW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoaXMgbWVzc2FnaW5nIGNvbnRyYWN0IHRvIGJlIHVzZWQuIEZvciBub3csIHRoZXJlXHJcbiAgICogc2hvdWxkIG9ubHkgYmUgYSBzaW5nbGUgdmVyc2lvbiBidXQgc2VuZGluZyB0aGlzIGFsb25nIHNob3VsZCBoZWxwXHJcbiAgICogaWYgd2UgbmVlZCB0byBhZGQgYSBuZXcgdmVyc2lvbiBpbiBhIGZ1dHVyZSByZWxlYXNlXHJcbiAgICovXHJcbiAgY3Jvc3NGcmFtZVZlcnNpb246IFZlcnNpb25OdW1iZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIG1lc3NhZ2UgaXMgc2VudCB3aGVuIGEgbm90aWZpY2F0aW9uIG9jY3VycyBmcm9tIHRoZSBwcmVzbGF5ZXJcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2Uge1xyXG4gIC8qKlxyXG4gICAqIFRoZSBpZCBmb3IgdGhpcyB0eXBlIG9mIG5vdGlmaWNhdGlvblxyXG4gICAqL1xyXG4gIG5vdGlmaWNhdGlvbklkOiBOb3RpZmljYXRpb25JZDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGRhdGEgd2hpY2ggY2FtZSBhbG9uZyB3aXRoIHRoZSBub3RpZmljYXRpb25cclxuICAgKi9cclxuICBkYXRhOiBNb2RlbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgY2FsbGluZyBhbiBpbnRlcm5hbCBjb250cmFjdCBjb21tYW5kXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSB7XHJcbiAgLyoqXHJcbiAgICogVGhlIGlkIG9mIHRoZSBjb21tYW5kIHdoaWNoIHNob3VsZCBiZSBleGVjdXRlZFxyXG4gICAqL1xyXG4gIHZlcmJJZDogVmVyYklkO1xyXG5cclxuICAvKipcclxuICAgKiBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGNvbW1hbmRcclxuICAgKi9cclxuICBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycztcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoaXMgbWVzc2FnZSBpcyBzZW50IGluIHJlc3BvbnNlIHRvIGEgQ29tbWFuZE1lc3NhZ2Ugd2l0aCB0aGVcclxuICogcmVzdWx0IG9mIHRoYXQgY29tbWFuZHMgaW52b2NhdGlvblxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kUmVzcG9uc2VNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSB7XHJcbiAgLyoqXHJcbiAgICogR3VpZCBvZiB0aGUgQ29tbWFuZE1lc3NhZ2Ugd2hpY2ggdGhpcyBpcyBpbiByZXNwb25zZSB0b1xyXG4gICAqL1xyXG4gIGNvbW1hbmRHdWlkOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIHRoZXJlIHdhcyBhbiBlcnJvciByZXR1cm5lZCBmcm9tIHRoZSBjb21tYW5kLCB0aGlzIHdpbGwgYmUgZGVmaW5lZFxyXG4gICAqIGFuZCBjb250YWluIHRoZSBlcnJvclxyXG4gICAqL1xyXG4gIGVycm9yPzogTW9kZWw7XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIHRoZSBjb21tYW5kIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseSwgdGhpcyB3aWxsIGNvbnRhaW4gdGhlIGNvbW1hbmQgcmVzdWx0XHJcbiAgICovXHJcbiAgZGF0YT86IE1vZGVsO1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLW1lc3NhZ2luZy9zcmMvaW50ZXJmYWNlL01lc3NhZ2VUeXBlcy50c1xuICoqLyIsImltcG9ydCB7IFZlcnNpb25OdW1iZXIgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBHdWlkIH0gZnJvbSAnQHRhYmxlYXUvZ3VpZCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbW1hbmRNZXNzYWdlLFxyXG4gIENvbW1hbmRSZXNwb25zZU1lc3NhZ2UsXHJcbiAgSW5pdGlhbGl6ZU1lc3NhZ2UsXHJcbiAgTWVzc2FnZSxcclxuICBNZXNzYWdlVHlwZSxcclxuICBOb3RpZmljYXRpb25NZXNzYWdlLFxyXG59IGZyb20gJy4vaW50ZXJmYWNlL01lc3NhZ2VUeXBlcyc7XHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZSBuby1hbnkgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTWVzc2FnZShkYXRhOiBNZXNzYWdlIHwgYW55KTogZGF0YSBpcyBNZXNzYWdlIHtcclxuICBpZiAoIWRhdGEpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1lc3NhZ2UgPSBkYXRhIGFzIE1lc3NhZ2U7XHJcbiAgaWYgKCFtZXNzYWdlIHx8ICFtZXNzYWdlLm1zZ0d1aWQgfHwgIW1lc3NhZ2UubXNnVHlwZSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFHdWlkLmlzR3VpZChtZXNzYWdlLm1zZ0d1aWQpKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpZiAodHlwZW9mIG1lc3NhZ2UubXNnVHlwZSAhPT0gJ3N0cmluZycpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1lc3NhZ2VUeXBlczogQXJyYXk8c3RyaW5nPiA9XHJcbiAgWyBNZXNzYWdlVHlwZS5Db21tYW5kLCBNZXNzYWdlVHlwZS5Db21tYW5kUmVzcG9uc2UsIE1lc3NhZ2VUeXBlLkluaXRpYWxpemUsIE1lc3NhZ2VUeXBlLk5vdGlmaWNhdGlvbiBdO1xyXG5cclxuICBpZiAobWVzc2FnZVR5cGVzLmluZGV4T2YobWVzc2FnZS5tc2dUeXBlKSA8IDApIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNWZXJzaW9uKHZlcnNpb25OdW1iZXI6IFZlcnNpb25OdW1iZXIgfCBhbnkpOiB2ZXJzaW9uTnVtYmVyIGlzIFZlcnNpb25OdW1iZXIge1xyXG4gIGlmICghdmVyc2lvbk51bWJlcikge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgdiA9IHZlcnNpb25OdW1iZXIgYXMgVmVyc2lvbk51bWJlcjtcclxuXHJcbiAgaWYgKHR5cGVvZiB2ICE9PSAnb2JqZWN0Jykge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGVvZiB2LmZpeCAhPT0gJ251bWJlcicgfHwgdHlwZW9mIHYubWlub3IgIT09ICdudW1iZXInIHx8IHR5cGVvZiB2Lm1ham9yICE9PSAnbnVtYmVyJykge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0luaXRNZXNzYWdlKG1lc3NhZ2U6IEluaXRpYWxpemVNZXNzYWdlIHwgYW55KTogbWVzc2FnZSBpcyBJbml0aWFsaXplTWVzc2FnZSB7XHJcbiAgaWYgKCFpc01lc3NhZ2UobWVzc2FnZSkpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGluaXRNZXNzYWdlID0gbWVzc2FnZSBhcyBJbml0aWFsaXplTWVzc2FnZTtcclxuICBpZiAoaW5pdE1lc3NhZ2UubXNnVHlwZSAhPT0gTWVzc2FnZVR5cGUuSW5pdGlhbGl6ZSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFpbml0TWVzc2FnZS5hcGlWZXJzaW9uIHx8ICFpc1ZlcnNpb24oaW5pdE1lc3NhZ2UuYXBpVmVyc2lvbikpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlmICghaW5pdE1lc3NhZ2UuY3Jvc3NGcmFtZVZlcnNpb24gfHwgIWlzVmVyc2lvbihpbml0TWVzc2FnZS5jcm9zc0ZyYW1lVmVyc2lvbikpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNDb21tYW5kUmVzcG9uc2VNZXNzYWdlKG1lc3NhZ2U6IENvbW1hbmRSZXNwb25zZU1lc3NhZ2UgfCBhbnkpOiBtZXNzYWdlIGlzIENvbW1hbmRSZXNwb25zZU1lc3NhZ2Uge1xyXG4gIGlmICghaXNNZXNzYWdlKG1lc3NhZ2UpKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjb25zdCBjck1lc3NhZ2UgPSBtZXNzYWdlIGFzIENvbW1hbmRSZXNwb25zZU1lc3NhZ2U7XHJcbiAgaWYgKGNyTWVzc2FnZS5tc2dUeXBlICE9PSBNZXNzYWdlVHlwZS5Db21tYW5kUmVzcG9uc2UpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlmICghR3VpZC5pc0d1aWQoY3JNZXNzYWdlLmNvbW1hbmRHdWlkKSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFjck1lc3NhZ2UuZGF0YSAmJiAhY3JNZXNzYWdlLmVycm9yKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tbWFuZE1lc3NhZ2UobWVzc2FnZTogQ29tbWFuZE1lc3NhZ2UgfCBhbnkpOiBtZXNzYWdlIGlzIENvbW1hbmRNZXNzYWdlIHtcclxuICBpZiAoIWlzTWVzc2FnZShtZXNzYWdlKSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgY29tbWFuZE1lc3NhZ2UgPSBtZXNzYWdlIGFzIENvbW1hbmRNZXNzYWdlO1xyXG4gIGlmIChjb21tYW5kTWVzc2FnZS5tc2dUeXBlICE9PSBNZXNzYWdlVHlwZS5Db21tYW5kKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpZiAoIWNvbW1hbmRNZXNzYWdlLnBhcmFtZXRlcnMgfHwgdHlwZW9mIGNvbW1hbmRNZXNzYWdlLnBhcmFtZXRlcnMgIT09ICdvYmplY3QnKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpZiAoIWNvbW1hbmRNZXNzYWdlLnZlcmJJZCB8fCB0eXBlb2YgY29tbWFuZE1lc3NhZ2UudmVyYklkICE9PSAnc3RyaW5nJykge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc05vdGlmaWNhdGlvbk1lc3NhZ2UobWVzc2FnZTogTm90aWZpY2F0aW9uTWVzc2FnZSB8IGFueSk6IG1lc3NhZ2UgaXMgTm90aWZpY2F0aW9uTWVzc2FnZSB7XHJcbiAgaWYgKCFpc01lc3NhZ2UobWVzc2FnZSkpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG5vdGlmaWNhdGlvbk1lc3NhZ2UgPSBtZXNzYWdlIGFzIE5vdGlmaWNhdGlvbk1lc3NhZ2U7XHJcbiAgaWYgKG5vdGlmaWNhdGlvbk1lc3NhZ2UubXNnVHlwZSAhPT0gTWVzc2FnZVR5cGUuTm90aWZpY2F0aW9uKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpZiAoIW5vdGlmaWNhdGlvbk1lc3NhZ2UuZGF0YSB8fCB0eXBlb2Ygbm90aWZpY2F0aW9uTWVzc2FnZS5kYXRhICE9PSAnb2JqZWN0Jykge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFub3RpZmljYXRpb25NZXNzYWdlLm5vdGlmaWNhdGlvbklkIHx8IHR5cGVvZiBub3RpZmljYXRpb25NZXNzYWdlLm5vdGlmaWNhdGlvbklkICE9PSAnc3RyaW5nJykge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRydWU7XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktbWVzc2FnaW5nL3NyYy9NZXNzYWdlVHlwZUNoZWNrcy50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgRXhlY3V0ZVBhcmFtZXRlcnMsXHJcbiAgRXhlY3V0ZVJlc3BvbnNlLFxyXG4gIEludGVybmFsQXBpRGlzcGF0Y2hlcixcclxuICBNb2RlbCxcclxuICBOb3RpZmljYXRpb25IYW5kbGVyLFxyXG4gIFZlcmJJZCxcclxuICBWZXJzaW9uTnVtYmVyLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IENvbW1hbmRSZXNwb25zZU1lc3NhZ2UsIE1lc3NlbmdlciwgTm90aWZpY2F0aW9uTWVzc2FnZSB9IGZyb20gJ0B0YWJsZWF1L2FwaS1tZXNzYWdpbmcnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIEludGVybmFsQXBpRGlzcGF0Y2hlciBpbnRlcmZhY2Ugd2hpY2ggZnVuY3Rpb25zIGJ5IHBhc3NpbmcgbWVzc2FnZXNcclxuICogYWNyb3NzIGEgZnJhbWUgYm91bmRhcnkuIFRoaXMgaXMgdXN1YWxseSBiZXR3ZWVuIHRoZSBjb2RlIHdoZXJlIG91ciBqYXZzY3JpcHQgbGlicmFyeSBoYXMgYmVlbiBpbmNsdWRlZFxyXG4gKiBieSBhIDNyZCBwYXJ0eSBkZXYgYW5kIGFub3RoZXIgZnJhbWUgd2hlcmUgVGFibGVhdSBzZXJ2ZXIgaGFzIGNvbnRlbnQuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ3Jvc3NGcmFtZURpc3BhdGNoZXIgaW1wbGVtZW50cyBJbnRlcm5hbEFwaURpc3BhdGNoZXIge1xyXG5cclxuICAvLyBUaGUgYXBpIHZlcnNpb24gd2UgYXJlIG9wZXJhdGluZyB0aHJvdWdoXHJcbiAgcHJpdmF0ZSBfdmVyc2lvbk51bWJlcjogVmVyc2lvbk51bWJlcjtcclxuXHJcbiAgLy8gQ29sbGVjdGlvbiBvZiBwZW5kaW5nIHByb21pc2VzIHdoaWNoIGFyZSB3YWl0aW5nIHRvIGJlIHJlc29sdmVkLiBXaGVuIHdlIHJlY2VpdmUgYSByZXNwb25zZSBiYWNrIGZyb20gdGhlIG90aGVyIGZyYW1lLFxyXG4gIC8vIHRoZXNlIHByb21pc2VzIGNhbiBiZSBlaXRoZXIgcmVzb2x2ZWQgb3IgcmVqZWN0ZWRcclxuICBwcml2YXRlIF9wZW5kaW5nUHJvbWlzZXM6IHsgW21lc3NhZ2VHdWlkOiBzdHJpbmddOiB7IHJlc29sdmU6IChyZXNwb25zZTogRXhlY3V0ZVJlc3BvbnNlKSA9PiB2b2lkLCByZWplY3Q6IChlcnJvcjogTW9kZWwpID0+IHZvaWR9IH0gPSB7fTtcclxuXHJcbiAgLy8gVGhlIGNvbGxlY3Rpb24gb2Ygbm90aWZpY2F0aW9uIGhhbmRsZXJzIHdoaWNoIGhhdmUgYmVlbiByZWdpc3RlcmVkIHdpdGggdGhpcyBkaXNwYXRjaGVyXHJcbiAgcHJpdmF0ZSBfbm90aWZpY2F0aW9uSGFuZGxlcnM6IEFycmF5PE5vdGlmaWNhdGlvbkhhbmRsZXI+ID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQ3Jvc3NGcmFtZURpc3BhdGNoZXIgd2hpY2ggd2lsbCB1c2UgdGhlIGdpdmVuIG1lc3NlbmdlciB0byBjb21tdW5pY2F0ZVxyXG4gICAqIEBwYXJhbSBfbWVzc2VuZ2VyIGFuIGluc3RhbnRpYXRlZCBhbmQgbGlzdGVuaW5nIG1lc3NlbmdlciBvYmplY3RcclxuICAgKi9cclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfbWVzc2VuZ2VyOiBNZXNzZW5nZXIpIHtcclxuICAgIGlmICghdGhpcy5fbWVzc2VuZ2VyKSB7XHJcbiAgICAgIHRocm93ICdNaXNzaW5nIG1lc3NlbmdlciBvYmplY3QnO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFNldCB1cCBvdXIgbWVzc2FnZSBoYW5kbGVycy4gV2Ugb25seSBjYXJlIGFib3V0IGluY29taW5nIG5vdGlmaWNhdGlvbnMgYW5kIGNvbW1hbmQgcmVzcG9uc2VzXHJcbiAgICB0aGlzLl9tZXNzZW5nZXIuc2V0Q29tbWFuZFJlc3BvbnNlTWVzc2FnZUhhbmRsZXIodGhpcy5vbkNvbW1hbmRSZXNwb25zZS5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMuX21lc3Nlbmdlci5zZXROb3RpZmljYXRpb25NZXNzYWdlSGFuZGxlcih0aGlzLm9uTm90aWZpY2F0aW9uLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgLy8vLy8vIFN0YXJ0IEludGVybmFsQXBpRGlzcGF0Y2hlciBpbXBsZW1lbnRhdGlvblxyXG5cclxuICBwdWJsaWMgc2V0VmVyc2lvbk51bWJlcih2ZXJzaW9uTnVtYmVyOiBWZXJzaW9uTnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl92ZXJzaW9uTnVtYmVyID0gdmVyc2lvbk51bWJlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleGVjdXRlKHZlcmI6IFZlcmJJZCwgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMpOiBQcm9taXNlPEV4ZWN1dGVSZXNwb25zZT4ge1xyXG4gICAgLy8gVG8gZXhlY3V0ZSBhIHZlcmIsIHdlIGZpcnN0IHByZXBhcmUgYSBjb21tYW5kIG1lc3NhZ2UgYW5kIHRoZW4gZGVmaW5lIGEgcHJvbWlzZS5cclxuICAgIGNvbnN0IHByZXBhcmVkTWVzc2FnZSA9IHRoaXMuX21lc3Nlbmdlci5wcmVwYXJlQ29tbWFuZE1lc3NhZ2UodmVyYiwgcGFyYW1ldGVycyk7XHJcbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2U8RXhlY3V0ZVJlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblxyXG4gICAgICAvLyBTYXZlIG9mZiB0aGUgcGVuZGluZyBwcm9taXNlIGJ5IHRoZSBtZXNzYWdlR3VpZCB3ZSBhcmUgYWJvdXQgdG8gc2VuZC4gV2hlbiBhIHJlc3BvbnNlIGlzXHJcbiAgICAgIC8vIHJlY2VpdmVkLCB3ZSdsbCBiZSBhYmxlIHRvIHJlc29sdmUgdGhpcyBwcm9taXNlIHdpdGggdGhlIHJlc3VsdFxyXG4gICAgICB0aGlzLl9wZW5kaW5nUHJvbWlzZXNbcHJlcGFyZWRNZXNzYWdlLm1lc3NhZ2VHdWlkXSA9IHsgcmVzb2x2ZTogcmVzb2x2ZSwgcmVqZWN0OiByZWplY3QgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIEFjdHVhbGx5IHNlbmQgdGhlIG1lc3NhZ2UgYW5kIHJldHVybiB0aGUgcHJvbWlzZVxyXG4gICAgcHJlcGFyZWRNZXNzYWdlLnNlbmQoKTtcclxuICAgIHJldHVybiBwcm9taXNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlcihoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVycy5wdXNoKGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVucmVnaXN0ZXJOb3RpZmljYXRpb25IYW5kbGVyKGhhbmRsZXI6IE5vdGlmaWNhdGlvbkhhbmRsZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzID0gdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnMuZmlsdGVyKGggPT4gaCAhPT0gaGFuZGxlcik7XHJcbiAgfVxyXG5cclxuICAvLy8vLy8gRW5kIEludGVybmFsQXBpRGlzcGF0Y2hlciBpbXBsZW1lbnRhdGlvblxyXG5cclxuICBwcml2YXRlIG9uQ29tbWFuZFJlc3BvbnNlKHJlc3BvbnNlOiBDb21tYW5kUmVzcG9uc2VNZXNzYWdlKTogdm9pZCB7XHJcbiAgICAvLyBXZSBnb3QgYSBjb21tYW5kIHJlc3BvbnNlLCBsb29rIHRocm91Z2ggdGhlIHBlbmRpbmcgcHJvbWlzZXMgYW5kIHJlc29sdmVcclxuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLl9wZW5kaW5nUHJvbWlzZXMpLmluZGV4T2YocmVzcG9uc2UuY29tbWFuZEd1aWQpIDwgMCkge1xyXG4gICAgICByZXR1cm47IC8vIFdlIGRvbid0IGhhdmUgYW55IHJlZmVyZW5jZSB0byB0aGlzIGNvbW1hbmQsIGp1c3QgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGVuZGluZ1Byb21pc2UgPSB0aGlzLl9wZW5kaW5nUHJvbWlzZXNbcmVzcG9uc2UuY29tbWFuZEd1aWRdO1xyXG5cclxuICAgIC8vIElmIHdlIGhhdmUgYW4gZXJyb3IgZGVmaW5lZCwgcmVqZWN0IHRoZSBwcm9taXNlXHJcbiAgICBpZiAocmVzcG9uc2UuZXJyb3IpIHtcclxuICAgICAgcGVuZGluZ1Byb21pc2UucmVqZWN0KHJlc3BvbnNlLmVycm9yKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiB3ZSBoYXZlIGRhdGEgZGVmaW5lZCwgcmVzb2x2ZSB0aGUgcHJvbWlzZVxyXG4gICAgaWYgKHJlc3BvbnNlLmRhdGEpIHtcclxuICAgICAgcGVuZGluZ1Byb21pc2UucmVzb2x2ZSh7cmVzdWx0OiByZXNwb25zZS5kYXRhfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2xlYW4gdXAgb3VyIHBlbmRpbmcgcHJvbWlzZXMgb2JqZWN0XHJcbiAgICBkZWxldGUgdGhpcy5fcGVuZGluZ1Byb21pc2VzW3Jlc3BvbnNlLmNvbW1hbmRHdWlkXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uTWVzc2FnZTogTm90aWZpY2F0aW9uTWVzc2FnZSk6IHZvaWQge1xyXG4gICAgLy8gR28gdGhyb3VnaCBlYWNoIG5vdGlmaWNhdGlvbiBoYW5kbGVyIHdlIGhhdmUgcmVnaXN0ZXJlZCBhbmQgbGV0IHRoZW0ga25vdyBhIG5vdGlmaWNhdGlvbiBjYW1lIGluXHJcbiAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnMpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBoYW5kbGVyKHtub3RpZmljYXRpb25JZDogbm90aWZpY2F0aW9uTWVzc2FnZS5ub3RpZmljYXRpb25JZCwgZGF0YTogbm90aWZpY2F0aW9uTWVzc2FnZS5kYXRhfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAvLyBJZ25vcmUgdGhpcy4gV3JhcCBpbiB0cnkvY2F0Y2ggc28gaWYgb25lIGhhbmRsZXIgZXJyb3JzLCB0aGUgb3RoZXIgc3RpbGwgZ2V0IHRoZSBtZXNzYWdlXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Dcm9zc0ZyYW1lL0Nyb3NzRnJhbWVEaXNwYXRjaGVyLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgRGFzaGJvYXJkQ29udGVudCBuYW1lc3BhY2UuXHJcbiAqIFRoaXMgZG9lcyBub3QgZm9sbG93IHRoZSBJbXBsIHBhdHRlcm4gYXMgRGFzaGJvYXJkQ29udGVudCBpc1xyXG4gKiBjdXJyZW50bHkganVzdCBhIChzaW5nbGUpIHByb3BlcnR5IGJhZy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDb250ZW50IGltcGxlbWVudHMgQ29udHJhY3QuRGFzaGJvYXJkQ29udGVudCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Rhc2hib2FyZDogQ29udHJhY3QuRGFzaGJvYXJkKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBkYXNoYm9hcmQoKTogQ29udHJhY3QuRGFzaGJvYXJkIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXNoYm9hcmQ7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL05hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBFeHRlbnNpb25FbnZpcm9ubWVudCB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncyBhcyBFbnVtTWFwcGluZ3MgfSBmcm9tICdAdGFibGVhdS9hcGktc2hhcmVkJztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgZW52aXJvbm1lbnQgbmFtZXNwYWNlLlxyXG4gKiBFbnZpcm9ubWVudCBkb2VzIG5vdCBmb2xsb3cgdGhlIEltcGwgcGF0dGVybiBhcyBpdCBpc1xyXG4gKiBqdXN0IGEgcHJvcGVydHkgYmFnLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50IGltcGxlbWVudHMgQ29udHJhY3QuRW52aXJvbm1lbnQge1xyXG4gIHByaXZhdGUgX2FwaVZlcnNpb246IHN0cmluZztcclxuICBwcml2YXRlIF9jb250ZXh0OiBDb250cmFjdC5FeHRlbnNpb25Db250ZXh0O1xyXG4gIHByaXZhdGUgX2xhbmd1YWdlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfbW9kZTogQ29udHJhY3QuRXh0ZW5zaW9uTW9kZTtcclxuICBwcml2YXRlIF9vcGVyYXRpbmdTeXN0ZW06IHN0cmluZztcclxuICBwcml2YXRlIF90YWJsZWF1VmVyc2lvbjogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZXh0ZW5zaW9uRW52aXJvbm1lbnQ6IEV4dGVuc2lvbkVudmlyb25tZW50KSB7XHJcbiAgICB0aGlzLl9hcGlWZXJzaW9uID0gZXh0ZW5zaW9uRW52aXJvbm1lbnQuYXBpVmVyc2lvbjtcclxuICAgIHRoaXMuX2NvbnRleHQgPSBFbnVtTWFwcGluZ3MuZXh0ZW5zaW9uQ29udGV4dC5jb252ZXJ0KGV4dGVuc2lvbkVudmlyb25tZW50LmV4dGVuc2lvbkNvbnRleHQpO1xyXG4gICAgdGhpcy5fbGFuZ3VhZ2UgPSBleHRlbnNpb25FbnZpcm9ubWVudC5leHRlbnNpb25MYW5ndWFnZTtcclxuICAgIHRoaXMuX2xvY2FsZSA9IGV4dGVuc2lvbkVudmlyb25tZW50LmV4dGVuc2lvbkxvY2FsZTtcclxuICAgIHRoaXMuX21vZGUgPSBFbnVtTWFwcGluZ3MuZXh0ZW5zaW9uTW9kZS5jb252ZXJ0KGV4dGVuc2lvbkVudmlyb25tZW50LmV4dGVuc2lvbk1vZGUpO1xyXG4gICAgdGhpcy5fb3BlcmF0aW5nU3lzdGVtID0gZXh0ZW5zaW9uRW52aXJvbm1lbnQub3BlcmF0aW5nU3lzdGVtO1xyXG4gICAgdGhpcy5fdGFibGVhdVZlcnNpb24gPSBleHRlbnNpb25FbnZpcm9ubWVudC50YWJsZWF1VmVyc2lvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXBpVmVyc2lvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwaVZlcnNpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbnRleHQoKTogQ29udHJhY3QuRXh0ZW5zaW9uQ29udGV4dCB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9sYW5ndWFnZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbG9jYWxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9jYWxlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtb2RlKCk6IENvbnRyYWN0LkV4dGVuc2lvbk1vZGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG9wZXJhdGluZ1N5c3RlbSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX29wZXJhdGluZ1N5c3RlbTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdGFibGVhdVZlcnNpb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90YWJsZWF1VmVyc2lvbjtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9leHRlbnNpb25zLWFwaS9zcmMvTmFtZXNwYWNlcy9FbnZpcm9ubWVudC50c1xuICoqLyIsImltcG9ydCB7IFNldHRpbmdzIGFzIFNldHRpbmdzQ29udHJhY3QgfSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgU2V0dGluZ3NJbXBsIH0gZnJvbSAnLi4vSW1wbC9TZXR0aW5nc0ltcGwnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc0NvbGxlY3Rpb24gfSBmcm9tICcuLi9TZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBleHRlcm5hbCBzZXR0aW5ncyBuYW1lc3BhY2UuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2V0dGluZ3MgaW1wbGVtZW50cyBTZXR0aW5nc0NvbnRyYWN0IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBzZXR0aW5nc0ltcGw6IFNldHRpbmdzSW1wbCkgeyB9XHJcblxyXG4gIHB1YmxpYyBlcmFzZShrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXR0aW5nc0ltcGwuZXJhc2Uoa2V5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NJbXBsLmdldChrZXkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFsbCgpOiBTZXR0aW5nc0NvbGxlY3Rpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NJbXBsLmdldEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc01vZGlmaWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NJbXBsLmlzTW9kaWZpZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUFzeW5jKCk6IFByb21pc2U8U2V0dGluZ3NDb2xsZWN0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5nc0ltcGwuc2F2ZUFzeW5jKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldHRpbmdzSW1wbC5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL05hbWVzcGFjZXMvU2V0dGluZ3MudHNcbiAqKi8iLCJpbXBvcnQgeyBJbnRlcm5hbEFwaURpc3BhdGNoZXIgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlUmVnaXN0cnkgfSBmcm9tICdAdGFibGVhdS9hcGktc2hhcmVkJztcclxuXHJcbmltcG9ydCB7IEluaXRpYWxpemF0aW9uU2VydmljZUltcGwgfSBmcm9tICcuL0ltcGwvSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZUltcGwgfSBmcm9tICAnLi9JbXBsL1NldHRpbmdzU2VydmljZUltcGwnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQWxsRXh0ZW5zaW9uc1NlcnZpY2VzKGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcik6IHZvaWQge1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IEluaXRpYWxpemF0aW9uU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IFNldHRpbmdzU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL1NlcnZpY2VzL1JlZ2lzdGVyQWxsRXh0ZW5zaW9uc1NlcnZpY2VzLnRzXG4gKiovIiwiaW1wb3J0IHsgRXh0ZW5zaW9uQm9vdHN0cmFwSW5mbywgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLCBWZXJiSWQgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2VOYW1lcyB9IGZyb20gJy4uL0V4dGVuc2lvbnNTZXJ2aWNlTmFtZXMnO1xyXG5pbXBvcnQgeyBJbml0aWFsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9Jbml0aWFsaXphdGlvblNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEluaXRpYWxpemF0aW9uU2VydmljZUltcGwgaW1wbGVtZW50cyBJbml0aWFsaXphdGlvblNlcnZpY2Uge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcikgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBFeHRlbnNpb25zU2VydmljZU5hbWVzLkluaXRpYWxpemF0aW9uU2VydmljZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0aWFsaXplRGFzaGJvYXJkRXh0ZW5zaW9uc0FzeW5jKCk6IFByb21pc2U8RXh0ZW5zaW9uQm9vdHN0cmFwSW5mbz4ge1xyXG4gICAgLy8gV2UgZG9uJ3QgbmVlZCBhbnkgcGFyYW1ldGVycyBmb3IgdGhpcyBjYWxsIGJlY2F1c2UgdGhleSBhcmUgYWRkZWQgaW4gZm9yIHVzIGJ5IHRoZSBkaXNwYXRjaGVyXHJcbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLkluaXRpYWxpemVFeHRlbnNpb24sIHt9KS50aGVuPEV4dGVuc2lvbkJvb3RzdHJhcEluZm8+KHJlc3BvbnNlID0+IHtcclxuICAgICAgLy8gVE9ETyAtIFZhbGlkYXRlIHJldHVybiB2YWx1ZVxyXG5cclxuICAgICAgY29uc3QgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0IGFzIEV4dGVuc2lvbkJvb3RzdHJhcEluZm87XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9leHRlbnNpb25zLWFwaS9zcmMvU2VydmljZXMvSW1wbC9Jbml0aWFsaXphdGlvblNlcnZpY2VJbXBsLnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBFeGVjdXRlUGFyYW1ldGVycyxcclxuICBFeHRlbnNpb25TZXR0aW5nc0luZm8sXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFZlcmJJZFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2VOYW1lcyB9IGZyb20gJy4uL0V4dGVuc2lvbnNTZXJ2aWNlTmFtZXMnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc0NvbGxlY3Rpb24sIFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL1NldHRpbmdzU2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIFNldHRpbmdzU2VydmljZSB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEV4dGVuc2lvbnNTZXJ2aWNlTmFtZXMuU2V0dGluZ3NTZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVTZXR0aW5nc0FzeW5jKHNldHRpbmdzOiBTZXR0aW5nc0NvbGxlY3Rpb24pOiBQcm9taXNlPFNldHRpbmdzQ29sbGVjdGlvbj4ge1xyXG4gICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7W1BhcmFtZXRlcklkLlNldHRpbmdzVmFsdWVzXTogc2V0dGluZ3N9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuU2F2ZUV4dGVuc2lvblNldHRpbmdzLCBwYXJhbWV0ZXJzKS50aGVuPFNldHRpbmdzQ29sbGVjdGlvbj4odmFsdWUgPT4ge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSB2YWx1ZS5yZXN1bHQgYXMgRXh0ZW5zaW9uU2V0dGluZ3NJbmZvO1xyXG5cclxuICAgICAgaWYgKCFyZXN1bHQgfHwgIXJlc3VsdC5zZXR0aW5nc1ZhbHVlcykge1xyXG4gICAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW50ZXJuYWxFcnJvcihbJ3NhdmluZyBzZXR0aW5ncy4nXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybihyZXN1bHQuc2V0dGluZ3NWYWx1ZXMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL1NlcnZpY2VzL0ltcGwvU2V0dGluZ3NTZXJ2aWNlSW1wbC50c1xuICoqLyIsImltcG9ydCB7IEV4dGVuc2lvblNldHRpbmdzSW5mbyB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSB9IGZyb20gJ0B0YWJsZWF1L2FwaS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBQYXJhbSwgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQgeyBFeHRlbnNpb25zU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvRXh0ZW5zaW9uc1NlcnZpY2VOYW1lcyc7XHJcbmltcG9ydCB7IFNldHRpbmdzQ29sbGVjdGlvbiwgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vU2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc0ltcGwge1xyXG4gIHByaXZhdGUgc3RhdGljIEFTWU5DX1NBVkVfSU5fUFJPR1JFU1M6IHN0cmluZyA9ICdBc3luYyBTYXZlIGlzIGluIHByb2dyZXNzLCB1cGRhdGluZyBzZXR0aW5ncyBpcyBub3QgYWxsb3dlZC4nO1xyXG4gIHByaXZhdGUgX2lzTW9kaWZpZWQ6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfY3VycmVudFNldHRpbmdzOiBTZXR0aW5nc0NvbGxlY3Rpb247XHJcblxyXG4gIC8vIFNpbmNlIHByb21pc2VzIGNhbid0IGJlIGludHJvc3BlY3RlZCBmb3Igc3RhdGUsIGtlZXAgYSB2YXJpYWJsZSB0aGF0XHJcbiAgLy8gaW5kaWNhdGVzIGEgc2F2ZSBpcyBpbiBwcm9ncmVzcywgc28gdGhhdCBzZXQvZXJhc2UgY2FuJ3QgYmUgY2FsbGVkIGR1cmluZyBhIHNhdmUuXHJcbiAgcHJpdmF0ZSBfc2F2ZUluUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHNldHRpbmdzSW5mbzogRXh0ZW5zaW9uU2V0dGluZ3NJbmZvKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVTZXR0aW5ncyhzZXR0aW5nc0luZm8pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVyYXNlKGtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBQYXJhbS52ZXJpZnlWYWx1ZShrZXksICdrZXknKTtcclxuXHJcbiAgICAvLyBPbmx5IG1ha2UgYSBtb2RpZmljYXRpb24gaWYgd2UgaGF2ZSB0aGUga2V5IGFscmVhZHlcclxuICAgIGlmICh0aGlzLl9jdXJyZW50U2V0dGluZ3Nba2V5XSkge1xyXG4gICAgICB0aGlzLnZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTtcclxuXHJcbiAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50U2V0dGluZ3Nba2V5XTtcclxuICAgICAgdGhpcy5faXNNb2RpZmllZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKGtleSwgJ2tleScpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRTZXR0aW5nc1trZXldO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFsbCgpOiBTZXR0aW5nc0NvbGxlY3Rpb24ge1xyXG4gICAgLy8gUmV0dXJucyBhIG11dGFibGUgY29weSBvZiB0aGUgc2V0dGluZ3NcclxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9jdXJyZW50U2V0dGluZ3MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc01vZGlmaWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzTW9kaWZpZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUFzeW5jKCk6IFByb21pc2U8U2V0dGluZ3NDb2xsZWN0aW9uPiB7XHJcbiAgICB0aGlzLnZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTtcclxuXHJcbiAgICAvLyBKdXN0IHJlc29sdmUgaW1tZWRpYXRlbHkgaWYgc2V0dGluZ3MgYXJlIHVuY2hhbmdlZFxyXG4gICAgaWYgKCF0aGlzLl9pc01vZGlmaWVkKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmU8U2V0dGluZ3NDb2xsZWN0aW9uPih0aGlzLl9jdXJyZW50U2V0dGluZ3MpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3NhdmVJblByb2dyZXNzID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBVc2UgdGhlIHNldHRpbmdzIHNlcnZpY2UgdG8gc2F2ZSBzZXR0aW5ncyB0byB0d2JcclxuICAgIGNvbnN0IHNldHRpbmdzU2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPFNldHRpbmdzU2VydmljZT4oXHJcbiAgICAgIEV4dGVuc2lvbnNTZXJ2aWNlTmFtZXMuU2V0dGluZ3NTZXJ2aWNlKTtcclxuXHJcbiAgICByZXR1cm4gc2V0dGluZ3NTZXJ2aWNlLnNhdmVTZXR0aW5nc0FzeW5jKHRoaXMuX2N1cnJlbnRTZXR0aW5ncykudGhlbjxTZXR0aW5nc0NvbGxlY3Rpb24+KG5ld1NldHRpbmdzID0+IHtcclxuICAgICAgdGhpcy5fc2F2ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgdGhpcy5faXNNb2RpZmllZCA9IGZhbHNlO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2N1cnJlbnRTZXR0aW5ncywgbmV3U2V0dGluZ3MpO1xyXG4gICAgICByZXR1cm4gbmV3U2V0dGluZ3M7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKGtleSwgJ2tleScpOyAvLyBLZXkgc2hvdWxkbid0IGJlIGFuIGVtcHR5IHN0cmluZy5cclxuICAgIFBhcmFtLnZlcmlmeVN0cmluZyh2YWx1ZSwgJ3ZhbHVlJyk7IC8vIEVtcHR5IHN0cmluZyB2YWx1ZSBpcyBhbGxvd2VkLlxyXG4gICAgdGhpcy52ZXJpZnlTZXR0aW5nc0FyZVVubG9ja2VkKCk7XHJcblxyXG4gICAgdGhpcy5fY3VycmVudFNldHRpbmdzW2tleV0gPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzTW9kaWZpZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplU2V0dGluZ3Moc2V0dGluZ3NJbmZvOiBFeHRlbnNpb25TZXR0aW5nc0luZm8pOiB2b2lkIHtcclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKHNldHRpbmdzSW5mbywgJ3NldHRpbmdzSW5mbycpO1xyXG4gICAgUGFyYW0udmVyaWZ5VmFsdWUoc2V0dGluZ3NJbmZvLnNldHRpbmdzVmFsdWVzLCAnc2V0dGluZ3NJbmZvLlNldHRpbmdzVmFsdWVzJyk7XHJcblxyXG4gICAgdGhpcy5fY3VycmVudFNldHRpbmdzID0gc2V0dGluZ3NJbmZvLnNldHRpbmdzVmFsdWVzO1xyXG5cclxuICAgIC8vIFJlc2V0IHRoZSBpc01vZGlmaWVkIGZsYWdcclxuICAgIHRoaXMuX2lzTW9kaWZpZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgaGVscGVyIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGFueSBsb2NhbCB1cGRhdGUgdG8gdGhpcy5jdXJyZW50U2V0dGluZ3MuXHJcbiAgICogQ2hlY2tzIGlmIGEgY3VycmVudCBzYXZlIGNhbGwgaXMgc3RpbGwgaW4gcHJvZ3Jlc3MgYW5kIHRocm93cyBhbiBlcnJvciBpZiBzby5cclxuICAgKi9cclxuICBwcml2YXRlIHZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fc2F2ZUluUHJvZ3Jlc3MpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5lcnJvcihTZXR0aW5nc0ltcGwuQVNZTkNfU0FWRV9JTl9QUk9HUkVTUyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL0ltcGwvU2V0dGluZ3NJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEV4dGVuc2lvbnNJbXBsIH0gZnJvbSAnLi4vSW1wbC9FeHRlbnNpb25zSW1wbCc7XHJcblxyXG4vKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlIGV4dGVybmFsIEV4dGVuc2lvbnMgbmFtZXNwYWNlLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEV4dGVuc2lvbnMgaW1wbGVtZW50cyBDb250cmFjdC5FeHRlbnNpb25zIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBleHRlbnNpb25JbXBsOiBFeHRlbnNpb25zSW1wbCkge1xyXG4gICAgdGhpcy5leHRlbnNpb25JbXBsID0gZXh0ZW5zaW9uSW1wbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGFzaGJvYXJkQ29udGVudCgpOiBDb250cmFjdC5EYXNoYm9hcmRDb250ZW50IHtcclxuICAgIHJldHVybiB0aGlzLmV4dGVuc2lvbkltcGwuZGFzaGJvYXJkQ29udGVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZW52aXJvbm1lbnQoKTogQ29udHJhY3QuRW52aXJvbm1lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9uSW1wbC5lbnZpcm9ubWVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3MoKTogQ29udHJhY3QuU2V0dGluZ3Mge1xyXG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9uSW1wbC5zZXR0aW5ncztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdWkoKTogQ29udHJhY3QuVUkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdBUEkgY2FsbCBub3QgeWV0IGltcGxlbWVudGVkJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5pdGlhbGl6ZUFzeW5jKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9uSW1wbC5pbml0aWFsaXplQXN5bmMoKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9leHRlbnNpb25zLWFwaS9zcmMvTmFtZXNwYWNlcy9FeHRlbnNpb25zLnRzXG4gKiovIiwiaW1wb3J0IHsgQXBpRXZlbnRIYW5kbGVyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWNvcmUnO1xyXG5pbXBvcnQgeyBJbnRlcm5hbEFwaURpc3BhdGNoZXIsIEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgQWRkSW5BcGlQcmVzTGF5ZXJJbXBsIH0gZnJvbSAnLi9BZGRJbkFwaVByZXNMYXllckltcGwnO1xyXG5pbXBvcnQgeyBEZXNrdG9wQXBpRGlzcGF0Y2hlciB9IGZyb20gJy4vRGVza3RvcEFwaURpc3BhdGNoZXInO1xyXG5pbXBvcnQgeyBoYXNRdCwgaW5pdGlhbGl6ZVdlYkNoYW5uZWxQcmVzTGF5ZXIgfSBmcm9tICcuL1F0V2ViQ2hhbm5lbEltcGwnO1xyXG5cclxuLyoqXHJcbiAqIFdyYXBwZXIgZm9yIGFsbCB0aGUgYm9vdHN0cmFwcGluZyBsb2dpYy4gVGhpcyBjb2RlIGF0dGVtcHRzIHRvIGluaXRpYWxpemUgdGhlIHF0IHByZXMtbGF5ZXJcclxuICogYXMgd2VsbCBhcyB0aGUgZGVza3RvcCBkaXNwYXRjaGVyLiBJdCB0aGVuIGFzc2lnbnMgaXQgdG8gdGhlIGdsb2JhbCBkZXNrdG9wIGRpc3BhdGNoZXIgdG9cclxuICogYmUgcGlja2VkIHVwIGJ5IHRoZSBhZGQtaW4gZXh0ZXJuYWwgQXBpXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZG9Cb290c3RyYXAoKTogUHJvbWlzZTxJbnRlcm5hbEFwaURpc3BhdGNoZXI+IHtcclxuICBpZiAoIWhhc1F0KCkpIHtcclxuICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnTm90IHJ1bm5pbmcgaW4gZGVza3RvcCB3aXRoIHF0IGF2YWlsYWJsZScpO1xyXG4gIH1cclxuXHJcbiAgLy8gRmlyc3Qgd2UgbmVlZCB0byBpbml0aWFsaXplIHRoZSB3ZWJjaGFubmVsIHByZXMtbGF5ZXJcclxuICBsZXQgZGlzcGF0Y2hlclByb21pc2UgPSBpbml0aWFsaXplV2ViQ2hhbm5lbFByZXNMYXllcigpLnRoZW48SW50ZXJuYWxBcGlEaXNwYXRjaGVyPigocHJlc2xheWVyKSA9PiB7XHJcbiAgICBjb25zdCBwcmVzTGF5ZXJBcGkgPSBuZXcgQWRkSW5BcGlQcmVzTGF5ZXJJbXBsKHByZXNsYXllcik7XHJcbiAgICBpZiAoIXByZXNMYXllckFwaS5BZGRJbkluc3RhbmNlSW5mby5hZGRJbkxvY2F0b3JQcmVzTW9kZWwpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5pc1VuZGVmaW5lZChbJ0FkZEluSW5zdGFuY2VJbmZvJ10pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEluaXRpYWxpemUgdGhlIGFwaUV2ZW50SGFuZGxlciBhbmQgdGhlIGRlc2t0b3BEaXNwYXRjaGVyIHdpdGggaXRcclxuICAgIGNvbnN0IGFwaUV2ZW50SGFuZGxlciA9IG5ldyBBcGlFdmVudEhhbmRsZXIocHJlc0xheWVyQXBpLCBwcmVzTGF5ZXJBcGkuQWRkSW5JbnN0YW5jZUluZm8uYWRkSW5Mb2NhdG9yUHJlc01vZGVsLCB0cnVlKTtcclxuICAgIGNvbnN0IGRlc2t0b3BEaXNwYXRjaGVyID0gbmV3IERlc2t0b3BBcGlEaXNwYXRjaGVyKGFwaUV2ZW50SGFuZGxlcik7XHJcblxyXG4gICAgcmV0dXJuIGRlc2t0b3BEaXNwYXRjaGVyO1xyXG4gIH0pO1xyXG5cclxuICAvLyBBc3NpZ24gdGhlIGRlc2t0b3AgZGlzcGF0Y2hlciBmb3IgdGhlIG90aGVyIHByb2plY3QgdG8gZmluZCBpdFxyXG4gIEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5zZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UoZGlzcGF0Y2hlclByb21pc2UpO1xyXG5cclxuICByZXR1cm4gZGlzcGF0Y2hlclByb21pc2U7XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL0ZyZWxhcmREZXNrdG9wQm9vdHN0cmFwLnRzXG4gKiovIiwiLyoqXHJcbiAqIFRoaXMgaXMgeW91ciBtYWluLiBUaGlzIGlzIHdoZXJlIHlvdSByZS1leHBvcnQgZXZlcnl0aGluZyB5b3Ugd2FudCB0byBiZSBwdWJsaWNseSBhdmFpbGFibGUuXHJcbiAqXHJcbiAqIFRoZSBidWlsZCBlbmZvcmNlcyB0aGF0IHRoZSBmaWxlIGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBnbG9iYWwgdmFyaWFibGUgdGhhdCBpcyBleHBvcnRlZC5cclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL0FwaUV2ZW50SGFuZGxlcic7XHJcblxyXG4vLyBOZWVkIHRvIGV4cG9ydCB0aGVzZSB0d28gcHJlcyBtb2RlbHMgZm9yIHVzZSBieSBvdGhlciBwcm9qZWN0c1xyXG5leHBvcnQge1xyXG4gIEFkZEluSW5zdGFuY2VQcmVzTW9kZWwsXHJcbiAgQWRkSW5Mb2NhdG9yUHJlc01vZGVsLFxyXG4gIEFkZEluQm9vdHN0cmFwSW5mb1ByZXNNb2RlbCxcclxuICBQcmVzZW50YXRpb25Nb2RlbFxyXG59IGZyb20gJy4uL2dlbi1zcmMvcHJlc2xheWVyL1ByZXNNb2RlbHMnO1xyXG5leHBvcnQgeyBOb3RpZmljYXRpb25JZCB9IGZyb20gJy4uL2dlbi1zcmMvcHJlc2xheWVyL0V2ZW50cyc7XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL0FwaUNvcmUudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEV4ZWN1dGVQYXJhbWV0ZXJzLFxyXG4gIEV4ZWN1dGVSZXNwb25zZSxcclxuICBFeHRlbnNpb25Mb2NhdG9yIGFzIEFwaUV4dGVuc2lvbkxvY2F0b3IsXHJcbiAgTW9kZWwsXHJcbiAgTm90aWZpY2F0aW9uSWQsXHJcbiAgUGFyYW1ldGVySWQgYXMgQXBpUGFyYW1ldGVySWQsXHJcbiAgVmVyYklkLFxyXG4gIFZlcnNpb25OdW1iZXIsXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcbmltcG9ydCB7IFByZXNlbnRhdGlvbkxheWVyIH0gZnJvbSAnQHRhYmxlYXUvcHJlc2xheWVyLWFwaS1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25JZCBhcyBQcmVzTGF5ZXJFdmVudElkIH0gZnJvbSAnLi4vZ2VuLXNyYy9wcmVzbGF5ZXIvRXZlbnRzJztcclxuaW1wb3J0IHsgUGFyYW1ldGVySWQgYXMgUHJlc0xheWVyUGFyYW1ldGVySWQgfSBmcm9tICcuLi9nZW4tc3JjL3ByZXNsYXllci9QYXJhbXMnO1xyXG5pbXBvcnQgeyBBZGRJbkxvY2F0b3JQcmVzTW9kZWwsIFByZXNlbnRhdGlvbk1vZGVsIH0gZnJvbSAnLi4vZ2VuLXNyYy9wcmVzbGF5ZXIvUHJlc01vZGVscyc7XHJcbmltcG9ydCB7IENvbW1hbmRNYXBwaW5nUmVnaXN0cnkgfSBmcm9tICcuL21hcHBpbmdzL0NvbW1hbmRNYXBwaW5nUmVnaXN0cnknO1xyXG5pbXBvcnQgeyBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeSB9IGZyb20gJy4vbWFwcGluZ3MvQ29tbWFuZE1hcHBpbmdSZWdpc3RyeUZhY3RvcnknO1xyXG5pbXBvcnQgeyBFdmVudE1hcHBpbmdSZWdpc3RyeSwgRXZlbnRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5IH0gZnJvbSAnLi9tYXBwaW5ncy9FdmVudE1hcHBpbmdSZWdpc3RyeUZhY3RvcnknO1xyXG5pbXBvcnQge1xyXG4gIEFwaVRvUHJlc0xheWVyTWFwcGluZ1JlZ2lzdHJ5LFxyXG4gIFBhcmFtZXRlck1hcHBpbmdSZWdpc3RyeUZhY3RvcnksXHJcbiAgUHJlc0xheWVyVG9BcGlNYXBwaW5nUmVnaXN0cnksXHJcbn0gZnJvbSAnLi9tYXBwaW5ncy9QYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5JztcclxuXHJcbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvbkhhbmRsZXIgPSAobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25JZCwgbW9kZWw6IE1vZGVsKSA9PiB2b2lkO1xyXG5cclxuLyoqXHJcbiAqIE1haW4gY2xhc3MgZm9yIHRoZSBhcGktY29yZSBwcm9qZWN0LiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBleGVjdXRpbmcgY29tYW1uZCBhbmQgbWFyc2hhbGxpbmcgbm90aWZpY2F0aW9uc1xyXG4gKiBiZXR3ZWVuIHRoZSBpbnRlcm5hbCBBcGkgYW5kIHRoZSBwcmVzLWxheWVyIEFwaS4gQWZ0ZXIgY29uc3RydWN0aW9uLCBTZXRWZXJzaW9uTnVtYmVyIG11c3QgYmUgY2FsbGVkIGluIG9yZGVyIHRvXHJcbiAqIHVzZSB0aGlzIGNsYXNzXHJcbiAqXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIEFwaUV2ZW50SGFuZGxlclxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFwaUV2ZW50SGFuZGxlciB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgVkVSU0lPTl9OT1RfQ09ORklHVVJFRDogc3RyaW5nID0gJ1ZlcnNpb25OdW1iZXIgbm90IHlldCBjb25maWd1cmVkLiBDYW5ub3QgdGFrZSBhbnkgYWN0aW9ucyc7XHJcbiAgcHJpdmF0ZSBfYXBpRXh0ZW5zaW9uTG9jYXRvcjogQXBpRXh0ZW5zaW9uTG9jYXRvcjtcclxuICBwcml2YXRlIF9ldmVudEhhbmRsZXI6IE5vdGlmaWNhdGlvbkhhbmRsZXI7XHJcbiAgcHJpdmF0ZSBfY29tbWFuZFJlZ2lzdHJ5OiBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5O1xyXG4gIHByaXZhdGUgX2V2ZW50UmVnaXN0cnk6IEV2ZW50TWFwcGluZ1JlZ2lzdHJ5O1xyXG4gIHByaXZhdGUgX2FwaVRvUHJlc0xheWVyUmVnaXN0cnk6IEFwaVRvUHJlc0xheWVyTWFwcGluZ1JlZ2lzdHJ5O1xyXG4gIHByaXZhdGUgX3ByZXNMYXllclRvQXBpUmVnaXN0cnk6IFByZXNMYXllclRvQXBpTWFwcGluZ1JlZ2lzdHJ5O1xyXG4gIHByaXZhdGUgX3ZlcnNpb25OdW1iZXI/OiBWZXJzaW9uTnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEFwaUV2ZW50SGFuZGxlci5cclxuICAgKiBAcGFyYW0ge1ByZXNlbnRhdGlvbkxheWVyfSBwcmVzTGF5ZXIgLSBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcHJlcy1sYXllciBBcGkgdG8gdXNlXHJcbiAgICogQHBhcmFtIHtBZGRJbkxvY2F0b3JQcmVzTW9kZWx9IGFkZEluTG9jYXRvclByZXNNb2RlbCAtIGxvY2F0b3IgZm9yIHRoZSBhZGQtaW4gd2hpY2ggaXMgYmVpbmcgcmVmZXJlbmNlZFxyXG4gICAqIEBwYXJhbSB7cnVubmluZ0luRGVza3RvcH0gYm9vbGVhbiAtIHRydWUgaWYgdGhpcyBpcyBBcGlFdmVudEhhbmRsZXIgaXMgY3JlYXRlZCBpbiBhIERlc2t0b3AgY29udGV4dC5cclxuICAgKiBAbWVtYmVyb2YgQXBpRXZlbnRIYW5kbGVyXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfcHJlc0xheWVyOiBQcmVzZW50YXRpb25MYXllcixcclxuICAgICAgICAgICAgICBwcml2YXRlIF9wcmVzTGF5ZXJBZGRJbkxvY2F0b3I6IEFkZEluTG9jYXRvclByZXNNb2RlbCxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9ydW5uaW5nSW5EZXNrdG9wOiBib29sZWFuKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgaW50ZXJuYWwgQXBpIHZlcnNpb24gbnVtYmVyIHdoaWNoIHRoZSBleHRlcm5hbCBsaWJyYXJ5IGlzIGV4cGVjdGluZyB0byB1c2UuIFRoaXMgbXVzdCBiZSBjYWxsZWQgYmVmb3JlXHJcbiAgICogYW55dGhpbmcgZWxzZSBpbiBvcmRlciB0byBwcm9wZXJseSBzZXQgdXAgdGhlIHRyYW5zbGF0aW9uIGxheWVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7VmVyc2lvbk51bWJlcn0gdmVyc2lvbk51bWJlclxyXG4gICAqIEBtZW1iZXJvZiBBcGlFdmVudEhhbmRsZXJcclxuICAgKi9cclxuICBwdWJsaWMgc2V0VmVyc2lvbk51bWJlcih2ZXJzaW9uTnVtYmVyOiBWZXJzaW9uTnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl92ZXJzaW9uTnVtYmVyID0gdmVyc2lvbk51bWJlcjtcclxuXHJcbiAgICAvLyBJbml0aWFsaXplIGFsbCBvdXIgcmVnaXN0cmllc1xyXG4gICAgdGhpcy5fY29tbWFuZFJlZ2lzdHJ5ID0gQ29tbWFuZE1hcHBpbmdSZWdpc3RyeUZhY3RvcnkuY3JlYXRlQ29tbWFuZE1hcHBpbmdSZWdpc3RyeSh2ZXJzaW9uTnVtYmVyLCB0aGlzLl9ydW5uaW5nSW5EZXNrdG9wKTtcclxuICAgIHRoaXMuX2FwaVRvUHJlc0xheWVyUmVnaXN0cnkgPSBQYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5LmNyZWF0ZUFwaVRvUHJlc0xheWVyUGFyYW1SZWdpc3RyeSh2ZXJzaW9uTnVtYmVyKTtcclxuICAgIHRoaXMuX3ByZXNMYXllclRvQXBpUmVnaXN0cnkgPSBQYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5LmNyZWF0ZVByZXNMYXllclRvQXBpUGFyYW1SZWdpc3RyeSh2ZXJzaW9uTnVtYmVyKTtcclxuICAgIHRoaXMuX2V2ZW50UmVnaXN0cnkgPSBFdmVudE1hcHBpbmdSZWdpc3RyeUZhY3RvcnkuY3JlYXRlRXZlbnRNYXBwaW5nUmVnaXN0cnkodmVyc2lvbk51bWJlcik7XHJcblxyXG4gICAgLy8gQ29udmVydCBvdXIgYWRkSW5Mb2NhdG9yIHRvIHRoZSBBcGkgdmVyc2lvblxyXG4gICAgdGhpcy5fYXBpRXh0ZW5zaW9uTG9jYXRvciA9IHRoaXMuX3ByZXNMYXllclRvQXBpUmVnaXN0cnlcclxuICAgICAgLmdldChQcmVzTGF5ZXJQYXJhbWV0ZXJJZC5BZGRJbkxvY2F0b3IsIEFwaVBhcmFtZXRlcklkLkV4dGVuc2lvbkxvY2F0b3IpKHRoaXMuX3ByZXNMYXllckFkZEluTG9jYXRvcikgYXMgQXBpRXh0ZW5zaW9uTG9jYXRvcjtcclxuXHJcbiAgICBmb3IgKGNvbnN0IHBsRXZlbnRJZCBvZiBPYmplY3Qua2V5cyh0aGlzLl9ldmVudFJlZ2lzdHJ5KSkge1xyXG4gICAgICAvLyBSZWdpc3RlciBmb3IgYWxsIG5vdGlmaWNhdGlvbnMgd2Uga25vdyBhYm91dCBhbmQgYmluZCB0aGUgZXZlbnQgdHlwZSB0byB0aGUgY2FsbGJhY2tcclxuICAgICAgdGhpcy5fcHJlc0xheWVyLnJlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlcihwbEV2ZW50SWQsIHRoaXMub25QcmVzTGF5ZXJOb3RpZmljYXRpb24uYmluZCh0aGlzLCBwbEV2ZW50SWQpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgYW4gZXZlbnQgaGFuZGxlciBmdW5jdGlvbiB0byBiZSBub3RpZmllZCB3aGVuIEFwaSBldmVudHMgY29tZSBpbi4gT25seSBhIHNpbmdsZSByZWdpc3RyYXRpb24gaXMgc3VwcG9ydGVkLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtOb3RpZmljYXRpb25IYW5kbGVyfSBldmVudEhhbmRsZXJcclxuICAgKiBAbWVtYmVyb2YgQXBpRXZlbnRIYW5kbGVyXHJcbiAgICovXHJcbiAgcHVibGljIHNldEV2ZW50SGFuZGxlcihldmVudEhhbmRsZXI6IE5vdGlmaWNhdGlvbkhhbmRsZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2V2ZW50SGFuZGxlciA9IGV2ZW50SGFuZGxlcjtcclxuXHJcbiAgICAvLyBUT0RPIC0gUmVnaXN0ZXIgZm9yIHByZXMgbGF5ZXIgZXZlbnRzXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGVjdXRlcyB0aGUgcmVxdWVzdGVkIEFwaSBjb21tYW5kIGJ5IGNvbnZlcnRpbmcgdGhlIHBhcmFtZXRlcnMsIHJ1bm5pbmcgdGhlIGNvbW1hbmQgYWdhaW5zdCB0aGUgcHJlcy1sYXllcixcclxuICAgKiB0aGVuIHByb2Nlc3NpbmcgdGhlIHJlc3VsdCBiYWNrIGludG8gYSBmb3JtYXQgdGhlIEFwaSBjYW4gdW5kZXJzdGFuZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtWZXJiSWR9IHZlcmJcclxuICAgKiBAcGFyYW0ge0V4ZWN1dGVQYXJhbWV0ZXJzfSBwYXJhbWV0ZXJzXHJcbiAgICogQHJldHVybnMge1Byb21pc2U8RXhlY3V0ZVJlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgQXBpRXZlbnRIYW5kbGVyXHJcbiAgICovXHJcbiAgcHVibGljIGV4ZWN1dGUodmVyYjogVmVyYklkLCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyk6IFByb21pc2U8RXhlY3V0ZVJlc3BvbnNlPiB7XHJcbiAgICB0aGlzLmFzc2VydEluaXRpYWxpemVkKCk7XHJcblxyXG4gICAgY29uc3QgY29tbWFuZCA9IHRoaXMuX2NvbW1hbmRSZWdpc3RyeS5nZXRDb21tYW5kKHZlcmIpO1xyXG4gICAgcGFyYW1ldGVycyA9IHBhcmFtZXRlcnMgfHwge307XHJcblxyXG4gICAgLy8gQXVnbWVudCB0aGUgY29tbWFuZCB3aXRoIHRoZSBsb2NhdG9yIGlmIGl0J3MgbmVlZGVkXHJcbiAgICBpZiAoY29tbWFuZC5uZWVkc0FkZEluTG9jYXRvcikge1xyXG4gICAgICBwYXJhbWV0ZXJzW0FwaVBhcmFtZXRlcklkLkV4dGVuc2lvbkxvY2F0b3JdID0gdGhpcy5fYXBpRXh0ZW5zaW9uTG9jYXRvcjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb21tYW5kc1BhcmFtcyA9IGNvbW1hbmQuY3JlYXRlUGFyYW1zKHBhcmFtZXRlcnMsIHRoaXMuX2FwaVRvUHJlc0xheWVyUmVnaXN0cnkpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9wcmVzTGF5ZXIuaW52b2tlQ29tbWFuZDx7W2RvY1BhcmFtSWQ6IHN0cmluZ106IG9iamVjdH0+KGNvbW1hbmQubmFtZXNwYWNlLCBjb21tYW5kLmNvbW1hbmRJZCwgY29tbWFuZHNQYXJhbXMpXHJcbiAgICAudGhlbjxFeGVjdXRlUmVzcG9uc2U+KChjb21tYW5kUmVzdWx0KSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnZlcnRlZFJlc3VsdCA9IGNvbW1hbmQuUHJvY2Vzc1Jlc3VsdChjb21tYW5kUmVzdWx0LCB0aGlzLl9wcmVzTGF5ZXJUb0FwaVJlZ2lzdHJ5KTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICByZXN1bHQ6IGNvbnZlcnRlZFJlc3VsdFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IEFwaUV4dGVuc2lvbkxvY2F0b3IoKTogQXBpRXh0ZW5zaW9uTG9jYXRvciB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXBpRXh0ZW5zaW9uTG9jYXRvcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlbHBlciBtZXRob2QgdG8gY2hlY2sgdGhhdCB0aGluZ3MgYXJlIGluaXRpYWxpemVkIGFzIGV4cGVjdGVkLiBUaHJvd3MgaWYgaW5pdGlhbGl6YXRpb24gbm90IGNvbXBsZXRlXHJcbiAgICpcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIEBtZW1iZXJvZiBBcGlFdmVudEhhbmRsZXJcclxuICAgKi9cclxuICBwcml2YXRlIGFzc2VydEluaXRpYWxpemVkKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl92ZXJzaW9uTnVtYmVyKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoQXBpRXZlbnRIYW5kbGVyLlZFUlNJT05fTk9UX0NPTkZJR1VSRUQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIHdoZW4gYSBuZXcgZXZlbnQgbm90aWZpY2F0aW9uIGNvbWVzIGluIGZyb20gdGhlIHByZXNlbnRhdGlvbiBsYXllclxyXG4gICAqXHJcbiAgICogQHBhcmFtIGV2ZW50SWQgVGhlIHByZXMgbGF5ZXIgZXZlbnQgaWRcclxuICAgKiBAcGFyYW0gcHJlc01vZGVsIFRoZSBwcmVzIG1vZGVsIHRoYXQgaXMgaW5jbHVkZWQgd2l0aCB0aGUgZXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIG9uUHJlc0xheWVyTm90aWZpY2F0aW9uKGV2ZW50SWQ6IFByZXNMYXllckV2ZW50SWQsIHByZXNNb2RlbDogUHJlc2VudGF0aW9uTW9kZWwpOiB2b2lkIHtcclxuICAgIC8vIEZpcnN0IGxvb2sgdXAgdGhpcyBldmVudElkIGluIG91ciByZWdpc3RyeSBhbmQgY29udmVydCB0byBwcmVzTW9kZWxcclxuICAgIGNvbnN0IGV2ZW50TWFwcGluZyA9IHRoaXMuX2V2ZW50UmVnaXN0cnlbZXZlbnRJZF07XHJcbiAgICBjb25zdCBhcGlNb2RlbCA9IGV2ZW50TWFwcGluZy5jb252ZXJ0ZXIocHJlc01vZGVsKTtcclxuXHJcbiAgICBpZiAodGhpcy5fZXZlbnRIYW5kbGVyKSB7XHJcbiAgICAgIHRoaXMuX2V2ZW50SGFuZGxlcihldmVudE1hcHBpbmcuYXBpSWQsIGFwaU1vZGVsKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktY29yZS9zcmMvQXBpRXZlbnRIYW5kbGVyLnRzXG4gKiovIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy9cclxuLy8gVGhpcyBmaWxlIGlzIHRoZSBjb3B5cmlnaHRlZCBwcm9wZXJ0eSBvZiBUYWJsZWF1IFNvZnR3YXJlIGFuZCBpcyBwcm90ZWN0ZWRcclxuLy8gYnkgcmVnaXN0ZXJlZCBwYXRlbnRzIGFuZCBvdGhlciBhcHBsaWNhYmxlIFUuUy4gYW5kIGludGVybmF0aW9uYWwgbGF3cyBhbmRcclxuLy8gcmVndWxhdGlvbnMuXHJcbi8vXHJcbi8vIFVubGljZW5zZWQgdXNlIG9mIHRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgaXMgcHJvaGliaXRlZC4gUGxlYXNlIHJlZmVyIHRvXHJcbi8vIHRoZSBOT1RJQ0VTLnR4dCBmaWxlIGZvciBmdXJ0aGVyIGRldGFpbHMuXHJcbi8vXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIFdBUk5JTkc6IENvbXB1dGVyIGdlbmVyYXRlZCBmaWxlLiAgRG8gbm90IGhhbmQgbW9kaWZ5LlxyXG4vLyBERVBFTkRTIE9OOiBbJy4uL3R5cGVzY3JpcHQvanMtYXBpL2FwaS1jb3JlL25vZGVfbW9kdWxlcy9AdGFibGVhdS9wcmVzbGF5ZXItY29kZWdlbi10eXBlc2NyaXB0L3RlbXBsYXRlcy9wYXJhbXMtdHMudGVtcGxhdGUnLCB1Jy4uL3R5cGVzY3JpcHQvanMtYXBpL2FwaS1jb3JlL3RlbXAtcHJlcy1sYXllci9hbGwtcGFyYW1zLmRhdGEnXVxyXG5cclxuZXhwb3J0IGVudW0gUGFyYW1ldGVySWQge1xyXG5cclxuICAvLyBEUElfSW50ZWdlclJMRSwgaGF2aW5nIHR5cGUgaW50W11cclxuICBJbnRlZ2VyUkxFID0gJ2ludFJsZScsXHJcblxyXG4gIC8vIERQSV9VbnNpZ25lZEludGVnZXJSTEUsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIFVuc2lnbmVkSW50ZWdlclJMRSA9ICd1aW50UmxlJyxcclxuXHJcbiAgLy8gRFBJX0Zsb2F0UkxFLCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgRmxvYXRSTEUgPSAnZmxvYXRSbGUnLFxyXG5cclxuICAvLyBEUElfUGFyYW1ldGVySUQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhcmFtZXRlcklEID0gJ3BhcmFtVHlwZScsXHJcblxyXG4gIC8vIERQSV9BbGxvd0N1c3RvbURhdGFiYXNlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dDdXN0b21EYXRhYmFzZSA9ICdhbGxvd0N1c3RvbURhdGFiYXNlJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93Q3VzdG9tU2NoZW1hLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dDdXN0b21TY2hlbWEgPSAnYWxsb3dDdXN0b21TY2hlbWEnLFxyXG5cclxuICAvLyBEUElfQWxsb3dDdXN0b21TUUwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd0N1c3RvbVNRTCA9ICdhbGxvd0N1c3RvbVNxbCcsXHJcblxyXG4gIC8vIERQSV9BbGxvd0N1c3RvbVNRTFdpdGhvdXRTY2hlbWEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd0N1c3RvbVNRTFdpdGhvdXRTY2hlbWEgPSAnYWxsb3dDdXN0b21TcWxXaXRob3V0U2NoZW1hJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93UHJldmlld0RhdGEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1ByZXZpZXdEYXRhID0gJ2FsbG93UHJldmlld0RhdGEnLFxyXG5cclxuICAvLyBEUElfQWxsb3dTdG9yZWRQcm9jLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dTdG9yZWRQcm9jID0gJ2FsbG93U3RvcmVkUHJvY2VkdXJlJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93VW5pb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1VuaW9uID0gJ2FsbG93VW5pb24nLFxyXG5cclxuICAvLyBEUElfQXJlVmFyaWFibGVzVmlzaWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFyZVZhcmlhYmxlc1Zpc2libGUgPSAnYXJlVmFyaWFibGVzVmlzaWJsZScsXHJcblxyXG4gIC8vIERQSV9BdHRyTGVnYWN5Q29ubmVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEF0dHJMZWdhY3lDb25uZWN0aW9uID0gJ3dpZGdldEF0dHJMZWdhY3knLFxyXG5cclxuICAvLyBEUElfQXR0clJlYWRVbmNvbW1pdHRlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEF0dHJSZWFkVW5jb21taXR0ZWQgPSAnd2lkZ2V0QXR0clJlYWRVbmNvbW1pdHRlZERhdGEnLFxyXG5cclxuICAvLyBEUElfQXR0clJlcXVpcmVTU0wsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBdHRyUmVxdWlyZVNTTCA9ICd3aWRnZXRBdHRyUmVxdWlyZVNzbCcsXHJcblxyXG4gIC8vIERQSV9BdHRyUmVxdWlyZUVuY3J5cHRpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBBdHRyUmVxdWlyZUVuY3J5cHRpb24gPSAnd2lkZ2V0QXR0clJlcXVpcmVFbmNyeXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0Jvb2wsIGhhdmluZyB0eXBlIGJvb2xcclxuICBCb29sID0gJ2Jvb2wnLFxyXG5cclxuICAvLyBEUElfQ2FuUGFydGl0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuUGFydGl0aW9uID0gJ2NhblBhcnRpdGlvbicsXHJcblxyXG4gIC8vIERQSV9DYW5SZWNvbW1lbmREYXRhU291cmNlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblJlY29tbWVuZERhdGFTb3VyY2VzID0gJ2NhblJlY29tbWVuZERhdGFzb3VyY2VzJyxcclxuXHJcbiAgLy8gRFBJX0NhblJlY29tbWVuZFRhYmxlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblJlY29tbWVuZFRhYmxlcyA9ICdjYW5SZWNvbW1lbmRUYWJsZXMnLFxyXG5cclxuICAvLyBEUElfQ2hlY2tQZXJtaXNzaW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENoZWNrUGVybWlzc2lvbnMgPSAnY2hlY2tQZXJtaXNzaW9ucycsXHJcblxyXG4gIC8vIERQSV9EYXRhYmFzZU5hbWVPcHRpb25hbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERhdGFiYXNlTmFtZU9wdGlvbmFsID0gJ2RhdGFiYXNlTmFtZU9wdGlvbmFsJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFiYXNlV0hPcHRpb25hbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERhdGFiYXNlV0hPcHRpb25hbCA9ICdkYXRhYmFzZVdhcmVob3VzZU9wdGlvbmFsJyxcclxuXHJcbiAgLy8gRFBJX0RvVmFsaWRhdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERvVmFsaWRhdGlvbiA9ICdkb1ZhbGlkYXRpb24nLFxyXG5cclxuICAvLyBEUElfRG9uZUxvYWRpbmdBbGxTaGVldHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBEb25lTG9hZGluZ0FsbFNoZWV0cyA9ICdnb29nbGVTaGVldERvbmVMb2FkaW5nJyxcclxuXHJcbiAgLy8gRFBJX0dBQmFzaWNJdGVtc0VuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBHQUJhc2ljSXRlbXNFbmFibGVkID0gJ2dhQmFzaWNJdGVtc0VuYWJsZWQnLFxyXG5cclxuICAvLyBEUElfR0FEaW1lbnNpb25NZWFzdXJlc0VuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBHQURpbWVuc2lvbk1lYXN1cmVzRW5hYmxlZCA9ICdnYURpbWVuc2lvbnNNZWFzdXJlc0VuYWJsZWQnLFxyXG5cclxuICAvLyBEUElfR0FGaWx0ZXJzRW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEdBRmlsdGVyc0VuYWJsZWQgPSAnZ2FGaWx0ZXJzRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9IYXNEYXRhYmFzZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0RhdGFiYXNlID0gJ2hhc0RhdGFiYXNlJyxcclxuXHJcbiAgLy8gRFBJX0hhc0RhdGFMb3NzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzRGF0YUxvc3MgPSAnaGFzRGF0YUxvc3MnLFxyXG5cclxuICAvLyBEUElfSGFzRmFzdE1ldGFkYXRhLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzRmFzdE1ldGFkYXRhID0gJ2hhc0Zhc3RNZXRhZGF0YScsXHJcblxyXG4gIC8vIERQSV9IYXNOZXdseURpc2NvdmVyZWRTY2hlbWEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNOZXdseURpc2NvdmVyZWRTY2hlbWEgPSAnaGFzTmV3bHlEaXNjb3ZlcmVkU2NoZW1hJyxcclxuXHJcbiAgLy8gRFBJX0hhc1Blcm1pc3Npb25zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzUGVybWlzc2lvbnMgPSAnaGFzUGVybWlzc2lvbnMnLFxyXG5cclxuICAvLyBEUElfSGFzU2NoZW1hLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzU2NoZW1hID0gJ2hhc1NjaGVtYScsXHJcblxyXG4gIC8vIERQSV9IYXNTY2hlbWFDb3VudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1NjaGVtYUNvdW50ID0gJ2hhc1NjaGVtYUNvdW50JyxcclxuXHJcbiAgLy8gRFBJX0hhc1RhYmxlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1RhYmxlcyA9ICdoYXNUYWJsZXMnLFxyXG5cclxuICAvLyBEUElfSGFzVW5jb21taXR0ZWRDaGFuZ2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzVW5jb21taXR0ZWRDaGFuZ2VzID0gJ2hhc1VuY29tbWl0dGVkQ2hhbmdlcycsXHJcblxyXG4gIC8vIERQSV9IYXNXYXJlaG91c2UsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNXYXJlaG91c2UgPSAnaGFzV2FyZWhvdXNlJyxcclxuXHJcbiAgLy8gRFBJX0hhc1dhcm5pbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNXYXJuaW5nID0gJ2hhc1dhcm5pbmcnLFxyXG5cclxuICAvLyBEUElfSXNDYWxjdWxhdGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDYWxjdWxhdGVkID0gJ2lzQ2FsY3VsYXRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0Nvbm5lY3RlZFRvRGF0YVNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQ29ubmVjdGVkVG9EYXRhU291cmNlID0gJ2lzQ29ubmVjdGVkRGF0YXNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9Jc0Rpc2FibGVkRGF0YUNvbm5lY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0Rpc2FibGVkRGF0YUNvbm5lY3Rpb24gPSAnaXNEaXNhYmxlZERhdGFDb25uZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0lzRWRpdGFibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0VkaXRhYmxlID0gJ2lzRWRpdGFibGUnLFxyXG5cclxuICAvLyBEUElfSXNFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNFbmFibGVkID0gJ2lzRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0ZpbmlzaGVkQ29ubmVjdGluZywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRmluaXNoZWRDb25uZWN0aW5nID0gJ2lzRmluaXNoZWRDb25uZWN0aW5nJyxcclxuXHJcbiAgLy8gRFBJX0lzSGlkZGVuLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNIaWRkZW4gPSAnaXNIaWRkZW4nLFxyXG5cclxuICAvLyBEUElfSXNNdWx0aVRhYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNNdWx0aVRhYmxlID0gJ2lzTXVsdGlUYWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc05ld0N1c3RvbVNRTCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTmV3Q3VzdG9tU1FMID0gJ2lzTmV3Q3VzdG9tU3FsJyxcclxuXHJcbiAgLy8gRFBJX0lzTmV3RGF0YVNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTmV3RGF0YVNvdXJjZSA9ICdpc05ld0RhdGFTcmMnLFxyXG5cclxuICAvLyBEUElfSXNQdWJsaXNoZWRGZWRlcmF0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1B1Ymxpc2hlZEZlZGVyYXRlZCA9ICdpc1B1Ymxpc2hlZEZlZGVyYXRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1NhbXBsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1NhbXBsZWQgPSAnaXNTYW1wbGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzU2NoZW1hTWVtYmVyTmV3bHlEaXNjb3ZlcmVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTY2hlbWFNZW1iZXJOZXdseURpc2NvdmVyZWQgPSAnaXNTY2hlbWFNZW1iZXJOZXdseURpc2NvdmVyZWQnLFxyXG5cclxuICAvLyBEUElfSXNTbG93RmFzdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU2xvd0Zhc3QgPSAnaXNTbG93ZmFzdCcsXHJcblxyXG4gIC8vIERQSV9Jc1N1cHBvcnRlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU3VwcG9ydGVkID0gJ2lzU3VwcG9ydGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzVGFibGVTZWxlY3Rpb25WaXNpYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUYWJsZVNlbGVjdGlvblZpc2libGUgPSAnaXNUYWJsZVNlbGVjdGlvblZpc2libGUnLFxyXG5cclxuICAvLyBEUElfSXNUYWJsZWF1U2VydmVyRGF0YXNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVGFibGVhdVNlcnZlckRhdGFzb3VyY2UgPSAnaXNUYWJsZWF1U2VydmVyRGF0YXNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9Jc1RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlQ29ubmVjdGFibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlQ29ubmVjdGFibGUgPSAnaXNUYWJsZWF1U2VydmVyRGF0YXNvdXJjZUNvbm5lY3RhYmxlJyxcclxuXHJcbiAgLy8gRFBJX0lzVGFibGVhdVNlcnZlckRhdGFzb3VyY2VEb3dubG9hZGFibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlRG93bmxvYWRhYmxlID0gJ2lzVGFibGVhdVNlcnZlckRhdGFzb3VyY2VEb3dubG9hZGFibGUnLFxyXG5cclxuICAvLyBEUElfSXNWaXNpYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNWaXNpYmxlID0gJ2lzVmlzaWJsZScsXHJcblxyXG4gIC8vIERQSV9OZWVkRmxhdHRlbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE5lZWRGbGF0dGVuID0gJ25lZWRGbGF0dGVuJyxcclxuXHJcbiAgLy8gRFBJX1NTTFJlcXVpcmVzQ2VydGlmaWNhdGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTU0xSZXF1aXJlc0NlcnRpZmljYXRlID0gJ3NzbFJlcXVpcmVzQ2VydGlmaWNhdGUnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hT3B0aW9uYWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTY2hlbWFPcHRpb25hbCA9ICdzY2hlbWFPcHRpb25hbCcsXHJcblxyXG4gIC8vIERQSV9TZXJ2aWNlTmFtZU9wdGlvbmFsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2VydmljZU5hbWVPcHRpb25hbCA9ICdzZXJ2aWNlTmFtZU9wdGlvbmFsJyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZFdhcm5Gb3JDcm9zc1NjaGVtYUpvaW5zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkV2FybkZvckNyb3NzU2NoZW1hSm9pbnMgPSAnc2hvdWxkV2FybkNyb3NzU2NoZW1hSm9pbnMnLFxyXG5cclxuICAvLyBEUElfU2hvd0Jyb3dzZUJ1dHRvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dCcm93c2VCdXR0b24gPSAnc2hvd0Jyb3dzZUJ1dHRvbicsXHJcblxyXG4gIC8vIERQSV9TaG93Q29ubmVjdGlvblByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dDb25uZWN0aW9uUHJvbXB0ID0gJ3Nob3dDb25uZWN0aW9uUHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX1Nob3dEQkJyb3dzZUJ1dHRvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dEQkJyb3dzZUJ1dHRvbiA9ICdzaG93RGJCcm93c2VCdXR0b24nLFxyXG5cclxuICAvLyBEUElfU2hvd0RCTmFtZVByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dEQk5hbWVQcm9tcHQgPSAnc2hvd0RiUHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX1Nob3dEQldITmFtZVByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dEQldITmFtZVByb21wdCA9ICdzaG93RGJ3aFByb21wdCcsXHJcblxyXG4gIC8vIERQSV9TaG93SW1wb3J0U1NMQ2VydExhYmVsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0ltcG9ydFNTTENlcnRMYWJlbCA9ICdzaG93SW1wb3J0U3NsY2VydExhYmVsJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dQb3J0UHJvbXB0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1BvcnRQcm9tcHQgPSAnc2hvd1BvcnRQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfU2hvd1NTTENoZWNrYm94LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1NTTENoZWNrYm94ID0gJ3Nob3dTc2xDaGVja2JveCcsXHJcblxyXG4gIC8vIERQSV9TaG93RW5jcnlwdGlvbkNoZWNrYm94LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0VuY3J5cHRpb25DaGVja2JveCA9ICdzaG93RW5jcnlwdGlvbkNoZWNrYm94JyxcclxuXHJcbiAgLy8gRFBJX1Nob3dTZXJ2ZXJOYW1lUHJvbXB0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1NlcnZlck5hbWVQcm9tcHQgPSAnc2hvd1NlcnZlclByb21wdCcsXHJcblxyXG4gIC8vIERQSV9TaG93U2VydmljZU5hbWVQcm9tcHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93U2VydmljZU5hbWVQcm9tcHQgPSAnc2hvd1NlcnZpY2VQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfU2hvd1VuY29tbWl0dGVkRGF0YUNoZWNrYm94LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1VuY29tbWl0dGVkRGF0YUNoZWNrYm94ID0gJ3Nob3dVbmNvbW1pdHRlZERhdGFDaGVja2JveCcsXHJcblxyXG4gIC8vIERQSV9TdXBwb3J0c0dlbmVyaWNBdXRoLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VwcG9ydHNHZW5lcmljQXV0aCA9ICdzdXBwb3J0c0dlbmVyaWNBdXRoJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJGZXRjaEFzY2VuZGluZywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFRhYmxlYXVTZXJ2ZXJGZXRjaEFzY2VuZGluZyA9ICd0YWJsZWF1U2VydmVyRmV0Y2hBc2NlbmRpbmcnLFxyXG5cclxuICAvLyBEUElfVXNlc1JhZGlvQnV0dG9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlc1JhZGlvQnV0dG9uID0gJ3VzZXNSYWRpb0J1dHRvbicsXHJcblxyXG4gIC8vIERQSV9CaWdRdWVyeUxlZ2FjeVNRTENoZWNrU3RhdHVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQmlnUXVlcnlMZWdhY3lTUUxDaGVja1N0YXR1cyA9ICdkYXRhc291cmNlQmlncXVlcnlMZWdhY3lTcWxDaGVja1N0YXR1cycsXHJcblxyXG4gIC8vIERQSV9IYXNCaWdRdWVyeUxlZ2FjeVNRTENoZWNrLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzQmlnUXVlcnlMZWdhY3lTUUxDaGVjayA9ICdkYXRhc291cmNlQmlncXVlcnlMZWdhY3lTcWxDaGVjaycsXHJcblxyXG4gIC8vIERQSV9BdXRvRmV0Y2hMaW1pdCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgQXV0b0ZldGNoTGltaXQgPSAnYXV0b0ZldGNoTGltaXQnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvblR5cGUsIGhhdmluZyB0eXBlIGludFxyXG4gIENvbm5lY3Rpb25UeXBlID0gJ2Nvbm5lY3Rpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0ljb25JZCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSWNvbklkID0gJ2ljb25JZCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZENhdGFsb2dJbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU2VsZWN0ZWRDYXRhbG9nSW5kZXggPSAnc2VsZWN0ZWRDYXRhbG9nSW5kZXgnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0ZWRDdWJlSW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNlbGVjdGVkQ3ViZUluZGV4ID0gJ3NlbGVjdGVkQ3ViZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkR0FBY2NvdW50SW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNlbGVjdGVkR0FBY2NvdW50SW5kZXggPSAnc2VsZWN0ZWRHYUFjY291bnRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZEdBTWVhc3VyZVNldEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBTZWxlY3RlZEdBTWVhc3VyZVNldEluZGV4ID0gJ3NlbGVjdGVkR2FNZWFzdXJlU2V0SW5kZXgnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0ZWRHQVByb3BlcnR5SW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNlbGVjdGVkR0FQcm9wZXJ0eUluZGV4ID0gJ3NlbGVjdGVkR2FQcm9wZXJ0eUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkR0FTZWdtZW50SW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNlbGVjdGVkR0FTZWdtZW50SW5kZXggPSAnc2VsZWN0ZWRHYVNlZ21lbnRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZEdBVmlld0luZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBTZWxlY3RlZEdBVmlld0luZGV4ID0gJ3NlbGVjdGVkR2FWaWV3SW5kZXgnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0ZWRHb29nbGVTaGVldEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBTZWxlY3RlZEdvb2dsZVNoZWV0SW5kZXggPSAnc2VsZWN0ZWRHb29nbGVTaGVldEluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkT3B0aW9uSW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNlbGVjdGVkT3B0aW9uSW5kZXggPSAnc2VsZWN0ZWRPcHRpb25JbmRleCcsXHJcblxyXG4gIC8vIERQSV9TbG93TWV0YWRhdGFDb3VudCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU2xvd01ldGFkYXRhQ291bnQgPSAnc2xvd01ldGFkYXRhQ291bnQnLFxyXG5cclxuICAvLyBEUElfVGFibGVhdVNlcnZlckZldGNoU29ydEJ5LCBoYXZpbmcgdHlwZSBpbnRcclxuICBUYWJsZWF1U2VydmVyRmV0Y2hTb3J0QnkgPSAndGFibGVhdVNlcnZlckZldGNoU29ydCcsXHJcblxyXG4gIC8vIERQSV9BY3R1YWxQYXJhbWV0ZXJPcmRpbmFsLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQWN0dWFsUGFyYW1ldGVyT3JkaW5hbCA9ICdhY3R1YWxQYXJhbWV0ZXJPcmRpbmFsJyxcclxuXHJcbiAgLy8gRFBJX0FjdHVhbFBhcmFtZXRlclR5cGUsIGhhdmluZyB0eXBlIHVpbnRcclxuICBBY3R1YWxQYXJhbWV0ZXJUeXBlID0gJ2FjdHVhbFBhcmFtZXRlclR5cGUnLFxyXG5cclxuICAvLyBEUElfQ2hhclNldElELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQ2hhclNldElEID0gJ2NoYXJzZXRJZCcsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlT3JkaW5hbCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIERhdGFTb3VyY2VPcmRpbmFsID0gJ2RhdGFzb3VyY2VPcmRpbmFsJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckNvdW50LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRmlsdGVyQ291bnQgPSAnZmlsdGVyQ291bnQnLFxyXG5cclxuICAvLyBEUElfVmFyaWFibGVzQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBWYXJpYWJsZXNDb3VudCA9ICd2YXJpYWJsZXNDb3VudCcsXHJcblxyXG4gIC8vIERQSV9BY3R1YWxQYXJhbWV0ZXJEaXNwbGF5TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWN0dWFsUGFyYW1ldGVyRGlzcGxheU5hbWUgPSAnYWN0dWFsUGFyYW1ldGVyRGlzcGxheU5hbWUnLFxyXG5cclxuICAvLyBEUElfQWN0dWFsUGFyYW1ldGVyTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWN0dWFsUGFyYW1ldGVyTmFtZSA9ICdhY3R1YWxQYXJhbWV0ZXJOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0FjdHVhbFBhcmFtZXRlclZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBY3R1YWxQYXJhbWV0ZXJWYWx1ZSA9ICdhY3R1YWxQYXJhbWV0ZXJWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9BdHRyQVBJVmVyc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ckFQSVZlcnNpb24gPSAnYXR0ckFwaVZlcnNpb24nLFxyXG5cclxuICAvLyBEUElfQXR0ckF1dGhUeXBlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyQXV0aFR5cGUgPSAnd2lkZ2V0QXR0ckF1dGh0eXBlJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJBdXRoZW50aWNhdG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyQXV0aGVudGljYXRvciA9ICd3aWRnZXRBdHRyQXV0aGVudGljYXRvcicsXHJcblxyXG4gIC8vIERQSV9BdHRyQ29ubmVjdGlvbkRhdGEsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJDb25uZWN0aW9uRGF0YSA9ICdhdHRyQ29ubmVjdGlvbkRhdGEnLFxyXG5cclxuICAvLyBEUElfQXR0ckNvbm5lY3Rpb25OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyQ29ubmVjdGlvbk5hbWUgPSAnYXR0ckNvbm5lY3Rpb25OYW1lJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJDb25uZWN0aW9uVHlwZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ckNvbm5lY3Rpb25UeXBlID0gJ3dpZGdldEF0dHJDb25uZWN0aW9udHlwZScsXHJcblxyXG4gIC8vIERQSV9BdHRyQ29ubmVjdGlvblVSTCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ckNvbm5lY3Rpb25VUkwgPSAnYXR0ckNvbm5lY3Rpb25VcmwnLFxyXG5cclxuICAvLyBEUElfQXR0ckN1YmVTcGVjaWZpY2F0aW9uSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJDdWJlU3BlY2lmaWNhdGlvbklkID0gJ3dpZGdldEF0dHJDdWJlU3BlY2lmaWNhdGlvbklkJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJDdWJlU3BlY2lmaWNhdGlvblZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyQ3ViZVNwZWNpZmljYXRpb25WYWx1ZSA9ICd3aWRnZXRBdHRyQ3ViZVNwZWNpZmljYXRpb25WYWx1ZScsXHJcblxyXG4gIC8vIERQSV9BdHRyRFNOLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyRFNOID0gJ3dpZGdldEF0dHJEc24nLFxyXG5cclxuICAvLyBEUElfQXR0ckRhdGFiYXNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyRGF0YWJhc2UgPSAnd2lkZ2V0QXR0ckRiJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJEYXRhYmFzZVdhcmVob3VzZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ckRhdGFiYXNlV2FyZWhvdXNlID0gJ3dpZGdldEF0dHJEYndoJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJEcml2ZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJEcml2ZXIgPSAnd2lkZ2V0QXR0ckRyaXZlcicsXHJcblxyXG4gIC8vIERQSV9BdHRyRmlsZW5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJGaWxlbmFtZSA9ICd3aWRnZXRBdHRyRmlsZW5hbWUnLFxyXG5cclxuICAvLyBEUElfQXR0ckhUVFBQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRySFRUUFBhdGggPSAnd2lkZ2V0QXR0ckh0dHBQYXRoJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJJbmNyZW1lbnRhbFJlZnJlc2hLZXksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJJbmNyZW1lbnRhbFJlZnJlc2hLZXkgPSAnYXR0ckluY3JlbWVudGFsUmVmcmVzaEtleScsXHJcblxyXG4gIC8vIERQSV9BdHRyS2VyYmVyb3NIb3N0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyS2VyYmVyb3NIb3N0ID0gJ3dpZGdldEF0dHJLZXJiZXJvc0hvc3QnLFxyXG5cclxuICAvLyBEUElfQXR0cktlcmJlcm9zUmVhbG0sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJLZXJiZXJvc1JlYWxtID0gJ3dpZGdldEF0dHJLZXJiZXJvc1JlYWxtJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJLZXJiZXJvc1NlcnZpY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJLZXJiZXJvc1NlcnZpY2UgPSAnd2lkZ2V0QXR0cktlcmJlcm9zU2VydmljZScsXHJcblxyXG4gIC8vIERQSV9BdHRyTGFzdFJlY29yZFRva2VuLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyTGFzdFJlY29yZFRva2VuID0gJ2F0dHJMYXN0UmVjb3JkVG9rZW4nLFxyXG5cclxuICAvLyBEUElfQXR0ck1EV1BhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJNRFdQYXRoID0gJ3dpZGdldEF0dHJNZHdQYXRoJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJNRFdVc2VybmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ck1EV1VzZXJuYW1lID0gJ3dpZGdldEF0dHJNZHdVc2VybmFtZScsXHJcblxyXG4gIC8vIERQSV9BdHRyT0RCQ1Byb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ck9EQkNQcm9tcHQgPSAnd2lkZ2V0QXR0ck9kYmNQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfQXR0ck9EQkNTdHJpbmdFeHRyYXMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJPREJDU3RyaW5nRXh0cmFzID0gJ3dpZGdldEF0dHJPZGJjU3RyaW5nRXh0cmFzJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJQb3J0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyUG9ydCA9ICd3aWRnZXRBdHRyUG9ydCcsXHJcblxyXG4gIC8vIERQSV9BdHRyU0FQQ2xpZW50LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyU0FQQ2xpZW50ID0gJ3dpZGdldEF0dHJTYXBDbGllbnQnLFxyXG5cclxuICAvLyBEUElfQXR0clNBUExhbmd1YWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyU0FQTGFuZ3VhZ2UgPSAnd2lkZ2V0QXR0clNhcExhbmd1YWdlJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJFZGl0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyRWRpdGlvbiA9ICd3aWRnZXRBdHRyU3NsRWRpdGlvbicsXHJcblxyXG4gIC8vIERQSV9BdHRyU1NPRG9tYWluLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyU1NPRG9tYWluID0gJ3dpZGdldEF0dHJTc29Eb21haW4nLFxyXG5cclxuICAvLyBEUElfQXR0clNTTENlcnQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJTU0xDZXJ0ID0gJ3dpZGdldEF0dHJTc2xDZXJ0JyxcclxuXHJcbiAgLy8gRFBJX0F0dHJTY3JpcHRWZXJzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyU2NyaXB0VmVyc2lvbiA9ICdhdHRyU2NyaXB0VmVyc2lvbicsXHJcblxyXG4gIC8vIERQSV9BdHRyU2VydmVyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyU2VydmVyID0gJ3dpZGdldEF0dHJTZXJ2ZXInLFxyXG5cclxuICAvLyBEUElfQXR0clNlcnZpY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJTZXJ2aWNlID0gJ3dpZGdldEF0dHJTZXJ2aWNlJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJVc2VybmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0clVzZXJuYW1lID0gJ3dpZGdldEF0dHJVc2VyJyxcclxuXHJcbiAgLy8gRFBJX0F1dGhlbnRpY2F0aW9uUHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdXRoZW50aWNhdGlvblByb21wdCA9ICdhdXRoZW50aWNhdGlvblByb21wdCcsXHJcblxyXG4gIC8vIERQSV9CdXR0b25DbGlja0FjdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQnV0dG9uQ2xpY2tBY3Rpb24gPSAnYnV0dG9uQ2xpY2tBY3Rpb24nLFxyXG5cclxuICAvLyBEUElfQnV0dG9uQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQnV0dG9uQ2FwdGlvbiA9ICdidXR0b25DYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0J1dHRvbkltYWdlUGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQnV0dG9uSW1hZ2VQYXRoID0gJ2J1dHRvbkltYWdlUGF0aCcsXHJcblxyXG4gIC8vIERQSV9CdXR0b25JbWFnZVBhdGhLZXksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJ1dHRvbkltYWdlUGF0aEtleSA9ICdidXR0b25JbWFnZVBhdGhLZXknLFxyXG5cclxuICAvLyBEUElfQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2FwdGlvbiA9ICdjYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0NhdGFsb2dMaXN0UHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDYXRhbG9nTGlzdFByb21wdCA9ICdjYXRhbG9nTGlzdFByb21wdCcsXHJcblxyXG4gIC8vIERQSV9DYXRhbG9nTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2F0YWxvZ05hbWUgPSAnY2F0YWxvZ05hbWUnLFxyXG5cclxuICAvLyBEUElfQ2F0YWxvZ1NlYXJjaFRlcm0sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENhdGFsb2dTZWFyY2hUZXJtID0gJ2NhdGFsb2dTZWFyY2hUZXJtJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3J5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDYXRlZ29yeSA9ICdpdGVtQ2F0ZWdvcnknLFxyXG5cclxuICAvLyBEUElfQ2xhc3NOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDbGFzc05hbWUgPSAnY2xhc3NOYW1lRm9yQ2xlYW5pbmcnLFxyXG5cclxuICAvLyBEUElfQ2xvdWRGaWxlQ2xhc3NOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDbG91ZEZpbGVDbGFzc05hbWUgPSAnY2xvdWRGaWxlQ2xhc3NOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0Nsb3VkRmlsZVN0b3JhZ2VQcm92aWRlciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2xvdWRGaWxlU3RvcmFnZVByb3ZpZGVyID0gJ2Nsb3VkRmlsZVN0b3JhZ2VQcm92aWRlcicsXHJcblxyXG4gIC8vIERQSV9Db25maWdOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25maWdOYW1lID0gJ2Nvbm5lY3Rpb25Db25maWdOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25DYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25uZWN0aW9uQ2FwdGlvbiA9ICdjb25uZWN0aW9uQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uRGVzY3JpcHRpb25MYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29ubmVjdGlvbkRlc2NyaXB0aW9uTGFiZWwgPSAnY29ubmVjdGlvbkRlc2NyaXB0aW9uTGFiZWwnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbkNsYXNzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25uZWN0aW9uQ2xhc3MgPSAnY29ubmVjdGlvbkNsYXNzTmFtZScsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29ubmVjdGlvbk5hbWUgPSAnY29ubmVjdGlvbk5hbWUnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbk9wdGlvbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENvbm5lY3Rpb25PcHRpb25OYW1lID0gJ2Nvbm5lY3Rpb25PcHRpb25OYW1lJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVGl0bGUgPSAnY29ubmVjdGlvblNwZWNpZmljYXRpb25UaXRsZScsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uVHlwZUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25uZWN0aW9uVHlwZUxhYmVsID0gJ2Nvbm5lY3Rpb25UeXBlTGFiZWwnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvblVSSSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29ubmVjdGlvblVSSSA9ICdjb25uZWN0aW9uVXJpJyxcclxuXHJcbiAgLy8gRFBJX0N1YmVEZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ3ViZURlc2NyaXB0aW9uID0gJ2N1YmVEZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9DdWJlTGFzdFVwZGF0ZWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEN1YmVMYXN0VXBkYXRlZCA9ICdjdWJlTGFzdFVwZGF0ZWQnLFxyXG5cclxuICAvLyBEUElfQ3ViZUxpc3RQcm9tcHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEN1YmVMaXN0UHJvbXB0ID0gJ2N1YmVMaXN0UHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX0N1YmVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDdWJlTmFtZSA9ICdjdWJlTmFtZScsXHJcblxyXG4gIC8vIERQSV9DdWJlU2VhcmNoVGVybSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ3ViZVNlYXJjaFRlcm0gPSAnY3ViZVNlYXJjaFRlcm0nLFxyXG5cclxuICAvLyBEUElfQ3VycmVudFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEN1cnJlbnRUZXh0ID0gJ2N1cnJlbnRUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0N1c3RvbVNwbGl0U3RyaW5nU2VwYXJhdG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDdXN0b21TcGxpdFN0cmluZ1NlcGFyYXRvciA9ICdjdXN0b21TcGxpdFN0cmluZ1NlcGFyYXRvcicsXHJcblxyXG4gIC8vIERQSV9EYXRhc291cmNlSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VJZCA9ICdkYXRhc291cmNlSWQnLFxyXG5cclxuICAvLyBEUElfREJOYW1lUHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEQk5hbWVQcm9tcHQgPSAnZGJOYW1lUHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX0RCV0hOYW1lUHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEQldITmFtZVByb21wdCA9ICdkYldhcmVob3VzZU5hbWVQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfRFNDbGFzcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRFNDbGFzcyA9ICdkc0NsYXNzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFiYXNlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0YWJhc2VOYW1lID0gJ2RhdGFzb3VyY2VEYXRhYmFzZU5hbWUnLFxyXG5cclxuICAvLyBEUElfRGF0YWJhc2VOb3RlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhYmFzZU5vdGUgPSAnZGF0YWJhc2VOb3RlJyxcclxuXHJcbiAgLy8gRFBJX0RyYWdMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRHJhZ0xhYmVsID0gJ2RyYWdMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9FZmZlY3RpdmVEYXRlUmFuZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEVmZmVjdGl2ZURhdGVSYW5nZSA9ICdlZmZlY3RpdmVEYXRlUmFuZ2UnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRDcmVhdGVkVGltZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR29vZ2xlU2hlZXRDcmVhdGVkVGltZSA9ICdnb29nbGVTaGVldENyZWF0ZWRUaW1lJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZVNoZWV0SWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdvb2dsZVNoZWV0SWQgPSAnZ29vZ2xlU2hlZXRJZCcsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVTaGVldExhc3RNb2RpZmllZFRpbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdvb2dsZVNoZWV0TGFzdE1vZGlmaWVkVGltZSA9ICdnb29nbGVTaGVldExhc3RNb2RpZmllZFRpbWUnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRMYXN0TW9kaWZ5aW5nVXNlciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR29vZ2xlU2hlZXRMYXN0TW9kaWZ5aW5nVXNlciA9ICdnb29nbGVTaGVldExhc3RNb2RpZnlpbmdVc2VyJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZVNoZWV0TGFzdFZpZXdlZEJ5VXNlclRpbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdvb2dsZVNoZWV0TGFzdFZpZXdlZEJ5VXNlclRpbWUgPSAnZ29vZ2xlU2hlZXRMYXN0Vmlld2VkQnlVc2VyVGltZScsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVTaGVldE1pbWVUeXBlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBHb29nbGVTaGVldE1pbWVUeXBlID0gJ2dvb2dsZVNoZWV0TWltZVR5cGUnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBHb29nbGVTaGVldE5hbWUgPSAnZ29vZ2xlU2hlZXROYW1lJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZVNoZWV0T3duZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdvb2dsZVNoZWV0T3duZXIgPSAnZ29vZ2xlU2hlZXRPd25lcicsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVTaGVldFRodW1ibmFpbExpbmssIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdvb2dsZVNoZWV0VGh1bWJuYWlsTGluayA9ICdnb29nbGVTaGVldFRodW1ibmFpbExpbmsnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRUaHVtYm5haWxJZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR29vZ2xlU2hlZXRUaHVtYm5haWxJZCA9ICdnb29nbGVTaGVldFRodW1ibmFpbElkJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZVNoZWV0VGh1bWJuYWlsTG9jYWxQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBHb29nbGVTaGVldFRodW1ibmFpbExvY2FsUGF0aCA9ICdnb29nbGVTaGVldFRodW1ibmFpbExvY2FsUGF0aCcsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVTaGVldFdlYlZpZXdMaW5rLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBHb29nbGVTaGVldFdlYlZpZXdMaW5rID0gJ2dvb2dsZVNoZWV0V2ViVmlld0xpbmsnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRzTGlzdEVycm9yTWVzc2FnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR29vZ2xlU2hlZXRzTGlzdEVycm9yTWVzc2FnZSA9ICdnb29nbGVTaGVldHNMaXN0RXJyb3JNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX0luaXRpYWxTUUwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEluaXRpYWxTUUwgPSAnaW5pdGlhbFNxbCcsXHJcblxyXG4gIC8vIERQSV9JU09EYXRlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJU09EYXRlID0gJ2lzb0RhdGUnLFxyXG5cclxuICAvLyBEUElfSVNPRW5kRGF0ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSVNPRW5kRGF0ZSA9ICdpc29FbmREYXRlJyxcclxuXHJcbiAgLy8gRFBJX0lTT1N0YXJ0RGF0ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSVNPU3RhcnREYXRlID0gJ2lzb1N0YXJ0RGF0ZScsXHJcblxyXG4gIC8vIERQSV9Jc29sYXRpb25MZXZlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSXNvbGF0aW9uTGV2ZWwgPSAnZGF0YXNvdXJjZUlzb2xhdGlvbkxldmVsJyxcclxuXHJcbiAgLy8gRFBJX0l0ZW1EZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSXRlbURlc2NyaXB0aW9uID0gJ2l0ZW1EZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9JdGVtSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEl0ZW1JZCA9ICdpdGVtSWQnLFxyXG5cclxuICAvLyBEUElfS2VyYmVyb3NIb3N0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBLZXJiZXJvc0hvc3QgPSAnZGF0YXNvdXJjZUtlcmJlcm9zSG9zdCcsXHJcblxyXG4gIC8vIERQSV9LZXJiZXJvc1JlYWxtLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBLZXJiZXJvc1JlYWxtID0gJ2RhdGFzb3VyY2VLZXJiZXJvc1JlYWxtJyxcclxuXHJcbiAgLy8gRFBJX0tlcmJlcm9zU2VydmljZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgS2VyYmVyb3NTZXJ2aWNlID0gJ2RhdGFzb3VyY2VLZXJiZXJvc1NlcnZpY2UnLFxyXG5cclxuICAvLyBEUElfTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTmFtZSA9ICduYW1lJyxcclxuXHJcbiAgLy8gRFBJX09wdGlvbklkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBPcHRpb25JZCA9ICdvcHRpb25JZCcsXHJcblxyXG4gIC8vIERQSV9QYXJ0aXRpb25pbmdCdXR0b25MYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGFydGl0aW9uaW5nQnV0dG9uTGFiZWwgPSAncGFydGl0aW9uaW5nQnV0dG9uTGFiZWwnLFxyXG5cclxuICAvLyBEUElfUGFydGl0aW9uaW5nQnV0dG9uVG9vbHRpcCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGFydGl0aW9uaW5nQnV0dG9uVG9vbHRpcCA9ICdwYXJ0aXRpb25pbmdCdXR0b25Ub29sdGlwJyxcclxuXHJcbiAgLy8gRFBJX1BhcnRpdGlvbmluZ1RleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhcnRpdGlvbmluZ1RleHQgPSAncXVlcnlQYXJ0aXRpb25pbmdUZXh0JyxcclxuXHJcbiAgLy8gRFBJX1BkZlN0YXJ0UGFnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGRmU3RhcnRQYWdlID0gJ3BkZlN0YXJ0UGFnZScsXHJcblxyXG4gIC8vIERQSV9QZGZFbmRQYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQZGZFbmRQYWdlID0gJ3BkZkVuZFBhZ2UnLFxyXG5cclxuICAvLyBEUElfUG9ydFByb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUG9ydFByb21wdCA9ICdwb3J0UHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX1Byb21wdFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFByb21wdFRleHQgPSAncHJvbXB0VGV4dCcsXHJcblxyXG4gIC8vIERQSV9RdWVyeUJhbmRpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFF1ZXJ5QmFuZGluZyA9ICdxdWVyeUJhbmRpbmcnLFxyXG5cclxuICAvLyBEUElfUXVlcnlUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBRdWVyeVRleHQgPSAncXVlcnlUZXh0JyxcclxuXHJcbiAgLy8gRFBJX1JlY29tbWVuZGF0aW9uVVVJRCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmVjb21tZW5kYXRpb25VVUlEID0gJ3JlY29tbWVuZGF0aW9uVXVpZCcsXHJcblxyXG4gIC8vIERQSV9TUUxRdWVyeSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU1FMUXVlcnkgPSAnc3FsUXVlcnknLFxyXG5cclxuICAvLyBEUElfU2NoZW1hQ29tYm9GYWxsYmFja1RleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNjaGVtYUNvbWJvRmFsbGJhY2tUZXh0ID0gJ3NjaGVtYUNvbWJvRmFsbGJhY2tUZXh0JyxcclxuXHJcbiAgLy8gRFBJX1NjaGVtYUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTY2hlbWFMYWJlbCA9ICdzY2hlbWFMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9TY2hlbWFNZW1iZXJHbG9iYWxOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTY2hlbWFNZW1iZXJHbG9iYWxOYW1lID0gJ3NjaGVtYU1lbWJlckdsb2JhbE5hbWUnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2NoZW1hTmFtZSA9ICdkYXRhc291cmNlU2NoZW1hTmFtZScsXHJcblxyXG4gIC8vIERQSV9TY3JpcHRUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTY3JpcHRUZXh0ID0gJ3NjcmlwdFRleHQnLFxyXG5cclxuICAvLyBEUElfU2Vjb25kYXJ5V2hpdGVMaXN0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTZWNvbmRhcnlXaGl0ZUxpc3QgPSAnc2Vjb25kYXJ5V2hpdGVMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1NlcnZlciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2VydmVyID0gJ2RhdGFzb3VyY2VTZXJ2ZXInLFxyXG5cclxuICAvLyBEUElfU2VydmVyTmFtZVByb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2VydmVyTmFtZVByb21wdCA9ICdzZXJ2ZXJOYW1lUHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX1NlcnZpY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlcnZpY2UgPSAnZGF0YXNvdXJjZVNlcnZpY2UnLFxyXG5cclxuICAvLyBEUElfU2VydmljZU5hbWVQcm9tcHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlcnZpY2VOYW1lUHJvbXB0ID0gJ3NlcnZpY2VQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfU2hlZXRGb3JtYXR0aW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTaGVldEZvcm1hdHRpbmcgPSAnc2hlZXRGb3JtYXR0aW5nJyxcclxuXHJcbiAgLy8gRFBJX1Nsb3dNZXRhZGF0YVNlYXJjaFRlcm0sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNsb3dNZXRhZGF0YVNlYXJjaFRlcm0gPSAnc2xvd01ldGFkYXRhU2VhcmNoVGVybScsXHJcblxyXG4gIC8vIERQSV9TdGFuZGFyZENvbm5lY3Rpb25OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdGFuZGFyZENvbm5lY3Rpb25OYW1lID0gJ2RhdGFzb3VyY2VTdGFuZGFyZENvbm5lY3Rpb25OYW1lJyxcclxuXHJcbiAgLy8gRFBJX1N0YW5kYXJkQ29ubmVjdGlvblBsYWNlaG9sZGVyVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3RhbmRhcmRDb25uZWN0aW9uUGxhY2Vob2xkZXJUZXh0ID0gJ3N0YW5kYXJkQ29ubmVjdGlvblBsYWNlaG9sZGVyVGV4dCcsXHJcblxyXG4gIC8vIERQSV9TdG9yZWRQcm9jZWR1cmVQYXJhbWV0ZXJUaXRsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3RvcmVkUHJvY2VkdXJlUGFyYW1ldGVyVGl0bGUgPSAnc3RvcmVkUHJvY2VkdXJlUGFyYW1ldGVyVGl0bGUnLFxyXG5cclxuICAvLyBEUElfVGFibGVBbGlhcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVBbGlhcyA9ICd0YWJsZUFsaWFzJyxcclxuXHJcbiAgLy8gRFBJX1JpZ2h0VGFibGVBbGlhcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmlnaHRUYWJsZUFsaWFzID0gJ3JpZ2h0VGFibGVBbGlhcycsXHJcblxyXG4gIC8vIERQSV9UYWJsZUNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlQ2FwdGlvbiA9ICd0YWJsZUNhcHRpb24nLFxyXG5cclxuICAvLyBEUElfVGFibGVDb2xsZWN0aW9uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVDb2xsZWN0aW9uTmFtZSA9ICd0YWJsZUNvbGxlY3Rpb25OYW1lJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlUGxhY2Vob2xkZXJUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZVBsYWNlaG9sZGVyVGV4dCA9ICd0YWJsZVBsYWNlaG9sZGVyVGV4dCcsXHJcblxyXG4gIC8vIERQSV9UYWJsZVJhbmtpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlUmFua2luZyA9ICd0YWJsZVJhbmtpbmcnLFxyXG5cclxuICAvLyBEUElfVGFibGVTb3J0S2V5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZVNvcnRLZXkgPSAndGFibGVTb3J0a2V5JyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlVG9vbHRpcCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVUb29sdGlwID0gJ3RhYmxlVG9vbHRpcCcsXHJcblxyXG4gIC8vIERQSV9UYWJsZVRvUmVwbGFjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVUb1JlcGxhY2UgPSAndGFibGVUb1JlcGxhY2UnLFxyXG5cclxuICAvLyBEUElfVGFibGVXYXJuaW5nTWVzc2FnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVXYXJuaW5nTWVzc2FnZSA9ICd0YWJsZVdhcm5pbmdNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlYXVTZXJ2ZXJEYXRhc291cmNlRGVzY3JpcHRpb24gPSAndGFibGVhdVNlcnZlckRhdGFzb3VyY2VEZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9UYWJsZWF1U2VydmVyRGF0YXNvdXJjZUxhc3RFeHRyYWN0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZWF1U2VydmVyRGF0YXNvdXJjZUxhc3RFeHRyYWN0ID0gJ3RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlTGFzdEV4dHJhY3QnLFxyXG5cclxuICAvLyBEUElfVGFibGVhdVNlcnZlckRhdGFzb3VyY2VNb2RpZmllZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVhdVNlcnZlckRhdGFzb3VyY2VNb2RpZmllZCA9ICd0YWJsZWF1U2VydmVyRGF0YXNvdXJjZU1vZGlmaWVkJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlT3duZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlYXVTZXJ2ZXJEYXRhc291cmNlT3duZXIgPSAndGFibGVhdVNlcnZlckRhdGFzb3VyY2VPd25lcicsXHJcblxyXG4gIC8vIERQSV9UYWJsZWF1U2VydmVyRGF0YXNvdXJjZVBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlYXVTZXJ2ZXJEYXRhc291cmNlUGF0aCA9ICd0YWJsZWF1U2VydmVyRGF0YXNvdXJjZVBhdGgnLFxyXG5cclxuICAvLyBEUElfVGFibGVhdVNlcnZlckZldGNoU2VhcmNoUXVlcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlYXVTZXJ2ZXJGZXRjaFNlYXJjaFF1ZXJ5ID0gJ3RhYmxlYXVTZXJ2ZXJGZXRjaFNlYXJjaFF1ZXJ5JyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZWF1U2VydmVyTmFtZSA9ICd0YWJsZWF1U2VydmVyTmFtZScsXHJcblxyXG4gIC8vIERQSV9UYWJsZWF1U2VydmVyUHJvamVjdE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlYXVTZXJ2ZXJQcm9qZWN0TmFtZSA9ICd0YWJsZWF1U2VydmVyUHJvamVjdE5hbWUnLFxyXG5cclxuICAvLyBEUElfVGFibGVhdVNlcnZlclVzZXJuYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZWF1U2VydmVyVXNlcm5hbWUgPSAndGFibGVhdVNlcnZlclVzZXJuYW1lJyxcclxuXHJcbiAgLy8gRFBJX1RyYW5zcG9ydFR5cGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRyYW5zcG9ydFR5cGUgPSAndHJhbnNwb3J0VHlwZScsXHJcblxyXG4gIC8vIERQSV9XYXJlaG91c2VOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBXYXJlaG91c2VOYW1lID0gJ2RhdGFzb3VyY2VXYXJlaG91c2VOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1dvcmtncm91cFdvcmtib29rTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgV29ya2dyb3VwV29ya2Jvb2tOYW1lID0gJ3dvcmtncm91cFdvcmtib29rTmFtZScsXHJcblxyXG4gIC8vIERQSV9BbmFseXRpY3NJdGVtVG9vbHRpcCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQW5hbHl0aWNzSXRlbVRvb2x0aXAgPSAnYW5hbHl0aWNzSXRlbVRvb2x0aXAnLFxyXG5cclxuICAvLyBEUElfRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERlc2NyaXB0aW9uID0gJ2Rlc2NyaXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0RTQ2xhc3NDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEU0NsYXNzQ2FwdGlvbiA9ICdkc0NsYXNzQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Gb3JtdWxhLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb3JtdWxhID0gJ2Zvcm11bGEnLFxyXG5cclxuICAvLyBEUElfTWVzc2FnZVRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1lc3NhZ2VUZXh0ID0gJ21lc3NhZ2VUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFzb3VyY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2UgPSAnZGF0YXNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9EYXRhc291cmNlU291cmNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhc291cmNlU291cmNlID0gJ2RhdGFzb3VyY2VTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZVRhcmdldCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0YXNvdXJjZVRhcmdldCA9ICdkYXRhc291cmNlVGFyZ2V0JyxcclxuXHJcbiAgLy8gRFBJX0ZpcnN0RGF0YXNvdXJjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmlyc3REYXRhc291cmNlID0gJ2ZpcnN0RGF0YXNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9OZXdEYXRhc291cmNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBOZXdEYXRhc291cmNlID0gJ25ld0RhdGFzb3VyY2UnLFxyXG5cclxuICAvLyBEUElfUGFyYW1ldGVyc0RhdGFzb3VyY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhcmFtZXRlcnNEYXRhc291cmNlID0gJ3BhcmFtZXRlcnNEYXRhc291cmNlJyxcclxuXHJcbiAgLy8gRFBJX1ByaW1hcnlEYXRhc291cmNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQcmltYXJ5RGF0YXNvdXJjZSA9ICdwcmltYXJ5RGF0YXNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uRGF0YWJhc2VzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIENvbm5lY3Rpb25EYXRhYmFzZXMgPSAnY29ubmVjdGlvbkRhdGFiYXNlcycsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uU2NoZW1hcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb25uZWN0aW9uU2NoZW1hcyA9ICdjb25uZWN0aW9uU2NoZW1hcycsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uV2FyZWhvdXNlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb25uZWN0aW9uV2FyZWhvdXNlcyA9ICdjb25uZWN0aW9uV2FyZWhvdXNlcycsXHJcblxyXG4gIC8vIERQSV9EU0NsYXNzZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRFNDbGFzc2VzID0gJ2RzQ2xhc3NlcycsXHJcblxyXG4gIC8vIERQSV9Qb3NzaWJsZUNob2ljZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUG9zc2libGVDaG9pY2VzID0gJ3Bvc3NpYmxlQ2hvaWNlcycsXHJcblxyXG4gIC8vIERQSV9TdGFuZGFyZENvbm5lY3Rpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFN0YW5kYXJkQ29ubmVjdGlvbnMgPSAnc3RhbmRhcmRDb25uZWN0aW9ucycsXHJcblxyXG4gIC8vIERQSV9TdHJpbmdzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFN0cmluZ3MgPSAnc3RyaW5ncycsXHJcblxyXG4gIC8vIERQSV9UYWJsZWF1U2VydmVyUHJvamVjdE5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFRhYmxlYXVTZXJ2ZXJQcm9qZWN0TmFtZXMgPSAndGFibGVhdVNlcnZlclByb2plY3ROYW1lcycsXHJcblxyXG4gIC8vIERQSV9UYWJsZUNhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFRhYmxlQ2FwdGlvbnMgPSAndGFibGVDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9EYXRhVmFsdWVzLCBoYXZpbmcgdHlwZSBvYmplY3RbXVxyXG4gIERhdGFWYWx1ZXMgPSAnZGF0YVZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9RdWVyeUJhbmRFcnJvcnMsIGhhdmluZyB0eXBlIG9iamVjdFtdXHJcbiAgUXVlcnlCYW5kRXJyb3JzID0gJ3F1ZXJ5QmFuZEVycm9ycycsXHJcblxyXG4gIC8vIERQSV9RdWVyeUJhbmRQYXJhbWV0ZXJzLCBoYXZpbmcgdHlwZSBvYmplY3RbXVxyXG4gIFF1ZXJ5QmFuZFBhcmFtZXRlcnMgPSAncXVlcnlCYW5kUGFyYW1ldGVycycsXHJcblxyXG4gIC8vIERQSV9Jbml0aWFsU1FMUGFyYW1ldGVycywgaGF2aW5nIHR5cGUgb2JqZWN0W11cclxuICBJbml0aWFsU1FMUGFyYW1ldGVycyA9ICdpbml0aWFsU3FsUGFyYW1ldGVycycsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uQXR0cmlidXRlcywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgQ29ubmVjdGlvbkF0dHJpYnV0ZXMgPSAnY29ubmVjdGlvbkF0dHJzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25Qcm9wcywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgQ29ubmVjdGlvblByb3BzID0gJ2Nvbm5lY3Rpb25Qcm9wcycsXHJcblxyXG4gIC8vIERQSV9EaXNwbGF5TmFtZU1hcCwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgRGlzcGxheU5hbWVNYXAgPSAnZGlzcGxheU5hbWVNYXAnLFxyXG5cclxuICAvLyBEUElfTG9va3VwVGFibGUsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIExvb2t1cFRhYmxlID0gJ2xvb2t1cFRhYmxlJyxcclxuXHJcbiAgLy8gRFBJX09BdXRoQXR0cnMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIE9BdXRoQXR0cnMgPSAnb2F1dGhBdHRycycsXHJcblxyXG4gIC8vIERQSV9TdHJpbmdNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIFN0cmluZ01hcCA9ICdzdHJpbmdNYXAnLFxyXG5cclxuICAvLyBEUElfVGFibGVSYW5raW5nTWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBUYWJsZVJhbmtpbmdNYXAgPSAndGFibGVSYW5raW5nTWFwJyxcclxuXHJcbiAgLy8gRFBJX1dEQ0F0dHJpYnV0ZXMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIFdEQ0F0dHJpYnV0ZXMgPSAnd2RjQXR0cnMnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdG9yQXR0cmlidXRlcywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgQ29ubmVjdG9yQXR0cmlidXRlcyA9ICdjb25uZWN0b3JBdHRycycsXHJcblxyXG4gIC8vIERQSV9UYWJsZVJlbGV2YW5jZVBhcmFtcywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgVGFibGVSZWxldmFuY2VQYXJhbXMgPSAndGFibGVSZWxldmFuY2VQYXJhbXMnLFxyXG5cclxuICAvLyBEUElfQWN0dWFsUGFyYW1ldGVyUGFyYW1ldGVyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBY3R1YWxQYXJhbWV0ZXJQYXJhbWV0ZXIgPSAnYWN0dWFsUGFyYW1ldGVyUGFyYW1ldGVyJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFDb2x1bW5OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhQ29sdW1uTmFtZSA9ICdkYXRhQ29sdW1uTmFtZScsXHJcblxyXG4gIC8vIERQSV9MSFNEYXRhQ29sdW1uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTEhTRGF0YUNvbHVtbk5hbWUgPSAnbGhzRGF0YUNvbHVtbk5hbWUnLFxyXG5cclxuICAvLyBEUElfUkhTRGF0YUNvbHVtbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJIU0RhdGFDb2x1bW5OYW1lID0gJ3Joc0RhdGFDb2x1bW5OYW1lJyxcclxuXHJcbiAgLy8gRFBJX0Z1bGxDdWJlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRnVsbEN1YmVOYW1lID0gJ2Z1bGxDdWJlTmFtZScsXHJcblxyXG4gIC8vIERQSV9GdWxsVmFyaWFibGVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGdWxsVmFyaWFibGVOYW1lID0gJ2Z1bGxWYXJpYWJsZU5hbWUnLFxyXG5cclxuICAvLyBEUElfU2VtYW50aWNSb2xlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTZW1hbnRpY1JvbGUgPSAnc2VtYW50aWNSb2xlJyxcclxuXHJcbiAgLy8gRFBJX1N0b3JlZFByb2NlZHVyZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN0b3JlZFByb2NlZHVyZU5hbWUgPSAnc3RvcmVkUHJvY05hbWUnLFxyXG5cclxuICAvLyBEUElfVGFibGVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZU5hbWUgPSAndGFibGVOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0FkZGVkVGFibGVOYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBZGRlZFRhYmxlTmFtZXMgPSAnYWRkZWRUYWJsZU5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0NvYWxlc2NlR3JvdXBGaWVsZHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQ29hbGVzY2VHcm91cEZpZWxkcyA9ICdjb2FsZXNjZUdyb3VwRmllbGRzJyxcclxuXHJcbiAgLy8gRFBJX1F1YWxpZmllZE5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFF1YWxpZmllZE5hbWVzID0gJ3F1YWxpZmllZE5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0pvaW5GaWVsZEFsaWFzZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgSm9pbkZpZWxkQWxpYXNlcyA9ICdqb2luRmllbGRfYWxpYXNlcycsXHJcblxyXG4gIC8vIERQSV9Kb2luSW5mb0ZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBKb2luSW5mb0ZpZWxkcyA9ICdqb2luSW5mb0ZpZWxkcycsXHJcblxyXG4gIC8vIERQSV9QaXZvdEdyb3VwRmllbGRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFBpdm90R3JvdXBGaWVsZHMgPSAncGl2b3RHcm91cEZpZWxkcycsXHJcblxyXG4gIC8vIERQSV9SZW1vdmVkVGFibGVOYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBSZW1vdmVkVGFibGVOYW1lcyA9ICdyZW1vdmVkVGFibGVOYW1lcycsXHJcblxyXG4gIC8vIERQSV9TdG9yZWRQcm9jZWR1cmVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFN0b3JlZFByb2NlZHVyZXMgPSAnc3RvcmVkUHJvY2VkdXJlcycsXHJcblxyXG4gIC8vIERQSV9UYWJsZU5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFRhYmxlTmFtZXMgPSAndGFibGVOYW1lcycsXHJcblxyXG4gIC8vIERQSV9Db2x1bW5OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb2x1bW5OYW1lID0gJ2NvbHVtbk5hbWUnLFxyXG5cclxuICAvLyBEUElfRmllbGROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWVsZE5hbWUgPSAnZm4nLFxyXG5cclxuICAvLyBEUElfRmllbGROYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBGaWVsZE5hbWVzID0gJ2ZpZWxkTmFtZXMnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRUaHVtYm5haWxJbWFnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR29vZ2xlU2hlZXRUaHVtYm5haWxJbWFnZSA9ICdnb29nbGVTaGVldFRodW1ibmFpbEltYWdlJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJNRFdQYXNzd29yZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ck1EV1Bhc3N3b3JkID0gJ3dpZGdldEF0dHJNZHdQYXNzd29yZCcsXHJcblxyXG4gIC8vIERQSV9BdHRyUGFzc3dvcmQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJQYXNzd29yZCA9ICd3aWRnZXRBdHRyUGFzc3dvcmQnLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZVBhc3N3b3JkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhc291cmNlUGFzc3dvcmQgPSAnZGF0YXNvdXJjZVBhc3N3b3JkJyxcclxuXHJcbiAgLy8gRFBJX0ZlZGVyYXRlZEtleWNoYWluLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGZWRlcmF0ZWRLZXljaGFpbiA9ICdmZWRlcmF0ZWRLZXljaGFpbicsXHJcblxyXG4gIC8vIERQSV9EYXRhUGFyYW1ldGVySUQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFQYXJhbWV0ZXJJRCA9ICdkYXRhUGFyYW1UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlLCBoYXZpbmcgdHlwZSBDb25uZWN0U2VydmVyV2lkZ2V0VHlwZVxyXG4gIENvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlID0gJ2Nvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0F1dGhlbnRpY2F0aW9uTW9kZSwgaGF2aW5nIHR5cGUgTW9kZVxyXG4gIEF1dGhlbnRpY2F0aW9uTW9kZSA9ICdhdXRoTW9kZScsXHJcblxyXG4gIC8vIERQSV9SZWNvbm5lY3RBdXRoTW9kZSwgaGF2aW5nIHR5cGUgUmVjb25uZWN0TW9kZVxyXG4gIFJlY29ubmVjdEF1dGhNb2RlID0gJ3JlY29ubmVjdEF1dGhNb2RlJyxcclxuXHJcbiAgLy8gRFBJX0N1cnJlbnRBdXRoT3B0aW9uLCBoYXZpbmcgdHlwZSBBdXRoT3B0aW9uXHJcbiAgQ3VycmVudEF1dGhPcHRpb24gPSAnY3VyckF1dGhPcHRpb24nLFxyXG5cclxuICAvLyBEUElfQXV0aE9wdGlvbkxpc3QsIGhhdmluZyB0eXBlIEF1dGhPcHRpb25bXVxyXG4gIEF1dGhPcHRpb25MaXN0ID0gJ2F1dGhPcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVHlwZSwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblNwZWNpZmljYXRpb25UeXBlXHJcbiAgQ29ubmVjdGlvblNwZWNpZmljYXRpb25UeXBlID0gJ2Nvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVHlwZScsXHJcblxyXG4gIC8vIERQSV9EYXRhVHlwZSwgaGF2aW5nIHR5cGUgRGF0YVR5cGVcclxuICBEYXRhVHlwZSA9ICdkYXRhVHlwZScsXHJcblxyXG4gIC8vIERQSV9MSFNEYXRhVHlwZSwgaGF2aW5nIHR5cGUgRGF0YVR5cGVcclxuICBMSFNEYXRhVHlwZSA9ICdsaHNEYXRhVHlwZScsXHJcblxyXG4gIC8vIERQSV9SSFNEYXRhVHlwZSwgaGF2aW5nIHR5cGUgRGF0YVR5cGVcclxuICBSSFNEYXRhVHlwZSA9ICdyaHNEYXRhVHlwZScsXHJcblxyXG4gIC8vIERQSV9EZWZhdWx0RmllbGRSb2xlLCBoYXZpbmcgdHlwZSBGaWVsZFJvbGVcclxuICBEZWZhdWx0RmllbGRSb2xlID0gJ2RlZmF1bHRGaWVsZFJvbGUnLFxyXG5cclxuICAvLyBEUElfRmllbGRSb2xlLCBoYXZpbmcgdHlwZSBGaWVsZFJvbGVcclxuICBGaWVsZFJvbGUgPSAnZmllbGRSb2xlJyxcclxuXHJcbiAgLy8gRFBJX0RlZmF1bHRGaWVsZFR5cGUsIGhhdmluZyB0eXBlIEZpZWxkVHlwZVxyXG4gIERlZmF1bHRGaWVsZFR5cGUgPSAnZGVmYXVsdEZpZWxkVHlwZScsXHJcblxyXG4gIC8vIERQSV9GaWVsZFR5cGUsIGhhdmluZyB0eXBlIEZpZWxkVHlwZVxyXG4gIEZpZWxkVHlwZSA9ICdmaWVsZFR5cGUnLFxyXG5cclxuICAvLyBEUElfRmllbGRUeXBlTGlzdCwgaGF2aW5nIHR5cGUgRmllbGRUeXBlW11cclxuICBGaWVsZFR5cGVMaXN0ID0gJ2ZpZWxkVHlwZUxpc3QnLFxyXG5cclxuICAvLyBEUElfRmllbGRUeXBlTGlzdERldGFpbCwgaGF2aW5nIHR5cGUgRmllbGRUeXBlW11cclxuICBGaWVsZFR5cGVMaXN0RGV0YWlsID0gJ2ZpZWxkVHlwZUxpc3REZXRhaWwnLFxyXG5cclxuICAvLyBEUElfQWdnVHlwZSwgaGF2aW5nIHR5cGUgQWdnVHlwZVxyXG4gIEFnZ1R5cGUgPSAnYWdncmVnYXRpb24nLFxyXG5cclxuICAvLyBEUElfRGVmYXVsdEFnZ1R5cGUsIGhhdmluZyB0eXBlIEFnZ1R5cGVcclxuICBEZWZhdWx0QWdnVHlwZSA9ICdkZWZhdWx0QWdncmVnYXRpb24nLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RBZ2csIGhhdmluZyB0eXBlIEFnZ1R5cGVcclxuICBGb3JlY2FzdEFnZyA9ICdmb3JlY2FzdFN1bW1hcml6ZVRvJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0QXV0b0FnZywgaGF2aW5nIHR5cGUgQWdnVHlwZVxyXG4gIEZvcmVjYXN0QXV0b0FnZyA9ICdmb3JlY2FzdEF1dG9TdW1tYXJpemVUbycsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdEF1dG9SYW5nZVVuaXRzLCBoYXZpbmcgdHlwZSBBZ2dUeXBlXHJcbiAgRm9yZWNhc3RBdXRvUmFuZ2VVbml0cyA9ICdmb3JlY2FzdEF1dG9SYW5nZVVuaXRzJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0RW5kT2ZSYW5nZVVuaXRzLCBoYXZpbmcgdHlwZSBBZ2dUeXBlXHJcbiAgRm9yZWNhc3RFbmRPZlJhbmdlVW5pdHMgPSAnZm9yZWNhc3RFbmRPZlJhbmdlVW5pdHMnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3ROZXh0UmFuZ2VVbml0cywgaGF2aW5nIHR5cGUgQWdnVHlwZVxyXG4gIEZvcmVjYXN0TmV4dFJhbmdlVW5pdHMgPSAnZm9yZWNhc3ROZXh0UmFuZ2VVbml0cycsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VBZ2csIGhhdmluZyB0eXBlIEFnZ1R5cGVcclxuICBTb3VyY2VBZ2cgPSAnc291cmNlQWdncmVnYXRpb24nLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0QWdnLCBoYXZpbmcgdHlwZSBBZ2dUeXBlXHJcbiAgVGFyZ2V0QWdnID0gJ3RhcmdldEFnZ3JlZ2F0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0FnZ3JlZ2F0ZUJ5QWdnVHlwZXMsIGhhdmluZyB0eXBlIEFnZ1R5cGVbXVxyXG4gIEFnZ3JlZ2F0ZUJ5QWdnVHlwZXMgPSAnYWdncmVnYXRlQnlBZ2dUeXBlcycsXHJcblxyXG4gIC8vIERQSV9BZ2dyZWdhdGlvblZhbHVlcywgaGF2aW5nIHR5cGUgQWdnVHlwZVtdXHJcbiAgQWdncmVnYXRpb25WYWx1ZXMgPSAnYWdncmVnYXRpb25WYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfU29ydEFnZ1ZhbHVlcywgaGF2aW5nIHR5cGUgQWdnVHlwZVtdXHJcbiAgU29ydEFnZ1ZhbHVlcyA9ICdzb3J0QWdnVmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX0NvbHVtbkNsYXNzLCBoYXZpbmcgdHlwZSBDb2x1bW5DbGFzc1xyXG4gIENvbHVtbkNsYXNzID0gJ2NvbHVtbkNsYXNzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGVQZXJpb2RUeXBlLCBoYXZpbmcgdHlwZSBEYXRlUGVyaW9kVHlwZVxyXG4gIERhdGVQZXJpb2RUeXBlID0gJ2RhdGVQZXJpb2RUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25XaWRnZXRUeXBlLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uV2lkZ2V0VHlwZVxyXG4gIENvbm5lY3Rpb25XaWRnZXRUeXBlID0gJ2Nvbm5lY3Rpb25XaWRnZXRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlUGlsbEljb24sIGhhdmluZyB0eXBlIFRhYmxlUGlsbEljb25cclxuICBUYWJsZVBpbGxJY29uID0gJ3RhYmxlUGlsbEljb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0VudW1lcmF0ZWRFbnRpdHlUeXBlLCBoYXZpbmcgdHlwZSBFbnRpdHlUeXBlXHJcbiAgRW51bWVyYXRlZEVudGl0eVR5cGUgPSAnZW51bWVyYXRlZEVudGl0eVR5cGUnLFxyXG5cclxuICAvLyBEUElfUGlja0VudGl0eVNlYXJjaFR5cGUsIGhhdmluZyB0eXBlIFBpY2tFbnRpdHlTZWFyY2hUeXBlXHJcbiAgUGlja0VudGl0eVNlYXJjaFR5cGUgPSAnZW50aXR5U2VhcmNoVHlwZScsXHJcblxyXG4gIC8vIERQSV9FeHByZXNzaW9uT3AsIGhhdmluZyB0eXBlIE9wXHJcbiAgRXhwcmVzc2lvbk9wID0gJ2V4cHJlc3Npb25PcCcsXHJcblxyXG4gIC8vIERQSV9FeHByZXNzaW9uT3BlcmF0b3JDYXB0aW9uLCBoYXZpbmcgdHlwZSBFeHByZXNzaW9uT3BlcmF0b3JDYXB0aW9uUHJlc01vZGVsXHJcbiAgRXhwcmVzc2lvbk9wZXJhdG9yQ2FwdGlvbiA9ICdleHByZXNzaW9uT3BlcmF0b3JDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1JlbGF0aW9uYWxFeHBlcmVzc2lvbk9wcywgaGF2aW5nIHR5cGUgRXhwcmVzc2lvbk9wZXJhdG9yQ2FwdGlvblByZXNNb2RlbFtdXHJcbiAgUmVsYXRpb25hbEV4cGVyZXNzaW9uT3BzID0gJ3JlbGF0aW9uYWxFeHByZXNzaW9uT3BzJyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeUV4cHJlc3Npb25PcHMsIGhhdmluZyB0eXBlIEV4cHJlc3Npb25PcGVyYXRvckNhcHRpb25QcmVzTW9kZWxbXVxyXG4gIEhpZXJhcmNoeUV4cHJlc3Npb25PcHMgPSAnaGllcmFyY2h5RXhwcmVzc2lvbk9wcycsXHJcblxyXG4gIC8vIERQSV9EZWZhdWx0U29ydERpcmVjdGlvbiwgaGF2aW5nIHR5cGUgU29ydERpcmVjdGlvblxyXG4gIERlZmF1bHRTb3J0RGlyZWN0aW9uID0gJ2RlZlNvcnRPcmRlcicsXHJcblxyXG4gIC8vIERQSV9Tb3J0RGlyZWN0aW9uLCBoYXZpbmcgdHlwZSBTb3J0RGlyZWN0aW9uXHJcbiAgU29ydERpcmVjdGlvbiA9ICdzb3J0T3JkZXInLFxyXG5cclxuICAvLyBEUElfU29ydERpcmVjdGlvblZhbHVlcywgaGF2aW5nIHR5cGUgU29ydERpcmVjdGlvbltdXHJcbiAgU29ydERpcmVjdGlvblZhbHVlcyA9ICdzb3J0RGlyZWN0aW9uVmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX0N1YmVNZXRhZGF0YUNhdGVnb3J5LCBoYXZpbmcgdHlwZSBDdWJlTWV0YWRhdGFDYXRlZ29yeVxyXG4gIEN1YmVNZXRhZGF0YUNhdGVnb3J5ID0gJ2N1YmVNZXRhZGF0YUNhdGVnb3J5JyxcclxuXHJcbiAgLy8gRFBJX0N1YmVNZXRhZGF0YUNhdGVnb3JpZXMsIGhhdmluZyB0eXBlIEN1YmVNZXRhZGF0YUNhdGVnb3J5W11cclxuICBDdWJlTWV0YWRhdGFDYXRlZ29yaWVzID0gJ2N1YmVNZXRhZGF0YUNhdGVnb3JpZXMnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlQmFzaWNJbmZvVHlwZSwgaGF2aW5nIHR5cGUgR29vZ2xlQmFzaWNJbmZvVHlwZVxyXG4gIEdvb2dsZUJhc2ljSW5mb1R5cGUgPSAnZ29vZ2xlQmFzaWNJbmZvVHlwZScsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VPcHRpb25UeXBlLCBoYXZpbmcgdHlwZSBEYXRlUmFuZ2VcclxuICBHb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VPcHRpb25UeXBlID0gJ2dvb2dsZUFuYWx5dGljc0RhdGVSYW5nZU9wdGlvblR5cGUnLFxyXG5cclxuICAvLyBEUElfVGFibGVDYWxjVHlwZSwgaGF2aW5nIHR5cGUgVGFibGVDYWxjVHlwZVxyXG4gIFRhYmxlQ2FsY1R5cGUgPSAndGFibGVDYWxjVHlwZScsXHJcblxyXG4gIC8vIERQSV9UYWJsZUNhbGNUeXBlVmFsdWVzLCBoYXZpbmcgdHlwZSBUYWJsZUNhbGNUeXBlW11cclxuICBUYWJsZUNhbGNUeXBlVmFsdWVzID0gJ3RhYmxlQ2FsY1R5cGVWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfUmVsYXRpdmVBZGRyZXNzLCBoYXZpbmcgdHlwZSBSZWxhdGl2ZUFkZHJlc3NcclxuICBSZWxhdGl2ZUFkZHJlc3MgPSAncmVsYXRpdmVBZGRyZXNzJyxcclxuXHJcbiAgLy8gRFBJX1JlbGF0aXZlVmFsdWVzLCBoYXZpbmcgdHlwZSBSZWxhdGl2ZUFkZHJlc3NbXVxyXG4gIFJlbGF0aXZlVmFsdWVzID0gJ3JlbGF0aXZlVmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX09yZGVyaW5nVHlwZSwgaGF2aW5nIHR5cGUgT3JkZXJpbmdUeXBlXHJcbiAgT3JkZXJpbmdUeXBlID0gJ29yZGVyaW5nVHlwZScsXHJcblxyXG4gIC8vIERQSV9PcmRlcmluZ1R5cGVWYWx1ZXMsIGhhdmluZyB0eXBlIE9yZGVyaW5nVHlwZVtdXHJcbiAgT3JkZXJpbmdUeXBlVmFsdWVzID0gJ29yZGVyaW5nVHlwZVZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEJpbkl0ZW1UeXBlLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEJpbkl0ZW1UeXBlXHJcbiAgQ2F0ZWdvcmljYWxCaW5JdGVtVHlwZSA9ICdjYXRlZ29yaWNhbEJpbkl0ZW1UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0F1dGhlbnRpY2F0aW9uSW5mb3MsIGhhdmluZyB0eXBlIEF1dGhlbnRpY2F0aW9uU2V0dGluZ3NQcmVzTW9kZWxcclxuICBBdXRoZW50aWNhdGlvbkluZm9zID0gJ2F1dGhJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25XaWRnZXRQYXJhbXMsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25QYXJhbXNQcmVzTW9kZWxcclxuICBDb25uZWN0aW9uV2lkZ2V0UGFyYW1zID0gJ3dpZGdldENvbm5lY3Rpb25QYXJhbXMnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvblNldHRpbmdzLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uU2V0dGluZ3NQcmVzTW9kZWxcclxuICBDb25uZWN0aW9uU2V0dGluZ3MgPSAnY29ubmVjdGlvblNldHRpbmdzJyxcclxuXHJcbiAgLy8gRFBJX1JlY29ubmVjdEF1dGhlbnRpY2F0aW9uU2V0dGluZ3MsIGhhdmluZyB0eXBlIEF1dGhlbnRpY2F0aW9uU2V0dGluZ3NQcmVzTW9kZWxcclxuICBSZWNvbm5lY3RBdXRoZW50aWNhdGlvblNldHRpbmdzID0gJ3JlY29ubmVjdEF1dGhTZXR0aW5ncycsXHJcblxyXG4gIC8vIERQSV9DdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb25PcHRpb24sIGhhdmluZyB0eXBlIEN1YmVDb25uZWN0aW9uU3BlY2lmaWNhdGlvbk9wdGlvblByZXNNb2RlbFxyXG4gIEN1YmVDb25uZWN0aW9uU3BlY2lmaWNhdGlvbk9wdGlvbiA9ICdjdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb25PcHRpb24nLFxyXG5cclxuICAvLyBEUElfQ3ViZUNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uT3B0aW9ucywgaGF2aW5nIHR5cGUgQ3ViZUNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uT3B0aW9uUHJlc01vZGVsW11cclxuICBDdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb25PcHRpb25zID0gJ2N1YmVDb25uZWN0aW9uU3BlY2lmaWNhdGlvbk9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfQ3ViZUNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uLCBoYXZpbmcgdHlwZSBDdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb25QcmVzTW9kZWxcclxuICBDdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb24gPSAnY3ViZUNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25TZXR0aW5nc09wdGlvbiwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblNldHRpbmdzT3B0aW9uUHJlc01vZGVsXHJcbiAgQ29ubmVjdGlvblNldHRpbmdzT3B0aW9uID0gJ2Nvbm5lY3Rpb25TZXR0aW5nc09wdGlvbicsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uU2V0dGluZ3NPcHRpb25zLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uU2V0dGluZ3NPcHRpb25QcmVzTW9kZWxbXVxyXG4gIENvbm5lY3Rpb25TZXR0aW5nc09wdGlvbnMgPSAnY29ubmVjdGlvblNldHRpbmdzT3B0aW9ucycsXHJcblxyXG4gIC8vIERQSV9TdHJpbmdDb2xsYXRpb24sIGhhdmluZyB0eXBlIFN0cmluZ0NvbGxhdGlvblByZXNNb2RlbFxyXG4gIFN0cmluZ0NvbGxhdGlvbiA9ICdzdHJpbmdDb2xsYXRpb24nLFxyXG5cclxuICAvLyBEUElfRGF0YWJhc2VFbnVtZXJhdGlvbiwgaGF2aW5nIHR5cGUgRGF0YWJhc2VFbnVtZXJhdGlvblByZXNNb2RlbFxyXG4gIERhdGFiYXNlRW51bWVyYXRpb24gPSAnZGF0YWJhc2VFbnVtZXJhdGlvbicsXHJcblxyXG4gIC8vIERQSV9TY2hlbWFFbnVtZXJhdGlvbiwgaGF2aW5nIHR5cGUgU2NoZW1hRW51bWVyYXRpb25QcmVzTW9kZWxcclxuICBTY2hlbWFFbnVtZXJhdGlvbiA9ICdzY2hlbWFFbnVtZXJhdGlvbicsXHJcblxyXG4gIC8vIERQSV9TdGFuZGFyZENvbm5lY3Rpb25FbnVtZXJhdGlvbiwgaGF2aW5nIHR5cGUgU3RhbmRhcmRDb25uZWN0aW9uRW51bWVyYXRpb25QcmVzTW9kZWxcclxuICBTdGFuZGFyZENvbm5lY3Rpb25FbnVtZXJhdGlvbiA9ICdzdGFuZGFyZENvbm5lY3Rpb25FbnVtZXJhdGlvbicsXHJcblxyXG4gIC8vIERQSV9TdG9yZWRQcm9jZWR1cmVFbnVtZXJhdGlvbiwgaGF2aW5nIHR5cGUgU3RvcmVkUHJvY2VkdXJlRW51bWVyYXRpb25QcmVzTW9kZWxcclxuICBTdG9yZWRQcm9jZWR1cmVFbnVtZXJhdGlvbiA9ICdzdG9yZWRQcm9jZWR1cmVFbnVtZXJhdGlvbicsXHJcblxyXG4gIC8vIERQSV9UYWJsZUVudW1lcmF0aW9uLCBoYXZpbmcgdHlwZSBUYWJsZUVudW1lcmF0aW9uUHJlc01vZGVsXHJcbiAgVGFibGVFbnVtZXJhdGlvbiA9ICd0YWJsZUVudW1lcmF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1dhcmVob3VzZUVudW1lcmF0aW9uLCBoYXZpbmcgdHlwZSBXYXJlaG91c2VFbnVtZXJhdGlvblByZXNNb2RlbFxyXG4gIFdhcmVob3VzZUVudW1lcmF0aW9uID0gJ3dhcmVob3VzZUVudW1lcmF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1Nsb3dNZXRhZGF0YVNjaGVtYUxpc3QsIGhhdmluZyB0eXBlIFNsb3dNZXRhZGF0YVNjaGVtYUxpc3RQcmVzTW9kZWxcclxuICBTbG93TWV0YWRhdGFTY2hlbWFMaXN0ID0gJ3Nsb3dNZXRhZGF0YVNjaGVtYUxpc3QnLFxyXG5cclxuICAvLyBEUElfU2xvd01ldGFkYXRhVGFibGVMaXN0LCBoYXZpbmcgdHlwZSBTbG93TWV0YWRhdGFUYWJsZUxpc3RQcmVzTW9kZWxcclxuICBTbG93TWV0YWRhdGFUYWJsZUxpc3QgPSAnc2xvd01ldGFkYXRhVGFibGVMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0N1YmVDYXRhbG9nLCBoYXZpbmcgdHlwZSBDdWJlQ2F0YWxvZ1ByZXNNb2RlbFxyXG4gIEN1YmVDYXRhbG9nID0gJ2N1YmVDYXRhbG9nJyxcclxuXHJcbiAgLy8gRFBJX0N1YmVDYXRhbG9ncywgaGF2aW5nIHR5cGUgQ3ViZUNhdGFsb2dQcmVzTW9kZWxbXVxyXG4gIEN1YmVDYXRhbG9ncyA9ICdjdWJlQ2F0YWxvZ3MnLFxyXG5cclxuICAvLyBEUElfQ3ViZUNhdGFsb2dFbnVtZXJhdGlvbiwgaGF2aW5nIHR5cGUgQ3ViZUNhdGFsb2dFbnVtZXJhdGlvblByZXNNb2RlbFxyXG4gIEN1YmVDYXRhbG9nRW51bWVyYXRpb24gPSAnY3ViZUNhdGFsb2dFbnVtZXJhdGlvbicsXHJcblxyXG4gIC8vIERQSV9DdWJlLCBoYXZpbmcgdHlwZSBDdWJlUHJlc01vZGVsXHJcbiAgQ3ViZSA9ICdjdWJlJyxcclxuXHJcbiAgLy8gRFBJX0N1YmVzLCBoYXZpbmcgdHlwZSBDdWJlUHJlc01vZGVsW11cclxuICBDdWJlcyA9ICdjdWJlcycsXHJcblxyXG4gIC8vIERQSV9DdWJlRW51bWVyYXRpb24sIGhhdmluZyB0eXBlIEN1YmVFbnVtZXJhdGlvblByZXNNb2RlbFxyXG4gIEN1YmVFbnVtZXJhdGlvbiA9ICdjdWJlRW51bWVyYXRpb24nLFxyXG5cclxuICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzQmFzaWNJdGVtLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NCYXNpY0l0ZW1QcmVzTW9kZWxcclxuICBHb29nbGVBbmFseXRpY3NCYXNpY0l0ZW0gPSAnZ29vZ2xlQW5hbHl0aWNzQmFzaWNJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0dBTWVhc3VyZVNldHMsIGhhdmluZyB0eXBlIEdvb2dsZUFuYWx5dGljc0Jhc2ljSXRlbVByZXNNb2RlbFtdXHJcbiAgR0FNZWFzdXJlU2V0cyA9ICdnYU1lYXN1cmVTZXRzJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc1ZpZXdzLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NCYXNpY0l0ZW1QcmVzTW9kZWxbXVxyXG4gIEdvb2dsZUFuYWx5dGljc1ZpZXdzID0gJ2dvb2dsZUFuYWx5dGljc1ZpZXdzJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc1Byb3BlcnRpZXMsIGhhdmluZyB0eXBlIEdvb2dsZUFuYWx5dGljc0Jhc2ljSXRlbVByZXNNb2RlbFtdXHJcbiAgR29vZ2xlQW5hbHl0aWNzUHJvcGVydGllcyA9ICdnb29nbGVBbmFseXRpY3NQcm9wZXJ0aWVzJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUJhc2ljSW5mb0l0ZW1zLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NCYXNpY0l0ZW1QcmVzTW9kZWxbXVxyXG4gIEdvb2dsZUJhc2ljSW5mb0l0ZW1zID0gJ2dvb2dsZUFuYWx5dGljc0FjY291bnRzJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc0NvbXBsZXhJdGVtLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NDb21wbGV4SXRlbVByZXNNb2RlbFxyXG4gIEdvb2dsZUFuYWx5dGljc0NvbXBsZXhJdGVtID0gJ2dvb2dsZUFuYWx5dGljc0NvbXBsZXhJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc1Bvc3NpYmxlRGltZW5zaW9ucywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzQ29tcGxleEl0ZW1QcmVzTW9kZWxbXVxyXG4gIEdvb2dsZUFuYWx5dGljc1Bvc3NpYmxlRGltZW5zaW9ucyA9ICdnb29nbGVBbmFseXRpY3NQb3NzaWJsZURpbWVuc2lvbnMnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzUG9zc2libGVNZWFzdXJlcywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzQ29tcGxleEl0ZW1QcmVzTW9kZWxbXVxyXG4gIEdvb2dsZUFuYWx5dGljc1Bvc3NpYmxlTWVhc3VyZXMgPSAnZ29vZ2xlQW5hbHl0aWNzUG9zc2libGVNZWFzdXJlcycsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVBbmFseXRpY3NQb3NzaWJsZVNlZ21lbnRzLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NDb21wbGV4SXRlbVByZXNNb2RlbFtdXHJcbiAgR29vZ2xlQW5hbHl0aWNzUG9zc2libGVTZWdtZW50cyA9ICdnb29nbGVBbmFseXRpY3NQb3NzaWJsZVNlZ21lbnRzJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc1NlbGVjdGVkRGltZW5zaW9ucywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzQ29tcGxleEl0ZW1QcmVzTW9kZWxbXVxyXG4gIEdvb2dsZUFuYWx5dGljc1NlbGVjdGVkRGltZW5zaW9ucyA9ICdnb29nbGVBbmFseXRpY3NTZWxlY3RlZERpbWVuc2lvbnMnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzU2VsZWN0ZWRNZWFzdXJlcywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzQ29tcGxleEl0ZW1QcmVzTW9kZWxbXVxyXG4gIEdvb2dsZUFuYWx5dGljc1NlbGVjdGVkTWVhc3VyZXMgPSAnZ29vZ2xlQW5hbHl0aWNzU2VsZWN0ZWRNZWFzdXJlcycsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VPcHRpb24sIGhhdmluZyB0eXBlIEdvb2dsZUFuYWx5dGljc0RhdGVSYW5nZU9wdGlvblByZXNNb2RlbFxyXG4gIEdvb2dsZUFuYWx5dGljc0RhdGVSYW5nZU9wdGlvbiA9ICdnb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VPcHRpb24nLFxyXG5cclxuICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlT3B0aW9ucywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlT3B0aW9uUHJlc01vZGVsW11cclxuICBHb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VPcHRpb25zID0gJ2dvb2dsZUFuYWx5dGljc0RhdGVSYW5nZU9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzRW5kRGF0ZSwgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzRGF0ZVByZXNNb2RlbFxyXG4gIEdvb2dsZUFuYWx5dGljc0VuZERhdGUgPSAnZ29vZ2xlQW5hbHl0aWNzRW5kRGF0ZScsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVBbmFseXRpY3NTdGFydERhdGUsIGhhdmluZyB0eXBlIEdvb2dsZUFuYWx5dGljc0RhdGVQcmVzTW9kZWxcclxuICBHb29nbGVBbmFseXRpY3NTdGFydERhdGUgPSAnZ29vZ2xlQW5hbHl0aWNzU3RhcnREYXRlJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc0RhdGVSYW5nZSwgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlUHJlc01vZGVsXHJcbiAgR29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlID0gJ2dvb2dsZUFuYWx5dGljc0RhdGVSYW5nZScsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVBbmFseXRpY3NRdWVyeVBhcnRpdGlvbmluZywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzUXVlcnlQYXJ0aXRpb25pbmdQcmVzTW9kZWxcclxuICBHb29nbGVBbmFseXRpY3NRdWVyeVBhcnRpdGlvbmluZyA9ICdnb29nbGVBbmFseXRpY3NRdWVyeVBhcnRpdGlvbmluZycsXHJcblxyXG4gIC8vIERQSV9HQUNvbm5lY3Rpb25EZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzQ29ubmVjdGlvbkRlc2NyaXB0aW9uUHJlc01vZGVsXHJcbiAgR0FDb25uZWN0aW9uRGVzY3JpcHRpb24gPSAnZ2FDb25uZWN0aW9uRGVzY3JpcHRpb24nLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRJdGVtLCBoYXZpbmcgdHlwZSBHb29nbGVTaGVldEl0ZW1QcmVzTW9kZWxcclxuICBHb29nbGVTaGVldEl0ZW0gPSAnZ29vZ2xlU2hlZXRJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZVNoZWV0SXRlbXMsIGhhdmluZyB0eXBlIEdvb2dsZVNoZWV0SXRlbVByZXNNb2RlbFtdXHJcbiAgR29vZ2xlU2hlZXRJdGVtcyA9ICdnb29nbGVTaGVldEl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZVNoZWV0c0xpc3RQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEdvb2dsZVNoZWV0c0xpc3RQcmVzTW9kZWxcclxuICBHb29nbGVTaGVldHNMaXN0UHJlc01vZGVsID0gJ2dvb2dsZVNoZWV0c0xpc3QnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRQYW5lUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBHb29nbGVTaGVldFBhbmVQcmVzTW9kZWxcclxuICBHb29nbGVTaGVldFBhbmVQcmVzTW9kZWwgPSAnZ29vZ2xlU2hlZXRQYW5lJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJDb25uZWN0aW9uRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIFRhYmxlYXVTZXJ2ZXJDb25uZWN0aW9uRGVzY3JpcHRpb25QcmVzTW9kZWxcclxuICBUYWJsZWF1U2VydmVyQ29ubmVjdGlvbkRlc2NyaXB0aW9uID0gJ3RhYmxlYXVTZXJ2ZXJDb25uZWN0aW9uRGVzY3JpcHRpb24nLFxyXG5cclxuICAvLyBEUElfSW5pdGlhbFNRTFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgSW5pdGlhbFNRTFByZXNNb2RlbFxyXG4gIEluaXRpYWxTUUxQcmVzTW9kZWwgPSAnaW5pdGlhbFNxbFByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9RdWVyeUJhbmRpbmdQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFF1ZXJ5QmFuZGluZ1ByZXNNb2RlbFxyXG4gIFF1ZXJ5QmFuZGluZ1ByZXNNb2RlbCA9ICdxdWVyeUJhbmRpbmdQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfU2xvd01ldGFkYXRhLCBoYXZpbmcgdHlwZSBTbG93TWV0YWRhdGFQcmVzTW9kZWxcclxuICBTbG93TWV0YWRhdGEgPSAnc2xvd01ldGFkYXRhJyxcclxuXHJcbiAgLy8gRFBJX1Nsb3dNZXRhZGF0YVNjaGVtYVNlYXJjaFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU2xvd01ldGFkYXRhU2VhcmNoUHJlc01vZGVsXHJcbiAgU2xvd01ldGFkYXRhU2NoZW1hU2VhcmNoUHJlc01vZGVsID0gJ3Nsb3dNZXRhZGF0YVNjaGVtYVNlYXJjaCcsXHJcblxyXG4gIC8vIERQSV9TbG93TWV0YWRhdGFUYWJsZVNlYXJjaFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU2xvd01ldGFkYXRhU2VhcmNoUHJlc01vZGVsXHJcbiAgU2xvd01ldGFkYXRhVGFibGVTZWFyY2hQcmVzTW9kZWwgPSAnc2xvd01ldGFkYXRhVGFibGVTZWFyY2gnLFxyXG5cclxuICAvLyBEUElfVGFibGVhdVNlcnZlclByb2plY3RzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUYWJsZWF1U2VydmVyUHJvamVjdHNQcmVzTW9kZWxcclxuICBUYWJsZWF1U2VydmVyUHJvamVjdHNQcmVzTW9kZWwgPSAndGFibGVhdVNlcnZlclByb2plY3RzUHJlc21vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJEYXRhU291cmNlUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUYWJsZWF1U2VydmVyRGF0YVNvdXJjZVByZXNNb2RlbFxyXG4gIFRhYmxlYXVTZXJ2ZXJEYXRhU291cmNlUHJlc01vZGVsID0gJ3RhYmxlYXVTZXJ2ZXJEYXRhU291cmNlUHJlc21vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJEYXRhU291cmNlUHJlc01vZGVscywgaGF2aW5nIHR5cGUgVGFibGVhdVNlcnZlckRhdGFTb3VyY2VQcmVzTW9kZWxbXVxyXG4gIFRhYmxlYXVTZXJ2ZXJEYXRhU291cmNlUHJlc01vZGVscyA9ICd0YWJsZWF1U2VydmVyRGF0YVNvdXJjZVByZXNtb2RlbHMnLFxyXG5cclxuICAvLyBEUElfVGFibGVhdVNlcnZlckRhdGFTb3VyY2VzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUYWJsZWF1U2VydmVyRGF0YVNvdXJjZXNQcmVzTW9kZWxcclxuICBUYWJsZWF1U2VydmVyRGF0YVNvdXJjZXNQcmVzTW9kZWwgPSAndGFibGVhdVNlcnZlckRhdGFTb3VyY2VzUHJlc21vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJEYXRhUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUYWJsZWF1U2VydmVyRGF0YVByZXNNb2RlbFxyXG4gIFRhYmxlYXVTZXJ2ZXJEYXRhUHJlc01vZGVsID0gJ3RhYmxlYXVTZXJ2ZXJEYXRhUHJlc21vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1N0b3JlZFByb2NlZHVyZVBhcmFtZXRlclByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU3RvcmVkUHJvY2VkdXJlUGFyYW1ldGVyUHJlc01vZGVsXHJcbiAgU3RvcmVkUHJvY2VkdXJlUGFyYW1ldGVyUHJlc01vZGVsID0gJ3N0b3JlZFByb2NlZHVyZVBhcmFtZXRlcicsXHJcblxyXG4gIC8vIERQSV9TdG9yZWRQcm9jZWR1cmVQYXJhbWV0ZXJzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTdG9yZWRQcm9jZWR1cmVQYXJhbWV0ZXJQcmVzTW9kZWxbXVxyXG4gIFN0b3JlZFByb2NlZHVyZVBhcmFtZXRlcnNQcmVzTW9kZWwgPSAnc3RvcmVkUHJvY2VkdXJlUGFyYW1ldGVycycsXHJcblxyXG4gIC8vIERQSV9DdXN0b21TUUxJbmZvLCBoYXZpbmcgdHlwZSBDdXN0b21TUUxJbmZvUHJlc01vZGVsXHJcbiAgQ3VzdG9tU1FMSW5mbyA9ICdjdXN0b21TcWxJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25UYWJsZUluZm8sIGhhdmluZyB0eXBlIENvbm5lY3Rpb25UYWJsZUluZm9QcmVzTW9kZWxcclxuICBDb25uZWN0aW9uVGFibGVJbmZvID0gJ2Nvbm5lY3Rpb25UYWJsZUluZm8nLFxyXG5cclxuICAvLyBEUElfVGFibGVJbmZvcywgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblRhYmxlSW5mb1ByZXNNb2RlbFtdXHJcbiAgVGFibGVJbmZvcyA9ICd0YWJsZUluZm9zJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25EZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvbkRlc2NyaXB0aW9uUHJlc01vZGVsXHJcbiAgQ29ubmVjdGlvbkRlc2NyaXB0aW9uID0gJ2Nvbm5lY3Rpb25EZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJ5LCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJ5UHJlc01vZGVsXHJcbiAgQ29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeSA9ICdjb25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJ5JyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcmllcywgaGF2aW5nIHR5cGUgQ29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeVByZXNNb2RlbFtdXHJcbiAgQ29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyaWVzID0gJ2Nvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcmllcycsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlUGFyc2VyVmFsaWRhdGlvbk1vZGUsIGhhdmluZyB0eXBlIERhdGFTb3VyY2VQYXJzZXJWYWxpZGF0aW9uTW9kZVxyXG4gIERhdGFTb3VyY2VQYXJzZXJWYWxpZGF0aW9uTW9kZSA9ICdkYXRhU291cmNlUGFyc2VyVmFsaWRhdGlvbk1vZGUnLFxyXG5cclxuICAvLyBEUElfT0F1dGhDcmVkZW50aWFsVHlwZUluZm8sIGhhdmluZyB0eXBlIE9BdXRoQ3JlZGVudGlhbFR5cGVJbmZvUHJlc01vZGVsXHJcbiAgT0F1dGhDcmVkZW50aWFsVHlwZUluZm8gPSAnb2F1dGhDcmVkZW50aWFsVHlwZUluZm8nLFxyXG5cclxuICAvLyBEUElfT0F1dGhDcmVkZW50aWFsVHlwZUluZm9zLCBoYXZpbmcgdHlwZSBPQXV0aENyZWRlbnRpYWxUeXBlSW5mb1ByZXNNb2RlbFtdXHJcbiAgT0F1dGhDcmVkZW50aWFsVHlwZUluZm9zID0gJ29hdXRoQ3JlZGVudGlhbFR5cGVJbmZvcycsXHJcblxyXG4gIC8vIERQSV9PQXV0aFNldHRpbmdzLCBoYXZpbmcgdHlwZSBPQXV0aFNldHRpbmdzUHJlc01vZGVsXHJcbiAgT0F1dGhTZXR0aW5ncyA9ICdvYXV0aFNldHRpbmdzJyxcclxuXHJcbiAgLy8gRFBJX0NyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWcsIGhhdmluZyB0eXBlIENyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWdcclxuICBDcmVkZW50aWFsVHlwZVByb3BlcnRpZXNGbGFnID0gJ2NyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWcnLFxyXG5cclxuICAvLyBEUElfQ3JlZGVudGlhbFR5cGVQcm9wZXJ0aWVzRmxhZ3MsIGhhdmluZyB0eXBlIENyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWdbXVxyXG4gIENyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWdzID0gJ2NyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWdzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25UeXBlRW51bSwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblR5cGVFbnVtXHJcbiAgQ29ubmVjdGlvblR5cGVFbnVtID0gJ2Nvbm5lY3Rpb25UeXBlRW51bScsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0b3JUeXBlLCBoYXZpbmcgdHlwZSBDb25uZWN0b3JUeXBlXHJcbiAgQ29ubmVjdG9yVHlwZSA9ICdjb25uZWN0b3JUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1BkZlBhZ2VQaWNrZXIsIGhhdmluZyB0eXBlIFBkZlBhZ2VQaWNrZXJQcmVzTW9kZWxcclxuICBQZGZQYWdlUGlja2VyID0gJ3BkZlBhZ2VQaWNrZXInLFxyXG5cclxuICAvLyBEUElfQWN0aXZhdGVOZXcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBY3RpdmF0ZU5ldyA9ICdhY3RpdmF0ZU5ldycsXHJcblxyXG4gIC8vIERQSV9BZGRBY3Rpb25zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWRkQWN0aW9ucyA9ICdhZGRBY3Rpb25zJyxcclxuXHJcbiAgLy8gRFBJX0FkZEFzRmxvYXRpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRBc0Zsb2F0aW5nID0gJ2FkZEFzRmxvYXRpbmcnLFxyXG5cclxuICAvLyBEUElfQWRkQ29sb3JEaWN0aW9uYXJ5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWRkQ29sb3JEaWN0aW9uYXJ5ID0gJ2FkZENvbG9yRGljdGlvbmFyeScsXHJcblxyXG4gIC8vIERQSV9BZGREcm9wbGluZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGREcm9wbGluZXMgPSAnYWRkRHJvcGxpbmVzJyxcclxuXHJcbiAgLy8gRFBJX0FkZEhlYWRlcnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRIZWFkZXJzID0gJ2FkZEhlYWRlcnMnLFxyXG5cclxuICAvLyBEUElfQWRkSGlnaGxpZ2h0aW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWRkSGlnaGxpZ2h0aW5nID0gJ2FkZEhpZ2hsaWdodGluZycsXHJcblxyXG4gIC8vIERQSV9BZGRJbWFnZURpY3Rpb25hcnksIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRJbWFnZURpY3Rpb25hcnkgPSAnYWRkSW1hZ2VEaWN0aW9uYXJ5JyxcclxuXHJcbiAgLy8gRFBJX0FkZE1hcmtMYWJlbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRNYXJrTGFiZWxzID0gJ2FkZE1hcmtMYWJlbHMnLFxyXG5cclxuICAvLyBEUElfQWRkUGFnZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRQYWdlcyA9ICdhZGRQYWdlcycsXHJcblxyXG4gIC8vIERQSV9BZGRTZWxlY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRTZWxlY3Rpb24gPSAnYWRkU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0FkZFRvRm9sZGVyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWRkVG9Gb2xkZXIgPSAnYWRkVG9Gb2xkZXInLFxyXG5cclxuICAvLyBEUElfQWRkVml6RGF0YSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFkZFZpekRhdGEgPSAnYWRkVml6RGF0YScsXHJcblxyXG4gIC8vIERQSV9BbGVydENvbmRpdGlvbk1ldCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsZXJ0Q29uZGl0aW9uTWV0ID0gJ2FsZXJ0Q29uZGl0aW9uTWV0JyxcclxuXHJcbiAgLy8gRFBJX0FsbEZpZWxkcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbEZpZWxkcyA9ICdhbGxGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfQWxsT25FbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbE9uRW1wdHkgPSAnYWxsT25FbXB0eScsXHJcblxyXG4gIC8vIERQSV9BbGxQYWdlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbFBhZ2VzID0gJ2luY2x1ZGVBbGxQYWdlcycsXHJcblxyXG4gIC8vIERQSV9BbGxvd1ByZXZpZXdTaXplQ2hhbmdlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dQcmV2aWV3U2l6ZUNoYW5nZSA9ICdhbGxvd1ByZXZpZXdTaXplQ2hhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0FsbFNlbGVjdGVkSXNFZmZlY3RpdmVseVJhbmdlVHlwZUFsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbFNlbGVjdGVkSXNFZmZlY3RpdmVseVJhbmdlVHlwZUFsbCA9ICdhbGxTZWxlY3RlZElzRWZmZWN0aXZlbHlSYW5nZVR5cGVBbGwnLFxyXG5cclxuICAvLyBEUElfQWxsU3RvcnlQb2ludHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxTdG9yeVBvaW50cyA9ICdhbGxTdG9yeXBvaW50cycsXHJcblxyXG4gIC8vIERQSV9BbGxvd0FsbFJhbmdlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dBbGxSYW5nZSA9ICdhbGxvd0FsbFJhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93Q3JlYXRpbmdOZXdQYXJhbWV0ZXJzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dDcmVhdGluZ05ld1BhcmFtZXRlcnMgPSAnYWxsb3dDcmVhdGluZ05ld1BhcmFtZXRlcnMnLFxyXG5cclxuICAvLyBEUElfQWxsb3dDb250aW51b3VzRGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbG93Q29udGludW91c0RhdGUgPSAnYWxsb3dDb250aW51b3VzRGF0ZScsXHJcblxyXG4gIC8vIERQSV9BbGxvd0R1cGxpY2F0ZUZpZWxkRHJvcE9uRmlsdGVyU2hlbGYsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd0R1cGxpY2F0ZUZpZWxkRHJvcE9uRmlsdGVyU2hlbGYgPSAnYWxsb3dEdXBsaWNhdGVGaWVsZERyb3BPbkZpbHRlclNoZWxmJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93RmlsdGVyUHJlc2V0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dGaWx0ZXJQcmVzZXQgPSAnYWxsb3dGaWx0ZXJQcmVzZXQnLFxyXG5cclxuICAvLyBEUElfQWxsb3dIb3ZlckFjdGlvbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd0hvdmVyQWN0aW9ucyA9ICdhbGxvd0hvdmVyQWN0aW9ucycsXHJcblxyXG4gIC8vIERQSV9BbGxvd0h5cGhlbmF0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dIeXBoZW5hdGlvbiA9ICdhbGxvd0h5cGhlbmF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93Sm9pbk9uQ2FsYywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbG93Sm9pbk9uQ2FsYyA9ICdhbGxvd0pvaW5PbkNhbGMnLFxyXG5cclxuICAvLyBEUElfQWxsb3dNYW51YWxSYW5nZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbG93TWFudWFsUmFuZ2UgPSAnYWxsb3dNYW51YWxSYW5nZScsXHJcblxyXG4gIC8vIERQSV9BbGxvd01hcHBpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd01hcHBpbmcgPSAnYWxsb3dNYXBwaW5nJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93TXVsdGlTZWxlY3QsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd011bHRpU2VsZWN0ID0gJ2FsbG93TXVsdGlTZWxlY3QnLFxyXG5cclxuICAvLyBEUElfQWxsb3dOdWxsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dOdWxsID0gJ2FsbG93TnVsbCcsXHJcblxyXG4gIC8vIERQSV9BbGxvd1Bhblpvb20sIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1Bhblpvb20gPSAnYWxsb3dQYW5ab29tJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93UGF0dGVybkJhc2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dQYXR0ZXJuQmFzZWQgPSAnYWxsb3dQYXR0ZXJuQmFzZWRVbmlvbicsXHJcblxyXG4gIC8vIERQSV9BbGxvd1Byb21wdFRleHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1Byb21wdFRleHQgPSAnYWxsb3dQcm9tcHRUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0FsbG93U2F2ZURhdGFTb3VyY2UsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1NhdmVEYXRhU291cmNlID0gJ2FsbG93U2F2ZURhdGFTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfQWxsb3dXaG9sZURhdGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1dob2xlRGF0ZSA9ICdhbGxvd1dob2xlRGF0ZScsXHJcblxyXG4gIC8vIERQSV9BbGxvd1dvcmssIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1dvcmsgPSAnYWxsb3dXb3JrJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93V3JhcCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbG93V3JhcCA9ICdhbGxvd1dyYXAnLFxyXG5cclxuICAvLyBEUElfQXBwSXMzMkJpdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFwcElzMzJCaXQgPSAnYXBwSXMzMkJpdCcsXHJcblxyXG4gIC8vIERQSV9BcHBJczY0Qml0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXBwSXM2NEJpdCA9ICdhcHBJczY0Qml0JyxcclxuXHJcbiAgLy8gRFBJX0FwcElzQmV0YSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFwcElzQmV0YSA9ICdhcHBJc0JldGEnLFxyXG5cclxuICAvLyBEUElfQXBwSXNPRU0sIGhhdmluZyB0eXBlIGJvb2xcclxuICBBcHBJc09FTSA9ICdhcHBJc09lbScsXHJcblxyXG4gIC8vIERQSV9BcHBlbmRUZGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBcHBlbmRUZGUgPSAnYXBwZW5kVGRlJyxcclxuXHJcbiAgLy8gRFBJX0FwcGx5Q29sb3JzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXBwbHlDb2xvcnMgPSAnYXBwbHlDb2xvcnMnLFxyXG5cclxuICAvLyBEUElfQXBwbHlOZXdTZWxlY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBBcHBseU5ld1NlbGVjdGlvbiA9ICdhcHBseU5ld1NlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9BcmVDb25maWRlbmNlQmFuZHNWYWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFyZUNvbmZpZGVuY2VCYW5kc1ZhbGlkID0gJ2FyZUNvbmZpZGVuY2VCYW5kc1ZhbGlkJyxcclxuXHJcbiAgLy8gRFBJX0FyZURhdGFTb3VyY2VGaWx0ZXJzVmlzaWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFyZURhdGFTb3VyY2VGaWx0ZXJzVmlzaWJsZSA9ICdhcmVEYXRhU291cmNlRmlsdGVyc1Zpc2libGUnLFxyXG5cclxuICAvLyBEUElfQXJlRXh0cmFjdEZpbHRlcnNFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXJlRXh0cmFjdEZpbHRlcnNFbmFibGVkID0gJ2FyZUV4dHJhY3RGaWx0ZXJzRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9BcmVUb3RhbHNVc2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXJlVG90YWxzVXNlZCA9ICdhcmVUb3RhbHNVc2VkJyxcclxuXHJcbiAgLy8gRFBJX0F0VGhlTGV2ZWxGaWVsZElzSW52YWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEF0VGhlTGV2ZWxGaWVsZElzSW52YWxpZCA9ICdhdFRoZUxldmVsRmllbGRJc0ludmFsaWQnLFxyXG5cclxuICAvLyBEUElfQXV0b1VSTCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEF1dG9VUkwgPSAnYXV0b1VybCcsXHJcblxyXG4gIC8vIERQSV9BdXRvVXBkYXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXV0b1VwZGF0ZSA9ICdhdXRvVXBkYXRlJyxcclxuXHJcbiAgLy8gRFBJX0JhY2tpbmdTaGVldElzRGFzaGJvYXJkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQmFja2luZ1NoZWV0SXNEYXNoYm9hcmQgPSAnaXNCYWNraW5nU2hlZXREYXNoYm9hcmQnLFxyXG5cclxuICAvLyBEUElfQmVnaW5EYXRhU291cmNlUHJlc01vZGVsVXBkYXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQmVnaW5EYXRhU291cmNlUHJlc01vZGVsVXBkYXRlID0gJ2JlZ2luRGF0YVNvdXJjZVByZXNNb2RlbFVwZGF0ZScsXHJcblxyXG4gIC8vIERQSV9BZ2dyZWdhdGVEcmlsbFVwLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWdncmVnYXRlRHJpbGxVcCA9ICdib29sQWdncmVnYXRlRHJpbGxVcCcsXHJcblxyXG4gIC8vIERQSV9Cb3hwbG90TWFya0V4Y2x1c2lvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEJveHBsb3RNYXJrRXhjbHVzaW9uID0gJ2JveHBsb3RNYXJrRXhjbHVzaW9uJyxcclxuXHJcbiAgLy8gRFBJX0JyZWFrUGFnZU9uUGFuZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEJyZWFrUGFnZU9uUGFuZSA9ICdicmVha1BhZ2VPblBhbmUnLFxyXG5cclxuICAvLyBEUElfQnJ1c2hMZWdlbmRzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQnJ1c2hMZWdlbmRzID0gJ2JydXNoTGVnZW5kcycsXHJcblxyXG4gIC8vIERQSV9DYWNoZVByZXNNb2RlbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYWNoZVByZXNNb2RlbHMgPSAnY2FjaGVQcmVzTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX0NhbkFkZENvbm5lY3Rpb25zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuQWRkQ29ubmVjdGlvbnMgPSAnY2FuQWRkQ29ubmVjdGlvbnMnLFxyXG5cclxuICAvLyBEUElfU29ydFBpbGxDYW5CZURyYWdnZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTb3J0UGlsbENhbkJlRHJhZ2dlZCA9ICdzb3J0UGlsbENhbkJlRHJhZ2dlZCcsXHJcblxyXG4gIC8vIERQSV9DYW5BZGRUYWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbkFkZFRhYmxlID0gJ2NhbkFkZFRhYmxlJyxcclxuXHJcbiAgLy8gRFBJX0NhbkFkZFRvRHJpbGxQYXRoLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuQWRkVG9EcmlsbFBhdGggPSAnY2FuQWRkVG9EcmlsbFBhdGgnLFxyXG5cclxuICAvLyBEUElfQ2FuQW5hbHl6ZURhdGEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5BbmFseXplRGF0YSA9ICdjYW5BbmFseXplRGF0YScsXHJcblxyXG4gIC8vIERQSV9DYW5DaGFuZ2VEYXRhVHlwZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbkNoYW5nZURhdGFUeXBlID0gJ2NhbkNoYW5nZURhdGFUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0NhbkNoYW5nZVNlbWFudGljUm9sZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbkNoYW5nZVNlbWFudGljUm9sZSA9ICdjYW5DaGFuZ2VTZW1hbnRpY1JvbGUnLFxyXG5cclxuICAvLyBEUElfQ2FuRGVyaXZlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuRGVyaXZlID0gJ2NhbkRlcml2ZScsXHJcblxyXG4gIC8vIERQSV9DYW5Ecm9wLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuRHJvcCA9ICdjYW5Ecm9wJyxcclxuXHJcbiAgLy8gRFBJX0NhbkVkaXQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5FZGl0ID0gJ2NhbkVkaXQnLFxyXG5cclxuICAvLyBEUElfQ2FuRWRpdExlZ2VuZENvbG9yLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuRWRpdExlZ2VuZENvbG9yID0gJ2NhbkVkaXRMZWdlbmRDb2xvcicsXHJcblxyXG4gIC8vIERQSV9DYW5FbmFibGVDZW50ZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5FbmFibGVDZW50ZXIgPSAnY2FuRW5hYmxlQ2VudGVyJyxcclxuXHJcbiAgLy8gRFBJX0NhblNob3dBZHZhbmNlZFNldHRpbmdzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU2hvd0FkdmFuY2VkU2V0dGluZ3MgPSAnY2FuU2hvd0FkdmFuY2VkU2V0dGluZ3MnLFxyXG5cclxuICAvLyBEUElfQ2FuRW5hYmxlRmlsdGVyU3RhdGVCdXR0b24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5FbmFibGVGaWx0ZXJTdGF0ZUJ1dHRvbiA9ICdjYW5FbmFibGVGaWx0ZXJTdGF0ZUJ1dHRvbicsXHJcblxyXG4gIC8vIERQSV9DYW5GbG9hdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbkZsb2F0ID0gJ2NhbkZsb2F0JyxcclxuXHJcbiAgLy8gRFBJX0NhbkhhdmVUaXRsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbkhhdmVUaXRsZSA9ICdjYW5IYXZlVGl0bGUnLFxyXG5cclxuICAvLyBEUElfQ2FuSWdub3JlVXBkYXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuSWdub3JlVXBkYXRlID0gJ2Nhbklnbm9yZVVwZGF0ZScsXHJcblxyXG4gIC8vIERQSV9DYW5Mb2dUcmFuc2Zvcm1FeHBsYW5hdG9yeUF4aXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5Mb2dUcmFuc2Zvcm1FeHBsYW5hdG9yeUF4aXMgPSAnY2FuTG9nVHJhbnNmb3JtRXhwbGFuYXRvcnlBeGlzJyxcclxuXHJcbiAgLy8gRFBJX0Nhbk5hdmlnYXRlQmFjaywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbk5hdmlnYXRlQmFjayA9ICdjYW5OYXZpZ2F0ZUJhY2snLFxyXG5cclxuICAvLyBEUElfQ2FuTmF2aWdhdGVGb3J3YXJkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuTmF2aWdhdGVGb3J3YXJkID0gJ2Nhbk5hdmlnYXRlRm9yd2FyZCcsXHJcblxyXG4gIC8vIERQSV9DYW5TY3JvbGxYLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU2Nyb2xsWCA9ICdjYW5TY3JvbGxYJyxcclxuXHJcbiAgLy8gRFBJX0NhblNjcm9sbFksIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5TY3JvbGxZID0gJ2NhblNjcm9sbFknLFxyXG5cclxuICAvLyBEUElfQ2FuU2V0RG9tYWluLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU2V0RG9tYWluID0gJ2NhblNldERvbWFpbicsXHJcblxyXG4gIC8vIERQSV9DYW5TZXRNYXBVbml0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU2V0TWFwVW5pdCA9ICdjYW5TZXRNYXBVbml0JyxcclxuXHJcbiAgLy8gRFBJX0NhblNob3dBcHBseUJ1dHRvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblNob3dBcHBseUJ1dHRvbiA9ICdjYW5TaG93QXBwbHlCdXR0b24nLFxyXG5cclxuICAvLyBEUElfQ2FuU2hvd0ZpbHRlclN0YXRlQnV0dG9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU2hvd0ZpbHRlclN0YXRlQnV0dG9uID0gJ2NhblNob3dGaWx0ZXJTdGF0ZUJ1dHRvbicsXHJcblxyXG4gIC8vIERQSV9DYW5TaG93TW9yZUZld2VyQnV0dG9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU2hvd01vcmVGZXdlckJ1dHRvbiA9ICdjYW5TaG93TW9yZUZld2VyQnV0dG9uJyxcclxuXHJcbiAgLy8gRFBJX0NhblNob3dTeW5jQ2xpZW50T3B0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblNob3dTeW5jQ2xpZW50T3B0aW9ucyA9ICdjYW5TaG93U3luY0NsaWVudE9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfQ2FuU29ydCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblNvcnQgPSAnY2FuU29ydCcsXHJcblxyXG4gIC8vIERQSV9DYW5Tb3J0T3JkaW5hbGx5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU29ydE9yZGluYWxseSA9ICdjYW5Tb3J0T3JkaW5hbCcsXHJcblxyXG4gIC8vIERQSV9DYW5Ub2dnbGVBdXRvbWF0aWNEcmlsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblRvZ2dsZUF1dG9tYXRpY0RyaWxsID0gJ2NhblRvZ2dsZUF1dG9tYXRpY0RyaWxsJyxcclxuXHJcbiAgLy8gRFBJX0NhblRvZ2dsZUdlb2dyYXBoaWNTZWFyY2gsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5Ub2dnbGVHZW9ncmFwaGljU2VhcmNoID0gJ2NhblRvZ2dsZUdlb2dyYXBoaWNTZWFyY2gnLFxyXG5cclxuICAvLyBEUElfQ2FuVG9nZ2xlTWFwU2NhbGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5Ub2dnbGVNYXBTY2FsZSA9ICdjYW5Ub2dnbGVNYXBTY2FsZScsXHJcblxyXG4gIC8vIERQSV9DYW5Vc2VGdWxsQ29sb3JSYW5nZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblVzZUZ1bGxDb2xvclJhbmdlID0gJ2NhblVzZUZ1bGxDb2xvclJhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0NhblVzZU11bHRpcGxlSGllcmFyY2hpZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5Vc2VNdWx0aXBsZUhpZXJhcmNoaWVzID0gJ2NhblVzZU11bHRpcGxlSGllcmFyY2hpZXMnLFxyXG5cclxuICAvLyBEUElfQ2VudGVySG9yaXpvbnRhbGx5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2VudGVySG9yaXpvbnRhbGx5ID0gJ2NlbnRlckhvcml6b250YWxseScsXHJcblxyXG4gIC8vIERQSV9DZW50ZXJWZXJ0aWNhbGx5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2VudGVyVmVydGljYWxseSA9ICdjZW50ZXJWZXJ0aWNhbGx5JyxcclxuXHJcbiAgLy8gRFBJX0NoYW5nZUFsbEZpZWxkcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENoYW5nZUFsbEZpZWxkcyA9ICdjaGFuZ2VBbGxGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfQ2hhbmdlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENoYW5nZWQgPSAnY2hhbmdlZCcsXHJcblxyXG4gIC8vIERQSV9DbGVhckJydXNoaW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2xlYXJCcnVzaGluZyA9ICdjbGVhckJydXNoaW5nJyxcclxuXHJcbiAgLy8gRFBJX0NsZWFyU29ydCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENsZWFyU29ydCA9ICdjbGVhclNvcnQnLFxyXG5cclxuICAvLyBEUElfQ2xlYXJWaWV3LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2xlYXJWaWV3ID0gJ2NsZWFyVmlldycsXHJcblxyXG4gIC8vIERQSV9Db2xsYXBzZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDb2xsYXBzZWQgPSAnY29sbGFwc2VkJyxcclxuXHJcbiAgLy8gRFBJX0NvbnNvbGlkYXRlSW5Db21taXQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDb25zb2xpZGF0ZUluQ29tbWl0ID0gJ2NvbnNvbGlkYXRlSW5Db21taXQnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlckVuYWJsZVNjYWxlZENoZWNrYm94LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2x1c3RlckVuYWJsZVNjYWxlZENoZWNrYm94ID0gJ2NsdXN0ZXJFbmFibGVTY2FsZWRDaGVja2JveCcsXHJcblxyXG4gIC8vIERQSV9Db21taXRQaWxsRmluaXNoZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDb21taXRQaWxsRmluaXNoZWQgPSAnY29tbWl0UGlsbEZpbmlzaGVkJyxcclxuXHJcbiAgLy8gRFBJX0NvbXByZXNzQXJyYXlzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29tcHJlc3NBcnJheXMgPSAnY29tcHJlc3NBcnJheXMnLFxyXG5cclxuICAvLyBEUElfQ29tcHV0ZUNvbXBvdW5kZWRSYXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29tcHV0ZUNvbXBvdW5kZWRSYXRlID0gJ2NvbXB1dGVDb21wb3VuZGVkUmF0ZScsXHJcblxyXG4gIC8vIERQSV9Db25maWRlbmNlSW50ZXJ2YWxBbGxvd2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29uZmlkZW5jZUludGVydmFsQWxsb3dlZCA9ICdjb25maWRlbmNlSW50ZXJ2YWxBbGxvd2VkJyxcclxuXHJcbiAgLy8gRFBJX0NvbmZpZ0lzRGVza3RvcFN0YW5kYXJkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29uZmlnSXNEZXNrdG9wU3RhbmRhcmQgPSAnY29uZmlnSXNEZXNrdG9wU3RhbmRhcmQnLFxyXG5cclxuICAvLyBEUElfQ29uZmlnSXNJbnRlcmFjdG9yLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29uZmlnSXNJbnRlcmFjdG9yID0gJ2NvbmZpZ0lzSW50ZXJhY3RvcicsXHJcblxyXG4gIC8vIERQSV9Db25maWdJc1B1YmxpYywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENvbmZpZ0lzUHVibGljID0gJ2NvbmZpZ0lzUHVibGljJyxcclxuXHJcbiAgLy8gRFBJX0NvbmZpZ0lzUmVhZGVyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29uZmlnSXNSZWFkZXIgPSAnY29uZmlnSXNSZWFkZXInLFxyXG5cclxuICAvLyBEUElfQ29udGFpbnNRdWFudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENvbnRhaW5zUXVhbnQgPSAnY29udGFpbnNRdWFudCcsXHJcblxyXG4gIC8vIERQSV9Db250YWluc1ZhbGlkRGF0YXNvdXJjZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDb250YWluc1ZhbGlkRGF0YXNvdXJjZXMgPSAnY29udGFpbnNWYWxpZERhdGFzb3VyY2VzJyxcclxuXHJcbiAgLy8gRFBJX0NvbnRyb2xsZXJNaXNzaW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29udHJvbGxlck1pc3NpbmcgPSAnY29udHJvbGxlck1pc3NpbmcnLFxyXG5cclxuICAvLyBEUElfQ3JlYXRlRXh0cmFjdEZvclB1Ymxpc2gsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDcmVhdGVFeHRyYWN0Rm9yUHVibGlzaCA9ICdjcmVhdGVFeHRyYWN0Rm9yUHVibGlzaCcsXHJcblxyXG4gIC8vIERQSV9Dcm9zc1RhYiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENyb3NzVGFiID0gJ2Nyb3NzVGFiJyxcclxuXHJcbiAgLy8gRFBJX0N1bGxMYWJlbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDdWxsTGFiZWxzID0gJ2N1bGxMYWJlbHMnLFxyXG5cclxuICAvLyBEUElfQ3VycmVudEN1c3RWaWV3SWRGbGFnLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ3VycmVudEN1c3RWaWV3SWRGbGFnID0gJ2lzQ3VycmVudEN1c3RWaWV3SWRWYWxpZCcsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRFbmFibGVTbmFwLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRGFzaGJvYXJkRW5hYmxlU25hcCA9ICdkYXNoYm9hcmRFbmFibGVTbmFwJyxcclxuXHJcbiAgLy8gRFBJX0Rhc2hib2FyZFNob3dHcmlkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRGFzaGJvYXJkU2hvd0dyaWQgPSAnZGFzaGJvYXJkU2hvd0dyaWQnLFxyXG5cclxuICAvLyBEUElfRGF0YUdyaWRTb3J0T3JkZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBEYXRhR3JpZFNvcnRPcmRlciA9ICdkYXRhZ3JpZFNvcnRPcmRlcicsXHJcblxyXG4gIC8vIERQSV9EZWxldGVFeHRyYWN0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRGVsZXRlRXh0cmFjdCA9ICdkZWxldGVFeHRyYWN0JyxcclxuXHJcbiAgLy8gRFBJX0RlbGV0ZU9ubHlTcGVjaWZpZWRTZWxlY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBEZWxldGVPbmx5U3BlY2lmaWVkU2VsZWN0aW9uID0gJ2RlbGV0ZU9ubHlTcGVjaWZpZWRTZWxlY3Rpb24nLFxyXG5cclxuICAvLyBEUElfRGVsZXRlT3JwaGFucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERlbGV0ZU9ycGhhbnMgPSAnZGVsZXRlT3JwaGFucycsXHJcblxyXG4gIC8vIERQSV9EaW1lbnNpb25Jc0VmZmVjdGl2ZWx5RW1wdHksIGhhdmluZyB0eXBlIGJvb2xcclxuICBEaW1lbnNpb25Jc0VmZmVjdGl2ZWx5RW1wdHkgPSAnZGltZW5zaW9uSXNFZmZlY3RpdmVseUVtcHR5JyxcclxuXHJcbiAgLy8gRFBJX0Rpc2FibGVkRGF0YUNvbm5lY3Rpb25DbGFzc05hbWVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRGlzYWJsZWREYXRhQ29ubmVjdGlvbkNsYXNzTmFtZXMgPSAnZGlzYWJsZWREYXRhQ29ubmVjdGlvbkNsYXNzTmFtZXMnLFxyXG5cclxuICAvLyBEUElfRGlzYWJsZVByZXNNb2RlbEhhbmRsZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBEaXNhYmxlUHJlc01vZGVsSGFuZGxlciA9ICdkaXNhYmxlUHJlc01vZGVsSGFuZGxlcicsXHJcblxyXG4gIC8vIERQSV9EaXNwbGF5RGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERpc3BsYXlEYXRlID0gJ2Rpc3BsYXlEYXRlJyxcclxuXHJcbiAgLy8gRFBJX0Rpc3BsYXlUaW1lLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRGlzcGxheVRpbWUgPSAnZGlzcGxheVRpbWUnLFxyXG5cclxuICAvLyBEUElfRG9Ecm9wVUlBY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBEb0Ryb3BVSUFjdGlvbiA9ICdkb0Ryb3BVaUFjdGlvbicsXHJcblxyXG4gIC8vIERQSV9Eb01lcmdlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRG9NZXJnZSA9ICdkb01lcmdlJyxcclxuXHJcbiAgLy8gRFBJX0RvUHJlRHJvcFVJQWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRG9QcmVEcm9wVUlBY3Rpb24gPSAnZG9QcmVEcm9wVWlBY3Rpb24nLFxyXG5cclxuICAvLyBEUElfRG9RdWVyeSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERvUXVlcnkgPSAnZG9RdWVyeScsXHJcblxyXG4gIC8vIERQSV9EcmFnSG9yeiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERyYWdIb3J6ID0gJ2RyYWdIb3J6JyxcclxuXHJcbiAgLy8gRFBJX0RyaWxsRG93biwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERyaWxsRG93biA9ICdkcmlsbERvd24nLFxyXG5cclxuICAvLyBEUElfRHJvcFRvWEF4aXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBEcm9wVG9YQXhpcyA9ICdkcm9wVG9YQXhpcycsXHJcblxyXG4gIC8vIERQSV9Ecm9wVG9ZQXhpcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERyb3BUb1lBeGlzID0gJ2Ryb3BUb1lBeGlzJyxcclxuXHJcbiAgLy8gRFBJX0Ryb3BVbm5hbWVkRmllbGRzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRHJvcFVubmFtZWRGaWVsZHMgPSAnZHJvcFVubmFtZWRGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfRWRpdEV4aXN0aW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRWRpdEV4aXN0aW5nID0gJ2VkaXRFeGlzdGluZycsXHJcblxyXG4gIC8vIERQSV9FZGl0aW5nQ29ubmVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVkaXRpbmdDb25uZWN0aW9uID0gJ2VkaXRpbmdDb25uZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0VtYmVkQ3JlZGVudGlhbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFbWJlZENyZWRlbnRpYWxzID0gJ2VtYmVkQ3JlZGVudGlhbHMnLFxyXG5cclxuICAvLyBEUElfRW1iZWRPQXV0aENyZWRlbnRpYWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFbWJlZE9BdXRoQ3JlZGVudGlhbCA9ICdlbWJlZE9hdXRoQ3JlZGVudGlhbHMnLFxyXG5cclxuICAvLyBEUElfRW1wdHlIaWdobGlnaHRGb2dBbGwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFbXB0eUhpZ2hsaWdodEZvZ0FsbCA9ICdlbXB0eUhpZ2hsaWdodEZvZ0FsbCcsXHJcblxyXG4gIC8vIERQSV9FbmFibGVBbHBoYWJldGljU29ydCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZUFscGhhYmV0aWNTb3J0ID0gJ2VuYWJsZUFscGhhYmV0aWNTb3J0JyxcclxuXHJcbiAgLy8gRFBJX0VuYWJsZUF1dG9tYXRpY0RyaWxsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRW5hYmxlQXV0b21hdGljRHJpbGwgPSAnZW5hYmxlQXV0b21hdGljRHJpbGwnLFxyXG5cclxuICAvLyBEUElfRW5hYmxlQ29uZmlkZW5jZUJhbmRzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRW5hYmxlQ29uZmlkZW5jZUJhbmRzID0gJ2VuYWJsZUNvbmZpZGVuY2VCYW5kcycsXHJcblxyXG4gIC8vIERQSV9FbmFibGVEYXRhT3JkZXJTb3J0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRW5hYmxlRGF0YU9yZGVyU29ydCA9ICdlbmFibGVEYXRhT3JkZXJTb3J0JyxcclxuXHJcbiAgLy8gRFBJX0VuYWJsZUZpZWxkU29ydCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZUZpZWxkU29ydCA9ICdlbmFibGVGaWVsZFNvcnQnLFxyXG5cclxuICAvLyBEUElfRW5hYmxlSW5zdGFudEFuYWx5dGljcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZUluc3RhbnRBbmFseXRpY3MgPSAnZW5hYmxlSW5zdGFudEFuYWx5dGljcycsXHJcblxyXG4gIC8vIERQSV9FbmFibGVMaW5lcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZUxpbmVzID0gJ2VuYWJsZUxpbmVzJyxcclxuXHJcbiAgLy8gRFBJX0VuYWJsZU1hbnVhbFNvcnQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFbmFibGVNYW51YWxTb3J0ID0gJ2VuYWJsZU1hbnVhbFNvcnQnLFxyXG5cclxuICAvLyBEUElfRW5hYmxlTWFya3MsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFbmFibGVNYXJrcyA9ICdlbmFibGVNYXJrcycsXHJcblxyXG4gIC8vIERQSV9FbmFibGVNdWx0aXBsZVNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZU11bHRpcGxlU2VsZWN0aW9uID0gJ2VuYWJsZU11bHRpcGxlU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0VuYWJsZVByZWZldGNoaW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRW5hYmxlUHJlZmV0Y2hpbmcgPSAnZW5hYmxlUHJlZmV0Y2hpbmcnLFxyXG5cclxuICAvLyBEUElfRW5hYmxlVGFibGVDYWxjRGVuc2lmaWNhdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZVRhYmxlQ2FsY0RlbnNpZmljYXRpb24gPSAnZW5hYmxlVGFibGVDYWxjRGVuc2lmaWNhdGlvbicsXHJcblxyXG4gIC8vIERQSV9FbmFibGVUb29sdGlwcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZVRvb2x0aXBzID0gJ2VuYWJsZVRvb2x0aXBzJyxcclxuXHJcbiAgLy8gRFBJX0VuZERhdGFTb3VyY2VQcmVzTW9kZWxVcGRhdGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFbmREYXRhU291cmNlUHJlc01vZGVsVXBkYXRlID0gJ2VuZERhdGFTb3VyY2VQcmVzTW9kZWxVcGRhdGUnLFxyXG5cclxuICAvLyBEUElfRXN0aW1hdGVOdWxscywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVzdGltYXRlTnVsbHMgPSAnZXN0aW1hdGVOdWxscycsXHJcblxyXG4gIC8vIERQSV9FeGNsdWRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRXhjbHVkZSA9ICdleGNsdWRlJyxcclxuXHJcbiAgLy8gRFBJX0V4Y2x1ZGVDb2xvciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEV4Y2x1ZGVDb2xvciA9ICdleGNsdWRlQ29sb3InLFxyXG5cclxuICAvLyBEUElfRXhjbHVkZUN1YmVEZW5vcm0sIGhhdmluZyB0eXBlIGJvb2xcclxuICBFeGNsdWRlQ3ViZURlbm9ybSA9ICdleGNsdWRlQ3ViZURlbm9ybScsXHJcblxyXG4gIC8vIERQSV9FeGNsdWRlSW50ZXJjZXB0RW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEV4Y2x1ZGVJbnRlcmNlcHRFbmFibGVkID0gJ2V4Y2x1ZGVJbnRlcmNlcHRFbmFibGVkJyxcclxuXHJcbiAgLy8gRFBJX0V4Y2x1ZGVMb2NhbEZ1bmN0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEV4Y2x1ZGVMb2NhbEZ1bmN0aW9ucyA9ICdleGNsdWRlTG9jYWxGdW5jdGlvbnMnLFxyXG5cclxuICAvLyBEUElfRXhwb3J0RGFzaGJvYXJkSW1hZ2VGcm9tU2hlZXQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFeHBvcnREYXNoYm9hcmRJbWFnZUZyb21TaGVldCA9ICdleHBvcnRJbWFnZVNoZWV0QXNEYXNoYm9hcmQnLFxyXG5cclxuICAvLyBEUElfRXh0U3ZjQ29uZmlnSXNBdXRoRW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEV4dFN2Y0NvbmZpZ0lzQXV0aEVuYWJsZWQgPSAnZXh0U3ZjQ29uZmlnSXNBdXRoRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0RnVsbFJlZnJlc2gsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFeHRyYWN0RnVsbFJlZnJlc2ggPSAnZXh0cmFjdEZ1bGxSZWZyZXNoJyxcclxuXHJcbiAgLy8gRFBJX0V4dHJhY3ROZWVkc1JlZnJlc2gsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFeHRyYWN0TmVlZHNSZWZyZXNoID0gJ2V4dHJhY3ROZWVkc1JlZnJlc2gnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdFBlbmRpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFeHRyYWN0UGVuZGluZyA9ICdleHRyYWN0UGVuZGluZycsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0U2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFeHRyYWN0U2VsZWN0ZWQgPSAnZXh0cmFjdFNlbGVjdGVkJyxcclxuXHJcbiAgLy8gRFBJX0ZlZGVyYXRhYmxlT25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZlZGVyYXRhYmxlT25seSA9ICdmZWRlcmF0YWJsZU9ubHknLFxyXG5cclxuICAvLyBEUElfRmllbGRTb3J0T3JkZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGaWVsZFNvcnRPcmRlciA9ICdmaWVsZFNvcnRPcmRlcicsXHJcblxyXG4gIC8vIERQSV9GaWVsZFN1cHBvcnRzQ29udGFpbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGaWVsZFN1cHBvcnRzQ29udGFpbnMgPSAnZmllbGRTdXBwb3J0c0NvbnRhaW5zJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkU3VwcG9ydHNFbmRzV2l0aCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZpZWxkU3VwcG9ydHNFbmRzV2l0aCA9ICdmaWVsZFN1cHBvcnRzRW5kc1dpdGgnLFxyXG5cclxuICAvLyBEUElfRmllbGRTdXBwb3J0c1N0YXJ0c1dpdGgsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGaWVsZFN1cHBvcnRzU3RhcnRzV2l0aCA9ICdmaWVsZFN1cHBvcnRzU3RhcnRzV2l0aCcsXHJcblxyXG4gIC8vIERQSV9GaWxsQWJvdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGaWxsQWJvdmUgPSAnZmlsbEFib3ZlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbGxCZWxvdywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZpbGxCZWxvdyA9ICdmaWxsQmVsb3cnLFxyXG5cclxuICAvLyBEUElfRmlsbFdpdGhaZXJvZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGaWxsV2l0aFplcm9lcyA9ICdmaWxsWmVyb2VzJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlcklzTmFtZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGaWx0ZXJJc05hbWVkID0gJ2ZpbHRlcklzTmFtZWQnLFxyXG5cclxuICAvLyBEUElfRm9jdXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGb2N1cyA9ICdmb2N1cycsXHJcblxyXG4gIC8vIERQSV9Gb3JJbnRlcm5hbFVzZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvckludGVybmFsVXNlID0gJ2ludGVybmFsVXNlJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmNlQnJvd3NlclJlbmRlcmluZywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlQnJvd3NlclJlbmRlcmluZyA9ICdmb3JjZUJyb3dzZXJSZW5kZXJpbmcnLFxyXG5cclxuICAvLyBEUElfRm9yY2VDYWNoZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlQ2FjaGUgPSAnZm9yY2VDYWNoZScsXHJcblxyXG4gIC8vIERQSV9Gb3JjZUNvbG9yRnJvbUFwcCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlQ29sb3JGcm9tQXBwID0gJ2ZvcmNlQ29sb3JGcm9tQXBwJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmNlQ29ubmVjdGlvbkF0dGVtcHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGb3JjZUNvbm5lY3Rpb25BdHRlbXB0ID0gJ2ZvcmNlQ29ubmVjdGlvbkF0dGVtcHQnLFxyXG5cclxuICAvLyBEUElfRm9yY2VDb25zb2xpZGF0ZUluQ29tbWl0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRm9yY2VDb25zb2xpZGF0ZUluQ29tbWl0ID0gJ2ZvcmNlQ29uc29saWRhdGVJbkNvbW1pdCcsXHJcblxyXG4gIC8vIERQSV9Gb3JjZUV4dHJhY3RSZWZyZXNoLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRm9yY2VFeHRyYWN0UmVmcmVzaCA9ICdleHRyYWN0Rm9yY2VSZWZyZXNoJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmNlSW50ZXJjZXB0WmVybywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlSW50ZXJjZXB0WmVybyA9ICdmb3JjZUludGVyY2VwdFplcm8nLFxyXG5cclxuICAvLyBEUElfRm9yY2VPbGRDb25uZWN0RXhwZXJpZW5jZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlT2xkQ29ubmVjdEV4cGVyaWVuY2UgPSAnZm9yY2VPbGRDb25uZWN0RXhwZXJpZW5jZScsXHJcblxyXG4gIC8vIERQSV9Gb3JjZVJlbGF0aXZlRGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlUmVsYXRpdmVEYXRlID0gJ2ZvcmNlUmVsYXRpdmVEYXRlJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmNlVG9nZ2xlSGlnaGxpZ2h0U3RhdGVPbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlVG9nZ2xlSGlnaGxpZ2h0U3RhdGVPbiA9ICdmb3JjZUhpZ2hsaWdodE9uJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmNlVXNlclRvQ2hvb3NlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRm9yY2VVc2VyVG9DaG9vc2UgPSAnZm9yY2VVc2VyVG9DaG9vc2UnLFxyXG5cclxuICAvLyBEUElfRm9yY2VXaG9sZURhdGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGb3JjZVdob2xlRGF0ZSA9ICdmb3JjZVdob2xlRGF0ZScsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdFNlbGVjdGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRm9yZWNhc3RTZWxlY3RlZCA9ICdmb3JlY2FzdFNlbGVjdGVkJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0VXNlQXV0b0FnZywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmVjYXN0VXNlQXV0b0FnZyA9ICdmb3JlY2FzdFVzZUF1dG9TdW1tYXJpemUnLFxyXG5cclxuICAvLyBEUElfRm9ySm9pbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvckpvaW4gPSAnZm9ySm9pbicsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXREYXRhVmFsdWVMb2NhbGx5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRm9ybWF0RGF0YVZhbHVlTG9jYWxseSA9ICdmb3JtYXREYXRhVmFsdWVMb2NhbGx5JyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdElmQ29sdW1uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRm9ybWF0SWZDb2x1bW4gPSAnZm9ybWF0SWZDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfRm9ybWF0SWZQYXJhbWV0ZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGb3JtYXRJZlBhcmFtZXRlciA9ICdmb3JtYXRJZlBhcmFtZXRlcicsXHJcblxyXG4gIC8vIERQSV9HZW9ncmFwaGljU2VhcmNoSXNEYXRhTG9hZGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgR2VvZ3JhcGhpY1NlYXJjaElzRGF0YUxvYWRlZCA9ICdnZW9ncmFwaGljU2VhcmNoRGF0YUxvYWRlZCcsXHJcblxyXG4gIC8vIERQSV9HZW9ncmFwaGljU2VhcmNoTG9hZERhdGFBc3luYywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEdlb2dyYXBoaWNTZWFyY2hMb2FkRGF0YUFzeW5jID0gJ2dlb2dyYXBoaWNTZWFyY2hMb2FkRGF0YUFzeW5jJyxcclxuXHJcbiAgLy8gRFBJX0dyb3VwQnlBbGwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBHcm91cEJ5QWxsID0gJ2dyb3VwQnlBbGwnLFxyXG5cclxuICAvLyBEUElfSGFzQWxpYXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNBbGlhcyA9ICdoYXNBbGlhcycsXHJcblxyXG4gIC8vIERQSV9IYXNBbGxNZW1iZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNBbGxNZW1iZXIgPSAnaGFzQWxsTWVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX0hhc0FwcGx5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzQXBwbHkgPSAnaGFzQXBwbHknLFxyXG5cclxuICAvLyBEUElfSGFzQmFja2dyb3VuZEltYWdlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzQmFja2dyb3VuZEltYWdlID0gJ2hhc0JhY2tncm91bmRJbWFnZScsXHJcblxyXG4gIC8vIERQSV9IYXNCZWVuRGlzbWlzc2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzQmVlbkRpc21pc3NlZCA9ICdoYXNCZWVuRGlzbWlzc2VkJyxcclxuXHJcbiAgLy8gRFBJX0hhc0NhcHRpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNDYXB0aW9uID0gJ2hhc0NhcHRpb24nLFxyXG5cclxuICAvLyBEUElfSGFzQ29uZGl0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzQ29uZGl0aW9uID0gJ2hhc0NvbmRpdGlvbicsXHJcblxyXG4gIC8vIERQSV9IYXNDb25uZWN0UGVybWlzc2lvbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNDb25uZWN0UGVybWlzc2lvbnMgPSAnaGFzQ29ubmVjdFBlcm1pc3Npb25zJyxcclxuXHJcbiAgLy8gRFBJX0hhc0Rhc2hib2FyZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0Rhc2hib2FyZCA9ICdoYXNEYXNoYm9hcmQnLFxyXG5cclxuICAvLyBEUElfSGFzRG93bmxvYWRQZXJtaXNzaW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0Rvd25sb2FkUGVybWlzc2lvbnMgPSAnaGFzRG93bmxvYWRQZXJtaXNzaW9ucycsXHJcblxyXG4gIC8vIERQSV9IYXNEcmlsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0RyaWxsID0gJ2hhc0RyaWxsJyxcclxuXHJcbiAgLy8gRFBJX0hhc0V4Y2x1ZGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNFeGNsdWRlID0gJ2hhc0V4Y2x1ZGUnLFxyXG5cclxuICAvLyBEUElfSGFzRmlsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0ZpbGwgPSAnaGFzRmlsbCcsXHJcblxyXG4gIC8vIERQSV9IYXNMYWJlbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNMYWJlbHMgPSAnaGFzTGFiZWxzJyxcclxuXHJcbiAgLy8gRFBJX0hhc0xpbWl0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzTGltaXQgPSAnaGFzTGltaXQnLFxyXG5cclxuICAvLyBEUElfSGFzTGluZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0xpbmUgPSAnaGFzTGluZScsXHJcblxyXG4gIC8vIERQSV9IYXNNb2RpZmllZEF4ZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNNb2RpZmllZEF4ZXMgPSAnaGFzTW9kaWZpZWRBeGVzJyxcclxuXHJcbiAgLy8gRFBJX0hhc05vblJvb3RDYWxjdWxhdGlvbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNOb25Sb290Q2FsY3VsYXRpb25zID0gJ2hhc05vblJvb3RDYWxjdWxhdGlvbnMnLFxyXG5cclxuICAvLyBEUElfSGFzT25seU9uZUhpZXJhcmNoeSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc09ubHlPbmVIaWVyYXJjaHkgPSAnaGFzT25seU9uZUhpZXJhcmNoeScsXHJcblxyXG4gIC8vIERQSV9IYXNQYXR0ZXJuLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzUGF0dGVybiA9ICdoYXNQYXR0ZXJuJyxcclxuXHJcbiAgLy8gRFBJX0hhc1B1Ymxpc2hHdWlkYW5jZVJlc3VsdHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNQdWJsaXNoR3VpZGFuY2VSZXN1bHRzID0gJ2hhc1B1Ymxpc2hHdWlkYW5jZVJlc3VsdHMnLFxyXG5cclxuICAvLyBEUElfSGFzU2VsZWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzU2VsZWN0aW9uID0gJ2hhc1NlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9IYXNTZXJ2ZXJDcmVkZW50aWFscywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1NlcnZlckNyZWRlbnRpYWxzID0gJ2hhc1NlcnZlckNyZWRlbnRpYWxzJyxcclxuXHJcbiAgLy8gRFBJX0hhc1NwYWNlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzU3BhY2UgPSAnaGFzU3BhY2UnLFxyXG5cclxuICAvLyBEUElfSGFzU3RvcmVkUHJvY2VkdXJlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzU3RvcmVkUHJvY2VkdXJlID0gJ2hhc1N0b3JlZFByb2NlZHVyZScsXHJcblxyXG4gIC8vIERQSV9IYXNTdHJpbmdDYWxjdWxhdGVkTWVhc3VyZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNTdHJpbmdDYWxjdWxhdGVkTWVhc3VyZXMgPSAnaGFzU3RyaW5nQ2FsY3VsYXRlZE1lYXN1cmVzJyxcclxuXHJcbiAgLy8gRFBJX0hhc1RhYmxlQ2FsY0RhdGEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNUYWJsZUNhbGNEYXRhID0gJ2hhc1RhYmxlQ2FsY0RhdGEnLFxyXG5cclxuICAvLyBEUElfSGFzVGl0bGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNUaXRsZSA9ICdoYXNUaXRsZScsXHJcblxyXG4gIC8vIERQSV9IYXNVc2VyU3BlY2lmaWNDb250ZW50LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzVXNlclNwZWNpZmljQ29udGVudCA9ICdoYXNVc2VyU3BlY2lmaWNDb250ZW50JyxcclxuXHJcbiAgLy8gRFBJX0hhc1Vuam9pbmVkVGFibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNVbmpvaW5lZFRhYmxlID0gJ2hhc1Vuam9pbmVkVGFibGUnLFxyXG5cclxuICAvLyBEUElfSGFzVmFyQXJncywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1ZhckFyZ3MgPSAnaGFzVmFyQXJncycsXHJcblxyXG4gIC8vIERQSV9IYXNWaXNpdGVkV0RDUGFnZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1Zpc2l0ZWRXRENQYWdlID0gJ2hhc1Zpc2l0ZWRXZGNQYWdlJyxcclxuXHJcbiAgLy8gRFBJX0lnbm9yZUFsaWFzZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJZ25vcmVBbGlhc2VzID0gJ2lnbm9yZUFsaWFzZXMnLFxyXG5cclxuICAvLyBEUElfSWdub3JlRG9tYWluLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSWdub3JlRG9tYWluID0gJ2lnbm9yZURvbWFpbicsXHJcblxyXG4gIC8vIERQSV9JZ25vcmVTZWxlY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJZ25vcmVTZWxlY3Rpb24gPSAnaWdub3JlU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVBbGxDb2x1bW5zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZUFsbENvbHVtbnMgPSAnaW5jbHVkZUFsbENvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUNvbnRleHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlQ29udGV4dCA9ICdpbmNsdWRlQ29udGV4dCcsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlRGFzaGJvYXJkUHJlc01vZGVscywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVEYXNoYm9hcmRQcmVzTW9kZWxzID0gJ2luY2x1ZGVEYXNoYm9hcmRQcmVzTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVJdGVtU2V0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZUl0ZW1TZXQgPSAnaW5jbHVkZUl0ZW1TZXQnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUxvY2FsRmlsZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlTG9jYWxGaWxlcyA9ICdpbmNsdWRlTG9jYWxGaWxlcycsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlT3RoZXJTZWxlY3RlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVPdGhlclNlbGVjdGVkID0gJ2luY2x1ZGVPdGhlclNlbGVjdGVkJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVOdWxscywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVOdWxscyA9ICdpbmNsdWRlTnVsbHMnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZVBhcmVudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVQYXJlbnQgPSAnaW5jbHVkZVBhcmVudCcsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlU2VsZWN0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVTZWxlY3Rpb25zID0gJ2luY2x1ZGVTZWxlY3Rpb25zJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVTaWJsaW5ncywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVTaWJsaW5ncyA9ICdpbmNsdWRlU2libGluZ3MnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZVN0b3JpZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlU3RvcmllcyA9ICdpbmNsdWRlU3RvcmllcycsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlU3ViZm9sZGVycywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVTdWJmb2xkZXJzID0gJ2luY2x1ZGVTdWJmb2xkZXJzJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVWb2xhdGlsZVByb3BzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZVZvbGF0aWxlUHJvcHMgPSAnaW5jbHVkZVZvbGF0aWxlUHJvcHMnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZXNUYWcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlc1RhZyA9ICdpbmNsdWRlc1RhZycsXHJcblxyXG4gIC8vIERQSV9JbnNlcnRBZnRlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluc2VydEFmdGVyID0gJ2luc2VydEFmdGVyJyxcclxuXHJcbiAgLy8gRFBJX0luc2VydEF0RW5kLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5zZXJ0QXRFbmQgPSAnaW5zZXJ0QXRFbmQnLFxyXG5cclxuICAvLyBEUElfSW5zdGFudEFuYWx5dGljc0FsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbnN0YW50QW5hbHl0aWNzQWxsb3dlZCA9ICdpbnN0YW50QW5hbHl0aWNzQWxsb3dlZCcsXHJcblxyXG4gIC8vIERQSV9JbnRlZ2VyQ29vcmRpbmF0ZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbnRlZ2VyQ29vcmRpbmF0ZXMgPSAnaW50Q29vcmRzJyxcclxuXHJcbiAgLy8gRFBJX0ludmFsaWRhdGVkTGF5b3V0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW52YWxpZGF0ZWRMYXlvdXQgPSAnaW52YWxpZGF0ZWRMYXlvdXQnLFxyXG5cclxuICAvLyBEUElfSXNBY3RpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0FjdGl2ZSA9ICdpc0FjdGl2ZScsXHJcblxyXG4gIC8vIERQSV9Jc0FkZFRvRmlsdGVyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNBZGRUb0ZpbHRlciA9ICdpc0FkZFRvRmlsdGVyQnV0dG9uQ2hlY2tlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0FsbEJ1dHRvblZpc2libGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0FsbEJ1dHRvblZpc2libGUgPSAnaXNBbGxCdXR0b25WaXNpYmxlJyxcclxuXHJcbiAgLy8gRFBJX0lzQWxsb3dlZEluQ2FsY3MsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0FsbG93ZWRJbkNhbGNzID0gJ2lzQWxsb3dlZEluQ2FsY3MnLFxyXG5cclxuICAvLyBEUElfSXNBcHBNYXBTb3VyY2UsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0FwcE1hcFNvdXJjZSA9ICdpc0FwcE1hcFNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9Jc0FyY2hpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0FyY2hpdmUgPSAnaXNBcmNoaXZlJyxcclxuXHJcbiAgLy8gRFBJX0lzQXR0cmlidXRlSGllcmFyY2h5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNBdHRyaWJ1dGVIaWVyYXJjaHkgPSAnaXNBdHRyaWJ1dGVIaWVyYXJjaHknLFxyXG5cclxuICAvLyBEUElfSXNBdXRob3JpbmdNb2RlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNBdXRob3JpbmdNb2RlID0gJ2lzQXV0aG9yaW5nTW9kZScsXHJcblxyXG4gIC8vIERQSV9Jc0F1dG8sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0F1dG8gPSAnaXNBdXRvJyxcclxuXHJcbiAgLy8gRFBJX0lzQXV0b0NsZWFyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNBdXRvQ2xlYXIgPSAnaXNBdXRvQ2xlYXInLFxyXG5cclxuICAvLyBEUElfSXNBdXRvQ29sdW1uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNBdXRvQ29sdW1uID0gJ2lzQXV0b0NvbHVtbicsXHJcblxyXG4gIC8vIERQSV9Jc0F1dG9IaWRkZW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0F1dG9IaWRkZW4gPSAnaXNBdXRvSGlkZGVuJyxcclxuXHJcbiAgLy8gRFBJX0lzQXV0b1NlbGVjdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQXV0b1NlbGVjdCA9ICdpc0F1dG9TZWxlY3QnLFxyXG5cclxuICAvLyBEUElfSXNCb2xkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNCb2xkID0gJ2lzQm9sZCcsXHJcblxyXG4gIC8vIERQSV9Jc0JvcmRlclZpc2libGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0JvcmRlclZpc2libGUgPSAnaXNCb3JkZXJWaXNpYmxlJyxcclxuXHJcbiAgLy8gRFBJX0lzQm94cGxvdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQm94cGxvdCA9ICdpc0JveHBsb3QnLFxyXG5cclxuICAvLyBEUElfSXNDYXBhYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDYXBhYmxlID0gJ2lzQ2FwYWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc0NhcHR1cmVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDYXB0dXJlZCA9ICdpc0NhcHR1cmVkJyxcclxuXHJcbiAgLy8gRFBJX0lzQ2VudGVyZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0NlbnRlcmVkID0gJ2lzQ2VudGVyZWQnLFxyXG5cclxuICAvLyBEUElfSXNDaGVja2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDaGVja2VkID0gJ2lzQ2hlY2tlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0NvbG9yRGl2ZXJnaW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDb2xvckRpdmVyZ2luZyA9ICdpc0NvbG9yRGl2ZXJnaW5nJyxcclxuXHJcbiAgLy8gRFBJX0lzQ29sb3JTdGVwcGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDb2xvclN0ZXBwZWQgPSAnaXNDb2xvclN0ZXBwZWQnLFxyXG5cclxuICAvLyBEUElfSXNDb21iaW5lZEZpZWxkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDb21iaW5lZEZpZWxkID0gJ2lzQ29tYmluZWRGaWVsZCcsXHJcblxyXG4gIC8vIERQSV9Jc0Nvbm5lY3RlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQ29ubmVjdGVkID0gJ2lzQ29ubmVjdGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzQ29udGV4dE1lbnVBbGxvd2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDb250ZXh0TWVudUFsbG93ZWQgPSAnaXNDb250ZXh0TWVudUFsbG93ZWQnLFxyXG5cclxuICAvLyBEUElfSXNDb250aW51b3VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDb250aW51b3VzID0gJ2lzQ29udGludW91cycsXHJcblxyXG4gIC8vIERQSV9Jc0NvcHksIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0NvcHkgPSAnaXNDb3B5JyxcclxuXHJcbiAgLy8gRFBJX0lzQ3VzdG9tQ2FsY3VsYXRpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0N1c3RvbUNhbGN1bGF0aW9uID0gJ2lzQ3VzdG9tQ2FsY3VsYXRpb24nLFxyXG5cclxuICAvLyBEUElfSXNDdXN0b21QYWxldHRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDdXN0b21QYWxldHRlID0gJ2lzQ3VzdG9tUGFsZXR0ZScsXHJcblxyXG4gIC8vIERQSV9Jc0N1c3RvbVNRTCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQ3VzdG9tU1FMID0gJ2lzQ3VzdG9tU3FsJyxcclxuXHJcbiAgLy8gRFBJX0lzQ3VzdG9tVmFsdWVFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDdXN0b21WYWx1ZUVuYWJsZWQgPSAnaXNDdXN0b21WYWx1ZUVuYWJsZWQnLFxyXG5cclxuICAvLyBEUElfSXNEYXRhQWxlcnRDb25kaXRpb25NZXQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RhdGFBbGVydENvbmRpdGlvbk1ldCA9ICdpc0RhdGFBbGVydENvbmRpdGlvbk1ldCcsXHJcblxyXG4gIC8vIERQSV9Jc0RhdGFBbGVydERpYWxvZ1Zpc2libGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RhdGFBbGVydERpYWxvZ1Zpc2libGUgPSAnaXNEYXRhQWxlcnREaWFsb2dWaXNpYmxlJyxcclxuXHJcbiAgLy8gRFBJX0lzRGF0YUJpbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRGF0YUJpbiA9ICdpc0RhdGFCaW4nLFxyXG5cclxuICAvLyBEUElfSXNEYXRhR3JpZFZpc2libGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RhdGFHcmlkVmlzaWJsZSA9ICdpc0RhdGFHcmlkVmlzaWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc0RhdGFiYXNlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEYXRhYmFzZSA9ICdpc0RhdGFiYXNlJyxcclxuXHJcbiAgLy8gRFBJX0lzRGF0YWJhc2VGaWx0ZXJJbmNsdXNpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RhdGFiYXNlRmlsdGVySW5jbHVzaXZlID0gJ2lzRGJGaWx0ZXJJbmNsdXNpdmUnLFxyXG5cclxuICAvLyBEUElfSXNEcmFnZ2FibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RyYWdnYWJsZSA9ICdpc0RyYWdnYWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc01EWENhbGN1bGF0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNNRFhDYWxjdWxhdGlvbiA9ICdpc01keENhbGN1bGF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0lzTWV0YWRhdGEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc01ldGFkYXRhID0gJ2lzTWV0YWRhdGEnLFxyXG5cclxuICAvLyBEUElfSXNXZWJEYXRhVGFiVmlld1N1cHBvcnRlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzV2ViRGF0YVRhYlZpZXdTdXBwb3J0ZWQgPSAnaXNXZWJEYXRhVGFiVmlld1N1cHBvcnRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1B1Ymxpc2hlZERhdGFzb3VyY2VSZXBsYWNlbWVudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUHVibGlzaGVkRGF0YXNvdXJjZVJlcGxhY2VtZW50ID0gJ2lzUHVibGlzaGVkRGF0YXNvdXJjZVJlcGxhY2VtZW50JyxcclxuXHJcbiAgLy8gRFBJX0lzRGVhZERyb3AsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RlYWREcm9wID0gJ2lzRGVhZERyb3AnLFxyXG5cclxuICAvLyBEUElfSXNEZWZhdWx0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEZWZhdWx0ID0gJ2lzRGVmYXVsdCcsXHJcblxyXG4gIC8vIERQSV9Jc0RlbGV0ZUNhbGNDb25maXJtLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEZWxldGVDYWxjQ29uZmlybSA9ICdpc0RlbGV0ZUNhbGNDb25maXJtZWQnLFxyXG5cclxuICAvLyBEUElfSXNEaW1lbnNpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RpbWVuc2lvbiA9ICdpc0RpbWVuc2lvbicsXHJcblxyXG4gIC8vIERQSV9Jc0Rpc2FibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEaXNhYmxlZCA9ICdpc0Rpc2FibGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzRGl2aWRlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRGl2aWRlciA9ICdpc0RpdmlkZXInLFxyXG5cclxuICAvLyBEUElfSXNEcm9wZG93bkVuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0Ryb3Bkb3duRW5hYmxlZCA9ICdpc0Ryb3Bkb3duRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0VkaXRpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0VkaXRpbmcgPSAnaXNFZGl0aW5nJyxcclxuXHJcbiAgLy8gRFBJX0lzRW1iZWRkZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0VtYmVkZGVkID0gJ2lzRW1iZWRkZWQnLFxyXG5cclxuICAvLyBEUElfSXNFbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRW1wdHkgPSAnaXNFbXB0eScsXHJcblxyXG4gIC8vIERQSV9Jc0FkZEluRW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQWRkSW5FbmFibGVkID0gJ2lzQWRkSW5FbmFibGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzSW5EcmlsbFBhdGgsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0luRHJpbGxQYXRoID0gJ2lzSW5EcmlsbFBhdGgnLFxyXG5cclxuICAvLyBEUElfQWRkSW5KU0RlYnVnZ2luZ0VuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRJbkpTRGVidWdnaW5nRW5hYmxlZCA9ICdhZGRJbkpzRGVidWdnaW5FbmFibGVkJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluUGF1c2VCZWZvcmVMb2FkaW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWRkSW5QYXVzZUJlZm9yZUxvYWRpbmcgPSAnYWRkSW5QYXVzZUJlZm9yZUxvYWRpbmcnLFxyXG5cclxuICAvLyBEUElfSXNEU0hpZXJhcmNoaWNhbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRFNIaWVyYXJjaGljYWwgPSAnaXNEc0hpZXJhcmNoaWNhbCcsXHJcblxyXG4gIC8vIERQSV9Jc0VkaXRvck9wZW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0VkaXRvck9wZW4gPSAnaXNFZGl0b3JPcGVuJyxcclxuXHJcbiAgLy8gRFBJX0lzRW5kUHRNb3ZlYWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRW5kUHRNb3ZlYWJsZSA9ICdpc0VuZHBvaW50TW92YWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc0V4Y2x1ZGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0V4Y2x1ZGUgPSAnaXNFeGNsdWRlQnV0dG9uQ2hlY2tlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0V4aXN0aW5nQ29ubmVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRXhpc3RpbmdDb25uZWN0aW9uID0gJ2lzRXhpc3RpbmdDb25uZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0lzRXhpc3RpbmdPYmplY3QsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0V4aXN0aW5nT2JqZWN0ID0gJ2lzRXhpc3RpbmdPYmplY3QnLFxyXG5cclxuICAvLyBEUElfSXNFeHRyYWN0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNFeHRyYWN0ID0gJ2lzRXh0cmFjdCcsXHJcblxyXG4gIC8vIERQSV9Jc0V4dHJhY3RPbmx5Q29ubmVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRXh0cmFjdE9ubHlDb25uZWN0aW9uID0gJ2lzRXh0cmFjdE9ubHlDb25uZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0lzRXh0cmFjdFNlbGVjdGlvblZpc2libGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0V4dHJhY3RTZWxlY3Rpb25WaXNpYmxlID0gJ2lzRXh0cmFjdFNlbGVjdGlvblZpc2libGUnLFxyXG5cclxuICAvLyBEUElfSXNGZWRlcmF0YWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRmVkZXJhdGFibGUgPSAnaXNGZWRlcmF0YWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc0ZpZWxkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNGaWVsZCA9ICdpc0ZpZWxkJyxcclxuXHJcbiAgLy8gRFBJX0lzRmllbGRQYXJhbWV0ZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0ZpZWxkUGFyYW1ldGVyID0gJ2lzRmllbGRQYXJhbWV0ZXInLFxyXG5cclxuICAvLyBEUElfSXNGaWx0ZXJBY3Rpb25GaWVsZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRmlsdGVyQWN0aW9uRmllbGQgPSAnaXNGaWx0ZXJBY3Rpb25GaWVsZCcsXHJcblxyXG4gIC8vIERQSV9Jc0ZpcnN0Q2xhc3NDb25uZWN0b3IsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0ZpcnN0Q2xhc3NDb25uZWN0b3IgPSAnaXNGaXJzdENsYXNzQ29ubmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX0lzRmxvYXRpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0Zsb2F0aW5nID0gJ2lzRmxvYXRpbmcnLFxyXG5cclxuICAvLyBEUElfSXNGb2xkZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0ZvbGRlZCA9ICdpc0ZvbGRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0ZvcklucHV0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNGb3JJbnB1dCA9ICdpc0ZvcklucHV0JyxcclxuXHJcbiAgLy8gRFBJX0lzRm9yZWNhc3RFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNGb3JlY2FzdEVuYWJsZWQgPSAnaXNGb3JlY2FzdEVuYWJsZWQnLFxyXG5cclxuICAvLyBEUElfSXNGb3JjZURpcnR5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNGb3JjZURpcnR5ID0gJ2lzRm9yY2VEaXJ0eScsXHJcblxyXG4gIC8vIERQSV9Jc0Z1bGxTY2FuLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNGdWxsU2NhbiA9ICdpc0Z1bGxTY2FuJyxcclxuXHJcbiAgLy8gRFBJX0lzRnVsbFN0eWxpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0Z1bGxTdHlsaW5nID0gJ2lzRnVsbFN0eWxpbmcnLFxyXG5cclxuICAvLyBEUElfSXNHZW5lcmF0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0dlbmVyYXRlZCA9ICdpc0dlbmVyYXRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0dsb2JhbE5hbWVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNHbG9iYWxOYW1lcyA9ICdpc0dsb2JhbE5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0lzR3JheWVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNHcmF5ZWQgPSAnaXNHcmF5ZWQnLFxyXG5cclxuICAvLyBEUElfSXNHcmF5c2NhbGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0dyYXlzY2FsZSA9ICdpc0dyYXlzY2FsZScsXHJcblxyXG4gIC8vIERQSV9Jc0dyb3VwLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNHcm91cCA9ICdpc0dyb3VwJyxcclxuXHJcbiAgLy8gRFBJX0lzSGlkZWFibGVGaWVsZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSGlkZWFibGVGaWVsZCA9ICdpc0hpZGVhYmxlRmllbGQnLFxyXG5cclxuICAvLyBEUElfSXNIaWVyYXJjaHksIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0hpZXJhcmNoeSA9ICdpc0hpZXJhcmNoeScsXHJcblxyXG4gIC8vIERQSV9Jc0hpZXJhcmNoeVNpbmdsZVNlbGVjdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSGllcmFyY2h5U2luZ2xlU2VsZWN0ID0gJ2lzSGllcmFyY2h5U2luZ2xlU2VsZWN0JyxcclxuXHJcbiAgLy8gRFBJX0lzSGlnaGxpZ2h0QWxsb3dlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSGlnaGxpZ2h0QWxsb3dlZCA9ICdpc0hpZ2hsaWdodEFsbG93ZWQnLFxyXG5cclxuICAvLyBEUElfSXNIaWdobGlnaHRFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNIaWdobGlnaHRFbmFibGVkID0gJ2lzSGlnaGxpZ2h0RW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0hpZ2hsaWdodEZpZWxkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNIaWdobGlnaHRGaWVsZCA9ICdpc0hpZ2hsaWdodEZpZWxkJyxcclxuXHJcbiAgLy8gRFBJX0lzSG9yaXpvbnRhbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSG9yaXpvbnRhbCA9ICdpc0hvcml6b250YWwnLFxyXG5cclxuICAvLyBEUElfSXNJbWFnZUVuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0ltYWdlRW5hYmxlZCA9ICdpc0ltYWdlRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0luRGVmYXVsdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSW5EZWZhdWx0ID0gJ2lzSW5EZWZhdWx0JyxcclxuXHJcbiAgLy8gRFBJX0lzSW5QcmltYXJ5RGF0YVNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSW5QcmltYXJ5RGF0YVNvdXJjZSA9ICdpc0luUHJpbWFyeURhdGFTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfSXNJbm5lciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSW5uZXIgPSAnaXNJbm5lcicsXHJcblxyXG4gIC8vIERQSV9Jc0luc3RhbmNlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNJbnN0YW5jZSA9ICdpc0luc3RhbmNlJyxcclxuXHJcbiAgLy8gRFBJX0lzSW52YWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSW52YWxpZCA9ICdpc0ludmFsaWQnLFxyXG5cclxuICAvLyBEUElfSXNJbnZhbGlkQ2FsY09uREcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0ludmFsaWRDYWxjT25ERyA9ICdpc0ludmFsaWREZ0NhbGMnLFxyXG5cclxuICAvLyBEUElfSXNJdGFsaWNzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNJdGFsaWNzID0gJ2lzSXRhbGljcycsXHJcblxyXG4gIC8vIERQSV9Jc0pvaW5BcmVhVmlzaWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSm9pbkFyZWFWaXNpYmxlID0gJ2lzSm9pbkFyZWFWaXNpYmxlJyxcclxuXHJcbiAgLy8gRFBJX0lzTGFiZWxzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNMYWJlbHMgPSAnaXNMYWJlbHMnLFxyXG5cclxuICAvLyBEUElfSXNMYXllcmVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNMYXllcmVkID0gJ2lzTGF5ZXJlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0xlZnQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0xlZnQgPSAnaXNMZWZ0JyxcclxuXHJcbiAgLy8gRFBJX0lzTGVnYWN5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNMZWdhY3kgPSAnaXNMZWdhY3knLFxyXG5cclxuICAvLyBEUElfSXNMZXZlbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTGV2ZWwgPSAnaXNMZXZlbCcsXHJcblxyXG4gIC8vIERQSV9Jc0xldmVsT3JMZXZlbElkZW50aXR5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNMZXZlbE9yTGV2ZWxJZGVudGl0eSA9ICdpc0xldmVsT3JMZXZlbElkZW50aXR5JyxcclxuXHJcbiAgLy8gRFBJX0lzTGljZW5zZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0xpY2Vuc2VkID0gJ2lzTGljZW5zZWQnLFxyXG5cclxuICAvLyBEUElfSXNMaW5rLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNMaW5rID0gJ2lzTGluaycsXHJcblxyXG4gIC8vIERQSV9Jc0xpbmtlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTGlua2VkID0gJ2lzTGlua2VkJyxcclxuXHJcbiAgLy8gRFBJX0lzTWFwLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNNYXAgPSAnaXNNYXAnLFxyXG5cclxuICAvLyBEUElfSXNNZWFzdXJlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNNZWFzdXJlID0gJ2lzTWVhc3VyZScsXHJcblxyXG4gIC8vIERQSV9Jc01lcmdlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNNZXJnZSA9ICdpc01lcmdlJyxcclxuXHJcbiAgLy8gRFBJX0lzTWVzc2FnZVNvdXJjZVJlbW90ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTWVzc2FnZVNvdXJjZVJlbW90ZSA9ICdpc01lc3NhZ2VTb3VyY2VSZW1vdGUnLFxyXG5cclxuICAvLyBEUElfSXNNaXNzaW5nRnJvbUV4dHJhY3QsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc01pc3NpbmdGcm9tRXh0cmFjdCA9ICdpc01pc3NpbmdGcm9tRXh0cmFjdCcsXHJcblxyXG4gIC8vIERQSV9Jc01vYmlsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTW9iaWxlID0gJ2lzTW9iaWxlJyxcclxuXHJcbiAgLy8gRFBJX0lzTW9kaWZpZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc01vZGlmaWVkID0gJ2lzTW9kaWZpZWQnLFxyXG5cclxuICAvLyBEUElfSXNOZXcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc05ldyA9ICdpc05ldycsXHJcblxyXG4gIC8vIERQSV9Jc05ld0Nsb3VkRmlsZURhdGFTb3VyY2UsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc05ld0Nsb3VkRmlsZURhdGFTb3VyY2UgPSAnaXNOZXdDbG91ZEZpbGVEYXRhU291cmNlJyxcclxuXHJcbiAgLy8gRFBJX0lzTmV3Wm9uZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTmV3Wm9uZSA9ICdpc05ld1pvbmUnLFxyXG5cclxuICAvLyBEUElfSXNOb25lLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNOb25lID0gJ2lzTm9uZScsXHJcblxyXG4gIC8vIERQSV9Jc09mZmxpbmVNb2RlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNPZmZsaW5lTW9kZSA9ICdpc09mZmxpbmVNb2RlJyxcclxuXHJcbiAgLy8gRFBJX0lzUHJlQXFsQmluLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNQcmVBcWxCaW4gPSAnaXNQcmVBcWxCaW4nLFxyXG5cclxuICAvLyBEUElfSXNPTWVhc3VyZXNBbmRSZWxhdGlvbmFsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNPTWVhc3VyZXNBbmRSZWxhdGlvbmFsID0gJ2lzT21lYXN1cmVzQW5kUmVsYXRpb25hbCcsXHJcblxyXG4gIC8vIERQSV9Jc09wYXF1ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzT3BhcXVlID0gJ2lzT3BhcXVlJyxcclxuXHJcbiAgLy8gRFBJX0lzT3JwaGFuZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc09ycGhhbmVkID0gJ2lzT3JwaGFuZWQnLFxyXG5cclxuICAvLyBEUElfSXNPdmVybGF5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNPdmVybGF5ID0gJ2lzT3ZlcmxheScsXHJcblxyXG4gIC8vIERQSV9Jc092ZXJyaWRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNPdmVycmlkZSA9ICdpc092ZXJyaWRlJyxcclxuXHJcbiAgLy8gRFBJX0lzUGFnZUxvYWRpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1BhZ2VMb2FkaW5nID0gJ2lzUGFnZUxvYWRpbmcnLFxyXG5cclxuICAvLyBEUElfSXNQYXJhbWV0ZXJTZWxlY3RlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUGFyYW1ldGVyU2VsZWN0ZWQgPSAnaXNQYXJhbWV0ZXJTZWxlY3RlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1BhcmFtZXRlclNlbGVjdGVkT25Gcm9tLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNQYXJhbWV0ZXJTZWxlY3RlZE9uRnJvbSA9ICdpc1BhcmFtZXRlclNlbGVjdGVkT25Gcm9tJyxcclxuXHJcbiAgLy8gRFBJX0lzUGFyYW1ldGVyU2VsZWN0ZWRPblRvLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNQYXJhbWV0ZXJTZWxlY3RlZE9uVG8gPSAnaXNQYXJhbWV0ZXJTZWxlY3RlZE9uVG8nLFxyXG5cclxuICAvLyBEUElfSXNQYXR0ZXJuQmFzZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1BhdHRlcm5CYXNlZCA9ICdpc1BhdHRlcm5CYXNlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1Bpbm5lZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUGlubmVkID0gJ2lzUGlubmVkJyxcclxuXHJcbiAgLy8gRFBJX0lzUHJlc2VudGF0aW9uTW9kZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUHJlc2VudGF0aW9uTW9kZSA9ICdpc1ByZXNlbnRhdGlvbk1vZGVEb2MnLFxyXG5cclxuICAvLyBEUElfSXNQdWJsaXNoQWxsb3dlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUHVibGlzaEFsbG93ZWQgPSAnaXNQdWJsaXNoQWxsb3dlZCcsXHJcblxyXG4gIC8vIERQSV9Jc011c3REb3duZ3JhZGVUb1B1Ymxpc2gsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc011c3REb3duZ3JhZGVUb1B1Ymxpc2ggPSAnaXNEb3duZ3JhZGVUb1B1Ymxpc2hSZXF1aXJlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1B1Ymxpc2hlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUHVibGlzaGVkID0gJ2lzUHVibGlzaGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzUXVhbnRpdGF0aXZlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNRdWFudGl0YXRpdmUgPSAnaXNRdWFudGl0YXRpdmUnLFxyXG5cclxuICAvLyBEUElfSXNRdWlja1RhYmxlQ2FsYywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUXVpY2tUYWJsZUNhbGMgPSAnaXNRdWlja1RhYmxlQ2FsYycsXHJcblxyXG4gIC8vIERQSV9Jc1JhZGlvT24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JhZGlvT24gPSAnaXNSYWRpb09uJyxcclxuXHJcbiAgLy8gRFBJX0lzUmVjb25uZWN0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNSZWNvbm5lY3QgPSAnaXNSZWNvbm5lY3QnLFxyXG5cclxuICAvLyBEUElfSXNSZWN1cnNpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JlY3Vyc2l2ZSA9ICdpc1JlY3Vyc2l2ZScsXHJcblxyXG4gIC8vIERQSV9Jc1JlZmVyZW5jZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JlZmVyZW5jZWQgPSAnaXNSZWZlcmVuY2VkJyxcclxuXHJcbiAgLy8gRFBJX0lzUmVtb3ZhbEFsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JlbW92YWxBbGxvd2VkID0gJ2lzUm93UmVtb3ZhbEFsbG93ZWQnLFxyXG5cclxuICAvLyBEUElfSXNSZW5kZXJDYXBhYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNSZW5kZXJDYXBhYmxlID0gJ2lzUmVuZGVyQ2FwYWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc1JlcXVpcmVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNSZXF1aXJlZCA9ICdpc1JlcXVpcmVkJyxcclxuXHJcbiAgLy8gRFBJX0lzUmV2ZXJzZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JldmVyc2VkID0gJ2lzUmV2ZXJzZWQnLFxyXG5cclxuICAvLyBEUElfSXNSaWdodERyYWcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JpZ2h0RHJhZyA9ICdpc1JpZ2h0RHJhZycsXHJcblxyXG4gIC8vIERQSV9Jc1Jvd0xhYmVscywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUm93TGFiZWxzID0gJ2lzUm93TGFiZWxzJyxcclxuXHJcbiAgLy8gRFBJX0lzUGVyY2VudGFnZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUGVyY2VudGFnZSA9ICdpc1BlcmNlbnRhZ2UnLFxyXG5cclxuICAvLyBEUElfSXNTYWxlc2ZvcmNlSW5Db25uZWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTYWxlc2ZvcmNlSW5Db25uZWN0aW9uID0gJ2lzU2FsZXNmb3JjZUluQ29ubmVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9Jc1NjYWxlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU2NhbGVkID0gJ2lzU2NhbGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzU2Vjb25kYXJ5RmllbGQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1NlY29uZGFyeUZpZWxkID0gJ2lzU2Vjb25kYXJ5RmllbGQnLFxyXG5cclxuICAvLyBEUElfSXNTZWxlY3RlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU2VsZWN0ZWQgPSAnaXNTZWxlY3RlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1NlbGVjdGVkSXRlbSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU2VsZWN0ZWRJdGVtID0gJ2lzU2VsZWN0ZWRJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0lzU2VsZWN0aW9uRGlzYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1NlbGVjdGlvbkRpc2FibGVkID0gJ2lzU2VsZWN0aW9uRGlzYWJsZWQnLFxyXG5cclxuICAvLyBEUElfSXNTaGlmdERyYWcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1NoaWZ0RHJhZyA9ICdpc1NoaWZ0RHJhZycsXHJcblxyXG4gIC8vIERQSV9Jc1NpbmdsZUxhYmVsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTaW5nbGVMYWJlbCA9ICdpc1NpbmdsZUxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX0lzU2luZ2xlU2VsZWN0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTaW5nbGVTZWxlY3QgPSAnaXNTaW5nbGVTZWxlY3QnLFxyXG5cclxuICAvLyBEUElfSXNTaW5nbGVTZWxlY3RNb2RlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTaW5nbGVTZWxlY3RNb2RlID0gJ2lzU2luZ2xlU2VsZWN0TW9kZScsXHJcblxyXG4gIC8vIERQSV9Jc1NpbmdsZVNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU2luZ2xlU2VsZWN0aW9uID0gJ2lzU2luZ2xlU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0lzU29ydGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTb3J0ZWQgPSAnaXNTb3J0ZWQnLFxyXG5cclxuICAvLyBEUElfSXNTb3J0UGlsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU29ydFBpbGwgPSAnaXNTb3J0UGlsbCcsXHJcblxyXG4gIC8vIERQSV9Jc1NwZWNpYWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1NwZWNpYWwgPSAnaXNTcGVjaWFsJyxcclxuXHJcbiAgLy8gRFBJX0lzU3BsYXNoU2NyZWVuLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTcGxhc2hTY3JlZW4gPSAnaXNTcGxhc2hTY3JlZW4nLFxyXG5cclxuICAvLyBEUElfSXNTdG9yeUVtcHR5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTdG9yeUVtcHR5ID0gJ2lzU3RvcnlFbXB0eScsXHJcblxyXG4gIC8vIERQSV9Jc1N0cmlrZVRocm91Z2gsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1N0cmlrZVRocm91Z2ggPSAnaXNTdHJpa2VUaHJvdWdoJyxcclxuXHJcbiAgLy8gRFBJX0lzVGFibGVDYWxjLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUYWJsZUNhbGMgPSAnaXNUYWJsZUNhbGMnLFxyXG5cclxuICAvLyBEUElfSXNUYWJsZUNsZWFuaW5nU3VidGFibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1RhYmxlQ2xlYW5pbmdTdWJ0YWJsZSA9ICdpc1RhYmxlQ2xlYW5pbmdTdWJ0YWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc1RhYmxlRmlsdGVySW5jbHVzaXZlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUYWJsZUZpbHRlckluY2x1c2l2ZSA9ICdpc1RhYmxlRmlsdGVySW5jbHVzaXZlJyxcclxuXHJcbiAgLy8gRFBJX0lzVGFibGVSYW5rZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1RhYmxlUmFua2VkID0gJ2lzVGFibGVSYW5rZWQnLFxyXG5cclxuICAvLyBEUElfSXNUZW1wb3JhcnksIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1RlbXBvcmFyeSA9ICdpc1RlbXBvcmFyeScsXHJcblxyXG4gIC8vIERQSV9Jc1RpbWVJbnRlbGxpZ2VuY2UsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1RpbWVJbnRlbGxpZ2VuY2UgPSAnaXNUaW1lSW50ZWxsaWdlbmNlJyxcclxuXHJcbiAgLy8gRFBJX0lzVGl0bGVWaXNpYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUaXRsZVZpc2libGUgPSAnaXNUaXRsZVZpc2libGUnLFxyXG5cclxuICAvLyBEUElfSXNUb3BMZXZlbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVG9wTGV2ZWwgPSAnaXNUb3BMZXZlbCcsXHJcblxyXG4gIC8vIERQSV9Jc1R3b1ZhbHVlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVHdvVmFsdWVkID0gJ2lzVHdvVmFsdWVkJyxcclxuXHJcbiAgLy8gRFBJX0lzVHlwZUluRmluaXNoZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1R5cGVJbkZpbmlzaGVkID0gJ2lzVHlwZWluRmluaXNoZWQnLFxyXG5cclxuICAvLyBEUElfSXNUeXBlSW5QaWxsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUeXBlSW5QaWxsID0gJ2lzVHlwZUluUGlsbCcsXHJcblxyXG4gIC8vIERQSV9Jc1VSTEFjdGlvbkZpZWxkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNVUkxBY3Rpb25GaWVsZCA9ICdpc1VybEFjdGlvbkZpZWxkJyxcclxuXHJcbiAgLy8gRFBJX0lzVW5kZXJsaW5lZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVW5kZXJsaW5lZCA9ICdpc1VuZGVybGluZWQnLFxyXG5cclxuICAvLyBEUElfSXNVbmlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVW5pb24gPSAnaXNVbmlvbicsXHJcblxyXG4gIC8vIERQSV9Jc1VuaW9uUmVwbGFjZW1lbnQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1VuaW9uUmVwbGFjZW1lbnQgPSAnaXNVbmlvblJlcGxhY2VtZW50JyxcclxuXHJcbiAgLy8gRFBJX0lzVW5uYW1lZENhbGMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1VubmFtZWRDYWxjID0gJ2lzVW5uYW1lZCcsXHJcblxyXG4gIC8vIERQSV9Jc1VzZXJEZWZpbmVkQXR0cmlidXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNVc2VyRGVmaW5lZEF0dHJpYnV0ZSA9ICdpc1VzZXJEZWZpbmVkQXR0cmlidXRlJyxcclxuXHJcbiAgLy8gRFBJX0lzVXNlckVkaXRhYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNVc2VyRWRpdGFibGUgPSAnaXNVc2VyRWRpdGFibGUnLFxyXG5cclxuICAvLyBEUElfSXNVc2VyUHJvbXB0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1VzZXJQcm9tcHRlZCA9ICdpc1VzZXJQcm9tcHRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1VzZXJSZXNwb25kZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1VzZXJSZXNwb25kZWQgPSAnaXNVc2VyUmVzcG9uZGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzVmFsaWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1ZhbGlkID0gJ2lzVmFsaWQnLFxyXG5cclxuICAvLyBEUElfSXNWYWxpZFdEQ1BhZ2UsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1ZhbGlkV0RDUGFnZSA9ICdpc1ZhbGlkV2RjUGFnZScsXHJcblxyXG4gIC8vIERQSV9Jc1ZhcnlpbmdBdHRyaWJ1dGVEaW1lbnNpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1ZhcnlpbmdBdHRyaWJ1dGVEaW1lbnNpb24gPSAnaXNWYXJ5aW5nQXR0cmlidXRlRGltZW5zaW9uJyxcclxuXHJcbiAgLy8gRFBJX0lzVmVydGljYWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1ZlcnRpY2FsID0gJ2lzVmVydGljYWwnLFxyXG5cclxuICAvLyBEUElfSXNWaWV3TW9kaWZpZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1ZpZXdNb2RpZmllZCA9ICdpc1ZpZXdNb2RpZmllZCcsXHJcblxyXG4gIC8vIERQSV9Jc1Zpc3VhbGx5Q2F0ZWdvcmljYWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1Zpc3VhbGx5Q2F0ZWdvcmljYWwgPSAnaXNWaXN1YWxseUNhdCcsXHJcblxyXG4gIC8vIERQSV9Jc1ZpekluVG9vbHRpcCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVml6SW5Ub29sdGlwID0gJ2lzVml6SW5Ub29sdGlwJyxcclxuXHJcbiAgLy8gRFBJX0lzV2ViLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNXZWIgPSAnaXNXZWInLFxyXG5cclxuICAvLyBEUElfSXNXaGl0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzV2hpdGUgPSAnaXNXaGl0ZScsXHJcblxyXG4gIC8vIERQSV9Jc1dvcmxkTmV3LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNXb3JsZE5ldyA9ICdpc1dvcmxkTmV3JyxcclxuXHJcbiAgLy8gRFBJX0lzWEF4aXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1hBeGlzID0gJ2lzWEF4aXMnLFxyXG5cclxuICAvLyBEUElfS2VlcEFzcGVjdFJhdGlvLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgS2VlcEFzcGVjdFJhdGlvID0gJ2tlZXBBc3BlY3RSYXRpbycsXHJcblxyXG4gIC8vIERQSV9MYWJlbExpbmVFbmRGaXJzdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIExhYmVsTGluZUVuZEZpcnN0ID0gJ2xhYmVsTGluZUVuZEZpcnN0JyxcclxuXHJcbiAgLy8gRFBJX0xhYmVsTGluZUVuZExhc3QsIGhhdmluZyB0eXBlIGJvb2xcclxuICBMYWJlbExpbmVFbmRMYXN0ID0gJ2xhYmVsTGluZUVuZExhc3QnLFxyXG5cclxuICAvLyBEUElfTGFiZWxNYXJrTWF4LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTGFiZWxNYXJrTWF4ID0gJ2xhYmVsTWFya01heCcsXHJcblxyXG4gIC8vIERQSV9MYWJlbE1hcmtNaW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBMYWJlbE1hcmtNaW4gPSAnbGFiZWxNYXJrTWluJyxcclxuXHJcbiAgLy8gRFBJX0xvY2tBc3BlY3RSYXRpbywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIExvY2tBc3BlY3RSYXRpbyA9ICdsb2NrQXNwZWN0UmF0aW8nLFxyXG5cclxuICAvLyBEUElfTG9vcFBsYXliYWNrLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTG9vcFBsYXliYWNrID0gJ2xvb3BQbGF5YmFjaycsXHJcblxyXG4gIC8vIERQSV9Mb3NzeUltYWdlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIExvc3N5SW1hZ2VzID0gJ2xvc3N5SW1hZ2VzJyxcclxuXHJcbiAgLy8gRFBJX01ha2VHbG9iYWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBNYWtlR2xvYmFsID0gJ2lzTWFrZUdsb2JhbCcsXHJcblxyXG4gIC8vIERQSV9NYW51YWxTb3J0T25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE1hbnVhbFNvcnRPbmx5ID0gJ21hbnVhbFNvcnRPbmx5JyxcclxuXHJcbiAgLy8gRFBJX01hcEJveERlZmF1bHRTdHlsZVNlbGVjdGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTWFwQm94RGVmYXVsdFN0eWxlU2VsZWN0ZWQgPSAnbWFwYm94RGVmYXVsdFN0eWxlU2VsZWN0ZWQnLFxyXG5cclxuICAvLyBEUElfTWFwQm94VVJMUGFyc2VTdWNjZXNzZnVsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTWFwQm94VVJMUGFyc2VTdWNjZXNzZnVsID0gJ21hcGJveFVybFBhcnNlU3VjY2Vzc2Z1bCcsXHJcblxyXG4gIC8vIERQSV9NYXBDbGllbnRSZXF1ZXN0c01hcFRpbGVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTWFwQ2xpZW50UmVxdWVzdHNNYXBUaWxlcyA9ICdjbGllbnRSZXF1ZXN0c01hcFRpbGVzJyxcclxuXHJcbiAgLy8gRFBJX01hcEhhc1ZhbGlkTGF5ZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBNYXBIYXNWYWxpZExheWVyID0gJ21hcEhhc1ZhbGlkTGF5ZXInLFxyXG5cclxuICAvLyBEUElfTWFwU2hvd0F0dHJpYnV0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTWFwU2hvd0F0dHJpYnV0aW9uID0gJ3Nob3dBdHRyaWJ1dGlvbicsXHJcblxyXG4gIC8vIERQSV9NYXJrTGFiZWxzVmlzaWJpbGl0eUNoYW5nZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBNYXJrTGFiZWxzVmlzaWJpbGl0eUNoYW5nZWQgPSAnbWFya0xhYmVsc1Zpc2liaWxpdHlDaGFuZ2VkJyxcclxuXHJcbiAgLy8gRFBJX01lbWJlcnNMb2FkZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBNZW1iZXJzTG9hZGVkID0gJ21lbWJlcnNMb2FkZWQnLFxyXG5cclxuICAvLyBEUElfTWluaW1pemVOYW1lcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE1pbmltaXplTmFtZXMgPSAndXNlTWluTmFtZXMnLFxyXG5cclxuICAvLyBEUElfTW9kZWxzVGltZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE1vZGVsc1RpbWUgPSAnbW9kZWxzVGltZScsXHJcblxyXG4gIC8vIERQSV9Nb3ZlUmVmZXJlY2VMaW5lVXAsIGhhdmluZyB0eXBlIGJvb2xcclxuICBNb3ZlUmVmZXJlY2VMaW5lVXAgPSAnbW92ZVJlZmVyZW5jZUxpbmVVcCcsXHJcblxyXG4gIC8vIERQSV9NdWx0aURhdGFTb3VyY2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTXVsdGlEYXRhU291cmNlcyA9ICdtdWx0aURhdGFTb3VyY2VzJyxcclxuXHJcbiAgLy8gRFBJX05hdkFycm93c1Zpc2libGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBOYXZBcnJvd3NWaXNpYmxlID0gJ25hdkFycm93c1Zpc2libGUnLFxyXG5cclxuICAvLyBEUElfT0VNSGFzU3BsYXNoU2NyZWVuLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgT0VNSGFzU3BsYXNoU2NyZWVuID0gJ29lbUhhc1NwbGFzaFNjcmVlbicsXHJcblxyXG4gIC8vIERQSV9PbmVXYXlCcnVzaGluZywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE9uZVdheUJydXNoaW5nID0gJ29uZVdheUJydXNoaW5nJyxcclxuXHJcbiAgLy8gRFBJX09ubHlBZ2dyZWdhdGlvbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBPbmx5QWdncmVnYXRpb25zID0gJ29ubHlBZ2dyZWdhdGlvbnMnLFxyXG5cclxuICAvLyBEUElfT25seVNob3dEYXRlQmlucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE9ubHlTaG93RGF0ZUJpbnMgPSAnb25seVNob3dEYXRlQmlucycsXHJcblxyXG4gIC8vIERQSV9PdmVycmlkZUFsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBPdmVycmlkZUFsbG93ZWQgPSAnb3ZlcnJpZGVBbGxvd2VkJyxcclxuXHJcbiAgLy8gRFBJX092ZXJyaWRlU3RhY2tEdW1wZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBPdmVycmlkZVN0YWNrRHVtcGVyID0gJ292ZXJyaWRlU3RhY2tEdW1wZXInLFxyXG5cclxuICAvLyBEUElfUGFnZUF1dG9Db2xvckxpbmVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUGFnZUF1dG9Db2xvckxpbmVzID0gJ2F1dG9Db2xvckxpbmVzJyxcclxuXHJcbiAgLy8gRFBJX1BhZ2VBdXRvQ29sb3JNYXJrcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFBhZ2VBdXRvQ29sb3JNYXJrcyA9ICdhdXRvQ29sb3JNYXJrcycsXHJcblxyXG4gIC8vIERQSV9QYWdlSGlzdG9yeUZhZGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBQYWdlSGlzdG9yeUZhZGUgPSAnaGlzdG9yeUZhZGUnLFxyXG5cclxuICAvLyBEUElfUGVyY2VudGFnZUJhbmRzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUGVyY2VudGFnZUJhbmRzID0gJ3BlcmNlbnRhZ2VCYW5kcycsXHJcblxyXG4gIC8vIERQSV9QZXJjZW50aWxlc0FsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBQZXJjZW50aWxlc0FsbG93ZWQgPSAncGVyY2VudGlsZXNBbGxvd2VkJyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hXaXRoUmVtb3RlUXVlcnlBZ2VudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFB1Ymxpc2hXaXRoUmVtb3RlUXVlcnlBZ2VudCA9ICdwdWJsaXNoV2l0aFJlbW90ZVF1ZXJ5QWdlbnQnLFxyXG5cclxuICAvLyBEUElfUHJldmlvdXNTaGVldCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFByZXZpb3VzU2hlZXQgPSAncHJldmlvdXNTaGVldCcsXHJcblxyXG4gIC8vIERQSV9Qcm9tcHREZWxldGVTaGVldHNXaXRoVml6SW5Ub29sdGlwLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUHJvbXB0RGVsZXRlU2hlZXRzV2l0aFZpekluVG9vbHRpcCA9ICdwcm9tcHREZWxldGVTaGVldHNXaXRoVml6SW5Ub29sdGlwJyxcclxuXHJcbiAgLy8gRFBJX1F1YW50aWxlc0FsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBRdWFudGlsZXNBbGxvd2VkID0gJ3F1YW50aWxlc0FsbG93ZWQnLFxyXG5cclxuICAvLyBEUElfUmFkaWFsRGlzdGFuY2VIaXRUZXN0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUmFkaWFsRGlzdGFuY2VIaXRUZXN0ID0gJ3JhZGlhbERpc3RhbmNlSGl0VGVzdCcsXHJcblxyXG4gIC8vIERQSV9SZWZMaW5lU2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBSZWZMaW5lU2VsZWN0ZWQgPSAncmVmTGluZVNlbGVjdGVkJyxcclxuXHJcbiAgLy8gRFBJX1JlbW92ZWRTaGVldHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBSZW1vdmVkU2hlZXRzID0gJ3JlbW92ZWRTaGVldHMnLFxyXG5cclxuICAvLyBEUElfUmVuZGVySW1hZ2VzQXNVcmxzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUmVuZGVySW1hZ2VzQXNVcmxzID0gJ2ltYWdlc0FzVXJscycsXHJcblxyXG4gIC8vIERQSV9SZW5kZXJPblRvcCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlbmRlck9uVG9wID0gJ3JlbmRlck9uVG9wJyxcclxuXHJcbiAgLy8gRFBJX1JlcGVhdEhlYWRlcnNMZWdlbmRzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUmVwZWF0SGVhZGVyc0xlZ2VuZHMgPSAncmVwZWF0SGVhZGVyc0xlZ2VuZHMnLFxyXG5cclxuICAvLyBEUElfUmVwbGFjZUFjdGl2ZUNvbmZpZywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlcGxhY2VBY3RpdmVDb25maWcgPSAncmVwbGFjZUFjdGl2ZUNvbmZpZycsXHJcblxyXG4gIC8vIERQSV9SZXBsYWNlRGF0YXNvdXJjZUFmdGVyUHVibGlzaCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlcGxhY2VEYXRhc291cmNlQWZ0ZXJQdWJsaXNoID0gJ3JlcGxhY2VEYXRhc291cmNlQWZ0ZXJQdWJsaXNoJyxcclxuXHJcbiAgLy8gRFBJX1JlcGxhY2VEYXRhc291cmNlRmFpbGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUmVwbGFjZURhdGFzb3VyY2VGYWlsZWQgPSAncmVwbGFjZURhdGFzb3VyY2VGYWlsZWQnLFxyXG5cclxuICAvLyBEUElfUmVwbGFjZVRkZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlcGxhY2VUZGUgPSAncmVwbGFjZVRkZScsXHJcblxyXG4gIC8vIERQSV9SZXF1aXJlU2VsZWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUmVxdWlyZVNlbGVjdGlvbiA9ICdyZXF1aXJlU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1JlcXVpcmVzREJWYXJpYWJsZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBSZXF1aXJlc0RCVmFyaWFibGVzID0gJ3JlcXVpcmVzRGJWYXJpYWJsZXMnLFxyXG5cclxuICAvLyBEUElfUmVxdWlyZXNGaWVsZExpc3QsIGhhdmluZyB0eXBlIGJvb2xcclxuICBSZXF1aXJlc0ZpZWxkTGlzdCA9ICdyZXF1aXJlc0ZpZWxkTGlzdCcsXHJcblxyXG4gIC8vIERQSV9SZXN0YXJ0RXZlcnlGaWVsZElzSW52YWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlc3RhcnRFdmVyeUZpZWxkSXNJbnZhbGlkID0gJ3Jlc3RhcnRFdmVyeUZpZWxkSXNJbnZhbGlkJyxcclxuXHJcbiAgLy8gRFBJX1JpZ2h0SnVzdGlmeSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJpZ2h0SnVzdGlmeSA9ICdyaWdodEp1c3RpZnknLFxyXG5cclxuICAvLyBEUElfU2F2ZUVuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTYXZlRW5hYmxlZCA9ICdzYXZlRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9TYXZlUGFzc3dvcmRBbGxvd2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2F2ZVBhc3N3b3JkQWxsb3dlZCA9ICdzYXZlUGFzc3dvcmRBbGxvd2VkJyxcclxuXHJcbiAgLy8gRFBJX1Njb3BlSXNvbGF0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2NvcGVJc29sYXRpb24gPSAnc2NvcGVJc29sYXRpb24nLFxyXG5cclxuICAvLyBEUElfU2VsZWN0aW9uUmVxdWlyZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTZWxlY3Rpb25SZXF1aXJlZCA9ICdzZWxlY3Rpb25SZXF1aXJlZCcsXHJcblxyXG4gIC8vIERQSV9TZW5kTm90aWZpY2F0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNlbmROb3RpZmljYXRpb25zID0gJ3NlbmROb3RpZmljYXRpb25zJyxcclxuXHJcbiAgLy8gRFBJX1NldEFjdGl2ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNldEFjdGl2ZSA9ICdzZXRBY3RpdmUnLFxyXG5cclxuICAvLyBEUElfU2V0RGVmYXVsdFNvcnQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTZXREZWZhdWx0U29ydCA9ICdzZXREZWZhdWx0JyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0SXNEYXNoYm9hcmQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaGVldElzRGFzaGJvYXJkID0gJ2lzRGFzaGJvYXJkJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0SXNTdG9yeWJvYXJkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hlZXRJc1N0b3J5Ym9hcmQgPSAnaXNTdG9yeScsXHJcblxyXG4gIC8vIERQSV9TaG91bGRBbHdheXNEaXNwbGF5QWxpYXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGRBbHdheXNEaXNwbGF5QWxpYXMgPSAnc2hvdWxkQWx3YXlzRGlzcGxheUFsaWFzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZEF1dG9DYXB0dXJlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkQXV0b0NhcHR1cmUgPSAnc2hvdWxkQXV0b0NhcHR1cmUnLFxyXG5cclxuICAvLyBEUElfU2hvdWxkQXV0b1JldmVydCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3VsZEF1dG9SZXZlcnQgPSAnc2hvdWxkQXV0b1JldmVydCcsXHJcblxyXG4gIC8vIERQSV9TaG91bGRDaGFuZ2VVSU1vZGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGRDaGFuZ2VVSU1vZGUgPSAnc2hvdWxkQ2hhbmdlVWlNb2RlJyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZERpc3BsYXksIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGREaXNwbGF5ID0gJ3Nob3VsZERpc3BsYXknLFxyXG5cclxuICAvLyBEUElfU2hvdWxkRHJpbGwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGREcmlsbCA9ICdzaG91bGREcmlsbCcsXHJcblxyXG4gIC8vIERQSV9TaG91bGRGb3JjZUNvbm5lY3Rpb25BdHRlbXB0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkRm9yY2VDb25uZWN0aW9uQXR0ZW1wdCA9ICdzaG91bGRGb3JjZUNvbm5lY3Rpb25BdHRlbXB0JyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZFJlZnJlc2hEUywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3VsZFJlZnJlc2hEUyA9ICdzaG91bGRSZWZyZXNoRHMnLFxyXG5cclxuICAvLyBEUElfU2hvdWxkU2NhbGVNYXJrc0luQXhpc1VuaXRzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkU2NhbGVNYXJrc0luQXhpc1VuaXRzID0gJ3Nob3VsZFNjYWxlTWFya3NJbkF4aXNVbml0cycsXHJcblxyXG4gIC8vIERQSV9TaG91bGRTZWVkQ3JlZGVudGlhbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGRTZWVkQ3JlZGVudGlhbHMgPSAnc2hvdWxkU2VlZENyZWRlbnRpYWxzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZFNob3dEYXRhU291cmNlQ29ubmVjdGlvbkVycm9yLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkU2hvd0RhdGFTb3VyY2VDb25uZWN0aW9uRXJyb3IgPSAnc2hvdWxkU2hvd0RhdGFTb3VyY2VDb25uZWN0aW9uRXJyb3InLFxyXG5cclxuICAvLyBEUElfU2hvdWxkU2hvd0Rpc3RhbmNlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkU2hvd0Rpc3RhbmNlID0gJ3Nob3VsZFNob3dEaXN0YW5jZScsXHJcblxyXG4gIC8vIERQSV9TaG91bGRTaG93SGlkZGVuRmllbGQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGRTaG93SGlkZGVuRmllbGQgPSAnc2hvdWxkU2hvd0hpZGRlbkZpZWxkJyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZFNob3dNYXBTY2FsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3VsZFNob3dNYXBTY2FsZSA9ICdzaG91bGRTaG93TWFwU2NhbGUnLFxyXG5cclxuICAvLyBEUElfU2hvdWxkVVJMRXNjYXBlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkVVJMRXNjYXBlID0gJ3Nob3VsZFVybEVzY2FwZScsXHJcblxyXG4gIC8vIERQSV9TaG91bGRVcGRhdGVEb21haW5JbmZvLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkVXBkYXRlRG9tYWluSW5mbyA9ICdzaG91bGRVcGRhdGVEb21JbmZvJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dBZGRUb0ZpbHRlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dBZGRUb0ZpbHRlciA9ICdzaG93QWRkVG9GaWx0ZXJCdXR0b24nLFxyXG5cclxuICAvLyBEUElfU2hvd0FsaWFzZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93QWxpYXNlcyA9ICdzaG93QWxpYXNlcycsXHJcblxyXG4gIC8vIERQSV9TaG93QWxsUGFnZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93QWxsUGFnZXMgPSAnc2hvd0FsbFBhZ2VzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dBcHBseSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dBcHBseSA9ICdzaG93QXBwbHlCdXR0b24nLFxyXG5cclxuICAvLyBEUElfU2hvd0FwcGx5QW5kQ2FuY2VsQnV0dG9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dBcHBseUFuZENhbmNlbEJ1dHRvbnMgPSAnc2hvd0FwcGx5QW5kQ2FuY2VsQnV0dG9ucycsXHJcblxyXG4gIC8vIERQSV9TaG93QXV0aGVudGljYXRpb25PcHRpb25zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0F1dGhlbnRpY2F0aW9uT3B0aW9ucyA9ICdzaG93QXV0aGVudGljYXRpb25PcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dBdXRoZW50aWNhdGlvblNldHRpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93QXV0aGVudGljYXRpb25TZXR0aW5nID0gJ3Nob3dBdXRoZW50aWNhdGlvblNldHRpbmcnLFxyXG5cclxuICAvLyBEUElfU2hvd0F1dG8sIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93QXV0byA9ICdzaG93QXV0bycsXHJcblxyXG4gIC8vIERQSV9TaG93Qm9sZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dCb2xkID0gJ3Nob3dCb2xkT3B0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dCdXR0b25zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0J1dHRvbnMgPSAnc2hvd0J1dHRvbnMnLFxyXG5cclxuICAvLyBEUElfU2hvd0NhcHRpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93Q2FwdGlvbiA9ICdzaG93Q2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9TaG93Q29sb3JMZWdlbmQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93Q29sb3JMZWdlbmQgPSAnc2hvd0NvbG9yTGVnZW5kJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dEYXRhR3JpZElubGluZVJlbmFtZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dEYXRhR3JpZElubGluZVJlbmFtZSA9ICdzaG93RGF0YUdyaWRJbmxpbmVSZW5hbWUnLFxyXG5cclxuICAvLyBEUElfU2hvd0RldGFpbE1lc3NhZ2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0RldGFpbE1lc3NhZ2VzID0gJ3Nob3dEZXRhaWxNZXNzYWdlcycsXHJcblxyXG4gIC8vIERQSV9TaG93RGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dEYXRlID0gJ3Nob3dEYXRlJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dEcmFnTGFiZWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93RHJhZ0xhYmVsID0gJ3Nob3dEcmFnTGFiZWwnLFxyXG5cclxuICAvLyBEUElfU2hvd0Ryb3BNZWFzdXJlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dEcm9wTWVhc3VyZXMgPSAnc2hvd0Ryb3BNZWFzdXJlcycsXHJcblxyXG4gIC8vIERQSV9TaG93RW1iZWRBbGwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93RW1iZWRBbGwgPSAnc2hvd0VtYmVkQWxsJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dFbnRpcmVJbWFnZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dFbnRpcmVJbWFnZSA9ICdzaG93RW50aXJlSW1hZ2UnLFxyXG5cclxuICAvLyBEUElfU2hvd0V4Y2x1ZGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93RXhjbHVkZSA9ICdzaG93RXhjbHVkZUJ1dHRvbicsXHJcblxyXG4gIC8vIERQSV9TaG93RmxvYXRpbmdab29tVG9vbGJhciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dGbG9hdGluZ1pvb21Ub29sYmFyID0gJ3Nob3dGbG9hdGluZ1pvb21Ub29sYmFyJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dGb3JtYXR0ZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93Rm9ybWF0dGVyID0gJ3Nob3dGb3JtYXR0ZXInLFxyXG5cclxuICAvLyBEUElfU2hvd0Z1bGxTY2hlZHVsZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93RnVsbFNjaGVkdWxlcyA9ICdzaG93RnVsbFNjaGVkdWxlcycsXHJcblxyXG4gIC8vIERQSV9TaG93R2VvZ3JhcGhpY1NlYXJjaCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dHZW9ncmFwaGljU2VhcmNoID0gJ3Nob3dHZW9ncmFwaGljU2VhcmNoJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dIaWRkZW5GaWVsZHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93SGlkZGVuRmllbGRzID0gJ3Nob3dIaWRkZW5GaWVsZHMnLFxyXG5cclxuICAvLyBEUElfU2hvd0hpc3RvcnlDb250cm9scywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dIaXN0b3J5Q29udHJvbHMgPSAnc2hvd0hpc3RvcnlDb250cm9scycsXHJcblxyXG4gIC8vIERQSV9TaG93SW5jbHVkZUxvY2FsRmlsZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93SW5jbHVkZUxvY2FsRmlsZXMgPSAnc2hvd0luY2x1ZGVMb2NhbEZpbGVzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dJbmNsdWRlT3RoZXJPcHRpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93SW5jbHVkZU90aGVyT3B0aW9uID0gJ3Nob3dJbmNsdWRlT3RoZXJPcHRpb24nLFxyXG5cclxuICAvLyBEUElfU2hvd0luY2x1ZGVTZWxlY3Rpb25zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0luY2x1ZGVTZWxlY3Rpb25zID0gJ3Nob3dJbmNsdWRlU2VsZWN0aW9ucycsXHJcblxyXG4gIC8vIERQSV9TaG93SW5jclNjaGVkdWxlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dJbmNyU2NoZWR1bGVzID0gJ3Nob3dJbmNyU2NoZWR1bGVzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dJbm5lck1vc3RMZXZlbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dJbm5lck1vc3RMZXZlbCA9ICdzaG93SW5uZXJtb3N0TGV2ZWwnLFxyXG5cclxuICAvLyBEUElfU2hvd0l0YWxpY3MsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93SXRhbGljcyA9ICdzaG93SXRhbGljc09wdGlvbicsXHJcblxyXG4gIC8vIERQSV9TaG93TGVnZW5kLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0xlZ2VuZCA9ICdzaG93TGVnZW5kJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dMb2NrZWRQZXJtaXNzaW9uc0ljb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93TG9ja2VkUGVybWlzc2lvbnNJY29uID0gJ3Nob3dMb2NrZWRQZXJtaXNzaW9uc0ljb24nLFxyXG5cclxuICAvLyBEUElfU2hvd01hbmFnZURhdGFzb3VyY2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd01hbmFnZURhdGFzb3VyY2VzID0gJ3Nob3dNYW5hZ2VEYXRhc291cmNlcycsXHJcblxyXG4gIC8vIERQSV9TaG93TWFwTGVnZW5kLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd01hcExlZ2VuZCA9ICdzaG93TWFwTGVnZW5kJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dNYXBTY2FsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dNYXBTY2FsZSA9ICdzaG93TWFwU2NhbGUnLFxyXG5cclxuICAvLyBEUElfU2hvd01hcHBlZEZpbHRlckNvbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93TWFwcGVkRmlsdGVyQ29scyA9ICdzaG93TWFwcGVkRmlsdGVyQ29sdW1ucycsXHJcblxyXG4gIC8vIERQSV9TaG93TmFtZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dOYW1lID0gJ3Nob3dOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dOb25lLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd05vbmUgPSAnc2hvd05vbmUnLFxyXG5cclxuICAvLyBEUElfU2hvd1BhZ2VQbGF5YmFjaywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dQYWdlUGxheWJhY2sgPSAnc2hvd1BhZ2VQbGF5YmFjaycsXHJcblxyXG4gIC8vIERQSV9TaG93UGFnZVJlYWRvdXQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93UGFnZVJlYWRvdXQgPSAnc2hvd1BhZ2VSZWFkb3V0JyxcclxuXHJcbiAgLy8gRFBJX1Nob3dQYWdlU2xpZGVyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1BhZ2VTbGlkZXIgPSAnc2hvd1BhZ2VTbGlkZXInLFxyXG5cclxuICAvLyBEUElfU2hvd1BhcmVudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dQYXJlbnQgPSAnc2hvd1BhcmVudCcsXHJcblxyXG4gIC8vIERQSV9TaG93UGVyY2VudGFnZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93UGVyY2VudGFnZXMgPSAnc2hvd1BlcmNlbnRhZ2VzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dQcmVkaWN0aW9uSW50ZXJ2YWxzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1ByZWRpY3Rpb25JbnRlcnZhbHMgPSAnc2hvd1ByZWRpY3Rpb25JbnRlcnZhbHMnLFxyXG5cclxuICAvLyBEUElfU2hvd1B1Ymxpc2hlZERhdGFzb3VyY2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1B1Ymxpc2hlZERhdGFzb3VyY2VzID0gJ3Nob3dQdWJsaXNoZWREYXRhc291cmNlcycsXHJcblxyXG4gIC8vIERQSV9TaG93UmVsRGF0ZVBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dSZWxEYXRlUGlja2VyID0gJ3Nob3dSZWxEYXRlUGlja2VyJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dSZXBsYWNlRGF0YXNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dSZXBsYWNlRGF0YXNvdXJjZSA9ICdzaG93UmVwbGFjZURhdGFzb3VyY2UnLFxyXG5cclxuICAvLyBEUElfU2hvd1NlcGFyYXRvciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dTZXBhcmF0b3IgPSAnc2hvd1NlcGFyYXRvcicsXHJcblxyXG4gIC8vIERQSV9TaG93U2hhcGVMZWdlbmQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93U2hhcGVMZWdlbmQgPSAnc2hvd1NoYXBlTGVnZW5kJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dTaXplTGVnZW5kLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1NpemVMZWdlbmQgPSAnc2hvd1NpemVMZWdlbmQnLFxyXG5cclxuICAvLyBEUElfU2hvd1NoZWxmLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1NoZWxmID0gJ3Nob3dTaGVsZicsXHJcblxyXG4gIC8vIERQSV9TaG93U3RydWN0dXJlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1N0cnVjdHVyZSA9ICdzaG93U3RydWN0dXJlJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dTeW5jQ2xpZW50T3B0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dTeW5jQ2xpZW50T3B0aW9ucyA9ICdzaG93U3luY0NsaWVudE9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfU2hvd1RhYnNBbGxvd2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1RhYnNBbGxvd2VkID0gJ3Nob3dUYWJzQWxsb3dlZCcsXHJcblxyXG4gIC8vIERQSV9TaG93VGltZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dUaW1lID0gJ3Nob3dUaW1lJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dUaXRsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dUaXRsZSA9ICdzaG93VGl0bGUnLFxyXG5cclxuICAvLyBEUElfU2hvd1RyYW5zU2xpZGVyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1RyYW5zU2xpZGVyID0gJ3Nob3dUcmFuc3BhcmVuY3lTbGlkZXInLFxyXG5cclxuICAvLyBEUElfU2hvd1VuZGVybGluZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dVbmRlcmxpbmUgPSAnc2hvd1VuZGVybGluZU9wdGlvbicsXHJcblxyXG4gIC8vIERQSV9TaG93VXNlclRodW1ibmFpbE9wdGlvbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93VXNlclRodW1ibmFpbE9wdGlvbnMgPSAnc2hvd1VzZXJUaHVtYm5haWxPcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dWaWV3LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1ZpZXcgPSAnc2hvd1ZpZXcnLFxyXG5cclxuICAvLyBEUElfU2hvd1ZpZXdzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1ZpZXdzID0gJ3Nob3dWaWV3cycsXHJcblxyXG4gIC8vIERQSV9TaG93aW5nUGFnZUxvYWRFcnJvciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dpbmdQYWdlTG9hZEVycm9yID0gJ3Nob3dpbmdQYWdlTG9hZEVycm9yJyxcclxuXHJcbiAgLy8gRFBJX1N1cHJlc3NBbGlhc2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VwcmVzc0FsaWFzZXMgPSAnc3VzcHJlc3NBbGlhc2VzJyxcclxuXHJcbiAgLy8gRFBJX1N1cHJlc3NUaG91c2FuZHNTZXBhcmF0b3IsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdXByZXNzVGhvdXNhbmRzU2VwYXJhdG9yID0gJ3N1cHJlc3NUaG91c2FuZHNTZXBhcmF0b3InLFxyXG5cclxuICAvLyBEUElfU2luZ2xlU2VsZWN0T25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNpbmdsZVNlbGVjdE9ubHkgPSAnc2luZ2xlU2VsZWN0T25seScsXHJcblxyXG4gIC8vIERQSV9Ta2lwSWZBY3RpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTa2lwSWZBY3RpdmUgPSAnc2tpcElmQWN0aXZlJyxcclxuXHJcbiAgLy8gRFBJX1NraXBSZWZyZXNoLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2tpcFJlZnJlc2ggPSAnc2tpcFJlZnJlc2gnLFxyXG5cclxuICAvLyBEUElfU2tpcFZhbGlkYXRpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBTa2lwVmFsaWRhdGlvbiA9ICdza2lwVmFsaWRhdGlvbicsXHJcblxyXG4gIC8vIERQSV9Ta2lwcGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2tpcHBlZCA9ICdza2lwcGVkJyxcclxuXHJcbiAgLy8gRFBJX1NvcnRGaWVsZElzSW52YWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNvcnRGaWVsZElzSW52YWxpZCA9ICdzb3J0RmllbGRJc0ludmFsaWQnLFxyXG5cclxuICAvLyBEUElfU29ydE1vZGVJc0F1dG8sIGhhdmluZyB0eXBlIGJvb2xcclxuICBTb3J0TW9kZUlzQXV0byA9ICdzb3J0TW9kZUlzQXV0bycsXHJcblxyXG4gIC8vIERQSV9TcGxpdE9uRWRnZVNuYXAsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTcGxpdE9uRWRnZVNuYXAgPSAnc3BsaXRPbkVkZ2VTbmFwJyxcclxuXHJcbiAgLy8gRFBJX1N0YW5kYXJkRGV2aWF0aW9uQWxsb3dlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFN0YW5kYXJkRGV2aWF0aW9uQWxsb3dlZCA9ICdzdGFuZGFyZERldmlhdGlvbkFsbG93ZWQnLFxyXG5cclxuICAvLyBEUElfU3RhdGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdGF0ZSA9ICdzdGF0ZScsXHJcblxyXG4gIC8vIERQSV9TdG9yZWRQcm9jRGlzYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdG9yZWRQcm9jRGlzYWJsZWQgPSAnc3RvcmVkUHJvY0Rpc2FibGVkJyxcclxuXHJcbiAgLy8gRFBJX1N0b3JlZFByb2NzRHJvcGFibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdG9yZWRQcm9jc0Ryb3BhYmxlID0gJ3N0b3JlZFByb2NzRHJvcGFibGUnLFxyXG5cclxuICAvLyBEUElfU3RvcnlJc0VtcHR5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3RvcnlJc0VtcHR5ID0gJ3N0b3J5SXNFbXB0eScsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBvaW50SXNFbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFN0b3J5UG9pbnRJc0VtcHR5ID0gJ3N0b3J5UG9pbnRJc0VtcHR5JyxcclxuXHJcbiAgLy8gRFBJX1N1Y2Nlc3NmdWxTYXZlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VjY2Vzc2Z1bFNhdmUgPSAnc3VjY2Vzc2Z1bFNhdmUnLFxyXG5cclxuICAvLyBEUElfU3VwcG9ydFhBeGlzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VwcG9ydFhBeGlzID0gJ3N1cHBvcnRYQXhpcycsXHJcblxyXG4gIC8vIERQSV9TdXBwb3J0WUF4aXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdXBwb3J0WUF4aXMgPSAnc3VwcG9ydFlBeGlzJyxcclxuXHJcbiAgLy8gRFBJX1N1cHBvcnRzQ2VudGVyQWxpZ25tZW50LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VwcG9ydHNDZW50ZXJBbGlnbm1lbnQgPSAnc3VwcG9ydHNDZW50ZXJBbGlnbm1lbnQnLFxyXG5cclxuICAvLyBEUElfU3VwcG9ydHNEQkZpbHRlcnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdXBwb3J0c0RCRmlsdGVycyA9ICdzdXBwb3J0c0RhdGFiYXNlRmlsdGVycycsXHJcblxyXG4gIC8vIERQSV9TdXBwb3J0c011bHRpcGxlVmFsdWVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VwcG9ydHNNdWx0aXBsZVZhbHVlcyA9ICdzdXBwb3J0c011bHRpcGxlVmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX1N1cHBvcnRzUmlnaHRBbGlnbm1lbnQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdXBwb3J0c1JpZ2h0QWxpZ25tZW50ID0gJ3N1cHBvcnRzUmlnaHRBbGlnbm1lbnQnLFxyXG5cclxuICAvLyBEUElfU3VwcG9ydHNUYWJsZUZpbHRlcnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdXBwb3J0c1RhYmxlRmlsdGVycyA9ICdzdXBwb3J0c1RhYmxlRmlsdGVycycsXHJcblxyXG4gIC8vIERQSV9TeW1tZXRyaWMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTeW1tZXRyaWMgPSAnc3ltbWV0cmljJyxcclxuXHJcbiAgLy8gRFBJX1N5bmNBdXRvbWF0aWNEcmlsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFN5bmNBdXRvbWF0aWNEcmlsbCA9ICdzeW5jQXV0b21hdGljRHJpbGwnLFxyXG5cclxuICAvLyBEUElfVGFic0FsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBUYWJzQWxsb3dlZCA9ICd0YWJzQWxsb3dlZCcsXHJcblxyXG4gIC8vIERQSV9UZXh0RHJvcGRvd25TdGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFRleHREcm9wZG93blN0YXRlID0gJ3RvZ2dsZVN0YXRlJyxcclxuXHJcbiAgLy8gRFBJX1RpdGxlSW5saW5lLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVGl0bGVJbmxpbmUgPSAndGl0bGVJbmxpbmUnLFxyXG5cclxuICAvLyBEUElfVG9nZ2xlSGlnaGxpZ2h0U3RhdGVDaGFuZ2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVG9nZ2xlSGlnaGxpZ2h0U3RhdGVDaGFuZ2VkID0gJ3RvZ2dsZUhpZ2hsaWdodCcsXHJcblxyXG4gIC8vIERQSV9UcmFuc2Zvcm1lZDgwRm9ybWF0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVHJhbnNmb3JtZWQ4MEZvcm1hdCA9ICdvbGRGb3JtYXQnLFxyXG5cclxuICAvLyBEUElfVHJlbmRMaW5lU2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBUcmVuZExpbmVTZWxlY3RlZCA9ICd0cmVuZExpbmVTZWxlY3RlZCcsXHJcblxyXG4gIC8vIERQSV9UcnVuY0RhdGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBUcnVuY0RhdGUgPSAndHJ1bmNEYXRlJyxcclxuXHJcbiAgLy8gRFBJX1R1cGxlU2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBUdXBsZVNlbGVjdGVkID0gJ3R1cGxlU2VsZWN0ZWQnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uRGlkUGFnZUxvYWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVSUF1dG9tYXRpb25EaWRQYWdlTG9hZCA9ICd1aUF1dG9tYXRpb25EaWRQYWdlTG9hZCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25Jc0NoZWNrZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVSUF1dG9tYXRpb25Jc0NoZWNrZWQgPSAndWlBdXRvbWF0aW9uSXNDaGVja2VkJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbklzRW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVJQXV0b21hdGlvbklzRW5hYmxlZCA9ICd1aUF1dG9tYXRpb25Jc0VuYWJsZWQnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uSXNFdmVudFByb2Nlc3NlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVJQXV0b21hdGlvbklzRXZlbnRQcm9jZXNzZWQgPSAndWlBdXRvbWF0aW9uSXNFdmVudFByb2Nlc3NlZCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25Jc0ZvY3VzZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVSUF1dG9tYXRpb25Jc0ZvY3VzZWQgPSAndWlBdXRvbWF0aW9uSXNGb2N1c2VkJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbklzRm91bmQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVSUF1dG9tYXRpb25Jc0ZvdW5kID0gJ3VpQXV0b21hdGlvbklzRm91bmQnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uSXNSZWFkb25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVJQXV0b21hdGlvbklzUmVhZG9ubHkgPSAndWlBdXRvbWF0aW9uSXNSZWFkb25seScsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25Jc1NlbGVjdGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVUlBdXRvbWF0aW9uSXNTZWxlY3RlZCA9ICd1aUF1dG9tYXRpb25Jc1NlbGVjdGVkJyxcclxuXHJcbiAgLy8gRFBJX1VwZGF0ZUFsbFBhbmVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXBkYXRlQWxsUGFuZXMgPSAndXBkYXRlQWxsUGFuZXMnLFxyXG5cclxuICAvLyBEUElfVXBkYXRlRFNDYXB0aW9uT25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVwZGF0ZURTQ2FwdGlvbk9ubHkgPSAndXBkYXRlRHNDYXB0aW9uT25seScsXHJcblxyXG4gIC8vIERQSV9VcGRhdGVNb2RlbEZyb21QYXJhbXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVcGRhdGVNb2RlbEZyb21QYXJhbXMgPSAndXBkYXRlTW9kZWxGcm9tUGFyYW1zJyxcclxuXHJcbiAgLy8gRFBJX1VwZGF0ZVNoZWx2ZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVcGRhdGVTaGVsdmVzID0gJ3VwZGF0ZVNoZWx2ZXMnLFxyXG5cclxuICAvLyBEUElfVXBkYXRlc1VzZUNvbnRleHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVcGRhdGVzVXNlQ29udGV4dCA9ICd1cGRhdGVzVXNlQ29udGV4dCcsXHJcblxyXG4gIC8vIERQSV9VcGdyYWRlRG9jdW1lbnRWZXJzaW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXBncmFkZURvY3VtZW50VmVyc2lvbiA9ICd1cGdyYWRlRG9jdW1lbnRWZXJzaW9uJyxcclxuXHJcbiAgLy8gRFBJX1VzZUFsaWFzZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VBbGlhc2VzID0gJ3VzZUFsaWFzZXMnLFxyXG5cclxuICAvLyBEUElfVXNlQmxhbmtGb3JOdWxsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlQmxhbmtGb3JOdWxsID0gJ3VzZUJsYW5rRm9yTnVsbCcsXHJcblxyXG4gIC8vIERQSV9Vc2VDYWxjdWxhdGlvbkVkaXRvciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUNhbGN1bGF0aW9uRWRpdG9yID0gJ3VzZUNhbGN1bGF0aW9uRWRpdG9yJyxcclxuXHJcbiAgLy8gRFBJX1VzZUNlbnRlclZhbHVlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlQ2VudGVyVmFsdWUgPSAndXNlQ2VudGVyVmFsdWUnLFxyXG5cclxuICAvLyBEUElfVXNlQ29sb3IsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VDb2xvciA9ICd1c2VDb2xvcicsXHJcblxyXG4gIC8vIERQSV9Vc2VDdXN0b21NYXJrU2l6ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUN1c3RvbU1hcmtTaXplID0gJ3VzZUN1c3RvbU1hcmtTaXplJyxcclxuXHJcbiAgLy8gRFBJX1VzZURhcmtJY29ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZURhcmtJY29ucyA9ICd1c2VEYXJrSWNvbnMnLFxyXG5cclxuICAvLyBEUElfVXNlRGF0YVN0b3JlTWluZmllZE5hbWVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlRGF0YVN0b3JlTWluZmllZE5hbWVzID0gJ3VzZURhdGFzdG9yZU1pbk5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX1VzZUluaXRpYWxEb21haW5UeXBlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlSW5pdGlhbERvbWFpblR5cGUgPSAndXNlSW5pdGlhbERvbWFpblR5cGUnLFxyXG5cclxuICAvLyBEUElfVXNlRW5kVmFsdWUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VFbmRWYWx1ZSA9ICd1c2VFbmRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Vc2VGb3JPdmVybGF5SGl0VGVzdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUZvck92ZXJsYXlIaXRUZXN0ID0gJ3VzZUZvck92ZXJsYXlIaXRUZXN0JyxcclxuXHJcbiAgLy8gRFBJX1VzZUZ1bGxDb2xvclJhbmdlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlRnVsbENvbG9yUmFuZ2UgPSAndXNlRnVsbENvbG9yUmFuZ2UnLFxyXG5cclxuICAvLyBEUElfVXNlRnVsbERvbWFpbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUZ1bGxEb21haW4gPSAndXNlRnVsbERvbWFpbicsXHJcblxyXG4gIC8vIERQSV9Vc2VJbmxpbmVJbWFnZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VJbmxpbmVJbWFnZXMgPSAndXNlSW5saW5lSW1hZ2VzJyxcclxuXHJcbiAgLy8gRFBJX1VzZU1lYXN1cmVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlTWVhc3VyZXMgPSAndXNlTWVhc3VyZXMnLFxyXG5cclxuICAvLyBEUElfVXNlTmV3UXVpY2tGaWx0ZXJzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlTmV3UXVpY2tGaWx0ZXJzID0gJ3VzZU5ld1F1aWNrRmlsdGVycycsXHJcblxyXG4gIC8vIERQSV9Vc2VOb3RpZmljYXRpb25SZXR1cm4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VOb3RpZmljYXRpb25SZXR1cm4gPSAndXNlTm90aWZpY2F0aW9uUmV0dXJuJyxcclxuXHJcbiAgLy8gRFBJX1VzZVBhcmFtZXRlcnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VQYXJhbWV0ZXJzID0gJ3VzZVBhcmFtZXRlcnMnLFxyXG5cclxuICAvLyBEUElfVXNlU2VsZWN0b3IsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VTZWxlY3RvciA9ICd1c2VTZWxlY3RvcicsXHJcblxyXG4gIC8vIERQSV9Vc2VTaWduaWZpY2FudERpZ2l0cywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZVNpZ25pZmljYW50RGlnaXRzID0gJ3VzZVNpZ25pZmljYW50RGlnaXRzJyxcclxuXHJcbiAgLy8gRFBJX1VzZVNwZWNpYWxTdHJpbmdzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlU3BlY2lhbFN0cmluZ3MgPSAndXNlU3BlY2lhbFN0cmluZ3MnLFxyXG5cclxuICAvLyBEUElfVXNlU3RhcnRWYWx1ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZVN0YXJ0VmFsdWUgPSAndXNlU3RhcnRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Vc2VUYWJzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlVGFicyA9ICd1c2VUYWJzJyxcclxuXHJcbiAgLy8gRFBJX1VzZVRhYmxldEFzRGVmYXVsdFByZXZpZXcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VUYWJsZXRBc0RlZmF1bHRQcmV2aWV3ID0gJ3VzZVRhYmxldEFzRGVmYXVsdFByZXZpZXcnLFxyXG5cclxuICAvLyBEUElfVXNlVGFyZ2V0UHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VUYXJnZXRQdCA9ICd1c2VUYXJnZXRQb2ludCcsXHJcblxyXG4gIC8vIERQSV9Vc2VVU0xvY2FsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZVVTTG9jYWxlID0gJ3VzZVVzTG9jYWxlJyxcclxuXHJcbiAgLy8gRFBJX1VzZVlBeGlzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlWUF4aXMgPSAndXNlWUF4aXMnLFxyXG5cclxuICAvLyBEUElfVmFsaWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBWYWxpZCA9ICd2YWxpZCcsXHJcblxyXG4gIC8vIERQSV9WaXpEYXRhVjgyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVml6RGF0YVY4MiA9ICd2aXpEYXRhODInLFxyXG5cclxuICAvLyBEUElfV01TQ29ubmVjdGlvblN1Y2Nlc3NmdWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBXTVNDb25uZWN0aW9uU3VjY2Vzc2Z1bCA9ICd3bXNDb25uZWN0aW9uU3VjY2Vzc2Z1bCcsXHJcblxyXG4gIC8vIERQSV9XTVNTaG91bGRVc2VUaWxlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFdNU1Nob3VsZFVzZVRpbGVzID0gJ3dtc1Nob3VsZFVzZVRpbGVzJyxcclxuXHJcbiAgLy8gRFBJX1dhbnREb21haW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBXYW50RG9tYWluID0gJ3dhbnREb21haW4nLFxyXG5cclxuICAvLyBEUElfV29ya2Jvb2tNb2RpZmllZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFdvcmtib29rTW9kaWZpZWQgPSAnd29ya2Jvb2tNb2RpZmllZCcsXHJcblxyXG4gIC8vIERQSV9ab29tSW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBab29tSW4gPSAnem9vbUluJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dNYXJrTGFiZWxzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd01hcmtMYWJlbHMgPSAnc2hvd01hcmtMYWJlbHMnLFxyXG5cclxuICAvLyBEUElfSGFzRHVwbGljYXRlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0R1cGxpY2F0ZXMgPSAnaGFzRHVwbGljYXRlcycsXHJcblxyXG4gIC8vIERQSV9IYXNVc2VyRGVmaW5lZEluY3JlbWVudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1VzZXJEZWZpbmVkSW5jcmVtZW50ID0gJ2hhc1VzZXJEZWZpbmVkSW5jcmVtZW50JyxcclxuXHJcbiAgLy8gRFBJX0hhc1VzZXJEZWZpbmVkTWF4LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzVXNlckRlZmluZWRNYXggPSAnaGFzVXNlckRlZmluZWRNYXgnLFxyXG5cclxuICAvLyBEUElfSGFzVXNlckRlZmluZWRNaW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNVc2VyRGVmaW5lZE1pbiA9ICdoYXNVc2VyRGVmaW5lZE1pbicsXHJcblxyXG4gIC8vIERQSV9Jc0R1cGxpY2F0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRHVwbGljYXRlID0gJ2lzRHVwbGljYXRlJyxcclxuXHJcbiAgLy8gRFBJX0lzRWRpdGluZ1ZhbHVlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNFZGl0aW5nVmFsdWUgPSAnaXNFZGl0aW5nVmFsdWUnLFxyXG5cclxuICAvLyBEUElfU2hvdWxkUmVzdHJpY3REYXRhVHlwZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3VsZFJlc3RyaWN0RGF0YVR5cGUgPSAncmVzdHJpY3REYXRhVHlwZScsXHJcblxyXG4gIC8vIERQSV9FbmFibGVJbmNsdWRlWmVybywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZUluY2x1ZGVaZXJvID0gJ2VuYWJsZUluY2x1ZGVaZXJvJyxcclxuXHJcbiAgLy8gRFBJX0VuYWJsZVN5bmNEdWFsQXhlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZVN5bmNEdWFsQXhlcyA9ICdlbmFibGVTeW5jaHJvbml6ZUR1YWxBeGVzJyxcclxuXHJcbiAgLy8gRFBJX0VuYWJsZVNob3dUaW1lcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZVNob3dUaW1lcyA9ICdlbmFibGVTaG93VGltZXMnLFxyXG5cclxuICAvLyBEUElfRW5hYmxlVGlja01hcmtzVGFiLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRW5hYmxlVGlja01hcmtzVGFiID0gJ2VuYWJsZVRpY2tNYXJrc1RhYicsXHJcblxyXG4gIC8vIERQSV9Jc1RlbXBvcmFsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUZW1wb3JhbCA9ICdpc1RlbXBvcmFsJyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZEluY2x1ZGVaZXJvLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkSW5jbHVkZVplcm8gPSAnc2hvdWxkSW5jbHVkZVplcm8nLFxyXG5cclxuICAvLyBEUElfU2hvdWxkUmV2ZXJzZUF4aXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGRSZXZlcnNlQXhpcyA9ICdzaG91bGRSZXZlcnNlQXhpcycsXHJcblxyXG4gIC8vIERQSV9TaG91bGRTaG93VGltZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGRTaG93VGltZXMgPSAnc2hvdWxkU2hvd1RpbWVzJyxcclxuXHJcbiAgLy8gRFBJX1VzZUF1dG9tYXRpY0F4aXNTdWJ0aXRsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUF1dG9tYXRpY0F4aXNTdWJ0aXRsZSA9ICd1c2VBdXRvbWF0aWNTdWJ0aXRsZScsXHJcblxyXG4gIC8vIERQSV9Vc2VBdXRvbWF0aWNBeGlzVGl0bGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VBdXRvbWF0aWNBeGlzVGl0bGUgPSAndXNlQXV0b21hdGljVGl0bGUnLFxyXG5cclxuICAvLyBEUElfQWxsU2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxTZWxlY3RlZCA9ICdhbGxTZWxlY3RlZCcsXHJcblxyXG4gIC8vIERQSV9BdXRvQ29tbWl0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXV0b0NvbW1pdCA9ICdhdXRvQ29tbWl0JyxcclxuXHJcbiAgLy8gRFBJX0NhY2hlT25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhY2hlT25seSA9ICdjYWNoZU9ubHknLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZURhdGEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlRGF0YSA9ICdpbmNsdWRlRGF0YScsXHJcblxyXG4gIC8vIERQSV9Jc1BhdHRlcm5FeGNsdXNpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1BhdHRlcm5FeGNsdXNpdmUgPSAnaXNQYXR0ZXJuRXhjbHVzaXZlJyxcclxuXHJcbiAgLy8gRFBJX0lzU2VhcmNoYWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU2VhcmNoYWJsZSA9ICdpc1NlYXJjaGFibGUnLFxyXG5cclxuICAvLyBEUElfSXNTZWxlY3Rpb25FeGNsdXNpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1NlbGVjdGlvbkV4Y2x1c2l2ZSA9ICdpc1NlbGVjdGlvbkV4Y2x1c2l2ZScsXHJcblxyXG4gIC8vIERQSV9SZXNldE5ld0ZpbHRlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlc2V0TmV3RmlsdGVyID0gJ3Jlc2V0TmV3RmlsdGVyJyxcclxuXHJcbiAgLy8gRFBJX1VzZUFsbFdoZW5NYW51YWxFbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUFsbFdoZW5NYW51YWxFbXB0eSA9ICd1c2VBbGxXaGVuTWFudWFsRW1wdHknLFxyXG5cclxuICAvLyBEUElfVXNlQWxsV2hlblBhdHRlcm5FbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUFsbFdoZW5QYXR0ZXJuRW1wdHkgPSAndXNlQWxsV2hlblBhdHRlcm5FbXB0eScsXHJcblxyXG4gIC8vIERQSV9Hcm91cEJ5RHJpbGxEb3duLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgR3JvdXBCeURyaWxsRG93biA9ICdncm91cEJ5RHJpbGxEb3duJyxcclxuXHJcbiAgLy8gRFBJX0dyb3VwQnlUYWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEdyb3VwQnlUYWJsZSA9ICdncm91cEJ5VGFibGUnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUdyb3VwcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVHcm91cHMgPSAnaW5jbHVkZUdyb3VwcycsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlUGVuZGluZ1N0YXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZVBlbmRpbmdTdGF0ZSA9ICdpbmNsdWRlUGVuZGluZ1N0YXRlJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVGaWVsZE1lbnVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZUZpZWxkTWVudXMgPSAnaW5jbHVkZUZpZWxkTWVudXMnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUZvcm1hdHRlZFZhbHVlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVGb3JtYXR0ZWRWYWx1ZXMgPSAnaW5jbHVkZUZvcm1hdHRlZFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlQ29sdW1uSW5zdGFuY2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZUNvbHVtbkluc3RhbmNlcyA9ICdpbmNsdWRlQ29sdW1uSW5zdGFuY2VzJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVBZEhvY0NhbGNzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZUFkSG9jQ2FsY3MgPSAnaW5jbHVkZUFkaG9jQ2FsY3MnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUhpZGRlbkludmFsaWRGaWVsZHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlSGlkZGVuSW52YWxpZEZpZWxkcyA9ICdpbmNsdWRlSGlkZGVuSW52YWxpZEZpZWxkcycsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlTm9uRXh0cmFjdGVkQ29sdW1ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVOb25FeHRyYWN0ZWRDb2x1bW5zID0gJ2luY2x1ZGVOb25FeHRyYWN0ZWRDb2x1bW5zJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVDYWxjdWxhdGVkRmllbGRGb3JtdWxhcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVDYWxjdWxhdGVkRmllbGRGb3JtdWxhcyA9ICdpbmNsdWRlQ2FsY3VsYXRlZEZpZWxkRm9ybXVsYXMnLFxyXG5cclxuICAvLyBEUElfU2V0RGF0YVByZXZpZXdDdXN0b21GaWVsZE9yZGVyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2V0RGF0YVByZXZpZXdDdXN0b21GaWVsZE9yZGVyID0gJ3NldERhdGFQcmV2aWV3Q3VzdG9tRmllbGRPcmRlcicsXHJcblxyXG4gIC8vIERQSV9DdXN0b21TcGxpdEFsbG93U3BsaXRGcm9tUmlnaHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDdXN0b21TcGxpdEFsbG93U3BsaXRGcm9tUmlnaHQgPSAnY3VzdG9tU3BsaXRBbGxvd1NwbGl0RnJvbVJpZ2h0JyxcclxuXHJcbiAgLy8gRFBJX0lzQ2hhbmdlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQ2hhbmdlZCA9ICdpc0NoYW5nZWQnLFxyXG5cclxuICAvLyBEUElfU2hvd0ZvbnRDb2xvclBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dGb250Q29sb3JQaWNrZXIgPSAnc2hvd0ZvbnRDb2xvclBpY2tlcicsXHJcblxyXG4gIC8vIERQSV9TaG93Rm9udEZhbWlseVBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dGb250RmFtaWx5UGlja2VyID0gJ3Nob3dGb250RmFtaWx5UGlja2VyJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dGb250U2l6ZVBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dGb250U2l6ZVBpY2tlciA9ICdzaG93Rm9udFNpemVQaWNrZXInLFxyXG5cclxuICAvLyBEUElfU2hvd0ZvbnRTdHlsZUJ1dHRvbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93Rm9udFN0eWxlQnV0dG9ucyA9ICdzaG93Rm9udFN0eWxlQnV0dG9ucycsXHJcblxyXG4gIC8vIERQSV9TaG93TGluZUZvckFsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dMaW5lRm9yQWxsID0gJ3Nob3dMaW5lRm9yQWxsJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dMaW5lRm9yQ29sdW1uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0xpbmVGb3JDb2x1bW4gPSAnc2hvd0xpbmVGb3JDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfU2hvd0xpbmVGb3JSb3csIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93TGluZUZvclJvdyA9ICdzaG93TGluZUZvclJvdycsXHJcblxyXG4gIC8vIERQSV9TaG93TGluZVBhdHRlcm5QaWNrZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93TGluZVBhdHRlcm5QaWNrZXIgPSAnc2hvd0xpbmVQYXR0ZXJuUGlja2VyJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dMaW5lVHJhbnNwYXJlbmN5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0xpbmVUcmFuc3BhcmVuY3kgPSAnc2hvd0xpbmVUcmFuc3BhcmVuY3knLFxyXG5cclxuICAvLyBEUElfU2hvd0xpbmVXaWR0aFBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dMaW5lV2lkdGhQaWNrZXIgPSAnc2hvd0xpbmVXaWR0aFBpY2tlcicsXHJcblxyXG4gIC8vIERQSV9DYW5CZUF1dG8sIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5CZUF1dG8gPSAnY2FuQmVBdXRvJyxcclxuXHJcbiAgLy8gRFBJX0NhbkJlTm9uZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbkJlTm9uZSA9ICdjYW5CZU5vbmUnLFxyXG5cclxuICAvLyBEUElfQ2FuTWF0Y2hNYXJrQ29sb3IsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5NYXRjaE1hcmtDb2xvciA9ICdjYW5NYXRjaE1hcmtDb2xvcicsXHJcblxyXG4gIC8vIERQSV9IYXNPcGFjaXR5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzT3BhY2l0eSA9ICdoYXNPcGFjaXR5JyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVBbGxIaWRkZW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlQWxsSGlkZGVuID0gJ2luY2x1ZGVBbGxIaWRkZW4nLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUN1cnJlbnQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlQ3VycmVudCA9ICdpbmNsdWRlQ3VycmVudCcsXHJcblxyXG4gIC8vIERQSV9Jc0luY2x1ZGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNJbmNsdWRlZCA9ICdpc0luY2x1ZGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzUmVsYXRpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JlbGF0aXZlID0gJ2lzUmVsYXRpdmUnLFxyXG5cclxuICAvLyBEUElfSXNTZWNvbmRhcnlBbGxvd2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTZWNvbmRhcnlBbGxvd2VkID0gJ2lzU2Vjb25kYXJ5QWxsb3dlZCcsXHJcblxyXG4gIC8vIERQSV9OdWxsSWZJbmNvbXBsZXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTnVsbElmSW5jb21wbGV0ZSA9ICdudWxsSWZJbmNvbXBsZXRlJyxcclxuXHJcbiAgLy8gRFBJX0lzQ2FsY0Fzc2lzdGFuY2VFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDYWxjQXNzaXN0YW5jZUVuYWJsZWQgPSAnaXNDYWxjQXNzaXN0YW5jZUVuYWJsZWQnLFxyXG5cclxuICAvLyBEUElfVXNlU2Vjb25kYXJ5Q2FsYywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZVNlY29uZGFyeUNhbGMgPSAndXNlU2Vjb25kYXJ5Q2FsYycsXHJcblxyXG4gIC8vIERQSV9DYW5Mb2FkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuTG9hZCA9ICdjYW5Mb2FkJyxcclxuXHJcbiAgLy8gRFBJX0Rlc2NyaXB0aW9uT25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERlc2NyaXB0aW9uT25seSA9ICdkZXNjcmlwdGlvbk9ubHknLFxyXG5cclxuICAvLyBEUElfQXJlQWxpYXNlc1N1cHBvcnRlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFyZUFsaWFzZXNTdXBwb3J0ZWQgPSAnYXJlQWxpYXNlc1N1cHBvcnRlZCcsXHJcblxyXG4gIC8vIERQSV9BcmVSZWZDb2x1bW5zU3VwcG9ydGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXJlUmVmQ29sdW1uc1N1cHBvcnRlZCA9ICdhcmVSZWZDb2x1bW5zU3VwcG9ydGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzQWdncmVnYXRlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQWdncmVnYXRlZCA9ICdpc0FnZ3JlZ2F0ZWQnLFxyXG5cclxuICAvLyBEUElfSXNFeHBvcnRTdXBwb3J0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0V4cG9ydFN1cHBvcnRlZCA9ICdpc0V4cG9ydFN1cHBvcnRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc01lYXN1cmVOYW1lcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTWVhc3VyZU5hbWVzID0gJ2lzTWVhc3VyZU5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0lzU3VtbWFyeVN1cHBvcnRlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU3VtbWFyeVN1cHBvcnRlZCA9ICdpc1N1bW1hcnlTdXBwb3J0ZWQnLFxyXG5cclxuICAvLyBEUElfSXNUb3BOU3VwcG9ydGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUb3BOU3VwcG9ydGVkID0gJ2lzVG9wTlN1cHBvcnRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1VuZGVybHlpbmdTdXBwb3J0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1VuZGVybHlpbmdTdXBwb3J0ZWQgPSAnaXNVbmRlcmx5aW5nU3VwcG9ydGVkJyxcclxuXHJcbiAgLy8gRFBJX09ubHlFeHBvcnRTdW1tYXJ5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgT25seUV4cG9ydFN1bW1hcnkgPSAnb25seUV4cG9ydFN1bW1hcnknLFxyXG5cclxuICAvLyBEUElfU2hvd0FsbEZpZWxkcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dBbGxGaWVsZHMgPSAnc2hvd0FsbEZpZWxkcycsXHJcblxyXG4gIC8vIERQSV9Vc2VUYWJsZVB0cnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VUYWJsZVB0cnMgPSAndXNlVGFibGVQdHJzJyxcclxuXHJcbiAgLy8gRFBJX09ubHlGZXRjaFN1bW1hcnksIGhhdmluZyB0eXBlIGJvb2xcclxuICBPbmx5RmV0Y2hTdW1tYXJ5ID0gJ29ubHlGZXRjaFN1bW1hcnknLFxyXG5cclxuICAvLyBEUElfSXNEZXZpY2VMYXlvdXRDdXN0b21pemVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEZXZpY2VMYXlvdXRDdXN0b21pemVkID0gJ2lzRGV2aWNlTGF5b3V0Q3VzdG9taXplZCcsXHJcblxyXG4gIC8vIERQSV9Jc0RldmljZVNpemVDdXN0b21pemVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEZXZpY2VTaXplQ3VzdG9taXplZCA9ICdpc0RldmljZVNpemVDdXN0b21pemVkJyxcclxuXHJcbiAgLy8gRFBJX0lzRGV2aWNlU3VwcG9ydGVkQnlNb2JpbGVBcHAsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RldmljZVN1cHBvcnRlZEJ5TW9iaWxlQXBwID0gJ2lzRGV2aWNlU3VwcG9ydGVkQnlNb2JpbGVBcHAnLFxyXG5cclxuICAvLyBEUElfSXNQb3J0cmFpdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUG9ydHJhaXQgPSAnaXNQb3J0cmFpdCcsXHJcblxyXG4gIC8vIERQSV9Jc1BvcnRyYWl0QnlEZWZhdWx0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNQb3J0cmFpdEJ5RGVmYXVsdCA9ICdpc1BvcnRyYWl0QnlEZWZhdWx0JyxcclxuXHJcbiAgLy8gRFBJX0lzVXNlckN1c3RvbUZvcm1hdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVXNlckN1c3RvbUZvcm1hdCA9ICdpc1VzZXJDdXN0b21Gb3JtYXQnLFxyXG5cclxuICAvLyBEUElfU2hvdWxkRGlzcGxheVJlYnVpbGRFeHRyYWN0TWVzc2FnZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3VsZERpc3BsYXlSZWJ1aWxkRXh0cmFjdE1lc3NhZ2UgPSAnc2hvdWxkRGlzcGxheVJlYnVpbGRFeHRyYWN0TWVzc2FnZScsXHJcblxyXG4gIC8vIERQSV9TdXBwb3J0c0N1c3RvbVN0YXJ0T2ZXZWVrLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VwcG9ydHNDdXN0b21TdGFydE9mV2VlayA9ICdzdXBwb3J0c0N1c3RvbVN0YXJ0T2ZXZWVrJyxcclxuXHJcbiAgLy8gRFBJX05lZWRzQ29ubmVjdFByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE5lZWRzQ29ubmVjdFByb21wdCA9ICduZWVkc0Nvbm5lY3RQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfTmVlZHNDbG9zZURhdGFTb3VyY2VFcnJvclByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE5lZWRzQ2xvc2VEYXRhU291cmNlRXJyb3JQcm9tcHQgPSAnbmVlZHNDbG9zZURzRXJyb3JQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfQ2xlYXJDdXJyZW50U2VsZWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2xlYXJDdXJyZW50U2VsZWN0aW9uID0gJ2NsZWFyQ3VycmVudFNlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9IYXNDb250YWlucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0NvbnRhaW5zID0gJ2hhc0NvbnRhaW5zJyxcclxuXHJcbiAgLy8gRFBJX0hhc0VuZHNXaXRoLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzRW5kc1dpdGggPSAnaGFzRW5kc1dpdGgnLFxyXG5cclxuICAvLyBEUElfSGFzUmVwbGFjZVNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1JlcGxhY2VTZWxlY3Rpb24gPSAnaGFzUmVwbGFjZVNlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9IYXNTdGFydHNXaXRoLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzU3RhcnRzV2l0aCA9ICdoYXNTdGFydHNXaXRoJyxcclxuXHJcbiAgLy8gRFBJX0lzTGVhZlNlbGVjdGlvbk9ubHksIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0xlYWZTZWxlY3Rpb25Pbmx5ID0gJ2lzTGVhZlNlbGVjdGlvbk9ubHknLFxyXG5cclxuICAvLyBEUElfUmVwbGFjZVNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlcGxhY2VTZWxlY3Rpb24gPSAncmVwbGFjZVNlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9Jc0NvbG9yUGFsZXR0ZUN1c3RvbWl6ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0NvbG9yUGFsZXR0ZUN1c3RvbWl6ZWQgPSAnaXNDb2xvclBhbGV0dGVDdXN0b21pemVkJyxcclxuXHJcbiAgLy8gRFBJX1JldmVyc2VQYWxldHRlT3JkZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBSZXZlcnNlUGFsZXR0ZU9yZGVyID0gJ3JldmVyc2VQYWxldHRlT3JkZXInLFxyXG5cclxuICAvLyBEUElfVHJpZWRUb0Nvbm5lY3QsIGhhdmluZyB0eXBlIGJvb2xcclxuICBUcmllZFRvQ29ubmVjdCA9ICd0cmllZFRvQ29ubmVjdCcsXHJcblxyXG4gIC8vIERQSV9TY2FsZU1hcmtzSW5BeGlzVW5pdHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTY2FsZU1hcmtzSW5BeGlzVW5pdHMgPSAnc2NhbGVNYXJrc0luQXhpc1VuaXRzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dNYXJrU2l6aW5nT3B0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dNYXJrU2l6aW5nT3B0aW9ucyA9ICdzaG93TWFya1NpemluZ09wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfVXNlU2l6ZUZpZWxkQ2FwdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZVNpemVGaWVsZENhcHRpb24gPSAndXNlU2l6ZUZpZWxkQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Jc0xpY2Vuc2VkQW5kUmVnaXN0ZXJlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTGljZW5zZWRBbmRSZWdpc3RlcmVkID0gJ2lzTGljZW5zZWRBbmRSZWdpc3RlcmVkJyxcclxuXHJcbiAgLy8gRFBJX1NldE5ld0RhdGFzb3VyY2VBY3RpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTZXROZXdEYXRhc291cmNlQWN0aXZlID0gJ3NldE5ld0RhdGFzb3VyY2VBY3RpdmUnLFxyXG5cclxuICAvLyBEUElfQWxsb3dDdXN0b21MYWJlbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbG93Q3VzdG9tTGFiZWwgPSAnYWxsb3dDdXN0b21MYWJlbCcsXHJcblxyXG4gIC8vIERQSV9Jc01vc3RSZWNlbnRNb2RlVmFsaWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc01vc3RSZWNlbnRNb2RlVmFsaWQgPSAnaXNNb3N0UmVjZW50TW9kZVZhbGlkJyxcclxuXHJcbiAgLy8gRFBJX011c3RTaG93TGFiZWxzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTXVzdFNob3dMYWJlbHMgPSAnbXVzdFNob3dMYWJlbHMnLFxyXG5cclxuICAvLyBEUElfU2hvd1J1bm5pbmdPcmRlckxhYmVscywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dSdW5uaW5nT3JkZXJMYWJlbHMgPSAnc2hvd1J1bm5pbmdPcmRlckxhYmVscycsXHJcblxyXG4gIC8vIERQSV9Jc0Ryb3BwZWRGaWxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEcm9wcGVkRmlsZSA9ICdpc0Ryb3BwZWRGaWxlJyxcclxuXHJcbiAgLy8gRFBJX0lzSW5pdGlhbGl6ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0luaXRpYWxpemVkID0gJ2lzSW5pdGlhbGl6ZWQnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZURhc2hib2FyZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVEYXNoYm9hcmQgPSAnaW5jbHVkZURhc2hib2FyZCcsXHJcblxyXG4gIC8vIERQSV9DaGlsZHJlbkNhblJlc2l6ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENoaWxkcmVuQ2FuUmVzaXplID0gJ2NoaWxkcmVuQ2FuUmVzaXplJyxcclxuXHJcbiAgLy8gRFBJX0Jvb2xNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgYm9vbClcclxuICBCb29sTWFwID0gJ2Jvb2xNYXAnLFxyXG5cclxuICAvLyBEUElfQ2hlY2tlZE1lbnVJdGVtcywgaGF2aW5nIHR5cGUgYm9vbFtdXHJcbiAgQ2hlY2tlZE1lbnVJdGVtcyA9ICdjaGVja2VkTWVudUl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVkU2hlZXRWYWx1ZXMsIGhhdmluZyB0eXBlIGJvb2xbXVxyXG4gIEluY2x1ZGVkU2hlZXRWYWx1ZXMgPSAnaW5jbHVkZWRTaGVldFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9Tb3J0T3JkZXJWZWN0b3IsIGhhdmluZyB0eXBlIGJvb2xbXVxyXG4gIFNvcnRPcmRlclZlY3RvciA9ICdzb3J0T3JkZXJWZWN0b3InLFxyXG5cclxuICAvLyBEUElfQWN0aW9uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWN0aW9uTmFtZSA9ICdhY3Rpb25OYW1lJyxcclxuXHJcbiAgLy8gRFBJX0FjdGlvblNvdXJjZVRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFjdGlvblNvdXJjZVRleHQgPSAnYWN0aW9uU291cmNlVGV4dCcsXHJcblxyXG4gIC8vIERQSV9BY3Rpb25UeXBlQXNTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFjdGlvblR5cGVBc1N0cmluZyA9ICdhY3Rpb25UeXBlQXNTdHJpbmcnLFxyXG5cclxuICAvLyBEUElfQWN0aXZlVGFiLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBY3RpdmVUYWIgPSAnYWN0aXZlX3RhYicsXHJcblxyXG4gIC8vIERQSV9BZGRJbkZlYXR1cmVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBZGRJbkZlYXR1cmVOYW1lID0gJ2FkZEluRmVhdHVyZU5hbWUnLFxyXG5cclxuICAvLyBEUElfQWRkSW5JZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWRkSW5JZCA9ICdhZGRJbklkJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluc3RhbmNlSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFkZEluc3RhbmNlSWQgPSAnYWRkSW5JbnN0YW5jZUlkJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWRkSW5OYW1lID0gJ2FkZEluTmFtZScsXHJcblxyXG4gIC8vIERQSV9BZGRJbkxvY2FsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWRkSW5Mb2NhbGUgPSAnYWRkSW5Mb2NhbGUnLFxyXG5cclxuICAvLyBEUElfQWRkSW5MYW5ndWFnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWRkSW5MYW5ndWFnZSA9ICdhZGRJbkxhbmd1YWdlJyxcclxuXHJcbiAgLy8gRFBJX0FQSVZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFQSVZlcnNpb24gPSAnYXBpVmVyc2lvbicsXHJcblxyXG4gIC8vIERQSV9BbGlhcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWxpYXMgPSAnYWxpYXMnLFxyXG5cclxuICAvLyBEUElfQW5jaG9yRGF0ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQW5jaG9yRGF0ZSA9ICdhbmNob3JEYXRlJyxcclxuXHJcbiAgLy8gRFBJX0Fubm90YXRpb25SZXMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFubm90YXRpb25SZXMgPSAnYW5ub3RhdGlvblJlcycsXHJcblxyXG4gIC8vIERQSV9SZWFkSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlYWRJZCA9ICdyZWFkSWQnLFxyXG5cclxuICAvLyBEUElfQW5ub3RhdGlvblRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFubm90YXRpb25UZXh0ID0gJ2Fubm90YXRpb25UZXh0JyxcclxuXHJcbiAgLy8gRFBJX0FyY2hpdmVEaXJlY3RvcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFyY2hpdmVEaXJlY3RvcnkgPSAnYXJjaGl2ZURpcmVjdG9yeScsXHJcblxyXG4gIC8vIERQSV9BcmNoaXZlRnVsbFBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFyY2hpdmVGdWxsUGF0aCA9ICdhcmNoaXZlRnVsbFBhdGgnLFxyXG5cclxuICAvLyBEUElfQXRUaGVMZXZlbEludmFsaWRGaWVsZENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0VGhlTGV2ZWxJbnZhbGlkRmllbGRDYXB0aW9uID0gJ2F0VGhlTGV2ZWxJbnZhbGlkRmllbGRDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0F1dG9Db21wbGV0ZVN1YnN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXV0b0NvbXBsZXRlU3Vic3RyaW5nID0gJ2FjU3Vic3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX0F1dG9zYXZlRmlsZUlkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdXRvc2F2ZUZpbGVJZCA9ICdhdXRvc2F2ZUZpbGVJZCcsXHJcblxyXG4gIC8vIERQSV9BdXRvc2F2ZVRpbWVySW50ZXJ2YWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF1dG9zYXZlVGltZXJJbnRlcnZhbCA9ICdhdXRvc2F2ZVRpbWVySW50ZXJ2YWwnLFxyXG5cclxuICAvLyBEUElfQmFzZUNvbHVtbkNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJhc2VDb2x1bW5DYXB0aW9uID0gJ2Jhc2VDb2x1bW5DYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0J1dHRvbk9iamVjdENsaWNrQWN0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBCdXR0b25PYmplY3RDbGlja0FjdGlvbiA9ICdidXR0b25PYmplY3RDbGlja0FjdGlvbicsXHJcblxyXG4gIC8vIERQSV9CdXR0b25PYmplY3RJbWFnZVBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJ1dHRvbk9iamVjdEltYWdlUGF0aCA9ICdidXR0b25PYmplY3RJbWFnZVBhdGgnLFxyXG5cclxuICAvLyBEUElfQ2xlYXJCdXR0b25UZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDbGVhckJ1dHRvblRleHQgPSAnY2xlYXJCdXR0b25UZXh0JyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yUGFsZXR0ZUlkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb2xvclBhbGV0dGVJZCA9ICdjb2xvclBhbGV0dGVJZCcsXHJcblxyXG4gIC8vIERQSV9Db2xvclBhbGV0dGVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb2xvclBhbGV0dGVOYW1lID0gJ2NvbG9yUGFsZXR0ZU5hbWUnLFxyXG5cclxuICAvLyBEUElfQ29sb3JTd2F0Y2gsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENvbG9yU3dhdGNoID0gJ2NvbG9yU3dhdGNoJyxcclxuXHJcbiAgLy8gRFBJX0NvbW1hbmROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb21tYW5kTmFtZSA9ICdjb21tYW5kTmFtZScsXHJcblxyXG4gIC8vIERQSV9Db25maWRlbmNlTGV2ZWxWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29uZmlkZW5jZUxldmVsVmFsdWUgPSAnY29uZmlkZW5jZUxldmVsVmFsdWUnLFxyXG5cclxuICAvLyBEUElfQ291bnREaXN0aW5jdFN0ciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ291bnREaXN0aW5jdFN0ciA9ICdjb3VudERpc3RpbmN0U3RyJyxcclxuXHJcbiAgLy8gRFBJX0Nyb3NzVGFiRmlsZXBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENyb3NzVGFiRmlsZXBhdGggPSAnY3Jvc3NUYWJGaWxlcGF0aCcsXHJcblxyXG4gIC8vIERQSV9DU1NNYXJnaW4sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENTU01hcmdpbiA9ICdjc3NNYXJnaW4nLFxyXG5cclxuICAvLyBEUElfQ1NTV2hpdGVzcGFjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ1NTV2hpdGVzcGFjZSA9ICdjc3NXaGl0ZXNwYWNlJyxcclxuXHJcbiAgLy8gRFBJX0RCUGFzc3dvcmQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERCUGFzc3dvcmQgPSAnZGJQYXNzd29yZCcsXHJcblxyXG4gIC8vIERQSV9EQlVzZXJuYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEQlVzZXJuYW1lID0gJ2RiVXNlcm5hbWUnLFxyXG5cclxuICAvLyBEUElfRGF0YUFsZXJ0Q29uZGl0aW9uVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0YUFsZXJ0Q29uZGl0aW9uVGV4dCA9ICdkYXRhQWxlcnRDb25kaXRpb25UZXh0JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFBbGVydE1lYXN1cmVUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhQWxlcnRNZWFzdXJlVGV4dCA9ICdkYXRhQWxlcnRNZWFzdXJlVGV4dCcsXHJcblxyXG4gIC8vIERQSV9EYXRhQWxlcnRTcGVjU2VyaWFsaXplZFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFBbGVydFNwZWNTZXJpYWxpemVkVGV4dCA9ICdkYXRhQWxlcnRTcGVjU2VyaWFsaXplZFRleHQnLFxyXG5cclxuICAvLyBEUElfRGF0YUFsZXJ0RGVmYXVsdFN1YmplY3QsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFBbGVydERlZmF1bHRTdWJqZWN0ID0gJ2RhdGFBbGVydERlZmF1bHRTdWJqZWN0JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFBbGVydFRocmVzaG9sZFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFBbGVydFRocmVzaG9sZFRleHQgPSAnZGF0YUFsZXJ0VGhyZXNob2xkVGV4dCcsXHJcblxyXG4gIC8vIERQSV9EYXRhR3JpZFNvcnRDb2x1bW5OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhR3JpZFNvcnRDb2x1bW5OYW1lID0gJ2RhdGFncmlkU29ydENvbHVtbk5hbWUnLFxyXG5cclxuICAvLyBEUElfRGF0YVNlcnZlckNvbm5lY3Rpb25FcnJvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0YVNlcnZlckNvbm5lY3Rpb25FcnJvciA9ICdkYXRhU2VydmVyQ29ubmVjdGlvbkVycm9yJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFiYXNlRmlsdGVyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhYmFzZUZpbHRlciA9ICdkYXRhYmFzZUZpbHRlcicsXHJcblxyXG4gIC8vIERQSV9EYXRhYmFzZUZpbHRlclByb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0YWJhc2VGaWx0ZXJQcm9tcHQgPSAnZGF0YWJhc2VGaWx0ZXJQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZVJhbmtpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VSYW5raW5nID0gJ2RhdGFzb3VyY2VSYW5raW5nJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFzb3VyY2VVcmwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VVcmwgPSAnZGF0YXNvdXJjZVVybCcsXHJcblxyXG4gIC8vIERQSV9EYXRhc291cmNlVXNlcm5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VVc2VybmFtZSA9ICdkYXRhc291cmNlVXNlcm5hbWUnLFxyXG5cclxuICAvLyBEUElfRGF0ZUZvcm1hdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0ZUZvcm1hdCA9ICdkYXRlRm9ybWF0JyxcclxuXHJcbiAgLy8gRFBJX0RhdGVQYXJ0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRlUGFydCA9ICdkYXRlUGFydCcsXHJcblxyXG4gIC8vIERQSV9EYXRlUGFydEFiYnJldiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0ZVBhcnRBYmJyZXYgPSAnZGF0ZVBhcnRBYmJyZXYnLFxyXG5cclxuICAvLyBEUElfRGVmYXVsdEhpZXJhcmNoeU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERlZmF1bHRIaWVyYXJjaHlOYW1lID0gJ2RlZmF1bHRIaWVyYXJjaHlOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0RlZmF1bHRNZW51SXRlbUtleSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGVmYXVsdE1lbnVJdGVtS2V5ID0gJ2RlZmF1bHRNZW51SXRlbUtleScsXHJcblxyXG4gIC8vIERQSV9EZWxpbWl0ZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERlbGltaXRlciA9ICdkZWxpbWl0ZXInLFxyXG5cclxuICAvLyBEUElfRGV2aWNlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGV2aWNlTmFtZSA9ICdkZXZpY2VOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0RldmljZVR5cGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERldmljZVR5cGUgPSAnZGV2aWNlVHlwZScsXHJcblxyXG4gIC8vIERQSV9EaXNwbGF5UGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGlzcGxheVBhdGggPSAnZGlzcGxheVBhdGgnLFxyXG5cclxuICAvLyBEUElfRGlzdHJpYnV0aW9uVmFsdWVTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERpc3RyaWJ1dGlvblZhbHVlU3RyaW5nID0gJ2Rpc3RyaWJ1dGlvblZhbHVlU3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX0RyaWxsUGF0aE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERyaWxsUGF0aE5hbWUgPSAnZHJpbGxQYXRoTmFtZScsXHJcblxyXG4gIC8vIERQSV9FbWJlZGRlZFRpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFbWJlZGRlZFRpdGxlID0gJ2VtYmVkZGVkVGl0bGUnLFxyXG5cclxuICAvLyBEUElfRW50ZXJWYWx1ZVRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEVudGVyVmFsdWVUZXh0ID0gJ2VudGVyVmFsdWVUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0VzY2FwZVN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXNjYXBlU3RyaW5nID0gJ2VzY2FwZVN0cmluZycsXHJcblxyXG4gIC8vIERQSV9FeHRTdmNDb25maWdIb3N0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeHRTdmNDb25maWdIb3N0ID0gJ2V4dFN2Y0NvbmZpZ0hvc3QnLFxyXG5cclxuICAvLyBEUElfRXh0U3ZjQ29uZmlnUGFzc3dvcmQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dFN2Y0NvbmZpZ1Bhc3N3b3JkID0gJ2V4dFN2Y0NvbmZpZ1Bhc3N3b3JkJyxcclxuXHJcbiAgLy8gRFBJX0V4dFN2Y0NvbmZpZ1BvcnQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dFN2Y0NvbmZpZ1BvcnQgPSAnZXh0U3ZjQ29uZmlnUG9ydCcsXHJcblxyXG4gIC8vIERQSV9FeHRTdmNDb25maWdDb25uZWN0VGltZW91dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXh0U3ZjQ29uZmlnQ29ubmVjdFRpbWVvdXQgPSAnZXh0U3ZjQ29ubmVjdFRpbWVvdXQnLFxyXG5cclxuICAvLyBEUElfRXh0U3ZjQ29uZmlnUHJldkhvc3QsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dFN2Y0NvbmZpZ1ByZXZIb3N0ID0gJ2V4dFN2Y0NvbmZpZ1ByZXZIb3N0JyxcclxuXHJcbiAgLy8gRFBJX0V4dFN2Y0NvbmZpZ1VzZXJuYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeHRTdmNDb25maWdVc2VybmFtZSA9ICdleHRTdmNDb25maWdVc2VybmFtZScsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0VXBkYXRlVGltZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXh0cmFjdFVwZGF0ZVRpbWUgPSAnZXh0cmFjdFVwZGF0ZVRpbWUnLFxyXG5cclxuICAvLyBEUElfRmllbGRGb2xkZXJOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWVsZEZvbGRlck5hbWUgPSAnZmllbGRGb2xkZXJOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkTmFtZVN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmllbGROYW1lU3RyaW5nID0gJ2ZpZWxkTmFtZScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJTZWFyY2hEb21haW4sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpbHRlclNlYXJjaERvbWFpbiA9ICdmaWx0ZXJTZWFyY2hEb21haW4nLFxyXG5cclxuICAvLyBEUElfRmlsdGVyU3BlYywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmlsdGVyU3BlYyA9ICdmaWx0ZXJTcGVjJyxcclxuXHJcbiAgLy8gRFBJX0ZpcnN0VmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpcnN0VmFsdWUgPSAnZmlyc3RWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Gb2xkZXJOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb2xkZXJOYW1lID0gJ2ZvbGRlck5hbWUnLFxyXG5cclxuICAvLyBEUElfRm9udE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvbnROYW1lID0gJ2ZvbnROYW1lJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdFN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRm9ybWF0U3RyaW5nID0gJ2Zvcm1hdFN0cmluZycsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXR0ZWREaXNwbGF5U3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb3JtYXR0ZWREaXNwbGF5U3RyaW5nID0gJ2Zvcm1hdHRlZERpc3BsYXlTdHJpbmcnLFxyXG5cclxuICAvLyBEUElfRm9ybWF0dGVkSW5jcmVtZW50VmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcm1hdHRlZEluY3JlbWVudFZhbHVlID0gJ2Zvcm1hdHRlZEluY3JlbWVudCcsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXR0ZWRNYXhWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRm9ybWF0dGVkTWF4VmFsdWUgPSAnZm9ybWF0dGVkTWF4JyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdHRlZE1pblZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb3JtYXR0ZWRNaW5WYWx1ZSA9ICdmb3JtYXR0ZWRNaW4nLFxyXG5cclxuICAvLyBEUElfRm9ybWF0dGVkVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcm1hdHRlZFZhbHVlID0gJ2Zvcm1hdHRlZFZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdHRlZENlbnRlclZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb3JtYXR0ZWRDZW50ZXJWYWx1ZSA9ICdmb3JtYXR0ZWRDZW50ZXInLFxyXG5cclxuICAvLyBEUElfRm9ybWF0dGVkRW5kVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcm1hdHRlZEVuZFZhbHVlID0gJ2Zvcm1hdHRlZEVuZCcsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXR0ZWRTdGFydFZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb3JtYXR0ZWRTdGFydFZhbHVlID0gJ2Zvcm1hdHRlZFN0YXJ0JyxcclxuXHJcbiAgLy8gRFBJX1BhaXJlZEZvcm1hdHRlZFZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYWlyZWRGb3JtYXR0ZWRWYWx1ZSA9ICdwYWlyZWRGb3JtYXR0ZWRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9GcmFtZUF0dHJpYnV0ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZyYW1lQXR0cmlidXRlcyA9ICdmcmFtZUF0dHInLFxyXG5cclxuICAvLyBEUElfR1VJRCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR1VJRCA9ICdndWlkJyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVEaXNwbGF5TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZURpc3BsYXlOYW1lID0gJ2dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVEaXNwbGF5TmFtZScsXHJcblxyXG4gIC8vIERQSV9HZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlUGFyZW50TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZVBhcmVudE5hbWUgPSAnZ2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZVBhcmVudE5hbWUnLFxyXG5cclxuICAvLyBEUElfR2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZVR5cGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVUeXBlID0gJ2dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hMb2NhbGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdlb2dyYXBoaWNTZWFyY2hMb2NhbGUgPSAnZ2VvZ3JhcGhpY1NlYXJjaExvY2FsZScsXHJcblxyXG4gIC8vIERQSV9HZW9ncmFwaGljU2VhcmNoUXVlcnlTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdlb2dyYXBoaWNTZWFyY2hRdWVyeVN0cmluZyA9ICdnZW9ncmFwaGljU2VhcmNoU2VhcmNoU3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hVSUxvY2FsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR2VvZ3JhcGhpY1NlYXJjaFVJTG9jYWxlID0gJ2dlb2dyYXBoaWNTZWFyY2hVaWxvY2FsZScsXHJcblxyXG4gIC8vIERQSV9JY29uUmVzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJY29uUmVzID0gJ2ljb25SZXMnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VIYXNoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJbWFnZUhhc2ggPSAnaW1hZ2VIYXNoJyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW1hZ2VOYW1lID0gJ2ltYWdlTmFtZScsXHJcblxyXG4gIC8vIERQSV9JbWFnZVJlcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW1hZ2VSZXMgPSAnaW1hZ2VSZXMnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZXNTaWJsaW5nc1Byb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW5jbHVkZXNTaWJsaW5nc1Byb21wdCA9ICdpbmNsdWRlc1NpYmxpbmdzUHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVzU3ViZm9sZGVyc1Byb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW5jbHVkZXNTdWJmb2xkZXJzUHJvbXB0ID0gJ2luY2x1ZGVzU3ViZm9sZGVyc1Byb21wdCcsXHJcblxyXG4gIC8vIERQSV9JbmNyZW1lbnRhbFNjaGVkdWxlSURzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJbmNyZW1lbnRhbFNjaGVkdWxlSURzID0gJ2luY3JlbWVudGFsU2NoZWR1bGVJZHMnLFxyXG5cclxuICAvLyBEUElfSW52YXJpYW50S2V5d29yZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW52YXJpYW50S2V5d29yZCA9ICdpbnZhcmlhbnRLZXl3b3JkJyxcclxuXHJcbiAgLy8gRFBJX0pvaW5PcGVyYXRvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSm9pbk9wZXJhdG9yID0gJ2pvaW5PcGVyYXRvcicsXHJcblxyXG4gIC8vIERQSV9Kb2luRXhwcmVzc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSm9pbkV4cHJlc3Npb24gPSAnam9pbkV4cHJlc3Npb24nLFxyXG5cclxuICAvLyBEUElfS2V5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBLZXkgPSAna2V5SWQnLFxyXG5cclxuICAvLyBEUElfTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExhYmVsID0gJ2xhYmVsJyxcclxuXHJcbiAgLy8gRFBJX1BhaXJlZExhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYWlyZWRMYWJlbCA9ICdwYWlyZWRMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9MYXlvdXRJRCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTGF5b3V0SUQgPSAnbGF5b3V0SWQnLFxyXG5cclxuICAvLyBEUElfTGVmdEpvaW5FeHByZXNzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMZWZ0Sm9pbkV4cHJlc3Npb24gPSAnbGVmdEpvaW5FeHByZXNzaW9uJyxcclxuXHJcbiAgLy8gRFBJX0xpbWl0Q291bnRFeHByZXNzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMaW1pdENvdW50RXhwcmVzc2lvbiA9ICdsaW1pdENvdW50RXhwcmVzc2lvbicsXHJcblxyXG4gIC8vIERQSV9MaW5rVGFyZ2V0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMaW5rVGFyZ2V0ID0gJ2xpbmtUYXJnZXQnLFxyXG5cclxuICAvLyBEUElfTG9jYWxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMb2NhbGUgPSAnbG9jYWxlJyxcclxuXHJcbiAgLy8gRFBJX0xvY2FsaXplZEtleXdvcmQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExvY2FsaXplZEtleXdvcmQgPSAnbG9jYWxpemVkS2V5d29yZCcsXHJcblxyXG4gIC8vIERQSV9NYXBCb3hHTFN0eWxlSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcEJveEdMU3R5bGVJZCA9ICdtYXBib3hHbFN0eWxlSWQnLFxyXG5cclxuICAvLyBEUElfTWFwQm94U3R5bGVVcmwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcEJveFN0eWxlVXJsID0gJ21hcGJveFN0eWxlVXJsJyxcclxuXHJcbiAgLy8gRFBJX01hcEJveFVzZXJuYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBCb3hVc2VybmFtZSA9ICdtYXBib3hVc2VybmFtZScsXHJcblxyXG4gIC8vIERQSV9NYXBTY2FsZVJlYWRvdXRTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcFNjYWxlUmVhZG91dFN0cmluZyA9ICdtYXBTY2FsZVJlYWRvdXRTdHJpbmcnLFxyXG5cclxuICAvLyBEUElfTWFwU2NhbGVUb29sdGlwU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBTY2FsZVRvb2x0aXBTdHJpbmcgPSAnbWFwU2NhbGVUb29sdGlwU3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX01hcFNvdXJjZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcFNvdXJjZU5hbWUgPSAnbWFwU291cmNlTmFtZScsXHJcblxyXG4gIC8vIERQSV9NYXhMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWF4TGFiZWwgPSAnbWF4TGFiZWwnLFxyXG5cclxuICAvLyBEUElfTWluTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1pbkxhYmVsID0gJ21pbkxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX01vZGVsRGVzY3JpcHRpb25QYXJhZ3JhcGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1vZGVsRGVzY3JpcHRpb25QYXJhZ3JhcGggPSAnbW9kZWxEZXNjcmlwdGlvblBhcmFncmFwaCcsXHJcblxyXG4gIC8vIERQSV9OYW1lVGVtcGxhdGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE5hbWVUZW1wbGF0ZSA9ICduYW1lVGVtcGxhdGUnLFxyXG5cclxuICAvLyBEUElfTmV3RHJpbGxQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBOZXdEcmlsbFBhdGggPSAnbmV3RHJpbGxQYXRoJyxcclxuXHJcbiAgLy8gRFBJX05ld0ZpZWxkRm9sZGVyTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTmV3RmllbGRGb2xkZXJOYW1lID0gJ25ld0ZpZWxkRm9sZGVyTmFtZScsXHJcblxyXG4gIC8vIERQSV9OZXdUYWJsZUFsaWFzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBOZXdUYWJsZUFsaWFzID0gJ25ld1RhYmxlQWxpYXMnLFxyXG5cclxuICAvLyBEUElfTm9uRm9ybWF0dGVkVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE5vbkZvcm1hdHRlZFZhbHVlID0gJ3VuZm9ybWF0dGVkVmFsdWUnLFxyXG5cclxuICAvLyBEUElfT0F1dGhVc2VyTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgT0F1dGhVc2VyTmFtZSA9ICdvYXV0aFVzZXJuYW1lJyxcclxuXHJcbiAgLy8gRFBJX09iamVjdE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE9iamVjdE5hbWUgPSAnb2JqZWN0TmFtZScsXHJcblxyXG4gIC8vIERQSV9PYmplY3RPdmVycmlkZU1lc3NhZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE9iamVjdE92ZXJyaWRlTWVzc2FnZSA9ICdvYmplY3RPdmVycmlkZU1lc3NhZ2UnLFxyXG5cclxuICAvLyBEUElfT2xkVGFibGVBbGlhcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgT2xkVGFibGVBbGlhcyA9ICdvbGRUYWJsZUFsaWFzJyxcclxuXHJcbiAgLy8gRFBJX09wZXJhdGluZ1N5c3RlbSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgT3BlcmF0aW5nU3lzdGVtID0gJ29wZXJhdGluZ1N5c3RlbScsXHJcblxyXG4gIC8vIERQSV9PcmlnaW5hbEZpbGVQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBPcmlnaW5hbEZpbGVQYXRoID0gJ29yaWdpbmFsRmlsZVBhdGgnLFxyXG5cclxuICAvLyBEUElfT3JpZ2luYWxGaWxlVmVyc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgT3JpZ2luYWxGaWxlVmVyc2lvbiA9ICdvcmlnaW5hbEZpbGVWZXJzaW9uJyxcclxuXHJcbiAgLy8gRFBJX1BhbmVEZXNjcmlwdG9yS2V5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYW5lRGVzY3JpcHRvcktleSA9ICdwYW5lRGVzY3JLZXknLFxyXG5cclxuICAvLyBEUElfUGFyZW50TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGFyZW50TmFtZSA9ICdwYXJlbnROYW1lJyxcclxuXHJcbiAgLy8gRFBJX1BhcmVudFRhYmxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYXJlbnRUYWJsZSA9ICdwYXJlbnRUYWJsZScsXHJcblxyXG4gIC8vIERQSV9QYXR0ZXJuRmlsdGVyU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYXR0ZXJuRmlsdGVyU3RyaW5nID0gJ3BhdHRlcm5GaWx0ZXJTdHJpbmcnLFxyXG5cclxuICAvLyBEUElfUGVuZGluZ0NhbGNOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQZW5kaW5nQ2FsY05hbWUgPSAncGVuZGluZ0NhbGNOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1BlcmNlbnRpbGVzU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQZXJjZW50aWxlc1N0cmluZyA9ICdwZXJjZW50aWxlc1N0cmluZycsXHJcblxyXG4gIC8vIERQSV9Qcm9qZWN0TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUHJvamVjdE5hbWUgPSAncHJvamVjdE5hbWUnLFxyXG5cclxuICAvLyBEUElfUHJvcGVydHlOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQcm9wZXJ0eU5hbWUgPSAncHJvcGVydHlOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1F1aWNrRmlsdGVyVGl0bGVDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBRdWlja0ZpbHRlclRpdGxlQ2FwdGlvbiA9ICdxdWlja0ZpbHRlclRpdGxlQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9SYW5nZURpZmZTdHIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJhbmdlRGlmZlN0ciA9ICdkaWZmVmFsdWUnLFxyXG5cclxuICAvLyBEUElfUmFuZ2VNYXhTdHIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJhbmdlTWF4U3RyID0gJ21heFZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1JhbmdlTWluU3RyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSYW5nZU1pblN0ciA9ICdtaW5WYWx1ZScsXHJcblxyXG4gIC8vIERQSV9SZWNvdmVyZWRGaWxlUGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmVjb3ZlcmVkRmlsZVBhdGggPSAncmVjb3ZlcmVkRmlsZVBhdGgnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlTGluZVNwZWNpZmljYXRpb25JZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmVmZXJlbmNlTGluZVNwZWNpZmljYXRpb25JZCA9ICdyZWZlcmVuY2VMaW5lSWQnLFxyXG5cclxuICAvLyBEUElfUmVwbGFjZUZpZWxkUHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSZXBsYWNlRmllbGRQcm9tcHQgPSAncmVwbGFjZUZpZWxkUHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX1JpZ2h0Sm9pbkV4cHJlc3Npb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJpZ2h0Sm9pbkV4cHJlc3Npb24gPSAncmlnaHRKb2luRXhwcmVzc2lvbicsXHJcblxyXG4gIC8vIERQSV9Sb290UGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUm9vdFBhdGggPSAncm9vdFBhdGgnLFxyXG5cclxuICAvLyBEUElfUnVudGltZUZpbmFsRGF0YXN0b3JlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSdW50aW1lRmluYWxEYXRhc3RvcmUgPSAncnVudGltZUZpbmFsRGF0YXN0b3JlJyxcclxuXHJcbiAgLy8gRFBJX1J1bnRpbWVJbml0aWFsRGF0YXN0b3JlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSdW50aW1lSW5pdGlhbERhdGFzdG9yZSA9ICdydW50aW1lSW5pdGlhbERhdGFzdG9yZScsXHJcblxyXG4gIC8vIERQSV9SdW50aW1lVlRMLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSdW50aW1lVlRMID0gJ3J1bnRpbWVWdGwnLFxyXG5cclxuICAvLyBEUElfU2FtcGxlRGF0YVN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2FtcGxlRGF0YVN0cmluZyA9ICdzYW1wbGVEYXRhJyxcclxuXHJcbiAgLy8gRFBJX1NjaGVkdWxlSURzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTY2hlZHVsZUlEcyA9ICdzY2hlZHVsZUlkcycsXHJcblxyXG4gIC8vIERQSV9TY2hlbWFGaWVsZEljb25SZXNvdXJjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2NoZW1hRmllbGRJY29uUmVzb3VyY2UgPSAnZmllbGRJY29uUmVzJyxcclxuXHJcbiAgLy8gRFBJX1NjcmVlbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNjcmVlbk5hbWUgPSAnc2NyZWVuTmFtZScsXHJcblxyXG4gIC8vIERQSV9TY3JpcHRDb21tYW5kLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTY3JpcHRDb21tYW5kID0gJ2NvbW1hbmQnLFxyXG5cclxuICAvLyBEUElfU2Vjb25kVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlY29uZFZhbHVlID0gJ3NlY29uZFZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlbGVjdGVkVmFsdWUgPSAnc2VsZWN0ZWRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9TaGFwZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNoYXBlTmFtZSA9ICdzaGFwZU5hbWUnLFxyXG5cclxuICAvLyBEUElfU2hlZXRJZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2hlZXRJZCA9ICdzaGVldElkJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dEYXRhVGFibGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNob3dEYXRhVGFibGUgPSAnc2hvd0RhdGFUYWJsZScsXHJcblxyXG4gIC8vIERQSV9TaW1wbGVDb21tYW5kLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTaW1wbGVDb21tYW5kID0gJ3NpbXBsZUNvbW1hbmQnLFxyXG5cclxuICAvLyBEUElfU29ydE1vZGVDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTb3J0TW9kZUNhcHRpb24gPSAnc29ydE1vZGVDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1NvdXJjZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNvdXJjZU5hbWUgPSAnc291cmNlTmFtZScsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTb3VyY2VUZXh0ID0gJ3NvdXJjZVRleHQnLFxyXG5cclxuICAvLyBEUElfU3BlY2lhbFZhbHVlVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3BlY2lhbFZhbHVlVGV4dCA9ICdzcGVjaWFsVmFsdWVUZXh0JyxcclxuXHJcbiAgLy8gRFBJX1N0YXRpY0ltYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdGF0aWNJbWFnZSA9ICdzdGF0aWNJbWFnZScsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBvaW50QmFzZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3RvcnlQb2ludEJhc2UgPSAnc3RvcnlQb2ludEJhc2UnLFxyXG5cclxuICAvLyBEUElfU3RvcnlQb2ludENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN0b3J5UG9pbnRDYXB0aW9uID0gJ3N0b3J5UG9pbnRDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1N0b3J5Ym9hcmQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN0b3J5Ym9hcmQgPSAnc3Rvcnlib2FyZCcsXHJcblxyXG4gIC8vIERQSV9TdHlsZWRMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3R5bGVkTGFiZWwgPSAnc3R5bGVkTGFiZWwnLFxyXG5cclxuICAvLyBEUElfU3VtbWFyeUNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN1bW1hcnlDYXB0aW9uID0gJ3N1bW1hcnlDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1N1bW1hcnlGaWVsZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUZpZWxkID0gJ3N1bW1hcnlGaWVsZCcsXHJcblxyXG4gIC8vIERQSV9UYWJsZWF1VmVyc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVhdVZlcnNpb24gPSAndGFibGVhdVZlcnNpb24nLFxyXG5cclxuICAvLyBEUElfVGFibGVGaWx0ZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlRmlsdGVyID0gJ3RhYmxlRmlsdGVyJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlRmlsdGVyUHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZUZpbHRlclByb21wdCA9ICd0YWJsZUZpbHRlclByb21wdCcsXHJcblxyXG4gIC8vIERQSV9UYWdzTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhZ3NMYWJlbCA9ICd0YWdzTGFiZWwnLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYXJnZXQgPSAndGFyZ2V0JyxcclxuXHJcbiAgLy8gRFBJX1RodW1ibmFpbEdyb3VwLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUaHVtYm5haWxHcm91cCA9ICd0aHVtYm5haWxHcm91cCcsXHJcblxyXG4gIC8vIERQSV9UaHVtYm5haWxVc2VyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUaHVtYm5haWxVc2VyID0gJ3RodW1ibmFpbFVzZXInLFxyXG5cclxuICAvLyBEUElfVGltZUZvcm1hdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGltZUZvcm1hdCA9ICd0aW1lRm9ybWF0JyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZUVycm9yU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUcmVuZExpbmVFcnJvclN0cmluZyA9ICd0cmVuZExpbmVFcnJvclN0cmluZycsXHJcblxyXG4gIC8vIERQSV9UcmVuZExpbmVNb2RlbEZvcm11bGEsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRyZW5kTGluZU1vZGVsRm9ybXVsYSA9ICd0cmVuZExpbmVNb2RlbEZvcm11bGEnLFxyXG5cclxuICAvLyBEUElfVVJMU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBVUkxTdHJpbmcgPSAndXJsU3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX1VSTFRlc3QsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVSTFRlc3QgPSAndXJsVGVzdCcsXHJcblxyXG4gIC8vIERQSV9WYWxpZGF0aW9uTWVzc2FnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVmFsaWRhdGlvbk1lc3NhZ2UgPSAndmFsaWRhdGlvbk1lc3NhZ2UnLFxyXG5cclxuICAvLyBEUElfVmFsdWVTdHIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFZhbHVlU3RyID0gJ3ZhbHVlU3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX1ZlcmlmaWVkTm9uRm9ybWF0dGVkVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFZlcmlmaWVkTm9uRm9ybWF0dGVkVmFsdWUgPSAndmVyaWZpZWRVbmZvcm1hdHRlZFZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1dvcmtib29rRnVsbFBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFdvcmtib29rRnVsbFBhdGggPSAnd29ya2Jvb2tGdWxsUGF0aCcsXHJcblxyXG4gIC8vIERQSV9XaW5kb3dUaXRsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgV2luZG93VGl0bGUgPSAnd2luZG93VGl0bGUnLFxyXG5cclxuICAvLyBEUElfWm9uZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFpvbmVOYW1lID0gJ3pvbmVOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1pvbmVQYXJhbSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgWm9uZVBhcmFtID0gJ3pvbmVQYXJhbScsXHJcblxyXG4gIC8vIERQSV9EYXRhQWxlcnRFcnJvclRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFBbGVydEVycm9yVGV4dCA9ICdkYXRhQWxlcnRFcnJvclRleHQnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdFRlbXBEaXJlY3RvcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dHJhY3RUZW1wRGlyZWN0b3J5ID0gJ2V4dHJhY3RUZW1wRGlyJyxcclxuXHJcbiAgLy8gRFBJX0RTU3ViQ2xhc3MsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERTU3ViQ2xhc3MgPSAnZHNTdWJDbGFzcycsXHJcblxyXG4gIC8vIERQSV9EYmdDb21tYW5kTGluZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGJnQ29tbWFuZExpbmUgPSAnZGVidWdDb21tYW5kTGluZScsXHJcblxyXG4gIC8vIERQSV9EYmdMb2dQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYmdMb2dQYXRoID0gJ2RlYnVnTG9nUGF0aCcsXHJcblxyXG4gIC8vIERQSV9EYmdPU1ZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERiZ09TVmVyc2lvbiA9ICdkZWJ1Z09zVmVyc2lvbicsXHJcblxyXG4gIC8vIERQSV9EYmdVc2VyTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGJnVXNlck5hbWUgPSAnZGVidWdVc2VybmFtZScsXHJcblxyXG4gIC8vIERQSV9FcnJvck1zZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXJyb3JNc2cgPSAnZXJyb3JNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX0Vycm9yU3RhY2tUcmFjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXJyb3JTdGFja1RyYWNlID0gJ2Vycm9yU3RhY2tUcmFjZScsXHJcblxyXG4gIC8vIERQSV9FcnJvclN0ciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXJyb3JTdHIgPSAnZXJyb3JTdHJpbmcnLFxyXG5cclxuICAvLyBEUElfRXZlbnRNZXNzYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFdmVudE1lc3NhZ2UgPSAnZXZlbnRNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX0V2ZW50VGltZXN0YW1wLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFdmVudFRpbWVzdGFtcCA9ICdldmVudFRpbWVzdGFtcCcsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0RGVsdGFQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeHRyYWN0RGVsdGFQYXRoID0gJ2V4dHJhY3REZWx0YVBhdGgnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdFBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dHJhY3RQYXRoID0gJ2V4dHJhY3RQYXRoJyxcclxuXHJcbiAgLy8gRFBJX0V4dHJhY3RTdWdnZXN0ZWRQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeHRyYWN0U3VnZ2VzdGVkUGF0aCA9ICdzdWdnZXN0ZWRFeHRyYWN0UGF0aCcsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0VGFza1N1bW1hcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dHJhY3RUYXNrU3VtbWFyeSA9ICdleHRyYWN0VGFza1N1bW1hcnknLFxyXG5cclxuICAvLyBEUElfRmFjdG9yc1N0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmFjdG9yc1N0cmluZyA9ICdmYWN0b3JzU3RyJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdHRlZEZhbWlseU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcm1hdHRlZEZhbWlseU5hbWUgPSAnZm9ybWF0dGVkRmFtaWx5TmFtZScsXHJcblxyXG4gIC8vIERQSV9GdW5jdGlvblNpZ25hdHVyZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRnVuY3Rpb25TaWduYXR1cmUgPSAnZnVuY1NpZycsXHJcblxyXG4gIC8vIERQSV9GdW5jdGlvblRvb2x0aXAsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZ1bmN0aW9uVG9vbHRpcCA9ICdmdW5jVG9vbHRpcCcsXHJcblxyXG4gIC8vIERQSV9IZWxwQ29udGVudHMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEhlbHBDb250ZW50cyA9ICdoZWxwQ29udGVudHMnLFxyXG5cclxuICAvLyBEUElfTWFwQXR0cmlidXRpb25UZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBBdHRyaWJ1dGlvblRleHQgPSAnbWFwQXR0cmlidXRpb25UZXh0JyxcclxuXHJcbiAgLy8gRFBJX01hcEF0dHJpYnV0aW9uVGV4dFNpemUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcEF0dHJpYnV0aW9uVGV4dFNpemUgPSAnbWFwQXR0cmlidXRpb25UZXh0U2l6ZScsXHJcblxyXG4gIC8vIERQSV9NYXBBdHRyaWJ1dGlvblVybCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwQXR0cmlidXRpb25VcmwgPSAnbWFwQXR0cmlidXRpb25VcmwnLFxyXG5cclxuICAvLyBEUElfTWFwQm94RXJyb3JNZXNzYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBCb3hFcnJvck1lc3NhZ2UgPSAnbWFwYm94RXJyb3JNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX01hcEJveE9sZFN0eWxlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwQm94T2xkU3R5bGVOYW1lID0gJ21hcGJveE9sZFN0eWxlTmFtZScsXHJcblxyXG4gIC8vIERQSV9NYXBCb3hTZWxlY3RlZFN0eWxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBCb3hTZWxlY3RlZFN0eWxlID0gJ21hcGJveFNlbGVjdGVkU3R5bGUnLFxyXG5cclxuICAvLyBEUElfTWFwQm94U3R5bGVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBCb3hTdHlsZU5hbWUgPSAnbWFwYm94U3R5bGVOYW1lJyxcclxuXHJcbiAgLy8gRFBJX01hcExheWVyUmVxdWVzdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwTGF5ZXJSZXF1ZXN0ID0gJ21hcExheWVyUmVxdWVzdCcsXHJcblxyXG4gIC8vIERQSV9NYXBTZXJ2ZXJLZXksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcFNlcnZlcktleSA9ICdtYXBTZXJ2ZXJLZXknLFxyXG5cclxuICAvLyBEUElfTWFwVGlsZVNlcnZlciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwVGlsZVNlcnZlciA9ICdtYXBUaWxlU2VydmVyJyxcclxuXHJcbiAgLy8gRFBJX01hcFRpbGVVcmwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcFRpbGVVcmwgPSAnbWFwVGlsZVVybCcsXHJcblxyXG4gIC8vIERQSV9QZXJjZW50YWdlc1N0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGVyY2VudGFnZXNTdHJpbmcgPSAncGVyY2VudGFnZXNTdHInLFxyXG5cclxuICAvLyBEUElfUHVibGlzaEVycm9yTWVzc2FnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUHVibGlzaEVycm9yTWVzc2FnZSA9ICdwdWJsaXNoRXJyb3JNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX1RkZVBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRkZVBhdGggPSAndGRlUGF0aCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25Db21wb25lbnROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBVSUF1dG9tYXRpb25Db21wb25lbnROYW1lID0gJ3VpQXV0b21hdGlvbkNvbXBvbmVudE5hbWUnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uRW5kVGltZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVUlBdXRvbWF0aW9uRW5kVGltZSA9ICd1aUF1dG9tYXRpb25FbmRUaW1lJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVJQXV0b21hdGlvbk5hbWUgPSAndWlBdXRvbWF0aW9uTmFtZScsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25TdGFydFRpbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVJQXV0b21hdGlvblN0YXJ0VGltZSA9ICd1aUF1dG9tYXRpb25TdGFydFRpbWUnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVJQXV0b21hdGlvblZhbHVlID0gJ3VpQXV0b21hdGlvblZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1dNU0Nvbm5lY3Rpb25OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBXTVNDb25uZWN0aW9uTmFtZSA9ICd3bXNDb25uZWN0aW9uTmFtZScsXHJcblxyXG4gIC8vIERQSV9XTVNPbGRDb25uZWN0aW9uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgV01TT2xkQ29ubmVjdGlvbk5hbWUgPSAnd21zT2xkQ29ubmVjdGlvbk5hbWUnLFxyXG5cclxuICAvLyBEUElfV01TU2VydmVyVXJsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBXTVNTZXJ2ZXJVcmwgPSAnd21zU2VydmVyVXJsJyxcclxuXHJcbiAgLy8gRFBJX0Fib3V0QnVpbGRWZXJzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBYm91dEJ1aWxkVmVyc2lvbiA9ICdhYm91dEJ1aWxkVmVyc2lvbicsXHJcblxyXG4gIC8vIERQSV9BY3Rpb25GaWVsZHMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFjdGlvbkZpZWxkcyA9ICdhY3Rpb25GaWVsZHMnLFxyXG5cclxuICAvLyBEUElfQWRkVmFyaWFibGVMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWRkVmFyaWFibGVMYWJlbCA9ICdhZGRWYXJpYWJsZUxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX0FkZFZhcmlhYmxlVG9vbHRpcCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWRkVmFyaWFibGVUb29sdGlwID0gJ2FkZFZhcmlhYmxlVG9vbHRpcCcsXHJcblxyXG4gIC8vIERQSV9BbGxvd2VkRGF0YVNvdXJjZXNCeU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFsbG93ZWREYXRhU291cmNlc0J5TmFtZSA9ICdhbGxvd2VkRGF0YVNvdXJjZXNCeU5hbWUnLFxyXG5cclxuICAvLyBEUElfQXBwQWJvdXRWZXJzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBcHBBYm91dFZlcnNpb24gPSAnYXBwQWJvdXRWZXJzaW9uJyxcclxuXHJcbiAgLy8gRFBJX0FwcEJ1aWxkQnJhbmNoTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXBwQnVpbGRCcmFuY2hOYW1lID0gJ2FwcEJ1aWxkQnJhbmNoTmFtZScsXHJcblxyXG4gIC8vIERQSV9BcHBCdWlsZFZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFwcEJ1aWxkVmVyc2lvbiA9ICdhcHBCdWlsZFZlcnNpb24nLFxyXG5cclxuICAvLyBEUElfQXBwRXh0ZXJuYWxWZXJzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBcHBFeHRlcm5hbFZlcnNpb24gPSAnYXBwRXh0ZXJuYWxWZXJzaW9uJyxcclxuXHJcbiAgLy8gRFBJX0FwcE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFwcE5hbWUgPSAnYXBwTmFtZScsXHJcblxyXG4gIC8vIERQSV9BcHBQcm9kdWN0VmVyc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXBwUHJvZHVjdFZlcnNpb24gPSAnYXBwUHJvZHVjdFZlcnNpb24nLFxyXG5cclxuICAvLyBEUElfT3JpZ2luYWxWZXJzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBPcmlnaW5hbFZlcnNpb24gPSAnb3JpZ2luYWxWZXJzaW9uJyxcclxuXHJcbiAgLy8gRFBJX0F0VGhlTGV2ZWxTcGVjaWFsQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXRUaGVMZXZlbFNwZWNpYWxDYXB0aW9uID0gJ2F0VGhlTGV2ZWxTcGVjaWFsQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9BdXRvQ29tcGxldGVDYWxjLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdXRvQ29tcGxldGVDYWxjID0gJ2FjQ2FsYycsXHJcblxyXG4gIC8vIERQSV9DU1ZQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDU1ZQYXRoID0gJ2NzdlBhdGgnLFxyXG5cclxuICAvLyBEUElfQ29tbWFuZE5hbWVzcGFjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29tbWFuZE5hbWVzcGFjZSA9ICdjb21tYW5kTmFtZXNwYWNlJyxcclxuXHJcbiAgLy8gRFBJX0NvbmRpdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29uZGl0aW9uID0gJ2NvbmRpdGlvbicsXHJcblxyXG4gIC8vIERQSV9Db25kaXRpb25TdW1tYXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25kaXRpb25TdW1tYXJ5ID0gJ2NvbmRpdGlvblN1bW1hcnknLFxyXG5cclxuICAvLyBEUElfQ29uZmlybWF0aW9uTXNnLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25maXJtYXRpb25Nc2cgPSAnY29uZmlybWF0aW9uTXNnJyxcclxuXHJcbiAgLy8gRFBJX0Rhc2hib2FyZFR5cGVUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXNoYm9hcmRUeXBlVGV4dCA9ICdkYXNoYm9hcmRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFzZXJ2ZXJQdWJsaWNBZGRyZXNzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhc2VydmVyUHVibGljQWRkcmVzcyA9ICdkYXRhc2VydmVyUHVibGljQWRkcmVzcycsXHJcblxyXG4gIC8vIERQSV9EYXRhc291cmNlRmlsZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VGaWxlTmFtZSA9ICdkYXRhc291cmNlRmlsZU5hbWUnLFxyXG5cclxuICAvLyBEUElfRGVjaW1hbE1hcmssIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERlY2ltYWxNYXJrID0gJ2RlY2ltYWxNYXJrJyxcclxuXHJcbiAgLy8gRFBJX0RlbGV0ZVZhcmlhYmxlVG9vbHRpcCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGVsZXRlVmFyaWFibGVUb29sdGlwID0gJ2RlbGV0ZVZhcmlhYmxlVG9vbHRpcCcsXHJcblxyXG4gIC8vIERQSV9EaWFsb2dUaXRsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGlhbG9nVGl0bGUgPSAnZGlhbG9nVGl0bGUnLFxyXG5cclxuICAvLyBEUElfRGlzcGxheVZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEaXNwbGF5VmFsdWUgPSAnZGlzcGxheVZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1Rvb2x0aXBWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVG9vbHRpcFZhbHVlID0gJ3Rvb2x0aXBWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Ec3RQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEc3RQYXRoID0gJ2RzdFBhdGgnLFxyXG5cclxuICAvLyBEUElfRWRpdFdpZGdldEhlYWRlciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRWRpdFdpZGdldEhlYWRlciA9ICdlZGl0V2lkZ2V0SGVhZGVyJyxcclxuXHJcbiAgLy8gRFBJX0VkaXRXaWRnZXRJbnN0cnVjdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRWRpdFdpZGdldEluc3RydWN0aW9uID0gJ2VkaXRXaWRnZXRJbnN0cnVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9FbmRTZWxlY3Rpb25DYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFbmRTZWxlY3Rpb25DYXB0aW9uID0gJ2VuZFNlbGVjdGlvbkNhcHRpb24nLFxyXG5cclxuICAvLyBEUElfRXJyb3JDb25maXJtYXRpb25RdWVzdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXJyb3JDb25maXJtYXRpb25RdWVzdGlvbiA9ICdlcnJvckNvbmZpcm1hdGlvblF1ZXN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0Vycm9yRGlhbG9nVGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEVycm9yRGlhbG9nVGl0bGUgPSAnZXJyb3JEaWFsb2dUaXRsZScsXHJcblxyXG4gIC8vIERQSV9FcnJvckhlbHBMaW5rLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFcnJvckhlbHBMaW5rID0gJ2Vycm9ySGVscExpbmsnLFxyXG5cclxuICAvLyBEUElfRXJyb3JTaG9ydE1lc3NhZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEVycm9yU2hvcnRNZXNzYWdlID0gJ2Vycm9yU2hvcnRNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNlYXJjaFF1ZXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWx0ZXJTZWFyY2hRdWVyeSA9ICdmaWx0ZXJTZWFyY2hRdWVyeScsXHJcblxyXG4gIC8vIERQSV9Gcm9tTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZyb21MYWJlbCA9ICdmcm9tTGFiZWwnLFxyXG5cclxuICAvLyBEUElfRnVuY3Rpb25IZWxwLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGdW5jdGlvbkhlbHAgPSAnZnVuY3Rpb25IZWxwJyxcclxuXHJcbiAgLy8gRFBJX0luc3RydWN0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW5zdHJ1Y3Rpb25zID0gJ2luc3RydWN0aW9ucycsXHJcblxyXG4gIC8vIERQSV9MYXJnZVVuaXREaXNwbGF5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMYXJnZVVuaXREaXNwbGF5ID0gJ2xhcmdlVW5pdERpc3BsYXknLFxyXG5cclxuICAvLyBEUElfTGltaXQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExpbWl0ID0gJ2xpbWl0JyxcclxuXHJcbiAgLy8gRFBJX0xpc3RWaWV3TmFtZUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMaXN0Vmlld05hbWVMYWJlbCA9ICdsaXN0Vmlld05hbWVMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9MaXN0Vmlld1ZhbHVlTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExpc3RWaWV3VmFsdWVMYWJlbCA9ICdsaXN0Vmlld1ZhbHVlTGFiZWwnLFxyXG5cclxuICAvLyBEUElfTWFwU2NhbGVSZWFkb3V0VW5pdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwU2NhbGVSZWFkb3V0VW5pdCA9ICdtYXBTY2FsZVJlYWRvdXRVbml0JyxcclxuXHJcbiAgLy8gRFBJX01lYXN1cmVEaW1lbnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1lYXN1cmVEaW1lbnNpb24gPSAnbWVhc3VyZXNEaW1lbnNpb24nLFxyXG5cclxuICAvLyBEUElfTWltZVR5cGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1pbWVUeXBlID0gJ21pbWVUeXBlJyxcclxuXHJcbiAgLy8gRFBJX05vdGlmaWNhdGlvbk1zZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTm90aWZpY2F0aW9uTXNnID0gJ25vdGlmaWNhdGlvbk1zZycsXHJcblxyXG4gIC8vIERQSV9PcGVyYXRpb25OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBPcGVyYXRpb25OYW1lID0gJ29wZXJhdGlvbk5hbWUnLFxyXG5cclxuICAvLyBEUElfUGFnZVRpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYWdlVGl0bGUgPSAncGFnZVRpdGxlJyxcclxuXHJcbiAgLy8gRFBJX1BhdHRlcm5TdW1tYXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYXR0ZXJuU3VtbWFyeSA9ICdwYXR0ZXJuU3VtbWFyeScsXHJcblxyXG4gIC8vIERQSV9SZWZlcmVuY2VMaW5lSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlZmVyZW5jZUxpbmVJZCA9ICdyZWZMaW5lSWQnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlTGluZVBhaXJlZElkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSZWZlcmVuY2VMaW5lUGFpcmVkSWQgPSAncmVmTGluZVBhaXJlZElkJyxcclxuXHJcbiAgLy8gRFBJX1JlcGxhY2VUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSZXBsYWNlVGV4dCA9ICdyZXBsYWNlVGV4dCcsXHJcblxyXG4gIC8vIERQSV9SZXF1aXJlZFZhcmlhYmxlTWVzc2FnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmVxdWlyZWRWYXJpYWJsZU1lc3NhZ2UgPSAncmVxdWlyZWRWYXJpYWJsZU1lc3NhZ2UnLFxyXG5cclxuICAvLyBEUElfUmVzdGFydEV2ZXJ5U3BlY2lhbENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlc3RhcnRFdmVyeVNwZWNpYWxDYXB0aW9uID0gJ3Jlc3RhcnRFdmVyeVNwZWNpYWxDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1Jvb3QsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJvb3QgPSAncm9vdCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25TdW1tYXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTZWxlY3Rpb25TdW1tYXJ5ID0gJ3NlbGVjdGlvblN1bW1hcnknLFxyXG5cclxuICAvLyBEUElfU2Vzc2lvbkF0dHJpYnV0ZUtleSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2Vzc2lvbkF0dHJpYnV0ZUtleSA9ICdzZXNzaW9uQXR0cmlidXRlS2V5JyxcclxuXHJcbiAgLy8gRFBJX1Nlc3Npb25BdHRyaWJ1dGVWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2Vzc2lvbkF0dHJpYnV0ZVZhbHVlID0gJ3Nlc3Npb25BdHRyaWJ1dGVWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9TaGVldEF0dHJpYnV0ZUtleSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2hlZXRBdHRyaWJ1dGVLZXkgPSAnYmFzZVNoZWV0QXR0cmlidXRlS2V5JyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0QXR0cmlidXRlVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNoZWV0QXR0cmlidXRlVmFsdWUgPSAnYmFzZVNoZWV0QXR0cmlidXRlVmFsdWUnLFxyXG5cclxuICAvLyBEUElfU21hbGxVbml0RGlzcGxheSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU21hbGxVbml0RGlzcGxheSA9ICdzbWFsbFVuaXREaXNwbGF5JyxcclxuXHJcbiAgLy8gRFBJX1NvdXJjZUNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNvdXJjZUNhcHRpb24gPSAnc291cmNlQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9TcmNQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTcmNQYXRoID0gJ3NyY1BhdGgnLFxyXG5cclxuICAvLyBEUElfU3RhcnRTZWxlY3Rpb25DYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdGFydFNlbGVjdGlvbkNhcHRpb24gPSAnc3RhcnRTZWxlY3Rpb25DYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1N1YnRpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdWJ0aXRsZSA9ICdzdWJ0aXRsZScsXHJcblxyXG4gIC8vIERQSV9UYWJsZWF1U2VydmVyU2l0ZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlYXVTZXJ2ZXJTaXRlTmFtZSA9ICd0YWJsZWF1U2VydmVyU2l0ZU5hbWUnLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0Q2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFyZ2V0Q2FwdGlvbiA9ICd0YXJnZXRDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1RodW1ibmFpbFBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRodW1ibmFpbFBhdGggPSAndGh1bWJuYWlsUGF0aCcsXHJcblxyXG4gIC8vIERQSV9Ub0xhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUb0xhYmVsID0gJ3RvTGFiZWwnLFxyXG5cclxuICAvLyBEUElfVVJMQWRkcmVzcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVVJMQWRkcmVzcyA9ICd1cmxBZGRyZXNzJyxcclxuXHJcbiAgLy8gRFBJX1VybFJvb3QsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVybFJvb3QgPSAndXJsUm9vdCcsXHJcblxyXG4gIC8vIERQSV9WYWx1ZXNUYWJsZUhlYWRlciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVmFsdWVzVGFibGVIZWFkZXIgPSAndmFsdWVzVGFibGVIZWFkZXInLFxyXG5cclxuICAvLyBEUElfVmFsdWVzVGFibGVIZWFkZXIyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWYWx1ZXNUYWJsZUhlYWRlcjIgPSAndmFsdWVzVGFibGVIZWFkZXIyJyxcclxuXHJcbiAgLy8gRFBJX1ZhcmlhYmxlRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFZhcmlhYmxlRGVzY3JpcHRpb24gPSAndmFyaWFibGVEZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9WYXJpYWJsZURpc3BsYXlOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWYXJpYWJsZURpc3BsYXlOYW1lID0gJ3ZhcmlhYmxlRGlzcGxheU5hbWUnLFxyXG5cclxuICAvLyBEUElfVmFyaWFibGVHVUlELCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWYXJpYWJsZUdVSUQgPSAndmFyaWFibGVHdWlkJyxcclxuXHJcbiAgLy8gRFBJX1ZlcmJvc2VOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWZXJib3NlTmFtZSA9ICd2ZXJib3NlTmFtZScsXHJcblxyXG4gIC8vIERQSV9WaWV3SWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFZpZXdJZCA9ICd2aWV3SWQnLFxyXG5cclxuICAvLyBEUElfV2FybmluZzEsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFdhcm5pbmcxID0gJ3dhcm5pbmcxJyxcclxuXHJcbiAgLy8gRFBJX1dhcm5pbmcyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBXYXJuaW5nMiA9ICd3YXJuaW5nMicsXHJcblxyXG4gIC8vIERQSV9SZWZyZXNoVG9rZW4sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlZnJlc2hUb2tlbiA9ICdyZWZyZXNoX3Rva2VuJyxcclxuXHJcbiAgLy8gRFBJX1Rva2VuVHlwZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVG9rZW5UeXBlID0gJ3Rva2VuX3R5cGUnLFxyXG5cclxuICAvLyBEUElfWFNSRlRva2VuLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBYU1JGVG9rZW4gPSAneHNyZl90b2tlbicsXHJcblxyXG4gIC8vIERQSV9BeGlzU3VidGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF4aXNTdWJ0aXRsZSA9ICdheGlzU3VidGl0bGUnLFxyXG5cclxuICAvLyBEUElfQXhpc1RpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBeGlzVGl0bGUgPSAnYXhpc1RpdGxlJyxcclxuXHJcbiAgLy8gRFBJX1RpY2tNYXJrT3JpZ2luRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUaWNrTWFya09yaWdpbkRhdGFWYWx1ZSA9ICd0aWNrTWFya09yaWdpbkRhdGFWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9UaWNrTWFya09yaWdpbkRhdGFWYWx1ZU5vVGltZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGlja01hcmtPcmlnaW5EYXRhVmFsdWVOb1RpbWUgPSAndGlja01hcmtPcmlnaW5EYXRhVmFsdWVOb1RpbWUnLFxyXG5cclxuICAvLyBEUElfVGlja01hcmtTcGFjaW5nRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUaWNrTWFya1NwYWNpbmdEYXRhVmFsdWUgPSAndGlja01hcmtTcGFjaW5nRGF0YVZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX0V4dHJhY3RBY3Rpb25Mb2NhbGl6ZWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dHJhY3RBY3Rpb25Mb2NhbGl6ZWQgPSAnZXh0cmFjdEFjdGlvbkxvY2FsaXplZCcsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0U291cmNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeHRyYWN0U291cmNlID0gJ2V4dHJhY3RTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfRmlsZUNvbnRlbnRzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWxlQ29udGVudHMgPSAnZmlsZUNvbnRlbnRzJyxcclxuXHJcbiAgLy8gRFBJX1NhdmVJbWFnZVBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNhdmVJbWFnZVBhdGggPSAnc2F2ZUltYWdlUGF0aCcsXHJcblxyXG4gIC8vIERQSV9XaWRnZXRVSUQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFdpZGdldFVJRCA9ICd3aWRnZXRVbmlxdWVJZCcsXHJcblxyXG4gIC8vIERQSV9EYXRlUHJvcGVydGllc0Rpc3BsYXlUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRlUHJvcGVydGllc0Rpc3BsYXlUZXh0ID0gJ2RhdGVQcm9wZXJ0aWVzRGlzcGxheVRleHQnLFxyXG5cclxuICAvLyBEUElfRGF0ZVByb3BlcnRpZXNIZWxwZXJUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRlUHJvcGVydGllc0hlbHBlclRleHQgPSAnZGF0ZVByb3BlcnRpZXNIZWxwZXJUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0V2ZW50TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXZlbnROYW1lID0gJ2V2ZW50TmFtZScsXHJcblxyXG4gIC8vIERQSV9FeGNlcHRpb25UeXBlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeGNlcHRpb25UeXBlID0gJ2V4Y2VwdGlvblR5cGUnLFxyXG5cclxuICAvLyBEUElfU2VhcmNoUGxhY2Vob2xkZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlYXJjaFBsYWNlaG9sZGVyID0gJ3NlYXJjaFBsYWNlaG9sZGVyJyxcclxuXHJcbiAgLy8gRFBJX1RhcmdldFZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhcmdldFZlcnNpb24gPSAndGFyZ2V0VmVyc2lvbicsXHJcblxyXG4gIC8vIERQSV9EYXRhVmFsdWVEaXNwbGF5U3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhVmFsdWVEaXNwbGF5U3RyaW5nID0gJ2RhdGFWYWx1ZURpc3BsYXlTdHJpbmcnLFxyXG5cclxuICAvLyBEUElfRG9tYWluU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEb21haW5TdHJpbmcgPSAnZG9tYWluU3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX1Jhd0RhdGFWYWx1ZVN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmF3RGF0YVZhbHVlU3RyaW5nID0gJ3Jhd0RhdGFWYWx1ZVN0cmluZycsXHJcblxyXG4gIC8vIERQSV9SaWNoVGV4dERpYWxvZ1RpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSaWNoVGV4dERpYWxvZ1RpdGxlID0gJ3JpY2hUZXh0RGlhbG9nVGl0bGUnLFxyXG5cclxuICAvLyBEUElfUmljaFRleHRDb250ZW50LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSaWNoVGV4dENvbnRlbnQgPSAncmljaFRleHRDb250ZW50JyxcclxuXHJcbiAgLy8gRFBJX01hcmtTaXplQXNTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcmtTaXplQXNTdHJpbmcgPSAnbWFya1NpemVBc1N0cmluZycsXHJcblxyXG4gIC8vIERQSV9Vbml0c0xhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBVbml0c0xhYmVsID0gJ3VuaXRzTGFiZWwnLFxyXG5cclxuICAvLyBEUElfRW1haWxBZGRyZXNzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFbWFpbEFkZHJlc3MgPSAnZW1haWxBZGRyZXNzJyxcclxuXHJcbiAgLy8gRFBJX0ZpcnN0TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmlyc3ROYW1lID0gJ2ZpcnN0TmFtZScsXHJcblxyXG4gIC8vIERQSV9MYXN0TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTGFzdE5hbWUgPSAnbGFzdE5hbWUnLFxyXG5cclxuICAvLyBEUElfU3VtbWFyeUNhcmRBdmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN1bW1hcnlDYXJkQXZnID0gJ3N1bW1hcnlDYXJkQXZnJyxcclxuXHJcbiAgLy8gRFBJX1N1bW1hcnlDYXJkQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUNhcmRDYXB0aW9uID0gJ3N1bW1hcnlDYXJkQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9TdW1tYXJ5Q2FyZENvdW50LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdW1tYXJ5Q2FyZENvdW50ID0gJ3N1bW1hcnlDYXJkQ291bnQnLFxyXG5cclxuICAvLyBEUElfU3VtbWFyeUNhcmRLdXJ0b3NpcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUNhcmRLdXJ0b3NpcyA9ICdzdW1tYXJ5Q2FyZEt1cnRvc2lzJyxcclxuXHJcbiAgLy8gRFBJX1N1bW1hcnlDYXJkTWF4LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdW1tYXJ5Q2FyZE1heCA9ICdzdW1tYXJ5Q2FyZE1heCcsXHJcblxyXG4gIC8vIERQSV9TdW1tYXJ5Q2FyZE1lZGlhbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUNhcmRNZWRpYW4gPSAnc3VtbWFyeUNhcmRNZWRpYW4nLFxyXG5cclxuICAvLyBEUElfU3VtbWFyeUNhcmRNaW4sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN1bW1hcnlDYXJkTWluID0gJ3N1bW1hcnlDYXJkTWluJyxcclxuXHJcbiAgLy8gRFBJX1N1bW1hcnlDYXJkUXVhcnQxLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdW1tYXJ5Q2FyZFF1YXJ0MSA9ICdzdW1tYXJ5Q2FyZFF1YXJ0MScsXHJcblxyXG4gIC8vIERQSV9TdW1tYXJ5Q2FyZFF1YXJ0MywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUNhcmRRdWFydDMgPSAnc3VtbWFyeUNhcmRRdWFydDMnLFxyXG5cclxuICAvLyBEUElfU3VtbWFyeUNhcmRTa2V3bmVzcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUNhcmRTa2V3bmVzcyA9ICdzdW1tYXJ5Q2FyZFNrZXduZXNzJyxcclxuXHJcbiAgLy8gRFBJX1N1bW1hcnlDYXJkU3RkZXYsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN1bW1hcnlDYXJkU3RkZXYgPSAnc3VtbWFyeUNhcmRTdGRldicsXHJcblxyXG4gIC8vIERQSV9TdW1tYXJ5Q2FyZFN1bSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUNhcmRTdW0gPSAnc3VtbWFyeUNhcmRTdW0nLFxyXG5cclxuICAvLyBEUElfVmFsdWVDbGFzc0F0dHIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFZhbHVlQ2xhc3NBdHRyID0gJ3ZhbHVlQ2xhc3NBdHRyJyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZURpYWxvZ1RpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUcmVuZExpbmVEaWFsb2dUaXRsZSA9ICd0cmVuZExpbmVEaWFsb2dUaXRsZScsXHJcblxyXG4gIC8vIERQSV9MaW5lYXJGaXRUeXBlTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExpbmVhckZpdFR5cGVMYWJlbCA9ICdsaW5lYXJGaXRUeXBlTGFiZWwnLFxyXG5cclxuICAvLyBEUElfTG9nRml0VHlwZUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMb2dGaXRUeXBlTGFiZWwgPSAnbG9nRml0VHlwZUxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX0V4cEZpdFR5cGVMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXhwRml0VHlwZUxhYmVsID0gJ2V4cEZpdFR5cGVMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9Qb3dlckZpdFR5cGVMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUG93ZXJGaXRUeXBlTGFiZWwgPSAncG93ZXJGaXRUeXBlTGFiZWwnLFxyXG5cclxuICAvLyBEUElfUG9seW5vbWlhbEZpdFR5cGVMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUG9seW5vbWlhbEZpdFR5cGVMYWJlbCA9ICdwb2x5bm9taWFsRml0VHlwZUxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX0V4Y2x1ZGVDb2xvckxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeGNsdWRlQ29sb3JMYWJlbCA9ICdleGNsdWRlQ29sb3JMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9FbmFibGVDb25maWRlbmNlQmFuZHNMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRW5hYmxlQ29uZmlkZW5jZUJhbmRzTGFiZWwgPSAnZW5hYmxlQ29uZmlkZW5jZUJhbmRzTGFiZWwnLFxyXG5cclxuICAvLyBEUElfRm9yY2VJbnRlcmNlcHRaZXJvTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcmNlSW50ZXJjZXB0WmVyb0xhYmVsID0gJ2ZvcmNlSW50ZXJjZXB0WmVybyBsYWJlbCcsXHJcblxyXG4gIC8vIERQSV9FbmFibGVJbnN0YW50QW5hbHl0aWNzTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEVuYWJsZUluc3RhbnRBbmFseXRpY3NMYWJlbCA9ICdlbmFibGVJbnN0YW50QW5hbHl0aWNzTGFiZWwnLFxyXG5cclxuICAvLyBEUElfRW5hYmxlVG9vbHRpcHNMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRW5hYmxlVG9vbHRpcHNMYWJlbCA9ICdlbmFibGVUb29sdGlwTGFiZWwnLFxyXG5cclxuICAvLyBEUElfQXV0aGVudGljYXRpb25TdW1tYXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdXRoZW50aWNhdGlvblN1bW1hcnkgPSAnYXV0aGVudGljYXRpb25TdW1tYXJ5JyxcclxuXHJcbiAgLy8gRFBJX0J0bkNhbmNlbFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJ0bkNhbmNlbFRleHQgPSAnYnRuQ2FuY2VsVGV4dCcsXHJcblxyXG4gIC8vIERQSV9CdG5Pa1RleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJ0bk9rVGV4dCA9ICdidG5Pa1RleHQnLFxyXG5cclxuICAvLyBEUElfQnV0dG9uVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQnV0dG9uVGV4dCA9ICdidXR0b25UZXh0JyxcclxuXHJcbiAgLy8gRFBJX0NhbGN1bGF0aW9uQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2FsY3VsYXRpb25DYXB0aW9uID0gJ2NhbGN1bGF0aW9uQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9DYWxjdWxhdGlvbkRlcGVuZGVuY2llcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2FsY3VsYXRpb25EZXBlbmRlbmNpZXMgPSAnY2FsY3VsYXRpb25EZXBlbmRlbmNpZXMnLFxyXG5cclxuICAvLyBEUElfQ2FsY3VsYXRpb25Gb3JtdWxhLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDYWxjdWxhdGlvbkZvcm11bGEgPSAnY2FsY3VsYXRpb25Gb3JtdWxhJyxcclxuXHJcbiAgLy8gRFBJX0NoZWNrUHVibGlzaE1lc3NhZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENoZWNrUHVibGlzaE1lc3NhZ2UgPSAnY2hlY2tQdWJsaXNoU3VtbWFyeScsXHJcblxyXG4gIC8vIERQSV9DbHVzdGVyTW9kZWxUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDbHVzdGVyTW9kZWxUZXh0ID0gJ2NsdXN0ZXJNb2RlbFRleHQnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlclN1bW1hcnlTY2FsZWRUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDbHVzdGVyU3VtbWFyeVNjYWxlZFRleHQgPSAnY2x1c3RlclN1bW1hcnlTY2FsZWRUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0NsdXN0ZXJTdW1tYXJ5VGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2x1c3RlclN1bW1hcnlUZXh0ID0gJ2NsdXN0ZXJTdW1tYXJ5VGV4dCcsXHJcblxyXG4gIC8vIERQSV9Db2x1bW5DYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb2x1bW5DYXB0aW9uID0gJ2NvbHVtbkNhcHRpb24nLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZUNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VDYXB0aW9uID0gJ2RhdGFzb3VyY2VDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0RlZmF1bHRDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEZWZhdWx0Q2FwdGlvbiA9ICdkZWZhdWx0Q2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9EaXNwbGF5U3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEaXNwbGF5U3RyaW5nID0gJ2Rpc3BsYXlUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0RyYWdEZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRHJhZ0Rlc2NyaXB0aW9uID0gJ2RyYWdEZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9FeGNlcHRpb25NZXNzYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeGNlcHRpb25NZXNzYWdlID0gJ2V4Y2VwdGlvbk1lc3NhZ2UnLFxyXG5cclxuICAvLyBEUElfRXhwbGFuYXRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4cGxhbmF0aW9uID0gJ2V4cGxhbmF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmllbGRDYXB0aW9uID0gJ2ZpZWxkQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9GaWVsZFN1bW1hcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkU3VtbWFyeSA9ICdmaWVsZFN1bW1hcnknLFxyXG5cclxuICAvLyBEUElfRmllbGRTdW1tYXJ5TGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkU3VtbWFyeUxhYmVsID0gJ2ZpZWxkU3VtbWFyeUxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckRlc2NyaXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWx0ZXJEZXNjcmlwdGlvbiA9ICdmaWx0ZXJEZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWx0ZXJOYW1lID0gJ2ZpbHRlck5hbWUnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RNb2RlbFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcmVjYXN0TW9kZWxUZXh0ID0gJ2ZvcmVjYXN0TW9kZWxUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0U3VtbWFyeVBjdFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcmVjYXN0U3VtbWFyeVBjdFRleHQgPSAnZm9yZWNhc3RTdW1tYXJ5UGN0VGV4dCcsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdFN1bW1hcnlUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb3JlY2FzdFN1bW1hcnlUZXh0ID0gJ2ZvcmVjYXN0U3VtbWFyeVRleHQnLFxyXG5cclxuICAvLyBEUElfSGFzQWN0aXZlRXh0cmFjdFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEhhc0FjdGl2ZUV4dHJhY3RUZXh0ID0gJ2hhc0FjdGl2ZUV4dHJhY3RUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0h0bWxDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSHRtbENvbG9yID0gJ2h0bWxDb2xvcicsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlTG9jYWxGaWxlc0NoZWNrZWRXYXJuaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJbmNsdWRlTG9jYWxGaWxlc0NoZWNrZWRXYXJuaW5nID0gJ2luY2x1ZGVMb2NhbEZpbGVzQ2hlY2tlZFdhcm5pbmcnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUxvY2FsRmlsZXNXYXJuaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJbmNsdWRlTG9jYWxGaWxlc1dhcm5pbmcgPSAnaW5jbHVkZUxvY2FsRmlsZXNXYXJuaW5nJyxcclxuXHJcbiAgLy8gRFBJX0ludmFsaWRGaWVsZENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEludmFsaWRGaWVsZENhcHRpb24gPSAnaW52YWxpZEZpZWxkQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9MaW1pdFN1bW1hcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExpbWl0U3VtbWFyeSA9ICdsaW1pdFN1bW1hcnknLFxyXG5cclxuICAvLyBEUElfTG9hZGVkRXhpc3RpbmdPYmplY3RXYXJuaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMb2FkZWRFeGlzdGluZ09iamVjdFdhcm5pbmcgPSAnbG9hZGVkRXhpc3RpbmdPYmplY3RXYXJuaW5nJyxcclxuXHJcbiAgLy8gRFBJX01hbmFnZURhdGFzb3VyY2VzU3VtbWFyeSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFuYWdlRGF0YXNvdXJjZXNTdW1tYXJ5ID0gJ21hbmFnZURhdGFzb3VyY2VzU3VtbWFyeScsXHJcblxyXG4gIC8vIERQSV9Nb2RhbERpYWxvZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTW9kYWxEaWFsb2cgPSAnbW9kYWxEaWFsb2cnLFxyXG5cclxuICAvLyBEUElfTmV3RGF0YXNvdXJjZUNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE5ld0RhdGFzb3VyY2VDYXB0aW9uID0gJ25ld0RhdGFzb3VyY2VDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1Blcm1pc3Npb25zQnV0dG9uTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBlcm1pc3Npb25zQnV0dG9uTGFiZWwgPSAncGVybWlzc2lvbnNCdXR0b25MYWJlbCcsXHJcblxyXG4gIC8vIERQSV9QZXJtaXNzaW9uc0VkaXRvclJvbGVJZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGVybWlzc2lvbnNFZGl0b3JSb2xlSWQgPSAncGVybWlzc2lvbnNFZGl0b3JSb2xlSWQnLFxyXG5cclxuICAvLyBEUElfUGVybWlzc2lvbnNMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGVybWlzc2lvbnNMYWJlbCA9ICdwZXJtaXNzaW9uc0xhYmVsJyxcclxuXHJcbiAgLy8gRFBJX1BlcnNwZWN0aXZlQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGVyc3BlY3RpdmVDYXB0aW9uID0gJ3BlcnNwZWN0aXZlQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoQnV0dG9uTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFB1Ymxpc2hCdXR0b25MYWJlbCA9ICdwdWJsaXNoQnV0dG9uTGFiZWwnLFxyXG5cclxuICAvLyBEUElfUHVibGlzaENob2ljZUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQdWJsaXNoQ2hvaWNlTGFiZWwgPSAncHVibGlzaENob2ljZUxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hPYmplY3RWaWV3c1N1bW1hcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFB1Ymxpc2hPYmplY3RWaWV3c1N1bW1hcnkgPSAncHVibGlzaE9iamVjdFZpZXdzU3VtbWFyeScsXHJcblxyXG4gIC8vIERQSV9RdWFsaWZpZWRGaWVsZENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFF1YWxpZmllZEZpZWxkQ2FwdGlvbiA9ICdxdWFsaWZpZWRGaWVsZENhcHRpb24nLFxyXG5cclxuICAvLyBEUElfUmVsYXRpb25zaGlwVG9vbHRpcFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlbGF0aW9uc2hpcFRvb2x0aXBUZXh0ID0gJ3JlbGF0aW9uc2hpcFRvb2x0aXBUZXh0JyxcclxuXHJcbiAgLy8gRFBJX1Jlc2V0T2JqZWN0QXR0cmlidXRlc1dhcm5pbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlc2V0T2JqZWN0QXR0cmlidXRlc1dhcm5pbmcgPSAncmVzZXRPYmplY3RBdHRyaWJ1dGVzV2FybmluZycsXHJcblxyXG4gIC8vIERQSV9Sb3dDb3VudENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJvd0NvdW50Q2FwdGlvbiA9ICdyb3dDb3VudENhcHRpb24nLFxyXG5cclxuICAvLyBEUElfU2VydmVyQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2VydmVyQ2FwdGlvbiA9ICdzZXJ2ZXJDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1NpemVNb2RlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2l6ZU1vZGVOYW1lID0gJ3NpemVNb2RlTmFtZScsXHJcblxyXG4gIC8vIERQSV9TdW1tYXJ5VGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeVRleHQgPSAnc3VtbWFyeVRleHQnLFxyXG5cclxuICAvLyBEUElfU3luY0NsaWVudFVzZUV4dHJhY3RMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3luY0NsaWVudFVzZUV4dHJhY3RMYWJlbCA9ICdzeW5jQ2xpZW50VXNlRXh0cmFjdExhYmVsJyxcclxuXHJcbiAgLy8gRFBJX1RleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRleHQgPSAndGV4dCcsXHJcblxyXG4gIC8vIERQSV9UZXh0RHJvcGRvd25Db250cm9sTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRleHREcm9wZG93bkNvbnRyb2xMYWJlbCA9ICdjb250cm9sTGFiZWwnLFxyXG5cclxuICAvLyBEUElfVGh1bWJuYWlsVXNlck5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRodW1ibmFpbFVzZXJOYW1lID0gJ3RodW1ibmFpbFVzZXJOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1RpdGxlU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUaXRsZVN0cmluZyA9ICd0aXRsZVN0cmluZycsXHJcblxyXG4gIC8vIERQSV9Ub29sdGlwVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVG9vbHRpcFRleHQgPSAndG9vbHRpcFRleHQnLFxyXG5cclxuICAvLyBEUElfVXBkYXRlZENhbGNDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBVcGRhdGVkQ2FsY0NhcHRpb24gPSAndXBkYXRlZENhbGN1bGF0aW9uQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9VcGRhdGVkQ2FsY0Zvcm11bGEsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVwZGF0ZWRDYWxjRm9ybXVsYSA9ICd1cGRhdGVkQ2FsY3VsYXRpb25Gb3JtdWxhJyxcclxuXHJcbiAgLy8gRFBJX1VzZXJDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBVc2VyQ2FwdGlvbiA9ICd1c2VyQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9XYXJuaW5nVG9vbHRpcFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFdhcm5pbmdUb29sdGlwVGV4dCA9ICd3YXJuaW5nVG9vbHRpcFRleHQnLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZUZpbGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VGaWxlID0gJ2RhdGFzb3VyY2VGaWxlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpbGUgPSAnZmlsZScsXHJcblxyXG4gIC8vIERQSV9GaWxlTmFtZUJhc2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpbGVOYW1lQmFzZSA9ICdmaWxlbmFtZUJhc2UnLFxyXG5cclxuICAvLyBEUElfTmV3RmlsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTmV3RmlsZSA9ICduZXdGaWxlJyxcclxuXHJcbiAgLy8gRFBJX09yaWdpbmFsRmlsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgT3JpZ2luYWxGaWxlID0gJ29yaWdpbmFsRmlsZScsXHJcblxyXG4gIC8vIERQSV9PdXRwdXRGaWxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBPdXRwdXRGaWxlID0gJ291dHB1dEZpbGUnLFxyXG5cclxuICAvLyBEUElfU2FtcGxlRmlsZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNhbXBsZUZpbGVOYW1lID0gJ3NhbXBsZUZpbGVuYW1lJyxcclxuXHJcbiAgLy8gRFBJX1dvcmtib29rRmlsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgV29ya2Jvb2tGaWxlID0gJ3dvcmtib29rRmlsZScsXHJcblxyXG4gIC8vIERQSV9JbWFnZUtleSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW1hZ2VLZXkgPSAnaW1hZ2VLZXknLFxyXG5cclxuICAvLyBEUElfT3ZlcmxheUltYWdlS2V5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBPdmVybGF5SW1hZ2VLZXkgPSAnb3ZlcmxheUltYWdlS2V5JyxcclxuXHJcbiAgLy8gRFBJX1RlbXBGaWxlS2V5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUZW1wRmlsZUtleSA9ICd0ZW1wZmlsZUtleScsXHJcblxyXG4gIC8vIERQSV9DYXB0dXJlZFNoZWV0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDYXB0dXJlZFNoZWV0ID0gJ2NhcHR1cmVkU2hlZXQnLFxyXG5cclxuICAvLyBEUElfQ3VycmVudFNoZWV0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDdXJyZW50U2hlZXQgPSAnY3VycmVudFNoZWV0JyxcclxuXHJcbiAgLy8gRFBJX0Rhc2hib2FyZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGFzaGJvYXJkID0gJ2Rhc2hib2FyZCcsXHJcblxyXG4gIC8vIERQSV9FbnN1cmVTaGVldCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRW5zdXJlU2hlZXQgPSAnZW5zdXJlU2hlZXROYW1lJyxcclxuXHJcbiAgLy8gRFBJX05ld1NoZWV0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBOZXdTaGVldCA9ICduZXdTaGVldCcsXHJcblxyXG4gIC8vIERQSV9TaGVldCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2hlZXQgPSAnc2hlZXQnLFxyXG5cclxuICAvLyBEUElfU2hlZXROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTaGVldE5hbWUgPSAnc2hlZXROYW1lJyxcclxuXHJcbiAgLy8gRFBJX1NvdXJjZURhc2hib2FyZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU291cmNlRGFzaGJvYXJkID0gJ3NvdXJjZURhc2hib2FyZCcsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VTaGVldCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU291cmNlU2hlZXQgPSAnc291cmNlU2hlZXQnLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0U2hlZXQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhcmdldFNoZWV0ID0gJ3RhcmdldFNoZWV0JyxcclxuXHJcbiAgLy8gRFBJX1dvcmtib29rTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgV29ya2Jvb2tOYW1lID0gJ3dvcmtib29rTmFtZScsXHJcblxyXG4gIC8vIERQSV9Xb3Jrc2hlZXQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFdvcmtzaGVldCA9ICd3b3Jrc2hlZXQnLFxyXG5cclxuICAvLyBEUElfQmFzZVZpZXdUaHVtYkxpbmssIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJhc2VWaWV3VGh1bWJMaW5rID0gJ2Jhc2VWaWV3VGh1bWJMaW5rJyxcclxuXHJcbiAgLy8gRFBJX0Jsb2dMaW5rLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBCbG9nTGluayA9ICdibG9nTGluaycsXHJcblxyXG4gIC8vIERQSV9DYWNoZVVybCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2FjaGVVcmwgPSAnY2FjaGVVcmwnLFxyXG5cclxuICAvLyBEUElfRG93bmxvYWRMaW5rLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEb3dubG9hZExpbmsgPSAnZG93bmxvYWRMaW5rJyxcclxuXHJcbiAgLy8gRFBJX1JlcG9zaXRvcnlVcmwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlcG9zaXRvcnlVcmwgPSAncmVwb3NpdG9yeVVybCcsXHJcblxyXG4gIC8vIERQSV9TaGFyZUxpbmssIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNoYXJlTGluayA9ICdzaGFyZUxpbmsnLFxyXG5cclxuICAvLyBEUElfVVJMLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBVUkwgPSAndXJsJyxcclxuXHJcbiAgLy8gRFBJX0NsdXN0ZXJNb2RlbEh0bWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENsdXN0ZXJNb2RlbEh0bWwgPSAnY2x1c3Rlck1vZGVsSHRtbCcsXHJcblxyXG4gIC8vIERQSV9DbHVzdGVyU3VtbWFyeUh0bWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENsdXN0ZXJTdW1tYXJ5SHRtbCA9ICdjbHVzdGVyU3VtbWFyeUh0bWwnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlclN1bW1hcnlTY2FsZWRIdG1sLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDbHVzdGVyU3VtbWFyeVNjYWxlZEh0bWwgPSAnY2x1c3RlclN1bW1hcnlTY2FsZWRIdG1sJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkRGVzY3JpcHRpb24gPSAnZmllbGREZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdE1vZGVsSHRtbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRm9yZWNhc3RNb2RlbEh0bWwgPSAnZm9yZWNhc3RNb2RlbEh0bWwnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RTdW1tYXJ5SHRtbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRm9yZWNhc3RTdW1tYXJ5SHRtbCA9ICdmb3JlY2FzdFN1bW1hcnlIdG1sJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0U3VtbWFyeVBjdEh0bWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcmVjYXN0U3VtbWFyeVBjdEh0bWwgPSAnZm9yZWNhc3RTdW1tYXJ5UGN0SHRtbCcsXHJcblxyXG4gIC8vIERQSV9IdG1sLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBIdG1sID0gJ2h0bWwnLFxyXG5cclxuICAvLyBEUElfSHRtbFNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSHRtbFNlbGVjdGlvbiA9ICdodG1sU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0h0bWxUb29sdGlwLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBIdG1sVG9vbHRpcCA9ICdodG1sVG9vbHRpcCcsXHJcblxyXG4gIC8vIERQSV9IdG1sVG9vbHRpcE1vZGlmaWVkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBIdG1sVG9vbHRpcE1vZGlmaWVkID0gJ2h0bWxUb29sdGlwTW9kaWZpZWQnLFxyXG5cclxuICAvLyBEUElfVGl0bGVIdG1sLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUaXRsZUh0bWwgPSAndGl0bGVIdG1sJyxcclxuXHJcbiAgLy8gRFBJX0NhY2hlVXJsSW5mb0pzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENhY2hlVXJsSW5mb0pzb24gPSAnY2FjaGVVcmxJbmZvSnNvbicsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJTZWFyY2hKc29uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWx0ZXJTZWFyY2hKc29uID0gJ2ZpbHRlclNlYXJjaEpzb24nLFxyXG5cclxuICAvLyBEUElfRmlsdGVyU2VhcmNoV2l0aEluZGV4SnNvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmlsdGVyU2VhcmNoV2l0aEluZGV4SnNvbiA9ICdmaWx0ZXJTZWFyY2hXaXRoSW5kZXhKc29uJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNob3dDaGlsZHJlbkpzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpbHRlclNob3dDaGlsZHJlbkpzb24gPSAnZmlsdGVyU2hvd0NoaWxkcmVuSnNvbicsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJzSnNvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmlsdGVyc0pzb24gPSAnZmlsdGVyc0pzb24nLFxyXG5cclxuICAvLyBEUElfRnJhbWVKc29uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGcmFtZUpzb24gPSAnZnJhbWVKc29uJyxcclxuXHJcbiAgLy8gRFBJX0dlb21ldHJ5SnNvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR2VvbWV0cnlKc29uID0gJ2dlb21ldHJ5SnNvbicsXHJcblxyXG4gIC8vIERQSV9HZXRGaWx0ZXJJdGVtc0pzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdldEZpbHRlckl0ZW1zSnNvbiA9ICdnZXRGaWx0ZXJJdGVtc0pzb24nLFxyXG5cclxuICAvLyBEUElfS2VlcE9ubHlSZXNwb25zZUpzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEtlZXBPbmx5UmVzcG9uc2VKc29uID0gJ2tlZXBPbmx5UmVzcG9uc2VKc29uJyxcclxuXHJcbiAgLy8gRFBJX01lbnVDb21tYW5kc0pzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1lbnVDb21tYW5kc0pzb24gPSAnbWVudUNvbW1hbmRzSnNvbicsXHJcblxyXG4gIC8vIERQSV9Nb2RpZmllZFNoZWV0c0pzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1vZGlmaWVkU2hlZXRzSnNvbiA9ICdtb2RpZmllZFNoZWV0c0pzb24nLFxyXG5cclxuICAvLyBEUElfUGFyYW1ldGVyQ3RybEpzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhcmFtZXRlckN0cmxKc29uID0gJ3BhcmFtZXRlckN0cmxKc29uJyxcclxuXHJcbiAgLy8gRFBJX1ZpZXdKc29uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWaWV3SnNvbiA9ICd2aWV3SnNvbicsXHJcblxyXG4gIC8vIERQSV9DdXN0b21pemVkVmlld1hNTCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ3VzdG9taXplZFZpZXdYTUwgPSAnY3VzdG9taXplZFZpZXdYbWwnLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZURlbHRhWE1MLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhc291cmNlRGVsdGFYTUwgPSAnZGF0YXNvdXJjZURlbHRhWG1sJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFzb3VyY2VYTUwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VYTUwgPSAnZGF0YXNvdXJjZVhtbCcsXHJcblxyXG4gIC8vIERQSV9LZXljaGFpblhNTCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgS2V5Y2hhaW5YTUwgPSAna2V5Y2hhaW5YbWwnLFxyXG5cclxuICAvLyBEUElfUGVybWlzc2lvbnNNb2RlbFhNTCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGVybWlzc2lvbnNNb2RlbFhNTCA9ICdwZXJtaXNzaW9uc01vZGVsWG1sJyxcclxuXHJcbiAgLy8gRFBJX1NoYXJlZFZpZXdzWE1MLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTaGFyZWRWaWV3c1hNTCA9ICdzaGFyZWRWaWV3c1htbCcsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRVUkwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhcmdldFVSTCA9ICd0YXJnZXRVcmwnLFxyXG5cclxuICAvLyBEUElfQW5jaG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBbmNob3IgPSAnYW5jaG9yJyxcclxuXHJcbiAgLy8gRFBJX0NlbnRlclZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDZW50ZXJWYWx1ZSA9ICdjZW50ZXJWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Db21wdXRlZEJpblNpemUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENvbXB1dGVkQmluU2l6ZSA9ICdjb21wdXRlZEJpblNpemUnLFxyXG5cclxuICAvLyBEUElfQ29uc3RhbnRWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29uc3RhbnRWYWx1ZSA9ICdjb25zdGFudFZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1BhaXJlZENvbnN0YW50VmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhaXJlZENvbnN0YW50VmFsdWUgPSAncGFpcmVkQ29uc3RhbnRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Db3VudERpc3RpbmN0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb3VudERpc3RpbmN0ID0gJ2NvdW50RGlzdGluY3QnLFxyXG5cclxuICAvLyBEUElfRGF0YU1heCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0YU1heCA9ICdkYXRhTWF4JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFNaW4sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFNaW4gPSAnZGF0YU1pbicsXHJcblxyXG4gIC8vIERQSV9EYXRhVmFsdWVTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFWYWx1ZVN0cmluZyA9ICdkYXRhVmFsdWVTdHInLFxyXG5cclxuICAvLyBEUElfRW5kVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEVuZFZhbHVlID0gJ2VuZFZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1JhbmdlTWF4LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSYW5nZU1heCA9ICdyYW5nZU1heCcsXHJcblxyXG4gIC8vIERQSV9SYW5nZU1pbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmFuZ2VNaW4gPSAncmFuZ2VNaW4nLFxyXG5cclxuICAvLyBEUElfUmFuZ2VTdGVwU2l6ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmFuZ2VTdGVwU2l6ZSA9ICdyYW5nZVN0ZXBTaXplJyxcclxuXHJcbiAgLy8gRFBJX1N0YXJ0VmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN0YXJ0VmFsdWUgPSAnc3RhcnRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFyZ2V0VmFsdWUgPSAndGFyZ2V0VmFsdWUnLFxyXG5cclxuICAvLyBEUElfVmFsdWVJbmMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFZhbHVlSW5jID0gJ3ZhbHVlSW5jJyxcclxuXHJcbiAgLy8gRFBJX1ZhbHVlTWF4LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWYWx1ZU1heCA9ICd2YWx1ZU1heCcsXHJcblxyXG4gIC8vIERQSV9WYWx1ZU1pbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVmFsdWVNaW4gPSAndmFsdWVNaW4nLFxyXG5cclxuICAvLyBEUElfUXVhbnRpbGVzVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFF1YW50aWxlc1ZhbHVlID0gJ3F1YW50aWxlc1ZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1VzZXJJbnB1dEJpblNpemUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVzZXJJbnB1dEJpblNpemUgPSAndXNlckJpblNpemUnLFxyXG5cclxuICAvLyBEUElfQWRkZWREYXRhU291cmNlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBZGRlZERhdGFTb3VyY2VzID0gJ2FkZGVkRGF0YVNvdXJjZU5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0FkZHJlc3NpbmdDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBZGRyZXNzaW5nQ2FwdGlvbnMgPSAnYWRkcmVzc2luZ0NhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0FnZ3JlZ2F0aW9uQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQWdncmVnYXRpb25DYXB0aW9ucyA9ICdhZ2dyZWdhdGlvbkNhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0F0VGhlTGV2ZWxDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBdFRoZUxldmVsQ2FwdGlvbnMgPSAnYXRUaGVMZXZlbENhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0F1dGhlbnRpY2F0aW9uU2V0dGluZ0xhYmVscywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBdXRoZW50aWNhdGlvblNldHRpbmdMYWJlbHMgPSAnYXV0aGVudGljYXRpb25TZXR0aW5nTGFiZWxzJyxcclxuXHJcbiAgLy8gRFBJX0F1dG9zYXZlRmlsZUlkc1ZlY3RvciwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBdXRvc2F2ZUZpbGVJZHNWZWN0b3IgPSAnYXV0b3NhdmVGaWxlSWRzVmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX0NoYW5nZWRUdXBsZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQ2hhbmdlZFR1cGxlcyA9ICdjaGFuZ2VkVHVwbGVzJyxcclxuXHJcbiAgLy8gRFBJX0NoYXJzZXRzQXZhaWxhYmxlLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIENoYXJzZXRzQXZhaWxhYmxlID0gJ2NoYXJzZXRzQXZhaWxhYmxlJyxcclxuXHJcbiAgLy8gRFBJX0NoYXJzZXREaXNwbGF5TmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQ2hhcnNldERpc3BsYXlOYW1lcyA9ICdjaGFyc2V0RGlzcGxheU5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yRmFjdG9ycywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb2xvckZhY3RvcnMgPSAnY29sb3JGYWN0b3JzJyxcclxuXHJcbiAgLy8gRFBJX0NvbHVtbkZ1bGxOYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb2x1bW5GdWxsTmFtZXMgPSAnY29sdW1uRnVsbE5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25OYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb25uZWN0aW9uTmFtZXMgPSAnY29ubmVjdGlvbk5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25DYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb25uZWN0aW9uQ2FwdGlvbnMgPSAnY29ubmVjdGlvbkNhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25CaWdRdWVyeUxlZ2FjeVNRTENoZWNrQm94LCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIENvbm5lY3Rpb25CaWdRdWVyeUxlZ2FjeVNRTENoZWNrQm94ID0gJ2Nvbm5lY3Rpb25CaWdxdWVyeUxlZ2FjeVNxbENoZWNrYm94JyxcclxuXHJcbiAgLy8gRFBJX0N1c3RvbUZpZWxkT3JkZXIsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQ3VzdG9tRmllbGRPcmRlciA9ICdjdXN0b21GaWVsZE9yZGVyJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VDbGFzc2VzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIERhdGFTb3VyY2VDbGFzc2VzID0gJ2RhdGFTb3VyY2VDbGFzc2VzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VOYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBEYXRhU291cmNlTmFtZXMgPSAnZGF0YVNvdXJjZU5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VOYW1lczIsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRGF0YVNvdXJjZU5hbWVzMiA9ICdkYXRhU291cmNlTmFtZXMyJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VzV2l0aEVtcHR5UmVsYXRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRGF0YVNvdXJjZXNXaXRoRW1wdHlSZWxhdGlvbiA9ICdkYXRhU291cmNlc1dpdGhFbXB0eVJlbGF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VDcmVhdGlvbkVycm9ycywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBEYXRhU291cmNlQ3JlYXRpb25FcnJvcnMgPSAnZGF0YVNvdXJjZUNyZWF0aW9uRXJyb3JzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGVGb3JtYXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIERhdGVGb3JtYXRzID0gJ2RhdGVGb3JtYXRzJyxcclxuXHJcbiAgLy8gRFBJX0RheU5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIERheU5hbWVzID0gJ2RheU5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0RyaWxsUGF0aFZlY3RvciwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBEcmlsbFBhdGhWZWN0b3IgPSAnZHJpbGxwYXRoVmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX0Vycm9yRGV0YWlscywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBFcnJvckRldGFpbHMgPSAnZXJyb3JEZXRhaWxzJyxcclxuXHJcbiAgLy8gRFBJX0V4Y2VwdGlvbk1lc3NhZ2VQYXJhbXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRXhjZXB0aW9uTWVzc2FnZVBhcmFtcyA9ICdleGNlcHRpb25NZXNzYWdlUGFyYW1zJyxcclxuXHJcbiAgLy8gRFBJX0V4Y2x1ZGVkU2hlZXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEV4Y2x1ZGVkU2hlZXRzID0gJ2V4Y2x1ZGVTaGVldHMnLFxyXG5cclxuICAvLyBEUElfRmllbGREaXNwbGF5TmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRmllbGREaXNwbGF5TmFtZXMgPSAnZmllbGREaXNwbGF5TmFtZXMnLFxyXG5cclxuICAvLyBEUElfRmllbGRGb2xkZXJWZWN0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRmllbGRGb2xkZXJWZWN0b3IgPSAnZmllbGRGb2xkZXJWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRmlsZUlkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBGaWxlSWRzID0gJ2ZpbGVJZHMnLFxyXG5cclxuICAvLyBEUElfRmlsZVBhdGhzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZpbGVQYXRocyA9ICdmaWxlUGF0aHMnLFxyXG5cclxuICAvLyBEUElfRmlsZU5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZpbGVOYW1lcyA9ICdmaWxlTmFtZXMnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyQWRkLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZpbHRlckFkZCA9ICdmaWx0ZXJBZGQnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyQWxpYXNlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBGaWx0ZXJBbGlhc2VzID0gJ2ZpbHRlclZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJSZW1vdmUsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRmlsdGVyUmVtb3ZlID0gJ2ZpbHRlclJlbW92ZScsXHJcblxyXG4gIC8vIERQSV9GaXhlZENhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZpeGVkQ2FwdGlvbnMgPSAnZml4ZWRDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9Gb250RmFtaWxpZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRm9udEZhbWlsaWVzID0gJ2ZvbnRGYW1pbGllcycsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXRTdHJpbmdzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZvcm1hdFN0cmluZ3MgPSAnZm9ybWF0U3RyaW5ncycsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXR0ZWRWYWx1ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRm9ybWF0dGVkVmFsdWVzID0gJ2Zvcm1hdHRlZFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9Gb3VuZFR1cGxlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBGb3VuZFR1cGxlcyA9ICdmb3VuZFR1cGxlcycsXHJcblxyXG4gIC8vIERQSV9GdWxsU2NoZWR1bGVzTGFiZWxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZ1bGxTY2hlZHVsZXNMYWJlbHMgPSAnZnVsbFNjaGVkdWxlc0xhYmVscycsXHJcblxyXG4gIC8vIERQSV9JbWFnZVJlc291cmNlTGlzdCwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBJbWFnZVJlc291cmNlTGlzdCA9ICdpbWFnZVJlc291cmNlcycsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlTGlzdCwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBJbmNsdWRlTGlzdCA9ICdpbmNsdWRlTGlzdCcsXHJcblxyXG4gIC8vIERQSV9JbmNyU2NoZWR1bGVzTGFiZWxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEluY3JTY2hlZHVsZXNMYWJlbHMgPSAnaW5jclNjaGVkdWxlc0xhYmVscycsXHJcblxyXG4gIC8vIERQSV9JbnZhbGlkRGF0ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgSW52YWxpZERhdGVzID0gJ2ludmFsaWREYXRlcycsXHJcblxyXG4gIC8vIERQSV9JbnZhbGlkVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEludmFsaWRWYWx1ZXMgPSAnaW52YWxpZFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9JdGVtVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEl0ZW1WYWx1ZXMgPSAnaXRlbVZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9Kb2luRWRpdGFibGVQcm9wcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBKb2luRWRpdGFibGVQcm9wcyA9ICdqb2luRWRpdGFibGVQcm9wcycsXHJcblxyXG4gIC8vIERQSV9Kb2luRmllbGRDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBKb2luRmllbGRDYXB0aW9ucyA9ICdqb2luRmllbGRDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9Mb2NhbGVPcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIExvY2FsZU9wdGlvbnMgPSAnbG9jYWxlT3B0aW9ucycsXHJcblxyXG4gIC8vIERQSV9Mb2NhbGVEaXNwbGF5TmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTG9jYWxlRGlzcGxheU5hbWVzID0gJ2xvY2FsZURpc3BsYXlOYW1lcycsXHJcblxyXG4gIC8vIERQSV9NYXBCb3hTdHlsZU1hcHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTWFwQm94U3R5bGVNYXBzID0gJ21hcGJveFN0eWxlTWFwcycsXHJcblxyXG4gIC8vIERQSV9NYXBDb25uZWN0aW9uRXJyb3JEZXRhaWxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIE1hcENvbm5lY3Rpb25FcnJvckRldGFpbHMgPSAnbWFwQ29ubmVjdGlvbkVycm9yRGV0YWlscycsXHJcblxyXG4gIC8vIERQSV9TaGVldE5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFNoZWV0TmFtZXMgPSAnc2hlZXROYW1lcycsXHJcblxyXG4gIC8vIERQSV9NYXBTb3VyY2VOYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBNYXBTb3VyY2VOYW1lcyA9ICdtYXBTb3VyY2VOYW1lcycsXHJcblxyXG4gIC8vIERQSV9NYXJrR2VvbWV0cmllcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBNYXJrR2VvbWV0cmllcyA9ICdtYXJrR2VvbWV0cmllcycsXHJcblxyXG4gIC8vIERQSV9NZW51SXRlbXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTWVudUl0ZW1zID0gJ21lbnVJdGVtcycsXHJcblxyXG4gIC8vIERQSV9Nb2RlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBNb2RlcyA9ICdtb2RlcycsXHJcblxyXG4gIC8vIERQSV9Nb250aE5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIE1vbnRoTmFtZXMgPSAnbW9udGhOYW1lcycsXHJcblxyXG4gIC8vIERQSV9OdW1iZXJGb3JtYXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIE51bWJlckZvcm1hdHMgPSAnbnVtYmVyRm9ybWF0cycsXHJcblxyXG4gIC8vIERQSV9PYmplY3RUZXh0SURzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIE9iamVjdFRleHRJRHMgPSAnb2JqZWN0VGV4dElkcycsXHJcblxyXG4gIC8vIERQSV9PbGRFeHRyYWN0cywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBPbGRFeHRyYWN0cyA9ICdvbGRFeHRyYWN0cycsXHJcblxyXG4gIC8vIERQSV9PcmRlcmluZ1R5cGVDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBPcmRlcmluZ1R5cGVDYXB0aW9ucyA9ICdvcmRlcmluZ1R5cGVDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9QYWdlTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUGFnZU5hbWVzID0gJ3BhZ2VOYW1lcycsXHJcblxyXG4gIC8vIERQSV9QYW5lRGVzY3JpcHRvcktleXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUGFuZURlc2NyaXB0b3JLZXlzID0gJ3BhbmVEZXNjcmlwdG9yS2V5cycsXHJcblxyXG4gIC8vIERQSV9QYXJhbUNhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFBhcmFtQ2FwdGlvbnMgPSAncGFyYW1DYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9QcmVjYW5uZWREYXRhVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFByZWNhbm5lZERhdGFWYWx1ZXMgPSAncHJlY2FubmVkRGF0YVZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoQ2hvaWNlTGFiZWxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFB1Ymxpc2hDaG9pY2VMYWJlbHMgPSAncHVibGlzaENob2ljZUxhYmVscycsXHJcblxyXG4gIC8vIERQSV9SYW5rVHlwZUNhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFJhbmtUeXBlQ2FwdGlvbnMgPSAncmFua1R5cGVDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9SZWNlbnRUYWdzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFJlY2VudFRhZ3MgPSAncmVjZW50VGFncycsXHJcblxyXG4gIC8vIERQSV9SZWxhdGl2ZUNhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFJlbGF0aXZlQ2FwdGlvbnMgPSAncmVsYXRpdmVDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9SZW1vdmVkRGF0YVNvdXJjZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVtb3ZlZERhdGFTb3VyY2VzID0gJ3JlbW92ZWREYXRhU291cmNlTmFtZXMnLFxyXG5cclxuICAvLyBEUElfUmVwcmVzZW50YXRpdmVUdXBsZSwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBSZXByZXNlbnRhdGl2ZVR1cGxlID0gJ3JlcHJlc2VudGF0aXZlVHVwbGUnLFxyXG5cclxuICAvLyBEUElfUmVzdGFydEV2ZXJ5Q2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVzdGFydEV2ZXJ5Q2FwdGlvbnMgPSAncmVzdGFydEV2ZXJ5Q2FwdGlvbnMnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hTWVtYmVyR2xvYmFsTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgU2NoZW1hTWVtYmVyR2xvYmFsTmFtZXMgPSAnc2NoZW1hTWVtYmVyR2xvYmFsTmFtZXMnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0VmFsdWVzTGlzdCwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBTZWxlY3RWYWx1ZXNMaXN0ID0gJ3NlbGVjdFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25WYWx1ZUxpc3QsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgU2VsZWN0aW9uVmFsdWVMaXN0ID0gJ3NlbGVjdGlvblZhbHVlTGlzdCcsXHJcblxyXG4gIC8vIERQSV9Tb3J0QWdnQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgU29ydEFnZ0NhcHRpb25zID0gJ3NvcnRBZ2dDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9Tb3J0RGlyZWN0aW9uQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgU29ydERpcmVjdGlvbkNhcHRpb25zID0gJ3NvcnREaXJlY3Rpb25DYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9Tb3J0RmllbGRDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBTb3J0RmllbGRDYXB0aW9ucyA9ICdzb3J0RmllbGRDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9Tb3J0RmllbGROYW1lVmVjdG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFNvcnRGaWVsZE5hbWVWZWN0b3IgPSAnc29ydEZpZWxkbmFtZVZlY3RvcicsXHJcblxyXG4gIC8vIERQSV9TdXBwb3J0ZWRKb2luT3BlcmF0b3JzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFN1cHBvcnRlZEpvaW5PcGVyYXRvcnMgPSAnc3VwcG9ydGVkSm9pbk9wZXJhdG9ycycsXHJcblxyXG4gIC8vIERQSV9UYWJsZUNhbGNUeXBlQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgVGFibGVDYWxjVHlwZUNhcHRpb25zID0gJ3RhYmxlQ2FsY1R5cGVDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9UYWdzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFRhZ3MgPSAndGFncycsXHJcblxyXG4gIC8vIERQSV9UZXJtVmVjLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFRlcm1WZWMgPSAndGVybVZlY3RvcicsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25MaXN0LCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFVJQXV0b21hdGlvbkxpc3QgPSAndWlBdXRvbWF0aW9uTGlzdCcsXHJcblxyXG4gIC8vIERQSV9SZWZlcmVuY2VMaW5lVmFsaWRDdXN0b21MYWJlbFRhZ3MsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVmZXJlbmNlTGluZVZhbGlkQ3VzdG9tTGFiZWxUYWdzID0gJ3ZhbGlkUmVmZXJlbmNlTGluZUN1c3RvbUxhYmVsVGFncycsXHJcblxyXG4gIC8vIERQSV9Mb2NhbGl6ZWRLZXl3b3JkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBMb2NhbGl6ZWRLZXl3b3JkcyA9ICdsb2NhbGl6ZWRLZXl3b3JkcycsXHJcblxyXG4gIC8vIERQSV9BdmFpbGFibGVDYWxlbmRhcnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQXZhaWxhYmxlQ2FsZW5kYXJzID0gJ2F2YWlsYWJsZUNhbGVuZGFycycsXHJcblxyXG4gIC8vIERQSV9TaGVldHNUb0JlRGVsZXRlZE9ySGlkZGVuLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFNoZWV0c1RvQmVEZWxldGVkT3JIaWRkZW4gPSAnc2hlZXRzVG9CZURlbGV0ZWRPckhpZGRlbicsXHJcblxyXG4gIC8vIERQSV9BZGRTaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQWRkU2hlZXRzID0gJ2FkZFNoZWV0cycsXHJcblxyXG4gIC8vIERQSV9OYW1lc09mU3Vic2hlZXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIE5hbWVzT2ZTdWJzaGVldHMgPSAnbmFtZXNPZlN1YnNoZWV0cycsXHJcblxyXG4gIC8vIERQSV9SZW1vdmVTaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVtb3ZlU2hlZXRzID0gJ3JlbW92ZVNoZWV0cycsXHJcblxyXG4gIC8vIERQSV9TY3JvbGxPZmZzZXRTaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgU2Nyb2xsT2Zmc2V0U2hlZXRzID0gJ3Njcm9sbE9mZnNldFNoZWV0cycsXHJcblxyXG4gIC8vIERQSV9TaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgU2hlZXRzID0gJ3NoZWV0cycsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VXb3Jrc2hlZXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFNvdXJjZVdvcmtzaGVldHMgPSAnc291cmNlV29ya3NoZWV0cycsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRFeGNsdWRlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBUYXJnZXRFeGNsdWRlcyA9ICd0YXJnZXRFeGNsdWRlJyxcclxuXHJcbiAgLy8gRFBJX1RhcmdldFdvcmtzaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgVGFyZ2V0V29ya3NoZWV0cyA9ICd0YXJnZXRXb3Jrc2hlZXRzJyxcclxuXHJcbiAgLy8gRFBJX1RpbGVVUkxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFRpbGVVUkxzID0gJ3RpbGVVcmxzJyxcclxuXHJcbiAgLy8gRFBJX0RldGFpbHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRGV0YWlscyA9ICdkZXRhaWxzJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRmllbGRDYXB0aW9ucyA9ICdmaWVsZENhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0hpZ2hsaWdodENhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEhpZ2hsaWdodENhcHRpb25zID0gJ2hpZ2hsaWdodENhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0xldmVsQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTGV2ZWxDYXB0aW9ucyA9ICdsZXZlbENhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0xldmVsTGVhZlZhbHVlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBMZXZlbExlYWZWYWx1ZXMgPSAnbGV2ZWxMZWFmVmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX1N1YnN0aXR1dGlvblZhcmlhYmxlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBTdWJzdGl0dXRpb25WYXJpYWJsZXMgPSAnc3Vic3RpdHV0aW9uVmFyaWFibGVzJyxcclxuXHJcbiAgLy8gRFBJX1N1YnN0aXR1dGlvblZhcmlhYmxlVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFN1YnN0aXR1dGlvblZhcmlhYmxlVmFsdWVzID0gJ3N1YnN0aXR1dGlvblZhcmlhYmxlVmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX0h0bWxUb29sdGlwcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBIdG1sVG9vbHRpcHMgPSAnaHRtbFRvb2x0aXBzJyxcclxuXHJcbiAgLy8gRFBJX0ludmFsaWRGaWVsZHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgSW52YWxpZEZpZWxkcyA9ICdpbnZhbGlkRmllbGRzJyxcclxuXHJcbiAgLy8gRFBJX05hbWVzT2ZDb2x1bW5zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIE5hbWVzT2ZDb2x1bW5zID0gJ25hbWVzT2ZDb2x1bW5zJyxcclxuXHJcbiAgLy8gRFBJX05hbWVzT2ZGaWVsZHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTmFtZXNPZkZpZWxkcyA9ICduYW1lc09mRmllbGRzJyxcclxuXHJcbiAgLy8gRFBJX1JlZmVyZW5jZWREYXRhc291cmNlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBSZWZlcmVuY2VkRGF0YXNvdXJjZXMgPSAncmVmZXJlbmNlZERhdGFTb3VyY2VMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0NTU0F0dHJzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBDU1NBdHRycyA9ICdjc3NBdHRycycsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlTWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBEYXRhU291cmNlTWFwID0gJ2RhdGFTb3VyY2VNYXAnLFxyXG5cclxuICAvLyBEUElfRXZlbnRQYXJhbWV0ZXJzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBFdmVudFBhcmFtZXRlcnMgPSAnZXZlbnRQYXJhbWV0ZXJzJyxcclxuXHJcbiAgLy8gRFBJX0V4Y2VwdGlvbkF0dHJzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBFeGNlcHRpb25BdHRycyA9ICdleGNlcHRpb25BdHRycycsXHJcblxyXG4gIC8vIERQSV9JbnZhbGlkU2hlZXRNZXNzYWdlLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBJbnZhbGlkU2hlZXRNZXNzYWdlID0gJ2ludmFsaWRTaGVldE1lc3NhZ2VzJyxcclxuXHJcbiAgLy8gRFBJX01hcEJveERlZmF1bHRTdHlsZSwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgTWFwQm94RGVmYXVsdFN0eWxlID0gJ21hcGJveERlZmF1bHRTdHlsZXMnLFxyXG5cclxuICAvLyBEUElfUGFuZUZvcm1hdHRpbmdzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBQYW5lRm9ybWF0dGluZ3MgPSAncGFuZUZvcm1hdHRpbmdzJyxcclxuXHJcbiAgLy8gRFBJX1NvdXJjZU5hbWVXaXRoQ2FwdGlvbiwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgU291cmNlTmFtZVdpdGhDYXB0aW9uID0gJ3NvdXJjZU5hbWVXaXRoQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uQ29sb3JNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIENvbm5lY3Rpb25Db2xvck1hcCA9ICdjb25uZWN0aW9uQ29sb3JNYXAnLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0TmFtZVdpdGhDYXB0aW9uLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBUYXJnZXROYW1lV2l0aENhcHRpb24gPSAndGFyZ2V0TmFtZVdpdGhDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1ZpZXdJZHMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIFZpZXdJZHMgPSAndmlld0lkcycsXHJcblxyXG4gIC8vIERQSV9BZGRJblNldHRpbmdzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBBZGRJblNldHRpbmdzID0gJ2FkZEluU2V0dGluZ3MnLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZUljb25zLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBEYXRhc291cmNlSWNvbnMgPSAnZGF0YXNvdXJjZUljb25zJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdHRlZFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcm1hdHRlZFRleHQgPSAnZm9ybWF0dGVkVGV4dCcsXHJcblxyXG4gIC8vIERQSV9JY29uVG9vbHRpcCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSWNvblRvb2x0aXAgPSAnaWNvblRvb2x0aXAnLFxyXG5cclxuICAvLyBEUElfVGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRpdGxlID0gJ3RpdGxlJyxcclxuXHJcbiAgLy8gRFBJX1Rvb2x0aXAsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRvb2x0aXAgPSAndG9vbHRpcCcsXHJcblxyXG4gIC8vIERQSV9ab25lVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgWm9uZVRleHQgPSAnem9uZVRleHQnLFxyXG5cclxuICAvLyBEUElfQWxpZ25tZW50RmxhZ3MsIGhhdmluZyB0eXBlIGludFxyXG4gIEFsaWdubWVudEZsYWdzID0gJ2FsaWdubWVudEZsYWdzJyxcclxuXHJcbiAgLy8gRFBJX0FscGhhTGV2ZWwsIGhhdmluZyB0eXBlIGludFxyXG4gIEFscGhhTGV2ZWwgPSAnYWxwaGFMZXZlbCcsXHJcblxyXG4gIC8vIERQSV9Bbm92YURGLCBoYXZpbmcgdHlwZSBpbnRcclxuICBBbm92YURGID0gJ2Fub3ZhRGYnLFxyXG5cclxuICAvLyBEUElfQXRUaGVMZXZlbEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBBdFRoZUxldmVsSW5kZXggPSAnYXRUaGVMZXZlbEluZGV4JyxcclxuXHJcbiAgLy8gRFBJX0F1dG9tYXRpY0RyaWxsSWR4SW5WZWN0b3IsIGhhdmluZyB0eXBlIGludFxyXG4gIEF1dG9tYXRpY0RyaWxsSWR4SW5WZWN0b3IgPSAnYXV0b21hdGljRHJpbGxJZHhWZWN0b3InLFxyXG5cclxuICAvLyBEUElfQXV0b1NpemUsIGhhdmluZyB0eXBlIGludFxyXG4gIEF1dG9TaXplID0gJ2F1dG9tYXRpY1NpemUnLFxyXG5cclxuICAvLyBEUElfQmFzZUNvb3JkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBCYXNlQ29vcmQgPSAnYmFzZUNvb3JkJyxcclxuXHJcbiAgLy8gRFBJX0NhbGNFZGl0b3JDdXJzb3JQb3NQb3N0RHJvcCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgQ2FsY0VkaXRvckN1cnNvclBvc1Bvc3REcm9wID0gJ2NhbGNFZGl0b3JDdXJzb3JQb3NQb3N0RHJvcCcsXHJcblxyXG4gIC8vIERQSV9DYWxjRWRpdG9yRHJvcFBvcywgaGF2aW5nIHR5cGUgaW50XHJcbiAgQ2FsY0VkaXRvckRyb3BQb3MgPSAnY2FsY0VkaXRvckRyb3BQb3MnLFxyXG5cclxuICAvLyBEUElfQ2FsY0VkaXRvclRleHRTZWxlY3Rpb25FbmRQb3MsIGhhdmluZyB0eXBlIGludFxyXG4gIENhbGNFZGl0b3JUZXh0U2VsZWN0aW9uRW5kUG9zID0gJ2NhbGNFZGl0b3JUZXh0U2VsZWN0aW9uRW5kUG9zJyxcclxuXHJcbiAgLy8gRFBJX0NhbGNFZGl0b3JUZXh0U2VsZWN0aW9uU3RhcnRQb3MsIGhhdmluZyB0eXBlIGludFxyXG4gIENhbGNFZGl0b3JUZXh0U2VsZWN0aW9uU3RhcnRQb3MgPSAnY2FsY0VkaXRvclRleHRTZWxlY3Rpb25TdGFydFBvcycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEJpbklkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDYXRlZ29yaWNhbEJpbklkID0gJ2NhdGVnb3JpY2FsQmluSWQnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaW5kQ29udHJvbGxlcklkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDYXRlZ29yaWNhbEZpbmRDb250cm9sbGVySWQgPSAnY2F0ZWdvcmljYWxGaW5kQ29udHJvbGxlcklkJyxcclxuXHJcbiAgLy8gRFBJX0NsYXVzZVRvTW9kaWZ5SW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIENsYXVzZVRvTW9kaWZ5SW5kZXggPSAnY2xhdXNlVG9Nb2RpZnlJbmRleCcsXHJcblxyXG4gIC8vIERQSV9DbGllbnRSZW5kZXJQaXhlbExpbWl0LCBoYXZpbmcgdHlwZSBpbnRcclxuICBDbGllbnRSZW5kZXJQaXhlbExpbWl0ID0gJ2NsaWVudFJlbmRlclBpeGVsTGltaXQnLFxyXG5cclxuICAvLyBEUElfQ29sQ291bnQsIGhhdmluZyB0eXBlIGludFxyXG4gIENvbENvdW50ID0gJ2NvbENvdW50JyxcclxuXHJcbiAgLy8gRFBJX0NvbFdpZHRoLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDb2xXaWR0aCA9ICdjb2xXaWR0aCcsXHJcblxyXG4gIC8vIERQSV9Db2x1bW5MZXZlbHMsIGhhdmluZyB0eXBlIGludFxyXG4gIENvbHVtbkxldmVscyA9ICdjb2x1bW5MZXZlbHMnLFxyXG5cclxuICAvLyBEUElfQ29sdW1uTnVtYmVyLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDb2x1bW5OdW1iZXIgPSAnY29sdW1uTnVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX0NvbHVtbldpZHRoLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDb2x1bW5XaWR0aCA9ICdjb2x1bW5XaWR0aCcsXHJcblxyXG4gIC8vIERQSV9Db250ZW50SGVpZ2h0LCBoYXZpbmcgdHlwZSBpbnRcclxuICBDb250ZW50SGVpZ2h0ID0gJ2NvbnRlbnRIJyxcclxuXHJcbiAgLy8gRFBJX0NvbnRlbnRXaWR0aCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgQ29udGVudFdpZHRoID0gJ2NvbnRlbnRXJyxcclxuXHJcbiAgLy8gRFBJX0NvbnRlbnRYLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDb250ZW50WCA9ICdjb250ZW50WCcsXHJcblxyXG4gIC8vIERQSV9Db250ZW50WSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgQ29udGVudFkgPSAnY29udGVudFknLFxyXG5cclxuICAvLyBEUElfQ29vcmRpbmF0ZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgQ29vcmRpbmF0ZSA9ICdjb29yZCcsXHJcblxyXG4gIC8vIERQSV9DdXJEYXRlQWdnLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDdXJEYXRlQWdnID0gJ2N1ckRhdGVBZ2cnLFxyXG5cclxuICAvLyBEUElfQ3VycmVudEN1c3RWaWV3SWQsIGhhdmluZyB0eXBlIGludFxyXG4gIEN1cnJlbnRDdXN0Vmlld0lkID0gJ2N1cnJlbnRDdXN0b21WaWV3SWQnLFxyXG5cclxuICAvLyBEUElfQ3VzdG9tU3BsaXRDaGFyYWN0ZXJDb3VudFNlcGFyYXRvciwgaGF2aW5nIHR5cGUgaW50XHJcbiAgQ3VzdG9tU3BsaXRDaGFyYWN0ZXJDb3VudFNlcGFyYXRvciA9ICdjdXN0b21TcGxpdENoYXJhY3RlckNvdW50U2VwYXJhdG9yJyxcclxuXHJcbiAgLy8gRFBJX0N1c3RvbVNwbGl0RGVzaXJlZFNwbGl0Q291bnQsIGhhdmluZyB0eXBlIGludFxyXG4gIEN1c3RvbVNwbGl0RGVzaXJlZFNwbGl0Q291bnQgPSAnY3VzdG9tU3BsaXREZXNpcmVkU3BsaXRDb3VudCcsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRHcmlkU2l6ZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgRGFzaGJvYXJkR3JpZFNpemUgPSAnZGFzaGJvYXJkR3JpZFNpemUnLFxyXG5cclxuICAvLyBEUElfRGF0YUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBEYXRhSW5kZXggPSAnZGF0YUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX0RlY2ltYWxQbGFjZXMsIGhhdmluZyB0eXBlIGludFxyXG4gIERlY2ltYWxQbGFjZXMgPSAnZGVjaW1hbFBsYWNlcycsXHJcblxyXG4gIC8vIERQSV9EZWx0YVRpbWUsIGhhdmluZyB0eXBlIGludFxyXG4gIERlbHRhVGltZSA9ICdkZWx0YVRpbWUnLFxyXG5cclxuICAvLyBEUElfRGVzdFBpeCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgRGVzdFBpeCA9ICdkZXN0UGl4JyxcclxuXHJcbiAgLy8gRFBJX0RldmljZUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBEZXZpY2VJbmRleCA9ICdkZXZpY2VJbmRleCcsXHJcblxyXG4gIC8vIERQSV9EdXJhdGlvbiwgaGF2aW5nIHR5cGUgaW50XHJcbiAgRHVyYXRpb24gPSAnZHVyYXRpb24nLFxyXG5cclxuICAvLyBEUElfRW5kUHRYLCBoYXZpbmcgdHlwZSBpbnRcclxuICBFbmRQdFggPSAnZW5kWCcsXHJcblxyXG4gIC8vIERQSV9FbmRQdFksIGhhdmluZyB0eXBlIGludFxyXG4gIEVuZFB0WSA9ICdlbmRZJyxcclxuXHJcbiAgLy8gRFBJX0Vycm9yTGVuLCBoYXZpbmcgdHlwZSBpbnRcclxuICBFcnJvckxlbiA9ICdsZW5ndGhPZkNhbGNPZkVycm9yJyxcclxuXHJcbiAgLy8gRFBJX0Vycm9yUG9zLCBoYXZpbmcgdHlwZSBpbnRcclxuICBFcnJvclBvcyA9ICdzdGFydFBvc2l0aW9uRm9yRXJyb3InLFxyXG5cclxuICAvLyBEUElfRXhjZXB0aW9uRXJyb3JNZXNzYWdlSWQsIGhhdmluZyB0eXBlIGludFxyXG4gIEV4Y2VwdGlvbkVycm9yTWVzc2FnZUlkID0gJ2V4Y2VwdGlvbkVycm9yTWVzc2FnZUlkJyxcclxuXHJcbiAgLy8gRFBJX0V4dGVudHNILCBoYXZpbmcgdHlwZSBpbnRcclxuICBFeHRlbnRzSCA9ICdleHRlbnRzSGVpZ2h0JyxcclxuXHJcbiAgLy8gRFBJX0V4dGVudHNXLCBoYXZpbmcgdHlwZSBpbnRcclxuICBFeHRlbnRzVyA9ICdleHRlbnRzV2lkdGgnLFxyXG5cclxuICAvLyBEUElfRXh0ZW50c1gsIGhhdmluZyB0eXBlIGludFxyXG4gIEV4dGVudHNYID0gJ2V4dGVudHNYJyxcclxuXHJcbiAgLy8gRFBJX0V4dGVudHNZLCBoYXZpbmcgdHlwZSBpbnRcclxuICBFeHRlbnRzWSA9ICdleHRlbnRzWScsXHJcblxyXG4gIC8vIERQSV9GaWVsZEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBGaWVsZEluZGV4ID0gJ2ZpZWxkSW5kZXgnLFxyXG5cclxuICAvLyBEUElfRmllbGROYW1lSWQsIGhhdmluZyB0eXBlIGludFxyXG4gIEZpZWxkTmFtZUlkID0gJ2ZpZWxkTmFtZUlkJyxcclxuXHJcbiAgLy8gRFBJX0ZpcnN0RGF5T2ZXZWVrLCBoYXZpbmcgdHlwZSBpbnRcclxuICBGaXJzdERheU9mV2VlayA9ICdmaXJzdERheU9mV2VlaycsXHJcblxyXG4gIC8vIERQSV9GaXJzdExpbmtlZExldmVsLCBoYXZpbmcgdHlwZSBpbnRcclxuICBGaXJzdExpbmtlZExldmVsID0gJ2ZpcnN0TGlua2VkTGV2ZWwnLFxyXG5cclxuICAvLyBEUElfRmlyc3RWYWx1ZUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBGaXJzdFZhbHVlSW5kZXggPSAnZmlyc3RWYWx1ZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX0ZpeGVkU2l6ZVByZXNldEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBGaXhlZFNpemVQcmVzZXRJbmRleCA9ICdmaXhlZFNpemVQcmVzZXRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9Gb2N1c0l0ZW1JbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgRm9jdXNJdGVtSW5kZXggPSAnZm9jdXNJdGVtSW5kZXgnLFxyXG5cclxuICAvLyBEUElfRm9udFNpemUsIGhhdmluZyB0eXBlIGludFxyXG4gIEZvbnRTaXplID0gJ2ZvbnRTaXplJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0SW50UmFuZ2VFbmQsIGhhdmluZyB0eXBlIGludFxyXG4gIEZvcmVjYXN0SW50UmFuZ2VFbmQgPSAnZm9yZWNhc3RJbnRSYW5nZUVuZCcsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdEludFJhbmdlU3RhcnQsIGhhdmluZyB0eXBlIGludFxyXG4gIEZvcmVjYXN0SW50UmFuZ2VTdGFydCA9ICdmb3JlY2FzdEludFJhbmdlU3RhcnQnLFxyXG5cclxuICAvLyBEUElfRnVuY3Rpb25IZWxwSW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIEZ1bmN0aW9uSGVscEluZGV4ID0gJ2Z1bmN0aW9uSGVscEluZGV4JyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hNYXhSZXN1bHRzLCBoYXZpbmcgdHlwZSBpbnRcclxuICBHZW9ncmFwaGljU2VhcmNoTWF4UmVzdWx0cyA9ICdnZW9ncmFwaGljU2VhcmNoTWF4UmVzdWx0cycsXHJcblxyXG4gIC8vIERQSV9IZWlnaHQsIGhhdmluZyB0eXBlIGludFxyXG4gIEhlaWdodCA9ICdoJyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeUxldmVsLCBoYXZpbmcgdHlwZSBpbnRcclxuICBIaWVyYXJjaHlMZXZlbCA9ICdoaWVyYXJjaHlMZXZlbCcsXHJcblxyXG4gIC8vIERQSV9IaWVyYXJjaHlMZXZlbExvYWRlZCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSGllcmFyY2h5TGV2ZWxMb2FkZWQgPSAnaGllcmFyY2h5TGV2ZWxMb2FkZWQnLFxyXG5cclxuICAvLyBEUElfSGllcmFyY2h5TGV2ZWxNaW5pbXVtLCBoYXZpbmcgdHlwZSBpbnRcclxuICBIaWVyYXJjaHlMZXZlbE1pbmltdW0gPSAnaGllcmFyY2h5TGV2ZWxNaW5pbXVtJyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeUxvYWRMaW1pdCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSGllcmFyY2h5TG9hZExpbWl0ID0gJ2hpZXJhcmNoeUxvYWRMaW1pdCcsXHJcblxyXG4gIC8vIERQSV9IaWVyYXJjaHlTZWxlY3RDb250cm9sbGVySWQsIGhhdmluZyB0eXBlIGludFxyXG4gIEhpZXJhcmNoeVNlbGVjdENvbnRyb2xsZXJJZCA9ICdoaWVyYXJjaHlTZWxlY3RDb250cm9sbGVySWQnLFxyXG5cclxuICAvLyBEUElfSG9yelRleHRDZWxsLCBoYXZpbmcgdHlwZSBpbnRcclxuICBIb3J6VGV4dENlbGwgPSAnaG9yelRleHRDZWxsJyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlSW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIEltYWdlSW5kZXggPSAnaW1hZ2VJbmRleCcsXHJcblxyXG4gIC8vIERQSV9JbWFnZVNpemVMaW1pdCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW1hZ2VTaXplTGltaXQgPSAnaW1hZ2VTaXplTGltaXQnLFxyXG5cclxuICAvLyBEUElfVHJhbnNwYXJlbnRMaW5lTWFya3NMaW1pdCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgVHJhbnNwYXJlbnRMaW5lTWFya3NMaW1pdCA9ICd0cmFuc3BhcmVudExpbmVNYXJrc0xpbWl0JyxcclxuXHJcbiAgLy8gRFBJX0luZGVudCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZW50ID0gJ2luZGVudCcsXHJcblxyXG4gIC8vIERQSV9JbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZXggPSAnaWR4JyxcclxuXHJcbiAgLy8gRFBJX0luZGV4RnJvbSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZXhGcm9tID0gJ2luZGV4RnJvbScsXHJcblxyXG4gIC8vIERQSV9JbmRleE9mZnNldCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZXhPZmZzZXQgPSAnaW5kZXhPZmZzZXQnLFxyXG5cclxuICAvLyBEUElfSW5kZXhSZWxhdGl2ZURhdGVGaWVsZCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZXhSZWxhdGl2ZURhdGVGaWVsZCA9ICdpbmRpZXhSZWxhdGl2ZURhdGVGaWVsZCcsXHJcblxyXG4gIC8vIERQSV9JbmRleFNlbGVjdGVkSXRlbSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZXhTZWxlY3RlZEl0ZW0gPSAnaW5kZXhTZWxlY3RlZEl0ZW0nLFxyXG5cclxuICAvLyBEUElfSW5kZXhUbywgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZXhUbyA9ICdpbmRleFRvJyxcclxuXHJcbiAgLy8gRFBJX0lubGluZUNvbm5lY3Rpb25SZW5hbWVSb3csIGhhdmluZyB0eXBlIGludFxyXG4gIElubGluZUNvbm5lY3Rpb25SZW5hbWVSb3cgPSAnaW5saW5lQ29ubmVjdGlvblJlbmFtZVJvdycsXHJcblxyXG4gIC8vIERQSV9JbnNlcnRQb3MsIGhhdmluZyB0eXBlIGludFxyXG4gIEluc2VydFBvcyA9ICdpbnNlcnRQb3MnLFxyXG5cclxuICAvLyBEUElfSXNIYXNEYXRhU3VwcG9ydGVkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBJc0hhc0RhdGFTdXBwb3J0ZWQgPSAnaXNIYXNEYXRhU3VwcG9ydGVkJyxcclxuXHJcbiAgLy8gRFBJX0xlZnRNYXJnaW4sIGhhdmluZyB0eXBlIGludFxyXG4gIExlZnRNYXJnaW4gPSAnbGVmdE1hcmdpbicsXHJcblxyXG4gIC8vIERQSV9MZWZ0UmlnaHRCb3JkZXJXaWR0aCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTGVmdFJpZ2h0Qm9yZGVyV2lkdGggPSAnbGVmdFJpZ2h0Qm9yZGVyV2lkdGgnLFxyXG5cclxuICAvLyBEUElfTGV2ZWxOdW1iZXIsIGhhdmluZyB0eXBlIGludFxyXG4gIExldmVsTnVtYmVyID0gJ2xldmVsTnVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX0xvd2VyQm91bmQsIGhhdmluZyB0eXBlIGludFxyXG4gIExvd2VyQm91bmQgPSAnbG93ZXJCb3VuZCcsXHJcblxyXG4gIC8vIERQSV9NYXBSZXF1ZXN0UGl4ZWxzLCBoYXZpbmcgdHlwZSBpbnRcclxuICBNYXBSZXF1ZXN0UGl4ZWxzID0gJ21hcFJlcXVlc3RQaXhlbHMnLFxyXG5cclxuICAvLyBEUElfTWFwU2NhbGVGb250U2l6ZVBpeGVscywgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWFwU2NhbGVGb250U2l6ZVBpeGVscyA9ICdtYXBTY2FsZUZvbnRTaXplUGl4ZWxzJyxcclxuXHJcbiAgLy8gRFBJX01hcFNjYWxlUmVhZG91dE51bWJlciwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWFwU2NhbGVSZWFkb3V0TnVtYmVyID0gJ21hcFNjYWxlUmVhZG91dE51bWJlcicsXHJcblxyXG4gIC8vIERQSV9NYXBTY2FsZVdpZHRoLCBoYXZpbmcgdHlwZSBpbnRcclxuICBNYXBTY2FsZVdpZHRoID0gJ21hcFNjYWxlV2lkdGgnLFxyXG5cclxuICAvLyBEUElfTWFwVGlsZVNpemUsIGhhdmluZyB0eXBlIGludFxyXG4gIE1hcFRpbGVTaXplID0gJ21hcFRpbGVTaXplJyxcclxuXHJcbiAgLy8gRFBJX01hcmdpbiwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWFyZ2luID0gJ21hcmdpbicsXHJcblxyXG4gIC8vIERQSV9NYXJnaW5Cb3R0b20sIGhhdmluZyB0eXBlIGludFxyXG4gIE1hcmdpbkJvdHRvbSA9ICdtYXJnaW5Cb3R0b20nLFxyXG5cclxuICAvLyBEUElfTWFyZ2luTGVmdCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWFyZ2luTGVmdCA9ICdtYXJnaW5MZWZ0JyxcclxuXHJcbiAgLy8gRFBJX01hcmdpblJpZ2h0LCBoYXZpbmcgdHlwZSBpbnRcclxuICBNYXJnaW5SaWdodCA9ICdtYXJnaW5SaWdodCcsXHJcblxyXG4gIC8vIERQSV9NYXJnaW5Ub3AsIGhhdmluZyB0eXBlIGludFxyXG4gIE1hcmdpblRvcCA9ICdtYXJnaW5Ub3AnLFxyXG5cclxuICAvLyBEUElfTWF4Q2VsbCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWF4Q2VsbCA9ICdtYXhDZWxsJyxcclxuXHJcbiAgLy8gRFBJX01heEl0ZW1TcGFuLCBoYXZpbmcgdHlwZSBpbnRcclxuICBNYXhJdGVtU3BhbiA9ICdtYXhJdGVtU3BhbicsXHJcblxyXG4gIC8vIERQSV9NYXhQb2x5bm9taWFsRGVncmVlLCBoYXZpbmcgdHlwZSBpbnRcclxuICBNYXhQb2x5bm9taWFsRGVncmVlID0gJ21heERlZ3JlZScsXHJcblxyXG4gIC8vIERQSV9NYXhQb3NpdGlvbiwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWF4UG9zaXRpb24gPSAnbWF4UG9zaXRpb24nLFxyXG5cclxuICAvLyBEUElfTWF4U2l6ZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWF4U2l6ZSA9ICdtYXhTaXplJyxcclxuXHJcbiAgLy8gRFBJX01pbkNlbGwsIGhhdmluZyB0eXBlIGludFxyXG4gIE1pbkNlbGwgPSAnbWluQ2VsbCcsXHJcblxyXG4gIC8vIERQSV9NaW5Qb2x5bm9taWFsRGVncmVlLCBoYXZpbmcgdHlwZSBpbnRcclxuICBNaW5Qb2x5bm9taWFsRGVncmVlID0gJ21pbkRlZ3JlZScsXHJcblxyXG4gIC8vIERQSV9NaW5Qb3NpdGlvbiwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWluUG9zaXRpb24gPSAnbWluUG9zaXRpb24nLFxyXG5cclxuICAvLyBEUElfTWluU2l6ZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWluU2l6ZSA9ICdtaW5TaXplJyxcclxuXHJcbiAgLy8gRFBJX01vZGVsREYsIGhhdmluZyB0eXBlIGludFxyXG4gIE1vZGVsREYgPSAnbW9kZWxEZicsXHJcblxyXG4gIC8vIERQSV9OZXdJbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTmV3SW5kZXggPSAnbmV3SW5kZXgnLFxyXG5cclxuICAvLyBEUElfTnVtRGF0YVNvdXJjZXNVc2luZ1NlcnZlciwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTnVtRGF0YVNvdXJjZXNVc2luZ1NlcnZlciA9ICdudW1EYXRhU291cmNlc1VzaW5nU2VydmVyJyxcclxuXHJcbiAgLy8gRFBJX051bUZpbHRlcmVkT2JzLCBoYXZpbmcgdHlwZSBpbnRcclxuICBOdW1GaWx0ZXJlZE9icyA9ICdmaWx0ZXJlZE9ic2VydmF0aW9ucycsXHJcblxyXG4gIC8vIERQSV9OdW1Nb2RlbGVkT2JzLCBoYXZpbmcgdHlwZSBpbnRcclxuICBOdW1Nb2RlbGVkT2JzID0gJ21vZGVsZWRPYnNlcnZhdGlvbnMnLFxyXG5cclxuICAvLyBEUElfTnVtTm90Q2x1c3RlcmVkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBOdW1Ob3RDbHVzdGVyZWQgPSAnbnVtTm90Q2x1c3RlcmVkJyxcclxuXHJcbiAgLy8gRFBJX051bU51bWVyaWNGaWVsZHMsIGhhdmluZyB0eXBlIGludFxyXG4gIE51bU51bWVyaWNGaWVsZHMgPSAnbnVtTnVtZXJpY0ZpZWxkcycsXHJcblxyXG4gIC8vIERQSV9OdW1PdXRsaWVycywgaGF2aW5nIHR5cGUgaW50XHJcbiAgTnVtT3V0bGllcnMgPSAnbnVtT3V0bGllcnMnLFxyXG5cclxuICAvLyBEUElfTnVtUm93cywgaGF2aW5nIHR5cGUgaW50XHJcbiAgTnVtUm93cyA9ICdudW1Sb3dzJyxcclxuXHJcbiAgLy8gRFBJX051bVNlbGVjdGVkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBOdW1TZWxlY3RlZCA9ICdudW1TZWxlY3RlZCcsXHJcblxyXG4gIC8vIERQSV9PZmZzZXRYLCBoYXZpbmcgdHlwZSBpbnRcclxuICBPZmZzZXRYID0gJ29mZnNldFgnLFxyXG5cclxuICAvLyBEUElfT2Zmc2V0WSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgT2Zmc2V0WSA9ICdvZmZzZXRZJyxcclxuXHJcbiAgLy8gRFBJX1BhZGRpbmcsIGhhdmluZyB0eXBlIGludFxyXG4gIFBhZGRpbmcgPSAncGFkZGluZycsXHJcblxyXG4gIC8vIERQSV9QYWRkaW5nQm90dG9tLCBoYXZpbmcgdHlwZSBpbnRcclxuICBQYWRkaW5nQm90dG9tID0gJ3BhZGRpbmdCb3R0b20nLFxyXG5cclxuICAvLyBEUElfUGFkZGluZ0xlZnQsIGhhdmluZyB0eXBlIGludFxyXG4gIFBhZGRpbmdMZWZ0ID0gJ3BhZGRpbmdMZWZ0JyxcclxuXHJcbiAgLy8gRFBJX1BhZGRpbmdSaWdodCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUGFkZGluZ1JpZ2h0ID0gJ3BhZGRpbmdSaWdodCcsXHJcblxyXG4gIC8vIERQSV9QYWRkaW5nVG9wLCBoYXZpbmcgdHlwZSBpbnRcclxuICBQYWRkaW5nVG9wID0gJ3BhZGRpbmdUb3AnLFxyXG5cclxuICAvLyBEUElfUGFnZUxvYWRQZXJjZW50YWdlLCBoYXZpbmcgdHlwZSBpbnRcclxuICBQYWdlTG9hZFBlcmNlbnRhZ2UgPSAncGFnZUxvYWRQZXJjZW50YWdlJyxcclxuXHJcbiAgLy8gRFBJX1BhbGV0dGVJbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUGFsZXR0ZUluZGV4ID0gJ3BhbGV0dGVJbmRleCcsXHJcblxyXG4gIC8vIERQSV9QYW5lU3BlY2lmaWNhdGlvbklkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBQYW5lU3BlY2lmaWNhdGlvbklkID0gJ3BhbmVTcGVjJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlckN0cmxJbmNyZW1lbnRzUGVyVGljaywgaGF2aW5nIHR5cGUgaW50XHJcbiAgUGFyYW1ldGVyQ3RybEluY3JlbWVudHNQZXJUaWNrID0gJ3BhcmFtZXRlckNvbnRyb2xJbmNyZW1lbnRNdWx0aXBsaWVyJyxcclxuXHJcbiAgLy8gRFBJX1BvbHlub21pYWxEZWdyZWUsIGhhdmluZyB0eXBlIGludFxyXG4gIFBvbHlub21pYWxEZWdyZWUgPSAnZGVncmVlJyxcclxuXHJcbiAgLy8gRFBJX1BvcnQsIGhhdmluZyB0eXBlIGludFxyXG4gIFBvcnQgPSAnZGF0YXNvdXJjZVBvcnQnLFxyXG5cclxuICAvLyBEUElfUG9zaXRpb24sIGhhdmluZyB0eXBlIGludFxyXG4gIFBvc2l0aW9uID0gJ3Bvc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1BhcmVudFByb2plY3RJZCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUGFyZW50UHJvamVjdElkID0gJ3BhcmVudFByb2plY3RJZCcsXHJcblxyXG4gIC8vIERQSV9SYWRpdXMsIGhhdmluZyB0eXBlIGludFxyXG4gIFJhZGl1cyA9ICdyYWRpdXMnLFxyXG5cclxuICAvLyBEUElfUmVhZG91dE9mZnNldCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUmVhZG91dE9mZnNldCA9ICdyZWFkb3V0T2Zmc2V0JyxcclxuXHJcbiAgLy8gRFBJX1JlZmVyZW5jZUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBSZWZlcmVuY2VJbmRleCA9ICdyZWZlcmVuY2VJbmRleCcsXHJcblxyXG4gIC8vIERQSV9SZWdpb25IZWlnaHQsIGhhdmluZyB0eXBlIGludFxyXG4gIFJlZ2lvbkhlaWdodCA9ICdyZWdpb25IZWlnaHQnLFxyXG5cclxuICAvLyBEUElfUmVnaW9uV2lkdGgsIGhhdmluZyB0eXBlIGludFxyXG4gIFJlZ2lvbldpZHRoID0gJ3JlZ2lvbldpZHRoJyxcclxuXHJcbiAgLy8gRFBJX1JlbW92ZWREYXRhc291cmNlQ291bnQsIGhhdmluZyB0eXBlIGludFxyXG4gIFJlbW92ZWREYXRhc291cmNlQ291bnQgPSAncmVtb3ZlZERhdGFzb3VyY2VDb3VudCcsXHJcblxyXG4gIC8vIERQSV9SZW1vdmVkU2hlZXRDb3VudCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUmVtb3ZlZFNoZWV0Q291bnQgPSAncmVtb3ZlZFNoZWV0Q291bnQnLFxyXG5cclxuICAvLyBEUElfUmVzaWR1YWxERiwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUmVzaWR1YWxERiA9ICdyZXNpZHVhbERmJyxcclxuXHJcbiAgLy8gRFBJX1Jlc2l6ZUNvbHVtbiwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUmVzaXplQ29sdW1uID0gJ3Jlc2l6ZUNvbHVtbicsXHJcblxyXG4gIC8vIERQSV9SZXN0YXJ0RXZlcnlJbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUmVzdGFydEV2ZXJ5SW5kZXggPSAncmVzdGFydEV2ZXJ5SW5kZXgnLFxyXG5cclxuICAvLyBEUElfUmlnaHRNYXJnaW4sIGhhdmluZyB0eXBlIGludFxyXG4gIFJpZ2h0TWFyZ2luID0gJ3JpZ2h0TWFyZ2luJyxcclxuXHJcbiAgLy8gRFBJX1Jvd0NvdW50LCBoYXZpbmcgdHlwZSBpbnRcclxuICBSb3dDb3VudCA9ICdyb3dDb3VudCcsXHJcblxyXG4gIC8vIERQSV9Sb3dIZWlnaHQsIGhhdmluZyB0eXBlIGludFxyXG4gIFJvd0hlaWdodCA9ICdyb3dIZWlnaHQnLFxyXG5cclxuICAvLyBEUElfUm93SW5uZXJMZXZlbHMsIGhhdmluZyB0eXBlIGludFxyXG4gIFJvd0lubmVyTGV2ZWxzID0gJ3Jvd0lubmVyTGV2ZWxzJyxcclxuXHJcbiAgLy8gRFBJX1Jvd0xldmVscywgaGF2aW5nIHR5cGUgaW50XHJcbiAgUm93TGV2ZWxzID0gJ3Jvd0xldmVscycsXHJcblxyXG4gIC8vIERQSV9Sb3dOdW1iZXIsIGhhdmluZyB0eXBlIGludFxyXG4gIFJvd051bWJlciA9ICdyb3dOdW1iZXInLFxyXG5cclxuICAvLyBEUElfUm93V2lkdGgsIGhhdmluZyB0eXBlIGludFxyXG4gIFJvd1dpZHRoID0gJ3Jvd1dpZHRoJyxcclxuXHJcbiAgLy8gRFBJX1NlY29uZExpbmtlZExldmVsLCBoYXZpbmcgdHlwZSBpbnRcclxuICBTZWNvbmRMaW5rZWRMZXZlbCA9ICdzZWNvbmRMaW5rZWRMZXZlbCcsXHJcblxyXG4gIC8vIERQSV9TZWNvbmRWYWx1ZUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBTZWNvbmRWYWx1ZUluZGV4ID0gJ3NlY29uZFZhbHVlSW5kZXgnLFxyXG5cclxuICAvLyBEUElfU2Vjb25kc0FnbywgaGF2aW5nIHR5cGUgaW50XHJcbiAgU2Vjb25kc0FnbyA9ICdzZWNvbmRzQWdvJyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGlvbkVuZCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU2VsZWN0aW9uRW5kID0gJ3NlbGVjdGlvbkVuZCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25TdGFydCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU2VsZWN0aW9uU3RhcnQgPSAnc2VsZWN0aW9uU3RhcnQnLFxyXG5cclxuICAvLyBEUElfU2hhcGVQYWxldHRlSUQsIGhhdmluZyB0eXBlIGludFxyXG4gIFNoYXBlUGFsZXR0ZUlEID0gJ3NoYXBlUGFsZXR0ZUlkJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0SW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNoZWV0SW5kZXggPSAnc2hlZXRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9TaGVsZlBvc2l0aW9uSW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNoZWxmUG9zaXRpb25JbmRleCA9ICdzaGVsZlBvc0luZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NpemUsIGhhdmluZyB0eXBlIGludFxyXG4gIFNpemUgPSAnc2l6ZScsXHJcblxyXG4gIC8vIERQSV9TaXplRGlmZmVyZW5jZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU2l6ZURpZmZlcmVuY2UgPSAnc2l6ZURlbHRhJyxcclxuXHJcbiAgLy8gRFBJX1NuYXBEaXN0YW5jZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU25hcERpc3RhbmNlID0gJ3NuYXBEaXN0YW5jZScsXHJcblxyXG4gIC8vIERQSV9TbmFwTG9jYXRpb24sIGhhdmluZyB0eXBlIGludFxyXG4gIFNuYXBMb2NhdGlvbiA9ICdzbmFwTG9jYXRpb24nLFxyXG5cclxuICAvLyBEUElfU29sdmVPcmRlciwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU29sdmVPcmRlciA9ICdzb2x2ZU9yZGVyJyxcclxuXHJcbiAgLy8gRFBJX1NwYWNlQmV0d2VlblBvaW50cywgaGF2aW5nIHR5cGUgaW50XHJcbiAgU3BhY2VCZXR3ZWVuUG9pbnRzID0gJ3NwYWNlQmV0d2VlblBvaW50cycsXHJcblxyXG4gIC8vIERQSV9TdGVwU2l6ZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU3RlcFNpemUgPSAnc3RlcFNpemUnLFxyXG5cclxuICAvLyBEUElfU3RlcHMsIGhhdmluZyB0eXBlIGludFxyXG4gIFN0ZXBzID0gJ3N0ZXBzJyxcclxuXHJcbiAgLy8gRFBJX1N0b3J5UG9pbnRJbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU3RvcnlQb2ludEluZGV4ID0gJ2N1cnJlbnRTdG9yeXBvaW50SW5kZXgnLFxyXG5cclxuICAvLyBEUElfU3R5bGVMZW4sIGhhdmluZyB0eXBlIGludFxyXG4gIFN0eWxlTGVuID0gJ3Rva2VuTGVuZ3RoRm9yU3R5bGUnLFxyXG5cclxuICAvLyBEUElfU3R5bGVQb3MsIGhhdmluZyB0eXBlIGludFxyXG4gIFN0eWxlUG9zID0gJ3Rva2VuUG9zaXRpb25Gb3JTdHlsZScsXHJcblxyXG4gIC8vIERQSV9Td2F0Y2hBcmVhV2lkdGgsIGhhdmluZyB0eXBlIGludFxyXG4gIFN3YXRjaEFyZWFXaWR0aCA9ICdzd2F0Y2hXaWR0aCcsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRCaW5JZCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgVGFyZ2V0QmluSWQgPSAndGFyZ2V0QmluSWQnLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0UHRYLCBoYXZpbmcgdHlwZSBpbnRcclxuICBUYXJnZXRQdFggPSAndGFyZ2V0WCcsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRQdFksIGhhdmluZyB0eXBlIGludFxyXG4gIFRhcmdldFB0WSA9ICd0YXJnZXRZJyxcclxuXHJcbiAgLy8gRFBJX1RpbGVGYWN0b3IsIGhhdmluZyB0eXBlIGludFxyXG4gIFRpbGVGYWN0b3IgPSAndGlsZUZhY3RvcicsXHJcblxyXG4gIC8vIERQSV9UaXRsZUhlaWdodCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgVGl0bGVIZWlnaHQgPSAndGl0bGVIZWlnaHQnLFxyXG5cclxuICAvLyBEUElfVGl0bGVXaWR0aCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgVGl0bGVXaWR0aCA9ICd0aXRsZVdpZHRoJyxcclxuXHJcbiAgLy8gRFBJX1RvcEJvdHRvbUJvcmRlcldpZHRoLCBoYXZpbmcgdHlwZSBpbnRcclxuICBUb3BCb3R0b21Cb3JkZXJXaWR0aCA9ICd0b3BCb3R0b21Cb3JkZXJXaWR0aCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25MaW5lU2l6ZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgVUlBdXRvbWF0aW9uTGluZVNpemUgPSAndWlBdXRvbWF0aW9uTGluZVNpemUnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uUGFnZVNpemUsIGhhdmluZyB0eXBlIGludFxyXG4gIFVJQXV0b21hdGlvblBhZ2VTaXplID0gJ3VpQXV0b21hdGlvblBhZ2VTaXplJyxcclxuXHJcbiAgLy8gRFBJX1VJRCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgVUlEID0gJ3VpZCcsXHJcblxyXG4gIC8vIERQSV9VcHBlckJvdW5kLCBoYXZpbmcgdHlwZSBpbnRcclxuICBVcHBlckJvdW5kID0gJ3VwcGVyQm91bmQnLFxyXG5cclxuICAvLyBEUElfVmVydFRleHRDZWxsLCBoYXZpbmcgdHlwZSBpbnRcclxuICBWZXJ0VGV4dENlbGwgPSAndmVydFRleHRDZWxsJyxcclxuXHJcbiAgLy8gRFBJX1dpZHRoLCBoYXZpbmcgdHlwZSBpbnRcclxuICBXaWR0aCA9ICd3JyxcclxuXHJcbiAgLy8gRFBJX1gsIGhhdmluZyB0eXBlIGludFxyXG4gIFggPSAneCcsXHJcblxyXG4gIC8vIERQSV9ZLCBoYXZpbmcgdHlwZSBpbnRcclxuICBZID0gJ3knLFxyXG5cclxuICAvLyBEUElfWk9yZGVyLCBoYXZpbmcgdHlwZSBpbnRcclxuICBaT3JkZXIgPSAnek9yZGVyJyxcclxuXHJcbiAgLy8gRFBJX1pvbmVJY29uSW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFpvbmVJY29uSW5kZXggPSAnem9uZUljb25JbmRleCcsXHJcblxyXG4gIC8vIERQSV9BbGlhc0luZGljZXMsIGhhdmluZyB0eXBlIGludFtdXHJcbiAgQWxpYXNJbmRpY2VzID0gJ2FsaWFzSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9Bbm92YURGVmVjLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIEFub3ZhREZWZWMgPSAnYW5vdmFEZlZlY3RvcicsXHJcblxyXG4gIC8vIERQSV9Db2x1bW5JbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIENvbHVtbkluZGljZXMgPSAnY29sdW1uSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9EcmlsbEZpZWxkSW5kaWNlcywgaGF2aW5nIHR5cGUgaW50W11cclxuICBEcmlsbEZpZWxkSW5kaWNlcyA9ICdkcmlsbEZpZWxkSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJNYXhJbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIEZpbHRlck1heEluZGljZXMgPSAnZmlsdGVyTWF4SW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJNaW5JbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIEZpbHRlck1pbkluZGljZXMgPSAnZmlsdGVyTWluSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJWYWx1ZXNJbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIEZpbHRlclZhbHVlc0luZGljZXMgPSAnZmlsdGVyVmFsdWVJbmRpY2VzJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdFN0cmluZ0luZGljZXMsIGhhdmluZyB0eXBlIGludFtdXHJcbiAgRm9ybWF0U3RyaW5nSW5kaWNlcyA9ICdmb3JtYXRzdHJJbmRpY2VzJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdHRlZFZhbEluZGljZXMsIGhhdmluZyB0eXBlIGludFtdXHJcbiAgRm9ybWF0dGVkVmFsSW5kaWNlcyA9ICdmb3JtYXRWYWxJZHhzJyxcclxuXHJcbiAgLy8gRFBJX1BhbGV0dGVJbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIFBhbGV0dGVJbmRpY2VzID0gJ3BhbGV0dGVzSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9QYW5lSW5kaWNlcywgaGF2aW5nIHR5cGUgaW50W11cclxuICBQYW5lSW5kaWNlcyA9ICdwYW5lSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9Qb2ludHMsIGhhdmluZyB0eXBlIGludFtdXHJcbiAgUG9pbnRzID0gJ3BvaW50cycsXHJcblxyXG4gIC8vIERQSV9RdWlja0ZpbHRlclNldHRpbmdzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIFF1aWNrRmlsdGVyU2V0dGluZ3MgPSAncXVpY2tGaWx0ZXJTZXR0aW5ncycsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZEluZGljZXMsIGhhdmluZyB0eXBlIGludFtdXHJcbiAgU2VsZWN0ZWRJbmRpY2VzID0gJ3NlbGVjdGVkSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9TaGVsZlBvc2l0aW9uSW5kaWNlcywgaGF2aW5nIHR5cGUgaW50W11cclxuICBTaGVsZlBvc2l0aW9uSW5kaWNlcyA9ICdzaGVsZlBvc0luZGljZXMnLFxyXG5cclxuICAvLyBEUElfVGlsZUJveCwgaGF2aW5nIHR5cGUgaW50W11cclxuICBUaWxlQm94ID0gJ3RpbGVCb3gnLFxyXG5cclxuICAvLyBEUElfVHJhaWxPdmVycmlkZSwgaGF2aW5nIHR5cGUgaW50W11cclxuICBUcmFpbE92ZXJyaWRlID0gJ3RyYWlsT3ZlcnJpZGUnLFxyXG5cclxuICAvLyBEUElfVUlEcywgaGF2aW5nIHR5cGUgaW50W11cclxuICBVSURzID0gJ3VpZHMnLFxyXG5cclxuICAvLyBEUElfVmFsdWVJbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIFZhbHVlSW5kaWNlcyA9ICd2YWx1ZUluZGljZXMnLFxyXG5cclxuICAvLyBEUElfWENlbGxPZmZzZXRzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIFhDZWxsT2Zmc2V0cyA9ICd4Q2VsbE9mZnNldHMnLFxyXG5cclxuICAvLyBEUElfWFBpeGVsT2Zmc2V0cywgaGF2aW5nIHR5cGUgaW50W11cclxuICBYUGl4ZWxPZmZzZXRzID0gJ3hQaXhlbE9mZnNldHMnLFxyXG5cclxuICAvLyBEUElfWUNlbGxPZmZzZXRzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIFlDZWxsT2Zmc2V0cyA9ICd5Q2VsbE9mZnNldHMnLFxyXG5cclxuICAvLyBEUElfWVBpeGVsT2Zmc2V0cywgaGF2aW5nIHR5cGUgaW50W11cclxuICBZUGl4ZWxPZmZzZXRzID0gJ3lQaXhlbE9mZnNldHMnLFxyXG5cclxuICAvLyBEUElfSW50TWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIGludClcclxuICBJbnRNYXAgPSAnaW50TWFwJyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkQXV0aFNldHRpbmdJbmRpY2VzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIGludClcclxuICBTZWxlY3RlZEF1dGhTZXR0aW5nSW5kaWNlcyA9ICdzZWxlY3RlZEF1dGhTZXR0aW5nSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9BY3RpdmVTdG9yeVBvaW50SUQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBBY3RpdmVTdG9yeVBvaW50SUQgPSAnYWN0aXZlU3RvcnlQb2ludElkJyxcclxuXHJcbiAgLy8gRFBJX0FjdGl2ZVpvbmVJRCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEFjdGl2ZVpvbmVJRCA9ICdhY3RpdmVab25lSWQnLFxyXG5cclxuICAvLyBEUElfQWN0dWFsU2l6ZSwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEFjdHVhbFNpemUgPSAnYWN0dWFsU2l6ZScsXHJcblxyXG4gIC8vIERQSV9BZGRJbkRlYnVnUG9ydCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEFkZEluRGVidWdQb3J0ID0gJ2FkZEluRGVidWdQb3J0JyxcclxuXHJcbiAgLy8gRFBJX0FnZ3JlZ2F0aW9uSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBBZ2dyZWdhdGlvbkluZGV4ID0gJ2FnZ3JlZ2F0aW9uSW5kZXgnLFxyXG5cclxuICAvLyBEUElfQW5ub3RhdGlvbklELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQW5ub3RhdGlvbklEID0gJ2Fubm90YXRpb25JZCcsXHJcblxyXG4gIC8vIERQSV9Bc3NpZ25lZEFsaWFzQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBBc3NpZ25lZEFsaWFzQ291bnQgPSAnYXNzaWduZWRBbGlhc0NvdW50JyxcclxuXHJcbiAgLy8gRFBJX0NhcGFiaWxpdHlJZCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIENhcGFiaWxpdHlJZCA9ICdjYXBhYmlsaXR5SWQnLFxyXG5cclxuICAvLyBEUElfQ2FyZXRJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIENhcmV0SW5kZXggPSAnY2FyZXRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9DZWxsSUQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBDZWxsSUQgPSAnY2VsbElkJyxcclxuXHJcbiAgLy8gRFBJX0NvbHVtbkluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQ29sdW1uSW5kZXggPSAnY29sdW1uSW5kZXgnLFxyXG5cclxuICAvLyBEUElfQ29tbWFuZElELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQ29tbWFuZElEID0gJ2lkJyxcclxuXHJcbiAgLy8gRFBJX0NvbW1hbmRJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIENvbW1hbmRJbmRleCA9ICdpbmRleCcsXHJcblxyXG4gIC8vIERQSV9Db250cm9sbGVySWQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBDb250cm9sbGVySWQgPSAnY29udHJvbGxlcklkJyxcclxuXHJcbiAgLy8gRFBJX0NvdW50LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQ291bnQgPSAnY291bnQnLFxyXG5cclxuICAvLyBEUElfVVJvd0NvdW50LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgVVJvd0NvdW50ID0gJ3VSb3dDb3VudCcsXHJcblxyXG4gIC8vIERQSV9VQ29sdW1uQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBVQ29sdW1uQ291bnQgPSAndUNvbHVtbkNvdW50JyxcclxuXHJcbiAgLy8gRFBJX0N1cnJlbnRQYWdlLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQ3VycmVudFBhZ2UgPSAnY3VycmVudFBhZ2UnLFxyXG5cclxuICAvLyBEUElfRGF0ZVBlcmlvZHNDb3VudCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIERhdGVQZXJpb2RzQ291bnQgPSAnZGF0ZVBlcmlvZHNDb3VudCcsXHJcblxyXG4gIC8vIERQSV9EZWNpbWFscywgaGF2aW5nIHR5cGUgdWludFxyXG4gIERlY2ltYWxzID0gJ2RlY2ltYWxzJyxcclxuXHJcbiAgLy8gRFBJX0RlZmF1bHRIZWlnaHQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBEZWZhdWx0SGVpZ2h0ID0gJ2RlZmF1bHRIZWlnaHQnLFxyXG5cclxuICAvLyBEUElfRGVmYXVsdEl0ZW0sIGhhdmluZyB0eXBlIHVpbnRcclxuICBEZWZhdWx0SXRlbSA9ICdkZWZhdWx0SXRlbScsXHJcblxyXG4gIC8vIERQSV9EZWZhdWx0V2lkdGgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBEZWZhdWx0V2lkdGggPSAnZGVmYXVsdFdpZHRoJyxcclxuXHJcbiAgLy8gRFBJX0RlcHRoLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRGVwdGggPSAnZGVwdGgnLFxyXG5cclxuICAvLyBEUElfRGV0YWlsSUQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBEZXRhaWxJRCA9ICdkZXRhaWxJZCcsXHJcblxyXG4gIC8vIERQSV9EcmlsbExldmVsLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRHJpbGxMZXZlbCA9ICdkcmlsbExldmVsJyxcclxuXHJcbiAgLy8gRFBJX0R1cGxpY2F0ZUluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRHVwbGljYXRlSW5kZXggPSAnZHVwbGljYXRlSW5kZXgnLFxyXG5cclxuICAvLyBEUElfRW5kSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBFbmRJbmRleCA9ICdlbmRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9GaWVsZEljb25JZHgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBGaWVsZEljb25JZHggPSAnZmllbGRJY29uSWR4JyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckxldmVsLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRmlsdGVyTGV2ZWwgPSAnZmlsdGVyTGV2ZWwnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyVGlsZVNpemUsIGhhdmluZyB0eXBlIHVpbnRcclxuICBGaWx0ZXJUaWxlU2l6ZSA9ICdmaWx0ZXJUaWxlU2l6ZScsXHJcblxyXG4gIC8vIERQSV9GaXNjYWxZZWFyU3RhcnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBGaXNjYWxZZWFyU3RhcnQgPSAnZmlzY2FsWWVhclN0YXJ0JyxcclxuXHJcbiAgLy8gRFBJX0ZpdFBhZ2VzQWNyb3NzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRml0UGFnZXNBY3Jvc3MgPSAncGFnZUZpdEhvcml6b250YWwnLFxyXG5cclxuICAvLyBEUElfRml0UGFnZXNEb3duLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRml0UGFnZXNEb3duID0gJ3BhZ2VGaXRWZXJ0aWNhbCcsXHJcblxyXG4gIC8vIERQSV9GaXhlZEluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRml4ZWRJbmRleCA9ICdmaXhlZEluZGV4JyxcclxuXHJcbiAgLy8gRFBJX0ZsaXBib2FyZFpvbmVJRCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEZsaXBib2FyZFpvbmVJRCA9ICdmbGlwYm9hcmRab25lSWQnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RBdXRvUmFuZ2VTaXplLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRm9yZWNhc3RBdXRvUmFuZ2VTaXplID0gJ2ZvcmVjYXN0QXV0b1JhbmdlU2l6ZScsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdEVuZE9mUmFuZ2UsIGhhdmluZyB0eXBlIHVpbnRcclxuICBGb3JlY2FzdEVuZE9mUmFuZ2UgPSAnZm9yZWNhc3RFbmRPZlJhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0SWdub3JlTGFzdCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEZvcmVjYXN0SWdub3JlTGFzdCA9ICdmb3JlY2FzdElnbm9yZUxhc3QnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3ROZXh0UmFuZ2VTaXplLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRm9yZWNhc3ROZXh0UmFuZ2VTaXplID0gJ2ZvcmVjYXN0TmV4dFJhbmdlU2l6ZScsXHJcblxyXG4gIC8vIERQSV9Hcm91cEZsYWdzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgR3JvdXBGbGFncyA9ICdncm91cEZsYWcnLFxyXG5cclxuICAvLyBEUElfSGllcmFyY2h5TGV2ZWxzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgSGllcmFyY2h5TGV2ZWxzID0gJ2hpZXJhcmNoeUxldmVscycsXHJcblxyXG4gIC8vIERQSV9IaWVyYXJjaHlNZW1iZXJJZCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEhpZXJhcmNoeU1lbWJlcklkID0gJ2hpZXJhcmNoeU1lbWJlcklkJyxcclxuXHJcbiAgLy8gRFBJX0hpdFRlc3RGbGFncywgaGF2aW5nIHR5cGUgdWludFxyXG4gIEhpdFRlc3RGbGFncyA9ICdoaXRUZXN0RmxhZ3MnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VIZWlnaHQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBJbWFnZUhlaWdodCA9ICdpbWFnZUhlaWdodCcsXHJcblxyXG4gIC8vIERQSV9JbWFnZVdpZHRoLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgSW1hZ2VXaWR0aCA9ICdpbWFnZVdpZHRoJyxcclxuXHJcbiAgLy8gRFBJX0l0ZW1JbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEl0ZW1JbmRleCA9ICdpdGVtSW5kZXgnLFxyXG5cclxuICAvLyBEUElfSXRlbUluZGV4MSwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEl0ZW1JbmRleDEgPSAnaXRlbUluZGV4MScsXHJcblxyXG4gIC8vIERQSV9MaW5lSGVpZ2h0LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTGluZUhlaWdodCA9ICdsaW5lSGVpZ2h0JyxcclxuXHJcbiAgLy8gRFBJX01hcEludGVybWVkaWF0ZUxldmVscywgaGF2aW5nIHR5cGUgdWludFxyXG4gIE1hcEludGVybWVkaWF0ZUxldmVscyA9ICdtYXBJbnRlcm1lZGlhdGVMZXZlbHMnLFxyXG5cclxuICAvLyBEUElfTWFwV29ybGRSZXBlYXRzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTWFwV29ybGRSZXBlYXRzID0gJ21hcFdvcmxkUmVwZWF0cycsXHJcblxyXG4gIC8vIERQSV9NYXhBbHBoYSwgaGF2aW5nIHR5cGUgdWludFxyXG4gIE1heEFscGhhID0gJ21heEFscGhhJyxcclxuXHJcbiAgLy8gRFBJX01heEhlaWdodCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIE1heEhlaWdodCA9ICdtYXhIZWlnaHQnLFxyXG5cclxuICAvLyBEUElfTWF4TnVtYmVyV2ViTGlzdEl0ZW1zLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTWF4TnVtYmVyV2ViTGlzdEl0ZW1zID0gJ21heE51bWJlcldlYkxpc3RJdGVtcycsXHJcblxyXG4gIC8vIERQSV9NYXhQcmV2T3JOZXh0VmFsdWVzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTWF4UHJldk9yTmV4dFZhbHVlcyA9ICdtYXhQcmV2T3JOZXh0VmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX01heFJvd3MsIGhhdmluZyB0eXBlIHVpbnRcclxuICBNYXhSb3dzID0gJ21heFJvd3MnLFxyXG5cclxuICAvLyBEUElfTWF4VHJhbnNwYXJlbmN5LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTWF4VHJhbnNwYXJlbmN5ID0gJ2NvbG9yTWF4VHJhbnNwYXJlbmN5VmFsdWUnLFxyXG5cclxuICAvLyBEUElfTWF4V2lkdGgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBNYXhXaWR0aCA9ICdtYXhXaWR0aCcsXHJcblxyXG4gIC8vIERQSV9NaW5Db2x1bW5zLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTWluQ29sdW1ucyA9ICdtaW5Db2x1bW5zJyxcclxuXHJcbiAgLy8gRFBJX01pbkhlaWdodCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIE1pbkhlaWdodCA9ICdtaW5IZWlnaHQnLFxyXG5cclxuICAvLyBEUElfTWluUHJldk9yTmV4dFZhbHVlcywgaGF2aW5nIHR5cGUgdWludFxyXG4gIE1pblByZXZPck5leHRWYWx1ZXMgPSAnbWluUHJldk9yTmV4dFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9NaW5UcmFuc3BhcmVuY3ksIGhhdmluZyB0eXBlIHVpbnRcclxuICBNaW5UcmFuc3BhcmVuY3kgPSAnY29sb3JNaW5UcmFuc3BhcmVuY3lWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9NaW5XaWR0aCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIE1pbldpZHRoID0gJ21pbldpZHRoJyxcclxuXHJcbiAgLy8gRFBJX05lc3RlZENhbGNzSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBOZXN0ZWRDYWxjc0luZGV4ID0gJ25lc3RlZENhbGNzSW5kZXgnLFxyXG5cclxuICAvLyBEUElfTmV4dFZhbHVlcywgaGF2aW5nIHR5cGUgdWludFxyXG4gIE5leHRWYWx1ZXMgPSAnbmV4dFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9Ob2RlTGV2ZWwsIGhhdmluZyB0eXBlIHVpbnRcclxuICBOb2RlTGV2ZWwgPSAnbm9kZUxldmVsJyxcclxuXHJcbiAgLy8gRFBJX051bUhpZ2hsaWdodGVkLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTnVtSGlnaGxpZ2h0ZWQgPSAnbnVtSGlnaGxpZ2h0ZWQnLFxyXG5cclxuICAvLyBEUElfTnVtYmVyT2ZOZXh0VmFsdWVzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTnVtYmVyT2ZOZXh0VmFsdWVzID0gJ251bWJlck9mTmV4dFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9OdW1iZXJPZlByZXZWYWx1ZXMsIGhhdmluZyB0eXBlIHVpbnRcclxuICBOdW1iZXJPZlByZXZWYWx1ZXMgPSAnbnVtYmVyT2ZQcmV2VmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX09iamVjdElELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgT2JqZWN0SUQgPSAnb2JqZWN0SWQnLFxyXG5cclxuICAvLyBEUElfT3JkZXJpbmdUeXBlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBPcmRlcmluZ1R5cGVJbmRleCA9ICdvcmRlcmluZ1R5cGVJbmRleCcsXHJcblxyXG4gIC8vIERQSV9QYWdlQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBQYWdlQ291bnQgPSAncGFnZUNvdW50JyxcclxuXHJcbiAgLy8gRFBJX1BhZ2VGYWRlRW5kLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUGFnZUZhZGVFbmQgPSAnZmFkZUVuZCcsXHJcblxyXG4gIC8vIERQSV9QYWdlRmFkZVN0YXJ0LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUGFnZUZhZGVTdGFydCA9ICdmYWRlU3RhcnQnLFxyXG5cclxuICAvLyBEUElfUGFnZUluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUGFnZUluZGV4ID0gJ3BhZ2VJbmRleCcsXHJcblxyXG4gIC8vIERQSV9QYWdlTnVtYmVyLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUGFnZU51bWJlciA9ICdwYWdlTnVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX1BhZ2VTY2FsZVBlcmNlbnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBQYWdlU2NhbGVQZXJjZW50ID0gJ3BhZ2VTY2FsZVBlcmNlbnQnLFxyXG5cclxuICAvLyBEUElfUGFnZVRyYWlsTGVuZ3RoLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUGFnZVRyYWlsTGVuZ3RoID0gJ2hpc3RvcnlMZW5ndGgnLFxyXG5cclxuICAvLyBEUElfUGFsZXR0ZUZsYWdzVmFsLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUGFsZXR0ZUZsYWdzVmFsID0gJ3BhbGV0dGVGbGFnc1ZhbCcsXHJcblxyXG4gIC8vIERQSV9QYW5lSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBQYW5lSW5kZXggPSAncGFuZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtQ3RybERpc3BsYXlGbGFncywgaGF2aW5nIHR5cGUgdWludFxyXG4gIFBhcmFtQ3RybERpc3BsYXlGbGFncyA9ICdwYXJhbURpc3BsYXlGbGFncycsXHJcblxyXG4gIC8vIERQSV9QYXJlbnRab25lSUQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBQYXJlbnRab25lSUQgPSAncGFyZW50Wm9uZUlkJyxcclxuXHJcbiAgLy8gRFBJX1BlcmNlbnRpbGVQYXJhbSwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFBlcmNlbnRpbGVQYXJhbSA9ICdwZXJjZW50aWxlUGFyYW0nLFxyXG5cclxuICAvLyBEUElfUHJldlZhbHVlcywgaGF2aW5nIHR5cGUgdWludFxyXG4gIFByZXZWYWx1ZXMgPSAncHJldlZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoUmVzdWx0U3RyaW5nSWQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBQdWJsaXNoUmVzdWx0U3RyaW5nSWQgPSAncHVibGlzaFJlc3VsdFN0cmluZ0lkJyxcclxuXHJcbiAgLy8gRFBJX1FSR0JDb2xvciwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFFSR0JDb2xvciA9ICdxcmdiQ29sb3InLFxyXG5cclxuICAvLyBEUElfUmFuZ2VOLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUmFuZ2VOID0gJ3JhbmdlTicsXHJcblxyXG4gIC8vIERQSV9SYW5rVHlwZUluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUmFua1R5cGVJbmRleCA9ICdyYW5rVHlwZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1JlbmRlckNvbXBsZXhpdHksIGhhdmluZyB0eXBlIHVpbnRcclxuICBSZW5kZXJDb21wbGV4aXR5ID0gJ3JlbmRlckNvbXBsZXhpdHlMaW1pdCcsXHJcblxyXG4gIC8vIERQSV9Sb3dJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFJvd0luZGV4ID0gJ3Jvd0luZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkQXV0aFNldHRpbmdJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFNlbGVjdGVkQXV0aFNldHRpbmdJbmRleCA9ICdzZWxlY3RlZEF1dGhTZXR0aW5nSW5kZXgnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0ZWRGdWxsU2NoZWR1bGVJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFNlbGVjdGVkRnVsbFNjaGVkdWxlSW5kZXggPSAnc2VsZWN0ZWRGdWxsU2NoZWR1bGVJbmRleCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZEluY3JTY2hlZHVsZUluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU2VsZWN0ZWRJbmNyU2NoZWR1bGVJbmRleCA9ICdzZWxlY3RlZEluY3JTY2hlZHVsZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkUHVibGlzaENob2ljZUluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU2VsZWN0ZWRQdWJsaXNoQ2hvaWNlSW5kZXggPSAnc2VsZWN0ZWRQdWJsaXNoQ2hvaWNlSW5kZXgnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0ZWRNZW1iZXJDb3VudCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFNlbGVjdGVkTWVtYmVyQ291bnQgPSAnc2VsZWN0ZWRNZW1iZXJDb3VudCcsXHJcblxyXG4gIC8vIERQSV9TaGFwZUlELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU2hhcGVJRCA9ICdzaGFwZUlkJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0VXNlQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBTaGVldFVzZUNvdW50ID0gJ3VzZUNvdW50JyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmSXRlbUlELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU2hlbGZJdGVtSUQgPSAnc2hlbGZJdGVtSWQnLFxyXG5cclxuICAvLyBEUElfU2lnRmlncywgaGF2aW5nIHR5cGUgdWludFxyXG4gIFNpZ0ZpZ3MgPSAnc2lnRmlncycsXHJcblxyXG4gIC8vIERQSV9Tb3J0QWdnSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBTb3J0QWdnSW5kZXggPSAnc29ydEFnZ0luZHZWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfU29ydENvbHVtbkluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU29ydENvbHVtbkluZGV4ID0gJ3NvcnRDb2x1bW5JbmRleCcsXHJcblxyXG4gIC8vIERQSV9Tb3J0RGlyZWN0aW9uSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBTb3J0RGlyZWN0aW9uSW5kZXggPSAnc29ydERpcmVjdGlvbkluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NvcnRGaWVsZEluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU29ydEZpZWxkSW5kZXggPSAnc29ydEZpZWxkSW5kZXgnLFxyXG5cclxuICAvLyBEUElfU3RhcnRJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFN0YXJ0SW5kZXggPSAnc3RhcnRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9TdGFydE9mV2VlaywgaGF2aW5nIHR5cGUgdWludFxyXG4gIFN0YXJ0T2ZXZWVrID0gJ3N0YXJ0T2ZXZWVrJyxcclxuXHJcbiAgLy8gRFBJX1N0b3JlSWQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBTdG9yZUlkID0gJ3N0b3JlSWQnLFxyXG5cclxuICAvLyBEUElfU3RvcnlQb2ludElELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU3RvcnlQb2ludElEID0gJ3N0b3J5UG9pbnRJZCcsXHJcblxyXG4gIC8vIERQSV9UYWJsZUNhbGNUeXBlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBUYWJsZUNhbGNUeXBlSW5kZXggPSAndGFibGVDYWxjVHlwZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlQ2FsY1R5cGVzVXNlZCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFRhYmxlQ2FsY1R5cGVzVXNlZCA9ICd0YWJsZUNhbGNUeXBlc1VzZWQnLFxyXG5cclxuICAvLyBEUElfVGVtcGxhdGVJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFRlbXBsYXRlSW5kZXggPSAndGVtcGxhdGVJbmRleCcsXHJcblxyXG4gIC8vIERQSV9UaWxlQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBUaWxlQ291bnQgPSAndGlsZUNvdW50JyxcclxuXHJcbiAgLy8gRFBJX1RpbWVvdXRTZWNvbmRzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgVGltZW91dFNlY29uZHMgPSAndGltZW91dFNlY29uZHMnLFxyXG5cclxuICAvLyBEUElfVG9wTiwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFRvcE4gPSAndG9wTicsXHJcblxyXG4gIC8vIERQSV9Ub3RhbE51bWJlck9mSXRlbXNJblNldCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFRvdGFsTnVtYmVyT2ZJdGVtc0luU2V0ID0gJ3RvdGFsTnVtYmVyT2ZJdGVtc0luU2V0JyxcclxuXHJcbiAgLy8gRFBJX1RvdGFsTWVtYmVyQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBUb3RhbE1lbWJlckNvdW50ID0gJ3RvdGFsTWVtYmVyQ291bnQnLFxyXG5cclxuICAvLyBEUElfVHJhbnNwYXJlbmN5LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgVHJhbnNwYXJlbmN5ID0gJ2NvbG9yVHJhbnNwYXJlbmN5VmFsdWUnLFxyXG5cclxuICAvLyBEUElfVHVwbGVJRCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFR1cGxlSUQgPSAndHVwbGVJZCcsXHJcblxyXG4gIC8vIERQSV9VSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBVSW5kZXggPSAndWluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1VuZG9Qb3NpdGlvbiwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFVuZG9Qb3NpdGlvbiA9ICd1bmRvUG9zaXRpb24nLFxyXG5cclxuICAvLyBEUElfVW5zaWduZWRXaWR0aCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFVuc2lnbmVkV2lkdGggPSAndXcnLFxyXG5cclxuICAvLyBEUElfVW5zaWduZWRXaWR0aEJvdHRvbSwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFVuc2lnbmVkV2lkdGhCb3R0b20gPSAndXdiJyxcclxuXHJcbiAgLy8gRFBJX1Vuc2lnbmVkV2lkdGhMZWZ0LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgVW5zaWduZWRXaWR0aExlZnQgPSAndXdsJyxcclxuXHJcbiAgLy8gRFBJX1Vuc2lnbmVkV2lkdGhSaWdodCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFVuc2lnbmVkV2lkdGhSaWdodCA9ICd1d3InLFxyXG5cclxuICAvLyBEUElfVW5zaWduZWRXaWR0aFRvcCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFVuc2lnbmVkV2lkdGhUb3AgPSAndXd0JyxcclxuXHJcbiAgLy8gRFBJX1ZhbHVlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBWYWx1ZUluZGV4ID0gJ3ZhbHVlSW5kZXgnLFxyXG5cclxuICAvLyBEUElfVmFsdWVJbnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBWYWx1ZUludCA9ICd2YWx1ZUludCcsXHJcblxyXG4gIC8vIERQSV9Xb3JsZE9mZnNldCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFdvcmxkT2Zmc2V0ID0gJ3dvcmxkT2Zmc2V0JyxcclxuXHJcbiAgLy8gRFBJX1hEdXBsaWNhdGVJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFhEdXBsaWNhdGVJbmRleCA9ICd4RHVwbGljYXRlSW5kZXgnLFxyXG5cclxuICAvLyBEUElfWEluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgWEluZGV4ID0gJ3hJbmRleCcsXHJcblxyXG4gIC8vIERQSV9ZRHVwbGljYXRlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBZRHVwbGljYXRlSW5kZXggPSAneUR1cGxpY2F0ZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1lJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFlJbmRleCA9ICd5SW5kZXgnLFxyXG5cclxuICAvLyBEUElfWm9uZUlELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgWm9uZUlEID0gJ3pvbmVJZCcsXHJcblxyXG4gIC8vIERQSV9ab25lWk9yZGVyLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgWm9uZVpPcmRlciA9ICd6b25lWk9yZGVyJyxcclxuXHJcbiAgLy8gRFBJX0NvbXBvbmVudElELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQ29tcG9uZW50SUQgPSAnY29tcG9uZW50SWQnLFxyXG5cclxuICAvLyBEUElfTm9uVGhyZWFkUG9vbFVzZUNvdW50LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTm9uVGhyZWFkUG9vbFVzZUNvdW50ID0gJ25vblRocmVhZFBvb2xVc2VDb3VudCcsXHJcblxyXG4gIC8vIERQSV9BZGRyZXNzaW5nSW5kaWNlcywgaGF2aW5nIHR5cGUgdWludFtdXHJcbiAgQWRkcmVzc2luZ0luZGljZXMgPSAnYWRkcmVzc2luZ0luZGljZXMnLFxyXG5cclxuICAvLyBEUElfQWRkcmVzc2luZ0ludmFsaWRJbmRpY2VzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBBZGRyZXNzaW5nSW52YWxpZEluZGljZXMgPSAnYWRkcmVzc2luZ0ludmFsaWRJbmRpY2VzJyxcclxuXHJcbiAgLy8gRFBJX0NoaWxkWm9uZUlkcywgaGF2aW5nIHR5cGUgdWludFtdXHJcbiAgQ2hpbGRab25lSWRzID0gJ2NoaWxkWm9uZUlkcycsXHJcblxyXG4gIC8vIERQSV9Db2xvckxpc3QsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIENvbG9yTGlzdCA9ICdjb2xvckxpc3QnLFxyXG5cclxuICAvLyBEUElfRHVwbGljYXRlSW5kaWNlcywgaGF2aW5nIHR5cGUgdWludFtdXHJcbiAgRHVwbGljYXRlSW5kaWNlcyA9ICdkdXBsaWNhdGVJbmRpY2VzJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckFkZEluZGljZXMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIEZpbHRlckFkZEluZGljZXMgPSAnZmlsdGVyQWRkSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJJbmRpY2VzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBGaWx0ZXJJbmRpY2VzID0gJ2ZpbHRlckluZGljZXMnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyTGV2ZWxBZGQsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIEZpbHRlckxldmVsQWRkID0gJ2ZpbHRlckxldmVsQWRkJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckxldmVsUmVtb3ZlLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBGaWx0ZXJMZXZlbFJlbW92ZSA9ICdmaWx0ZXJMZXZlbFJlbW92ZScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJMZXZlbHMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIEZpbHRlckxldmVscyA9ICdmaWx0ZXJMZXZlbHMnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyUmVtb3ZlSW5kaWNlcywgaGF2aW5nIHR5cGUgdWludFtdXHJcbiAgRmlsdGVyUmVtb3ZlSW5kaWNlcyA9ICdmaWx0ZXJSZW1vdmVJbmRpY2VzJyxcclxuXHJcbiAgLy8gRFBJX0ZpeGVkVmFsdWVzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBGaXhlZFZhbHVlcyA9ICdmaXhlZFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9IaWVyYXJjaHlNZW1iZXJJZExpc3QsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIEhpZXJhcmNoeU1lbWJlcklkTGlzdCA9ICdoaWVyYXJjaHlNZW1iZXJJZExpc3QnLFxyXG5cclxuICAvLyBEUElfSW52YWxpZEluZGljZXMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIEludmFsaWRJbmRpY2VzID0gJ2ludmFsaWRJbmRpY2VzJyxcclxuXHJcbiAgLy8gRFBJX0l0ZW1JbmRpY2VzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBJdGVtSW5kaWNlcyA9ICdpdGVtSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9MaW5lVHVwbGVJRHMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIExpbmVUdXBsZUlEcyA9ICdsaW5lVHVwbGVJZHMnLFxyXG5cclxuICAvLyBEUElfT2JqZWN0SURzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBPYmplY3RJRHMgPSAnb2JqZWN0SWRzJyxcclxuXHJcbiAgLy8gRFBJX1BhZ2VJbmRpY2VzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBQYWdlSW5kaWNlcyA9ICdwYWdlSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9RUkdCLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBRUkdCID0gJ3FyZ2JMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1FSR0JDb2xvcnMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIFFSR0JDb2xvcnMgPSAncXJnYkNvbG9ycycsXHJcblxyXG4gIC8vIERQSV9SZWZMaW5lSUQsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIFJlZkxpbmVJRCA9ICdyZWZsaW5lSWQnLFxyXG5cclxuICAvLyBEUElfU2hhcGVJRHMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIFNoYXBlSURzID0gJ3NoYXBlSWRzJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmU2VsZWN0aW9uLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBTaGVsZlNlbGVjdGlvbiA9ICdzaGVsZlNlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBvaW50SURzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBTdG9yeVBvaW50SURzID0gJ3N0b3J5UG9pbnRJZHMnLFxyXG5cclxuICAvLyBEUElfVHVwbGVJRHMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIFR1cGxlSURzID0gJ3R1cGxlSWRzJyxcclxuXHJcbiAgLy8gRFBJX1dpZHRocywgaGF2aW5nIHR5cGUgdWludFtdXHJcbiAgV2lkdGhzID0gJ3dpZHRocycsXHJcblxyXG4gIC8vIERQSV9VaW50TWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHVpbnQzMl90KVxyXG4gIFVpbnRNYXAgPSAndWludE1hcCcsXHJcblxyXG4gIC8vIERQSV9BbHBoYSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBBbHBoYSA9ICdhbHBoYScsXHJcblxyXG4gIC8vIERQSV9BbmdsZSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBBbmdsZSA9ICdhbmdsZScsXHJcblxyXG4gIC8vIERQSV9CcmVha1BvaW50VmFsdWUsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgQnJlYWtQb2ludFZhbHVlID0gJ2JyZWFrUG9pbnRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9EZXZpY2VQaXhlbFJhdGlvLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIERldmljZVBpeGVsUmF0aW8gPSAnZGV2aWNlUGl4ZWxSYXRpbycsXHJcblxyXG4gIC8vIERQSV9EaXN0YW5jZSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBEaXN0YW5jZSA9ICdkaXN0YW5jZScsXHJcblxyXG4gIC8vIERQSV9GbG9hdFgsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgRmxvYXRYID0gJ2Zsb2F0WCcsXHJcblxyXG4gIC8vIERQSV9GbG9hdFksIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgRmxvYXRZID0gJ2Zsb2F0WScsXHJcblxyXG4gIC8vIERQSV9Gb2dEZXNhdHVyYXRpb24sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgRm9nRGVzYXR1cmF0aW9uID0gJ2ZvZ0Rlc2F0dXJhdGlvbicsXHJcblxyXG4gIC8vIERQSV9NYXJrU2NhbGUsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgTWFya1NjYWxlID0gJ21hcmtTY2FsZScsXHJcblxyXG4gIC8vIERQSV9NYXJrU2l6ZUluUGl4ZWxVbml0cywgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBNYXJrU2l6ZUluUGl4ZWxVbml0cyA9ICdtYXJrU2l6ZUluUGl4ZWxVbml0cycsXHJcblxyXG4gIC8vIERQSV9Qb2ludFNpemUsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgUG9pbnRTaXplID0gJ3BvaW50U2l6ZScsXHJcblxyXG4gIC8vIERQSV9TdHJva2VXaWR0aCwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBTdHJva2VXaWR0aCA9ICdzdHJva2VXaWR0aCcsXHJcblxyXG4gIC8vIERQSV9UZXh0UmVnaW9uT3JpZW50YXRpb24sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgVGV4dFJlZ2lvbk9yaWVudGF0aW9uID0gJ29yaWVudGF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1RyYW5zZm9ybUFuZ2xlLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIFRyYW5zZm9ybUFuZ2xlID0gJ3RyYW5zZm9ybUFuZ2xlJyxcclxuXHJcbiAgLy8gRFBJX1pvb21MZXZlbCwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBab29tTGV2ZWwgPSAnem9vbUxldmVsJyxcclxuXHJcbiAgLy8gRFBJX09sZFpvb21MZXZlbCwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBPbGRab29tTGV2ZWwgPSAnb2xkWm9vbUxldmVsJyxcclxuXHJcbiAgLy8gRFBJX05ld1pvb21MZXZlbCwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBOZXdab29tTGV2ZWwgPSAnbmV3Wm9vbUxldmVsJyxcclxuXHJcbiAgLy8gRFBJX0FzcGVjdFJhdGlvLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIEFzcGVjdFJhdGlvID0gJ2FzcGVjdFJhdGlvJyxcclxuXHJcbiAgLy8gRFBJX0JvdHRvbVByaW50TWFyZ2luLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIEJvdHRvbVByaW50TWFyZ2luID0gJ2JvdHRvbVByaW50TWFyZ2luJyxcclxuXHJcbiAgLy8gRFBJX0VhcnRoUmFkaXVzLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIEVhcnRoUmFkaXVzID0gJ2VhcnRoUmFkaXVzJyxcclxuXHJcbiAgLy8gRFBJX0Zsb2F0SGVpZ2h0LCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIEZsb2F0SGVpZ2h0ID0gJ2Zsb2F0SGVpZ2h0JyxcclxuXHJcbiAgLy8gRFBJX0Zsb2F0TGVmdCwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBGbG9hdExlZnQgPSAnZmxvYXRMZWZ0JyxcclxuXHJcbiAgLy8gRFBJX0Zsb2F0UmFkaXVzLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIEZsb2F0UmFkaXVzID0gJ2Zsb2F0UmFkaXVzJyxcclxuXHJcbiAgLy8gRFBJX0Zsb2F0VG9wLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIEZsb2F0VG9wID0gJ2Zsb2F0VG9wJyxcclxuXHJcbiAgLy8gRFBJX0Zsb2F0V2lkdGgsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgRmxvYXRXaWR0aCA9ICdmbG9hdFdpZHRoJyxcclxuXHJcbiAgLy8gRFBJX0xlZnRQcmludE1hcmdpbiwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBMZWZ0UHJpbnRNYXJnaW4gPSAnbGVmdFByaW50TWFyZ2luJyxcclxuXHJcbiAgLy8gRFBJX01hcENlbnRlckxhdGl0dWRlLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIE1hcENlbnRlckxhdGl0dWRlID0gJ21hcENlbnRlckxhdGl0dWRlJyxcclxuXHJcbiAgLy8gRFBJX01hcENlbnRlckxvbmdpdHVkZSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBNYXBDZW50ZXJMb25naXR1ZGUgPSAnbWFwQ2VudGVyTG9uZ2l0dWRlJyxcclxuXHJcbiAgLy8gRFBJX01hcERpc3BsYXlTY2FsZSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBNYXBEaXNwbGF5U2NhbGUgPSAnbWFwRGlzcGxheVNjYWxlJyxcclxuXHJcbiAgLy8gRFBJX01hcE1heFN0cmV0Y2gsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgTWFwTWF4U3RyZXRjaCA9ICdtYXBNYXhTdHJldGNoJyxcclxuXHJcbiAgLy8gRFBJX01hcE1heFpvb20sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgTWFwTWF4Wm9vbSA9ICdtYXBNYXhab29tJyxcclxuXHJcbiAgLy8gRFBJX01hcE1pblNocmluaywgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBNYXBNaW5TaHJpbmsgPSAnbWFwTWluU2hyaW5rJyxcclxuXHJcbiAgLy8gRFBJX01hcE1pblpvb20sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgTWFwTWluWm9vbSA9ICdtYXBNaW5ab29tJyxcclxuXHJcbiAgLy8gRFBJX01hcFJlcXVlc3Rab29tLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIE1hcFJlcXVlc3Rab29tID0gJ21hcFJlcXVlc3Rab29tJyxcclxuXHJcbiAgLy8gRFBJX01hcFdhc2hvdXQsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgTWFwV2FzaG91dCA9ICdtYXBXYXNob3V0JyxcclxuXHJcbiAgLy8gRFBJX01heExhdGl0dWRlLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIE1heExhdGl0dWRlID0gJ21heExhdGl0dWRlJyxcclxuXHJcbiAgLy8gRFBJX01heExvbmdpdHVkZSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBNYXhMb25naXR1ZGUgPSAnbWF4TG9uZ2l0dWRlJyxcclxuXHJcbiAgLy8gRFBJX01pbkxhdGl0dWRlLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIE1pbkxhdGl0dWRlID0gJ21pbkxhdGl0dWRlJyxcclxuXHJcbiAgLy8gRFBJX01pbkxvbmdpdHVkZSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBNaW5Mb25naXR1ZGUgPSAnbWluTG9uZ2l0dWRlJyxcclxuXHJcbiAgLy8gRFBJX1JpZ2h0UHJpbnRNYXJnaW4sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgUmlnaHRQcmludE1hcmdpbiA9ICdyaWdodFByaW50TWFyZ2luJyxcclxuXHJcbiAgLy8gRFBJX1RvcFByaW50TWFyZ2luLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIFRvcFByaW50TWFyZ2luID0gJ3RvcFByaW50TWFyZ2luJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbk1heGltdW0sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgVUlBdXRvbWF0aW9uTWF4aW11bSA9ICd1aUF1dG9tYXRpb25NYXhpbXVtJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbk1pbmltdW0sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgVUlBdXRvbWF0aW9uTWluaW11bSA9ICd1aUF1dG9tYXRpb25NaW5pbXVtJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbk9mZnNldCwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBVSUF1dG9tYXRpb25PZmZzZXQgPSAndWlBdXRvbWF0aW9uT2Zmc2V0JyxcclxuXHJcbiAgLy8gRFBJX1VuaXREaXZpc29yLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIFVuaXREaXZpc29yID0gJ3VuaXREaXZpc29yJyxcclxuXHJcbiAgLy8gRFBJX1VuaXRUcmFuc2l0aW9uLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIFVuaXRUcmFuc2l0aW9uID0gJ3VuaXRUcmFuc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0F1dG9tYXRpY0RyaWxsSWR4LCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgQXV0b21hdGljRHJpbGxJZHggPSAnYXV0b21hdGljRHJpbGxJZHgnLFxyXG5cclxuICAvLyBEUElfRGVzdGluYXRpb25Cb3gsIGhhdmluZyB0eXBlIGZsb2F0W11cclxuICBEZXN0aW5hdGlvbkJveCA9ICdkZXN0Qm94JyxcclxuXHJcbiAgLy8gRFBJX0xvd2VyRW5kLCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgTG93ZXJFbmQgPSAnbG93ZXJFbmQnLFxyXG5cclxuICAvLyBEUElfT3Bwb3NpdGVBeGlzLCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgT3Bwb3NpdGVBeGlzID0gJ29wcG9zaXRlQXhpcycsXHJcblxyXG4gIC8vIERQSV9Qb2ludHNGLCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgUG9pbnRzRiA9ICdwb2ludHNGJyxcclxuXHJcbiAgLy8gRFBJX1NvdXJjZUJveCwgaGF2aW5nIHR5cGUgZmxvYXRbXVxyXG4gIFNvdXJjZUJveCA9ICdzb3VyY2VCb3gnLFxyXG5cclxuICAvLyBEUElfVHJhbnNmb3JtT2Zmc2V0LCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgVHJhbnNmb3JtT2Zmc2V0ID0gJ3RyYW5zZm9ybU9mZnNldCcsXHJcblxyXG4gIC8vIERQSV9UcmFuc2Zvcm1TY2FsZSwgaGF2aW5nIHR5cGUgZmxvYXRbXVxyXG4gIFRyYW5zZm9ybVNjYWxlID0gJ3RyYW5zZm9ybVNjYWxlJyxcclxuXHJcbiAgLy8gRFBJX1VwcGVyRW5kLCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgVXBwZXJFbmQgPSAndXBwZXJFbmQnLFxyXG5cclxuICAvLyBEUElfRmxvYXRNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgZmxvYXQpXHJcbiAgRmxvYXRNYXAgPSAnZmxvYXRNYXAnLFxyXG5cclxuICAvLyBEUElfQkdTUywgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgQkdTUyA9ICdiZXR3ZWVuR3JvdXBTdW1PZlNxdWFyZXMnLFxyXG5cclxuICAvLyBEUElfQ29uZmlkZW5jZUxldmVsLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBDb25maWRlbmNlTGV2ZWwgPSAnY29uZmlkZW5jZUxldmVsJyxcclxuXHJcbiAgLy8gRFBJX0NvbmZpZGVuY2VQZXJjZW50YWdlLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBDb25maWRlbmNlUGVyY2VudGFnZSA9ICdjb25maWRlbmNlUGVyY2VudGFnZScsXHJcblxyXG4gIC8vIERQSV9Eb3VibGVMZWZ0LCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBEb3VibGVMZWZ0ID0gJ2RvdWJsZUxlZnQnLFxyXG5cclxuICAvLyBEUElfRG91YmxlVG9wLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBEb3VibGVUb3AgPSAnZG91YmxlVG9wJyxcclxuXHJcbiAgLy8gRFBJX0RvdWJsZVZhbHVlLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBEb3VibGVWYWx1ZSA9ICdkb3VibGVWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Eb3VibGVYLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBEb3VibGVYID0gJ2RvdWJsZVgnLFxyXG5cclxuICAvLyBEUElfRG91YmxlWSwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgRG91YmxlWSA9ICdkb3VibGVZJyxcclxuXHJcbiAgLy8gRFBJX0ZTdGF0aXN0aWMsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIEZTdGF0aXN0aWMgPSAnZlN0YXRpc3RpYycsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJSYW5nZU1heCwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgRmlsdGVyUmFuZ2VNYXggPSAnZmlsdGVyUmFuZ2VNYXgnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyUmFuZ2VNaW4sIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIEZpbHRlclJhbmdlTWluID0gJ2ZpbHRlclJhbmdlTWluJyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVTY29yZSwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgR2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZVNjb3JlID0gJ2dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVTY29yZScsXHJcblxyXG4gIC8vIERQSV9IZWlnaHRELCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBIZWlnaHREID0gJ2hlaWdodCcsXHJcblxyXG4gIC8vIERQSV9JbmZsZWN0aW9uRnJhY3Rpb24sIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIEluZmxlY3Rpb25GcmFjdGlvbiA9ICdpbmZsZWN0aW9uRnJhY3Rpb24nLFxyXG5cclxuICAvLyBEUElfSW5mbGVjdGlvblZhbHVlLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBJbmZsZWN0aW9uVmFsdWUgPSAnaW5mbGVjdGlvblZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX01TRSwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgTVNFID0gJ21lYW5TcXVhcmVkRXJyb3InLFxyXG5cclxuICAvLyBEUElfTVNNLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBNU00gPSAnbWVhblNxdWFyZWRNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9NYXBTY2FsZU1hcmdpbk9mRXJyb3IsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIE1hcFNjYWxlTWFyZ2luT2ZFcnJvciA9ICdtYXBTY2FsZU1hcmdpbk9mRXJyb3InLFxyXG5cclxuICAvLyBEUElfTWFya1NpemUsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIE1hcmtTaXplID0gJ21hcmtTaXplJyxcclxuXHJcbiAgLy8gRFBJX01heE1hcmtTaXplLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBNYXhNYXJrU2l6ZSA9ICdtYXhNYXJrU2l6ZScsXHJcblxyXG4gIC8vIERQSV9NaW5NYXJrU2l6ZSwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgTWluTWFya1NpemUgPSAnbWluTWFya1NpemUnLFxyXG5cclxuICAvLyBEUElfTm90Y2hQb3NpdGlvbiwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgTm90Y2hQb3NpdGlvbiA9ICdub3RjaFBvc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX05vdGNoVmFsdWUsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIE5vdGNoVmFsdWUgPSAnbm90Y2hWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9QVmFsdWUsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFBWYWx1ZSA9ICdwVmFsdWUnLFxyXG5cclxuICAvLyBEUElfUGVyY2VudERpbWVuc2lvbnMsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFBlcmNlbnREaW1lbnNpb25zID0gJ3BlcmNlbnREaW1lbnNpb25zJyxcclxuXHJcbiAgLy8gRFBJX1BlcmNlbnRHcm91cHMsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFBlcmNlbnRHcm91cHMgPSAncGVyY2VudEdyb3VwcycsXHJcblxyXG4gIC8vIERQSV9QZXJjZW50TWVhc3VyZXMsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFBlcmNlbnRNZWFzdXJlcyA9ICdwZXJjZW50TWVhc3VyZXMnLFxyXG5cclxuICAvLyBEUElfUlNxdWFyZWQsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFJTcXVhcmVkID0gJ3JTcXVhcmVkJyxcclxuXHJcbiAgLy8gRFBJX1NTRSwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgU1NFID0gJ3N1bVNxdWFyZWRFcnJvcicsXHJcblxyXG4gIC8vIERQSV9TU00sIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFNTTSA9ICdzdW1TcXVhcmVkTW9kZWwnLFxyXG5cclxuICAvLyBEUElfU3RhbmRhcmRFcnJvciwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgU3RhbmRhcmRFcnJvciA9ICdzdGFuZGFyZEVycm9yJyxcclxuXHJcbiAgLy8gRFBJX1RTUywgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgVFNTID0gJ3RvdGFsU3VtT2ZTcXVhcmVzJyxcclxuXHJcbiAgLy8gRFBJX1dHU1MsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFdHU1MgPSAnd2l0aGluR3JvdXBTdW1PZlNxdWFyZXMnLFxyXG5cclxuICAvLyBEUElfV2lkdGhELCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBXaWR0aEQgPSAnd2lkdGgnLFxyXG5cclxuICAvLyBEUElfWm9vbUZhY3RvciwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgWm9vbUZhY3RvciA9ICd6b29tRmFjdG9yJyxcclxuXHJcbiAgLy8gRFBJX0NvZWZmaWNpZW50UFZhbHVlVmVjLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxyXG4gIENvZWZmaWNpZW50UFZhbHVlVmVjID0gJ2NvZWZmaWNpZW50UFZhbHVlVmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX0NvZWZmaWNpZW50U3RkRXJyVmVjLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxyXG4gIENvZWZmaWNpZW50U3RkRXJyVmVjID0gJ2NvZWZmaWNpZW50U3RkRXJyb3JWZWN0b3InLFxyXG5cclxuICAvLyBEUElfQ29lZmZpY2llbnRUVmFsdWVWZWMsIGhhdmluZyB0eXBlIGRvdWJsZVtdXHJcbiAgQ29lZmZpY2llbnRUVmFsdWVWZWMgPSAnY29lZmZpY2llbnRUVmFsdWVWZWN0b3InLFxyXG5cclxuICAvLyBEUElfQ29lZmZpY2llbnRWZWMsIGhhdmluZyB0eXBlIGRvdWJsZVtdXHJcbiAgQ29lZmZpY2llbnRWZWMgPSAnY29lZmZpY2llbnRWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRlN0YXRpc3RpY1ZlYywgaGF2aW5nIHR5cGUgZG91YmxlW11cclxuICBGU3RhdGlzdGljVmVjID0gJ3RyZW5kTGluZUZTdGF0aXN0aWNWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRmFjdG9ycywgaGF2aW5nIHR5cGUgZG91YmxlW11cclxuICBGYWN0b3JzID0gJ2ZhY3RvcnMnLFxyXG5cclxuICAvLyBEUElfTVNFVmVjLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxyXG4gIE1TRVZlYyA9ICdtZWFuU3F1YXJlZEVycm9yVmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX01lYW5zLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxyXG4gIE1lYW5zID0gJ21lYW5zJyxcclxuXHJcbiAgLy8gRFBJX1BWYWx1ZVZlYywgaGF2aW5nIHR5cGUgZG91YmxlW11cclxuICBQVmFsdWVWZWMgPSAncFZhbHVlVmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX1BlcmNlbnRhZ2VzLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxyXG4gIFBlcmNlbnRhZ2VzID0gJ3BlcmNlbnRhZ2VzJyxcclxuXHJcbiAgLy8gRFBJX1BlcmNlbnRpbGVzLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxyXG4gIFBlcmNlbnRpbGVzID0gJ3BlcmNlbnRpbGVzJyxcclxuXHJcbiAgLy8gRFBJX1NTRVZlYywgaGF2aW5nIHR5cGUgZG91YmxlW11cclxuICBTU0VWZWMgPSAnc3VtU3F1YXJlZEVycm9yVmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX1N0RGV2cywgaGF2aW5nIHR5cGUgZG91YmxlW11cclxuICBTdERldnMgPSAnc3RkZXYnLFxyXG5cclxuICAvLyBEUElfVW5zY2FsZWRNZWFucywgaGF2aW5nIHR5cGUgZG91YmxlW11cclxuICBVbnNjYWxlZE1lYW5zID0gJ3Vuc2NhbGVkTWVhbnMnLFxyXG5cclxuICAvLyBEUElfRGVsdGFUaW1lTXMsIGhhdmluZyB0eXBlIGxvbmdcclxuICBEZWx0YVRpbWVNcyA9ICdkZWx0YVRpbWVNcycsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0SGlzdG9yeVJvd0NvdW50LCBoYXZpbmcgdHlwZSBsb25nXHJcbiAgRXh0cmFjdEhpc3RvcnlSb3dDb3VudCA9ICdleHRyYWN0Um93Q291bnQnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdEhpc3RvcnlSb3dzUmVtb3ZlZCwgaGF2aW5nIHR5cGUgbG9uZ1xyXG4gIEV4dHJhY3RIaXN0b3J5Um93c1JlbW92ZWQgPSAnZXh0cmFjdFJvd3NSZW1vdmVkJyxcclxuXHJcbiAgLy8gRFBJX0V4dHJhY3RzU2l6ZSwgaGF2aW5nIHR5cGUgbG9uZ1xyXG4gIEV4dHJhY3RzU2l6ZSA9ICdleHRyYWN0c1NpemUnLFxyXG5cclxuICAvLyBEUElfT2xkRXh0cmFjdFNpemUsIGhhdmluZyB0eXBlIGxvbmdcclxuICBPbGRFeHRyYWN0U2l6ZSA9ICdvbGRFeHRyYWN0U2l6ZScsXHJcblxyXG4gIC8vIERQSV9Sb3dzSW5zZXJ0ZWQsIGhhdmluZyB0eXBlIGxvbmdcclxuICBSb3dzSW5zZXJ0ZWQgPSAncm93c0luc2VydGVkJyxcclxuXHJcbiAgLy8gRFBJX1NhbXBsZVNpemUsIGhhdmluZyB0eXBlIGxvbmdcclxuICBTYW1wbGVTaXplID0gJ3NhbXBsZVNpemUnLFxyXG5cclxuICAvLyBEUElfU2FtcGxlU3BhY2UsIGhhdmluZyB0eXBlIGxvbmdcclxuICBTYW1wbGVTcGFjZSA9ICdzYW1wbGVTcGFjZScsXHJcblxyXG4gIC8vIERQSV9UaHJlYWRQb29sVXNlQ291bnQsIGhhdmluZyB0eXBlIGxvbmdcclxuICBUaHJlYWRQb29sVXNlQ291bnQgPSAndGhyZWFkUG9vbFVzZUNvdW50JyxcclxuXHJcbiAgLy8gRFBJX0FjdGlvbklkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBY3Rpb25JZCA9ICdhY3Rpb25JZCcsXHJcblxyXG4gIC8vIERQSV9BeGlzQ29sdW1uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBeGlzQ29sdW1uID0gJ2F4aXNDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfQmFzZUNvbHVtbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJhc2VDb2x1bW5OYW1lID0gJ2Jhc2VDb2x1bW5OYW1lJyxcclxuXHJcbiAgLy8gRFBJX0JyZWFrUG9pbnRGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJyZWFrUG9pbnRGaWVsZE5hbWUgPSAnYnJlYWtQb2ludEZpZWxkTmFtZScsXHJcblxyXG4gIC8vIERQSV9QYWlyZWRGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhaXJlZEZpZWxkTmFtZSA9ICdwYWlyZWRGbicsXHJcblxyXG4gIC8vIERQSV9GaWVsZE5hbWVBbGxvd0VtcHR5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWVsZE5hbWVBbGxvd0VtcHR5ID0gJ2ZpZWxkTmFtZUFsbG93RW1wdHknLFxyXG5cclxuICAvLyBEUElfRmllbGROYW1lRGlzQWdnLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWVsZE5hbWVEaXNBZ2cgPSAnZm5EaXNhZ2cnLFxyXG5cclxuICAvLyBEUElfRmllbGROYW1lTG9jYWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkTmFtZUxvY2FsID0gJ2ZpZWxkTmFtZUxvY2FsJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkTmFtZVByZXYsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkTmFtZVByZXYgPSAnZm5QcmV2JyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkTmFtZVNvdXJjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmllbGROYW1lU291cmNlID0gJ2ZuU291cmNlJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkTmFtZVRhcmdldCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmllbGROYW1lVGFyZ2V0ID0gJ2ZuVGFyZ2V0JyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkTmFtZVgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkTmFtZVggPSAnZm5YJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkTmFtZVksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkTmFtZVkgPSAnZm5ZJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkVG9Tb3J0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWVsZFRvU29ydCA9ICdmaWVsZFRvU29ydCcsXHJcblxyXG4gIC8vIERQSV9HbG9iYWxGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdsb2JhbEZpZWxkTmFtZSA9ICdnbG9iYWxGaWVsZE5hbWUnLFxyXG5cclxuICAvLyBEUElfSGllcmFyY2h5TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSGllcmFyY2h5TmFtZSA9ICdoaWVyYXJjaHlOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0ludmFsaWRBZ2dGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEludmFsaWRBZ2dGaWVsZE5hbWUgPSAnaW52YWxpZEFnZ0ZpZWxkTmFtZScsXHJcblxyXG4gIC8vIERQSV9JbnZhbGlkRmllbGROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJbnZhbGlkRmllbGROYW1lID0gJ2ludmFsaWRGaWVsZE5hbWUnLFxyXG5cclxuICAvLyBEUElfTGltaXRQYXJhbWV0ZXJOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMaW1pdFBhcmFtZXRlck5hbWUgPSAnbGltaXRQYXJhbWV0ZXJOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0xvY2FsQmFzZUNvbHVtbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExvY2FsQmFzZUNvbHVtbk5hbWUgPSAnbG9jYWxCYXNlQ29sdW1uTmFtZScsXHJcblxyXG4gIC8vIERQSV9NZWFzdXJlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWVhc3VyZU5hbWUgPSAnbWVhc3VyZU5hbWUnLFxyXG5cclxuICAvLyBEUElfTmVzdGVkQ2FsY0ZpZWxkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBOZXN0ZWRDYWxjRmllbGQgPSAnbmVzdGVkQ2FsY0ZuJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlck5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhcmFtZXRlck5hbWUgPSAncGFyYW1ldGVyTmFtZScsXHJcblxyXG4gIC8vIERQSV9SZWZlcmVuY2VQYXJhbSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmVmZXJlbmNlUGFyYW0gPSAncmVmZXJlbmNlUGFyYW0nLFxyXG5cclxuICAvLyBEUElfUmVwbGFjZW1lbnRGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlcGxhY2VtZW50RmllbGROYW1lID0gJ3JlcGxhY2VtZW50RmllbGROYW1lJyxcclxuXHJcbiAgLy8gRFBJX1JIU1RhYmxlQWxpYXMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJIU1RhYmxlQWxpYXMgPSAncmhzVGFibGVBbGlhcycsXHJcblxyXG4gIC8vIERQSV9Tb3J0TWVhc3VyZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNvcnRNZWFzdXJlTmFtZSA9ICdzb3J0TWVhc3VyZU5hbWUnLFxyXG5cclxuICAvLyBEUElfVW5pcXVlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVW5pcXVlTmFtZSA9ICd1bmlxdWVOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1ZhbHVlQ29sdW1uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWYWx1ZUNvbHVtbiA9ICd2YWx1ZUNvbHVtbicsXHJcblxyXG4gIC8vIERQSV9QYWlyZWRWYWx1ZUNvbHVtbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGFpcmVkVmFsdWVDb2x1bW4gPSAncGFpcmVkVmFsdWVDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfQWN0aW9uSWRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEFjdGlvbklkcyA9ICdhY3Rpb25JZHMnLFxyXG5cclxuICAvLyBEUElfQWRkcmVzc2luZ1ZhbHVlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBZGRyZXNzaW5nVmFsdWVzID0gJ2FkZHJlc3NpbmdWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfQWxsQ29sdW1ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBbGxDb2x1bW5zID0gJ2FsbENvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfQXRUaGVMZXZlbFZhbHVlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBdFRoZUxldmVsVmFsdWVzID0gJ2F0VGhlTGV2ZWxWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfQXV0b21hdGljRHJpbGxGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQXV0b21hdGljRHJpbGxGaWVsZE5hbWUgPSAnYXV0b21hdGljRHJpbGxGaWVsZE5hbWUnLFxyXG5cclxuICAvLyBEUElfQmxlbmRpbmdGaWVsZENhbmRpZGF0ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQmxlbmRpbmdGaWVsZENhbmRpZGF0ZXMgPSAnYmxlbmRpbmdGaWVsZENhbmRpZGF0ZXMnLFxyXG5cclxuICAvLyBEUElfQ29sdW1ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb2x1bW5zID0gJ2NvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfQ3VycmVudEJsZW5kaW5nRmllbGRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEN1cnJlbnRCbGVuZGluZ0ZpZWxkcyA9ICdjdXJyZW50QmxlbmRpbmdGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfRGltZW5zaW9uc1RvU29ydCwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBEaW1lbnNpb25zVG9Tb3J0ID0gJ2RpbWVuc2lvbnNUb1NvcnQnLFxyXG5cclxuICAvLyBEUElfRHJpbGxGaWVsZFZlY3RvciwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBEcmlsbEZpZWxkVmVjdG9yID0gJ2RyaWxsRmllbGRWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRW5jb2RpbmdGaWVsZFZlY3RvciwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBFbmNvZGluZ0ZpZWxkVmVjdG9yID0gJ2VuY29kaW5nRmllbGRWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRmllbGRWZWN0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRmllbGRWZWN0b3IgPSAnZmllbGRWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRmlsdGVyRmllbGRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZpbHRlckZpZWxkcyA9ICdmaWx0ZXJGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfTE9ERmllbGRWZWN0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTE9ERmllbGRWZWN0b3IgPSAnbG9kRmllbGRWZWN0b3InLFxyXG5cclxuICAvLyBEUElfTGVnZW5kQ29sdW1ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBMZWdlbmRDb2x1bW5zID0gJ2xlZ2VuZENvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfTGVnZW5kTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTGVnZW5kTmFtZXMgPSAnbGVnZW5kTmFtZXMnLFxyXG5cclxuICAvLyBEUElfTm9kZUNvbHVtbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTm9kZUNvbHVtbnMgPSAnbm9kZUNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfUGFnZUZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBQYWdlRmllbGRzID0gJ3BhZ2VGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfUGFyYW1WYWx1ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUGFyYW1WYWx1ZXMgPSAncGFyYW1WYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfUmVmTGluZUZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBSZWZMaW5lRmllbGRzID0gJ3JlZmxpbmVGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlZENvbHVtbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVmZXJlbmNlZENvbHVtbnMgPSAncmVmZXJlbmNlZENvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfUmVsYXRlZEZpZWxkTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVsYXRlZEZpZWxkTmFtZXMgPSAncmVsYXRlZEZpZWxkTmFtZXMnLFxyXG5cclxuICAvLyBEUElfUmVtb3ZlQWN0aW9uUmVzdWx0cywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBSZW1vdmVBY3Rpb25SZXN1bHRzID0gJ3JlbW92ZUFjdGlvblJlc3VsdHMnLFxyXG5cclxuICAvLyBEUElfUmVzcG9uc2VWZWN0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVzcG9uc2VWZWN0b3IgPSAncmVzcG9uc2VWZWN0b3InLFxyXG5cclxuICAvLyBEUElfUmVzdGFydEV2ZXJ5VmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFJlc3RhcnRFdmVyeVZhbHVlcyA9ICdyZXN0YXJ0RXZlcnlWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfUmVzdWx0RmllbGRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFJlc3VsdEZpZWxkcyA9ICdyZXN1bHRGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfU29ydEZpZWxkVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFNvcnRGaWVsZFZhbHVlcyA9ICdzb3J0RmllbGRWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfWEZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBYRmllbGRzID0gJ3hGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfWUZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBZRmllbGRzID0gJ3lGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbkZ1bGxOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25uZWN0aW9uRnVsbE5hbWUgPSAnY29ubmVjdGlvbkZ1bGxOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25GdWxsTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQ29ubmVjdGlvbkZ1bGxOYW1lcyA9ICdjb25uZWN0aW9uRnVsbE5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0JvdW5kRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBCb3VuZERhdGFWYWx1ZSA9ICdib3VuZERhdGFWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9EYXRhVmFsdWUsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIERhdGFWYWx1ZSA9ICdkYXRhVmFsdWUnLFxyXG5cclxuICAvLyBEUElfRGF0YVZhbHVlSW5jcmVtZW50LCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBEYXRhVmFsdWVJbmNyZW1lbnQgPSAnZGF0YVZhbHVlSW5jcmVtZW50JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFWYWx1ZUxvd2VyWCwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgRGF0YVZhbHVlTG93ZXJYID0gJ2RhdGFWYWx1ZUxvd2VyWCcsXHJcblxyXG4gIC8vIERQSV9EYXRhVmFsdWVMb3dlclksIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIERhdGFWYWx1ZUxvd2VyWSA9ICdkYXRhVmFsdWVMb3dlclknLFxyXG5cclxuICAvLyBEUElfRGF0YVZhbHVlVXBwZXJYLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBEYXRhVmFsdWVVcHBlclggPSAnZGF0YVZhbHVlVXBwZXJYJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFWYWx1ZVVwcGVyWSwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgRGF0YVZhbHVlVXBwZXJZID0gJ2RhdGFWYWx1ZVVwcGVyWScsXHJcblxyXG4gIC8vIERQSV9EZWZhdWx0RGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBEZWZhdWx0RGF0YVZhbHVlID0gJ2RlZmF1bHREYXRhVmFsdWUnLFxyXG5cclxuICAvLyBEUElfTWF4RGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBNYXhEYXRhVmFsdWUgPSAnbWF4RGF0YVZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX01pbkRhdGFWYWx1ZSwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgTWluRGF0YVZhbHVlID0gJ21pbkRhdGFWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9WYWxpZGF0ZWREYXRhVmFsdWUsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIFZhbGlkYXRlZERhdGFWYWx1ZSA9ICd2YWxpZGF0ZWREYXRhVmFsdWUnLFxyXG5cclxuICAvLyBEUElfQmluU2l6ZSwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgQmluU2l6ZSA9ICdiaW5TaXplJyxcclxuXHJcbiAgLy8gRFBJX0xpbWl0Q291bnQsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIExpbWl0Q291bnQgPSAnbGltaXRDb3VudCcsXHJcblxyXG4gIC8vIERQSV9EYXRhVmFsdWVMaXN0LCBoYXZpbmcgdHlwZSBvYmplY3RbXVxyXG4gIERhdGFWYWx1ZUxpc3QgPSAnZGF0YVZhbHVlTGlzdCcsXHJcblxyXG4gIC8vIERQSV9GaWVsZERpc3BsYXlJdGVtLCBoYXZpbmcgdHlwZSBGaWVsZERpc3BsYXlJdGVtUHJlc01vZGVsXHJcbiAgRmllbGREaXNwbGF5SXRlbSA9ICdmaWVsZERpc3BsYXlJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkRGlzcGxheUxpc3QsIGhhdmluZyB0eXBlIEZpZWxkRGlzcGxheUl0ZW1QcmVzTW9kZWxbXVxyXG4gIEZpZWxkRGlzcGxheUxpc3QgPSAnZmllbGREaXNwbGF5TGlzdCcsXHJcblxyXG4gIC8vIERQSV9GaWVsZENhcHRpb25QYWlyLCBoYXZpbmcgdHlwZSBGaWVsZENhcHRpb25QYWlyUHJlc01vZGVsXHJcbiAgRmllbGRDYXB0aW9uUGFpciA9ICdmaWVsZENhcHRpb25QYWlyJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkQ2FwdGlvblBhaXJzLCBoYXZpbmcgdHlwZSBGaWVsZENhcHRpb25QYWlyUHJlc01vZGVsW11cclxuICBGaWVsZENhcHRpb25QYWlycyA9ICdmaWVsZENhcHRpb25QYWlycycsXHJcblxyXG4gIC8vIERQSV9QYXJhbWV0ZXJDYXB0aW9uUGFpcnMsIGhhdmluZyB0eXBlIEZpZWxkQ2FwdGlvblBhaXJQcmVzTW9kZWxbXVxyXG4gIFBhcmFtZXRlckNhcHRpb25QYWlycyA9ICdwYXJhbWV0ZXJDYXB0aW9uUGFpcnMnLFxyXG5cclxuICAvLyBEUElfVmFyeWluZ0F0dHJpYnV0ZURpbWVuc2lvbnMsIGhhdmluZyB0eXBlIEZpZWxkQ2FwdGlvblBhaXJQcmVzTW9kZWxbXVxyXG4gIFZhcnlpbmdBdHRyaWJ1dGVEaW1lbnNpb25zID0gJ3ZhcnlpbmdBdHRyaWJ1dGVEaW1lbnNpb25zJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkQ2FwdGlvblBhaXJTdGF0ZSwgaGF2aW5nIHR5cGUgRmllbGRDYXB0aW9uUGFpclN0YXRlUHJlc01vZGVsXHJcbiAgRmllbGRDYXB0aW9uUGFpclN0YXRlID0gJ2ZpZWxkQ2FwdGlvblBhaXJTdGF0ZScsXHJcblxyXG4gIC8vIERQSV9GaWVsZENhcHRpb25QYWlyU3RhdGVzLCBoYXZpbmcgdHlwZSBGaWVsZENhcHRpb25QYWlyU3RhdGVQcmVzTW9kZWxbXVxyXG4gIEZpZWxkQ2FwdGlvblBhaXJTdGF0ZXMgPSAnZmllbGRDYXB0aW9uUGFpclN0YXRlcycsXHJcblxyXG4gIC8vIERQSV9EYXRhc291cmNlQ2FwdGlvblBhaXIsIGhhdmluZyB0eXBlIERhdGFzb3VyY2VDYXB0aW9uUGFpclByZXNNb2RlbFxyXG4gIERhdGFzb3VyY2VDYXB0aW9uUGFpciA9ICdkYXRhc291cmNlQ2FwdGlvblBhaXInLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZUNhcHRpb25QYWlycywgaGF2aW5nIHR5cGUgRGF0YXNvdXJjZUNhcHRpb25QYWlyUHJlc01vZGVsW11cclxuICBEYXRhc291cmNlQ2FwdGlvblBhaXJzID0gJ2RhdGFzb3VyY2VDYXB0aW9uUGFpcnMnLFxyXG5cclxuICAvLyBEUElfU2hlZXROYW1lSW5mb1BhaXIsIGhhdmluZyB0eXBlIFNoZWV0TmFtZUluZm9QYWlyUHJlc01vZGVsXHJcbiAgU2hlZXROYW1lSW5mb1BhaXIgPSAnc2hlZXROYW1lSW5mb1BhaXInLFxyXG5cclxuICAvLyBEUElfU2hlZXROYW1lSW5mb1BhaXJzLCBoYXZpbmcgdHlwZSBTaGVldE5hbWVJbmZvUGFpclByZXNNb2RlbFtdXHJcbiAgU2hlZXROYW1lSW5mb1BhaXJzID0gJ3NoZWV0TmFtZUluZm9QYWlycycsXHJcblxyXG4gIC8vIERQSV9CR0FjdGl2ZUNvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBCR0FjdGl2ZUNvbG9yID0gJ2JnQWN0aXZlQ29sb3InLFxyXG5cclxuICAvLyBEUElfQkdDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQkdDb2xvciA9ICdiZ0NvbG9yJyxcclxuXHJcbiAgLy8gRFBJX0JHUmVzdENvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBCR1Jlc3RDb2xvciA9ICdiZ1Jlc3RDb2xvcicsXHJcblxyXG4gIC8vIERQSV9Cb3JkZXJDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQm9yZGVyQ29sb3IgPSAnYm9yZGVyQ29sb3InLFxyXG5cclxuICAvLyBEUElfQm9yZGVyQ29sb3JCb3R0b20sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJvcmRlckNvbG9yQm90dG9tID0gJ2JvcmRlckNvbG9yQm90dG9tJyxcclxuXHJcbiAgLy8gRFBJX0JvcmRlckNvbG9yTGVmdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQm9yZGVyQ29sb3JMZWZ0ID0gJ2JvcmRlckNvbG9yTGVmdCcsXHJcblxyXG4gIC8vIERQSV9Cb3JkZXJDb2xvclJpZ2h0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBCb3JkZXJDb2xvclJpZ2h0ID0gJ2JvcmRlckNvbG9yUmlnaHQnLFxyXG5cclxuICAvLyBEUElfQm9yZGVyQ29sb3JUb3AsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJvcmRlckNvbG9yVG9wID0gJ2JvcmRlckNvbG9yVG9wJyxcclxuXHJcbiAgLy8gRFBJX0J1dHRvbk9iamVjdEJhY2tncm91bmRDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQnV0dG9uT2JqZWN0QmFja2dyb3VuZENvbG9yID0gJ2J1dHRvbk9iamVjdEJhY2tncm91bmRDb2xvcicsXHJcblxyXG4gIC8vIERQSV9Db2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29sb3IgPSAnY29sb3InLFxyXG5cclxuICAvLyBEUElfQ29sb3IxLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb2xvcjEgPSAnY29sb3IxJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yMiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29sb3IyID0gJ2NvbG9yMicsXHJcblxyXG4gIC8vIERQSV9EZWZhdWx0Q29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERlZmF1bHRDb2xvciA9ICdkZWZhdWx0Q29sb3InLFxyXG5cclxuICAvLyBEUElfRGlzdGFuY2VGb250Q29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERpc3RhbmNlRm9udENvbG9yID0gJ2Rpc3RhbmNlRm9udENvbG9yJyxcclxuXHJcbiAgLy8gRFBJX0ZpbGxDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmlsbENvbG9yID0gJ2ZpbGxDb2xvcicsXHJcblxyXG4gIC8vIERQSV9Gb2dDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRm9nQ29sb3IgPSAnZm9nQ29sb3InLFxyXG5cclxuICAvLyBEUElfSGVhZGVyQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEhlYWRlckNvbG9yID0gJ2hlYWRlckNvbG9yJyxcclxuXHJcbiAgLy8gRFBJX0hpZ2hsaWdodEJHQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEhpZ2hsaWdodEJHQ29sb3IgPSAnaGlnaGxpZ2h0QmdDb2xvcicsXHJcblxyXG4gIC8vIERQSV9IaWdobGlnaHRUZXh0Q29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEhpZ2hsaWdodFRleHRDb2xvciA9ICdoaWdobGlnaHRUZXh0Q29sb3InLFxyXG5cclxuICAvLyBEUElfSG92ZXJDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSG92ZXJDb2xvciA9ICdob3ZlckNvbG9yJyxcclxuXHJcbiAgLy8gRFBJX0h5cGVybGlua0NvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBIeXBlcmxpbmtDb2xvciA9ICdoeXBlcmxpbmtDb2xvcicsXHJcblxyXG4gIC8vIERQSV9NYXBBdHRyaWJ1dGlvbkZpbGwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcEF0dHJpYnV0aW9uRmlsbCA9ICdtYXBBdHRyaWJ1dGlvbkZpbGwnLFxyXG5cclxuICAvLyBEUElfTWFwQXR0cmlidXRpb25UZXh0Q29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcEF0dHJpYnV0aW9uVGV4dENvbG9yID0gJ21hcEF0dHJpYnV0aW9uVGV4dENvbG9yJyxcclxuXHJcbiAgLy8gRFBJX01hcFBhbmVCYWNrZ3JvdW5kRmlsbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwUGFuZUJhY2tncm91bmRGaWxsID0gJ21hcFBhbmVCYWNrZ3JvdW5kRmlsbCcsXHJcblxyXG4gIC8vIERQSV9NYXBTY2FsZUJvcmRlckNvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBTY2FsZUJvcmRlckNvbG9yID0gJ21hcFNjYWxlQm9yZGVyQ29sb3InLFxyXG5cclxuICAvLyBEUElfTWFwU2NhbGVDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwU2NhbGVDb2xvciA9ICdtYXBTY2FsZUNvbG9yJyxcclxuXHJcbiAgLy8gRFBJX01hcFdhaXRUaWxlRmlsbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwV2FpdFRpbGVGaWxsID0gJ21hcFdhaXRUaWxlRmlsbCcsXHJcblxyXG4gIC8vIERQSV9NYXJrQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcmtDb2xvciA9ICdtYXJrQ29sb3InLFxyXG5cclxuICAvLyBEUElfTmF2QXJyb3dEaXNhYmxlZENvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBOYXZBcnJvd0Rpc2FibGVkQ29sb3IgPSAnbmF2QXJyb3dEaXNhYmxlZENvbG9yJyxcclxuXHJcbiAgLy8gRFBJX05hdkFycm93SG92ZXJDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTmF2QXJyb3dIb3ZlckNvbG9yID0gJ25hdkFycm93SG92ZXJDb2xvcicsXHJcblxyXG4gIC8vIERQSV9OYXZBcnJvd0lkbGVDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTmF2QXJyb3dJZGxlQ29sb3IgPSAnbmF2QXJyb3dJZGxlQ29sb3InLFxyXG5cclxuICAvLyBEUElfTmF2QXJyb3dQcmVzc2VkQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE5hdkFycm93UHJlc3NlZENvbG9yID0gJ25hdkFycm93UHJlc3NlZENvbG9yJyxcclxuXHJcbiAgLy8gRFBJX1BhbmVDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGFuZUNvbG9yID0gJ3BhbmVDb2xvcicsXHJcblxyXG4gIC8vIERQSV9QcmVzc0NvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQcmVzc0NvbG9yID0gJ3ByZXNzQ29sb3InLFxyXG5cclxuICAvLyBEUElfUmVzaXplQm9yZGVyQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlc2l6ZUJvcmRlckNvbG9yID0gJ3Jlc2l6ZUJvcmRlckNvbG9yJyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdEJHQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlbGVjdEJHQ29sb3IgPSAnc2VsZWN0QmdDb2xvcicsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25UZXh0Q29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlbGVjdGlvblRleHRDb2xvciA9ICdzZWxlY3Rpb25UZXh0Q29sb3InLFxyXG5cclxuICAvLyBEUElfU3dhdGNoQmFja2dyb3VuZENvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTd2F0Y2hCYWNrZ3JvdW5kQ29sb3IgPSAnc3dhdGNoQmdDb2xvcicsXHJcblxyXG4gIC8vIERQSV9Td2F0Y2hCb3JkZXJDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3dhdGNoQm9yZGVyQ29sb3IgPSAnc3dhdGNoQm9yZGVyQ29sb3InLFxyXG5cclxuICAvLyBEUElfVGFiQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYkNvbG9yID0gJ3RhYkNvbG9yJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9ycywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb2xvcnMgPSAnY29sb3JzJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yTWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBDb2xvck1hcCA9ICdjb2xvck1hcCcsXHJcblxyXG4gIC8vIERQSV9QaXhtYXAsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBpeG1hcCA9ICdwaXhtYXAnLFxyXG5cclxuICAvLyBEUElfSW1hZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEltYWdlID0gJ2ltYWdlJyxcclxuXHJcbiAgLy8gRFBJX092ZXJsYXlJbWFnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgT3ZlcmxheUltYWdlID0gJ292ZXJsYXlJbWFnZScsXHJcblxyXG4gIC8vIERQSV9JY29uSW1hZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEljb25JbWFnZSA9ICdpY29uSW1hZ2UnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VMaXN0LCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEltYWdlTGlzdCA9ICdpbWFnZUxpc3QnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIEltYWdlTWFwID0gJ2ltYWdlTWFwJyxcclxuXHJcbiAgLy8gRFBJX1VVSUQsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIFVVSUQgPSAndXVpZCcsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRPYmplY3RIYW5kbGUsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIERhc2hib2FyZE9iamVjdEhhbmRsZSA9ICdkYXNoYm9hcmRPYmplY3RIYW5kbGUnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkT2JqZWN0TmV3U3RhdGVIYW5kbGUsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIERhc2hib2FyZE9iamVjdE5ld1N0YXRlSGFuZGxlID0gJ2Rhc2hib2FyZE9iamVjdE5ld1N0YXRlSGFuZGxlJyxcclxuXHJcbiAgLy8gRFBJX0Rhc2hib2FyZE9iamVjdEN1cnJlbnRTdGF0ZUhhbmRsZSwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgRGFzaGJvYXJkT2JqZWN0Q3VycmVudFN0YXRlSGFuZGxlID0gJ2Rhc2hib2FyZE9iamVjdEN1cnJlbnRTdGF0ZUhhbmRsZScsXHJcblxyXG4gIC8vIERQSV9OYW5vc2Vjb25kcywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgTmFub3NlY29uZHMgPSAnbmFub3NlY29uZHMnLFxyXG5cclxuICAvLyBEUElfTWljcm9zZWNvbmRzLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBNaWNyb3NlY29uZHMgPSAnbWljcm9zZWNvbmRzJyxcclxuXHJcbiAgLy8gRFBJX01pbGxpc2Vjb25kcywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgTWlsbGlzZWNvbmRzID0gJ21pbGxpc2Vjb25kcycsXHJcblxyXG4gIC8vIERQSV9UaW1lb3V0UywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgVGltZW91dFMgPSAndGltZW91dFMnLFxyXG5cclxuICAvLyBEUElfTWludXRlcywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgTWludXRlcyA9ICdtaW51dGVzJyxcclxuXHJcbiAgLy8gRFBJX0hvdXJzLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBIb3VycyA9ICdob3VycycsXHJcblxyXG4gIC8vIERQSV9DYXJkVHlwZSwgaGF2aW5nIHR5cGUgQ2FyZFR5cGVcclxuICBDYXJkVHlwZSA9ICdjYXJkVHlwZScsXHJcblxyXG4gIC8vIERQSV9Eb2NQYXJhbWV0ZXJJRCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRG9jUGFyYW1ldGVySUQgPSAndHlwZScsXHJcblxyXG4gIC8vIERQSV9Bcmd1bWVudFBhcmFtLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBcmd1bWVudFBhcmFtID0gJ2FyZ3VtZW50UGFyYW0nLFxyXG5cclxuICAvLyBEUElfQXJndW1lbnRQYXJhbXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQXJndW1lbnRQYXJhbXMgPSAnYXJndW1lbnRQYXJhbXMnLFxyXG5cclxuICAvLyBEUElfQWN0aW9uVHlwZSwgaGF2aW5nIHR5cGUgQWN0aW9uVHlwZVxyXG4gIEFjdGlvblR5cGUgPSAnYWN0aW9uVHlwZScsXHJcblxyXG4gIC8vIERQSV9Bbm5vdGF0ZUVudW0sIGhhdmluZyB0eXBlIEFubm90YXRlRW51bVxyXG4gIEFubm90YXRlRW51bSA9ICdhbm5vdGF0ZUVudW0nLFxyXG5cclxuICAvLyBEUElfSm9pblR5cGUsIGhhdmluZyB0eXBlIFNRTEpvaW5UeXBlXHJcbiAgSm9pblR5cGUgPSAnam9pblR5cGUnLFxyXG5cclxuICAvLyBEUElfU3VwcG9ydGVkSm9pblR5cGVzLCBoYXZpbmcgdHlwZSBTUUxKb2luVHlwZVtdXHJcbiAgU3VwcG9ydGVkSm9pblR5cGVzID0gJ3N1cHBvcnRlZEpvaW5UeXBlcycsXHJcblxyXG4gIC8vIERQSV9Sb3VuZGluZywgaGF2aW5nIHR5cGUgUm91bmRpbmdcclxuICBSb3VuZGluZyA9ICdyb3VuZGluZ0VudW0nLFxyXG5cclxuICAvLyBEUElfQm9keVR5cGUsIGhhdmluZyB0eXBlIEJvZHlUeXBlXHJcbiAgQm9keVR5cGUgPSAnYm9keVR5cGUnLFxyXG5cclxuICAvLyBEUElfTGluZUVuZCwgaGF2aW5nIHR5cGUgTGluZUVuZFxyXG4gIExpbmVFbmQgPSAnbGluZUVuZEVudW0nLFxyXG5cclxuICAvLyBEUElfTGluZUVuZFNpemUsIGhhdmluZyB0eXBlIExpbmVFbmRTaXplXHJcbiAgTGluZUVuZFNpemUgPSAnbGluZUVuZFNpemVFbnVtJyxcclxuXHJcbiAgLy8gRFBJX0JydXNoU3BlY2lhbEZpZWxkcywgaGF2aW5nIHR5cGUgQnJ1c2hTcGVjaWFsRmllbGRzXHJcbiAgQnJ1c2hTcGVjaWFsRmllbGRzID0gJ3NwZWNpYWxGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfQ2VsbFNpemVDaGFuZ2UsIGhhdmluZyB0eXBlIENlbGxTaXplQ2hhbmdlXHJcbiAgQ2VsbFNpemVDaGFuZ2UgPSAnY2VsbFNpemVDaGFuZ2UnLFxyXG5cclxuICAvLyBEUElfQ2VsbFR5cGUsIGhhdmluZyB0eXBlIENlbGxUeXBlXHJcbiAgQ2VsbFR5cGUgPSAnY2VsbFR5cGUnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbkF0dGVtcHRSZXN1bHQsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25BdHRlbXB0UmVzdWx0XHJcbiAgQ29ubmVjdGlvbkF0dGVtcHRSZXN1bHQgPSAnY29ubmVjdGlvbkF0dGVtcHRSZXN1bHQnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbkVycm9yU3RhZ2UsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25FcnJvclN0YWdlXHJcbiAgQ29ubmVjdGlvbkVycm9yU3RhZ2UgPSAnY29ubmVjdGlvbkVycm9yU3RhZ2UnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbkVycm9yVHlwZSwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvbkVycm9yVHlwZVxyXG4gIENvbm5lY3Rpb25FcnJvclR5cGUgPSAnY29ubmVjdGlvbkVycm9yVHlwZScsXHJcblxyXG4gIC8vIERQSV9EYXRhU2VydmVyQ29ubmVjdGlvblJlc3VsdCwgaGF2aW5nIHR5cGUgRGF0YVNlcnZlckNvbm5lY3Rpb25SZXN1bHRcclxuICBEYXRhU2VydmVyQ29ubmVjdGlvblJlc3VsdCA9ICdkc0Nvbm5lY3Rpb25SZXN1bHQnLFxyXG5cclxuICAvLyBEUElfRHJvcFdoZW4sIGhhdmluZyB0eXBlIERyb3BXaGVuXHJcbiAgRHJvcFdoZW4gPSAnZHJvcFdoZW4nLFxyXG5cclxuICAvLyBEUElfRHJvcFR5cGUsIGhhdmluZyB0eXBlIERyb3BGaWVsZFJlc3VsdFxyXG4gIERyb3BUeXBlID0gJ2Ryb3BUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0VuY29kaW5nVHlwZSwgaGF2aW5nIHR5cGUgRW5jb2RpbmdUeXBlXHJcbiAgRW5jb2RpbmdUeXBlID0gJ2VuY29kaW5nVHlwZScsXHJcblxyXG4gIC8vIERQSV9Ecm9wZG93bkVuY29kaW5nVHlwZSwgaGF2aW5nIHR5cGUgRW5jb2RpbmdUeXBlXHJcbiAgRHJvcGRvd25FbmNvZGluZ1R5cGUgPSAnZHJvcGRvd25FbmNvZGluZ1R5cGUnLFxyXG5cclxuICAvLyBEUElfRW5jb2RpbmdUeXBlcywgaGF2aW5nIHR5cGUgRW5jb2RpbmdUeXBlW11cclxuICBFbmNvZGluZ1R5cGVzID0gJ2VuY29kaW5nVHlwZXMnLFxyXG5cclxuICAvLyBEUElfRmllbGRPcmRlclR5cGUsIGhhdmluZyB0eXBlIEZpZWxkT3JkZXJUeXBlXHJcbiAgRmllbGRPcmRlclR5cGUgPSAnZmllbGRPcmRlclR5cGUnLFxyXG5cclxuICAvLyBEUElfRmlsdGVySWNvblR5cGUsIGhhdmluZyB0eXBlIEZpbHRlckljb25UeXBlXHJcbiAgRmlsdGVySWNvblR5cGUgPSAnZmlsdGVySWNvblR5cGUnLFxyXG5cclxuICAvLyBEUElfRmlsdGVySWNvblR5cGVzLCBoYXZpbmcgdHlwZSBGaWx0ZXJJY29uVHlwZVtdXHJcbiAgRmlsdGVySWNvblR5cGVzID0gJ2ZpbHRlckljb25UeXBlcycsXHJcblxyXG4gIC8vIERQSV9GbG9hdGluZ1Rvb2xiYXJWaXMsIGhhdmluZyB0eXBlIEZsb2F0aW5nVG9vbGJhclZpc2liaWxpdHlcclxuICBGbG9hdGluZ1Rvb2xiYXJWaXMgPSAndG9vbGJhclZpc2liaWxpdHknLFxyXG5cclxuICAvLyBEUElfRm9sZGVyUm9sZSwgaGF2aW5nIHR5cGUgRm9sZGVyUm9sZVxyXG4gIEZvbGRlclJvbGUgPSAnZm9sZGVyUm9sZScsXHJcblxyXG4gIC8vIERQSV9MZWdlbmRUeXBlLCBoYXZpbmcgdHlwZSBFbnVtXHJcbiAgTGVnZW5kVHlwZSA9ICdsZWdlbmRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0TW9kZWxUeXBlLCBoYXZpbmcgdHlwZSBGb3JlY2FzdE1vZGVsVHlwZVxyXG4gIEZvcmVjYXN0TW9kZWxUeXBlID0gJ2ZvcmVjYXN0TW9kZWxUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0VHJlbmRUeXBlLCBoYXZpbmcgdHlwZSBGb3JlY2FzdENvbXBvbmVudFR5cGVcclxuICBGb3JlY2FzdFRyZW5kVHlwZSA9ICdmb3JlY2FzdFRyZW5kVHlwZScsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdFNlYXNvblR5cGUsIGhhdmluZyB0eXBlIEZvcmVjYXN0Q29tcG9uZW50VHlwZVxyXG4gIEZvcmVjYXN0U2Vhc29uVHlwZSA9ICdmb3JlY2FzdFNlYXNvblR5cGUnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RSYW5nZVR5cGUsIGhhdmluZyB0eXBlIEZvcmVjYXN0UmFuZ2VUeXBlXHJcbiAgRm9yZWNhc3RSYW5nZVR5cGUgPSAnZm9yZWNhc3RSYW5nZVR5cGUnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RTdGF0dXMsIGhhdmluZyB0eXBlIEZvcmVjYXN0U3RhdHVzXHJcbiAgRm9yZWNhc3RTdGF0dXMgPSAnZm9yZWNhc3RTdGF0dXMnLFxyXG5cclxuICAvLyBEUElfU2hlZXRGb3JlY2FzdFN0YXR1cywgaGF2aW5nIHR5cGUgRm9yZWNhc3RTdGF0dXNcclxuICBTaGVldEZvcmVjYXN0U3RhdHVzID0gJ3NoZWV0Rm9yZWNhc3RTdGF0dXMnLFxyXG5cclxuICAvLyBEUElfUERGb3JlY2FzdFN0YXR1c0xpc3QsIGhhdmluZyB0eXBlIEZvcmVjYXN0U3RhdHVzW11cclxuICBQREZvcmVjYXN0U3RhdHVzTGlzdCA9ICdwYW5lRGVzY3JpcHRvckZvcmVjYXN0U3RhdHVzTGlzdCcsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdENvbHVtblR5cGUsIGhhdmluZyB0eXBlIEZvcmVjYXN0Q29sdW1uVHlwZVxyXG4gIEZvcmVjYXN0Q29sdW1uVHlwZSA9ICdmb3JlY2FzdENvbHVtblR5cGUnLFxyXG5cclxuICAvLyBEUElfRGF0YVNjYWxpbmcsIGhhdmluZyB0eXBlIERhdGFTY2FsaW5nXHJcbiAgRGF0YVNjYWxpbmcgPSAnZGF0YVNjYWxpbmcnLFxyXG5cclxuICAvLyBEUElfR2V0RmlsdGVySXRlbXNKc29uUmVzcG9uc2UsIGhhdmluZyB0eXBlIEdldEpzb25SZXNwb25zZUVudW1cclxuICBHZXRGaWx0ZXJJdGVtc0pzb25SZXNwb25zZSA9ICdnZXRGaWx0ZXJJdGVtc0pzb25SZXNwb25zZScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJTZWFyY2hKc29uUmVzcG9uc2UsIGhhdmluZyB0eXBlIEdldEpzb25SZXNwb25zZUVudW1cclxuICBGaWx0ZXJTZWFyY2hKc29uUmVzcG9uc2UgPSAnZmlsdGVyU2VhcmNoSnNvblJlc3BvbnNlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNlYXJjaFdpdGhJbmRleEpzb25SZXNwb25zZSwgaGF2aW5nIHR5cGUgR2V0SnNvblJlc3BvbnNlRW51bVxyXG4gIEZpbHRlclNlYXJjaFdpdGhJbmRleEpzb25SZXNwb25zZSA9ICdmaWx0ZXJTZWFyY2hXaXRoSW5kZXhKc29uUmVzcG9uc2UnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyU2hvd0NoaWxkcmVuSnNvblJlc3BvbnNlLCBoYXZpbmcgdHlwZSBHZXRKc29uUmVzcG9uc2VFbnVtXHJcbiAgRmlsdGVyU2hvd0NoaWxkcmVuSnNvblJlc3BvbnNlID0gJ2ZpbHRlclNob3dDaGlsZHJlbkpzb25SZXNwb25zZScsXHJcblxyXG4gIC8vIERQSV9IQWxpZ25tZW50LCBoYXZpbmcgdHlwZSBMYWJlbEhBbGlnbm1lbnRcclxuICBIQWxpZ25tZW50ID0gJ2hvcml6b250YWxMYWJlbEFsaWdubWVudCcsXHJcblxyXG4gIC8vIERQSV9Kb2luVmFsaWRhdGlvbkVycm9yLCBoYXZpbmcgdHlwZSBKb2luVmFsaWRhdGlvbkVycm9yXHJcbiAgSm9pblZhbGlkYXRpb25FcnJvciA9ICdqb2luVmFsaWRhdGlvbkVycm9yJyxcclxuXHJcbiAgLy8gRFBJX05hbWVDb25mbGljdFJlc29sdXRpb24sIGhhdmluZyB0eXBlIE5hbWVDb25mbGljdFJlc29sdXRpb25cclxuICBOYW1lQ29uZmxpY3RSZXNvbHV0aW9uID0gJ25hbWVDb25mbGljdFJlc29sdXRpb24nLFxyXG5cclxuICAvLyBEUElfTGFiZWxEaXIsIGhhdmluZyB0eXBlIFRleHRPcmllbnRcclxuICBMYWJlbERpciA9ICdsYWJlbERpcmVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9MYWJlbEFsaWduLCBoYXZpbmcgdHlwZSBUZXh0QWxpZ25cclxuICBMYWJlbEFsaWduID0gJ2xhYmVsQWxpZ25tZW50JyxcclxuXHJcbiAgLy8gRFBJX0xhYmVsV3JhcCwgaGF2aW5nIHR5cGUgVGV4dFdyYXBNb2RlXHJcbiAgTGFiZWxXcmFwID0gJ2xhYmVsV3JhcCcsXHJcblxyXG4gIC8vIERQSV9XcmFwTW9kZSwgaGF2aW5nIHR5cGUgVGV4dFdyYXBNb2RlXHJcbiAgV3JhcE1vZGUgPSAnd3JhcE1vZGUnLFxyXG5cclxuICAvLyBEUElfTWFya0VudW0sIGhhdmluZyB0eXBlIE1hcmtFbnVtXHJcbiAgTWFya0VudW0gPSAnbWFya0VudW0nLFxyXG5cclxuICAvLyBEUElfUGVyY2VudE1vZGUsIGhhdmluZyB0eXBlIFBlcmNlbnRNb2RlXHJcbiAgUGVyY2VudE1vZGUgPSAncGVyY2VudGFnZU1vZGUnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlT3B0aW9uc1NldCwgaGF2aW5nIHR5cGUgUmVmZXJlbmNlT3B0aW9uc1NldFxyXG4gIFJlZmVyZW5jZU9wdGlvbnNTZXQgPSAncmVmZXJlbmNlT3B0aW9uc1NldCcsXHJcblxyXG4gIC8vIERQSV9SZWZlcmVuY2VPcHRpb25zU2V0cywgaGF2aW5nIHR5cGUgUmVmZXJlbmNlT3B0aW9uc1NldFtdXHJcbiAgUmVmZXJlbmNlT3B0aW9uc1NldHMgPSAncmVmZXJlbmNlT3B0aW9uc1NldHMnLFxyXG5cclxuICAvLyBEUElfUmFua1R5cGUsIGhhdmluZyB0eXBlIFJhbmtUeXBlXHJcbiAgUmFua1R5cGUgPSAncmFua1R5cGUnLFxyXG5cclxuICAvLyBEUElfUmFua1R5cGVWYWx1ZXMsIGhhdmluZyB0eXBlIFJhbmtUeXBlW11cclxuICBSYW5rVHlwZVZhbHVlcyA9ICdyYW5rVHlwZVZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9TcGVjaWFsVmFsdWVzTW9kZSwgaGF2aW5nIHR5cGUgU3BlY2lhbFZhbHVlc01vZGVcclxuICBTcGVjaWFsVmFsdWVzTW9kZSA9ICdzcGVjaWFsVmFsdWVzTW9kZScsXHJcblxyXG4gIC8vIERQSV9WQWxpZ25tZW50LCBoYXZpbmcgdHlwZSBMYWJlbFZBbGlnbm1lbnRcclxuICBWQWxpZ25tZW50ID0gJ3ZlcnRpY2FsTGFiZWxBbGlnbm1lbnQnLFxyXG5cclxuICAvLyBEUElfQ29sb3JNb2RlLCBoYXZpbmcgdHlwZSBDb2xvck1vZGVcclxuICBDb2xvck1vZGUgPSAnY29sb3JNb2RlJyxcclxuXHJcbiAgLy8gRFBJX01hcmtMYWJlbHNNb2RlLCBoYXZpbmcgdHlwZSBNYXJrTGFiZWxzTW9kZVxyXG4gIE1hcmtMYWJlbHNNb2RlID0gJ21hcmtMYWJlbHNNb2RlJyxcclxuXHJcbiAgLy8gRFBJX01hcmtMYWJlbHNTY29wZSwgaGF2aW5nIHR5cGUgTWFya0xhYmVsc1Njb3BlXHJcbiAgTWFya0xhYmVsc1Njb3BlID0gJ21hcmtMYWJlbHNTY29wZScsXHJcblxyXG4gIC8vIERQSV9NYXJrTGFiZWxzVmlzaWJpbGl0eSwgaGF2aW5nIHR5cGUgTWFya0xhYmVsc1Zpc2liaWxpdHlcclxuICBNYXJrTGFiZWxzVmlzaWJpbGl0eSA9ICdtYXJrTGFiZWxzVmlzaWJpbGl0eScsXHJcblxyXG4gIC8vIERQSV9QcmltaXRpdmVUeXBlLCBoYXZpbmcgdHlwZSBQcmltaXRpdmVUeXBlXHJcbiAgUHJpbWl0aXZlVHlwZSA9ICdwcmltaXRpdmVUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0FjdHVhbFByaW1pdGl2ZVR5cGUsIGhhdmluZyB0eXBlIFByaW1pdGl2ZVR5cGVcclxuICBBY3R1YWxQcmltaXRpdmVUeXBlID0gJ2FjdHVhbFByaW1pdGl2ZVR5cGUnLFxyXG5cclxuICAvLyBEUElfUHJpbWl0aXZlVHlwZXMsIGhhdmluZyB0eXBlIFByaW1pdGl2ZVR5cGVbXVxyXG4gIFByaW1pdGl2ZVR5cGVzID0gJ3ByaW1pdGl2ZVR5cGVzJyxcclxuXHJcbiAgLy8gRFBJX1NoYXBlVHlwZSwgaGF2aW5nIHR5cGUgU2hhcGVUeXBlXHJcbiAgU2hhcGVUeXBlID0gJ3NoYXBlVHlwZScsXHJcblxyXG4gIC8vIERQSV9Tb3J0VHlwZSwgaGF2aW5nIHR5cGUgU29ydFR5cGVcclxuICBTb3J0VHlwZSA9ICdzb3J0QnknLFxyXG5cclxuICAvLyBEUElfU29ydEVuZCwgaGF2aW5nIHR5cGUgU29ydEVuZFxyXG4gIFNvcnRFbmQgPSAnc29ydEVuZCcsXHJcblxyXG4gIC8vIERQSV9TdGFja2luZ01vZGUsIGhhdmluZyB0eXBlIFN0YWNraW5nTW9kZVxyXG4gIFN0YWNraW5nTW9kZSA9ICdzdGFja2luZ01vZGUnLFxyXG5cclxuICAvLyBEUElfU3R5bGVUaGVtZSwgaGF2aW5nIHR5cGUgU3R5bGVUaGVtZVxyXG4gIFN0eWxlVGhlbWUgPSAnc3R5bGVUaGVtZScsXHJcblxyXG4gIC8vIERQSV9UcmVuZExpbmVGaXRUeXBlLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVGaXRUeXBlXHJcbiAgVHJlbmRMaW5lRml0VHlwZSA9ICdmaXRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1VwZGF0ZVNjb3BlLCBoYXZpbmcgdHlwZSBVcGRhdGVTY29wZVxyXG4gIFVwZGF0ZVNjb3BlID0gJ3VwZGF0ZVNjb3BlJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlckN0cmxEaXNwbGF5TW9kZSwgaGF2aW5nIHR5cGUgRGlzcGxheU1vZGVcclxuICBQYXJhbWV0ZXJDdHJsRGlzcGxheU1vZGUgPSAncGFyYW1EaXNwbGF5TW9kZScsXHJcblxyXG4gIC8vIERQSV9QYXJhbWV0ZXJDdHJsRGlzcGxheUZsYWcsIGhhdmluZyB0eXBlIFBhcmFtZXRlckN0cmxEaXNwbGF5RmxhZ1xyXG4gIFBhcmFtZXRlckN0cmxEaXNwbGF5RmxhZyA9ICdwYXJhbURpc3BsYXlGbGFnJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVkLCBoYXZpbmcgdHlwZSBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlc1xyXG4gIEluY2x1ZGVkID0gJ2luY2x1ZGVkJyxcclxuXHJcbiAgLy8gRFBJX0NvbW1hbmRzVHlwZSwgaGF2aW5nIHR5cGUgQ29tbWFuZHNUeXBlXHJcbiAgQ29tbWFuZHNUeXBlID0gJ2NvbW1hbmRzVHlwZScsXHJcblxyXG4gIC8vIERQSV9QYXJhbWV0ZXJEb21haW5UeXBlLCBoYXZpbmcgdHlwZSBEb21haW5UeXBlXHJcbiAgUGFyYW1ldGVyRG9tYWluVHlwZSA9ICdwYXJhbWV0ZXJEb21haW5UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckRvbWFpblR5cGUsIGhhdmluZyB0eXBlIERvbWFpblR5cGVcclxuICBGaWx0ZXJEb21haW5UeXBlID0gJ2ZpbHRlckRvbWFpblR5cGUnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyRG9tYWlucywgaGF2aW5nIHR5cGUgRG9tYWluVHlwZVtdXHJcbiAgRmlsdGVyRG9tYWlucyA9ICdmaWx0ZXJEb21haW5zJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyVHlwZSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJUeXBlXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJUeXBlID0gJ2NhdGVnb3JpY2FsRmlsdGVyVHlwZScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJQYXR0ZXJuVHlwZSwgaGF2aW5nIHR5cGUgUGF0dGVyblR5cGVcclxuICBGaWx0ZXJQYXR0ZXJuVHlwZSA9ICdmaWx0ZXJQYXR0ZXJuVHlwZScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJDb25kaXRpb25UeXBlLCBoYXZpbmcgdHlwZSBDb25kaXRpb25UeXBlXHJcbiAgRmlsdGVyQ29uZGl0aW9uVHlwZSA9ICdmaWx0ZXJDb25kaXRpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlcnNQcmVzZXRUeXBlLCBoYXZpbmcgdHlwZSBQcmVzZXRUeXBlXHJcbiAgRmlsdGVyc1ByZXNldFR5cGUgPSAnZmlsdGVyc1ByZXNldFR5cGUnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyc1JhbmdlVHlwZSwgaGF2aW5nIHR5cGUgUmFuZ2VUeXBlXHJcbiAgRmlsdGVyc1JhbmdlVHlwZSA9ICdmaWx0ZXJzUmFuZ2VUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0RhdGVSYW5nZVR5cGUsIGhhdmluZyB0eXBlIFJlbGF0aXZlRGF0ZVJhbmdlVHlwZVxyXG4gIERhdGVSYW5nZVR5cGUgPSAnZGF0ZVJhbmdlVHlwZScsXHJcblxyXG4gIC8vIERQSV9QYWdlRmxhZywgaGF2aW5nIHR5cGUgUGFnZU5hdkZsYWdzXHJcbiAgUGFnZUZsYWcgPSAncGFnZUZsYWcnLFxyXG5cclxuICAvLyBEUElfTWFya3NUb1RyYWlsLCBoYXZpbmcgdHlwZSBNYXJrc1RvVHJhaWxcclxuICBNYXJrc1RvVHJhaWwgPSAnbWFya3NUb1RyYWlsJyxcclxuXHJcbiAgLy8gRFBJX1RyYWlsVHlwZSwgaGF2aW5nIHR5cGUgVHJhaWxUeXBlXHJcbiAgVHJhaWxUeXBlID0gJ3RyYWlsVHlwZScsXHJcblxyXG4gIC8vIERQSV9DaGFuZ2VQYWdlRGlyZWN0aW9uLCBoYXZpbmcgdHlwZSBDaGFuZ2VQYWdlVHlwZVxyXG4gIENoYW5nZVBhZ2VEaXJlY3Rpb24gPSAnY2hhbmdlVG8nLFxyXG5cclxuICAvLyBEUElfQW5pbWF0aW9uQ29udHJvbCwgaGF2aW5nIHR5cGUgUGFnZUFuaW1hdGlvbkNvbnRyb2xcclxuICBBbmltYXRpb25Db250cm9sID0gJ2FuaW1hdGlvbkNvbnRyb2wnLFxyXG5cclxuICAvLyBEUElfTGluZVBhdHRlcm4sIGhhdmluZyB0eXBlIExpbmVQYXR0ZXJuXHJcbiAgTGluZVBhdHRlcm4gPSAnbGluZVBhdHRlcm4nLFxyXG5cclxuICAvLyBEUElfTGluZUNhcCwgaGF2aW5nIHR5cGUgTGluZUNhcFxyXG4gIExpbmVDYXAgPSAnbGluZUNhcCcsXHJcblxyXG4gIC8vIERQSV9MaW5lSm9pbiwgaGF2aW5nIHR5cGUgTGluZUpvaW5cclxuICBMaW5lSm9pbiA9ICdsaW5lSm9pbicsXHJcblxyXG4gIC8vIERQSV9MaW5lQWxpZ25tZW50LCBoYXZpbmcgdHlwZSBMaW5lQWxpZ25tZW50XHJcbiAgTGluZUFsaWdubWVudCA9ICdsaW5lQWxpZ25tZW50JyxcclxuXHJcbiAgLy8gRFBJX0ZpbGxNb2RlLCBoYXZpbmcgdHlwZSBGaWxsTW9kZVxyXG4gIEZpbGxNb2RlID0gJ2ZpbGxNb2RlJyxcclxuXHJcbiAgLy8gRFBJX0N1cnNvclNoYXBlLCBoYXZpbmcgdHlwZSBDdXJzb3JTaGFwZVxyXG4gIEN1cnNvclNoYXBlID0gJ2N1cnNvclNoYXBlJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dNZUNvbW1hbmRUeXBlLCBoYXZpbmcgdHlwZSBTaG93TWVDb21tYW5kVHlwZVxyXG4gIFNob3dNZUNvbW1hbmRUeXBlID0gJ3Nob3dNZUNvbW1hbmRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmSWNvblR5cGUsIGhhdmluZyB0eXBlIFNoZWxmSWNvblR5cGVcclxuICBTaGVsZkljb25UeXBlID0gJ3NoZWxmSWNvblR5cGUnLFxyXG5cclxuICAvLyBEUElfU2hlbGZJY29uVHlwZXMsIGhhdmluZyB0eXBlIFNoZWxmSWNvblR5cGVbXVxyXG4gIFNoZWxmSWNvblR5cGVzID0gJ3NoZWxmSWNvblR5cGVzJyxcclxuXHJcbiAgLy8gRFBJX0l0ZW1EcmF3U3R5bGUsIGhhdmluZyB0eXBlIEl0ZW1EcmF3U3R5bGVcclxuICBJdGVtRHJhd1N0eWxlID0gJ2l0ZW1EcmF3U3R5bGUnLFxyXG5cclxuICAvLyBEUElfU2NhbGVNb2RlLCBoYXZpbmcgdHlwZSBTY2FsZU1vZGVcclxuICBTY2FsZU1vZGUgPSAncGFnZVNjYWxlTW9kZScsXHJcblxyXG4gIC8vIERQSV9QYWdlT3JpZW50YXRpb25PcHRpb24sIGhhdmluZyB0eXBlIFBhZ2VPcmllbnRhdGlvblxyXG4gIFBhZ2VPcmllbnRhdGlvbk9wdGlvbiA9ICdwYWdlT3JpZW50YXRpb25PcHRpb24nLFxyXG5cclxuICAvLyBEUElfUGFnZVNpemVPcHRpb24sIGhhdmluZyB0eXBlIFBhZ2VTaXplT3B0aW9uXHJcbiAgUGFnZVNpemVPcHRpb24gPSAncGFnZVNpemVPcHRpb24nLFxyXG5cclxuICAvLyBEUElfU29ydFJlZ2lvblR5cGUsIGhhdmluZyB0eXBlIFNvcnRSZWdpb25UeXBlXHJcbiAgU29ydFJlZ2lvblR5cGUgPSAnc29ydFJlZ2lvbicsXHJcblxyXG4gIC8vIERQSV9MZWdlbmRJdGVtTGF5b3V0LCBoYXZpbmcgdHlwZSBMZWdlbmRJdGVtTGF5b3V0XHJcbiAgTGVnZW5kSXRlbUxheW91dCA9ICdsZWdlbmRMYXlvdXQnLFxyXG5cclxuICAvLyBEUElfTGVnZW5kSXRlbU9yZGVyLCBoYXZpbmcgdHlwZSBMZWdlbmRJdGVtT3JkZXJcclxuICBMZWdlbmRJdGVtT3JkZXIgPSAnbGVnZW5kT3JkZXInLFxyXG5cclxuICAvLyBEUElfVml6SW1hZ2VSZWdpb24sIGhhdmluZyB0eXBlIFZpekltYWdlUmVnaW9uXHJcbiAgVml6SW1hZ2VSZWdpb24gPSAncicsXHJcblxyXG4gIC8vIERQSV9MZWdhY3lNZW51TmFtZSwgaGF2aW5nIHR5cGUgTGVnYWN5TWVudU5hbWVcclxuICBMZWdhY3lNZW51TmFtZSA9ICdsZWdhY3lNZW51TmFtZScsXHJcblxyXG4gIC8vIERQSV9MZWdhY3lNZW51U3RhdGUsIGhhdmluZyB0eXBlIExlZ2FjeU1lbnVTdGF0ZVxyXG4gIExlZ2FjeU1lbnVTdGF0ZSA9ICdsZWdhY3lNZW51U3RhdGUnLFxyXG5cclxuICAvLyBEUElfTGVnYWN5TWVudVN0YXRlTGlzdCwgaGF2aW5nIHR5cGUgTGVnYWN5TWVudVN0YXRlW11cclxuICBMZWdhY3lNZW51U3RhdGVMaXN0ID0gJ2xlZ2FjeU1lbnVTdGF0ZXMnLFxyXG5cclxuICAvLyBEUElfRGltZW5zaW9uVHlwZSwgaGF2aW5nIHR5cGUgRGltZW5zaW9uVHlwZVxyXG4gIERpbWVuc2lvblR5cGUgPSAnZGltZW5zaW9uVHlwZScsXHJcblxyXG4gIC8vIERQSV9MYXlvdXRUeXBlLCBoYXZpbmcgdHlwZSBMYXlvdXRUeXBlXHJcbiAgTGF5b3V0VHlwZSA9ICdsYXlvdXRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmVHlwZSwgaGF2aW5nIHR5cGUgU2hlbGZUeXBlXHJcbiAgU2hlbGZUeXBlID0gJ3NoZWxmVHlwZScsXHJcblxyXG4gIC8vIERQSV9MYXN0U2VsZWN0aW9uU2hlbGYsIGhhdmluZyB0eXBlIFNoZWxmVHlwZVxyXG4gIExhc3RTZWxlY3Rpb25TaGVsZiA9ICdsYXN0U2hlbGYnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hVmlld2VyRGF0YVNvdXJjZVR5cGUsIGhhdmluZyB0eXBlIFNjaGVtYVZpZXdlckRhdGFTb3VyY2VUeXBlXHJcbiAgU2NoZW1hVmlld2VyRGF0YVNvdXJjZVR5cGUgPSAnc2NoZW1hRGF0YXNvdXJjZVR5cGUnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hSXRlbVR5cGUsIGhhdmluZyB0eXBlIFNjaGVtYUl0ZW1UeXBlXHJcbiAgU2NoZW1hSXRlbVR5cGUgPSAnc2NoZW1hSXRlbVR5cGUnLFxyXG5cclxuICAvLyBEUElfSFNNU2VsZWN0aW9uTW9kZSwgaGF2aW5nIHR5cGUgU2VsZWN0aW9uTW9kZVxyXG4gIEhTTVNlbGVjdGlvbk1vZGUgPSAnaHNtU2VsZWN0aW9uTW9kZScsXHJcblxyXG4gIC8vIERQSV9IU01EZWZhdWx0TWVtYmVyVHlwZSwgaGF2aW5nIHR5cGUgRGVmYXVsdE1lbWJlclR5cGVcclxuICBIU01EZWZhdWx0TWVtYmVyVHlwZSA9ICdoc21EZWZhdWx0TWVtYmVyVHlwZScsXHJcblxyXG4gIC8vIERQSV9IU01Ob3RpZmljYXRpb25UeXBlLCBoYXZpbmcgdHlwZSBOb3RpZmljYXRpb25UeXBlXHJcbiAgSFNNTm90aWZpY2F0aW9uVHlwZSA9ICdoc21Ob3RpZmljYXRpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0hTTVNlbGVjdGlvblJlcXVlc3RUeXBlLCBoYXZpbmcgdHlwZSBTZWxlY3Rpb25SZXF1ZXN0VHlwZVxyXG4gIEhTTVNlbGVjdGlvblJlcXVlc3RUeXBlID0gJ2hzbVNlbGVjdGlvblJlcXVlc3RUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0hTTU1lbWJlclNlbGVjdFJlcXVlc3RUeXBlLCBoYXZpbmcgdHlwZSBNZW1iZXJTZWxlY3RSZXF1ZXN0VHlwZVxyXG4gIEhTTU1lbWJlclNlbGVjdFJlcXVlc3RUeXBlID0gJ2hzbU1lbWJlclNlbGVjdFJlcXVlc3RUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1Bpdm90U3RyYXRlZ3ksIGhhdmluZyB0eXBlIEZpZWxkUGl2b3RTdHJhdGVneVxyXG4gIFBpdm90U3RyYXRlZ3kgPSAncGl2b3RTdHJhdGVneScsXHJcblxyXG4gIC8vIERQSV9BbGlhc1R5cGUsIGhhdmluZyB0eXBlIEFsaWFzVHlwZVxyXG4gIEFsaWFzVHlwZSA9ICdhbGlhc1R5cGUnLFxyXG5cclxuICAvLyBEUElfRFNPRGltZW5zaW9uU29ydE9yZGVyLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlT3JkZXJcclxuICBEU09EaW1lbnNpb25Tb3J0T3JkZXIgPSAnZHNvRGltZW5zaW9uU29ydE9yZGVyJyxcclxuXHJcbiAgLy8gRFBJX0RTT01lYXN1cmVTb3J0T3JkZXIsIGhhdmluZyB0eXBlIERhdGFTb3VyY2VPcmRlclxyXG4gIERTT01lYXN1cmVTb3J0T3JkZXIgPSAnZHNvTWVhc3VyZVNvcnRPcmRlcicsXHJcblxyXG4gIC8vIERQSV9EU09Tb3J0T3JkZXIsIGhhdmluZyB0eXBlIERhdGFTb3VyY2VPcmRlclxyXG4gIERTT1NvcnRPcmRlciA9ICdkc29Tb3J0T3JkZXInLFxyXG5cclxuICAvLyBEUElfVlRBZ2dUeXBlLCBoYXZpbmcgdHlwZSBWVEFnZ1R5cGVcclxuICBWVEFnZ1R5cGUgPSAndnRBZ2dyZWdhdGlvbicsXHJcblxyXG4gIC8vIERQSV9GaWVsZFR5cGVJY29uU2V0LCBoYXZpbmcgdHlwZSBGaWVsZFR5cGVJY29uU2V0XHJcbiAgRmllbGRUeXBlSWNvblNldCA9ICdmaWVsZEljb25TZXQnLFxyXG5cclxuICAvLyBEUElfVmlzdWFsUGFydCwgaGF2aW5nIHR5cGUgVmlzdWFsUGFydFxyXG4gIFZpc3VhbFBhcnQgPSAndmlzdWFsUGFydCcsXHJcblxyXG4gIC8vIERQSV9EZWZhdWx0TWFwVG9vbEVudW0sIGhhdmluZyB0eXBlIE1hcFRvb2xTZWxlY3Rpb25cclxuICBEZWZhdWx0TWFwVG9vbEVudW0gPSAnZGVmYXVsdE1hcFRvb2xFbnVtJyxcclxuXHJcbiAgLy8gRFBJX0RlZmF1bHRNYXBVbml0RW51bSwgaGF2aW5nIHR5cGUgTWFwVW5pdFNlbGVjdGlvbkVudW1cclxuICBEZWZhdWx0TWFwVW5pdEVudW0gPSAnZGVmYXVsdE1hcFVuaXRFbnVtJyxcclxuXHJcbiAgLy8gRFBJX1NjZW5lTW9kZWxEZXRhaWwsIGhhdmluZyB0eXBlIERldGFpbFxyXG4gIFNjZW5lTW9kZWxEZXRhaWwgPSAnc2NlbmVNb2RlbERldGFpbEVudW0nLFxyXG5cclxuICAvLyBEUElfU2NlbmVNb2RlbEhpdFR5cGUsIGhhdmluZyB0eXBlIEhpdFR5cGVcclxuICBTY2VuZU1vZGVsSGl0VHlwZSA9ICdzY2VuZU1vZGVsSGl0VHlwZScsXHJcblxyXG4gIC8vIERQSV9IaXRUZXN0U3R5bGUsIGhhdmluZyB0eXBlIEhpdFRlc3RTdHlsZVxyXG4gIEhpdFRlc3RTdHlsZSA9ICdoaXRUZXN0U3R5bGUnLFxyXG5cclxuICAvLyBEUElfTWFya1N0YXRlLCBoYXZpbmcgdHlwZSBNYXJrU3RhdGVcclxuICBNYXJrU3RhdGUgPSAnbWFya1N0YXRlJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0VHlwZSwgaGF2aW5nIHR5cGUgU2hlZXRUeXBlXHJcbiAgU2hlZXRUeXBlID0gJ3NoZWV0VHlwZScsXHJcblxyXG4gIC8vIERQSV9EcmFnU291cmNlLCBoYXZpbmcgdHlwZSBEcmFnRHJvcFR5cGVcclxuICBEcmFnU291cmNlID0gJ2RyYWdTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfRHJvcFRhcmdldCwgaGF2aW5nIHR5cGUgRHJhZ0Ryb3BUeXBlXHJcbiAgRHJvcFRhcmdldCA9ICdkcm9wVGFyZ2V0JyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmRHJvcEFjdGlvbiwgaGF2aW5nIHR5cGUgU2hlbGZEcm9wQWN0aW9uXHJcbiAgU2hlbGZEcm9wQWN0aW9uID0gJ3NoZWxmRHJvcEFjdGlvbicsXHJcblxyXG4gIC8vIERQSV9TaGVsZkRyb3BDb250ZXh0LCBoYXZpbmcgdHlwZSBTaGVsZkRyb3BDb250ZXh0XHJcbiAgU2hlbGZEcm9wQ29udGV4dCA9ICdzaGVsZkRyb3BDb250ZXh0JyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNlbGVjdGlvblRyYWNraW5nLCBoYXZpbmcgdHlwZSBTZWxlY3Rpb25UcmFja2luZ1xyXG4gIEZpbHRlclNlbGVjdGlvblRyYWNraW5nID0gJ2ZpbHRlclNlbGVjdGlvblRyYWNraW5nJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclVwZGF0ZVR5cGUsIGhhdmluZyB0eXBlIEZpbHRlclVwZGF0ZVR5cGVcclxuICBGaWx0ZXJVcGRhdGVUeXBlID0gJ2ZpbHRlclVwZGF0ZVR5cGUnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyVXBkYXRlUXVhbGlmaWVyVHlwZSwgaGF2aW5nIHR5cGUgRmlsdGVyVXBkYXRlUXVhbGlmaWVyVHlwZVxyXG4gIEZpbHRlclVwZGF0ZVF1YWxpZmllclR5cGUgPSAnZmlsdGVyVXBkYXRlUXVhbGlmaWVyVHlwZScsXHJcblxyXG4gIC8vIERQSV9QYXJhbWV0ZXJFcnJvciwgaGF2aW5nIHR5cGUgUGFyYW1ldGVyRXJyb3JcclxuICBQYXJhbWV0ZXJFcnJvciA9ICdwYXJhbWV0ZXJFcnJvcicsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25UeXBlLCBoYXZpbmcgdHlwZSBTZWxlY3Rpb25UeXBlXHJcbiAgU2VsZWN0aW9uVHlwZSA9ICdzZWxlY3Rpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGlvblVwZGF0ZVR5cGUsIGhhdmluZyB0eXBlIFNlbGVjdGlvblVwZGF0ZVR5cGVcclxuICBTZWxlY3Rpb25VcGRhdGVUeXBlID0gJ3NlbGVjdGlvblVwZGF0ZVR5cGUnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0T3B0aW9ucywgaGF2aW5nIHR5cGUgU2VsZWN0T3B0aW9uc1xyXG4gIFNlbGVjdE9wdGlvbnMgPSAnc2VsZWN0T3B0aW9ucycsXHJcblxyXG4gIC8vIERQSV9XaGl0ZXNwYWNlU2VsZWN0aW9uQmVoYXZpb3IsIGhhdmluZyB0eXBlIFdoaXRlc3BhY2VTZWxlY3Rpb25CZWhhdmlvclxyXG4gIFdoaXRlc3BhY2VTZWxlY3Rpb25CZWhhdmlvciA9ICd3aGl0ZXNwYWNlU2VsZWN0aW9uQmVoYXZpb3InLFxyXG5cclxuICAvLyBEUElfQXhpc09yaWVudGF0aW9uLCBoYXZpbmcgdHlwZSBPcmllbnRhdGlvblxyXG4gIEF4aXNPcmllbnRhdGlvbiA9ICdheGlzT3JpZW50YXRpb24nLFxyXG5cclxuICAvLyBEUElfRGVjaW1hbE1vZGUsIGhhdmluZyB0eXBlIERlY2ltYWxNb2RlXHJcbiAgRGVjaW1hbE1vZGUgPSAnZGVjaW1hbE1vZGUnLFxyXG5cclxuICAvLyBEUElfQWN0aXZhdGlvbk1ldGhvZCwgaGF2aW5nIHR5cGUgQWN0aXZhdGlvbk1ldGhvZFxyXG4gIEFjdGl2YXRpb25NZXRob2QgPSAnYWN0aXZhdGlvbicsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VUeXBlLCBoYXZpbmcgdHlwZSBTb3VyY2VUeXBlXHJcbiAgU291cmNlVHlwZSA9ICdzb3VyY2VUeXBlJyxcclxuXHJcbiAgLy8gRFBJX09uQ2xlYXIsIGhhdmluZyB0eXBlIE9uQ2xlYXJcclxuICBPbkNsZWFyID0gJ29uQ2xlYXInLFxyXG5cclxuICAvLyBEUElfTWVyZ2VPclNwbGl0LCBoYXZpbmcgdHlwZSBNZXJnZU9yU3BsaXRcclxuICBNZXJnZU9yU3BsaXQgPSAnbWVyZ2VPclNwbGl0JyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlck1vZGUsIGhhdmluZyB0eXBlIEZpbHRlck1vZGVcclxuICBGaWx0ZXJNb2RlID0gJ2ZpbHRlck1vZGUnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyVHlwZSwgaGF2aW5nIHR5cGUgRmlsdGVyVHlwZVxyXG4gIEZpbHRlclR5cGUgPSAnZmlsdGVyVHlwZScsXHJcblxyXG4gIC8vIERQSV9ab25lVHlwZSwgaGF2aW5nIHR5cGUgWm9uZVR5cGVcclxuICBab25lVHlwZSA9ICd6b25lVHlwZScsXHJcblxyXG4gIC8vIERQSV9ab25lTGF5b3V0VHlwZSwgaGF2aW5nIHR5cGUgWm9uZUxheW91dFR5cGVcclxuICBab25lTGF5b3V0VHlwZSA9ICd6b25lTGF5b3V0VHlwZScsXHJcblxyXG4gIC8vIERQSV9RdWlja1RhYmxlQ2FsY1R5cGUsIGhhdmluZyB0eXBlIFF1aWNrVGFibGVDYWxjQ29tbWFuZFR5cGVcclxuICBRdWlja1RhYmxlQ2FsY1R5cGUgPSAncXVpY2tUYWJsZUNhbGNUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlQ2FsY0NvbW1hbmRUeXBlLCBoYXZpbmcgdHlwZSBUYWJsZUNhbGNDb21tYW5kVHlwZVxyXG4gIFRhYmxlQ2FsY0NvbW1hbmRUeXBlID0gJ3RhYmxlQ2FsY0NvbW1hbmRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlQ2FsY0FkZHJlc3NUeXBlLCBoYXZpbmcgdHlwZSBUYWJsZUNhbGNBZGRyZXNzQ29tbWFuZFR5cGVcclxuICBUYWJsZUNhbGNBZGRyZXNzVHlwZSA9ICd0YWJsZUNhbGNBZGRyZXNzVHlwZScsXHJcblxyXG4gIC8vIERQSV9NYXJrTGF5b3V0UHJpbWl0aXZlLCBoYXZpbmcgdHlwZSBQcmltaXRpdmVcclxuICBNYXJrTGF5b3V0UHJpbWl0aXZlID0gJ21hcmtMYXlvdXRQcmltaXRpdmUnLFxyXG5cclxuICAvLyBEUElfTWFya0xheW91dFZpelR5cGUsIGhhdmluZyB0eXBlIFZpelR5cGVcclxuICBNYXJrTGF5b3V0Vml6VHlwZSA9ICdtYXJrTGF5b3V0Vml6VHlwZScsXHJcblxyXG4gIC8vIERQSV9NYXJrQWxpZ25tZW50LCBoYXZpbmcgdHlwZSBNYXJrQWxpZ25tZW50XHJcbiAgTWFya0FsaWdubWVudCA9ICdtYXJrQWxpZ25tZW50JyxcclxuXHJcbiAgLy8gRFBJX01vZGlmeVpvbmVaT3JkZXJUeXBlLCBoYXZpbmcgdHlwZSBNb2RpZnlab25lWk9yZGVyQ29tbWFuZFR5cGVcclxuICBNb2RpZnlab25lWk9yZGVyVHlwZSA9ICdtb2RpZnlab25lWk9yZGVyVHlwZScsXHJcblxyXG4gIC8vIERQSV9UZXh0UmVnaW9uSEFsaWduLCBoYXZpbmcgdHlwZSBUZXh0UmVnaW9uSEFsaWduXHJcbiAgVGV4dFJlZ2lvbkhBbGlnbiA9ICdoYWxpZ24nLFxyXG5cclxuICAvLyBEUElfVGV4dFJlZ2lvblZBbGlnbiwgaGF2aW5nIHR5cGUgVGV4dFJlZ2lvblZBbGlnblxyXG4gIFRleHRSZWdpb25WQWxpZ24gPSAndmFsaWduJyxcclxuXHJcbiAgLy8gRFBJX1BhdGhFbGVtZW50LCBoYXZpbmcgdHlwZSBQYXRoRWxlbWVudFxyXG4gIFBhdGhFbGVtZW50ID0gJ3BhdGhFbGVtZW50JyxcclxuXHJcbiAgLy8gRFBJX1BhdGhFbGVtZW50cywgaGF2aW5nIHR5cGUgUGF0aEVsZW1lbnRbXVxyXG4gIFBhdGhFbGVtZW50cyA9ICdwYXRoRWxlbWVudHMnLFxyXG5cclxuICAvLyBEUElfUmVuZGVyTW9kZSwgaGF2aW5nIHR5cGUgUmVuZGVyTW9kZVxyXG4gIFJlbmRlck1vZGUgPSAncmVuZGVyTW9kZScsXHJcblxyXG4gIC8vIERQSV9Gb250U3R5bGUsIGhhdmluZyB0eXBlIFRhYmxlYXVGb250U3R5bGVcclxuICBGb250U3R5bGUgPSAnZm9udFN0eWxlJyxcclxuXHJcbiAgLy8gRFBJX0ZvbnRXZWlnaHQsIGhhdmluZyB0eXBlIEZvbnRXZWlnaHRcclxuICBGb250V2VpZ2h0ID0gJ2ZvbnRXZWlnaHQnLFxyXG5cclxuICAvLyBEUElfVGV4dERlY29yYXRpb24sIGhhdmluZyB0eXBlIFRleHREZWNvcmF0aW9uXHJcbiAgVGV4dERlY29yYXRpb24gPSAndGV4dERlY29yYXRpb24nLFxyXG5cclxuICAvLyBEUElfQm9yZGVyU3R5bGUsIGhhdmluZyB0eXBlIEJvcmRlclN0eWxlXHJcbiAgQm9yZGVyU3R5bGUgPSAnYm9yZGVyU3R5bGUnLFxyXG5cclxuICAvLyBEUElfQm9yZGVyU3R5bGVUb3AsIGhhdmluZyB0eXBlIEJvcmRlclN0eWxlXHJcbiAgQm9yZGVyU3R5bGVUb3AgPSAnYm9yZGVyU3R5bGVUb3AnLFxyXG5cclxuICAvLyBEUElfQm9yZGVyU3R5bGVSaWdodCwgaGF2aW5nIHR5cGUgQm9yZGVyU3R5bGVcclxuICBCb3JkZXJTdHlsZVJpZ2h0ID0gJ2JvcmRlclN0eWxlUmlnaHQnLFxyXG5cclxuICAvLyBEUElfQm9yZGVyU3R5bGVCb3R0b20sIGhhdmluZyB0eXBlIEJvcmRlclN0eWxlXHJcbiAgQm9yZGVyU3R5bGVCb3R0b20gPSAnYm9yZGVyU3R5bGVCb3R0b20nLFxyXG5cclxuICAvLyBEUElfQm9yZGVyU3R5bGVMZWZ0LCBoYXZpbmcgdHlwZSBCb3JkZXJTdHlsZVxyXG4gIEJvcmRlclN0eWxlTGVmdCA9ICdib3JkZXJTdHlsZUxlZnQnLFxyXG5cclxuICAvLyBEUElfRmxvYXRpbmdUb29sYmFyVmlzaWJpbGl0eSwgaGF2aW5nIHR5cGUgRmxvYXRpbmdUb29sYmFyVmlzaWJpbGl0eVxyXG4gIEZsb2F0aW5nVG9vbGJhclZpc2liaWxpdHkgPSAnZmxvYXRpbmdUb29sYmFyVmlzaWJpbGl0eScsXHJcblxyXG4gIC8vIERQSV9HZW9TZWFyY2hWaXNpYmlsaXR5LCBoYXZpbmcgdHlwZSBHZW9TZWFyY2hWaXNpYmlsaXR5XHJcbiAgR2VvU2VhcmNoVmlzaWJpbGl0eSA9ICdnZW9ncmFwaGljU2VhcmNoVmlzaWJpbGl0eScsXHJcblxyXG4gIC8vIERQSV9NYXBTY2FsZVZpc2liaWxpdHksIGhhdmluZyB0eXBlIE1hcFNjYWxlVmlzaWJpbGl0eVxyXG4gIE1hcFNjYWxlVmlzaWJpbGl0eSA9ICdtYXBTY2FsZVZpc2liaWxpdHknLFxyXG5cclxuICAvLyBEUElfVml6TmF2aWdhdGlvblNldHRpbmcsIGhhdmluZyB0eXBlIFZpek5hdmlnYXRpb25TZXR0aW5nXHJcbiAgVml6TmF2aWdhdGlvblNldHRpbmcgPSAndml6TmF2aWdhdGlvblNldHRpbmcnLFxyXG5cclxuICAvLyBEUElfQXV0b0RyaWxsVmlzaWJpbGl0eSwgaGF2aW5nIHR5cGUgQXV0b0RyaWxsVmlzaWJpbGl0eVxyXG4gIEF1dG9EcmlsbFZpc2liaWxpdHkgPSAnYXV0b0RyaWxsVmlzaWJpbGl0eScsXHJcblxyXG4gIC8vIERQSV9DbGllbnRVSU1ldHJpY1R5cGUsIGhhdmluZyB0eXBlIENsaWVudFVJTWV0cmljVHlwZVxyXG4gIENsaWVudFVJTWV0cmljVHlwZSA9ICdjbGllbnRVaU1ldHJpY1R5cGUnLFxyXG5cclxuICAvLyBEUElfU2hlZXRTY3JvbGxEaXJlY3Rpb24sIGhhdmluZyB0eXBlIFNoZWV0U2Nyb2xsRGlyZWN0aW9uXHJcbiAgU2hlZXRTY3JvbGxEaXJlY3Rpb24gPSAnc2hlZXRTY3JvbGxEaXJlY3Rpb24nLFxyXG5cclxuICAvLyBEUElfU2l6ZU1vZGUsIGhhdmluZyB0eXBlIFNpemVNb2RlXHJcbiAgU2l6ZU1vZGUgPSAnc2l6ZU1vZGUnLFxyXG5cclxuICAvLyBEUElfUGVyc3BlY3RpdmVBZ2dyZWdhdGUsIGhhdmluZyB0eXBlIFBlcnNwZWN0aXZlQWdncmVnYXRlXHJcbiAgUGVyc3BlY3RpdmVBZ2dyZWdhdGUgPSAncGVyc3BlY3RpdmVBZ2dyZWdhdGlvbicsXHJcblxyXG4gIC8vIERQSV9TdHlsZUF0dHJpYnV0ZSwgaGF2aW5nIHR5cGUgU3R5bGVBdHRyaWJ1dGVcclxuICBTdHlsZUF0dHJpYnV0ZSA9ICdzdHlsZUF0dHJpYnV0ZScsXHJcblxyXG4gIC8vIERQSV9TdHlsZUF0dHJpYnV0ZXMsIGhhdmluZyB0eXBlIFN0eWxlQXR0cmlidXRlW11cclxuICBTdHlsZUF0dHJpYnV0ZXMgPSAnc3R5bGVBdHRyaWJ1dGVzJyxcclxuXHJcbiAgLy8gRFBJX1N0eWxlRWxlbWVudCwgaGF2aW5nIHR5cGUgU3R5bGVFbGVtZW50XHJcbiAgU3R5bGVFbGVtZW50ID0gJ3N0eWxlRWxlbWVudCcsXHJcblxyXG4gIC8vIERQSV9TdHlsZURhdGFDbGFzcywgaGF2aW5nIHR5cGUgU3R5bGVEYXRhQ2xhc3NcclxuICBTdHlsZURhdGFDbGFzcyA9ICdzdHlsZUNsYXNzJyxcclxuXHJcbiAgLy8gRFBJX1N0eWxlRmllbGRTY29wZSwgaGF2aW5nIHR5cGUgU3R5bGVGaWVsZFNjb3BlXHJcbiAgU3R5bGVGaWVsZFNjb3BlID0gJ3N0eWxlU2NvcGUnLFxyXG5cclxuICAvLyBEUElfRm9ybWF0Q29udHJvbFR5cGUsIGhhdmluZyB0eXBlIEZvcm1hdENvbnRyb2xUeXBlXHJcbiAgRm9ybWF0Q29udHJvbFR5cGUgPSAnZm9ybWF0VHlwZScsXHJcblxyXG4gIC8vIERQSV9MaW5lSW50ZXJwb2xhdGlvbk1vZGUsIGhhdmluZyB0eXBlIExpbmVJbnRlcnBvbGF0aW9uTW9kZVxyXG4gIExpbmVJbnRlcnBvbGF0aW9uTW9kZSA9ICdsaW5lSW50ZXJwb2xhdGlvbk1vZGUnLFxyXG5cclxuICAvLyBEUElfTGluZU1hcmtlclBvc2l0aW9uLCBoYXZpbmcgdHlwZSBMaW5lTWFya2VyUG9zaXRpb25cclxuICBMaW5lTWFya2VyUG9zaXRpb24gPSAnbGluZU1hcmtlclBvc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX01hcmtlcnNNb2RlLCBoYXZpbmcgdHlwZSBNYXJrTWFya2Vyc01vZGVcclxuICBNYXJrZXJzTW9kZSA9ICdtYXJrZXJzTW9kZScsXHJcblxyXG4gIC8vIERQSV9BcHBDb25maWdFbnVtLCBoYXZpbmcgdHlwZSBBcHBDb25maWdFbnVtXHJcbiAgQXBwQ29uZmlnRW51bSA9ICdhcHBDb25maWdFbnVtJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yUGFsZXR0ZVR5cGUsIGhhdmluZyB0eXBlIENvbG9yUGFsZXR0ZVR5cGVcclxuICBDb2xvclBhbGV0dGVUeXBlID0gJ2NvbG9yUGFsZXR0ZVR5cGUnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdFR5cGUsIGhhdmluZyB0eXBlIEV4dHJhY3RUeXBlXHJcbiAgRXh0cmFjdFR5cGUgPSAnZXh0cmFjdFR5cGUnLFxyXG5cclxuICAvLyBEUElfQWN0aXZpdHlEaXNwb3NpdGlvbiwgaGF2aW5nIHR5cGUgQWN0aXZpdHlEaXNwb3NpdGlvblxyXG4gIEFjdGl2aXR5RGlzcG9zaXRpb24gPSAnYWN0aXZpdHlEaXNwb3NpdGlvbicsXHJcblxyXG4gIC8vIERQSV9BY3Rpdml0eVJlc3VsdCwgaGF2aW5nIHR5cGUgQWN0aXZpdHlSZXN1bHRcclxuICBBY3Rpdml0eVJlc3VsdCA9ICdhY3Rpdml0eVJlc3VsdCcsXHJcblxyXG4gIC8vIERQSV9Ub29sdGlwTW9kZSwgaGF2aW5nIHR5cGUgVG9vbHRpcE1vZGVcclxuICBUb29sdGlwTW9kZSA9ICd0b29sdGlwTW9kZScsXHJcblxyXG4gIC8vIERQSV9SdW50aW1lT3V0cHV0LCBoYXZpbmcgdHlwZSBSdW50aW1lT3V0cHV0XHJcbiAgUnVudGltZU91dHB1dCA9ICdydW50aW1lT3V0cHV0JyxcclxuXHJcbiAgLy8gRFBJX0FuYWx5dGljc09iamVjdFR5cGUsIGhhdmluZyB0eXBlIEFuYWx5dGljc09iamVjdFR5cGVcclxuICBBbmFseXRpY3NPYmplY3RUeXBlID0gJ2FuYWx5dGljc09iamVjdFR5cGUnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uU3RhdHVzLCBoYXZpbmcgdHlwZSBVSUF1dG9tYXRpb25Db21tYW5kU3RhdHVzXHJcbiAgVUlBdXRvbWF0aW9uU3RhdHVzID0gJ3VpQXV0b21hdGlvblN0YXR1cycsXHJcblxyXG4gIC8vIERQSV9UYWJsZVZpZXdEYXRhVHlwZSwgaGF2aW5nIHR5cGUgVGFibGVWaWV3RGF0YVR5cGVcclxuICBUYWJsZVZpZXdEYXRhVHlwZSA9ICd0YWJsZVZpZXdlckRhdGFUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1VuaXRzRm9ybWF0LCBoYXZpbmcgdHlwZSBVbml0c0Zvcm1hdEVudW1cclxuICBVbml0c0Zvcm1hdCA9ICd1bml0c0Zvcm1hdCcsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJMaW1pdFR5cGUsIGhhdmluZyB0eXBlIExpbWl0VHlwZVxyXG4gIEZpbHRlckxpbWl0VHlwZSA9ICdmaWx0ZXJMaW1pdFR5cGUnLFxyXG5cclxuICAvLyBEUElfRGlzdHJpYnV0aW9uU2VsZWN0ZWRUeXBlLCBoYXZpbmcgdHlwZSBEaXN0cmlidXRpb25UeXBlXHJcbiAgRGlzdHJpYnV0aW9uU2VsZWN0ZWRUeXBlID0gJ2Rpc3RyaWJ1dGlvblNlbGVjdGVkVHlwZScsXHJcblxyXG4gIC8vIERQSV9EaXN0cmlidXRpb25UeXBlLCBoYXZpbmcgdHlwZSBEaXN0cmlidXRpb25UeXBlXHJcbiAgRGlzdHJpYnV0aW9uVHlwZSA9ICdkaXN0cmlidXRpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX1RyYW5zbGF0ZWREaXN0cmlidXRpb25UeXBlLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkRGlzdHJpYnV0aW9uVHlwZVByZXNNb2RlbFxyXG4gIFRyYW5zbGF0ZWREaXN0cmlidXRpb25UeXBlID0gJ3RyYW5zbGF0ZWREaXN0cmlidXRpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX1RyYW5zbGF0ZWREaXN0cmlidXRpb25UeXBlcywgaGF2aW5nIHR5cGUgVHJhbnNsYXRlZERpc3RyaWJ1dGlvblR5cGVQcmVzTW9kZWxbXVxyXG4gIFRyYW5zbGF0ZWREaXN0cmlidXRpb25UeXBlcyA9ICd0cmFuc2xhdGVkRGlzdHJpYnV0aW9uVHlwZXMnLFxyXG5cclxuICAvLyBEUElfUmVmTGluZUZvcm11bGFHcm91cCwgaGF2aW5nIHR5cGUgRm9ybXVsYUdyb3VwXHJcbiAgUmVmTGluZUZvcm11bGFHcm91cCA9ICdyZWZsaW5lRm9ybXVsYUdyb3VwJyxcclxuXHJcbiAgLy8gRFBJX1JlZmVyZW5jZUxpbmVTY29wZVR5cGUsIGhhdmluZyB0eXBlIFNjb3BlVHlwZVxyXG4gIFJlZmVyZW5jZUxpbmVTY29wZVR5cGUgPSAncmVmZXJlbmNlTGluZVNjb3BlVHlwZScsXHJcblxyXG4gIC8vIERQSV9TdERldlR5cGUsIGhhdmluZyB0eXBlIFN0RGV2VHlwZVxyXG4gIFN0RGV2VHlwZSA9ICdzdGRldlR5cGUnLFxyXG5cclxuICAvLyBEUElfU2hvd0JvdW5kcywgaGF2aW5nIHR5cGUgU2hvd0JvdW5kc1xyXG4gIFNob3dCb3VuZHMgPSAnc2hvd0JvdW5kcycsXHJcblxyXG4gIC8vIERQSV9Cb3hwbG90V2hpc2tlclR5cGUsIGhhdmluZyB0eXBlIEJveHBsb3RXaGlza2VyVHlwZVxyXG4gIEJveHBsb3RXaGlza2VyVHlwZSA9ICdib3hwbG90V2hpc2tlclR5cGUnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlTGluZUxhYmVsVHlwZSwgaGF2aW5nIHR5cGUgTGFiZWxUeXBlXHJcbiAgUmVmZXJlbmNlTGluZUxhYmVsVHlwZSA9ICdyZWZlcmVuY2VMaW5lTGFiZWxUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1BhaXJlZFJlZmVyZW5jZUxpbmVMYWJlbFR5cGUsIGhhdmluZyB0eXBlIExhYmVsVHlwZVxyXG4gIFBhaXJlZFJlZmVyZW5jZUxpbmVMYWJlbFR5cGUgPSAncGFpcmVkUmVmZXJlbmNlTGluZUxhYmVsVHlwZScsXHJcblxyXG4gIC8vIERQSV9Db25maWRlbmNlSW50ZXJ2YWxTZWxlY3RlZFN0YXRlLCBoYXZpbmcgdHlwZSBDb25maWRlbmNlSW50ZXJ2YWxTdGF0ZVxyXG4gIENvbmZpZGVuY2VJbnRlcnZhbFNlbGVjdGVkU3RhdGUgPSAnY29uZmlkZW5jZUludGVydmFsU2VsZWN0ZWRTdGF0ZScsXHJcblxyXG4gIC8vIERQSV9Db25maWRlbmNlSW50ZXJ2YWxTdGF0ZSwgaGF2aW5nIHR5cGUgQ29uZmlkZW5jZUludGVydmFsU3RhdGVcclxuICBDb25maWRlbmNlSW50ZXJ2YWxTdGF0ZSA9ICdjb25maWRlbmNlSW50ZXJ2YWxTdGF0ZScsXHJcblxyXG4gIC8vIERQSV9UcmFuc2xhdGVkTGFiZWxUeXBlLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkTGFiZWxUeXBlUHJlc01vZGVsXHJcbiAgVHJhbnNsYXRlZExhYmVsVHlwZSA9ICd0cmFuc2xhdGVkTGFiZWxUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1JlZmVyZW5jZUxpbmVWYWxpZExhYmVsVHlwZXMsIGhhdmluZyB0eXBlIFRyYW5zbGF0ZWRMYWJlbFR5cGVQcmVzTW9kZWxbXVxyXG4gIFJlZmVyZW5jZUxpbmVWYWxpZExhYmVsVHlwZXMgPSAndmFsaWRSZWZlcmVuY2VMaW5lTGFiZWxUeXBlcycsXHJcblxyXG4gIC8vIERQSV9SZWZlcmVuY2VMaW5lRm9ybXVsYVR5cGUsIGhhdmluZyB0eXBlIEZvcm11bGFUeXBlXHJcbiAgUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlID0gJ3JlZmVyZW5jZUxpbmVGb3JtdWxhVHlwZScsXHJcblxyXG4gIC8vIERQSV9QYWlyZWRSZWZlcmVuY2VMaW5lRm9ybXVsYVR5cGUsIGhhdmluZyB0eXBlIEZvcm11bGFUeXBlXHJcbiAgUGFpcmVkUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlID0gJ3BhaXJlZFJlZmVyZW5jZUxpbmVGb3JtdWxhVHlwZScsXHJcblxyXG4gIC8vIERQSV9UcmFuc2xhdGVkRm9ybXVsYVR5cGUsIGhhdmluZyB0eXBlIFRyYW5zbGF0ZWRGb3JtdWxhVHlwZVByZXNNb2RlbFxyXG4gIFRyYW5zbGF0ZWRGb3JtdWxhVHlwZSA9ICd0cmFuc2xhdGVkRm9ybXVsYVR5cGUnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlTGluZVZhbGlkRm9ybXVsYVR5cGVzLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkRm9ybXVsYVR5cGVQcmVzTW9kZWxbXVxyXG4gIFJlZmVyZW5jZUxpbmVWYWxpZEZvcm11bGFUeXBlcyA9ICd2YWxpZFJlZmVyZW5jZUxpbmVGb3JtdWxhVHlwZXMnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlTGluZVZhbGlkUGFpcmVkRm9ybXVsYVR5cGVzLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkRm9ybXVsYVR5cGVQcmVzTW9kZWxbXVxyXG4gIFJlZmVyZW5jZUxpbmVWYWxpZFBhaXJlZEZvcm11bGFUeXBlcyA9ICd2YWxpZFJlZmVyZW5jZUxpbmVQYWlyZWRGb3JtdWxhVHlwZXMnLFxyXG5cclxuICAvLyBEUElfVHJhbnNsYXRlZENvbmZpZGVuY2VJbnRlcnZhbFN0YXRlLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkQ29uZmlkZW5jZUludGVydmFsU3RhdGVQcmVzTW9kZWxcclxuICBUcmFuc2xhdGVkQ29uZmlkZW5jZUludGVydmFsU3RhdGUgPSAndHJhbnNsYXRlZENvbmZpZGVuY2VJbnRlcnZhbFN0YXRlJyxcclxuXHJcbiAgLy8gRFBJX1RyYW5zbGF0ZWRDb25maWRlbmNlSW50ZXJ2YWxTdGF0ZXMsIGhhdmluZyB0eXBlIFRyYW5zbGF0ZWRDb25maWRlbmNlSW50ZXJ2YWxTdGF0ZVByZXNNb2RlbFtdXHJcbiAgVHJhbnNsYXRlZENvbmZpZGVuY2VJbnRlcnZhbFN0YXRlcyA9ICd0cmFuc2xhdGVkQ29uZmlkZW5jZUludGVydmFsU3RhdGVzJyxcclxuXHJcbiAgLy8gRFBJX1RyYW5zbGF0ZWRTdERldlR5cGUsIGhhdmluZyB0eXBlIFRyYW5zbGF0ZWRTdERldlR5cGVQcmVzTW9kZWxcclxuICBUcmFuc2xhdGVkU3REZXZUeXBlID0gJ3RyYW5zbGF0ZWRTdGRldlR5cGUnLFxyXG5cclxuICAvLyBEUElfVHJhbnNsYXRlZFN0RGV2VHlwZXMsIGhhdmluZyB0eXBlIFRyYW5zbGF0ZWRTdERldlR5cGVQcmVzTW9kZWxbXVxyXG4gIFRyYW5zbGF0ZWRTdERldlR5cGVzID0gJ3RyYW5zbGF0ZWRTdGRldlR5cGVzJyxcclxuXHJcbiAgLy8gRFBJX1JlZmVyZW5jZUxpbmVMT0RDYWxjVHlwZSwgaGF2aW5nIHR5cGUgTE9EQ2FsY1R5cGVcclxuICBSZWZlcmVuY2VMaW5lTE9EQ2FsY1R5cGUgPSAncmVmZXJlbmNlTGluZUxvZENhbGNUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1ZhbHVlRG9tYWluVHlwZSwgaGF2aW5nIHR5cGUgVmFsdWVEb21haW5UeXBlXHJcbiAgVmFsdWVEb21haW5UeXBlID0gJ3ZhbHVlRG9tYWluVHlwZScsXHJcblxyXG4gIC8vIERQSV9WYWx1ZURvbWFpblR5cGVzLCBoYXZpbmcgdHlwZSBWYWx1ZURvbWFpblR5cGVbXVxyXG4gIFZhbHVlRG9tYWluVHlwZXMgPSAndmFsdWVEb21haW5UeXBlcycsXHJcblxyXG4gIC8vIERQSV9PcGVyYXRpb25UeXBlLCBoYXZpbmcgdHlwZSBPcGVyYXRpb25UeXBlXHJcbiAgT3BlcmF0aW9uVHlwZSA9ICdvcGVyYXRpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX09wZXJhdGlvblR5cGVzLCBoYXZpbmcgdHlwZSBPcGVyYXRpb25UeXBlW11cclxuICBPcGVyYXRpb25UeXBlcyA9ICdvcGVyYXRpb25UeXBlcycsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uVHlwZUNhdGVnb3J5LCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uVHlwZUNhdGVnb3J5XHJcbiAgQ29ubmVjdGlvblR5cGVDYXRlZ29yeSA9ICdjb25uZWN0aW9uVHlwZUNhdGVnb3J5JyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25UeXBlR3JvdXAsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25UeXBlR3JvdXBcclxuICBDb25uZWN0aW9uVHlwZUdyb3VwID0gJ2Nvbm5lY3Rpb25UeXBlR3JvdXAnLFxyXG5cclxuICAvLyBEUElfQ29tbWFuZFJlZGlyZWN0VHlwZSwgaGF2aW5nIHR5cGUgQ29tbWFuZFJlZGlyZWN0VHlwZVxyXG4gIENvbW1hbmRSZWRpcmVjdFR5cGUgPSAnY29tbWFuZFJlZGlyZWN0VHlwZScsXHJcblxyXG4gIC8vIERQSV9DdXN0b21TcGxpdE1vZGUsIGhhdmluZyB0eXBlIFNwbGl0TW9kZVxyXG4gIEN1c3RvbVNwbGl0TW9kZSA9ICdjdXN0b21TcGxpdE1vZGUnLFxyXG5cclxuICAvLyBEUElfQ3VzdG9tU3BsaXRTZXBhcmF0b3JUeXBlLCBoYXZpbmcgdHlwZSBTZXBhcmF0b3JUeXBlXHJcbiAgQ3VzdG9tU3BsaXRTZXBhcmF0b3JUeXBlID0gJ2N1c3RvbVNwbGl0U2VwYXJhdG9yVHlwZScsXHJcblxyXG4gIC8vIERQSV9MZXZlbFNlbGVjdGlvblN0YXRlLCBoYXZpbmcgdHlwZSBMZXZlbFNlbGVjdGlvblN0YXRlXHJcbiAgTGV2ZWxTZWxlY3Rpb25TdGF0ZSA9ICdsZXZlbFNlbGVjdGlvblN0YXRlJyxcclxuXHJcbiAgLy8gRFBJX0xldmVsU2VsZWN0aW9uU3RhdGVzLCBoYXZpbmcgdHlwZSBMZXZlbFNlbGVjdGlvblN0YXRlW11cclxuICBMZXZlbFNlbGVjdGlvblN0YXRlcyA9ICdsZXZlbFNlbGVjdGlvblN0YXRlcycsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VEZXN0SWNvbiwgaGF2aW5nIHR5cGUgU291cmNlRGVzdEljb25cclxuICBTb3VyY2VEZXN0SWNvbiA9ICdzb3VyY2VEZXN0SWNvbicsXHJcblxyXG4gIC8vIERQSV9MZWdlbmRMYXlvdXQsIGhhdmluZyB0eXBlIExlZ2VuZExheW91dFxyXG4gIExlZ2VuZExheW91dCA9ICdwYWdlTGVnZW5kTGF5b3V0JyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlc0VkaXRSZXN1bHRDb2RlLCBoYXZpbmcgdHlwZSBJbWFnZXNFZGl0UmVzdWx0Q29kZVxyXG4gIEltYWdlc0VkaXRSZXN1bHRDb2RlID0gJ2ltYWdlc0VkaXRSZXN1bHRDb2RlJyxcclxuXHJcbiAgLy8gRFBJX0NhbGN1bGF0aW9uQ29udGV4dCwgaGF2aW5nIHR5cGUgQ2FsY3VsYXRpb25Db250ZXh0XHJcbiAgQ2FsY3VsYXRpb25Db250ZXh0ID0gJ2NhbGN1bGF0aW9uQ29udGV4dCcsXHJcblxyXG4gIC8vIERQSV9Xb3JrZ3JvdXBQdWJsaXNoRXJyb3JUeXBlLCBoYXZpbmcgdHlwZSBXb3JrZ3JvdXBQdWJsaXNoRXJyb3JUeXBlXHJcbiAgV29ya2dyb3VwUHVibGlzaEVycm9yVHlwZSA9ICd3b3JrZ3JvdXBQdWJsaXNoRXJyb3JUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0lzUGFyYW1ldGVyLCBoYXZpbmcgdHlwZSBUcmlCb29sXHJcbiAgSXNQYXJhbWV0ZXIgPSAnaXNQYXJhbWV0ZXInLFxyXG5cclxuICAvLyBEUElfQWRkcmVzc2luZ1N0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIEFkZHJlc3NpbmdTdGF0ZSA9ICdhZGRyZXNzaW5nU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQWxsUGFnZXNTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcclxuICBBbGxQYWdlc1N0YXRlID0gJ2FsbFBhZ2VzU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQXRUaGVMZXZlbFN0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIEF0VGhlTGV2ZWxTdGF0ZSA9ICdhdFRoZUxldmVsU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQ29tcHV0ZUNvbXBvdW5kZWRSYXRlU3RhdGUsIGhhdmluZyB0eXBlIFdpZGdldFN0YXRlXHJcbiAgQ29tcHV0ZUNvbXBvdW5kZWRSYXRlU3RhdGUgPSAnY29tcHV0ZUNvbXBvdW5kZWRSYXRlU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQ3VzdG9tTnVsbElmSW5jb21wbGV0ZVN0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIEN1c3RvbU51bGxJZkluY29tcGxldGVTdGF0ZSA9ICdjdXN0b21OdWxsSWZJbmNvbXBsZXRlU3RhdGUnLFxyXG5cclxuICAvLyBEUElfTmVzdGVkQ2FsY3NTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcclxuICBOZXN0ZWRDYWxjc1N0YXRlID0gJ25lc3RlZENhbGNzU3RhdGUnLFxyXG5cclxuICAvLyBEUElfUmFua1R5cGVTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcclxuICBSYW5rVHlwZVN0YXRlID0gJ3JhbmtUeXBlU3RhdGUnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlT3B0aW9uc1N0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIFJlZmVyZW5jZU9wdGlvbnNTdGF0ZSA9ICdyZWZlcmVuY2VPcHRpb25zU3RhdGUnLFxyXG5cclxuICAvLyBEUElfUmVzdGFydEV2ZXJ5U3RhdGUsIGhhdmluZyB0eXBlIFdpZGdldFN0YXRlXHJcbiAgUmVzdGFydEV2ZXJ5U3RhdGUgPSAncmVzdGFydEV2ZXJ5U3RhdGUnLFxyXG5cclxuICAvLyBEUElfU29ydEFnZ1N0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIFNvcnRBZ2dTdGF0ZSA9ICdzb3J0QWdnU3RhdGUnLFxyXG5cclxuICAvLyBEUElfU29ydFN0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIFNvcnRTdGF0ZSA9ICdzb3J0U3RhdGUnLFxyXG5cclxuICAvLyBEUElfVGFibGVDYWxjVHlwZVN0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIFRhYmxlQ2FsY1R5cGVTdGF0ZSA9ICd0YWJsZUNhbGNUeXBlU3RhdGUnLFxyXG5cclxuICAvLyBEUElfVGFibGVDYWxjQXNzaXN0YW5jZVdpZGdldFN0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIFRhYmxlQ2FsY0Fzc2lzdGFuY2VXaWRnZXRTdGF0ZSA9ICd0YWJsZUNhbGNBc3Npc3RhbmNlV2lkZ2V0U3RhdGUnLFxyXG5cclxuICAvLyBEUElfQ2FsY05lc3RpbmdMZXZlbCwgaGF2aW5nIHR5cGUgQ2FsY05lc3RpbmdMZXZlbFxyXG4gIENhbGNOZXN0aW5nTGV2ZWwgPSAnY2FsY05lc3RpbmdMZXZlbCcsXHJcblxyXG4gIC8vIERQSV9EYXRhUHJvdmlkZXJUeXBlLCBoYXZpbmcgdHlwZSBEYXRhUHJvdmlkZXJUeXBlXHJcbiAgRGF0YVByb3ZpZGVyVHlwZSA9ICdkYXRhUHJvdmlkZXJUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0hldXJpc3RpY0NvbW1hbmRSZWludGVycHJldGF0aW9uLCBoYXZpbmcgdHlwZSBIZXVyaXN0aWNDb21tYW5kUmVpbnRlcnByZXRhdGlvblxyXG4gIEhldXJpc3RpY0NvbW1hbmRSZWludGVycHJldGF0aW9uID0gJ2hldXJpc3RpY0NvbW1hbmRSZWludGVycHJldGF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0V4dHJhY3RSZWZyZXNoU3RhdHVzLCBoYXZpbmcgdHlwZSBFeHRyYWN0UmVmcmVzaFN0YXR1c1xyXG4gIEV4dHJhY3RSZWZyZXNoU3RhdHVzID0gJ2V4dHJhY3RSZWZyZXNoU3RhdHVzJyxcclxuXHJcbiAgLy8gRFBJX1JpY2hUZXh0RWRpdG9yV2lkZ2V0S2V5LCBoYXZpbmcgdHlwZSBSaWNoVGV4dEVkaXRvcldpZGdldEtleVxyXG4gIFJpY2hUZXh0RWRpdG9yV2lkZ2V0S2V5ID0gJ3JpY2hUZXh0RWRpdG9yV2lkZ2V0S2V5JyxcclxuXHJcbiAgLy8gRFBJX1JpY2hUZXh0V2lkZ2V0S2V5cywgaGF2aW5nIHR5cGUgUmljaFRleHRFZGl0b3JXaWRnZXRLZXlbXVxyXG4gIFJpY2hUZXh0V2lkZ2V0S2V5cyA9ICdyaWNoVGV4dFdpZGdldEtleXMnLFxyXG5cclxuICAvLyBEUElfVHlwZU9mRm9ybWF0SXRlbSwgaGF2aW5nIHR5cGUgVHlwZU9mRm9ybWF0SXRlbVxyXG4gIFR5cGVPZkZvcm1hdEl0ZW0gPSAndHlwZU9mRm9ybWF0SXRlbScsXHJcblxyXG4gIC8vIERQSV9UeXBlT2ZGb3JtYXRDb250YWluZXIsIGhhdmluZyB0eXBlIFR5cGVPZkZvcm1hdENvbnRhaW5lclxyXG4gIFR5cGVPZkZvcm1hdENvbnRhaW5lciA9ICd0eXBlT2ZGb3JtYXRDb250YWluZXInLFxyXG5cclxuICAvLyBEUElfVHlwZU9mRm9ybWF0Q29udHJvbCwgaGF2aW5nIHR5cGUgVHlwZU9mRm9ybWF0Q29udHJvbFxyXG4gIFR5cGVPZkZvcm1hdENvbnRyb2wgPSAndHlwZU9mRm9ybWF0Q29udHJvbCcsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXRXaWRnZXRLZXksIGhhdmluZyB0eXBlIEZvcm1hdFdpZGdldEtleVxyXG4gIEZvcm1hdFdpZGdldEtleSA9ICdmb3JtYXRXaWRnZXRLZXknLFxyXG5cclxuICAvLyBEUElfQ29sb3JTd2F0Y2hUeXBlLCBoYXZpbmcgdHlwZSBDb2xvclN3YXRjaFR5cGVcclxuICBDb2xvclN3YXRjaFR5cGUgPSAnZm9ybWF0Q29sb3JTd2F0Y2hUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1BpY2tlclR5cGUsIGhhdmluZyB0eXBlIFBpY2tlclR5cGVcclxuICBQaWNrZXJUeXBlID0gJ3BpY2tlclR5cGUnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdEhpc3RvcnlSZWZyZXNoVHlwZSwgaGF2aW5nIHR5cGUgUmVmcmVzaFR5cGVcclxuICBFeHRyYWN0SGlzdG9yeVJlZnJlc2hUeXBlID0gJ2V4dHJhY3RIaXN0b3J5UmVmcmVzaFR5cGVFbnVtJyxcclxuXHJcbiAgLy8gRFBJX0F4aXNGb2xkU3RhdGUsIGhhdmluZyB0eXBlIEF4aXNGb2xkU3RhdGVcclxuICBBeGlzRm9sZFN0YXRlID0gJ2F4aXNGb2xkU3RhdGUnLFxyXG5cclxuICAvLyBEUElfVGlja01hcmtTcGFjaW5nVW5pdHMsIGhhdmluZyB0eXBlIFRpY2tTcGFjaW5nVW5pdHNcclxuICBUaWNrTWFya1NwYWNpbmdVbml0cyA9ICd0aWNrU3BhY2luZ1VuaXRzJyxcclxuXHJcbiAgLy8gRFBJX1RpY2tNYXJrU3RhdGUsIGhhdmluZyB0eXBlIFRpY2tNYXJrU3RhdGVcclxuICBUaWNrTWFya1N0YXRlID0gJ3RpY2tNYXJrU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQXhpc1JhbmdlVHlwZSwgaGF2aW5nIHR5cGUgQXhpc1JhbmdlVHlwZVxyXG4gIEF4aXNSYW5nZVR5cGUgPSAnYXhpc1JhbmdlVHlwZScsXHJcblxyXG4gIC8vIERQSV9TY2FsZVR5cGUsIGhhdmluZyB0eXBlIFNjYWxlVHlwZVxyXG4gIFNjYWxlVHlwZSA9ICdzY2FsZVR5cGUnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkRGV2aWNlTGF5b3V0LCBoYXZpbmcgdHlwZSBEYXNoYm9hcmREZXZpY2VMYXlvdXRcclxuICBEYXNoYm9hcmREZXZpY2VMYXlvdXQgPSAnZGFzaGJvYXJkRGV2aWNlTGF5b3V0JyxcclxuXHJcbiAgLy8gRFBJX0FjdGl2YXRlRGV2aWNlTGF5b3V0LCBoYXZpbmcgdHlwZSBEYXNoYm9hcmREZXZpY2VMYXlvdXRcclxuICBBY3RpdmF0ZURldmljZUxheW91dCA9ICdhY3RpdmF0ZURldmljZUxheW91dCcsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmREZXZpY2VMYXlvdXRzLCBoYXZpbmcgdHlwZSBEYXNoYm9hcmREZXZpY2VMYXlvdXRbXVxyXG4gIERhc2hib2FyZERldmljZUxheW91dHMgPSAnZGFzaGJvYXJkRGV2aWNlTGF5b3V0cycsXHJcblxyXG4gIC8vIERQSV9EZXZpY2VTb3VyY2UsIGhhdmluZyB0eXBlIERldmljZVNvdXJjZVxyXG4gIERldmljZVNvdXJjZSA9ICdkZXZpY2VTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkU2l6aW5nRGltZW5zaW9uLCBoYXZpbmcgdHlwZSBEYXNoYm9hcmRTaXppbmdEaW1lbnNpb25cclxuICBEYXNoYm9hcmRTaXppbmdEaW1lbnNpb24gPSAnZGFzaGJvYXJkU2l6aW5nRGltZW5zaW9uJyxcclxuXHJcbiAgLy8gRFBJX0dyaWRPdmVybGF5TW9kZSwgaGF2aW5nIHR5cGUgR3JpZE92ZXJsYXlNb2RlXHJcbiAgR3JpZE92ZXJsYXlNb2RlID0gJ2dyaWRPdmVybGF5TW9kZScsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRTaXppbmdNb2RlLCBoYXZpbmcgdHlwZSBEYXNoYm9hcmRTaXppbmdNb2RlXHJcbiAgRGFzaGJvYXJkU2l6aW5nTW9kZSA9ICdkYXNoYm9hcmRTaXppbmdNb2RlJyxcclxuXHJcbiAgLy8gRFBJX0ZsaXBib2FyZE5hdlR5cGUsIGhhdmluZyB0eXBlIEZsaXBib2FyZE5hdlR5cGVcclxuICBGbGlwYm9hcmROYXZUeXBlID0gJ2ZsaXBib2FyZE5hdlR5cGUnLFxyXG5cclxuICAvLyBEUElfRmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlLCBoYXZpbmcgdHlwZSBGaWVsZFBpY2tlckRpYWxvZ1VzZUNhc2VcclxuICBGaWVsZFBpY2tlckRpYWxvZ1VzZUNhc2UgPSAnZmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlJyxcclxuXHJcbiAgLy8gRFBJX1N0YXJ0T2ZXZWVrRW51bSwgaGF2aW5nIHR5cGUgU09XVmFsdWVcclxuICBTdGFydE9mV2Vla0VudW0gPSAnc3RhcnRPZldlZWtFbnVtJyxcclxuXHJcbiAgLy8gRFBJX1N0YXJ0T2ZGaXNjYWxZZWFyLCBoYXZpbmcgdHlwZSBGWVNWYWx1ZXNcclxuICBTdGFydE9mRmlzY2FsWWVhciA9ICdzdGFydE9mRmlzY2FsWWVhcicsXHJcblxyXG4gIC8vIERQSV9Ub3RhbHNJbmNsdXNpb25WYWx1ZSwgaGF2aW5nIHR5cGUgVG90YWxzSW5jbHVzaW9uXHJcbiAgVG90YWxzSW5jbHVzaW9uVmFsdWUgPSAndG90YWxzSW5jbHVzaW9uVmFsdWUnLFxyXG5cclxuICAvLyBEUElfRm9ybWF0Q29kZSwgaGF2aW5nIHR5cGUgRm9ybWF0Q29kZVxyXG4gIEZvcm1hdENvZGUgPSAnZm9ybWF0Q29kZScsXHJcblxyXG4gIC8vIERQSV9GaW5kVHlwZSwgaGF2aW5nIHR5cGUgRmluZFR5cGVcclxuICBGaW5kVHlwZSA9ICdmaW5kVHlwZScsXHJcblxyXG4gIC8vIERQSV9QZXJzcGVjdGl2ZVR5cGUsIGhhdmluZyB0eXBlIFBlcnNwZWN0aXZlVHlwZVxyXG4gIFBlcnNwZWN0aXZlVHlwZSA9ICdwZXJzcGVjdGl2ZVR5cGUnLFxyXG5cclxuICAvLyBEUElfR2VvbWV0cnlUeXBlLCBoYXZpbmcgdHlwZSBHZW9tZXRyeVR5cGVcclxuICBHZW9tZXRyeVR5cGUgPSAnZ2VvbWV0cnlUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1BhbmVMYWJlbENvbXBvc2l0aW9uLCBoYXZpbmcgdHlwZSBQYW5lTGFiZWxDb21wb3NpdGlvblxyXG4gIFBhbmVMYWJlbENvbXBvc2l0aW9uID0gJ3BhbmVMYWJlbENvbXBvc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1dhcm5pbmdUeXBlLCBoYXZpbmcgdHlwZSBXYXJuaW5nVHlwZVxyXG4gIFdhcm5pbmdUeXBlID0gJ3dhcm5pbmdUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1VJTW9kZSwgaGF2aW5nIHR5cGUgV29ya2Jvb2tVSU1vZGVcclxuICBVSU1vZGUgPSAndWlNb2RlJyxcclxuXHJcbiAgLy8gRFBJX01lbnVJdGVtSWQsIGhhdmluZyB0eXBlIFRvcExldmVsTWVudUl0ZW1cclxuICBNZW51SXRlbUlkID0gJ21lbnVJdGVtSWQnLFxyXG5cclxuICAvLyBEUElfQ29tbWFuZFJldHVybiwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgQ29tbWFuZFJldHVybiA9ICdjb21tYW5kUmV0dXJuJyxcclxuXHJcbiAgLy8gRFBJX0xlZ2FjeVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgTGVnYWN5UHJlc01vZGVsID0gJ2xlZ2FjeVByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9QcmVzZW50YXRpb25Nb2RlbCwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgUHJlc2VudGF0aW9uTW9kZWwgPSAncHJlc01vZGVsSG9sZGVyJyxcclxuXHJcbiAgLy8gRFBJX0V2ZW50LCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBFdmVudCA9ICdldmVudENvbnRhaW5lcicsXHJcblxyXG4gIC8vIERQSV9MaW5lU3R5bGUsIGhhdmluZyB0eXBlIEFycmF5XHJcbiAgTGluZVN0eWxlID0gJ2xpbmVTdHlsZScsXHJcblxyXG4gIC8vIERQSV9TdHJva2VTdHlsZSwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBTdHJva2VTdHlsZSA9ICdzdHJva2VTdHlsZScsXHJcblxyXG4gIC8vIERQSV9TY2hlbWEsIGhhdmluZyB0eXBlIEFycmF5XHJcbiAgU2NoZW1hID0gJ3NjaGVtYScsXHJcblxyXG4gIC8vIERQSV9TdGFydFR1cGxlLCBoYXZpbmcgdHlwZSBBcnJheVxyXG4gIFN0YXJ0VHVwbGUgPSAnc3RhcnRUdXBsZScsXHJcblxyXG4gIC8vIERQSV9FbmRUdXBsZSwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBFbmRUdXBsZSA9ICdlbmRUdXBsZScsXHJcblxyXG4gIC8vIERQSV9UdXBsZSwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBUdXBsZSA9ICd0dXBsZScsXHJcblxyXG4gIC8vIERQSV9UdXBsZXMsIGhhdmluZyB0eXBlIEFycmF5W11cclxuICBUdXBsZXMgPSAndHVwbGVzJyxcclxuXHJcbiAgLy8gRFBJX0N1c3RvbURvbWFpblR1cGxlcywgaGF2aW5nIHR5cGUgQXJyYXlbXVxyXG4gIEN1c3RvbURvbWFpblR1cGxlcyA9ICdjdXN0b21Eb21haW5UdXBsZXMnLFxyXG5cclxuICAvLyBEUElfVXBkYXRlZFR1cGxlcywgaGF2aW5nIHR5cGUgQXJyYXlbXVxyXG4gIFVwZGF0ZWRUdXBsZXMgPSAndXBkYXRlZFR1cGxlcycsXHJcblxyXG4gIC8vIERQSV9UYWJsZSwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBUYWJsZSA9ICd0YWJsZScsXHJcblxyXG4gIC8vIERQSV9BbGlhc2VkVmFsdWUsIGhhdmluZyB0eXBlIEFycmF5XHJcbiAgQWxpYXNlZFZhbHVlID0gJ3ZhbHVlQWxpYXMnLFxyXG5cclxuICAvLyBEUElfRmlyc3RBbGlhc2VkVmFsdWUsIGhhdmluZyB0eXBlIEFycmF5XHJcbiAgRmlyc3RBbGlhc2VkVmFsdWUgPSAnZmlyc3RBbGlzZWRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9NYXhpbXVtUmFuZ2UsIGhhdmluZyB0eXBlIEFycmF5XHJcbiAgTWF4aW11bVJhbmdlID0gJ21heGltdW1SYW5nZVZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX01pbmltdW1SYW5nZSwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBNaW5pbXVtUmFuZ2UgPSAnbWluaW11bVJhbmdlVmFsdWUnLFxyXG5cclxuICAvLyBEUElfU2Vjb25kQWxpYXNlZFZhbHVlLCBoYXZpbmcgdHlwZSBBcnJheVxyXG4gIFNlY29uZEFsaWFzZWRWYWx1ZSA9ICdzZWNvbmRBbGlzZWRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9BbGlhc2VkU2VsZWN0aW9uTGlzdCwgaGF2aW5nIHR5cGUgQXJyYXlbXVxyXG4gIEFsaWFzZWRTZWxlY3Rpb25MaXN0ID0gJ2FsaWFzZWRTZWxlY3Rpb25MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0FsaWFzZWRWYWx1ZXMsIGhhdmluZyB0eXBlIEFycmF5W11cclxuICBBbGlhc2VkVmFsdWVzID0gJ3ZhbHVlc0FsaWFzZXMnLFxyXG5cclxuICAvLyBEUElfVmVyYm9zZUFsaWFzZWRSYW5nZU1heCwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBWZXJib3NlQWxpYXNlZFJhbmdlTWF4ID0gJ3ZlcmJvc2VBbGlhc2VkUmFuZ2VNYXgnLFxyXG5cclxuICAvLyBEUElfVmVyYm9zZUFsaWFzZWRWYWx1ZSwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBWZXJib3NlQWxpYXNlZFZhbHVlID0gJ3ZlcmJvc2VBbGlhc2VkVmFsdWUnLFxyXG5cclxuICAvLyBEUElfTXVsdGlCdWNrZXQsIGhhdmluZyB0eXBlIE11bHRpQnVja2V0XHJcbiAgTXVsdGlCdWNrZXQgPSAneFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9QYWdlTmFtZSwgaGF2aW5nIHR5cGUgUGFnZU5hbWVcclxuICBQYWdlTmFtZSA9ICdwYWdlTmFtZScsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RvciwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgU2VsZWN0b3IgPSAnc2VsZWN0b3InLFxyXG5cclxuICAvLyBEUElfUGFuZUlkLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBQYW5lSWQgPSAncGFuZUlkJyxcclxuXHJcbiAgLy8gRFBJX1BhbmVJZHMsIGhhdmluZyB0eXBlIFBhbmVJZFtdXHJcbiAgUGFuZUlkcyA9ICdwYW5lSWRzJyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlUmVnaW9uSW5mbywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgSW1hZ2VSZWdpb25JbmZvID0gJ3ZpelJlZ2lvblJlY3QnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VSZWdpb25JbmZvTGlzdCwgaGF2aW5nIHR5cGUgb2JqZWN0W11cclxuICBJbWFnZVJlZ2lvbkluZm9MaXN0ID0gJ3ZpelJlZ2lvblJlY3RMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1Zpc3VhbElELCBoYXZpbmcgdHlwZSBWaXN1YWxJRFxyXG4gIFZpc3VhbElEID0gJ3Zpc3VhbElkJyxcclxuXHJcbiAgLy8gRFBJX1Zpc3VhbElEUE0sIGhhdmluZyB0eXBlIFZpc3VhbElEUHJlc01vZGVsXHJcbiAgVmlzdWFsSURQTSA9ICd2aXN1YWxJZFByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9JbnZhbGlkU2hlZXRzLCBoYXZpbmcgdHlwZSBWaXN1YWxJRFByZXNNb2RlbFtdXHJcbiAgSW52YWxpZFNoZWV0cyA9ICdpbnZhbGlkU2hlZXRzJyxcclxuXHJcbiAgLy8gRFBJX1Zpc3VhbElEUE1zLCBoYXZpbmcgdHlwZSBWaXN1YWxJRFByZXNNb2RlbFtdXHJcbiAgVmlzdWFsSURQTXMgPSAndmlzdWFsSWRzJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0UGF0aFBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcclxuICBTaGVldFBhdGhQTSA9ICdzaGVldFBhdGgnLFxyXG5cclxuICAvLyBEUElfQ2FwdHVyZWRTaGVldFBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcclxuICBDYXB0dXJlZFNoZWV0UE0gPSAnY2FwdHVyZWRTaGVldFBtJyxcclxuXHJcbiAgLy8gRFBJX0N1cnJlbnRTaGVldFBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcclxuICBDdXJyZW50U2hlZXRQTSA9ICdjdXJyZW50U2hlZXRQbScsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRQTSwgaGF2aW5nIHR5cGUgU2hlZXRQYXRoUHJlc01vZGVsXHJcbiAgRGFzaGJvYXJkUE0gPSAnZGFzaGJvYXJkUG0nLFxyXG5cclxuICAvLyBEUElfTmV3U2hlZXRQTSwgaGF2aW5nIHR5cGUgU2hlZXRQYXRoUHJlc01vZGVsXHJcbiAgTmV3U2hlZXRQTSA9ICduZXdTaGVldFBtJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0TmFtZVBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcclxuICBTaGVldE5hbWVQTSA9ICdzaGVldE5hbWVQbScsXHJcblxyXG4gIC8vIERQSV9TaGVldFBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcclxuICBTaGVldFBNID0gJ3NoZWV0UG0nLFxyXG5cclxuICAvLyBEUElfU291cmNlRGFzaGJvYXJkUE0sIGhhdmluZyB0eXBlIFNoZWV0UGF0aFByZXNNb2RlbFxyXG4gIFNvdXJjZURhc2hib2FyZFBNID0gJ3NvdXJjZURhc2hib2FyZFBtJyxcclxuXHJcbiAgLy8gRFBJX1NvdXJjZVNoZWV0UE0sIGhhdmluZyB0eXBlIFNoZWV0UGF0aFByZXNNb2RlbFxyXG4gIFNvdXJjZVNoZWV0UE0gPSAnc291cmNlU2hlZXRQbScsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRTaGVldFBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcclxuICBUYXJnZXRTaGVldFBNID0gJ3RhcmdldFNoZWV0UG0nLFxyXG5cclxuICAvLyBEUElfV29ya3NoZWV0UE0sIGhhdmluZyB0eXBlIFNoZWV0UGF0aFByZXNNb2RlbFxyXG4gIFdvcmtzaGVldFBNID0gJ3dvcmtzaGVldFBtJyxcclxuXHJcbiAgLy8gRFBJX01vZGlmaWVkU2hlZXRzLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxbXVxyXG4gIE1vZGlmaWVkU2hlZXRzID0gJ21vZGlmaWVkU2hlZXRzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFDb2x1bW4sIGhhdmluZyB0eXBlIERhdGFDb2x1bW5QcmVzTW9kZWxcclxuICBEYXRhQ29sdW1uID0gJ2RhdGFDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfRGF0YUNvbHVtbnMsIGhhdmluZyB0eXBlIERhdGFDb2x1bW5QcmVzTW9kZWxbXVxyXG4gIERhdGFDb2x1bW5zID0gJ2RhdGFDb2x1bW5zJyxcclxuXHJcbiAgLy8gRFBJX0FkZHJlc3NlcywgaGF2aW5nIHR5cGUgRGF0YUNvbHVtblByZXNNb2RlbFtdXHJcbiAgQWRkcmVzc2VzID0gJ2FkZHJlc3NlcycsXHJcblxyXG4gIC8vIERQSV9FbmNvZGluZ0NvbHVtbnMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgRGF0YUNvbHVtblByZXNNb2RlbClcclxuICBFbmNvZGluZ0NvbHVtbnMgPSAnZW5jb2RpbmdDb2x1bW5zJyxcclxuXHJcbiAgLy8gRFBJX1RleHRSdW5Db2x1bW5zLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIERhdGFDb2x1bW5QcmVzTW9kZWwpXHJcbiAgVGV4dFJ1bkNvbHVtbnMgPSAndGV4dFJ1bkNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfVGV4dFN0eWxlQ29sdW1ucywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBEYXRhQ29sdW1uUHJlc01vZGVsKVxyXG4gIFRleHRTdHlsZUNvbHVtbnMgPSAndGV4dFN0eWxlQ29sdW1ucycsXHJcblxyXG4gIC8vIERQSV9OYW1lZERhdGFDb2x1bW4sIGhhdmluZyB0eXBlIE5hbWVkRGF0YUNvbHVtblByZXNNb2RlbFxyXG4gIE5hbWVkRGF0YUNvbHVtbiA9ICduYW1lZERhdGFDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfTmFtZWREYXRhQ29sdW1ucywgaGF2aW5nIHR5cGUgTmFtZWREYXRhQ29sdW1uUHJlc01vZGVsW11cclxuICBOYW1lZERhdGFDb2x1bW5zID0gJ25hbWVkRGF0YUNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfRGF0YVRhYmxlLCBoYXZpbmcgdHlwZSBEYXRhVGFibGVQcmVzTW9kZWxcclxuICBEYXRhVGFibGUgPSAnZGF0YVRhYmxlJyxcclxuXHJcbiAgLy8gRFBJX0FjdGlvblNwZWNpZmljYXRpb24sIGhhdmluZyB0eXBlIE5vbmVcclxuICBBY3Rpb25TcGVjaWZpY2F0aW9uID0gJ2FjdGlvblNwZWMnLFxyXG5cclxuICAvLyBEUElfQ29sdW1uLCBoYXZpbmcgdHlwZSBDb2x1bW5cclxuICBDb2x1bW4gPSAnY29sdW1uQ29udGV4dCcsXHJcblxyXG4gIC8vIERQSV9TZXRGdW5jdGlvbiwgaGF2aW5nIHR5cGUgU2V0RnVuY3Rpb25cclxuICBTZXRGdW5jdGlvbiA9ICdzZXRGdW5jdGlvbicsXHJcblxyXG4gIC8vIERQSV9TZXRGdW5jdGlvbnMsIGhhdmluZyB0eXBlIFNldEZ1bmN0aW9uc1xyXG4gIFNldEZ1bmN0aW9ucyA9ICdzZXRGdW5jdGlvbnMnLFxyXG5cclxuICAvLyBEUElfVmlzdWFsUHJvZmlsZVNob3dNZSwgaGF2aW5nIHR5cGUgVmlzdWFsUHJvZmlsZVNob3dNZVxyXG4gIFZpc3VhbFByb2ZpbGVTaG93TWUgPSAndnBzbScsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlUHRyLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlXHJcbiAgRGF0YVNvdXJjZVB0ciA9ICdkYXRhc291cmNlUHRyJyxcclxuXHJcbiAgLy8gRFBJX1dvcmtncm91cENvbm5lY3Rpb24sIGhhdmluZyB0eXBlIFdvcmtncm91cENvbm5lY3Rpb25cclxuICBXb3JrZ3JvdXBDb25uZWN0aW9uID0gJ3dvcmtncm91cENvbm5lY3Rpb24nLFxyXG5cclxuICAvLyBEUElfQXV0aGVudGljYXRvciwgaGF2aW5nIHR5cGUgQXV0aGVudGljYXRvclJhd1B0clxyXG4gIEF1dGhlbnRpY2F0b3IgPSAnYXV0aGVudGljYXRvcicsXHJcblxyXG4gIC8vIERQSV9VcGdyYWRlQXR0ciwgaGF2aW5nIHR5cGUgVXBncmFkZUF0dHJcclxuICBVcGdyYWRlQXR0ciA9ICd1cGdyYWRlQXR0cicsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0QXR0ciwgaGF2aW5nIHR5cGUgRXh0cmFjdEF0dHJcclxuICBFeHRyYWN0QXR0ciA9ICdleHRyYWN0QXR0cicsXHJcblxyXG4gIC8vIERQSV9SZWZyZXNoQXR0ciwgaGF2aW5nIHR5cGUgUmVmcmVzaEF0dHJcclxuICBSZWZyZXNoQXR0ciA9ICdyZWZyZXNoQXR0cicsXHJcblxyXG4gIC8vIERQSV9Db250ZXh0U3BlY2lmaWNhdGlvbiwgaGF2aW5nIHR5cGUgQ29udGV4dFNwZWNpZmljYXRpb25cclxuICBDb250ZXh0U3BlY2lmaWNhdGlvbiA9ICdjb250ZXh0U3BlY2lmaWNhdGlvbicsXHJcblxyXG4gIC8vIERQSV9TY2hlbWFWaWV3ZXJTZWxlY3RvciwgaGF2aW5nIHR5cGUgU2NoZW1hVmlld2VyU2VsZWN0b3JQdHJcclxuICBTY2hlbWFWaWV3ZXJTZWxlY3RvciA9ICdzY2hlbWFWaWV3ZXJTZWxlY3RvcicsXHJcblxyXG4gIC8vIERQSV9CdWNrZXRzLCBoYXZpbmcgdHlwZSBCdWNrZXRzXHJcbiAgQnVja2V0cyA9ICdidWNrZXRzJyxcclxuXHJcbiAgLy8gRFBJX0xlZ2VuZEl0ZW1zLCBoYXZpbmcgdHlwZSBNdWx0aUJ1Y2tldHNcclxuICBMZWdlbmRJdGVtcyA9ICdsZWdlbmRJdGVtcycsXHJcblxyXG4gIC8vIERQSV9MZWdlbmRJdGVtLCBoYXZpbmcgdHlwZSBNdWx0aUJ1Y2tldFxyXG4gIExlZ2VuZEl0ZW0gPSAnbGVnZW5kSXRlbScsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VJdGVtLCBoYXZpbmcgdHlwZSBNdWx0aUJ1Y2tldFxyXG4gIFNvdXJjZUl0ZW0gPSAnc291cmNlSXRlbScsXHJcblxyXG4gIC8vIERQSV9EZXN0SXRlbSwgaGF2aW5nIHR5cGUgTXVsdGlCdWNrZXRcclxuICBEZXN0SXRlbSA9ICdkZXN0SXRlbScsXHJcblxyXG4gIC8vIERQSV9JUXVpY2tTb3J0U3RhdGUsIGhhdmluZyB0eXBlIElRdWlja1NvcnRTdGF0ZVxyXG4gIElRdWlja1NvcnRTdGF0ZSA9ICdxdWlja1NvcnRTdGF0ZScsXHJcblxyXG4gIC8vIERQSV9BcHBCdWlsZERhdGUsIGhhdmluZyB0eXBlIERhdGVUaW1lXHJcbiAgQXBwQnVpbGREYXRlID0gJ2FwcEJ1aWxkRGF0ZScsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdERhdGVSYW5nZUVuZCwgaGF2aW5nIHR5cGUgRGF0ZVRpbWVcclxuICBGb3JlY2FzdERhdGVSYW5nZUVuZCA9ICdmb3JlY2FzdERhdGVSYW5nZUVuZCcsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdERhdGVSYW5nZVN0YXJ0LCBoYXZpbmcgdHlwZSBEYXRlVGltZVxyXG4gIEZvcmVjYXN0RGF0ZVJhbmdlU3RhcnQgPSAnZm9yZWNhc3REYXRlUmFuZ2VTdGFydCcsXHJcblxyXG4gIC8vIERQSV9MYXN0TW9kaWZpZWQsIGhhdmluZyB0eXBlIERhdGVUaW1lXHJcbiAgTGFzdE1vZGlmaWVkID0gJ2xhc3RNb2RpZmllZCcsXHJcblxyXG4gIC8vIERQSV9TZWFyY2hEb21haW5QdHIsIGhhdmluZyB0eXBlIE11bHRpRG9tYWluXHJcbiAgU2VhcmNoRG9tYWluUHRyID0gJ3NlYXJjaERvbWFpblB0cicsXHJcblxyXG4gIC8vIERQSV9SZXN1bHRzRG9tYWluUHRyLCBoYXZpbmcgdHlwZSBNdWx0aURvbWFpblxyXG4gIFJlc3VsdHNEb21haW5QdHIgPSAncmVzdWx0c0RvbWFpblB0cicsXHJcblxyXG4gIC8vIERQSV9BY3Rpb25zLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBBY3Rpb25zID0gJ2FjdGlvbnMnLFxyXG5cclxuICAvLyBEUElfU1JDb21tYW5kcywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgU1JDb21tYW5kcyA9ICdzZWxlY3Rpb25SZWxheGF0aW9uQ29tbWFuZHMnLFxyXG5cclxuICAvLyBEUElfQ29tbWFuZHMsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIENvbW1hbmRzID0gJ2NvbW1hbmRzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFUeXBlQ29tbWFuZHMsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIERhdGFUeXBlQ29tbWFuZHMgPSAnZGF0YXR5cGVDb21tYW5kcycsXHJcblxyXG4gIC8vIERQSV9NdWx0aVNlbGVjdENvbW1hbmRzLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBNdWx0aVNlbGVjdENvbW1hbmRzID0gJ211bHRpc2VsZWN0Q29tbWFuZHMnLFxyXG5cclxuICAvLyBEUElfTm9uVml6Q29tbWFuZHMsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIE5vblZpekNvbW1hbmRzID0gJ25vblZpekNvbW1hbmRzJyxcclxuXHJcbiAgLy8gRFBJX1F1aWNrRmlsdGVyQ29tbWFuZHMsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIFF1aWNrRmlsdGVyQ29tbWFuZHMgPSAncXVpY2tGaWx0ZXJDb21tYW5kcycsXHJcblxyXG4gIC8vIERQSV9TaG93TWVDb21tYW5kcywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgU2hvd01lQ29tbWFuZHMgPSAnc2hvd01lQ29tbWFuZHMnLFxyXG5cclxuICAvLyBEUElfU29ydEluZGljYXRvck1lbnUsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIFNvcnRJbmRpY2F0b3JNZW51ID0gJ3NvcnRJbmRpY2F0b3JNZW51JyxcclxuXHJcbiAgLy8gRFBJX1N0YW5kYXJkQ29tbWFuZHMsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIFN0YW5kYXJkQ29tbWFuZHMgPSAnc3RhbmRhcmRDb21tYW5kcycsXHJcblxyXG4gIC8vIERQSV9WaXpDb21tYW5kcywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgVml6Q29tbWFuZHMgPSAndml6Q29tbWFuZHMnLFxyXG5cclxuICAvLyBEUElfWm9uZUNocm9tZUNvbW1hbmRzLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBab25lQ2hyb21lQ29tbWFuZHMgPSAnem9uZUNocm9tZUNvbW1hbmRzJyxcclxuXHJcbiAgLy8gRFBJX0NvbW1hbmRJdGVtLCBoYXZpbmcgdHlwZSBDb21tYW5kc0l0ZW1cclxuICBDb21tYW5kSXRlbSA9ICdjb21tYW5kSXRlbScsXHJcblxyXG4gIC8vIERQSV9Db21tYW5kSXRlbXMsIGhhdmluZyB0eXBlIENvbW1hbmRzSXRlbVtdXHJcbiAgQ29tbWFuZEl0ZW1zID0gJ2NvbW1hbmRJdGVtcycsXHJcblxyXG4gIC8vIERQSV9Db21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIENvbW1hbmQgPSAnc2ltcGxlQ29tbWFuZE1vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0FkZENvbW1hbmQsIGhhdmluZyB0eXBlIFNpbXBsZUNvbW1hbmRzUHJlc01vZGVsXHJcbiAgQWRkQ29tbWFuZCA9ICdhZGRTaW1wbGVDb21tYW5kTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUmVtb3ZlQ29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcclxuICBSZW1vdmVDb21tYW5kID0gJ3JlbW92ZVNpbXBsZUNvbW1hbmRNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9BY2NlcHRDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIEFjY2VwdENvbW1hbmQgPSAnYWNjZXB0U2ltcGxlQ29tbWFuZE1vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0RlY2xpbmVDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIERlY2xpbmVDb21tYW5kID0gJ2RlY2xpbmVTaW1wbGVDb21tYW5kTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRHJvcENvbW1hbmQsIGhhdmluZyB0eXBlIFNpbXBsZUNvbW1hbmRzUHJlc01vZGVsXHJcbiAgRHJvcENvbW1hbmQgPSAnZHJvcENvbW1hbmRNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9FZGl0Q2FwdGlvbkNvbW1hbmQsIGhhdmluZyB0eXBlIFNpbXBsZUNvbW1hbmRzUHJlc01vZGVsXHJcbiAgRWRpdENhcHRpb25Db21tYW5kID0gJ2VkaXRDYXB0aW9uQ29tbWFuZE1vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0ZvbnRDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIEZvbnRDb21tYW5kID0gJ2ZvbnRDb21tYW5kTW9kZWwnLFxyXG5cclxuICAvLyBEUElfTGluZVN0eWxlQ29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcclxuICBMaW5lU3R5bGVDb21tYW5kID0gJ2xpbmVTdHlsZUNvbW1hbmRNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXRDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIEZvcm1hdENvbW1hbmQgPSAnZm9ybWF0Q29tbWFuZE1vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0Rlc3RydWN0b3JDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIERlc3RydWN0b3JDb21tYW5kID0gJ2Rlc3RydWN0b3JDb21tYW5kJyxcclxuXHJcbiAgLy8gRFBJX0NsZWFyRm9ybWF0Q29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcclxuICBDbGVhckZvcm1hdENvbW1hbmQgPSAnY2xlYXJGb3JtYXRDb21tYW5kTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUmljaFRleHRDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIFJpY2hUZXh0Q29tbWFuZCA9ICdyaWNoVGV4dENvbW1hbmRNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Tb3J0SW5kaWNhdG9yQ29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcclxuICBTb3J0SW5kaWNhdG9yQ29tbWFuZCA9ICdzb3J0SW5kaWNhdG9yQ29tbWFuZCcsXHJcblxyXG4gIC8vIERQSV9SZWxlYXNlU3RvcmVDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIFJlbGVhc2VTdG9yZUNvbW1hbmQgPSAncmVsZWFzZVN0b3JlQ29tbWFuZCcsXHJcblxyXG4gIC8vIERQSV9Db25maXJtYXRpb25Db21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIENvbmZpcm1hdGlvbkNvbW1hbmQgPSAnY29uZmlybWF0aW9uQ29tbWFuZCcsXHJcblxyXG4gIC8vIERQSV9Db21tYW5kTGlzdCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxbXVxyXG4gIENvbW1hbmRMaXN0ID0gJ2NvbW1hbmRMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlckN0cmwsIGhhdmluZyB0eXBlIFBhcmFtZXRlckN0cmxQcmVzTW9kZWxcclxuICBQYXJhbWV0ZXJDdHJsID0gJ3BhcmFtZXRlckNvbnRyb2wnLFxyXG5cclxuICAvLyBEUElfUGFyYW1ldGVyQ3RybHMsIGhhdmluZyB0eXBlIFBhcmFtZXRlckN0cmxQcmVzTW9kZWxbXVxyXG4gIFBhcmFtZXRlckN0cmxzID0gJ3BhcmFtZXRlckNvbnRyb2xzJyxcclxuXHJcbiAgLy8gRFBJX1BhZ2VNb2RlbCwgaGF2aW5nIHR5cGUgUGFnZVByZXNNb2RlbFxyXG4gIFBhZ2VNb2RlbCA9ICdwYWdlTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUGFnZVRyYWlsT3B0aW9ucywgaGF2aW5nIHR5cGUgUGFnZVRyYWlsT3B0aW9uc1ByZXNNb2RlbFxyXG4gIFBhZ2VUcmFpbE9wdGlvbnMgPSAncGFnZVRyYWlsT3B0aW9ucycsXHJcblxyXG4gIC8vIERQSV9GaWVsZCwgaGF2aW5nIHR5cGUgRmllbGRQcmVzTW9kZWxcclxuICBGaWVsZCA9ICdmaWVsZCcsXHJcblxyXG4gIC8vIERQSV9GaWVsZExpc3QsIGhhdmluZyB0eXBlIEZpZWxkUHJlc01vZGVsW11cclxuICBGaWVsZExpc3QgPSAnZmllbGRMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0RpbWVuc2lvbnNGaWVsZExpc3QsIGhhdmluZyB0eXBlIEZpZWxkUHJlc01vZGVsW11cclxuICBEaW1lbnNpb25zRmllbGRMaXN0ID0gJ2RpbWVuc2lvbnNGaWVsZExpc3QnLFxyXG5cclxuICAvLyBEUElfTWVhc3VyZXNGaWVsZExpc3QsIGhhdmluZyB0eXBlIEZpZWxkUHJlc01vZGVsW11cclxuICBNZWFzdXJlc0ZpZWxkTGlzdCA9ICdtZWFzdXJlc0ZpZWxkTGlzdCcsXHJcblxyXG4gIC8vIERQSV9TZXRzRmllbGRMaXN0LCBoYXZpbmcgdHlwZSBGaWVsZFByZXNNb2RlbFtdXHJcbiAgU2V0c0ZpZWxkTGlzdCA9ICdzZXRzRmllbGRMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlcnNGaWVsZExpc3QsIGhhdmluZyB0eXBlIEZpZWxkUHJlc01vZGVsW11cclxuICBQYXJhbWV0ZXJzRmllbGRMaXN0ID0gJ3BhcmFtZXRlcnNGaWVsZExpc3QnLFxyXG5cclxuICAvLyBEUElfRmllbGRDb2x1bW4sIGhhdmluZyB0eXBlIEZpZWxkQ29sdW1uUHJlc01vZGVsXHJcbiAgRmllbGRDb2x1bW4gPSAnY29sdW1uJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkQ29sdW1uTGlzdCwgaGF2aW5nIHR5cGUgRmllbGRDb2x1bW5QcmVzTW9kZWxbXVxyXG4gIEZpZWxkQ29sdW1uTGlzdCA9ICdjb2x1bW5MaXN0JyxcclxuXHJcbiAgLy8gRFBJX1N0cnVjdHVyZWRNZWFzdXJlLCBoYXZpbmcgdHlwZSBTdHJ1Y3R1cmVkTWVhc3VyZVByZXNNb2RlbFxyXG4gIFN0cnVjdHVyZWRNZWFzdXJlID0gJ3N0cnVjdHVyZWRNZWFzdXJlJyxcclxuXHJcbiAgLy8gRFBJX1N0cnVjdHVyZWRNZWFzdXJlTGlzdCwgaGF2aW5nIHR5cGUgU3RydWN0dXJlZE1lYXN1cmVQcmVzTW9kZWxbXVxyXG4gIFN0cnVjdHVyZWRNZWFzdXJlTGlzdCA9ICdzdHJ1Y3R1cmVkTWVhc3VyZUxpc3QnLFxyXG5cclxuICAvLyBEUElfTGV2ZWwsIGhhdmluZyB0eXBlIExldmVsUHJlc01vZGVsXHJcbiAgTGV2ZWwgPSAnbGV2ZWwnLFxyXG5cclxuICAvLyBEUElfUGFyYW1ldGVyLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJQcmVzTW9kZWxcclxuICBQYXJhbWV0ZXIgPSAncGFyYW1ldGVyJyxcclxuXHJcbiAgLy8gRFBJX0Jhc2VEaW1lbnNpb24sIGhhdmluZyB0eXBlIEJhc2VEaW1lbnNpb25QcmVzTW9kZWxcclxuICBCYXNlRGltZW5zaW9uID0gJ2Jhc2VEaW1lbnNpb24nLFxyXG5cclxuICAvLyBEUElfRGltZW5zaW9uLCBoYXZpbmcgdHlwZSBEaW1lbnNpb25QcmVzTW9kZWxcclxuICBEaW1lbnNpb24gPSAnZGltZW5zaW9uJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJpYnV0ZURpbWVuc2lvbkxpc3QsIGhhdmluZyB0eXBlIERpbWVuc2lvblByZXNNb2RlbFtdXHJcbiAgQXR0cmlidXRlRGltZW5zaW9uTGlzdCA9ICdhdHRyaWJ1dGVEaW1lbnNpb25MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0F0dHJpYnV0ZURpbWVuc2lvbiwgaGF2aW5nIHR5cGUgQXR0cmlidXRlRGltZW5zaW9uUHJlc01vZGVsXHJcbiAgQXR0cmlidXRlRGltZW5zaW9uID0gJ2F0dHJpYnV0ZURpbWVuc2lvbicsXHJcblxyXG4gIC8vIERQSV9BdHRyaWJ1dGVBdHRyaWJ1dGVEaW1lbnNpb25MaXN0LCBoYXZpbmcgdHlwZSBBdHRyaWJ1dGVEaW1lbnNpb25QcmVzTW9kZWxbXVxyXG4gIEF0dHJpYnV0ZUF0dHJpYnV0ZURpbWVuc2lvbkxpc3QgPSAnYXR0cmlidXRlQXR0cmlidXRlRGltZW5zaW9uTGlzdCcsXHJcblxyXG4gIC8vIERQSV9TdGFuZGFyZERpbWVuc2lvbiwgaGF2aW5nIHR5cGUgU3RhbmRhcmREaW1lbnNpb25QcmVzTW9kZWxcclxuICBTdGFuZGFyZERpbWVuc2lvbiA9ICdzdGFuZGFyZERpbWVuc2lvbicsXHJcblxyXG4gIC8vIERQSV9SZWxhdGlvbmFsVGFibGUsIGhhdmluZyB0eXBlIFJlbGF0aW9uYWxUYWJsZVByZXNNb2RlbFxyXG4gIFJlbGF0aW9uYWxUYWJsZSA9ICdyZWxhdGlvbmFsVGFibGUnLFxyXG5cclxuICAvLyBEUElfRHJpbGxQYXRoLCBoYXZpbmcgdHlwZSBEcmlsbFBhdGhQcmVzTW9kZWxcclxuICBEcmlsbFBhdGggPSAnZHJpbGxQYXRoJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkRm9sZGVyLCBoYXZpbmcgdHlwZSBGaWVsZEZvbGRlclByZXNNb2RlbFxyXG4gIEZpZWxkRm9sZGVyID0gJ2ZpZWxkRm9sZGVyJyxcclxuXHJcbiAgLy8gRFBJX0dyb3VwLCBoYXZpbmcgdHlwZSBHcm91cFByZXNNb2RlbFxyXG4gIEdyb3VwID0gJ2dyb3VwJyxcclxuXHJcbiAgLy8gRFBJX1VzZXJEZWZpbmVkQXR0cmlidXRlTGlzdCwgaGF2aW5nIHR5cGUgR3JvdXBQcmVzTW9kZWxbXVxyXG4gIFVzZXJEZWZpbmVkQXR0cmlidXRlTGlzdCA9ICd1c2VyRGVmaW5lZEF0dHJpYnV0ZUxpc3QnLFxyXG5cclxuICAvLyBEUElfSGllcmFyY2h5LCBoYXZpbmcgdHlwZSBIaWVyYXJjaHlQcmVzTW9kZWxcclxuICBIaWVyYXJjaHkgPSAnaGllcmFyY2h5JyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeUxpc3QsIGhhdmluZyB0eXBlIEhpZXJhcmNoeVByZXNNb2RlbFtdXHJcbiAgSGllcmFyY2h5TGlzdCA9ICdoaWVyYXJjaHlMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeU1lbWJlclNlbGVjdGVkU3RhdGUsIGhhdmluZyB0eXBlIEhpZXJhcmNoeVNlbGVjdF9NZW1iZXJTZWxlY3RlZFN0YXRlUHJlc01vZGVsXHJcbiAgSGllcmFyY2h5TWVtYmVyU2VsZWN0ZWRTdGF0ZSA9ICdoaWVyYXJjaHlNZW1iZXJTZWxlY3RlZFN0YXRlJyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeVNlbGVjdGlvbkNoYW5nZXMsIGhhdmluZyB0eXBlIEhpZXJhcmNoeVNlbGVjdF9NZW1iZXJTZWxlY3RlZFN0YXRlUHJlc01vZGVsW11cclxuICBIaWVyYXJjaHlTZWxlY3Rpb25DaGFuZ2VzID0gJ2hpZXJhcmNoeVNlbGVjdGlvbkNoYW5nZXMnLFxyXG5cclxuICAvLyBEUElfRGlzcGxheUZvbGRlciwgaGF2aW5nIHR5cGUgRGlzcGxheUZvbGRlclByZXNNb2RlbFxyXG4gIERpc3BsYXlGb2xkZXIgPSAnZGlzcGxheUZvbGRlcicsXHJcblxyXG4gIC8vIERQSV9EaXNwbGF5Rm9sZGVyTGlzdCwgaGF2aW5nIHR5cGUgRGlzcGxheUZvbGRlclByZXNNb2RlbFtdXHJcbiAgRGlzcGxheUZvbGRlckxpc3QgPSAnZGlzcGxheUZvbGRlckxpc3QnLFxyXG5cclxuICAvLyBEUElfRGF0YVNvdXJjZUxheW91dCwgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZUxheW91dFByZXNNb2RlbFxyXG4gIERhdGFTb3VyY2VMYXlvdXQgPSAnZGF0YVNvdXJjZUxheW91dCcsXHJcblxyXG4gIC8vIERQSV9CYXNlRGF0YVNvdXJjZSwgaGF2aW5nIHR5cGUgQmFzZURhdGFTb3VyY2VQcmVzTW9kZWxcclxuICBCYXNlRGF0YVNvdXJjZSA9ICdiYXNlRGF0YVNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9CYXNlRGF0YVNvdXJjZXMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgQmFzZURhdGFTb3VyY2VQcmVzTW9kZWwpXHJcbiAgQmFzZURhdGFTb3VyY2VzID0gJ2Jhc2VEYXRhU291cmNlcycsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlUHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZSA9ICdkYXRhU291cmNlJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIERhdGFTb3VyY2VQcmVzTW9kZWwpXHJcbiAgRGF0YVNvdXJjZXMgPSAnZGF0YVNvdXJjZXMnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hVmlld2VyRGF0YVNvdXJjZSwgaGF2aW5nIHR5cGUgU2NoZW1hVmlld2VyRGF0YVNvdXJjZVByZXNNb2RlbFxyXG4gIFNjaGVtYVZpZXdlckRhdGFTb3VyY2UgPSAnc2NoZW1hVmlld2VyRGF0YVNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9TY2hlbWFWaWV3ZXJEYXRhU291cmNlcywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBTY2hlbWFWaWV3ZXJEYXRhU291cmNlUHJlc01vZGVsKVxyXG4gIFNjaGVtYVZpZXdlckRhdGFTb3VyY2VzID0gJ3NjaGVtYVZpZXdlckRhdGFTb3VyY2VzJyxcclxuXHJcbiAgLy8gRFBJX0Jhc2VEYXRhU2NoZW1hLCBoYXZpbmcgdHlwZSBCYXNlRGF0YVNjaGVtYVByZXNNb2RlbFxyXG4gIEJhc2VEYXRhU2NoZW1hID0gJ2Jhc2VEYXRhU2NoZW1hJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTY2hlbWEsIGhhdmluZyB0eXBlIERhdGFTY2hlbWFQcmVzTW9kZWxcclxuICBEYXRhU2NoZW1hID0gJ2RhdGFTY2hlbWEnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hVmlld2VyRGF0YVNjaGVtYSwgaGF2aW5nIHR5cGUgU2NoZW1hVmlld2VyRGF0YVNjaGVtYVByZXNNb2RlbFxyXG4gIFNjaGVtYVZpZXdlckRhdGFTY2hlbWEgPSAnc2NoZW1hVmlld2VyRGF0YVNjaGVtYScsXHJcblxyXG4gIC8vIERQSV9TaGVldExpc3RJdGVtLCBoYXZpbmcgdHlwZSBTaGVldExpc3RJdGVtUHJlc01vZGVsXHJcbiAgU2hlZXRMaXN0SXRlbSA9ICdzaGVldExpc3RJdGVtJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0TGlzdEl0ZW1zLCBoYXZpbmcgdHlwZSBTaGVldExpc3RJdGVtUHJlc01vZGVsW11cclxuICBTaGVldExpc3RJdGVtcyA9ICdzaGVldExpc3RJdGVtcycsXHJcblxyXG4gIC8vIERQSV9TaGVldExpc3QsIGhhdmluZyB0eXBlIFNoZWV0TGlzdFByZXNNb2RlbFxyXG4gIFNoZWV0TGlzdCA9ICdzaGVldExpc3QnLFxyXG5cclxuICAvLyBEUElfU2l6ZU1vZGVPcHRpb24sIGhhdmluZyB0eXBlIFNpemVNb2RlT3B0aW9uUHJlc01vZGVsXHJcbiAgU2l6ZU1vZGVPcHRpb24gPSAnc2l6ZU1vZGVPcHRpb24nLFxyXG5cclxuICAvLyBEUElfU2l6ZU1vZGVPcHRpb25zLCBoYXZpbmcgdHlwZSBTaXplTW9kZU9wdGlvblByZXNNb2RlbFtdXHJcbiAgU2l6ZU1vZGVPcHRpb25zID0gJ3NpemVNb2RlT3B0aW9ucycsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRTaXplQ29udHJvbCwgaGF2aW5nIHR5cGUgRGFzaGJvYXJkU2l6ZUNvbnRyb2xQcmVzTW9kZWxcclxuICBEYXNoYm9hcmRTaXplQ29udHJvbCA9ICdkYXNoYm9hcmRTaXplQ29udHJvbCcsXHJcblxyXG4gIC8vIERQSV9EZXZpY2VMYXlvdXRJbmZvSXRlbSwgaGF2aW5nIHR5cGUgRGV2aWNlTGF5b3V0SW5mb0l0ZW1QcmVzTW9kZWxcclxuICBEZXZpY2VMYXlvdXRJbmZvSXRlbSA9ICdkZXZpY2VMYXlvdXRJbmZvSXRlbScsXHJcblxyXG4gIC8vIERQSV9EZXZpY2VMYXlvdXRJbmZvSXRlbXMsIGhhdmluZyB0eXBlIERldmljZUxheW91dEluZm9JdGVtUHJlc01vZGVsW11cclxuICBEZXZpY2VMYXlvdXRJbmZvSXRlbXMgPSAnZGV2aWNlTGF5b3V0SW5mb0l0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX0RldmljZUxheW91dEluZm9MaXN0LCBoYXZpbmcgdHlwZSBEZXZpY2VMYXlvdXRJbmZvTGlzdFByZXNNb2RlbFxyXG4gIERldmljZUxheW91dEluZm9MaXN0ID0gJ2RldmljZUxheW91dEluZm9MaXN0JyxcclxuXHJcbiAgLy8gRFBJX1NwZWNpYWxpemVkRGV2aWNlTGF5b3V0SXRlbSwgaGF2aW5nIHR5cGUgU3BlY2lhbGl6ZWREZXZpY2VMYXlvdXRJdGVtUHJlc01vZGVsXHJcbiAgU3BlY2lhbGl6ZWREZXZpY2VMYXlvdXRJdGVtID0gJ3NwZWNpYWxpemVkRGV2aWNlTGF5b3V0SXRlbScsXHJcblxyXG4gIC8vIERQSV9TcGVjaWFsaXplZERldmljZUxheW91dEl0ZW1zLCBoYXZpbmcgdHlwZSBTcGVjaWFsaXplZERldmljZUxheW91dEl0ZW1QcmVzTW9kZWxbXVxyXG4gIFNwZWNpYWxpemVkRGV2aWNlTGF5b3V0SXRlbXMgPSAnc3BlY2lhbGl6ZWREZXZpY2VMYXlvdXRJdGVtcycsXHJcblxyXG4gIC8vIERQSV9TcGVjaWFsaXplZERldmljZUxheW91dExpc3QsIGhhdmluZyB0eXBlIFNwZWNpYWxpemVkRGV2aWNlTGF5b3V0TGlzdFByZXNNb2RlbFxyXG4gIFNwZWNpYWxpemVkRGV2aWNlTGF5b3V0TGlzdCA9ICdzcGVjaWFsaXplZERldmljZUxheW91dExpc3QnLFxyXG5cclxuICAvLyBEUElfU2l6ZUl0ZW0sIGhhdmluZyB0eXBlIFNpemVJdGVtUHJlc01vZGVsXHJcbiAgU2l6ZUl0ZW0gPSAnc2l6ZUl0ZW0nLFxyXG5cclxuICAvLyBEUElfU2l6ZUl0ZW1zLCBoYXZpbmcgdHlwZSBTaXplSXRlbVByZXNNb2RlbFtdXHJcbiAgU2l6ZUl0ZW1zID0gJ3NpemVJdGVtcycsXHJcblxyXG4gIC8vIERQSV9EZXZpY2VTaXplc0xpc3QsIGhhdmluZyB0eXBlIFNpemVJdGVtTGlzdFByZXNNb2RlbFxyXG4gIERldmljZVNpemVzTGlzdCA9ICdkZXZpY2VTaXplc0xpc3QnLFxyXG5cclxuICAvLyBEUElfUHJlc2V0U2l6ZXNMaXN0LCBoYXZpbmcgdHlwZSBTaXplSXRlbUxpc3RQcmVzTW9kZWxcclxuICBQcmVzZXRTaXplc0xpc3QgPSAncHJlc2V0U2l6ZXNMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1NpemVJdGVtTGlzdCwgaGF2aW5nIHR5cGUgU2l6ZUl0ZW1MaXN0UHJlc01vZGVsXHJcbiAgU2l6ZUl0ZW1MaXN0ID0gJ3NpemVJdGVtTGlzdCcsXHJcblxyXG4gIC8vIERQSV9TdWJzdGl0dXRpb25LZXl3b3JkLCBoYXZpbmcgdHlwZSBTdWJzdGl0dXRpb25LZXl3b3JkUHJlc01vZGVsXHJcbiAgU3Vic3RpdHV0aW9uS2V5d29yZCA9ICdzdWJzdGl0dXRpb25LZXl3b3JkJyxcclxuXHJcbiAgLy8gRFBJX1N1YnN0aXR1dGlvbktleXdvcmRzLCBoYXZpbmcgdHlwZSBTdWJzdGl0dXRpb25LZXl3b3JkUHJlc01vZGVsW11cclxuICBTdWJzdGl0dXRpb25LZXl3b3JkcyA9ICdzdWJzdGl0dXRpb25LZXl3b3JkcycsXHJcblxyXG4gIC8vIERQSV9TdWJzdGl0dXRpb25LZXl3b3JkU3ViTGlzdCwgaGF2aW5nIHR5cGUgU3Vic3RpdHV0aW9uS2V5d29yZFN1Ykxpc3RQcmVzTW9kZWxcclxuICBTdWJzdGl0dXRpb25LZXl3b3JkU3ViTGlzdCA9ICdzdWJzdGl0dXRpb25LZXl3b3Jkc1N1Ymxpc3QnLFxyXG5cclxuICAvLyBEUElfU3Vic3RpdHV0aW9uS2V5d29yZFN1Ykxpc3RzLCBoYXZpbmcgdHlwZSBTdWJzdGl0dXRpb25LZXl3b3JkU3ViTGlzdFByZXNNb2RlbFtdXHJcbiAgU3Vic3RpdHV0aW9uS2V5d29yZFN1Ykxpc3RzID0gJ3N1YnN0aXR1dGlvbktleXdvcmRTdWJsaXN0cycsXHJcblxyXG4gIC8vIERQSV9TdWJzdGl0dXRpb25LZXl3b3JkTGlzdCwgaGF2aW5nIHR5cGUgU3Vic3RpdHV0aW9uS2V5d29yZExpc3RQcmVzTW9kZWxcclxuICBTdWJzdGl0dXRpb25LZXl3b3JkTGlzdCA9ICdzdWJzdGl0dXRpb25LZXl3b3Jkc0xpc3QnLFxyXG5cclxuICAvLyBEUElfRGV2aWNlWm9uZUxpc3RJdGVtLCBoYXZpbmcgdHlwZSBEZXZpY2Vab25lTGlzdEl0ZW1QcmVzTW9kZWxcclxuICBEZXZpY2Vab25lTGlzdEl0ZW0gPSAnZGV2aWNlWm9uZUxpc3RJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0RldmljZVpvbmVMaXN0SXRlbXMsIGhhdmluZyB0eXBlIERldmljZVpvbmVMaXN0SXRlbVByZXNNb2RlbFtdXHJcbiAgRGV2aWNlWm9uZUxpc3RJdGVtcyA9ICdkZXZpY2Vab25lTGlzdEl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX0RldmljZVpvbmVMaXN0LCBoYXZpbmcgdHlwZSBEZXZpY2Vab25lTGlzdFByZXNNb2RlbFxyXG4gIERldmljZVpvbmVMaXN0ID0gJ2RldmljZVpvbmVMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1pvbmVTbmFwTGluZUxpc3RJdGVtLCBoYXZpbmcgdHlwZSBab25lU25hcExpbmVMaXN0SXRlbVByZXNNb2RlbFxyXG4gIFpvbmVTbmFwTGluZUxpc3RJdGVtID0gJ3NuYXBMaW5lTGlzdEl0ZW0nLFxyXG5cclxuICAvLyBEUElfT3V0ZXJIb3Jpem9udGFsU25hcExpbmVzLCBoYXZpbmcgdHlwZSBab25lU25hcExpbmVMaXN0SXRlbVByZXNNb2RlbFtdXHJcbiAgT3V0ZXJIb3Jpem9udGFsU25hcExpbmVzID0gJ291dGVySG9yaXpvbnRhbFNuYXBMaW5lcycsXHJcblxyXG4gIC8vIERQSV9PdXRlclZlcnRpY2FsU25hcExpbmVzLCBoYXZpbmcgdHlwZSBab25lU25hcExpbmVMaXN0SXRlbVByZXNNb2RlbFtdXHJcbiAgT3V0ZXJWZXJ0aWNhbFNuYXBMaW5lcyA9ICdvdXRlclZlcnRpY2FsU25hcExpbmVzJyxcclxuXHJcbiAgLy8gRFBJX0lubmVySG9yaXpvbnRhbFNuYXBMaW5lcywgaGF2aW5nIHR5cGUgWm9uZVNuYXBMaW5lTGlzdEl0ZW1QcmVzTW9kZWxbXVxyXG4gIElubmVySG9yaXpvbnRhbFNuYXBMaW5lcyA9ICdpbm5lckhvcml6b250YWxTbmFwTGluZXMnLFxyXG5cclxuICAvLyBEUElfSW5uZXJWZXJ0aWNhbFNuYXBMaW5lcywgaGF2aW5nIHR5cGUgWm9uZVNuYXBMaW5lTGlzdEl0ZW1QcmVzTW9kZWxbXVxyXG4gIElubmVyVmVydGljYWxTbmFwTGluZXMgPSAnaW5uZXJWZXJ0aWNhbFNuYXBMaW5lcycsXHJcblxyXG4gIC8vIERQSV9ab25lU25hcExpbmVMaXN0LCBoYXZpbmcgdHlwZSBab25lU25hcExpbmVMaXN0UHJlc01vZGVsXHJcbiAgWm9uZVNuYXBMaW5lTGlzdCA9ICdzbmFwTGluZUxpc3QnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkWm9uZUhpZXJhcmNoeSwgaGF2aW5nIHR5cGUgRGFzaGJvYXJkWm9uZUhpZXJhcmNoeVByZXNNb2RlbFxyXG4gIERhc2hib2FyZFpvbmVIaWVyYXJjaHkgPSAnZGFzaGJvYXJkWm9uZUhpZXJhcmNoeScsXHJcblxyXG4gIC8vIERQSV9EZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtLCBoYXZpbmcgdHlwZSBEZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtUHJlc01vZGVsXHJcbiAgRGV2aWNlWm9uZVZpc2liaWxpdHlMaXN0SXRlbSA9ICdkZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0RldmljZVpvbmVWaXNpYmlsaXR5TGlzdEl0ZW1zLCBoYXZpbmcgdHlwZSBEZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtUHJlc01vZGVsW11cclxuICBEZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtcyA9ICdkZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtcycsXHJcblxyXG4gIC8vIERQSV9EZXZpY2Vab25lVmlzaWJpbGl0eUxpc3QsIGhhdmluZyB0eXBlIERldmljZVpvbmVWaXNpYmlsaXR5TGlzdFByZXNNb2RlbFxyXG4gIERldmljZVpvbmVWaXNpYmlsaXR5TGlzdCA9ICdkZXZpY2Vab25lVmlzaWJpbGl0eUxpc3QnLFxyXG5cclxuICAvLyBEUElfV29ya3NoZWV0RGF0YVNjaGVtYSwgaGF2aW5nIHR5cGUgV29ya3NoZWV0RGF0YVNjaGVtYVByZXNNb2RlbFxyXG4gIFdvcmtzaGVldERhdGFTY2hlbWEgPSAnd29ya3NoZWV0RGF0YVNjaGVtYScsXHJcblxyXG4gIC8vIERQSV9Xb3Jrc2hlZXREYXRhU2NoZW1hTWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIFdvcmtzaGVldERhdGFTY2hlbWFQcmVzTW9kZWwpXHJcbiAgV29ya3NoZWV0RGF0YVNjaGVtYU1hcCA9ICd3b3Jrc2hlZXREYXRhU2NoZW1hTWFwJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmLCBoYXZpbmcgdHlwZSBTaGVsZlByZXNNb2RlbFxyXG4gIFNoZWxmID0gJ3NoZWxmJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmRGV0YWlsLCBoYXZpbmcgdHlwZSBTaGVsZlByZXNNb2RlbFxyXG4gIFNoZWxmRGV0YWlsID0gJ3NoZWxmRGV0YWlsJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmTGlzdCwgaGF2aW5nIHR5cGUgU2hlbGZQcmVzTW9kZWxbXVxyXG4gIFNoZWxmTGlzdCA9ICdzaGVsZkxpc3QnLFxyXG5cclxuICAvLyBEUElfU2hlbGZJdGVtLCBoYXZpbmcgdHlwZSBTaGVsZkl0ZW1QcmVzTW9kZWxcclxuICBTaGVsZkl0ZW0gPSAnc2hlbGZJdGVtJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmSXRlbXMsIGhhdmluZyB0eXBlIFNoZWxmSXRlbVByZXNNb2RlbFtdXHJcbiAgU2hlbGZJdGVtcyA9ICdzaGVsZkl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX1NoZWx2ZXMsIGhhdmluZyB0eXBlIFNoZWx2ZXNQcmVzTW9kZWxcclxuICBTaGVsdmVzID0gJ3NoZWx2ZXMnLFxyXG5cclxuICAvLyBEUElfRmllbGRFbmNvZGluZywgaGF2aW5nIHR5cGUgRmllbGRFbmNvZGluZ1ByZXNNb2RlbFxyXG4gIEZpZWxkRW5jb2RpbmcgPSAnZmllbGRFbmNvZGluZycsXHJcblxyXG4gIC8vIERQSV9GaWVsZEVuY29kaW5ncywgaGF2aW5nIHR5cGUgRmllbGRFbmNvZGluZ1ByZXNNb2RlbFtdXHJcbiAgRmllbGRFbmNvZGluZ3MgPSAnZmllbGRFbmNvZGluZ3MnLFxyXG5cclxuICAvLyBEUElfVWJlclRpcCwgaGF2aW5nIHR5cGUgVWJlclRpcFByZXNNb2RlbFxyXG4gIFViZXJUaXAgPSAndWJlclRpcCcsXHJcblxyXG4gIC8vIERQSV9BbmFseXRpY3NPYmplY3REcmFnSW5mbywgaGF2aW5nIHR5cGUgQW5hbHl0aWNzT2JqZWN0RHJhZ0luZm9QcmVzTW9kZWxcclxuICBBbmFseXRpY3NPYmplY3REcmFnSW5mbyA9ICdhbmFseXRpY3NPYmplY3REcmFnSW5mbycsXHJcblxyXG4gIC8vIERQSV9UcmVuZExpbmUsIGhhdmluZyB0eXBlIFRyZW5kTGluZVByZXNNb2RlbFxyXG4gIFRyZW5kTGluZSA9ICd0cmVuZExpbmUnLFxyXG5cclxuICAvLyBEUElfVHJlbmRMaW5lRGlhbG9nLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVEaWFsb2dQcmVzTW9kZWxcclxuICBUcmVuZExpbmVEaWFsb2cgPSAndHJlbmRMaW5lRGlhbG9nJyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZURlc2NyaWJlUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVEZXNjcmliZVByZXNNb2RlbFxyXG4gIFRyZW5kTGluZURlc2NyaWJlUHJlc01vZGVsID0gJ3RyZW5kTGluZURlc2NyaWJlUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZUFPVk1vZGVsUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVBT1ZNb2RlbFByZXNNb2RlbFxyXG4gIFRyZW5kTGluZUFPVk1vZGVsUHJlc01vZGVsID0gJ3RyZW5kTGluZUFvdk1vZGVsUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZUFPVk1vZGVsc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVHJlbmRMaW5lQU9WTW9kZWxQcmVzTW9kZWxbXVxyXG4gIFRyZW5kTGluZUFPVk1vZGVsc1ByZXNNb2RlbCA9ICd0cmVuZE1vZGVsRGVzY3JpcHRpb25WZWN0b3InLFxyXG5cclxuICAvLyBEUElfVHJlbmRMaW5lTGluZUNvZWZmaWNpZW50UHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVMaW5lQ29lZmZpY2llbnRQcmVzTW9kZWxcclxuICBUcmVuZExpbmVMaW5lQ29lZmZpY2llbnRQcmVzTW9kZWwgPSAndHJlbmRMaW5lTGluZUNvZWZmaWNpZW50JyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZUxpbmVDb2VmZmljaWVudHNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFRyZW5kTGluZUxpbmVDb2VmZmljaWVudFByZXNNb2RlbFtdXHJcbiAgVHJlbmRMaW5lTGluZUNvZWZmaWNpZW50c1ByZXNNb2RlbCA9ICd0cmVuZExpbmVMaW5lQ29lZmZpY2llbnRzUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZUxpbmVzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVMaW5lc1ByZXNNb2RlbFxyXG4gIFRyZW5kTGluZUxpbmVzUHJlc01vZGVsID0gJ3RyZW5kTGluZUxpbmVzUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZUFPVlByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVHJlbmRMaW5lQU9WUHJlc01vZGVsXHJcbiAgVHJlbmRMaW5lQU9WUHJlc01vZGVsID0gJ3RyZW5kTGluZUFub3ZhUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1JlZmVyZW5jZUxpbmUsIGhhdmluZyB0eXBlIFJlZmVyZW5jZUxpbmVQcmVzTW9kZWxcclxuICBSZWZlcmVuY2VMaW5lID0gJ3JlZmVyZW5jZUxpbmUnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlTGluZXMsIGhhdmluZyB0eXBlIFJlZmVyZW5jZUxpbmVQcmVzTW9kZWxbXVxyXG4gIFJlZmVyZW5jZUxpbmVzID0gJ3JlZmVyZW5jZUxpbmVzJyxcclxuXHJcbiAgLy8gRFBJX1BlcmNlbnRpbGVFZGl0RGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBFZGl0RGF0YVZhbHVlUHJlc01vZGVsXHJcbiAgUGVyY2VudGlsZUVkaXREYXRhVmFsdWUgPSAncGVyY2VudGlsZUVkaXREYXRhVmFsdWUnLFxyXG5cclxuICAvLyBEUElfTGltaXRFZGl0RGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBFZGl0RGF0YVZhbHVlUHJlc01vZGVsXHJcbiAgTGltaXRFZGl0RGF0YVZhbHVlID0gJ2xpbWl0RWRpdERhdGFWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Db25maWRlbmNlTGV2ZWxDb21ibywgaGF2aW5nIHR5cGUgRWRpdFZhbHVlV2lkZ2V0UHJlc01vZGVsXHJcbiAgQ29uZmlkZW5jZUxldmVsQ29tYm8gPSAnY29uZmlkZW5jZUxldmVsQ29tYm8nLFxyXG5cclxuICAvLyBEUElfRGlzdHJpYnV0aW9uUXVhbnRpbGVzQ29tYm8sIGhhdmluZyB0eXBlIEVkaXRWYWx1ZVdpZGdldFByZXNNb2RlbFxyXG4gIERpc3RyaWJ1dGlvblF1YW50aWxlc0NvbWJvID0gJ2Rpc3RyaWJ1dGlvblF1YW50aWxlc0xldmVsQ29tYm8nLFxyXG5cclxuICAvLyBEUElfUGVyY2VudGlsZXNDb21ibywgaGF2aW5nIHR5cGUgRWRpdFZhbHVlV2lkZ2V0UHJlc01vZGVsXHJcbiAgUGVyY2VudGlsZXNDb21ibyA9ICdkaXN0cmlidXRpb25QZXJjZW50aWxlc0xldmVsQ29tYm8nLFxyXG5cclxuICAvLyBEUElfTnVtZXJpY0JpblNpemVDb21ibywgaGF2aW5nIHR5cGUgRWRpdFZhbHVlV2lkZ2V0UHJlc01vZGVsXHJcbiAgTnVtZXJpY0JpblNpemVDb21ibyA9ICdudW1lcmljQmluU2l6ZUNvbWJvJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkUGlja2VyRmllbGQsIGhhdmluZyB0eXBlIEZpZWxkUGlja2VyRmllbGRQcmVzTW9kZWxcclxuICBGaWVsZFBpY2tlckZpZWxkID0gJ2ZpZWxkUGlja2VyRmllbGQnLFxyXG5cclxuICAvLyBEUElfRmllbGRQaWNrZXJGaWVsZHMsIGhhdmluZyB0eXBlIEZpZWxkUGlja2VyRmllbGRQcmVzTW9kZWxbXVxyXG4gIEZpZWxkUGlja2VyRmllbGRzID0gJ2ZpZWxkUGlja2VyRmllbGRzJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkUGlja2VyQ29tYm8sIGhhdmluZyB0eXBlIEZpZWxkUGlja2VyQ29tYm9QcmVzTW9kZWxcclxuICBGaWVsZFBpY2tlckNvbWJvID0gJ2ZpZWxkUGlja2VyQ29tYm8nLFxyXG5cclxuICAvLyBEUElfUGFpcmVkRmllbGRQaWNrZXJDb21ibywgaGF2aW5nIHR5cGUgRmllbGRQaWNrZXJDb21ib1ByZXNNb2RlbFxyXG4gIFBhaXJlZEZpZWxkUGlja2VyQ29tYm8gPSAncGFpcmVkRmllbGRQaWNrZXJDb21ibycsXHJcblxyXG4gIC8vIERQSV9SZWZlcmVuY2VMaW5lRWRpdG9yUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBSZWZlcmVuY2VMaW5lRWRpdG9yUHJlc01vZGVsXHJcbiAgUmVmZXJlbmNlTGluZUVkaXRvclByZXNNb2RlbCA9ICdyZWZlcmVuY2VMaW5lRWRpdG9yJyxcclxuXHJcbiAgLy8gRFBJX0Nsb3NlRGF0YVNvdXJjZUVycm9yRGlhbG9nUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBDbG9zZURhdGFTb3VyY2VFcnJvckRpYWxvZ1ByZXNNb2RlbFxyXG4gIENsb3NlRGF0YVNvdXJjZUVycm9yRGlhbG9nUHJlc01vZGVsID0gJ2Nsb3NlRHNFcnJvckRpYWxvZycsXHJcblxyXG4gIC8vIERQSV9FZGl0UmVmZXJlbmNlTGluZSwgaGF2aW5nIHR5cGUgRWRpdFJlZmVyZW5jZUxpbmVQcmVzTW9kZWxcclxuICBFZGl0UmVmZXJlbmNlTGluZSA9ICdlZGl0UmVmZXJlbmNlTGluZScsXHJcblxyXG4gIC8vIERQSV9FZGl0UmVmZXJlbmNlQmFuZCwgaGF2aW5nIHR5cGUgRWRpdFJlZmVyZW5jZUJhbmRQcmVzTW9kZWxcclxuICBFZGl0UmVmZXJlbmNlQmFuZCA9ICdlZGl0UmVmZXJlbmNlQmFuZCcsXHJcblxyXG4gIC8vIERQSV9FZGl0RGlzdHJpYnV0aW9uLCBoYXZpbmcgdHlwZSBFZGl0RGlzdHJpYnV0aW9uUHJlc01vZGVsXHJcbiAgRWRpdERpc3RyaWJ1dGlvbiA9ICdlZGl0RGlzdHJpYnV0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0Rpc3RyaWJ1dGlvblBlcmNlbnRhZ2VzLCBoYXZpbmcgdHlwZSBEaXN0cmlidXRpb25QZXJjZW50YWdlc1ByZXNNb2RlbFxyXG4gIERpc3RyaWJ1dGlvblBlcmNlbnRhZ2VzID0gJ2Rpc3RyaWJ1dGlvblBlcmNlbnRhZ2VzJyxcclxuXHJcbiAgLy8gRFBJX0Rpc3RyaWJ1dGlvblBlcmNlbnRpbGVzLCBoYXZpbmcgdHlwZSBEaXN0cmlidXRpb25QZXJjZW50aWxlc1ByZXNNb2RlbFxyXG4gIERpc3RyaWJ1dGlvblBlcmNlbnRpbGVzID0gJ2Rpc3RyaWJ1dGlvblBlcmNlbnRpbGVzJyxcclxuXHJcbiAgLy8gRFBJX0Rpc3RyaWJ1dGlvblF1YW50aWxlcywgaGF2aW5nIHR5cGUgRGlzdHJpYnV0aW9uUXVhbnRpbGVzUHJlc01vZGVsXHJcbiAgRGlzdHJpYnV0aW9uUXVhbnRpbGVzID0gJ2Rpc3RyaWJ1dGlvblF1YW50aWxlcycsXHJcblxyXG4gIC8vIERQSV9EaXN0cmlidXRpb25TdGFuZGFyZERldmlhdGlvbiwgaGF2aW5nIHR5cGUgRGlzdHJpYnV0aW9uU3RhbmRhcmREZXZpYXRpb25QcmVzTW9kZWxcclxuICBEaXN0cmlidXRpb25TdGFuZGFyZERldmlhdGlvbiA9ICdkaXN0cmlidXRpb25TdGRkZXYnLFxyXG5cclxuICAvLyBEUElfU29ydEluZGljYXRvcnMsIGhhdmluZyB0eXBlIFNvcnRJbmRpY2F0b3JzUHJlc01vZGVsXHJcbiAgU29ydEluZGljYXRvcnMgPSAnc29ydEluZGljYXRvcnMnLFxyXG5cclxuICAvLyBEUElfU29ydEluZGljYXRvclJlZ2lvbiwgaGF2aW5nIHR5cGUgU29ydEluZGljYXRvclJlZ2lvblByZXNNb2RlbFxyXG4gIFNvcnRJbmRpY2F0b3JSZWdpb24gPSAnc29ydEluZGljYXRvclJlZ2lvbicsXHJcblxyXG4gIC8vIERQSV9Tb3J0SW5kaWNhdG9yUmVnaW9ucywgaGF2aW5nIHR5cGUgU29ydEluZGljYXRvclJlZ2lvblByZXNNb2RlbFtdXHJcbiAgU29ydEluZGljYXRvclJlZ2lvbnMgPSAnc29ydEluZGljYXRvclJlZ2lvbnMnLFxyXG5cclxuICAvLyBEUElfU29ydEluZGljYXRvckl0ZW0sIGhhdmluZyB0eXBlIFNvcnRJbmRpY2F0b3JJdGVtUHJlc01vZGVsXHJcbiAgU29ydEluZGljYXRvckl0ZW0gPSAnc29ydEluZGljYXRvckl0ZW0nLFxyXG5cclxuICAvLyBEUElfU29ydEluZGljYXRvckl0ZW1zLCBoYXZpbmcgdHlwZSBTb3J0SW5kaWNhdG9ySXRlbVByZXNNb2RlbFtdXHJcbiAgU29ydEluZGljYXRvckl0ZW1zID0gJ3NvcnRJbmRpY2F0b3JJdGVtcycsXHJcblxyXG4gIC8vIERQSV9CdWlsZGVyQ29uZmlnLCBoYXZpbmcgdHlwZSBCdWlsZGVyQ29uZmlnUHJlc01vZGVsXHJcbiAgQnVpbGRlckNvbmZpZyA9ICdidWlsZGVyQ29uZmlnJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0TGF5b3V0SW5mbywgaGF2aW5nIHR5cGUgU2hlZXRMYXlvdXRJbmZvUHJlc01vZGVsXHJcbiAgU2hlZXRMYXlvdXRJbmZvID0gJ3NoZWV0TGF5b3V0SW5mbycsXHJcblxyXG4gIC8vIERQSV9BcmVhUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgQXJlYVJlY3QgPSAnYXJlYVJlY3QnLFxyXG5cclxuICAvLyBEUElfQm9yZGVyLCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBCb3JkZXIgPSAnYm9yZGVyUmVjdCcsXHJcblxyXG4gIC8vIERQSV9Cb3VuZHNSZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBCb3VuZHNSZWN0ID0gJ2JvdW5kc1JlY3QnLFxyXG5cclxuICAvLyBEUElfQnV0dG9uUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgQnV0dG9uUmVjdCA9ICdidXR0b25SZWN0JyxcclxuXHJcbiAgLy8gRFBJX0RyYWdSZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBEcmFnUmVjdCA9ICdkcmFnUmVjdCcsXHJcblxyXG4gIC8vIERQSV9Gb2N1c1JlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIEZvY3VzUmVjdCA9ICdmb2N1c1JlY3QnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VUaWxlUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgSW1hZ2VUaWxlUmVjdCA9ICd0aWxlUmVjdCcsXHJcblxyXG4gIC8vIERQSV9JdGVtUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgSXRlbVJlY3QgPSAnaXRlbVJlY3QnLFxyXG5cclxuICAvLyBEUElfTGFiZWxSZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBMYWJlbFJlY3QgPSAnbGFiZWxSZWN0JyxcclxuXHJcbiAgLy8gRFBJX01hcmtSZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBNYXJrUmVjdCA9ICdtYXJrUmVjdCcsXHJcblxyXG4gIC8vIERQSV9NYXJrVG9vbHRpcFJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIE1hcmtUb29sdGlwUmVjdCA9ICdtYXJrVG9vbHRpcFJlY3QnLFxyXG5cclxuICAvLyBEUElfTWVudUJ1dHRvblJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIE1lbnVCdXR0b25SZWN0ID0gJ21lbnVCdXR0b25SZWN0JyxcclxuXHJcbiAgLy8gRFBJX091dFJlZ2lvblJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIE91dFJlZ2lvblJlY3QgPSAnb3V0UmVnaW9uUmVjdCcsXHJcblxyXG4gIC8vIERQSV9QYW5lUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgUGFuZVJlY3QgPSAncGFuZVJlY3QnLFxyXG5cclxuICAvLyBEUElfUGl4ZWxFeHRlbnRzLCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBQaXhlbEV4dGVudHMgPSAncGl4ZWxFeHRlbnRzJyxcclxuXHJcbiAgLy8gRFBJX1JlY3RNYXhMYWJlbCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgUmVjdE1heExhYmVsID0gJ3JlY3RNYXhMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9SZWN0TWluTGFiZWwsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIFJlY3RNaW5MYWJlbCA9ICdyZWN0TWluTGFiZWwnLFxyXG5cclxuICAvLyBEUElfUmVjdFJhbXAsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIFJlY3RSYW1wID0gJ3JlY3RSYW1wJyxcclxuXHJcbiAgLy8gRFBJX1JlY3RUaXRsZSwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgUmVjdFRpdGxlID0gJ3JlY3RUaXRsZScsXHJcblxyXG4gIC8vIERQSV9SZWdpb25SZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBSZWdpb25SZWN0ID0gJ3JlZ2lvblJlY3QnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0aW9uUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgU2VsZWN0aW9uUmVjdCA9ICdzZWxlY3Rpb25SZWN0JyxcclxuXHJcbiAgLy8gRFBJX1VudXNlZFJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIFVudXNlZFJlY3QgPSAndW51c2VkUmVjdCcsXHJcblxyXG4gIC8vIERQSV9ab25lRWRnZVJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIFpvbmVFZGdlUmVjdCA9ICd6b25lRWRnZScsXHJcblxyXG4gIC8vIERQSV9ab25lRWRnZVJlY3RQaXgsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIFpvbmVFZGdlUmVjdFBpeCA9ICd6b25lRWRnZVBpeCcsXHJcblxyXG4gIC8vIERQSV9ab25lRWRnZVJlY3RQcCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgWm9uZUVkZ2VSZWN0UHAgPSAnem9uZUVkZ2VQcCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25MaW5rUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgVUlBdXRvbWF0aW9uTGlua1JlY3QgPSAnbGlua1JlY3QnLFxyXG5cclxuICAvLyBEUElfQm9yZGVycywgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsW11cclxuICBCb3JkZXJzID0gJ2JvcmRlclJlY3RzJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbkxpbmtSZWN0cywgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsW11cclxuICBVSUF1dG9tYXRpb25MaW5rUmVjdHMgPSAnbGlua1JlY3RzJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpbkV4dGVudHMsIGhhdmluZyB0eXBlIERvdWJsZVJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIERvbWFpbkV4dGVudHMgPSAnZG9tYWluRXh0ZW50cycsXHJcblxyXG4gIC8vIERQSV9NYXBEb21haW5FeHRlbnRzLCBoYXZpbmcgdHlwZSBEb3VibGVSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBNYXBEb21haW5FeHRlbnRzID0gJ21hcERvbWFpbkV4dGVudHMnLFxyXG5cclxuICAvLyBEUElfTWFwTGF0TG9uZ1JlY3QsIGhhdmluZyB0eXBlIE1hcFJlY3RQcmVzTW9kZWxcclxuICBNYXBMYXRMb25nUmVjdCA9ICdtYXBMYXRMb25nUmVjdCcsXHJcblxyXG4gIC8vIERQSV9DZW50ZXIsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgQ2VudGVyID0gJ2NlbnRlcicsXHJcblxyXG4gIC8vIERQSV9DZW50ZXJNYXJrTGluZUJlZ2luLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIENlbnRlck1hcmtMaW5lQmVnaW4gPSAnY2VudGVyTWFya0xpbmVCZWdpbicsXHJcblxyXG4gIC8vIERQSV9DZW50ZXJNYXJrTGluZUVuZCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBDZW50ZXJNYXJrTGluZUVuZCA9ICdjZW50ZXJNYXJrTGluZUVuZCcsXHJcblxyXG4gIC8vIERQSV9Ecm9wTG9jYXRpb24sIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgRHJvcExvY2F0aW9uID0gJ2Ryb3BMb2NhdGlvbicsXHJcblxyXG4gIC8vIERQSV9FbmRQdCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBFbmRQdCA9ICdlbmRQb2ludCcsXHJcblxyXG4gIC8vIERQSV9HcmFiTG9jYXRpb24sIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgR3JhYkxvY2F0aW9uID0gJ2dyYWJMb2NhdGlvbicsXHJcblxyXG4gIC8vIERQSV9HcmlkT3JpZ2luLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIEdyaWRPcmlnaW4gPSAnZ3JpZE9yaWdpbicsXHJcblxyXG4gIC8vIERQSV9MYXNzb1NlbGVjdGlvblBvaW50LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIExhc3NvU2VsZWN0aW9uUG9pbnQgPSAnbGFzc29TZWxlY3Rpb25Qb2ludCcsXHJcblxyXG4gIC8vIERQSV9NZW51TG9jYXRpb24sIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgTWVudUxvY2F0aW9uID0gJ21lbnVMb2NhdGlvbicsXHJcblxyXG4gIC8vIERQSV9Nb3ZlT2Zmc2V0LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIE1vdmVPZmZzZXQgPSAnbW92ZU9mZnNldCcsXHJcblxyXG4gIC8vIERQSV9PdmVybGF5QW5jaG9yLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIE92ZXJsYXlBbmNob3IgPSAnb3ZlcmxheUFuY2hvcicsXHJcblxyXG4gIC8vIERQSV9QYW5BbW91bnQsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgUGFuQW1vdW50ID0gJ3BhbkFtb3VudCcsXHJcblxyXG4gIC8vIERQSV9QYW5Mb2NhdGlvbiwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBQYW5Mb2NhdGlvbiA9ICdwYW5Mb2NhdGlvbicsXHJcblxyXG4gIC8vIERQSV9QYW5lUmVzb2x2ZXJMb2NhdGlvbiwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBQYW5lUmVzb2x2ZXJMb2NhdGlvbiA9ICdwYW5lUmVzb2x2ZXJMb2NhdGlvbicsXHJcblxyXG4gIC8vIERQSV9QaXhlbEV4dGVudHNPZmZzZXQsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgUGl4ZWxFeHRlbnRzT2Zmc2V0ID0gJ2V4dGVudHNPZmZzZXQnLFxyXG5cclxuICAvLyBEUElfUG9pbnQxLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFBvaW50MSA9ICdwdDEnLFxyXG5cclxuICAvLyBEUElfUG9pbnQyLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFBvaW50MiA9ICdwdDInLFxyXG5cclxuICAvLyBEUElfUG9pbnQzLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFBvaW50MyA9ICdwdDMnLFxyXG5cclxuICAvLyBEUElfUmVnaW9uUG9pbnQsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgUmVnaW9uUG9pbnQgPSAncmVnaW9uUG9pbnQnLFxyXG5cclxuICAvLyBEUElfU2Nyb2xsT2Zmc2V0LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFNjcm9sbE9mZnNldCA9ICdzY3JvbGxPZmZzZXQnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0QXRQb2ludCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBTZWxlY3RBdFBvaW50ID0gJ3NlbGVjdEF0UG9pbnQnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0T2Zmc2V0LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFNlbGVjdE9mZnNldCA9ICdzZWxlY3RPZmZzZXQnLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0UHQsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgVGFyZ2V0UHQgPSAndGFyZ2V0UG9pbnQnLFxyXG5cclxuICAvLyBEUElfVGV4dE9yaWdpbiwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBUZXh0T3JpZ2luID0gJ3RleHRPcmlnaW4nLFxyXG5cclxuICAvLyBEUElfVG9vbHRpcEFuY2hvclBvaW50LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFRvb2x0aXBBbmNob3JQb2ludCA9ICd0b29sdGlwQW5jaG9yUG9pbnQnLFxyXG5cclxuICAvLyBEUElfVG9vbHRpcE9mZnNldCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBUb29sdGlwT2Zmc2V0ID0gJ3Rvb2x0aXBPZmZzZXQnLFxyXG5cclxuICAvLyBEUElfVml6TG9jYXRpb24sIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgVml6TG9jYXRpb24gPSAndml6TG9jYXRpb24nLFxyXG5cclxuICAvLyBEUElfWm9vbUFuY2hvclBvaW50LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFpvb21BbmNob3JQb2ludCA9ICd6b29tQW5jaG9yUG9pbnQnLFxyXG5cclxuICAvLyBEUElfTWVudUFuY2hvclBvaW50LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIE1lbnVBbmNob3JQb2ludCA9ICdtZW51QW5jaG9yUG9pbnQnLFxyXG5cclxuICAvLyBEUElfT3ZlcmxheUFuY2hvcnMsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsW11cclxuICBPdmVybGF5QW5jaG9ycyA9ICdvdmVybGF5QW5jaG9ycycsXHJcblxyXG4gIC8vIERQSV9MYXNzb1NlbGVjdGlvbiwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxbXVxyXG4gIExhc3NvU2VsZWN0aW9uID0gJ2xhc3NvU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1Njcm9sbE9mZnNldFBvaW50cywgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxbXVxyXG4gIFNjcm9sbE9mZnNldFBvaW50cyA9ICdzY3JvbGxPZmZzZXRQb2ludHMnLFxyXG5cclxuICAvLyBEUElfUmFkaWFsU2VsZWN0aW9uLCBoYXZpbmcgdHlwZSBDaXJjbGVQcmVzTW9kZWxcclxuICBSYWRpYWxTZWxlY3Rpb24gPSAncmFkaWFsU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpbk9yaWdpbiwgaGF2aW5nIHR5cGUgRmxvYXRQb2ludFByZXNNb2RlbFxyXG4gIERvbWFpbk9yaWdpbiA9ICdkb21haW5PcmlnaW4nLFxyXG5cclxuICAvLyBEUElfRmxvYXRDZW50ZXIsIGhhdmluZyB0eXBlIEZsb2F0UG9pbnRQcmVzTW9kZWxcclxuICBGbG9hdENlbnRlciA9ICdmbG9hdENlbnRlcicsXHJcblxyXG4gIC8vIERQSV9GbG9hdFBvaW50LCBoYXZpbmcgdHlwZSBGbG9hdFBvaW50UHJlc01vZGVsXHJcbiAgRmxvYXRQb2ludCA9ICdmbG9hdFBvaW50JyxcclxuXHJcbiAgLy8gRFBJX0NsaWVudEF2YWlsYWJsZVNwYWNlLCBoYXZpbmcgdHlwZSBTaXplUHJlc01vZGVsXHJcbiAgQ2xpZW50QXZhaWxhYmxlU3BhY2UgPSAnY2xpZW50QXZhaWxhYmxlU3BhY2UnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkUG9ydFNpemUsIGhhdmluZyB0eXBlIFNpemVQcmVzTW9kZWxcclxuICBEYXNoYm9hcmRQb3J0U2l6ZSA9ICdkYXNoYm9hcmRQb3J0JyxcclxuXHJcbiAgLy8gRFBJX0xlZ2VuZFNpemUsIGhhdmluZyB0eXBlIFNpemVQcmVzTW9kZWxcclxuICBMZWdlbmRTaXplID0gJ2xlZ2VuZFNpemUnLFxyXG5cclxuICAvLyBEUElfU3RvcnlQb3J0U2l6ZSwgaGF2aW5nIHR5cGUgU2l6ZVByZXNNb2RlbFxyXG4gIFN0b3J5UG9ydFNpemUgPSAnc3RvcnlQb3J0JyxcclxuXHJcbiAgLy8gRFBJX1N3YXRjaEFyZWFTaXplLCBoYXZpbmcgdHlwZSBTaXplUHJlc01vZGVsXHJcbiAgU3dhdGNoQXJlYVNpemUgPSAnYXJlYVNpemUnLFxyXG5cclxuICAvLyBEUElfU3dhdGNoSW1hZ2VTaXplLCBoYXZpbmcgdHlwZSBTaXplUHJlc01vZGVsXHJcbiAgU3dhdGNoSW1hZ2VTaXplID0gJ2ltYWdlU2l6ZScsXHJcblxyXG4gIC8vIERQSV9WaWV3cG9ydFNpemUsIGhhdmluZyB0eXBlIFNpemVQcmVzTW9kZWxcclxuICBWaWV3cG9ydFNpemUgPSAndmlld3BvcnRTaXplJyxcclxuXHJcbiAgLy8gRFBJX1dvcmtzaGVldFBvcnRTaXplLCBoYXZpbmcgdHlwZSBTaXplUHJlc01vZGVsXHJcbiAgV29ya3NoZWV0UG9ydFNpemUgPSAnd29ya3NoZWV0UG9ydCcsXHJcblxyXG4gIC8vIERQSV9SZXNpemVFbnRpdHksIGhhdmluZyB0eXBlIFJlc2l6ZUVudGl0eVByZXNNb2RlbFxyXG4gIFJlc2l6ZUVudGl0eSA9ICdyZXNpemVFbnRpdHknLFxyXG5cclxuICAvLyBEUElfUm93UmVzaXplcnMsIGhhdmluZyB0eXBlIFJlc2l6ZUVudGl0eVByZXNNb2RlbFtdXHJcbiAgUm93UmVzaXplcnMgPSAncm93UmVzaXplcnMnLFxyXG5cclxuICAvLyBEUElfQ29sUmVzaXplcnMsIGhhdmluZyB0eXBlIFJlc2l6ZUVudGl0eVByZXNNb2RlbFtdXHJcbiAgQ29sUmVzaXplcnMgPSAnY29sUmVzaXplcnMnLFxyXG5cclxuICAvLyBEUElfUmVzaXplSW5mb1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgUmVzaXplSW5mb1ByZXNNb2RlbFxyXG4gIFJlc2l6ZUluZm9QcmVzTW9kZWwgPSAncmVzaXplSW5mbycsXHJcblxyXG4gIC8vIERQSV9TZXJ2ZXJTaGVldCwgaGF2aW5nIHR5cGUgU2VydmVyU2hlZXRQcmVzTW9kZWxcclxuICBTZXJ2ZXJTaGVldCA9ICdzZXJ2ZXJTaGVldCcsXHJcblxyXG4gIC8vIERQSV9TZXJ2ZXJTaGVldHMsIGhhdmluZyB0eXBlIFNlcnZlclNoZWV0UHJlc01vZGVsW11cclxuICBTZXJ2ZXJTaGVldHMgPSAnc2VydmVyU2hlZXRzJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0SW5mbywgaGF2aW5nIHR5cGUgU2hlZXRJbmZvUHJlc01vZGVsXHJcbiAgU2hlZXRJbmZvID0gJ3NoZWV0SW5mbycsXHJcblxyXG4gIC8vIERQSV9TaGVldHNJbmZvLCBoYXZpbmcgdHlwZSBTaGVldEluZm9QcmVzTW9kZWxbXVxyXG4gIFNoZWV0c0luZm8gPSAnc2hlZXRzSW5mbycsXHJcblxyXG4gIC8vIERQSV9TZXJ2ZXJXb3JrYm9vaywgaGF2aW5nIHR5cGUgU2VydmVyV29ya2Jvb2tQcmVzTW9kZWxcclxuICBTZXJ2ZXJXb3JrYm9vayA9ICdzZXJ2ZXJXb3JrYm9vaycsXHJcblxyXG4gIC8vIERQSV9QREZFeHBvcnRPcHRpb25zUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBQREZFeHBvcnRPcHRpb25zUHJlc01vZGVsXHJcbiAgUERGRXhwb3J0T3B0aW9uc1ByZXNNb2RlbCA9ICdwZGZFeHBvcnQnLFxyXG5cclxuICAvLyBEUElfRXhwb3J0RmlsZVJlc3VsdFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRXhwb3J0RmlsZVJlc3VsdFByZXNNb2RlbFxyXG4gIEV4cG9ydEZpbGVSZXN1bHRQcmVzTW9kZWwgPSAncGRmUmVzdWx0JyxcclxuXHJcbiAgLy8gRFBJX1BERlNoZWV0LCBoYXZpbmcgdHlwZSBQREZTaGVldFByZXNNb2RlbFxyXG4gIFBERlNoZWV0ID0gJ3BkZlNoZWV0JyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0T3B0aW9ucywgaGF2aW5nIHR5cGUgUERGU2hlZXRQcmVzTW9kZWxbXVxyXG4gIFNoZWV0T3B0aW9ucyA9ICdzaGVldE9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfRXhwb3J0TGF5b3V0T3B0aW9ucywgaGF2aW5nIHR5cGUgRXhwb3J0TGF5b3V0T3B0aW9uc1ByZXNNb2RlbFxyXG4gIEV4cG9ydExheW91dE9wdGlvbnMgPSAnZXhwb3J0TGF5b3V0T3B0aW9ucycsXHJcblxyXG4gIC8vIERQSV9EYXRhQWxlcnRDb25kaXRpb25PcGVyYXRpb25UeXBlLCBoYXZpbmcgdHlwZSBEYXRhQWxlcnRDb25kaXRpb25PcGVyYXRpb25UeXBlXHJcbiAgRGF0YUFsZXJ0Q29uZGl0aW9uT3BlcmF0aW9uVHlwZSA9ICdkYXRhQWxlcnRDb25kaXRpb25PcCcsXHJcblxyXG4gIC8vIERQSV9EYXRhQWxlcnREaWFsb2dQcmVzTW9kZWwsIGhhdmluZyB0eXBlIERhdGFBbGVydERpYWxvZ1ByZXNNb2RlbFxyXG4gIERhdGFBbGVydERpYWxvZ1ByZXNNb2RlbCA9ICdkYXRhQWxlcnREaWFsb2dQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRGF0YUFsZXJ0TWVhc3VyZSwgaGF2aW5nIHR5cGUgRGF0YUFsZXJ0TWVhc3VyZVByZXNNb2RlbFxyXG4gIERhdGFBbGVydE1lYXN1cmUgPSAnZGF0YUFsZXJ0TWVhc3VyZScsXHJcblxyXG4gIC8vIERQSV9EYXRhQWxlcnRNZWFzdXJlcywgaGF2aW5nIHR5cGUgRGF0YUFsZXJ0TWVhc3VyZVByZXNNb2RlbFtdXHJcbiAgRGF0YUFsZXJ0TWVhc3VyZXMgPSAnZGF0YUFsZXJ0TWVhc3VyZXMnLFxyXG5cclxuICAvLyBEUElfRGF0YUFsZXJ0Q29uc3RhbnRDb25kaXRpb24sIGhhdmluZyB0eXBlIERhdGFBbGVydENvbnN0YW50Q29uZGl0aW9uUHJlc01vZGVsXHJcbiAgRGF0YUFsZXJ0Q29uc3RhbnRDb25kaXRpb24gPSAnZGF0YUFsZXJ0Q29uc3RhbnRDb25kaXRpb24nLFxyXG5cclxuICAvLyBEUElfRGF0YUFsZXJ0RGlhbG9nTW9kZSwgaGF2aW5nIHR5cGUgRGF0YUFsZXJ0RGlhbG9nTW9kZVxyXG4gIERhdGFBbGVydERpYWxvZ01vZGUgPSAnZGF0YUFsZXJ0RGlhbG9nTW9kZScsXHJcblxyXG4gIC8vIERQSV9MaWdodHdlaWdodE1hcE9wdGlvbnMsIGhhdmluZyB0eXBlIExpZ2h0d2VpZ2h0TWFwT3B0aW9uc1ByZXNNb2RlbFxyXG4gIExpZ2h0d2VpZ2h0TWFwT3B0aW9ucyA9ICdsaWdodHdlaWdodE1hcE9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfRGF0YUhpZ2hsaWdodGVyLCBoYXZpbmcgdHlwZSBEYXRhSGlnaGxpZ2h0ZXJQcmVzTW9kZWxcclxuICBEYXRhSGlnaGxpZ2h0ZXIgPSAnZGF0YUhpZ2hsaWdodGVyJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFIaWdobGlnaHRlckl0ZW1TZXQsIGhhdmluZyB0eXBlIERhdGFIaWdobGlnaHRlckl0ZW1TZXRQcmVzTW9kZWxcclxuICBEYXRhSGlnaGxpZ2h0ZXJJdGVtU2V0ID0gJ2RhdGFIaWdobGlnaHRlckl0ZW1TZXQnLFxyXG5cclxuICAvLyBEUElfRGF0YUhpZ2hsaWdodGVySXRlbSwgaGF2aW5nIHR5cGUgRGF0YUhpZ2hsaWdodGVySXRlbVByZXNNb2RlbFxyXG4gIERhdGFIaWdobGlnaHRlckl0ZW0gPSAnZGF0YUhpZ2hsaWdodGVySXRlbScsXHJcblxyXG4gIC8vIERQSV9EYXRhSGlnaGxpZ2h0ZXJJdGVtcywgaGF2aW5nIHR5cGUgRGF0YUhpZ2hsaWdodGVySXRlbVByZXNNb2RlbFtdXHJcbiAgRGF0YUhpZ2hsaWdodGVySXRlbXMgPSAnZGF0YUhpZ2hsaWdodGVySXRlbXMnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxMZWdlbmRMYXlvdXQsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsTGVnZW5kTGF5b3V0UHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxMZWdlbmRMYXlvdXQgPSAnY2F0TGVnZW5kTGF5b3V0JyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsTGVnZW5kLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbExlZ2VuZFByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsTGVnZW5kID0gJ2NhdGVnb3JpY2FsTGVnZW5kJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsTGVnZW5kcywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxMZWdlbmRQcmVzTW9kZWxbXVxyXG4gIENhdGVnb3JpY2FsTGVnZW5kcyA9ICdjYXRlZ29yaWNhbExlZ2VuZHMnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxDb2xvckxlZ2VuZCwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxDb2xvckxlZ2VuZFByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsQ29sb3JMZWdlbmQgPSAnY29sb3JMZWdlbmQnLFxyXG5cclxuICAvLyBEUElfQ29sb3JMZWdlbmRJdGVtLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbENvbG9yTGVnZW5kSXRlbVByZXNNb2RlbFxyXG4gIENvbG9yTGVnZW5kSXRlbSA9ICdjb2xvckxlZ2VuZEl0ZW0nLFxyXG5cclxuICAvLyBEUElfQ29sb3JMZWdlbmRJdGVtcywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxDb2xvckxlZ2VuZEl0ZW1QcmVzTW9kZWxbXVxyXG4gIENvbG9yTGVnZW5kSXRlbXMgPSAnY29sb3JMZWdlbmRJdGVtcycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbFNoYXBlTGVnZW5kLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbFNoYXBlTGVnZW5kUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxTaGFwZUxlZ2VuZCA9ICdjYXRlZ29yaWNhbFNoYXBlTGVnZW5kJyxcclxuXHJcbiAgLy8gRFBJX1NoYXBlTGVnZW5kSXRlbSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxTaGFwZUxlZ2VuZEl0ZW1QcmVzTW9kZWxcclxuICBTaGFwZUxlZ2VuZEl0ZW0gPSAnc2hhcGVMZWdlbmRJdGVtJyxcclxuXHJcbiAgLy8gRFBJX1NoYXBlTGVnZW5kSXRlbXMsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsU2hhcGVMZWdlbmRJdGVtUHJlc01vZGVsW11cclxuICBTaGFwZUxlZ2VuZEl0ZW1zID0gJ3NoYXBlTGVnZW5kSXRlbXMnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxIaWdobGlnaHRMZWdlbmQsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsSGlnaGxpZ2h0TGVnZW5kUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxIaWdobGlnaHRMZWdlbmQgPSAnY2F0ZWdvcmljYWxIaWdobGlnaHRMZWdlbmQnLFxyXG5cclxuICAvLyBEUElfSGlnaGxpZ2h0TGVnZW5kSXRlbSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxMZWdlbmRJdGVtUHJlc01vZGVsXHJcbiAgSGlnaGxpZ2h0TGVnZW5kSXRlbSA9ICdoaWdobGlnaHRMZWdlbmRJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0hpZ2hsaWdodExlZ2VuZEl0ZW1zLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbExlZ2VuZEl0ZW1QcmVzTW9kZWxbXVxyXG4gIEhpZ2hsaWdodExlZ2VuZEl0ZW1zID0gJ2hpZ2hsaWdodExlZ2VuZEl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsU2l6ZUxlZ2VuZCwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxTaXplTGVnZW5kUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxTaXplTGVnZW5kID0gJ2NhdGVnb3JpY2FsU2l6ZUxlZ2VuZCcsXHJcblxyXG4gIC8vIERQSV9TaXplTGVnZW5kSXRlbSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxTaXplTGVnZW5kSXRlbVByZXNNb2RlbFxyXG4gIFNpemVMZWdlbmRJdGVtID0gJ3NpemVMZWdlbmRJdGVtJyxcclxuXHJcbiAgLy8gRFBJX1NpemVMZWdlbmRJdGVtcywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxTaXplTGVnZW5kSXRlbVByZXNNb2RlbFtdXHJcbiAgU2l6ZUxlZ2VuZEl0ZW1zID0gJ3NpemVMZWdlbmRJdGVtcycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbE1hcExlZ2VuZCwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxNYXBMZWdlbmRQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbE1hcExlZ2VuZCA9ICdjYXRlZ29yaWNhbE1hcExlZ2VuZCcsXHJcblxyXG4gIC8vIERQSV9RdWFudGl0YXRpdmVDb2xvckxlZ2VuZCwgaGF2aW5nIHR5cGUgUXVhbnRpdGF0aXZlQ29sb3JMZWdlbmRQcmVzTW9kZWxcclxuICBRdWFudGl0YXRpdmVDb2xvckxlZ2VuZCA9ICdxdWFudGl0YXRpdmVDb2xvckxlZ2VuZCcsXHJcblxyXG4gIC8vIERQSV9RdWFudGl0YXRpdmVDb2xvckxlZ2VuZHMsIGhhdmluZyB0eXBlIFF1YW50aXRhdGl2ZUNvbG9yTGVnZW5kUHJlc01vZGVsW11cclxuICBRdWFudGl0YXRpdmVDb2xvckxlZ2VuZHMgPSAncXVhbnRpdGF0aXZlQ29sb3JMZWdlbmRzJyxcclxuXHJcbiAgLy8gRFBJX1F1YW50aXRhdGl2ZUxlZ2VuZExheW91dCwgaGF2aW5nIHR5cGUgUXVhbnRpdGF0aXZlTGVnZW5kTGF5b3V0UHJlc01vZGVsXHJcbiAgUXVhbnRpdGF0aXZlTGVnZW5kTGF5b3V0ID0gJ3F1YW50aXRhdGl2ZUxlZ2VuZExheW91dCcsXHJcblxyXG4gIC8vIERQSV9TZXJ2ZXJSZW5kZXJlZExlZ2VuZCwgaGF2aW5nIHR5cGUgU2VydmVyUmVuZGVyZWRMZWdlbmRQcmVzTW9kZWxcclxuICBTZXJ2ZXJSZW5kZXJlZExlZ2VuZCA9ICdzZXJ2ZXJSZW5kZXJlZExlZ2VuZCcsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlciwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlciA9ICdjYXRlZ29yaWNhbEZpbHRlcicsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWwsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbFByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbCA9ICdjYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWwnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJNZW1iZXJEb21haW5QYWdlLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlck1lbWJlckRvbWFpblBhZ2VQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlck1lbWJlckRvbWFpblBhZ2UgPSAnY2F0ZWdvcmljYWxGaWx0ZXJNZW1iZXJEb21haW5QYWdlJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyQ2FjaGVJbmZvLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlckNhY2hlSW5mb1ByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsRmlsdGVyQ2FjaGVJbmZvID0gJ2NhdGVnb3JpY2FsRmlsdGVyQ2FjaGVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyUGF0dGVybkRpc3BsYXksIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyUGF0dGVybkRpc3BsYXlQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlclBhdHRlcm5EaXNwbGF5ID0gJ2NhdGVnb3JpY2FsRmlsdGVyUGF0dGVybkRpc3BsYXknLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJQYXR0ZXJuVXBkYXRlLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlclBhdHRlcm5VcGRhdGVQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlclBhdHRlcm5VcGRhdGUgPSAnY2F0ZWdvcmljYWxGaWx0ZXJQYXR0ZXJuVXBkYXRlJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyQ29uZGl0aW9uRGlzcGxheSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25EaXNwbGF5UHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25EaXNwbGF5ID0gJ2NhdGVnb3JpY2FsRmlsdGVyQ29uZGl0aW9uRGlzcGxheScsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlckNvbmRpdGlvblVwZGF0ZSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25VcGRhdGVQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlckNvbmRpdGlvblVwZGF0ZSA9ICdjYXRlZ29yaWNhbEZpbHRlckNvbmRpdGlvblVwZGF0ZScsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlckxpbWl0RGlzcGxheSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJMaW1pdERpc3BsYXlQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlckxpbWl0RGlzcGxheSA9ICdjYXRlZ29yaWNhbEZpbHRlckxpbWl0RGlzcGxheScsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlckxpbWl0VXBkYXRlLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlckxpbWl0VXBkYXRlUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJMaW1pdFVwZGF0ZSA9ICdjYXRlZ29yaWNhbEZpbHRlckxpbWl0VXBkYXRlJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyTmV3LCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlcl9OZXdQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlck5ldyA9ICdjYXRlZ29yaWNhbEZpbHRlck5ldycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlckhpZXJhcmNoeSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJIaWVyYXJjaHlQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlckhpZXJhcmNoeSA9ICdjYXRlZ29yaWNhbEZpbHRlckhpcmVyYXJjaHknLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJVcGRhdGUsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyVXBkYXRlUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJVcGRhdGUgPSAnY2F0ZWdvcmljYWxGaWx0ZXJVcGRhdGUnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsU3RhdGUsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbFN0YXRlUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsU3RhdGUgPSAnY2F0ZWdvcmljYWxSZWxhdGlvbmFsU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsVXBkYXRlZFN0YXRlLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWxTdGF0ZVByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbFVwZGF0ZWRTdGF0ZSA9ICdjYXRlZ29yaWNhbFJlbGF0aW9uYWxVcGRhdGVkU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsRG9tYWluSW5mbywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsRG9tYWluSW5mb1ByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbERvbWFpbkluZm8gPSAnY2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsRG9tYWluSW5mbycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWxEaXNwbGF5LCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWxEaXNwbGF5UHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsRGlzcGxheSA9ICdjYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWxEaXNwbGF5JyxcclxuXHJcbiAgLy8gRFBJX0V4cHJlc3Npb25Ub2tlbiwgaGF2aW5nIHR5cGUgRXhwcmVzc2lvblRva2VuUHJlc01vZGVsXHJcbiAgRXhwcmVzc2lvblRva2VuID0gJ2V4cHJlc3Npb25Ub2tlbicsXHJcblxyXG4gIC8vIERQSV9FeHByZXNzaW9uVG9rZW5zLCBoYXZpbmcgdHlwZSBFeHByZXNzaW9uVG9rZW5QcmVzTW9kZWxbXVxyXG4gIEV4cHJlc3Npb25Ub2tlbnMgPSAnZXhwcmVzc2lvblRva2VucycsXHJcblxyXG4gIC8vIERQSV9Gb3JtdWxhVmFsaWRhdGlvbiwgaGF2aW5nIHR5cGUgRm9ybXVsYVZhbGlkYXRpb25QcmVzTW9kZWxcclxuICBGb3JtdWxhVmFsaWRhdGlvbiA9ICdmb3JtdWxhVmFsaWRhdGlvbicsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWRGaWx0ZXJWYWx1ZSwgaGF2aW5nIHR5cGUgRmlsdGVyVmFsdWVQcmVzTW9kZWxcclxuICBDYXB0aW9uZWRGaWx0ZXJWYWx1ZSA9ICdjYXB0aW9uZWRGaWx0ZXJWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWRSYW5nZU1pbiwgaGF2aW5nIHR5cGUgRmlsdGVyVmFsdWVQcmVzTW9kZWxcclxuICBDYXB0aW9uZWRSYW5nZU1pbiA9ICdjYXB0aW9uZWRSYW5nZU1pbicsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWRSYW5nZU1heCwgaGF2aW5nIHR5cGUgRmlsdGVyVmFsdWVQcmVzTW9kZWxcclxuICBDYXB0aW9uZWRSYW5nZU1heCA9ICdjYXB0aW9uZWRSYW5nZU1heCcsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWRBbmNob3JEYXRlLCBoYXZpbmcgdHlwZSBGaWx0ZXJWYWx1ZVByZXNNb2RlbFxyXG4gIENhcHRpb25lZEFuY2hvckRhdGUgPSAnY2FwdGlvbmVkQW5jaG9yRGF0ZScsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWRGaWx0ZXJWYWx1ZUxpc3QsIGhhdmluZyB0eXBlIEZpbHRlclZhbHVlUHJlc01vZGVsW11cclxuICBDYXB0aW9uZWRGaWx0ZXJWYWx1ZUxpc3QgPSAnY2FwdGlvbmVkRmlsdGVyVmFsdWVMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVySW5mbywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJJbmZvUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJJbmZvID0gJ2NhdGVnb3JpY2FsRmlsdGVySW5mbycsXHJcblxyXG4gIC8vIERQSV9RdWFudGl0YXRpdmVGaWx0ZXJJbmZvLCBoYXZpbmcgdHlwZSBRdWFudGl0YXRpdmVGaWx0ZXJJbmZvUHJlc01vZGVsXHJcbiAgUXVhbnRpdGF0aXZlRmlsdGVySW5mbyA9ICdxdWFudGl0YXRpdmVGaWx0ZXJJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1JlbGF0aXZlRGF0ZUZpbHRlckluZm8sIGhhdmluZyB0eXBlIFJlbGF0aXZlRGF0ZUZpbHRlckluZm9QcmVzTW9kZWxcclxuICBSZWxhdGl2ZURhdGVGaWx0ZXJJbmZvID0gJ3JlbGF0aXZlRGF0ZUZpbHRlckluZm8nLFxyXG5cclxuICAvLyBEUElfRmlsdGVyU2VsZWN0TWVhc3VyZSwgaGF2aW5nIHR5cGUgRmlsdGVyU2VsZWN0TWVhc3VyZVByZXNNb2RlbFxyXG4gIEZpbHRlclNlbGVjdE1lYXN1cmUgPSAnZmlsdGVyU2VsZWN0TWVhc3VyZScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJMaXN0SXRlbSwgaGF2aW5nIHR5cGUgRmlsdGVyTGlzdEl0ZW1QcmVzTW9kZWxcclxuICBGaWx0ZXJMaXN0SXRlbSA9ICdmaWx0ZXJMaXN0SXRlbScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJMaXN0SXRlbXMsIGhhdmluZyB0eXBlIEZpbHRlckxpc3RJdGVtUHJlc01vZGVsW11cclxuICBGaWx0ZXJMaXN0SXRlbXMgPSAnZmlsdGVySXRlbXMnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyRmllbGRJbmZvLCBoYXZpbmcgdHlwZSBGaWx0ZXJGaWVsZEluZm9QcmVzTW9kZWxcclxuICBGaWx0ZXJGaWVsZEluZm8gPSAnZmlsdGVyRmllbGRJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckluZm8sIGhhdmluZyB0eXBlIEZpbHRlckluZm9QcmVzTW9kZWxcclxuICBGaWx0ZXJJbmZvID0gJ2ZpbHRlckluZm8nLFxyXG5cclxuICAvLyBEUElfRmlsdGVyc0luZm8sIGhhdmluZyB0eXBlIEZpbHRlckluZm9yUHJlc01vZGVsW11cclxuICBGaWx0ZXJzSW5mbyA9ICdmaWx0ZXJzSW5mbycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbERvbWFpbiwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxEb21haW5QcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbERvbWFpbiA9ICdjYXRlZ29yaWNhbERvbWFpbicsXHJcblxyXG4gIC8vIERQSV9RdWFudGl0YXRpdmVEb21haW4sIGhhdmluZyB0eXBlIFF1YW50aXRhdGl2ZURvbWFpblByZXNNb2RlbFxyXG4gIFF1YW50aXRhdGl2ZURvbWFpbiA9ICdxdWFudGl0YXRpdmVEb21haW4nLFxyXG5cclxuICAvLyBEUElfVmFsaWRhdGlvblJlc3VsdHMsIGhhdmluZyB0eXBlIFZhbGlkYXRpb25SZXN1bHRzUHJlc01vZGVsXHJcbiAgVmFsaWRhdGlvblJlc3VsdHMgPSAndmFsaWRhdGlvblJlc3VsdHMnLFxyXG5cclxuICAvLyBEUElfRG9tYWluTWVtYmVyLCBoYXZpbmcgdHlwZSBEb21haW5NZW1iZXJQcmVzTW9kZWxcclxuICBEb21haW5NZW1iZXIgPSAnZG9tYWluTWVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpbk1lbWJlcnMsIGhhdmluZyB0eXBlIERvbWFpbk1lbWJlclByZXNNb2RlbFtdXHJcbiAgRG9tYWluTWVtYmVycyA9ICdkb21haW5NZW1iZXJzJyxcclxuXHJcbiAgLy8gRFBJX1F1aWNrRmlsdGVyRGlzcGxheSwgaGF2aW5nIHR5cGUgUXVpY2tGaWx0ZXJEaXNwbGF5UHJlc01vZGVsXHJcbiAgUXVpY2tGaWx0ZXJEaXNwbGF5ID0gJ3F1aWNrRmlsdGVyRGlzcGxheScsXHJcblxyXG4gIC8vIERQSV9RdWlja0ZpbHRlciwgaGF2aW5nIHR5cGUgUXVpY2tGaWx0ZXJQcmVzTW9kZWxcclxuICBRdWlja0ZpbHRlciA9ICdxdWlja0ZpbHRlcicsXHJcblxyXG4gIC8vIERQSV9RdWFudGl0YXRpdmVRdWlja0ZpbHRlciwgaGF2aW5nIHR5cGUgUXVhbnRpdGF0aXZlUXVpY2tGaWx0ZXJQcmVzTW9kZWxcclxuICBRdWFudGl0YXRpdmVRdWlja0ZpbHRlciA9ICdxdWFudGl0YXRpdmVRdWlja0ZpbHRlcicsXHJcblxyXG4gIC8vIERQSV9SZWxhdGl2ZURhdGVRdWlja0ZpbHRlciwgaGF2aW5nIHR5cGUgUmVsYXRpdmVEYXRlUXVpY2tGaWx0ZXJQcmVzTW9kZWxcclxuICBSZWxhdGl2ZURhdGVRdWlja0ZpbHRlciA9ICdyZWxhdGl2ZURhdGVRdWlja0ZpbHRlcicsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbFF1aWNrRmlsdGVyLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbFF1aWNrRmlsdGVyUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxRdWlja0ZpbHRlciA9ICdjYXRlZ29yaWNhbFF1aWNrRmlsdGVyJyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoaWNhbFF1aWNrRmlsdGVyLCBoYXZpbmcgdHlwZSBIaWVyYXJjaGljYWxRdWlja0ZpbHRlclByZXNNb2RlbFxyXG4gIEhpZXJhcmNoaWNhbFF1aWNrRmlsdGVyID0gJ2hpZXJhcmNoaWNhbFF1aWNrRmlsdGVyJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpblRhYmxlLCBoYXZpbmcgdHlwZSBEb21haW5UYWJsZVByZXNNb2RlbFxyXG4gIERvbWFpblRhYmxlID0gJ2RvbWFpblRhYmxlJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpblRhYmxlcywgaGF2aW5nIHR5cGUgRG9tYWluVGFibGVQcmVzTW9kZWxbXVxyXG4gIERvbWFpblRhYmxlcyA9ICdkb21haW5UYWJsZXMnLFxyXG5cclxuICAvLyBEUElfRG9tYWluVHVwbGVzLCBoYXZpbmcgdHlwZSBUdXBsZXNcclxuICBEb21haW5UdXBsZXMgPSAnZG9tYWluVHVwbGVzJyxcclxuXHJcbiAgLy8gRFBJX1NlYXJjaFR1cGxlcywgaGF2aW5nIHR5cGUgVHVwbGVzXHJcbiAgU2VhcmNoVHVwbGVzID0gJ3NlYXJjaFR1cGxlcycsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZFR1cGxlcywgaGF2aW5nIHR5cGUgVHVwbGVIYXNoXHJcbiAgU2VsZWN0ZWRUdXBsZXMgPSAnc2VsZWN0ZWRUdXBsZXMnLFxyXG5cclxuICAvLyBEUElfUGVuZGluZ1R1cGxlcywgaGF2aW5nIHR5cGUgVHVwbGVIYXNoXHJcbiAgUGVuZGluZ1R1cGxlcyA9ICdwZW5kaW5nVHVwbGVzJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpbiwgaGF2aW5nIHR5cGUgTXVsdGlEb21haW5cclxuICBEb21haW4gPSAnZG9tYWluJyxcclxuXHJcbiAgLy8gRFBJX0RhdGVPcHRpb24sIGhhdmluZyB0eXBlIERhdGVCaW5EaWFsb2dPcHRpb25QcmVzTW9kZWxcclxuICBEYXRlT3B0aW9uID0gJ2RhdGVPcHRpb24nLFxyXG5cclxuICAvLyBEUElfRGF0ZU9wdGlvbnMsIGhhdmluZyB0eXBlIERhdGVCaW5EaWFsb2dPcHRpb25QcmVzTW9kZWxbXVxyXG4gIERhdGVPcHRpb25zID0gJ2RhdGVPcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclJhbmdlQWRkLCBoYXZpbmcgdHlwZSBGaWx0ZXJSYW5nZVByZXNNb2RlbFxyXG4gIEZpbHRlclJhbmdlQWRkID0gJ2ZpbHRlclJhbmdlQWRkJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclJhbmdlUmVtb3ZlLCBoYXZpbmcgdHlwZSBGaWx0ZXJSYW5nZVByZXNNb2RlbFxyXG4gIEZpbHRlclJhbmdlUmVtb3ZlID0gJ2ZpbHRlclJhbmdlUmVtb3ZlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlck9wdGlvbnMsIGhhdmluZyB0eXBlIEZpbHRlck9wdGlvbnNQcmVzTW9kZWxcclxuICBGaWx0ZXJPcHRpb25zID0gJ2ZpbHRlck9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfTGF5ZXIsIGhhdmluZyB0eXBlIExheWVyUHJlc01vZGVsXHJcbiAgTGF5ZXIgPSAnbGF5ZXInLFxyXG5cclxuICAvLyBEUElfTGF5ZXJzLCBoYXZpbmcgdHlwZSBMYXllclByZXNNb2RlbFtdXHJcbiAgTGF5ZXJzID0gJ2xheWVycycsXHJcblxyXG4gIC8vIERQSV9NYXJrc0NhcmRQcmVzTW9kZWwsIGhhdmluZyB0eXBlIE1hcmtzQ2FyZFByZXNNb2RlbFxyXG4gIE1hcmtzQ2FyZFByZXNNb2RlbCA9ICdtYXJrc0NhcmRQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfVUlJdGVtLCBoYXZpbmcgdHlwZSBVSUl0ZW1QcmVzTW9kZWxcclxuICBVSUl0ZW0gPSAndWlJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0VuY29kaW5nVUlJdGVtLCBoYXZpbmcgdHlwZSBFbmNvZGluZ1VJSXRlbVByZXNNb2RlbFxyXG4gIEVuY29kaW5nVUlJdGVtID0gJ2VuY29kaW5nVWlJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0VuY29kaW5nVUlJdGVtcywgaGF2aW5nIHR5cGUgRW5jb2RpbmdVSUl0ZW1QcmVzTW9kZWxbXVxyXG4gIEVuY29kaW5nVUlJdGVtcyA9ICdlbmNvZGluZ1VpSXRlbXMnLFxyXG5cclxuICAvLyBEUElfUHJpbVR5cGVVSUl0ZW0sIGhhdmluZyB0eXBlIFByaW1pdGl2ZVR5cGVVSUl0ZW1QcmVzTW9kZWxcclxuICBQcmltVHlwZVVJSXRlbSA9ICdwcmltaXRpdmVUeXBlVWlJdGVtJyxcclxuXHJcbiAgLy8gRFBJX1ByaW1UeXBlVUlJdGVtcywgaGF2aW5nIHR5cGUgUHJpbWl0aXZlVHlwZVVJSXRlbVByZXNNb2RlbFtdXHJcbiAgUHJpbVR5cGVVSUl0ZW1zID0gJ3ByaW1pdGl2ZVR5cGVVaUl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX1ByaW1pdGl2ZVR5cGVVSUl0ZW1PcHRpb25zLCBoYXZpbmcgdHlwZSBQcmltaXRpdmVUeXBlVUlJdGVtT3B0aW9uc1ByZXNNb2RlbFxyXG4gIFByaW1pdGl2ZVR5cGVVSUl0ZW1PcHRpb25zID0gJ3ByaW1pdGl2ZVR5cGVVaUl0ZW1PcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0xpbmVVSUl0ZW1PcHRpb25zLCBoYXZpbmcgdHlwZSBMaW5lVUlJdGVtT3B0aW9uc1ByZXNNb2RlbFxyXG4gIExpbmVVSUl0ZW1PcHRpb25zID0gJ2xpbmVVaUl0ZW1PcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0xpbmVJbnRlcnBvbGF0aW9uTW9kZVVJSXRlbSwgaGF2aW5nIHR5cGUgTGluZUludGVycG9sYXRpb25Nb2RlVUlJdGVtUHJlc01vZGVsXHJcbiAgTGluZUludGVycG9sYXRpb25Nb2RlVUlJdGVtID0gJ2xpbmVJbnRlcnBvbGF0aW9uTW9kZVVpSXRlbScsXHJcblxyXG4gIC8vIERQSV9MaW5lSW50ZXJwb2xhdGlvbk1vZGVVSUl0ZW1TZXQsIGhhdmluZyB0eXBlIExpbmVJbnRlcnBvbGF0aW9uTW9kZVVJSXRlbVByZXNNb2RlbFtdXHJcbiAgTGluZUludGVycG9sYXRpb25Nb2RlVUlJdGVtU2V0ID0gJ2xpbmVJbnRlcnBvbGF0aW9uTW9kZVVpSXRlbVNldCcsXHJcblxyXG4gIC8vIERQSV9MaW5lTWFya2VyUG9zaXRpb25VSUl0ZW0sIGhhdmluZyB0eXBlIExpbmVNYXJrZXJQb3NpdGlvblVJSXRlbVByZXNNb2RlbFxyXG4gIExpbmVNYXJrZXJQb3NpdGlvblVJSXRlbSA9ICdsaW5lTWFya2VyUG9zaXRpb25VaUl0ZW0nLFxyXG5cclxuICAvLyBEUElfTGluZU1hcmtlclBvc2l0aW9uVUlJdGVtU2V0LCBoYXZpbmcgdHlwZSBMaW5lTWFya2VyUG9zaXRpb25VSUl0ZW1QcmVzTW9kZWxbXVxyXG4gIExpbmVNYXJrZXJQb3NpdGlvblVJSXRlbVNldCA9ICdsaW5lTWFya2VyUG9zaXRpb25VaUl0ZW1TZXQnLFxyXG5cclxuICAvLyBEUElfTWFya3NDYXJkRHJvcGRvd25JdGVtLCBoYXZpbmcgdHlwZSBNYXJrc0NhcmREcm9wZG93bkl0ZW1QcmVzTW9kZWxcclxuICBNYXJrc0NhcmREcm9wZG93bkl0ZW0gPSAnbWFya3NDYXJkRHJvcGRvd25JdGVtJyxcclxuXHJcbiAgLy8gRFBJX1Rvb2x0aXBEcm9wZG93bkl0ZW0sIGhhdmluZyB0eXBlIFRvb2x0aXBEcm9wZG93bkl0ZW1QcmVzTW9kZWxcclxuICBUb29sdGlwRHJvcGRvd25JdGVtID0gJ3Rvb2x0aXBEcm9wZG93bkl0ZW0nLFxyXG5cclxuICAvLyBEUElfVGV4dERyb3Bkb3duSXRlbSwgaGF2aW5nIHR5cGUgVGV4dERyb3Bkb3duSXRlbVByZXNNb2RlbFxyXG4gIFRleHREcm9wZG93bkl0ZW0gPSAndGV4dERyb3Bkb3duSXRlbScsXHJcblxyXG4gIC8vIERQSV9Db2xvckRyb3Bkb3duSXRlbSwgaGF2aW5nIHR5cGUgQ29sb3JEcm9wZG93bkl0ZW1QcmVzTW9kZWxcclxuICBDb2xvckRyb3Bkb3duSXRlbSA9ICdjb2xvckRyb3Bkb3duSXRlbScsXHJcblxyXG4gIC8vIERQSV9TaXplU2xpZGVyUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTaXplU2xpZGVyUHJlc01vZGVsXHJcbiAgU2l6ZVNsaWRlclByZXNNb2RlbCA9ICdzaXplU2xpZGVyUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0luZmxlY3Rpb25Qb2ludCwgaGF2aW5nIHR5cGUgSW5mbGVjdGlvblBvaW50UHJlc01vZGVsXHJcbiAgSW5mbGVjdGlvblBvaW50ID0gJ2luZmxlY3Rpb25Qb2ludCcsXHJcblxyXG4gIC8vIERQSV9JbmZsZWN0aW9uUG9pbnRzLCBoYXZpbmcgdHlwZSBJbmZsZWN0aW9uUG9pbnRQcmVzTW9kZWxbXVxyXG4gIEluZmxlY3Rpb25Qb2ludHMgPSAnaW5mbGVjdGlvblBvaW50cycsXHJcblxyXG4gIC8vIERQSV9Ob3RjaCwgaGF2aW5nIHR5cGUgTm90Y2hQcmVzTW9kZWxcclxuICBOb3RjaCA9ICdub3RjaCcsXHJcblxyXG4gIC8vIERQSV9Ob3RjaGVzLCBoYXZpbmcgdHlwZSBOb3RjaFByZXNNb2RlbFtdXHJcbiAgTm90Y2hlcyA9ICdub3RjaGVzJyxcclxuXHJcbiAgLy8gRFBJX01hcmtTaXplT3B0aW9uc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgTWFya1NpemVPcHRpb25zUHJlc01vZGVsXHJcbiAgTWFya1NpemVPcHRpb25zUHJlc01vZGVsID0gJ21hcmtTaXplT3B0aW9uc1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Nb2RpZnlNYXJrc0luU2V0LCBoYXZpbmcgdHlwZSBBZGRPclJlbW92ZU1hcmtzXHJcbiAgTW9kaWZ5TWFya3NJblNldCA9ICdhZGRPclJlbW92ZU1hcmtzJyxcclxuXHJcbiAgLy8gRFBJX01hcmtMYWJlbHNTcGVjaWZpY2F0aW9uLCBoYXZpbmcgdHlwZSBNYXJrTGFiZWxzU3BlY2lmaWNhdGlvblByZXNNb2RlbFxyXG4gIE1hcmtMYWJlbHNTcGVjaWZpY2F0aW9uID0gJ21hcmtMYWJlbHNTcGVjaWZpY2F0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yUGFsZXR0ZSwgaGF2aW5nIHR5cGUgQ29sb3JQYWxldHRlUHJlc01vZGVsXHJcbiAgQ29sb3JQYWxldHRlID0gJ2NvbG9yUGFsZXR0ZScsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZENvbG9yUGFsZXR0ZSwgaGF2aW5nIHR5cGUgQ29sb3JQYWxldHRlUHJlc01vZGVsXHJcbiAgU2VsZWN0ZWRDb2xvclBhbGV0dGUgPSAnc2VsZWN0ZWRDb2xvclBhbGV0dGUnLFxyXG5cclxuICAvLyBEUElfQ29sb3JQYWxldHRlcywgaGF2aW5nIHR5cGUgQ29sb3JQYWxldHRlUHJlc01vZGVsW11cclxuICBDb2xvclBhbGV0dGVzID0gJ2NvbG9yUGFsZXR0ZXMnLFxyXG5cclxuICAvLyBEUElfQ29sb3JQYWxldHRlR3JvdXAsIGhhdmluZyB0eXBlIENvbG9yUGFsZXR0ZUdyb3VwUHJlc01vZGVsXHJcbiAgQ29sb3JQYWxldHRlR3JvdXAgPSAnY29sb3JQYWxldHRlR3JvdXAnLFxyXG5cclxuICAvLyBEUElfQ2F0Q29sb3JQYWxldHRlR3JvdXBzLCBoYXZpbmcgdHlwZSBDb2xvclBhbGV0dGVHcm91cFByZXNNb2RlbFtdXHJcbiAgQ2F0Q29sb3JQYWxldHRlR3JvdXBzID0gJ2NhdENvbG9yUGFsZXR0ZUdyb3VwcycsXHJcblxyXG4gIC8vIERQSV9RQ29sb3JQYWxldHRlR3JvdXBzLCBoYXZpbmcgdHlwZSBDb2xvclBhbGV0dGVHcm91cFByZXNNb2RlbFtdXHJcbiAgUUNvbG9yUGFsZXR0ZUdyb3VwcyA9ICdxQ29sb3JQYWxldHRlR3JvdXBzJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yUGFsZXR0ZUNvbGxlY3Rpb24sIGhhdmluZyB0eXBlIENvbG9yUGFsZXR0ZUNvbGxlY3Rpb25QcmVzTW9kZWxcclxuICBDb2xvclBhbGV0dGVDb2xsZWN0aW9uID0gJ2NvbG9yUGFsZXR0ZUNvbGxlY3Rpb24nLFxyXG5cclxuICAvLyBEUElfUXVhbnRpdGF0aXZlQ29sb3IsIGhhdmluZyB0eXBlIFF1YW50aXRhdGl2ZUNvbG9yUHJlc01vZGVsXHJcbiAgUXVhbnRpdGF0aXZlQ29sb3IgPSAncXVhbnRpdGF0aXZlQ29sb3InLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxDb2xvciwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxDb2xvclByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsQ29sb3IgPSAnY2F0ZWdvcmljYWxDb2xvcicsXHJcblxyXG4gIC8vIERQSV9JdGVtQ29sb3JQYWlyLCBoYXZpbmcgdHlwZSBJdGVtQ29sb3JQYWlyUHJlc01vZGVsXHJcbiAgSXRlbUNvbG9yUGFpciA9ICdpdGVtQ29sb3JQYWlyJyxcclxuXHJcbiAgLy8gRFBJX0l0ZW1Db2xvclBhaXJzLCBoYXZpbmcgdHlwZSBJdGVtQ29sb3JQYWlyUHJlc01vZGVsW11cclxuICBJdGVtQ29sb3JQYWlycyA9ICdpdGVtQ29sb3JQYWlycycsXHJcblxyXG4gIC8vIERQSV9WUUxDb21tYW5kUmVzcG9uc2UsIGhhdmluZyB0eXBlIFZRTENvbW1hbmRSZXNwb25zZVByZXNNb2RlbFxyXG4gIFZRTENvbW1hbmRSZXNwb25zZSA9ICd2cWxDbWRSZXNwb25zZScsXHJcblxyXG4gIC8vIERQSV9MYXlvdXRTdGF0dXMsIGhhdmluZyB0eXBlIExheW91dFN0YXR1c1ByZXNNb2RlbFxyXG4gIExheW91dFN0YXR1cyA9ICdsYXlvdXRTdGF0dXMnLFxyXG5cclxuICAvLyBEUElfVml6U3RhdGUsIGhhdmluZyB0eXBlIFZpelN0YXRlUHJlc01vZGVsXHJcbiAgVml6U3RhdGUgPSAndml6U3RhdGUnLFxyXG5cclxuICAvLyBEUElfVml6U3RhdGVMaXN0LCBoYXZpbmcgdHlwZSBWaXpTdGF0ZVByZXNNb2RlbFtdXHJcbiAgVml6U3RhdGVMaXN0ID0gJ3ZpelN0YXRlTGlzdCcsXHJcblxyXG4gIC8vIERQSV9Db21tYW5kUmVzdWx0LCBoYXZpbmcgdHlwZSBDb21tYW5kUmVzdWx0UHJlc01vZGVsXHJcbiAgQ29tbWFuZFJlc3VsdCA9ICdjbWRSZXN1bHQnLFxyXG5cclxuICAvLyBEUElfQ29tbWFuZFJlc3VsdExpc3QsIGhhdmluZyB0eXBlIENvbW1hbmRSZXN1bHRQcmVzTW9kZWxbXVxyXG4gIENvbW1hbmRSZXN1bHRMaXN0ID0gJ2NtZFJlc3VsdExpc3QnLFxyXG5cclxuICAvLyBEUElfVVJMQWN0aW9uLCBoYXZpbmcgdHlwZSBVUkxBY3Rpb25QcmVzTW9kZWxcclxuICBVUkxBY3Rpb24gPSAndXJsQWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1VSTEFjdGlvbkxpc3QsIGhhdmluZyB0eXBlIFVSTEFjdGlvblByZXNNb2RlbFtdXHJcbiAgVVJMQWN0aW9uTGlzdCA9ICd1cmxBY3Rpb25MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0xlZ2FjeU1lbnUsIGhhdmluZyB0eXBlIExlZ2FjeU1lbnVQcmVzTW9kZWxcclxuICBMZWdhY3lNZW51ID0gJ2xlZ2FjeU1lbnUnLFxyXG5cclxuICAvLyBEUElfTGVnYWN5TWVudXMsIGhhdmluZyB0eXBlIExlZ2FjeU1lbnVQcmVzTW9kZWxbXVxyXG4gIExlZ2FjeU1lbnVzID0gJ2xlZ2FjeU1lbnVzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25BdHRlbXB0SW5mbywgaGF2aW5nIHR5cGUgQ29ubmVjdGlvbkF0dGVtcHRJbmZvUHJlc01vZGVsXHJcbiAgQ29ubmVjdGlvbkF0dGVtcHRJbmZvID0gJ2Nvbm5lY3Rpb25BdHRlbXB0SW5mbycsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvUHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZUNvbm5lY3Rpb25BdHRlbXB0SW5mbyA9ICdkYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VDb25uZWN0aW9uQXR0ZW1wdEluZm9zLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvUHJlc01vZGVsW11cclxuICBEYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvcyA9ICdkYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvcycsXHJcblxyXG4gIC8vIERQSV9Db21tYW5kVmFsaWRhdGlvblByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQ29tbWFuZFZhbGlkYXRpb25QcmVzTW9kZWxcclxuICBDb21tYW5kVmFsaWRhdGlvblByZXNNb2RlbCA9ICdjb21tYW5kVmFsaWRhdGlvblByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9XYXJuaW5nTWVzc2FnZSwgaGF2aW5nIHR5cGUgV2FybmluZ01lc3NhZ2VQcmVzTW9kZWxcclxuICBXYXJuaW5nTWVzc2FnZSA9ICd3YXJuaW5nTWVzc2FnZVByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9BcHBsaWNhdGlvblByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQXBwbGljYXRpb25QcmVzTW9kZWxcclxuICBBcHBsaWNhdGlvblByZXNNb2RlbCA9ICdhcHBsaWNhdGlvblByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Ub29sYmFyUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUb29sYmFyUHJlc01vZGVsXHJcbiAgVG9vbGJhclByZXNNb2RlbCA9ICd0b29sYmFyUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1dvcmtib29rUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBXb3JrYm9va1ByZXNNb2RlbFxyXG4gIFdvcmtib29rUHJlc01vZGVsID0gJ3dvcmtib29rUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1NlcnZlckZvbnRzLCBoYXZpbmcgdHlwZSBTZXJ2ZXJGb250c1ByZXNNb2RlbFxyXG4gIFNlcnZlckZvbnRzID0gJ3NlcnZlckZvbnRzJyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hEYXRhU291cmNlTWV0YWRhdGFQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFB1Ymxpc2hEYXRhU291cmNlTWV0YWRhdGFQcmVzTW9kZWxcclxuICBQdWJsaXNoRGF0YVNvdXJjZU1ldGFkYXRhUHJlc01vZGVsID0gJ3B1Ymxpc2hEYXRhU291cmNlTWV0YWRhdGFQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBEYXNoYm9hcmRQcmVzTW9kZWxcclxuICBEYXNoYm9hcmRQcmVzTW9kZWwgPSAnZGFzaGJvYXJkUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0Rhc2hib2FyZFNpemVQcmVzTW9kZWwsIGhhdmluZyB0eXBlIERhc2hib2FyZFNpemVQcmVzTW9kZWxcclxuICBEYXNoYm9hcmRTaXplUHJlc01vZGVsID0gJ2Rhc2hib2FyZFNpemVQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkU2l6ZVdpdGhWYWxpZGF0aW9uUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBEYXNoYm9hcmRTaXplV2l0aFZhbGlkYXRpb25QcmVzTW9kZWxcclxuICBEYXNoYm9hcmRTaXplV2l0aFZhbGlkYXRpb25QcmVzTW9kZWwgPSAnZGFzaGJvYXJkU2l6ZVdpdGhWYWxpZGF0aW9uUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0Rhc2hib2FyZEluZm9QcmVzTW9kZWwsIGhhdmluZyB0eXBlIERhc2hib2FyZEluZm9QcmVzTW9kZWxcclxuICBEYXNoYm9hcmRJbmZvUHJlc01vZGVsID0gJ2Rhc2hib2FyZEluZm9QcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfVmlzdWFsUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBWaXN1YWxQcmVzTW9kZWxcclxuICBWaXN1YWxQcmVzTW9kZWwgPSAndmlzdWFsJyxcclxuXHJcbiAgLy8gRFBJX1Zpc3VhbFByZXNNb2RlbHMsIGhhdmluZyB0eXBlIFZpc3VhbFByZXNNb2RlbFtdXHJcbiAgVmlzdWFsUHJlc01vZGVscyA9ICd2aXN1YWxzJyxcclxuXHJcbiAgLy8gRFBJX0Ryb3BMaW5lc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRHJvcExpbmVzUHJlc01vZGVsXHJcbiAgRHJvcExpbmVzUHJlc01vZGVsID0gJ2Ryb3BMaW5lc1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Ecm9wRmllbGRQcmVzTW9kZWwsIGhhdmluZyB0eXBlIERyb3BGaWVsZFByZXNNb2RlbFxyXG4gIERyb3BGaWVsZFByZXNNb2RlbCA9ICdkcm9wRmllbGRQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRHJvcEZpZWxkUmVzdWx0UHJlc01vZGVsLCBoYXZpbmcgdHlwZSBEcm9wRmllbGRSZXN1bHRQcmVzTW9kZWxcclxuICBEcm9wRmllbGRSZXN1bHRQcmVzTW9kZWwgPSAnZHJvcEZpZWxkUmVzdWx0UHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0N1cnJlbnRBeGlzUmFuZ2UsIGhhdmluZyB0eXBlIERhdGFWYWx1ZVJhbmdlUHJlc01vZGVsXHJcbiAgQ3VycmVudEF4aXNSYW5nZSA9ICdjdXJyZW50QXhpc1JhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0N1cnJlbnRBeGlzUmFuZ2VOb1RpbWUsIGhhdmluZyB0eXBlIERhdGFWYWx1ZVJhbmdlUHJlc01vZGVsXHJcbiAgQ3VycmVudEF4aXNSYW5nZU5vVGltZSA9ICdjdXJyZW50QXhpc1JhbmdlTm9UaW1lJyxcclxuXHJcbiAgLy8gRFBJX0RlZmF1bHRBeGlzUmFuZ2UsIGhhdmluZyB0eXBlIERhdGFWYWx1ZVJhbmdlUHJlc01vZGVsXHJcbiAgRGVmYXVsdEF4aXNSYW5nZSA9ICdkZWZhdWx0QXhpc1JhbmdlJyxcclxuXHJcbiAgLy8gRFBJX05ld0F4aXNSYW5nZSwgaGF2aW5nIHR5cGUgRGF0YVZhbHVlUmFuZ2VQcmVzTW9kZWxcclxuICBOZXdBeGlzUmFuZ2UgPSAnbmV3QXhpc1JhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0F4aXNPcHRpb25zLCBoYXZpbmcgdHlwZSBBeGlzT3B0aW9uc1ByZXNNb2RlbFxyXG4gIEF4aXNPcHRpb25zID0gJ2F4aXMnLFxyXG5cclxuICAvLyBEUElfQXhpc01ham9yVGlja3MsIGhhdmluZyB0eXBlIFRpY2tNYXJrSW5mb1ByZXNNb2RlbFxyXG4gIEF4aXNNYWpvclRpY2tzID0gJ2F4aXNNYWpvclRpY2tzJyxcclxuXHJcbiAgLy8gRFBJX0F4aXNNaW5vclRpY2tzLCBoYXZpbmcgdHlwZSBUaWNrTWFya0luZm9QcmVzTW9kZWxcclxuICBBeGlzTWlub3JUaWNrcyA9ICdheGlzTWlub3JUaWNrcycsXHJcblxyXG4gIC8vIERQSV9FZGl0QXhpc0RpYWxvZywgaGF2aW5nIHR5cGUgRWRpdEF4aXNEaWFsb2dQcmVzTW9kZWxcclxuICBFZGl0QXhpc0RpYWxvZyA9ICdlZGl0QXhpc0RpYWxvZycsXHJcblxyXG4gIC8vIERQSV9NYXJrTGFiZWxzLCBoYXZpbmcgdHlwZSBTY2VuZVByZXNNb2RlbFxyXG4gIE1hcmtMYWJlbHMgPSAnbWFya0xhYmVscycsXHJcblxyXG4gIC8vIERQSV9TY2VuZSwgaGF2aW5nIHR5cGUgU2NlbmVQcmVzTW9kZWxcclxuICBTY2VuZSA9ICdzY2VuZScsXHJcblxyXG4gIC8vIERQSV9NYXBTZXJ2ZXIsIGhhdmluZyB0eXBlIE1hcFNlcnZlclByZXNNb2RlbFxyXG4gIE1hcFNlcnZlciA9ICdtYXBTZXJ2ZXInLFxyXG5cclxuICAvLyBEUElfVmlzdWFsTGlzdCwgaGF2aW5nIHR5cGUgVmlzdWFsTGlzdFByZXNNb2RlbFxyXG4gIFZpc3VhbExpc3QgPSAndmlzdWFsTGlzdCcsXHJcblxyXG4gIC8vIERQSV9EcmF3Rmlyc3QsIGhhdmluZyB0eXBlIFZpc3VhbExpc3RQcmVzTW9kZWxbXVxyXG4gIERyYXdGaXJzdCA9ICdkcmF3Rmlyc3QnLFxyXG5cclxuICAvLyBEUElfRHJhd0xhc3QsIGhhdmluZyB0eXBlIFZpc3VhbExpc3RQcmVzTW9kZWxbXVxyXG4gIERyYXdMYXN0ID0gJ2RyYXdMYXN0JyxcclxuXHJcbiAgLy8gRFBJX0RyYXdQYW5lLCBoYXZpbmcgdHlwZSBWaXN1YWxMaXN0UHJlc01vZGVsW11cclxuICBEcmF3UGFuZSA9ICdkcmF3UGFuZScsXHJcblxyXG4gIC8vIERQSV9Vc2VyUGFuZUluZm8sIGhhdmluZyB0eXBlIFVzZXJQYW5lSW5mb1ByZXNNb2RlbFxyXG4gIFVzZXJQYW5lSW5mbyA9ICd1c2VyUGFuZUluZm8nLFxyXG5cclxuICAvLyBEUElfQW5hbHl0aWNzUGFuZSwgaGF2aW5nIHR5cGUgQW5hbHl0aWNzUGFuZVByZXNNb2RlbFxyXG4gIEFuYWx5dGljc1BhbmUgPSAnYW5hbHl0aWNzUGFuZScsXHJcblxyXG4gIC8vIERQSV9BbmFseXRpY3NPYmplY3RJdGVtLCBoYXZpbmcgdHlwZSBBbmFseXRpY3NPYmplY3RJdGVtUHJlc01vZGVsXHJcbiAgQW5hbHl0aWNzT2JqZWN0SXRlbSA9ICdhbmFseXRpY3NPYmplY3RJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0FuYWx5dGljc09iamVjdEl0ZW1zLCBoYXZpbmcgdHlwZSBBbmFseXRpY3NPYmplY3RJdGVtUHJlc01vZGVsW11cclxuICBBbmFseXRpY3NPYmplY3RJdGVtcyA9ICdhbmFseXRpY3NPYmplY3RJdGVtcycsXHJcblxyXG4gIC8vIERQSV9BbmFseXRpY3NPYmplY3RHcm91cCwgaGF2aW5nIHR5cGUgQW5hbHl0aWNzT2JqZWN0R3JvdXBQcmVzTW9kZWxcclxuICBBbmFseXRpY3NPYmplY3RHcm91cCA9ICdhbmFseXRpY3NPYmplY3RHcm91cCcsXHJcblxyXG4gIC8vIERQSV9BbmFseXRpY3NPYmplY3RHcm91cHMsIGhhdmluZyB0eXBlIEFuYWx5dGljc09iamVjdEdyb3VwUHJlc01vZGVsW11cclxuICBBbmFseXRpY3NPYmplY3RHcm91cHMgPSAnYW5hbHl0aWNzT2JqZWN0R3JvdXBzJyxcclxuXHJcbiAgLy8gRFBJX0Ryb3Bab25lSXRlbSwgaGF2aW5nIHR5cGUgRHJvcFpvbmVJdGVtUHJlc01vZGVsXHJcbiAgRHJvcFpvbmVJdGVtID0gJ2Ryb3Bab25lSXRlbScsXHJcblxyXG4gIC8vIERQSV9Ecm9wWm9uZUl0ZW1zLCBoYXZpbmcgdHlwZSBEcm9wWm9uZUl0ZW1QcmVzTW9kZWxbXVxyXG4gIERyb3Bab25lSXRlbXMgPSAnZHJvcFpvbmVJdGVtcycsXHJcblxyXG4gIC8vIERQSV9Ecm9wVGFyZ2V0SW5mbywgaGF2aW5nIHR5cGUgRHJvcFRhcmdldEluZm9QcmVzTW9kZWxcclxuICBEcm9wVGFyZ2V0SW5mbyA9ICdkcm9wVGFyZ2V0SW5mbycsXHJcblxyXG4gIC8vIERQSV9QYW5lLCBoYXZpbmcgdHlwZSBQYW5lUHJlc01vZGVsXHJcbiAgUGFuZSA9ICdwYW5lJyxcclxuXHJcbiAgLy8gRFBJX1BhbmVzLCBoYXZpbmcgdHlwZSBQYW5lUHJlc01vZGVsW11cclxuICBQYW5lcyA9ICdwYW5lcycsXHJcblxyXG4gIC8vIERQSV9SYWRpYWxTZWxlY3Rpb25EaXN0YW5jZUluZm8sIGhhdmluZyB0eXBlIFJhZGlhbFNlbGVjdGlvbkRpc3RhbmNlSW5mb1ByZXNNb2RlbFxyXG4gIFJhZGlhbFNlbGVjdGlvbkRpc3RhbmNlSW5mbyA9ICdyYWRpYWxTZWxlY3Rpb25EaXN0YW5jZUluZm8nLFxyXG5cclxuICAvLyBEUElfTWFwU2NhbGVJbmZvLCBoYXZpbmcgdHlwZSBNYXBTY2FsZUluZm9QcmVzTW9kZWxcclxuICBNYXBTY2FsZUluZm8gPSAnbWFwU2NhbGVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1JlbmRlck5vZGUsIGhhdmluZyB0eXBlIFJlbmRlck5vZGVQcmVzTW9kZWxcclxuICBSZW5kZXJOb2RlID0gJ3JlbmRlck5vZGUnLFxyXG5cclxuICAvLyBEUElfUmVuZGVyTm9kZXMsIGhhdmluZyB0eXBlIFJlbmRlck5vZGVQcmVzTW9kZWxbXVxyXG4gIFJlbmRlck5vZGVzID0gJ3JlbmRlck5vZGVzJyxcclxuXHJcbiAgLy8gRFBJX1ByZWRpY3Rpb25CYW5kLCBoYXZpbmcgdHlwZSBQcmVkaWN0aW9uQmFuZFByZXNNb2RlbFxyXG4gIFByZWRpY3Rpb25CYW5kID0gJ3ByZWRpY3Rpb25CYW5kJyxcclxuXHJcbiAgLy8gRFBJX1ByZWRpY3Rpb25XaGlza2VyLCBoYXZpbmcgdHlwZSBQcmVkaWN0aW9uV2hpc2tlclByZXNNb2RlbFxyXG4gIFByZWRpY3Rpb25XaGlza2VyID0gJ3ByZWRpY3Rpb25XaGlza2VyJyxcclxuXHJcbiAgLy8gRFBJX0RyYXdHcm91cCwgaGF2aW5nIHR5cGUgRHJhd1BvaW50c1ByZXNNb2RlbFxyXG4gIERyYXdHcm91cCA9ICdkcmF3R3JvdXAnLFxyXG5cclxuICAvLyBEUElfQ2xpcFJlc2V0LCBoYXZpbmcgdHlwZSBEcmF3SXRlbVByZXNNb2RlbFxyXG4gIENsaXBSZXNldCA9ICdjbGlwUmVzZXQnLFxyXG5cclxuICAvLyBEUElfRHJhd0l0ZW0sIGhhdmluZyB0eXBlIERyYXdJdGVtUHJlc01vZGVsXHJcbiAgRHJhd0l0ZW0gPSAnZHJhd0l0ZW0nLFxyXG5cclxuICAvLyBEUElfVHJhbnNmb3JtUG9wLCBoYXZpbmcgdHlwZSBEcmF3SXRlbVByZXNNb2RlbFxyXG4gIFRyYW5zZm9ybVBvcCA9ICd0cmFuc2Zvcm1Qb3AnLFxyXG5cclxuICAvLyBEUElfVHJhbnNmb3JtUHVzaCwgaGF2aW5nIHR5cGUgRHJhd0l0ZW1QcmVzTW9kZWxcclxuICBUcmFuc2Zvcm1QdXNoID0gJ3RyYW5zZm9ybVB1c2gnLFxyXG5cclxuICAvLyBEUElfRHJhd0l0ZW1zLCBoYXZpbmcgdHlwZSBEcmF3SXRlbVByZXNNb2RlbFtdXHJcbiAgRHJhd0l0ZW1zID0gJ2RyYXdJdGVtcycsXHJcblxyXG4gIC8vIERQSV9DbGlwUmVjdCwgaGF2aW5nIHR5cGUgRHJhd1BvaW50c1ByZXNNb2RlbFxyXG4gIENsaXBSZWN0ID0gJ2NsaXBSZWN0JyxcclxuXHJcbiAgLy8gRFBJX0RyYXdFbGxpcHNlLCBoYXZpbmcgdHlwZSBEcmF3UG9pbnRzUHJlc01vZGVsXHJcbiAgRHJhd0VsbGlwc2UgPSAnZHJhd0VsbGlwc2UnLFxyXG5cclxuICAvLyBEUElfRHJhd0ZpbGxFbGxpcHNlLCBoYXZpbmcgdHlwZSBEcmF3UG9pbnRzUHJlc01vZGVsXHJcbiAgRHJhd0ZpbGxFbGxpcHNlID0gJ2RyYXdGaWxsRWxsaXBzZScsXHJcblxyXG4gIC8vIERQSV9EcmF3RmlsbFBvbHlnb24sIGhhdmluZyB0eXBlIERyYXdQb2ludHNQcmVzTW9kZWxcclxuICBEcmF3RmlsbFBvbHlnb24gPSAnZHJhd0ZpbGxQb2x5Z29uJyxcclxuXHJcbiAgLy8gRFBJX0RyYXdGaWxsUmVjdCwgaGF2aW5nIHR5cGUgRHJhd1BvaW50c1ByZXNNb2RlbFxyXG4gIERyYXdGaWxsUmVjdCA9ICdkcmF3RmlsbFJlY3QnLFxyXG5cclxuICAvLyBEUElfRHJhd1BvbHlnb24sIGhhdmluZyB0eXBlIERyYXdQb2ludHNQcmVzTW9kZWxcclxuICBEcmF3UG9seWdvbiA9ICdkcmF3UG9seWdvbicsXHJcblxyXG4gIC8vIERQSV9EcmF3UG9seWxpbmUsIGhhdmluZyB0eXBlIERyYXdQb2ludHNQcmVzTW9kZWxcclxuICBEcmF3UG9seWxpbmUgPSAnZHJhd1BvbHlsaW5lJyxcclxuXHJcbiAgLy8gRFBJX0RyYXdSZWN0LCBoYXZpbmcgdHlwZSBEcmF3UG9pbnRzUHJlc01vZGVsXHJcbiAgRHJhd1JlY3QgPSAnZHJhd1JlY3QnLFxyXG5cclxuICAvLyBEUElfRHJhd0ZpbGxQYXRoLCBoYXZpbmcgdHlwZSBEcmF3UGF0aFByZXNNb2RlbFxyXG4gIERyYXdGaWxsUGF0aCA9ICdkcmF3RmlsbFBhdGgnLFxyXG5cclxuICAvLyBEUElfRHJhd1BhdGgsIGhhdmluZyB0eXBlIERyYXdQYXRoUHJlc01vZGVsXHJcbiAgRHJhd1BhdGggPSAnZHJhd1BhdGgnLFxyXG5cclxuICAvLyBEUElfRHJhd1RleHQsIGhhdmluZyB0eXBlIERyYXdUZXh0UHJlc01vZGVsXHJcbiAgRHJhd1RleHQgPSAnZHJhd1RleHQnLFxyXG5cclxuICAvLyBEUElfRHJhd0ltYWdlLCBoYXZpbmcgdHlwZSBEcmF3SW1hZ2VQcmVzTW9kZWxcclxuICBEcmF3SW1hZ2UgPSAnZHJhd0ltYWdlJyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlVGlsZUluZm8sIGhhdmluZyB0eXBlIEltYWdlVGlsZUluZm9QcmVzTW9kZWxcclxuICBJbWFnZVRpbGVJbmZvID0gJ3RpbGVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlVGlsZUluZm9zLCBoYXZpbmcgdHlwZSBJbWFnZVRpbGVJbmZvUHJlc01vZGVsW11cclxuICBJbWFnZVRpbGVJbmZvcyA9ICd0aWxlSW5mb3MnLFxyXG5cclxuICAvLyBEUElfRHJhd0ltYWdlVGlsZXMsIGhhdmluZyB0eXBlIERyYXdJbWFnZVRpbGVzUHJlc01vZGVsXHJcbiAgRHJhd0ltYWdlVGlsZXMgPSAnZHJhd0ltYWdlVGlsZXMnLFxyXG5cclxuICAvLyBEUElfRHJhd1BlbiwgaGF2aW5nIHR5cGUgRHJhd1BlblByZXNNb2RlbFxyXG4gIERyYXdQZW4gPSAnZHJhd1BlbicsXHJcblxyXG4gIC8vIERQSV9EcmF3U29saWRCcnVzaCwgaGF2aW5nIHR5cGUgRHJhd1NvbGlkQnJ1c2hQcmVzTW9kZWxcclxuICBEcmF3U29saWRCcnVzaCA9ICdkcmF3U29saWRCcnVzaCcsXHJcblxyXG4gIC8vIERQSV9EcmF3VGV4dFByb3BlcnRpZXMsIGhhdmluZyB0eXBlIERyYXdUZXh0UHJvcGVydGllc1ByZXNNb2RlbFxyXG4gIERyYXdUZXh0UHJvcGVydGllcyA9ICdkcmF3VGV4dFByb3BzJyxcclxuXHJcbiAgLy8gRFBJX0RyYXdHcmFkaWVudEJydXNoLCBoYXZpbmcgdHlwZSBEcmF3R3JhZGllbnRCcnVzaFByZXNNb2RlbFxyXG4gIERyYXdHcmFkaWVudEJydXNoID0gJ2RyYXdHcmFkaWVudEJydXNoJyxcclxuXHJcbiAgLy8gRFBJX0RyYXdUcmFuc2Zvcm0sIGhhdmluZyB0eXBlIERyYXdUcmFuc2Zvcm1QcmVzTW9kZWxcclxuICBEcmF3VHJhbnNmb3JtID0gJ3RyYW5zZm9ybScsXHJcblxyXG4gIC8vIERQSV9EcmF3QW50aWFsaWFzLCBoYXZpbmcgdHlwZSBEcmF3QW50aWFsaWFzUHJlc01vZGVsXHJcbiAgRHJhd0FudGlhbGlhcyA9ICdkcmF3QW50aWFsaWFzJyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlRGljdGlvbmFyeSwgaGF2aW5nIHR5cGUgSW1hZ2VEaWN0aW9uYXJ5UHJlc01vZGVsXHJcbiAgSW1hZ2VEaWN0aW9uYXJ5ID0gJ2ltYWdlRGljdGlvbmFyeScsXHJcblxyXG4gIC8vIERQSV9Db2xvckRpY3Rpb25hcnksIGhhdmluZyB0eXBlIENvbG9yRGljdGlvbmFyeVByZXNNb2RlbFxyXG4gIENvbG9yRGljdGlvbmFyeSA9ICdjb2xvckRpY3Rpb25hcnknLFxyXG5cclxuICAvLyBEUElfTWFya1NoYXBlLCBoYXZpbmcgdHlwZSBNYXJrU2hhcGVQcmVzTW9kZWxcclxuICBNYXJrU2hhcGUgPSAnbWFya1NoYXBlJyxcclxuXHJcbiAgLy8gRFBJX01hcmtTaGFwZUxpc3QsIGhhdmluZyB0eXBlIE1hcmtTaGFwZVByZXNNb2RlbFtdXHJcbiAgTWFya1NoYXBlTGlzdCA9ICdtYXJrU2hhcGVMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1BhbmVEZXNjcmlwdG9yLCBoYXZpbmcgdHlwZSBQYW5lRGVzY3JpcHRvclByZXNNb2RlbFxyXG4gIFBhbmVEZXNjcmlwdG9yID0gJ3BhbmVEZXNjcmlwdG9yJyxcclxuXHJcbiAgLy8gRFBJX1BETWFya3MsIGhhdmluZyB0eXBlIFBETWFya3NQcmVzTW9kZWxcclxuICBQRE1hcmtzID0gJ3BkTWFya3MnLFxyXG5cclxuICAvLyBEUElfUERNYXJrc01hcCwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBQRE1hcmtzUHJlc01vZGVsKVxyXG4gIFBETWFya3NNYXAgPSAncGRNYXJrc01hcCcsXHJcblxyXG4gIC8vIERQSV9MYWJlbFRleHRUYWJsZSwgaGF2aW5nIHR5cGUgTGFiZWxUZXh0VGFibGVcclxuICBMYWJlbFRleHRUYWJsZSA9ICdsYWJlbFRleHRUYWJsZScsXHJcblxyXG4gIC8vIERQSV9UZXh0VGFibGVIZWxwZXIsIGhhdmluZyB0eXBlIFRleHRUYWJsZUhlbHBlclxyXG4gIFRleHRUYWJsZUhlbHBlciA9ICd0ZXh0VGFibGVIZWxwZXInLFxyXG5cclxuICAvLyBEUElfR2VvbWV0cnlUYWJsZSwgaGF2aW5nIHR5cGUgR2VvbWV0cnlUYWJsZVxyXG4gIEdlb21ldHJ5VGFibGUgPSAnZ2VvbWV0cnlUYWJsZScsXHJcblxyXG4gIC8vIERQSV9QYW5lTWFya3MsIGhhdmluZyB0eXBlIFBhbmVNYXJrc1ByZXNNb2RlbFxyXG4gIFBhbmVNYXJrcyA9ICdwYW5lTWFya3MnLFxyXG5cclxuICAvLyBEUElfUGFuZU1hcmtzTGlzdCwgaGF2aW5nIHR5cGUgUGFuZU1hcmtzUHJlc01vZGVsW11cclxuICBQYW5lTWFya3NMaXN0ID0gJ3BhbmVNYXJrc0xpc3QnLFxyXG5cclxuICAvLyBEUElfQnJ1c2hpbmdTZWxlY3Rpb24sIGhhdmluZyB0eXBlIFNlbGVjdGlvblByZXNNb2RlbFxyXG4gIEJydXNoaW5nU2VsZWN0aW9uID0gJ2JydXNoaW5nJyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGlvbiwgaGF2aW5nIHR5cGUgU2VsZWN0aW9uUHJlc01vZGVsXHJcbiAgU2VsZWN0aW9uID0gJ3NlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9CcnVzaGluZ1NlbGVjdGlvbkxpc3QsIGhhdmluZyB0eXBlIFNlbGVjdGlvblByZXNNb2RlbFtdXHJcbiAgQnJ1c2hpbmdTZWxlY3Rpb25MaXN0ID0gJ2JydXNoaW5nU2VsZWN0aW9uTGlzdCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25MaXN0LCBoYXZpbmcgdHlwZSBTZWxlY3Rpb25QcmVzTW9kZWxbXVxyXG4gIFNlbGVjdGlvbkxpc3QgPSAnc2VsZWN0aW9uTGlzdCcsXHJcblxyXG4gIC8vIERQSV9TaGVsZlNlbGVjdGlvbk1vZGVsLCBoYXZpbmcgdHlwZSBTaGVsZlNlbGVjdGlvblByZXNNb2RlbFxyXG4gIFNoZWxmU2VsZWN0aW9uTW9kZWwgPSAnc2hlbGZTZWxlY3Rpb25Nb2RlbCcsXHJcblxyXG4gIC8vIERQSV9TaGVsZlNlbGVjdGlvbk1vZGVscywgaGF2aW5nIHR5cGUgU2hlbGZTZWxlY3Rpb25QcmVzTW9kZWxbXVxyXG4gIFNoZWxmU2VsZWN0aW9uTW9kZWxzID0gJ3NoZWxmU2VsZWN0aW9uTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmU2VsZWN0aW9uc01vZGVsLCBoYXZpbmcgdHlwZSBTaGVsZlNlbGVjdGlvbnNQcmVzTW9kZWxcclxuICBTaGVsZlNlbGVjdGlvbnNNb2RlbCA9ICdzaGVsZlNlbGVjdGlvbnNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9EaW1WYWxTZWxlY3Rpb25Nb2RlbCwgaGF2aW5nIHR5cGUgRGltZW5zaW9uVmFsdWVTZWxlY3Rpb25QcmVzTW9kZWxcclxuICBEaW1WYWxTZWxlY3Rpb25Nb2RlbCA9ICdkaW1lbnNpb25WYWx1ZVNlbGVjdGlvbk1vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0RpbVZhbFNlbGVjdGlvbk1vZGVscywgaGF2aW5nIHR5cGUgRGltZW5zaW9uVmFsdWVTZWxlY3Rpb25QcmVzTW9kZWxbXVxyXG4gIERpbVZhbFNlbGVjdGlvbk1vZGVscyA9ICdkaW1lbnNpb25WYWx1ZVNlbGVjdGlvbk1vZGVscycsXHJcblxyXG4gIC8vIERQSV9IaWVyVmFsU2VsZWN0aW9uTW9kZWwsIGhhdmluZyB0eXBlIEhpZXJhcmNoaWNhbFZhbHVlU2VsZWN0aW9uUHJlc01vZGVsXHJcbiAgSGllclZhbFNlbGVjdGlvbk1vZGVsID0gJ2hpZXJhcmNoaWNhbFZhbHVlU2VsZWN0aW9uTW9kZWwnLFxyXG5cclxuICAvLyBEUElfSGllclZhbFNlbGVjdGlvbk1vZGVscywgaGF2aW5nIHR5cGUgSGllcmFyY2hpY2FsVmFsdWVTZWxlY3Rpb25QcmVzTW9kZWxbXVxyXG4gIEhpZXJWYWxTZWxlY3Rpb25Nb2RlbHMgPSAnaGllcmFyY2hpY2FsVmFsdWVTZWxlY3Rpb25Nb2RlbHMnLFxyXG5cclxuICAvLyBEUElfUXVhbnRSYW5nZVNlbGVjdGlvbk1vZGVsLCBoYXZpbmcgdHlwZSBRdWFudGF0aXZlUmFuZ2VTZWxlY3Rpb25QcmVzTW9kZWxcclxuICBRdWFudFJhbmdlU2VsZWN0aW9uTW9kZWwgPSAncXVhbnRhdGl2ZVJhbmdlU2VsZWN0aW9uTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUXVhbnRSYW5nZVNlbGVjdGlvbk1vZGVscywgaGF2aW5nIHR5cGUgUXVhbnRhdGl2ZVJhbmdlU2VsZWN0aW9uUHJlc01vZGVsW11cclxuICBRdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzID0gJ3F1YW50YXRpdmVSYW5nZVNlbGVjdGlvbk1vZGVscycsXHJcblxyXG4gIC8vIERQSV9RdWFudFZhbHVlU2VsZWN0aW9uTW9kZWwsIGhhdmluZyB0eXBlIFF1YW50YXRpdmVWYWx1ZVNlbGVjdGlvblByZXNNb2RlbFxyXG4gIFF1YW50VmFsdWVTZWxlY3Rpb25Nb2RlbCA9ICdxdWFudGF0aXZlVmFsdWVTZWxlY3Rpb25Nb2RlbCcsXHJcblxyXG4gIC8vIERQSV9RdWFudFZhbHVlU2VsZWN0aW9uTW9kZWxzLCBoYXZpbmcgdHlwZSBRdWFudGF0aXZlVmFsdWVTZWxlY3Rpb25QcmVzTW9kZWxbXVxyXG4gIFF1YW50VmFsdWVTZWxlY3Rpb25Nb2RlbHMgPSAncXVhbnRhdGl2ZVZhbHVlU2VsZWN0aW9uTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX0xlZ2VuZFNlbGVjdGlvbkluZm8sIGhhdmluZyB0eXBlIExlZ2VuZFNlbGVjdGlvbkluZm9QcmVzTW9kZWxcclxuICBMZWdlbmRTZWxlY3Rpb25JbmZvID0gJ2xlZ2VuZFNlbGVjdGlvbkluZm8nLFxyXG5cclxuICAvLyBEUElfTm9kZVJlZmVyZW5jZSwgaGF2aW5nIHR5cGUgTm9kZVJlZmVyZW5jZVByZXNNb2RlbFxyXG4gIE5vZGVSZWZlcmVuY2UgPSAnbm9kZVJlZmVyZW5jZScsXHJcblxyXG4gIC8vIERQSV9QYWdlUmVmZXJlbmNlLCBoYXZpbmcgdHlwZSBQYWdlUmVmZXJlbmNlUHJlc01vZGVsXHJcbiAgUGFnZVJlZmVyZW5jZSA9ICdwYWdlUmVmZXJlbmNlJyxcclxuXHJcbiAgLy8gRFBJX09yaWVudGVkTm9kZVJlZmVyZW5jZSwgaGF2aW5nIHR5cGUgT3JpZW50ZWROb2RlUmVmZXJlbmNlUHJlc01vZGVsXHJcbiAgT3JpZW50ZWROb2RlUmVmZXJlbmNlID0gJ29yaWVudGVkTm9kZVJlZmVyZW5jZScsXHJcblxyXG4gIC8vIERQSV9PcmllbnRlZE5vZGVSZWZlcmVuY2VzLCBoYXZpbmcgdHlwZSBPcmllbnRlZE5vZGVSZWZlcmVuY2VQcmVzTW9kZWxbXVxyXG4gIE9yaWVudGVkTm9kZVJlZmVyZW5jZXMgPSAnb3JpZW50ZWROb2RlUmVmZXJlbmNlcycsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25EYXRhLCBoYXZpbmcgdHlwZSBTZWxlY3Rpb25EYXRhUHJlc01vZGVsXHJcbiAgU2VsZWN0aW9uRGF0YSA9ICdzZWxlY3Rpb25EYXRhJyxcclxuXHJcbiAgLy8gRFBJX0hpZ2hsaWdodGVkRGF0YSwgaGF2aW5nIHR5cGUgSGlnaGxpZ2h0ZWREYXRhUHJlc01vZGVsXHJcbiAgSGlnaGxpZ2h0ZWREYXRhID0gJ2hpZ2hsaWdodGVkRGF0YScsXHJcblxyXG4gIC8vIERQSV9Ob2RlLCBoYXZpbmcgdHlwZSBOb2RlUHJlc01vZGVsXHJcbiAgTm9kZSA9ICdub2RlJyxcclxuXHJcbiAgLy8gRFBJX05vZGVzLCBoYXZpbmcgdHlwZSBOb2RlUHJlc01vZGVsW11cclxuICBOb2RlcyA9ICdub2RlcycsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZE5vZGVzLCBoYXZpbmcgdHlwZSBOb2RlUHJlc01vZGVsW11cclxuICBTZWxlY3RlZE5vZGVzID0gJ3NlbGVjdGVkTm9kZXMnLFxyXG5cclxuICAvLyBEUElfVXNlckFjdGlvbiwgaGF2aW5nIHR5cGUgQWN0aW9uUHJlc01vZGVsXHJcbiAgVXNlckFjdGlvbiA9ICd1c2VyQWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1VzZXJBY3Rpb25zLCBoYXZpbmcgdHlwZSBBY3Rpb25QcmVzTW9kZWxbXVxyXG4gIFVzZXJBY3Rpb25zID0gJ3VzZXJBY3Rpb25zJyxcclxuXHJcbiAgLy8gRFBJX0xpbmtTcGVjLCBoYXZpbmcgdHlwZSBMaW5rU3BlY1ByZXNNb2RlbFxyXG4gIExpbmtTcGVjID0gJ2xpbmtTcGVjJyxcclxuXHJcbiAgLy8gRFBJX0FjdGlvblNwZWNpZmljYXRpb25Nb2RlbCwgaGF2aW5nIHR5cGUgQWN0aW9uU3BlY2lmaWNhdGlvblByZXNNb2RlbFxyXG4gIEFjdGlvblNwZWNpZmljYXRpb25Nb2RlbCA9ICdhY3Rpb25TcGVjaWZpY2F0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0xpbmtTcGVjaWZpY2F0aW9uLCBoYXZpbmcgdHlwZSBMaW5rU3BlY2lmaWNhdGlvblByZXNNb2RlbFxyXG4gIExpbmtTcGVjaWZpY2F0aW9uID0gJ2xpbmtTcGVjaWZpY2F0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1NjcmlwdERlc2NyaXB0aW9uLCBoYXZpbmcgdHlwZSBTY3JpcHREZXNjcmlwdGlvblByZXNNb2RlbFxyXG4gIFNjcmlwdERlc2NyaXB0aW9uID0gJ3NjcmlwdERlc2NyaXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0FjdGlvblNvdXJjZSwgaGF2aW5nIHR5cGUgQWN0aW9uU291cmNlUHJlc01vZGVsXHJcbiAgQWN0aW9uU291cmNlID0gJ2FjdGlvblNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9GaWVsZEV4cHJJdGVtLCBoYXZpbmcgdHlwZSBGaWVsZEV4cHJJdGVtUHJlc01vZGVsXHJcbiAgRmllbGRFeHBySXRlbSA9ICdmaWVsZEV4cHJlc3Npb25JdGVtJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkRXhwclZlY3RvciwgaGF2aW5nIHR5cGUgRmllbGRFeHBySXRlbVByZXNNb2RlbFtdXHJcbiAgRmllbGRFeHByVmVjdG9yID0gJ2ZpZWxkRXhwcmVzc2lvblZlY3RvcicsXHJcblxyXG4gIC8vIERQSV9BY3Rpb25Db21ib0l0ZW0sIGhhdmluZyB0eXBlIEFjdGlvbkNvbWJvSXRlbVByZXNNb2RlbFxyXG4gIEFjdGlvbkNvbWJvSXRlbSA9ICdhY3Rpb25Db21ib0l0ZW0nLFxyXG5cclxuICAvLyBEUElfQWN0aW9uQ29tYm9WZWN0b3IsIGhhdmluZyB0eXBlIEFjdGlvbkNvbWJvSXRlbVByZXNNb2RlbFtdXHJcbiAgQWN0aW9uQ29tYm9WZWN0b3IgPSAnYWN0aW9uQ29tYm9WZWN0b3InLFxyXG5cclxuICAvLyBEUElfQWN0aW9uU291cmNlQ29tYm8sIGhhdmluZyB0eXBlIEFjdGlvblNvdXJjZUNvbWJvUHJlc01vZGVsXHJcbiAgQWN0aW9uU291cmNlQ29tYm8gPSAnYWN0aW9uU291cmNlQ29tYm8nLFxyXG5cclxuICAvLyBEUElfQWN0aW9uRGVzdENvbWJvLCBoYXZpbmcgdHlwZSBBY3Rpb25Db21ib1ByZXNNb2RlbFxyXG4gIEFjdGlvbkRlc3RDb21ibyA9ICdhY3Rpb25EZXN0Q29tYm8nLFxyXG5cclxuICAvLyBEUElfQWN0aW9uRmllbGRMaXN0LCBoYXZpbmcgdHlwZSBBY3Rpb25GaWVsZExpc3RQcmVzTW9kZWxcclxuICBBY3Rpb25GaWVsZExpc3QgPSAnYWN0aW9uRmllbGRMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0VkaXRCcnVzaEFjdGlvbiwgaGF2aW5nIHR5cGUgRWRpdEJydXNoQWN0aW9uUHJlc01vZGVsXHJcbiAgRWRpdEJydXNoQWN0aW9uID0gJ2VkaXRCcnVzaEFjdGlvbicsXHJcblxyXG4gIC8vIERQSV9VcGRhdGVBY3Rpb25Tb3VyY2UsIGhhdmluZyB0eXBlIFVwZGF0ZUFjdGlvblNvdXJjZVByZXNNb2RlbFxyXG4gIFVwZGF0ZUFjdGlvblNvdXJjZSA9ICd1cGRhdGVBY3Rpb25Tb3VyY2UnLFxyXG5cclxuICAvLyBEUElfVXBkYXRlQnJ1c2hBY3Rpb24sIGhhdmluZyB0eXBlIFVwZGF0ZUJydXNoQWN0aW9uUHJlc01vZGVsXHJcbiAgVXBkYXRlQnJ1c2hBY3Rpb24gPSAndXBkYXRlQnJ1c2hBY3Rpb24nLFxyXG5cclxuICAvLyBEUElfQWN0aW9uV2FybmluZ3MsIGhhdmluZyB0eXBlIEFjdGlvbldhcm5pbmdzUHJlc01vZGVsXHJcbiAgQWN0aW9uV2FybmluZ3MgPSAnYWN0aW9uV2FybmluZ3MnLFxyXG5cclxuICAvLyBEUElfRWRpdEh5cGVybGlua0FjdGlvbiwgaGF2aW5nIHR5cGUgRWRpdEh5cGVybGlua0FjdGlvblByZXNNb2RlbFxyXG4gIEVkaXRIeXBlcmxpbmtBY3Rpb24gPSAnZWRpdEh5cGVybGlua0FjdGlvbicsXHJcblxyXG4gIC8vIERQSV9VcGRhdGVIeXBlcmxpbmtBY3Rpb24sIGhhdmluZyB0eXBlIFVwZGF0ZUh5cGVybGlua0FjdGlvblByZXNNb2RlbFxyXG4gIFVwZGF0ZUh5cGVybGlua0FjdGlvbiA9ICd1cGRhdGVIeXBlcmxpbmtBY3Rpb24nLFxyXG5cclxuICAvLyBEUElfRWRpdFNoZWV0TGlua0FjdGlvbiwgaGF2aW5nIHR5cGUgRWRpdFNoZWV0TGlua0FjdGlvblByZXNNb2RlbFxyXG4gIEVkaXRTaGVldExpbmtBY3Rpb24gPSAnZWRpdFNoZWV0bGlua0FjdGlvbicsXHJcblxyXG4gIC8vIERQSV9VcGRhdGVTaGVldExpbmtBY3Rpb24sIGhhdmluZyB0eXBlIFVwZGF0ZVNoZWV0TGlua0FjdGlvblByZXNNb2RlbFxyXG4gIFVwZGF0ZVNoZWV0TGlua0FjdGlvbiA9ICd1cGRhdGVTaGVldGxpbmtBY3Rpb24nLFxyXG5cclxuICAvLyBEUElfQWN0aW9uSXRlbSwgaGF2aW5nIHR5cGUgQWN0aW9uSXRlbVByZXNNb2RlbFxyXG4gIEFjdGlvbkl0ZW0gPSAnYWN0aW9uSXRlbScsXHJcblxyXG4gIC8vIERQSV9BY3Rpb25JdGVtTGlzdCwgaGF2aW5nIHR5cGUgQWN0aW9uSXRlbVByZXNNb2RlbFtdXHJcbiAgQWN0aW9uSXRlbUxpc3QgPSAnYWN0aW9uSXRlbUxpc3QnLFxyXG5cclxuICAvLyBEUElfRGF0YVNlZ21lbnQsIGhhdmluZyB0eXBlIERhdGFTZWdtZW50UHJlc01vZGVsXHJcbiAgRGF0YVNlZ21lbnQgPSAnZGF0YVNlZ21lbnQnLFxyXG5cclxuICAvLyBEUElfRGF0YVNlZ21lbnRzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIERhdGFTZWdtZW50UHJlc01vZGVsKVxyXG4gIERhdGFTZWdtZW50cyA9ICdkYXRhU2VnbWVudHMnLFxyXG5cclxuICAvLyBEUElfRGF0YURpY3Rpb25hcnksIGhhdmluZyB0eXBlIERhdGFEaWN0aW9uYXJ5UHJlc01vZGVsXHJcbiAgRGF0YURpY3Rpb25hcnkgPSAnZGF0YURpY3Rpb25hcnknLFxyXG5cclxuICAvLyBEUElfVml6RGF0YSwgaGF2aW5nIHR5cGUgVml6RGF0YVByZXNNb2RlbFxyXG4gIFZpekRhdGEgPSAndml6RGF0YScsXHJcblxyXG4gIC8vIERQSV9WaXpDb2x1bW4sIGhhdmluZyB0eXBlIFZpekNvbHVtblByZXNNb2RlbFxyXG4gIFZpekNvbHVtbiA9ICd2aXpDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfVml6Q29sdW1ucywgaGF2aW5nIHR5cGUgVml6Q29sdW1uUHJlc01vZGVsW11cclxuICBWaXpDb2x1bW5zID0gJ3ZpekNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfVml6RGF0YUNvbHVtbiwgaGF2aW5nIHR5cGUgVml6RGF0YUNvbHVtblByZXNNb2RlbFxyXG4gIFZpekRhdGFDb2x1bW4gPSAndml6RGF0YUNvbHVtbicsXHJcblxyXG4gIC8vIERQSV9WaXpEYXRhQ29sdW1ucywgaGF2aW5nIHR5cGUgVml6RGF0YUNvbHVtblByZXNNb2RlbFtdXHJcbiAgVml6RGF0YUNvbHVtbnMgPSAndml6RGF0YUNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfVml6UGFuZUNvbHVtbiwgaGF2aW5nIHR5cGUgVml6UGFuZUNvbHVtblByZXNNb2RlbFxyXG4gIFZpelBhbmVDb2x1bW4gPSAndml6UGFuZUNvbHVtbicsXHJcblxyXG4gIC8vIERQSV9WaXpQYW5lQ29sdW1ucywgaGF2aW5nIHR5cGUgVml6UGFuZUNvbHVtblByZXNNb2RlbFtdXHJcbiAgVml6UGFuZUNvbHVtbnMgPSAndml6UGFuZUNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfUGFuZUNvbHVtbnMsIGhhdmluZyB0eXBlIFBhbmVDb2x1bW5zUHJlc01vZGVsXHJcbiAgUGFuZUNvbHVtbnMgPSAncGFuZUNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfUGFuZUNvbHVtbnNMaXN0LCBoYXZpbmcgdHlwZSBQYW5lQ29sdW1uc1ByZXNNb2RlbFtdXHJcbiAgUGFuZUNvbHVtbnNMaXN0ID0gJ3BhbmVDb2x1bW5zTGlzdCcsXHJcblxyXG4gIC8vIERQSV9QYW5lQ29sdW1uc0RhdGEsIGhhdmluZyB0eXBlIFBhbmVDb2x1bW5zRGF0YVByZXNNb2RlbFxyXG4gIFBhbmVDb2x1bW5zRGF0YSA9ICdwYW5lQ29sdW1uc0RhdGEnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyQ29udGV4dCwgaGF2aW5nIHR5cGUgRmlsdGVyQ29udGV4dFByZXNNb2RlbFxyXG4gIEZpbHRlckNvbnRleHQgPSAnZmlsdGVyQ29udGV4dCcsXHJcblxyXG4gIC8vIERQSV9VYmVyVGlwUGFuZURhdGEsIGhhdmluZyB0eXBlIFViZXJUaXBQYW5lRGF0YVByZXNNb2RlbFxyXG4gIFViZXJUaXBQYW5lRGF0YSA9ICd1YmVydGlwUGFuZURhdGEnLFxyXG5cclxuICAvLyBEUElfVWJlclRpcFBhbmVEYXRhcywgaGF2aW5nIHR5cGUgVWJlclRpcFBhbmVEYXRhUHJlc01vZGVsW11cclxuICBVYmVyVGlwUGFuZURhdGFzID0gJ3ViZXJ0aXBQYW5lRGF0YXMnLFxyXG5cclxuICAvLyBEUElfVWJlclRpcERhdGEsIGhhdmluZyB0eXBlIFViZXJUaXBEYXRhUHJlc01vZGVsXHJcbiAgVWJlclRpcERhdGEgPSAndWJlcnRpcERhdGEnLFxyXG5cclxuICAvLyBEUElfUmVmTGluZVRpcCwgaGF2aW5nIHR5cGUgUmVmTGluZVRpcFByZXNNb2RlbFxyXG4gIFJlZkxpbmVUaXAgPSAncmVmTGluZVRpcCcsXHJcblxyXG4gIC8vIERQSV9SZWZMaW5lVGlwcywgaGF2aW5nIHR5cGUgUmVmTGluZVRpcFByZXNNb2RlbFtdXHJcbiAgUmVmTGluZVRpcHMgPSAncmVmTGluZVRpcHMnLFxyXG5cclxuICAvLyBEUElfTnVtZXJpY0JpbiwgaGF2aW5nIHR5cGUgTnVtZXJpY0JpblByZXNNb2RlbFxyXG4gIE51bWVyaWNCaW4gPSAnbnVtZXJpY0JpbicsXHJcblxyXG4gIC8vIERQSV9OdW1lcmljQmluRGlhbG9nLCBoYXZpbmcgdHlwZSBOdW1lcmljQmluRGlhbG9nUHJlc01vZGVsXHJcbiAgTnVtZXJpY0JpbkRpYWxvZyA9ICdudW1lcmljQmluRGlhbG9nJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpblJhbmdlLCBoYXZpbmcgdHlwZSBEb21haW5SYW5nZVByZXNNb2RlbFxyXG4gIERvbWFpblJhbmdlID0gJ2RvbWFpblJhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0JpblNpemVJbmZvLCBoYXZpbmcgdHlwZSBCaW5TaXplSW5mb1ByZXNNb2RlbFxyXG4gIEJpblNpemVJbmZvID0gJ2JpblNpemVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0RldGFpbGVkRXJyb3JEaWFsb2csIGhhdmluZyB0eXBlIERldGFpbGVkRXJyb3JQcmVzTW9kZWxcclxuICBEZXRhaWxlZEVycm9yRGlhbG9nID0gJ2RldGFpbGVkRXJyb3JEaWFsb2cnLFxyXG5cclxuICAvLyBEUElfRHJhZ1NvdXJjZVBvc2l0aW9uLCBoYXZpbmcgdHlwZSBTaGVsZkRyb3BQb3NpdGlvblByZXNNb2RlbFxyXG4gIERyYWdTb3VyY2VQb3NpdGlvbiA9ICdzaGVsZkRyYWdTb3VyY2VQb3NpdGlvbicsXHJcblxyXG4gIC8vIERQSV9Ecm9wVGFyZ2V0UG9zaXRpb24sIGhhdmluZyB0eXBlIFNoZWxmRHJvcFBvc2l0aW9uUHJlc01vZGVsXHJcbiAgRHJvcFRhcmdldFBvc2l0aW9uID0gJ3NoZWxmRHJvcFRhcmdldFBvc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmRHJvcFBvc2l0aW9uLCBoYXZpbmcgdHlwZSBTaGVsZkRyb3BQb3NpdGlvblByZXNNb2RlbFxyXG4gIFNoZWxmRHJvcFBvc2l0aW9uID0gJ3NoZWxmRHJvcFBvc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmRHJvcFBvc2l0aW9ucywgaGF2aW5nIHR5cGUgU2hlbGZEcm9wUG9zaXRpb25QcmVzTW9kZWxbXVxyXG4gIFNoZWxmRHJvcFBvc2l0aW9ucyA9ICdzaGVsZkRyb3BQb3NpdGlvbnMnLFxyXG5cclxuICAvLyBEUElfU2hlbGZEcm9wTW9kZWwsIGhhdmluZyB0eXBlIFNoZWxmRHJvcFByZXNNb2RlbFxyXG4gIFNoZWxmRHJvcE1vZGVsID0gJ3NoZWxmRHJvcE1vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmRHJvcE1vZGVscywgaGF2aW5nIHR5cGUgU2hlbGZEcm9wUHJlc01vZGVsW11cclxuICBTaGVsZkRyb3BNb2RlbHMgPSAnc2hlbGZEcm9wTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX0RyYWcsIGhhdmluZyB0eXBlIERyYWdQcmVzTW9kZWxcclxuICBEcmFnID0gJ2RyYWcnLFxyXG5cclxuICAvLyBEUElfU2NlbmVFbGVtZW50LCBoYXZpbmcgdHlwZSBTY2VuZUVsZW1lbnRQcmVzTW9kZWxcclxuICBTY2VuZUVsZW1lbnQgPSAnc2NlbmVFbGVtZW50JyxcclxuXHJcbiAgLy8gRFBJX1NjZW5lRWxlbWVudHMsIGhhdmluZyB0eXBlIFNjZW5lRWxlbWVudFByZXNNb2RlbFtdXHJcbiAgU2NlbmVFbGVtZW50cyA9ICdzY2VuZUVsZW1lbnRzJyxcclxuXHJcbiAgLy8gRFBJX1F1aWNrRmlsdGVyVHlwZSwgaGF2aW5nIHR5cGUgUXVpY2tGaWx0ZXJUeXBlXHJcbiAgUXVpY2tGaWx0ZXJUeXBlID0gJ3F1aWNrRmlsdGVyVHlwZScsXHJcblxyXG4gIC8vIERQSV9DYXRNb2RlLCBoYXZpbmcgdHlwZSBRdWlja0ZpbHRlckNhdGVnb3JpY2FsTW9kZVxyXG4gIENhdE1vZGUgPSAnY2F0ZWdvcmljYWxNb2RlJyxcclxuXHJcbiAgLy8gRFBJX0NhdEN0cmwsIGhhdmluZyB0eXBlIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsXHJcbiAgQ2F0Q3RybCA9ICdjYXRlZ29yaWNhbENvbnRyb2wnLFxyXG5cclxuICAvLyBEUElfUXVhbnRNb2RlLCBoYXZpbmcgdHlwZSBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVcclxuICBRdWFudE1vZGUgPSAncXVhbnRpdGF0aXZlTW9kZScsXHJcblxyXG4gIC8vIERQSV9RdWFudEN0cmwsIGhhdmluZyB0eXBlIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybFxyXG4gIFF1YW50Q3RybCA9ICdxdWFudGl0YXRpdmVDb250cm9sJyxcclxuXHJcbiAgLy8gRFBJX1pvbmVDb21tb24sIGhhdmluZyB0eXBlIFpvbmVDb21tb25QcmVzTW9kZWxcclxuICBab25lQ29tbW9uID0gJ3pvbmVDb21tb24nLFxyXG5cclxuICAvLyBEUElfWm9uZUNvbW1vbkxpc3RJdGVtcywgaGF2aW5nIHR5cGUgWm9uZUNvbW1vblByZXNNb2RlbFtdXHJcbiAgWm9uZUNvbW1vbkxpc3RJdGVtcyA9ICd6b25lQ29tbW9uTGlzdEl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX1pvbmUsIGhhdmluZyB0eXBlIFpvbmVQcmVzTW9kZWxcclxuICBab25lID0gJ3pvbmUnLFxyXG5cclxuICAvLyBEUElfWm9uZXMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgWm9uZVByZXNNb2RlbClcclxuICBab25lcyA9ICd6b25lcycsXHJcblxyXG4gIC8vIERQSV9JbWFnZVpvbmUsIGhhdmluZyB0eXBlIEltYWdlWm9uZVByZXNNb2RlbFxyXG4gIEltYWdlWm9uZSA9ICdpbWFnZVpvbmUnLFxyXG5cclxuICAvLyBEUElfV2ViWm9uZSwgaGF2aW5nIHR5cGUgV2ViWm9uZVByZXNNb2RlbFxyXG4gIFdlYlpvbmUgPSAnd2ViWm9uZScsXHJcblxyXG4gIC8vIERQSV9BZGRJblpvbmUsIGhhdmluZyB0eXBlIEFkZEluWm9uZVByZXNNb2RlbFxyXG4gIEFkZEluWm9uZSA9ICdhZGRJblpvbmUnLFxyXG5cclxuICAvLyBEUElfQnV0dG9uWm9uZVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQnV0dG9uWm9uZVByZXNNb2RlbFxyXG4gIEJ1dHRvblpvbmVQcmVzTW9kZWwgPSAnYnV0dG9uWm9uZScsXHJcblxyXG4gIC8vIERQSV9CdXR0b25Db25maWdEaWFsb2csIGhhdmluZyB0eXBlIEJ1dHRvbkNvbmZpZ0RpYWxvZ1ByZXNNb2RlbFxyXG4gIEJ1dHRvbkNvbmZpZ0RpYWxvZyA9ICdidXR0b25Db25maWdEaWFsb2cnLFxyXG5cclxuICAvLyBEUElfWm9uZUVkZ2VNb3ZlVHlwZSwgaGF2aW5nIHR5cGUgWm9uZUVkZ2VNb3ZlXHJcbiAgWm9uZUVkZ2VNb3ZlVHlwZSA9ICd6b25lRWRnZU1vdmVUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1pvbmVTaWRlLCBoYXZpbmcgdHlwZSBTaWRlVHlwZVxyXG4gIFpvbmVTaWRlID0gJ3pvbmVTaWRlJyxcclxuXHJcbiAgLy8gRFBJX1NuYXBQb2ludCwgaGF2aW5nIHR5cGUgU25hcFBvaW50UHJlc01vZGVsXHJcbiAgU25hcFBvaW50ID0gJ3NuYXBQb2ludCcsXHJcblxyXG4gIC8vIERQSV9TbmFwUG9pbnRzLCBoYXZpbmcgdHlwZSBTbmFwUG9pbnRQcmVzTW9kZWxbXVxyXG4gIFNuYXBQb2ludHMgPSAnc25hcFBvaW50cycsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRQcmV2aWV3UGFpciwgaGF2aW5nIHR5cGUgRHJhZ0Ryb3BUYXJnZXRQcmV2aWV3UGFpclByZXNNb2RlbFxyXG4gIFRhcmdldFByZXZpZXdQYWlyID0gJ3RhcmdldFByZXZpZXdQYWlyJyxcclxuXHJcbiAgLy8gRFBJX1RhcmdldFByZXZpZXdQYWlycywgaGF2aW5nIHR5cGUgRHJhZ0Ryb3BUYXJnZXRQcmV2aWV3UGFpclByZXNNb2RlbFtdXHJcbiAgVGFyZ2V0UHJldmlld1BhaXJzID0gJ3RhcmdldFByZXZpZXdQYWlycycsXHJcblxyXG4gIC8vIERQSV9Db250YWluZXJHdWlkZSwgaGF2aW5nIHR5cGUgRHJhZ0Ryb3BDb250YWluZXJHdWlkZVByZXNNb2RlbFxyXG4gIENvbnRhaW5lckd1aWRlID0gJ2NvbnRhaW5lckd1aWRlJyxcclxuXHJcbiAgLy8gRFBJX0NvbnRhaW5lckd1aWRlcywgaGF2aW5nIHR5cGUgRHJhZ0Ryb3BDb250YWluZXJHdWlkZVByZXNNb2RlbFtdXHJcbiAgQ29udGFpbmVyR3VpZGVzID0gJ2NvbnRhaW5lckd1aWRlcycsXHJcblxyXG4gIC8vIERQSV9ab25lQm9yZGVyLCBoYXZpbmcgdHlwZSBEcmFnRHJvcFpvbmVCb3JkZXJQcmVzTW9kZWxcclxuICBab25lQm9yZGVyID0gJ3pvbmVCb3JkZXInLFxyXG5cclxuICAvLyBEUElfWm9uZUJvcmRlcnMsIGhhdmluZyB0eXBlIERyYWdEcm9wWm9uZUJvcmRlclByZXNNb2RlbFtdXHJcbiAgWm9uZUJvcmRlcnMgPSAnem9uZUJvcmRlcnMnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkRHJhZ0Ryb3AsIGhhdmluZyB0eXBlIERhc2hib2FyZERyYWdEcm9wUHJlc01vZGVsXHJcbiAgRGFzaGJvYXJkRHJhZ0Ryb3AgPSAnem9uZURyYWdEcm9wJyxcclxuXHJcbiAgLy8gRFBJX0RyYWdab25lUmVzaXplLCBoYXZpbmcgdHlwZSBEcmFnWm9uZVJlc2l6ZVByZXNNb2RlbFxyXG4gIERyYWdab25lUmVzaXplID0gJ3pvbmVSZXNpemUnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkVGV4dCwgaGF2aW5nIHR5cGUgVGV4dFJlZ2lvblByZXNNb2RlbFxyXG4gIERhc2hib2FyZFRleHQgPSAnZGFzaGJvYXJkVGV4dCcsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRUaXRsZSwgaGF2aW5nIHR5cGUgVGV4dFJlZ2lvblByZXNNb2RlbFxyXG4gIERhc2hib2FyZFRpdGxlID0gJ2Rhc2hib2FyZFRpdGxlJyxcclxuXHJcbiAgLy8gRFBJX1F1aWNrRmlsdGVyVGl0bGUsIGhhdmluZyB0eXBlIFRleHRSZWdpb25QcmVzTW9kZWxcclxuICBRdWlja0ZpbHRlclRpdGxlID0gJ3F1aWNrRmlsdGVyVGl0bGUnLFxyXG5cclxuICAvLyBEUElfVmlzdWFsQ2FwdGlvbiwgaGF2aW5nIHR5cGUgVGV4dFJlZ2lvblByZXNNb2RlbFxyXG4gIFZpc3VhbENhcHRpb24gPSAndmlzdWFsQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9WaXN1YWxUaXRsZSwgaGF2aW5nIHR5cGUgVGV4dFJlZ2lvblByZXNNb2RlbFxyXG4gIFZpc3VhbFRpdGxlID0gJ3Zpc3VhbFRpdGxlJyxcclxuXHJcbiAgLy8gRFBJX1pvbmVUaXRsZVJlZ2lvbiwgaGF2aW5nIHR5cGUgVGV4dFJlZ2lvblByZXNNb2RlbFxyXG4gIFpvbmVUaXRsZVJlZ2lvbiA9ICd6b25lVGl0bGUnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RPcHRpb25zLCBoYXZpbmcgdHlwZSBGb3JlY2FzdFByZXNNb2RlbFxyXG4gIEZvcmVjYXN0T3B0aW9ucyA9ICdmb3JlY2FzdE9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3REZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgRm9yZWNhc3REZXNjcmliZVByZXNNb2RlbFxyXG4gIEZvcmVjYXN0RGVzY3JpcHRpb24gPSAnZm9yZWNhc3REZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Xb3JrZ3JvdXBQdWJsaXNoT2JqZWN0LCBoYXZpbmcgdHlwZSBXb3JrZ3JvdXBQdWJsaXNoT2JqZWN0UHJlc01vZGVsXHJcbiAgV29ya2dyb3VwUHVibGlzaE9iamVjdCA9ICdwdWJsaXNoRGF0YVNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoUGVybWlzc2lvbnNTdW1tYXJ5LCBoYXZpbmcgdHlwZSBQdWJsaXNoUGVybWlzc2lvbnNTdW1tYXJ5UHJlc01vZGVsXHJcbiAgUHVibGlzaFBlcm1pc3Npb25zU3VtbWFyeSA9ICdwdWJsaXNoUGVybWlzc2lvbnNTdW1tYXJ5JyxcclxuXHJcbiAgLy8gRFBJX0NoZWNrTmFtZVJlc3VsdHMsIGhhdmluZyB0eXBlIENoZWNrTmFtZVJlc3VsdHNQcmVzTW9kZWxcclxuICBDaGVja05hbWVSZXN1bHRzID0gJ2NoZWNrTmFtZVJlc3VsdHMnLFxyXG5cclxuICAvLyBEUElfVmFsaWRhdGVQdWJsaXNoVmlld3NSZXN1bHQsIGhhdmluZyB0eXBlIFZhbGlkYXRlUHVibGlzaFZpZXdzUmVzdWx0UHJlc01vZGVsXHJcbiAgVmFsaWRhdGVQdWJsaXNoVmlld3NSZXN1bHQgPSAndmFsaWRhdGVQdWJsaXNoVmlld3NSZXN1bHQnLFxyXG5cclxuICAvLyBEUElfUHVibGlzaEF1dGhlbnRpY2F0aW9uU2V0dGluZ3MsIGhhdmluZyB0eXBlIFB1Ymxpc2hBdXRoZW50aWNhdGlvblNldHRpbmdzUHJlc01vZGVsXHJcbiAgUHVibGlzaEF1dGhlbnRpY2F0aW9uU2V0dGluZ3MgPSAncHVibGlzaEF1dGhlbnRpY2F0aW9uU2V0dGluZ3MnLFxyXG5cclxuICAvLyBEUElfTWFuYWdlRGF0YXNvdXJjZXMsIGhhdmluZyB0eXBlIE1hbmFnZURhdGFzb3VyY2VzUHJlc01vZGVsXHJcbiAgTWFuYWdlRGF0YXNvdXJjZXMgPSAnbWFuYWdlRGF0YXNvdXJjZXMnLFxyXG5cclxuICAvLyBEUElfQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3MsIGhhdmluZyB0eXBlIENyZWRlbnRpYWxzQXV0aFNldHRpbmdzUHJlc01vZGVsXHJcbiAgQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3MgPSAnY3JlZGVudGlhbHNBdXRoU2V0dGluZ3MnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbkNyZWRlbnRpYWxzQXV0aFNldHRpbmdzLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3NQcmVzTW9kZWxcclxuICBDb25uZWN0aW9uQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3MgPSAnY29ubmVjdGlvbkNyZWRlbnRpYWxzQXV0aFNldHRpbmdzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25DcmVkZW50aWFsc0F1dGhTZXR0aW5nc0xpc3QsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25DcmVkZW50aWFsc0F1dGhTZXR0aW5nc1ByZXNNb2RlbFtdXHJcbiAgQ29ubmVjdGlvbkNyZWRlbnRpYWxzQXV0aFNldHRpbmdzTGlzdCA9ICdjb25uZWN0aW9uQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3NMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hEYXRhc291cmNlRnJvbVdvcmtib29rSW5mbywgaGF2aW5nIHR5cGUgUHVibGlzaERhdGFzb3VyY2VGcm9tV29ya2Jvb2tJbmZvUHJlc01vZGVsXHJcbiAgUHVibGlzaERhdGFzb3VyY2VGcm9tV29ya2Jvb2tJbmZvID0gJ3B1Ymxpc2hEYXRhc291cmNlRnJvbVdvcmtib29rSW5mbycsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoRGF0YXNvdXJjZXNGcm9tV29ya2Jvb2tJbmZvLCBoYXZpbmcgdHlwZSBQdWJsaXNoRGF0YXNvdXJjZUZyb21Xb3JrYm9va0luZm9QcmVzTW9kZWxbXVxyXG4gIFB1Ymxpc2hEYXRhc291cmNlc0Zyb21Xb3JrYm9va0luZm8gPSAncHVibGlzaERhdGFzb3VyY2VzRnJvbVdvcmtib29rSW5mbycsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoU2hlZXQsIGhhdmluZyB0eXBlIFB1Ymxpc2hTaGVldFByZXNNb2RlbFxyXG4gIFB1Ymxpc2hTaGVldCA9ICdwdWJsaXNoU2hlZXQnLFxyXG5cclxuICAvLyBEUElfUHVibGlzaFNoZWV0cywgaGF2aW5nIHR5cGUgUHVibGlzaFNoZWV0UHJlc01vZGVsW11cclxuICBQdWJsaXNoU2hlZXRzID0gJ3B1Ymxpc2hTaGVldHMnLFxyXG5cclxuICAvLyBEUElfUHVibGlzaE9iamVjdFZpZXdzLCBoYXZpbmcgdHlwZSBQdWJsaXNoT2JqZWN0Vmlld3NQcmVzTW9kZWxcclxuICBQdWJsaXNoT2JqZWN0Vmlld3MgPSAncHVibGlzaE9iamVjdFZpZXdzJyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hPYmplY3RQdWJsaXNoU2hlZXRSZXN1bHRzLCBoYXZpbmcgdHlwZSBQdWJsaXNoT2JqZWN0UHVibGlzaFNoZWV0UmVzdWx0c1ByZXNNb2RlbFxyXG4gIFB1Ymxpc2hPYmplY3RQdWJsaXNoU2hlZXRSZXN1bHRzID0gJ3B1Ymxpc2hPYmplY3RQdWJsaXNoU2hlZXRSZXN1bHRzJyxcclxuXHJcbiAgLy8gRFBJX1JlZnJlc2hFeHRyYWN0U2NoZWR1bGluZ1NldHRpbmdzLCBoYXZpbmcgdHlwZSBSZWZyZXNoRXh0cmFjdFNjaGVkdWxpbmdTZXR0aW5nc1ByZXNNb2RlbFxyXG4gIFJlZnJlc2hFeHRyYWN0U2NoZWR1bGluZ1NldHRpbmdzID0gJ3JlZnJlc2hFeHRyYWN0U2NoZWR1bGluZ1NldHRpbmdzJyxcclxuXHJcbiAgLy8gRFBJX1NldFJlZnJlc2hFeHRyYWN0U2NoZWR1bGVSZXN1bHQsIGhhdmluZyB0eXBlIFNldFJlZnJlc2hFeHRyYWN0U2NoZWR1bGVSZXN1bHRQcmVzTW9kZWxcclxuICBTZXRSZWZyZXNoRXh0cmFjdFNjaGVkdWxlUmVzdWx0ID0gJ3NldFJlZnJlc2hFeHRyYWN0U2NoZWR1bGVSZXN1bHQnLFxyXG5cclxuICAvLyBEUElfQ2hlY2tQdWJsaXNoT2JqZWN0TmFtZVdhcm5pbmdzUmVzdWx0cywgaGF2aW5nIHR5cGUgQ2hlY2tQdWJsaXNoT2JqZWN0TmFtZVdhcm5pbmdzUmVzdWx0c1ByZXNNb2RlbFxyXG4gIENoZWNrUHVibGlzaE9iamVjdE5hbWVXYXJuaW5nc1Jlc3VsdHMgPSAnY2hlY2tQdWJsaXNoT2JqZWN0TmFtZVdhcm5pbmdzUmVzdWx0cycsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoRGF0YXNvdXJjZU9uV29ya2Jvb2tQdWJsaXNoUmVzdWx0cywgaGF2aW5nIHR5cGUgUHVibGlzaERhdGFzb3VyY2VPbldvcmtib29rUHVibGlzaFJlc3VsdHNQcmVzTW9kZWxcclxuICBQdWJsaXNoRGF0YXNvdXJjZU9uV29ya2Jvb2tQdWJsaXNoUmVzdWx0cyA9ICdwdWJsaXNoRGF0YXNvdXJjZU9uV29ya2Jvb2tQdWJsaXNoUmVzdWx0JyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hEYXRhU291cmNlUmVzdWx0LCBoYXZpbmcgdHlwZSBQdWJsaXNoRGF0YVNvdXJjZVJlc3VsdFByZXNNb2RlbFxyXG4gIFB1Ymxpc2hEYXRhU291cmNlUmVzdWx0ID0gJ3B1Ymxpc2hEYXRhU291cmNlUmVzdWx0JyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hXYXJuaW5nTWVzc2FnZSwgaGF2aW5nIHR5cGUgUHVibGlzaFdhcm5pbmdNZXNzYWdlUHJlc01vZGVsXHJcbiAgUHVibGlzaFdhcm5pbmdNZXNzYWdlID0gJ3B1Ymxpc2hXYXJuaW5nTWVzc2FnZScsXHJcblxyXG4gIC8vIERQSV9NdXN0RG93bmdyYWRlVG9QdWJsaXNoV2FybmluZ01lc3NhZ2VQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFB1Ymxpc2hXYXJuaW5nTWVzc2FnZVByZXNNb2RlbFxyXG4gIE11c3REb3duZ3JhZGVUb1B1Ymxpc2hXYXJuaW5nTWVzc2FnZVByZXNNb2RlbCA9ICdtdXN0RG93bmdyYWRlVG9QdWJsaXNoV2FybmluZ01lc3NhZ2VQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUHVibGlzaFNlbGVjdGVkQXR0cmlidXRlcywgaGF2aW5nIHR5cGUgUHVibGlzaFNlbGVjdGVkQXR0cmlidXRlc1ByZXNNb2RlbFxyXG4gIFB1Ymxpc2hTZWxlY3RlZEF0dHJpYnV0ZXMgPSAncHVibGlzaFNlbGVjdGVkQXR0cmlidXRlcycsXHJcblxyXG4gIC8vIERQSV9BdXRvc2F2ZUZpbGUsIGhhdmluZyB0eXBlIEF1dG9zYXZlRmlsZVByZXNNb2RlbFxyXG4gIEF1dG9zYXZlRmlsZSA9ICdhdXRvc2F2ZUZpbGUnLFxyXG5cclxuICAvLyBEUElfQXV0b3NhdmVGaWxlcywgaGF2aW5nIHR5cGUgQXV0b3NhdmVGaWxlUHJlc01vZGVsW11cclxuICBBdXRvc2F2ZUZpbGVzID0gJ2F1dG9zYXZlRmlsZXMnLFxyXG5cclxuICAvLyBEUElfRnVuY3Rpb25Hcm91cCwgaGF2aW5nIHR5cGUgRnVuY3Rpb25Hcm91cFxyXG4gIEZ1bmN0aW9uR3JvdXAgPSAnZnVuY0dycCcsXHJcblxyXG4gIC8vIERQSV9GdW5jdGlvbkdyb3VwcywgaGF2aW5nIHR5cGUgRnVuY3Rpb25Hcm91cFtdXHJcbiAgRnVuY3Rpb25Hcm91cHMgPSAnZnVuY0dycHMnLFxyXG5cclxuICAvLyBEUElfRnVuY3Rpb25BcmdUeXBlLCBoYXZpbmcgdHlwZSBGdW5jdGlvbkFyZ1R5cGVcclxuICBGdW5jdGlvbkFyZ1R5cGUgPSAnZnVuY0FyZ1R5cGUnLFxyXG5cclxuICAvLyBEUElfRnVuY3Rpb25BcmdUeXBlcywgaGF2aW5nIHR5cGUgRnVuY3Rpb25BcmdUeXBlW11cclxuICBGdW5jdGlvbkFyZ1R5cGVzID0gJ2Z1bmNBcmdUeXBlcycsXHJcblxyXG4gIC8vIERQSV9DYWxjdWxhdGlvblN0eWxlLCBoYXZpbmcgdHlwZSBDYWxjU3R5bGVcclxuICBDYWxjdWxhdGlvblN0eWxlID0gJ2NhbGN1bGF0aW9uU3R5bGUnLFxyXG5cclxuICAvLyBEUElfQ2FsY3VsYXRpb24sIGhhdmluZyB0eXBlIENhbGN1bGF0aW9uUHJlc01vZGVsXHJcbiAgQ2FsY3VsYXRpb24gPSAnY2FsY3VsYXRpb24nLFxyXG5cclxuICAvLyBEUElfVHlwZUluUGlsbCwgaGF2aW5nIHR5cGUgQ2FsY3VsYXRpb25QcmVzTW9kZWxcclxuICBUeXBlSW5QaWxsID0gJ3R5cGVJblBpbGwnLFxyXG5cclxuICAvLyBEUElfQ2FsY0Vycm9ySW5mbywgaGF2aW5nIHR5cGUgQ2FsY0Vycm9ySW5mb1ByZXNNb2RlbFxyXG4gIENhbGNFcnJvckluZm8gPSAnZXJyb3JJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0NhbGNFcnJvckluZm9zLCBoYXZpbmcgdHlwZSBDYWxjRXJyb3JJbmZvUHJlc01vZGVsW11cclxuICBDYWxjRXJyb3JJbmZvcyA9ICdlcnJvckluZm9MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0NhbGN1YWx0aW9uVmFsaWRhdGlvbiwgaGF2aW5nIHR5cGUgQ2FsY3VsYXRpb25WYWxpZGF0aW9uUHJlc01vZGVsXHJcbiAgQ2FsY3VhbHRpb25WYWxpZGF0aW9uID0gJ2NhbGN1bGF0aW9uVmFsaWRhdGlvbicsXHJcblxyXG4gIC8vIERQSV9FeHByZXNzaW9uRnVuY3Rpb24sIGhhdmluZyB0eXBlIEV4cHJlc3Npb25GdW5jdGlvblByZXNNb2RlbFxyXG4gIEV4cHJlc3Npb25GdW5jdGlvbiA9ICdleHByZXNzaW9uRnVuYycsXHJcblxyXG4gIC8vIERQSV9FeHByZXNzaW9uRnVuY3Rpb25zLCBoYXZpbmcgdHlwZSBFeHByZXNzaW9uRnVuY3Rpb25QcmVzTW9kZWxbXVxyXG4gIEV4cHJlc3Npb25GdW5jdGlvbnMgPSAnZXhwcmVzc2lvbkZ1bmNMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0V4cHJlc3Npb25GdW5jdGlvbnNQTSwgaGF2aW5nIHR5cGUgRXhwcmVzc2lvbkZ1bmN0aW9uc1ByZXNNb2RlbFxyXG4gIEV4cHJlc3Npb25GdW5jdGlvbnNQTSA9ICdleHByZXNzaW9uRnVuY1BtJyxcclxuXHJcbiAgLy8gRFBJX1N0eWxlVG9rZW4sIGhhdmluZyB0eXBlIFN0eWxlVG9rZW5QcmVzTW9kZWxcclxuICBTdHlsZVRva2VuID0gJ3N0eWxlVG9rZW4nLFxyXG5cclxuICAvLyBEUElfU3R5bGVUb2tlbnMsIGhhdmluZyB0eXBlIFN0eWxlVG9rZW5QcmVzTW9kZWxbXVxyXG4gIFN0eWxlVG9rZW5zID0gJ3N0eWxlVG9rZW5MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0NhbGNFZGl0b3JUZXh0U2VsZWN0aW9uLCBoYXZpbmcgdHlwZSBDYWxjRWRpdG9yVGV4dFNlbGVjdGlvblByZXNNb2RlbFxyXG4gIENhbGNFZGl0b3JUZXh0U2VsZWN0aW9uID0gJ2NhbGNFZGl0b3JUZXh0U2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0F1dG9Db21wbGV0ZUl0ZW1UeXBlLCBoYXZpbmcgdHlwZSBBdXRvQ29tcGxldGVJdGVtVHlwZVxyXG4gIEF1dG9Db21wbGV0ZUl0ZW1UeXBlID0gJ2F1dG9jb21wbGV0ZVR5cGUnLFxyXG5cclxuICAvLyBEUElfQXV0b0NvbXBsZXRlSXRlbSwgaGF2aW5nIHR5cGUgQXV0b0NvbXBsZXRlSXRlbVByZXNNb2RlbFxyXG4gIEF1dG9Db21wbGV0ZUl0ZW0gPSAnYXV0b2NvbXBsZXRlSXRlbScsXHJcblxyXG4gIC8vIERQSV9BdXRvQ29tcGxldGVJdGVtcywgaGF2aW5nIHR5cGUgQXV0b0NvbXBsZXRlSXRlbVByZXNNb2RlbFtdXHJcbiAgQXV0b0NvbXBsZXRlSXRlbXMgPSAnYXV0b2NvbXBsZXRlSXRlbUxpc3QnLFxyXG5cclxuICAvLyBEUElfQ2FsY3VsYXRpb25BdXRvQ29tcGxldGVDb250ZXh0TWVudSwgaGF2aW5nIHR5cGUgQ2FsY3VsYXRpb25BdXRvQ29tcGxldGVDb250ZXh0TWVudVByZXNNb2RlbFxyXG4gIENhbGN1bGF0aW9uQXV0b0NvbXBsZXRlQ29udGV4dE1lbnUgPSAnY2FsY3VsYXRpb25BdXRvY29tcGxldGVDb250ZXh0TWVudScsXHJcblxyXG4gIC8vIERQSV9DYWxjQXBwbHlSZXN1bHQsIGhhdmluZyB0eXBlIENhbGNBcHBseVJlc3VsdFxyXG4gIENhbGNBcHBseVJlc3VsdCA9ICdjYWxjdWxhdGlvbkFwcGx5UmVzdWx0JyxcclxuXHJcbiAgLy8gRFBJX1JhbXBCb3JkZXJTdHlsZWRCb3gsIGhhdmluZyB0eXBlIFN0eWxlZEJveFByZXNNb2RlbFxyXG4gIFJhbXBCb3JkZXJTdHlsZWRCb3ggPSAncmFtcEJvcmRlclN0eWxlZEJveCcsXHJcblxyXG4gIC8vIERQSV9TdHlsZWRCb3gsIGhhdmluZyB0eXBlIFN0eWxlZEJveFByZXNNb2RlbFxyXG4gIFN0eWxlZEJveCA9ICdzdHlsZWRCb3gnLFxyXG5cclxuICAvLyBEUElfR2xvYmFsU3R5bGVkQm94LCBoYXZpbmcgdHlwZSBTdHlsZWRCb3hQcmVzTW9kZWxcclxuICBHbG9iYWxTdHlsZWRCb3ggPSAnZ2xvYmFsU3R5bGVkQm94JyxcclxuXHJcbiAgLy8gRFBJX1N0eWxlQ29udGV4dCwgaGF2aW5nIHR5cGUgU3R5bGVDb250ZXh0UHJlc01vZGVsXHJcbiAgU3R5bGVDb250ZXh0ID0gJ3N0eWxlQ29udGV4dCcsXHJcblxyXG4gIC8vIERQSV9DdXJyZW50VGV4dFN0eWxlLCBoYXZpbmcgdHlwZSBUZXh0U3R5bGVQcmVzTW9kZWxcclxuICBDdXJyZW50VGV4dFN0eWxlID0gJ2N1cnJlbnRUZXh0U3R5bGUnLFxyXG5cclxuICAvLyBEUElfTGFiZWxUZXh0U3R5bGUsIGhhdmluZyB0eXBlIFRleHRTdHlsZVByZXNNb2RlbFxyXG4gIExhYmVsVGV4dFN0eWxlID0gJ2xhYmVsVGV4dFN0eWxlJyxcclxuXHJcbiAgLy8gRFBJX09yaWdpbmFsVGV4dFN0eWxlLCBoYXZpbmcgdHlwZSBUZXh0U3R5bGVQcmVzTW9kZWxcclxuICBPcmlnaW5hbFRleHRTdHlsZSA9ICdvcmlnaW5hbFRleHRTdHlsZScsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZFRleHRTdHlsZU1vZGVsLCBoYXZpbmcgdHlwZSBUZXh0U3R5bGVQcmVzTW9kZWxcclxuICBTZWxlY3RlZFRleHRTdHlsZU1vZGVsID0gJ3NlbGVjdGVkVGV4dFN0eWxlTW9kZWwnLFxyXG5cclxuICAvLyBEUElfU3dhdGNoVGV4dFN0eWxlTW9kZWwsIGhhdmluZyB0eXBlIFRleHRTdHlsZVByZXNNb2RlbFxyXG4gIFN3YXRjaFRleHRTdHlsZU1vZGVsID0gJ3N3YXRjaFRleHRTdHlsZScsXHJcblxyXG4gIC8vIERQSV9UZXh0U3R5bGVNb2RlbCwgaGF2aW5nIHR5cGUgVGV4dFN0eWxlUHJlc01vZGVsXHJcbiAgVGV4dFN0eWxlTW9kZWwgPSAndGV4dFN0eWxlJyxcclxuXHJcbiAgLy8gRFBJX1RpdGxlU3R5bGVNb2RlbCwgaGF2aW5nIHR5cGUgVGV4dFN0eWxlUHJlc01vZGVsXHJcbiAgVGl0bGVTdHlsZU1vZGVsID0gJ3RpdGxlU3R5bGVNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Qcm9wZXJ0eUJhZywgaGF2aW5nIHR5cGUgUHJvcGVydHlCYWdQcmVzTW9kZWxcclxuICBQcm9wZXJ0eUJhZyA9ICdwcm9wQmFnV3JhcHBlcicsXHJcblxyXG4gIC8vIERQSV9QcmVzTW9kZWxNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgUHJvcGVydHlCYWdQcmVzTW9kZWwpXHJcbiAgUHJlc01vZGVsTWFwID0gJ3ByZXNNb2RlbE1hcCcsXHJcblxyXG4gIC8vIERQSV9QcmVzZW50YXRpb25MYXllck5vdGlmaWNhdGlvbnMsIGhhdmluZyB0eXBlIFByZXNNb2RlbE1hcFByZXNNb2RlbFxyXG4gIFByZXNlbnRhdGlvbkxheWVyTm90aWZpY2F0aW9ucyA9ICdwcmVzZW50YXRpb25MYXllck5vdGlmaWNhdGlvbnMnLFxyXG5cclxuICAvLyBEUElfU2Vjb25kYXJ5SW5mbywgaGF2aW5nIHR5cGUgUHJlc01vZGVsTWFwUHJlc01vZGVsXHJcbiAgU2Vjb25kYXJ5SW5mbyA9ICdzZWNvbmRhcnlJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0NsaWVudERhc2hib2FyZFVJTWV0cmljLCBoYXZpbmcgdHlwZSBDbGllbnREYXNoYm9hcmRVSU1ldHJpY1ByZXNNb2RlbFxyXG4gIENsaWVudERhc2hib2FyZFVJTWV0cmljID0gJ2NsaWVudERhc2hib2FyZFVpTWV0cmljJyxcclxuXHJcbiAgLy8gRFBJX0NsaWVudERhc2hib2FyZFVJTWV0cmljcywgaGF2aW5nIHR5cGUgQ2xpZW50RGFzaGJvYXJkVUlNZXRyaWNQcmVzTW9kZWxbXVxyXG4gIENsaWVudERhc2hib2FyZFVJTWV0cmljcyA9ICdjbGllbnREYXNoYm9hcmRVaU1ldHJpY3MnLFxyXG5cclxuICAvLyBEUElfQ2xpZW50RGFzaGJvYXJkVUlNZXRyaWNDb250YWluZXIsIGhhdmluZyB0eXBlIENsaWVudERhc2hib2FyZFVJTWV0cmljQ29udGFpbmVyUHJlc01vZGVsXHJcbiAgQ2xpZW50RGFzaGJvYXJkVUlNZXRyaWNDb250YWluZXIgPSAnY2xpZW50RGFzaGJvYXJkVWlNZXRyaWNDb250YWluZXInLFxyXG5cclxuICAvLyBEUElfRXh0U3ZjQ29uZmlnLCBoYXZpbmcgdHlwZSBFeHRTdmNDb25maWdQcmVzTW9kZWxcclxuICBFeHRTdmNDb25maWcgPSAnZXh0U3ZjQ29uZmlnJyxcclxuXHJcbiAgLy8gRFBJX1N0b3J5Ym9hcmRTaGVldEl0ZW0sIGhhdmluZyB0eXBlIFN0b3J5Ym9hcmRTaGVldEl0ZW1QcmVzTW9kZWxcclxuICBTdG9yeWJvYXJkU2hlZXRJdGVtID0gJ3N0b3J5Ym9hcmRTaGVldEl0ZW0nLFxyXG5cclxuICAvLyBEUElfU3Rvcnlib2FyZFNoZWV0SXRlbXMsIGhhdmluZyB0eXBlIFN0b3J5Ym9hcmRTaGVldEl0ZW1QcmVzTW9kZWxbXVxyXG4gIFN0b3J5Ym9hcmRTaGVldEl0ZW1zID0gJ3N0b3J5Ym9hcmRTaGVldEl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX1N0b3J5Ym9hcmRTaGVldExpc3QsIGhhdmluZyB0eXBlIFN0b3J5Ym9hcmRTaGVldExpc3RQcmVzTW9kZWxcclxuICBTdG9yeWJvYXJkU2hlZXRMaXN0ID0gJ3N0b3J5Ym9hcmRTaGVldExpc3QnLFxyXG5cclxuICAvLyBEUElfRml0VG9TdG9yeUJvYXJkT3B0aW9uSXRlbSwgaGF2aW5nIHR5cGUgRml0VG9TdG9yeUJvYXJkT3B0aW9uSXRlbVByZXNNb2RlbFxyXG4gIEZpdFRvU3RvcnlCb2FyZE9wdGlvbkl0ZW0gPSAnZml0VG9TdG9yeWJvYXJkT3B0aW9uSXRlbScsXHJcblxyXG4gIC8vIERQSV9GaXRUb1N0b3J5Qm9hcmRPcHRpb25JdGVtcywgaGF2aW5nIHR5cGUgRml0VG9TdG9yeUJvYXJkT3B0aW9uSXRlbVByZXNNb2RlbFtdXHJcbiAgRml0VG9TdG9yeUJvYXJkT3B0aW9uSXRlbXMgPSAnZml0VG9TdG9yeWJvYXJkT3B0aW9uSXRlbXMnLFxyXG5cclxuICAvLyBEUElfRml0VG9TdG9yeUJvYXJkT3B0aW9uTGlzdCwgaGF2aW5nIHR5cGUgRml0VG9TdG9yeUJvYXJkT3B0aW9uTGlzdFByZXNNb2RlbFxyXG4gIEZpdFRvU3RvcnlCb2FyZE9wdGlvbkxpc3QgPSAnZml0VG9TdG9yeWJvYXJkT3B0aW9uTGlzdCcsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBvaW50TmF2SXRlbSwgaGF2aW5nIHR5cGUgU3RvcnlQb2ludE5hdkl0ZW1QcmVzTW9kZWxcclxuICBTdG9yeVBvaW50TmF2SXRlbSA9ICdzdG9yeXBvaW50TmF2SXRlbScsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBvaW50TmF2SXRlbXMsIGhhdmluZyB0eXBlIFN0b3J5UG9pbnROYXZJdGVtUHJlc01vZGVsW11cclxuICBTdG9yeVBvaW50TmF2SXRlbXMgPSAnc3Rvcnlwb2ludE5hdkl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX0ZsaXBib2FyZE5hdiwgaGF2aW5nIHR5cGUgRmxpcGJvYXJkTmF2UHJlc01vZGVsXHJcbiAgRmxpcGJvYXJkTmF2ID0gJ2ZsaXBib2FyZE5hdicsXHJcblxyXG4gIC8vIERQSV9TY3JvbGxCYXJTdHlsZSwgaGF2aW5nIHR5cGUgU2Nyb2xsQmFyU3R5bGVQcmVzTW9kZWxcclxuICBTY3JvbGxCYXJTdHlsZSA9ICdzY3JvbGxCYXJTdHlsZScsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRab25lTGF5b3V0UGFuZSwgaGF2aW5nIHR5cGUgRGFzaGJvYXJkWm9uZUxheW91dFBhbmVQcmVzTW9kZWxcclxuICBEYXNoYm9hcmRab25lTGF5b3V0UGFuZSA9ICdkYXNoYm9hcmRab25lTGF5b3V0UGFuZScsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZFN0b3J5UG9pbnRTdHlsZSwgaGF2aW5nIHR5cGUgU3RvcnlQb2ludENhcHRpb25TdHlsZVByZXNNb2RlbFxyXG4gIFNlbGVjdGVkU3RvcnlQb2ludFN0eWxlID0gJ3NlbGVjdGVkU3RvcnlQb2ludFN0eWxlJyxcclxuXHJcbiAgLy8gRFBJX1Vuc2VsZWN0ZWRTdG9yeVBvaW50U3R5bGUsIGhhdmluZyB0eXBlIFN0b3J5UG9pbnRDYXB0aW9uU3R5bGVQcmVzTW9kZWxcclxuICBVbnNlbGVjdGVkU3RvcnlQb2ludFN0eWxlID0gJ3Vuc2VsZWN0ZWRTdG9yeVBvaW50U3R5bGUnLFxyXG5cclxuICAvLyBEUElfRmxpcGJvYXJkTmF2U3R5bGUsIGhhdmluZyB0eXBlIEZsaXBib2FyZE5hdlN0eWxlUHJlc01vZGVsXHJcbiAgRmxpcGJvYXJkTmF2U3R5bGUgPSAnZmxpcGJvYXJkTmF2U3R5bGUnLFxyXG5cclxuICAvLyBEUElfU3RvcnlQb2ludCwgaGF2aW5nIHR5cGUgU3RvcnlQb2ludFByZXNNb2RlbFxyXG4gIFN0b3J5UG9pbnQgPSAnc3RvcnlQb2ludCcsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBvaW50cywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBTdG9yeVBvaW50UHJlc01vZGVsKVxyXG4gIFN0b3J5UG9pbnRzID0gJ3N0b3J5UG9pbnRzJyxcclxuXHJcbiAgLy8gRFBJX0ZsaXBib2FyZCwgaGF2aW5nIHR5cGUgRmxpcGJvYXJkUHJlc01vZGVsXHJcbiAgRmxpcGJvYXJkID0gJ2ZsaXBib2FyZCcsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBhaXIsIGhhdmluZyB0eXBlIFN0b3J5UGFpclByZXNNb2RlbFxyXG4gIFN0b3J5UGFpciA9ICdzdG9yeVBhaXInLFxyXG5cclxuICAvLyBEUElfU3RvcnlQYWlycywgaGF2aW5nIHR5cGUgU3RvcnlQYWlyUHJlc01vZGVsW11cclxuICBTdG9yeVBhaXJzID0gJ3N0b3J5UGFpcnMnLFxyXG5cclxuICAvLyBEUElfU3Rvcnlib2FyZFBNLCBoYXZpbmcgdHlwZSBTdG9yeWJvYXJkUHJlc01vZGVsXHJcbiAgU3Rvcnlib2FyZFBNID0gJ3N0b3J5Ym9hcmRQbScsXHJcblxyXG4gIC8vIERQSV9IaURwaUljb25EaWN0aW9uYXJ5LCBoYXZpbmcgdHlwZSBJbWFnZUNvbGxlY3Rpb25QcmVzTW9kZWxcclxuICBIaURwaUljb25EaWN0aW9uYXJ5ID0gJ2hpRHBpSWNvbkRpY3Rpb25hcnknLFxyXG5cclxuICAvLyBEUElfSWNvbkRpY3Rpb25hcnksIGhhdmluZyB0eXBlIEltYWdlQ29sbGVjdGlvblByZXNNb2RlbFxyXG4gIEljb25EaWN0aW9uYXJ5ID0gJ2ljb25EaWN0aW9uYXJ5JyxcclxuXHJcbiAgLy8gRFBJX0ljb25SZXNvdXJjZURpY3Rpb25hcnksIGhhdmluZyB0eXBlIEltYWdlUmVzb3VyY2VDb2xsZWN0aW9uUHJlc01vZGVsXHJcbiAgSWNvblJlc291cmNlRGljdGlvbmFyeSA9ICdpY29uUmVzRGljdGlvbmFyeScsXHJcblxyXG4gIC8vIERQSV9EYXRhUHJldmlld1dpbmRvd01lc3NhZ2UsIGhhdmluZyB0eXBlIERhdGFQcmV2aWV3V2luZG93TWVzc2FnZVByZXNNb2RlbFxyXG4gIERhdGFQcmV2aWV3V2luZG93TWVzc2FnZSA9ICdkYXRhUHJldmlld1dpbmRvd01lc3NhZ2UnLFxyXG5cclxuICAvLyBEUElfRGF0YVNvdXJjZURhdGEsIGhhdmluZyB0eXBlIERhdGFTb3VyY2VEYXRhUHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZURhdGEgPSAnZGF0YVNyY0RhdGEnLFxyXG5cclxuICAvLyBEUElfRGF0YVNvdXJjZVNvcnQsIGhhdmluZyB0eXBlIERhdGFTb3VyY2VTb3J0UHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZVNvcnQgPSAnZGF0YVNyY1NvcnQnLFxyXG5cclxuICAvLyBEUElfQ29sdW1uSW5mbywgaGF2aW5nIHR5cGUgRFNDb2x1bW5JbmZvUHJlc01vZGVsXHJcbiAgQ29sdW1uSW5mbyA9ICdjb2x1bW5JbmZvJyxcclxuXHJcbiAgLy8gRFBJX0NvbHVtbkluZm9zLCBoYXZpbmcgdHlwZSBEU0NvbHVtbkluZm9QcmVzTW9kZWxbXVxyXG4gIENvbHVtbkluZm9zID0gJ2NvbHVtbkluZm9zJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFGb3JtYXR0ZXIsIGhhdmluZyB0eXBlIERWRm9ybWF0dGVyXHJcbiAgRGF0YUZvcm1hdHRlciA9ICdkYXRhRm9ybWF0dGVyJyxcclxuXHJcbiAgLy8gRFBJX0pvaW5EZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgSm9pbkRlc2NyaXB0aW9uUHJlc01vZGVsXHJcbiAgSm9pbkRlc2NyaXB0aW9uID0gJ2pvaW5EZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Kb2luRGVzY3JpcHRpb25zLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIEpvaW5EZXNjcmlwdGlvblByZXNNb2RlbClcclxuICBKb2luRGVzY3JpcHRpb25zID0gJ2pvaW5EZXNjcmlwdGlvbnMnLFxyXG5cclxuICAvLyBEUElfRmlsZVRhYmxlSW5mbywgaGF2aW5nIHR5cGUgRmlsZVRhYmxlSW5mb1ByZXNNb2RlbFxyXG4gIEZpbGVUYWJsZUluZm8gPSAnZmlsZVRhYmxlSW5mbycsXHJcblxyXG4gIC8vIERQSV9GaWVsZE1hcHBpbmcsIGhhdmluZyB0eXBlIEZpZWxkTWFwcGluZ1ByZXNNb2RlbFxyXG4gIEZpZWxkTWFwcGluZyA9ICdmaWVsZE1hcHBpbmcnLFxyXG5cclxuICAvLyBEUElfRmllbGRNYXBwaW5nRGF0YSwgaGF2aW5nIHR5cGUgRmllbGRNYXBwaW5nRGF0YVByZXNNb2RlbFxyXG4gIEZpZWxkTWFwcGluZ0RhdGEgPSAnZmllbGRNYXBwaW5nRGF0YScsXHJcblxyXG4gIC8vIERQSV9GaWVsZE1hcHBpbmdEYXRhVmVjdG9yLCBoYXZpbmcgdHlwZSBGaWVsZE1hcHBpbmdEYXRhUHJlc01vZGVsW11cclxuICBGaWVsZE1hcHBpbmdEYXRhVmVjdG9yID0gJ2ZpZWxkTWFwcGluZ0RhdGFWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRnJhbWVGaW5kZXIsIGhhdmluZyB0eXBlIEZyYW1lRmluZGVyUHJlc01vZGVsXHJcbiAgRnJhbWVGaW5kZXIgPSAnZnJhbWVGaW5kZXInLFxyXG5cclxuICAvLyBEUElfU2hlZXRMaW5rRmllbGRNYXBwaW5nLCBoYXZpbmcgdHlwZSBTaGVldExpbmtGaWVsZE1hcHBpbmdQcmVzTW9kZWxcclxuICBTaGVldExpbmtGaWVsZE1hcHBpbmcgPSAnc2hlZXRMaW5rRmllbGRNYXBwaW5nJyxcclxuXHJcbiAgLy8gRFBJX1VuaW9uSW5mbywgaGF2aW5nIHR5cGUgVW5pb25JbmZvUHJlc01vZGVsXHJcbiAgVW5pb25JbmZvID0gJ3VuaW9uSW5mbycsXHJcblxyXG4gIC8vIERQSV9VbmlvblRhYmxlSW5mbywgaGF2aW5nIHR5cGUgVW5pb25UYWJsZUluZm9QcmVzTW9kZVxyXG4gIFVuaW9uVGFibGVJbmZvID0gJ3VuaW9uVGFibGVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1VuaW9uVGFibGVJbmZvcywgaGF2aW5nIHR5cGUgVW5pb25UYWJsZUluZm9QcmVzTW9kZWxbXVxyXG4gIFVuaW9uVGFibGVJbmZvcyA9ICd1bmlvblRhYmxlSW5mb3MnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvblBCVW5pb25JbmZvLCBoYXZpbmcgdHlwZSBQQlVuaW9uSW5mb1ByZXNNb2RlbFxyXG4gIENvbm5lY3Rpb25QQlVuaW9uSW5mbyA9ICdjb25uZWN0aW9uUGJ1bmlvbkluZm8nLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvblBCVW5pb25JbmZvcywgaGF2aW5nIHR5cGUgUEJVbmlvbkluZm9QcmVzTW9kZWxbXVxyXG4gIENvbm5lY3Rpb25QQlVuaW9uSW5mb3MgPSAnY29ubmVjdGlvblBidW5pb25JbmZvcycsXHJcblxyXG4gIC8vIERQSV9Kb2luQ2xhdXNlLCBoYXZpbmcgdHlwZSBKb2luQ2xhdXNlUHJlc01vZGVsXHJcbiAgSm9pbkNsYXVzZSA9ICdqb2luQ2xhdXNlJyxcclxuXHJcbiAgLy8gRFBJX0pvaW5DbGF1c2VzLCBoYXZpbmcgdHlwZSBKb2luQ2xhdXNlUHJlc01vZGVsW11cclxuICBKb2luQ2xhdXNlcyA9ICdqb2luQ2xhdXNlcycsXHJcblxyXG4gIC8vIERQSV9Kb2luVmFsaWRhdGlvblJlc3VsdCwgaGF2aW5nIHR5cGUgSm9pblZhbGlkYXRpb25SZXN1bHRQcmVzTW9kZWxcclxuICBKb2luVmFsaWRhdGlvblJlc3VsdCA9ICdqb2luVmFsaWRhdGlvblJlc3VsdCcsXHJcblxyXG4gIC8vIERQSV9Kb2luVGFibGVJbmZvLCBoYXZpbmcgdHlwZSBKb2luVGFibGVJbmZvUHJlc01vZGVsXHJcbiAgSm9pblRhYmxlSW5mbyA9ICdqb2luVGFibGVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlckluZm8sIGhhdmluZyB0eXBlIEpvaW5UYWJsZUluZm9QcmVzTW9kZWxcclxuICBQYXJhbWV0ZXJJbmZvID0gJ3BhcmFtZXRlckluZm8nLFxyXG5cclxuICAvLyBEUElfSm9pblRhYmxlSW5mb3MsIGhhdmluZyB0eXBlIEpvaW5UYWJsZUluZm9QcmVzTW9kZWxbXVxyXG4gIEpvaW5UYWJsZUluZm9zID0gJ2pvaW5UYWJsZUluZm9zJyxcclxuXHJcbiAgLy8gRFBJX0pvaW5PbkNhbGNJbmZvLCBoYXZpbmcgdHlwZSBKb2luT25DYWxjSW5mb1ByZXNNb2RlbFxyXG4gIEpvaW5PbkNhbGNJbmZvID0gJ2pvaW5PbkNhbGNJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25TdW1tYXJ5LCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uU3VtbWFyeVByZXNNb2RlbFxyXG4gIENvbm5lY3Rpb25TdW1tYXJ5ID0gJ2Nvbm5lY3Rpb25TdW1tYXJ5JyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25TdW1tYXJpZXMsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25TdW1tYXJ5UHJlc01vZGVsW11cclxuICBDb25uZWN0aW9uU3VtbWFyaWVzID0gJ2Nvbm5lY3Rpb25TdW1tYXJpZXMnLFxyXG5cclxuICAvLyBEUElfVG9wTGV2ZWxDb25uZWN0aW9uRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIFRvcExldmVsQ29ubmVjdGlvbkRlc2NyaXB0aW9uUHJlc01vZGVsXHJcbiAgVG9wTGV2ZWxDb25uZWN0aW9uRGVzY3JpcHRpb24gPSAndG9wTGV2ZWxDb25uZWN0aW9uRGVzY3JpcHRpb24nLFxyXG5cclxuICAvLyBEUElfRGF0YUNvbm5lY3Rpb25UYWJsZVZpZXdNZXNzYWdlcywgaGF2aW5nIHR5cGUgRGF0YUNvbm5lY3Rpb25UYWJsZVZpZXdNZXNzYWdlc1ByZXNNb2RlbFxyXG4gIERhdGFDb25uZWN0aW9uVGFibGVWaWV3TWVzc2FnZXMgPSAnZGF0YUNvbm5lY3Rpb25UYWJsZVZpZXdNZXNzYWdlcycsXHJcblxyXG4gIC8vIERQSV9UZXh0VHJhbnNmb3JtU2NyaXB0LCBoYXZpbmcgdHlwZSBUZXh0VHJhbnNmb3JtU2NyaXB0UHJlc01vZGVsXHJcbiAgVGV4dFRyYW5zZm9ybVNjcmlwdCA9ICd0ZXh0VHJhbnNmb3JtU2NyaXB0JyxcclxuXHJcbiAgLy8gRFBJX0NhbGVuZGFyRGF0ZU9wdGlvbnMsIGhhdmluZyB0eXBlIENhbGVuZGFyRGF0ZU9wdGlvbnNQcmVzTW9kZWxcclxuICBDYWxlbmRhckRhdGVPcHRpb25zID0gJ2NhbGVuZGFyRGF0ZU9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfR29Ub1dvcmtzaGVldFRvb2x0aXBQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEdvVG9Xb3Jrc2hlZXRUb29sdGlwUHJlc01vZGVsXHJcbiAgR29Ub1dvcmtzaGVldFRvb2x0aXBQcmVzTW9kZWwgPSAnZ29Ub1dvcmtzaGVldFRvb2x0aXBQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfVGFibGVDbGVhbmluZ1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVGFibGVDbGVhbmluZ1ByZXNNb2RlbFxyXG4gIFRhYmxlQ2xlYW5pbmdQcmVzTW9kZWwgPSAndGFibGVDbGVhbmluZ1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9QaXZvdFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgUGl2b3RQcmVzTW9kZWxcclxuICBQaXZvdFByZXNNb2RlbCA9ICdwaXZvdFByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9QaXZvdFRyZWVJdGVtUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBQaXZvdFRyZWVJdGVtUHJlc01vZGVsXHJcbiAgUGl2b3RUcmVlSXRlbVByZXNNb2RlbCA9ICdwaXZvdFRyZWVJdGVtUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1Bpdm90VHJlZUl0ZW1zLCBoYXZpbmcgdHlwZSBQaXZvdFRyZWVJdGVtUHJlc01vZGVsW11cclxuICBQaXZvdFRyZWVJdGVtcyA9ICdwaXZvdFRyZWVJdGVtc1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9QaXZvdERpc3BsYXksIGhhdmluZyB0eXBlIFBpdm90RGlzcGxheVByZXNNb2RlbFxyXG4gIFBpdm90RGlzcGxheSA9ICdwaXZvdERpc3BsYXknLFxyXG5cclxuICAvLyBEUElfUGl2b3RUYWcsIGhhdmluZyB0eXBlIE5hbWVDb2x1bW5zUGFpclByZXNNb2RlbFxyXG4gIFBpdm90VGFnID0gJ3Bpdm90VGFnJyxcclxuXHJcbiAgLy8gRFBJX1Bpdm90R3JvdXBzLCBoYXZpbmcgdHlwZSBOYW1lQ29sdW1uc1BhaXJQcmVzTW9kZWxbXVxyXG4gIFBpdm90R3JvdXBzID0gJ3Bpdm90R3JvdXBzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VEcm9wZG93biwgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZURyb3Bkb3duUHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZURyb3Bkb3duID0gJ2RhdGFTb3VyY2VEcm9wZG93bicsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uRHJvcGRvd24sIGhhdmluZyB0eXBlIENvbm5lY3Rpb25Ecm9wZG93blByZXNNb2RlbFxyXG4gIENvbm5lY3Rpb25Ecm9wZG93biA9ICdjb25uZWN0aW9uRHJvcGRvd24nLFxyXG5cclxuICAvLyBEUElfQWN0aXZpdHlFdmVudCwgaGF2aW5nIHR5cGUgQWN0aXZpdHlFdmVudFByZXNNb2RlbFxyXG4gIEFjdGl2aXR5RXZlbnQgPSAnYWN0aXZpdHlFdmVudCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb24sIGhhdmluZyB0eXBlIFVJQXV0b21hdGlvblByZXNNb2RlbFxyXG4gIFVJQXV0b21hdGlvbiA9ICd1aUF1dG9tYXRpb24nLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uSW5kZXgsIGhhdmluZyB0eXBlIFVJQXV0b21hdGlvbkluZGV4UHJlc01vZGVsXHJcbiAgVUlBdXRvbWF0aW9uSW5kZXggPSAndWlBdXRvbWF0aW9uSW5kZXgnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uSW5kZXhMaXN0LCBoYXZpbmcgdHlwZSBVSUF1dG9tYXRpb25JbmRleFByZXNNb2RlbFtdXHJcbiAgVUlBdXRvbWF0aW9uSW5kZXhMaXN0ID0gJ3VpQXV0b21hdGlvbkluZGV4TGlzdCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25Db21wb25lbnRJbmZvLCBoYXZpbmcgdHlwZSBVSUF1dG9tYXRpb25Db21wb25lbnRJbmZvUHJlc01vZGVsXHJcbiAgVUlBdXRvbWF0aW9uQ29tcG9uZW50SW5mbyA9ICd1aUF1dG9tYXRpb25Db21wb25lbnRJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbkNvbXBvbmVudEluZm9MaXN0LCBoYXZpbmcgdHlwZSBVSUF1dG9tYXRpb25Db21wb25lbnRJbmZvUHJlc01vZGVsW11cclxuICBVSUF1dG9tYXRpb25Db21wb25lbnRJbmZvTGlzdCA9ICd1aUF1dG9tYXRpb25Db21wb25lbnRJbmZvTGlzdCcsXHJcblxyXG4gIC8vIERQSV9HZW9tZXRyeSwgaGF2aW5nIHR5cGUgR2VvbWV0cnlQcmVzTW9kZWxcclxuICBHZW9tZXRyeSA9ICdnZW9tZXRyeScsXHJcblxyXG4gIC8vIERQSV9NdWx0aVBvaW50LCBoYXZpbmcgdHlwZSBNdWx0aVBvaW50UHJlc01vZGVsXHJcbiAgTXVsdGlQb2ludCA9ICdtdWx0aVBvaW50JyxcclxuXHJcbiAgLy8gRFBJX011bHRpTGluZSwgaGF2aW5nIHR5cGUgTXVsdGlMaW5lUHJlc01vZGVsXHJcbiAgTXVsdGlMaW5lID0gJ211bHRpTGluZScsXHJcblxyXG4gIC8vIERQSV9NdWx0aVBvbHlnb24sIGhhdmluZyB0eXBlIE11bHRpUG9seWdvblByZXNNb2RlbFxyXG4gIE11bHRpUG9seWdvbiA9ICdtdWx0aVBvbHlnb24nLFxyXG5cclxuICAvLyBEUElfUG9seWdvbiwgaGF2aW5nIHR5cGUgUG9seWdvblByZXNNb2RlbFxyXG4gIFBvbHlnb24gPSAncG9seWdvbicsXHJcblxyXG4gIC8vIERQSV9Qb2x5Z29uTGlzdCwgaGF2aW5nIHR5cGUgUG9seWdvblByZXNNb2RlbFtdXHJcbiAgUG9seWdvbkxpc3QgPSAncG9seWdvbkxpc3QnLFxyXG5cclxuICAvLyBEUElfTGluZSwgaGF2aW5nIHR5cGUgTGluZVByZXNNb2RlbFxyXG4gIExpbmUgPSAnbGluZScsXHJcblxyXG4gIC8vIERQSV9MaW5lTGlzdCwgaGF2aW5nIHR5cGUgTGluZVByZXNNb2RlbFtdXHJcbiAgTGluZUxpc3QgPSAnbGluZUxpc3QnLFxyXG5cclxuICAvLyBEUElfVGFiYmVkQXV0aGVudGljYXRpb24sIGhhdmluZyB0eXBlIFRhYmJlZEF1dGhlbnRpY2F0aW9uUHJlc01vZGVsXHJcbiAgVGFiYmVkQXV0aGVudGljYXRpb24gPSAndGFiYmVkQXV0aGVudGljYXRpb24nLFxyXG5cclxuICAvLyBEUElfVGFiYmVkQXV0aGVudGljYXRpb25UYWJJbmZvLCBoYXZpbmcgdHlwZSBUYWJiZWRBdXRoZW50aWNhdGlvblRhYkluZm9QcmVzTW9kZWxcclxuICBUYWJiZWRBdXRoZW50aWNhdGlvblRhYkluZm8gPSAndGFiYmVkQXV0aGVudGljYXRpb25UYWJJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1RhYmJlZEF1dGhlbnRpY2F0aW9uVGFiSW5mb3MsIGhhdmluZyB0eXBlIFRhYmJlZEF1dGhlbnRpY2F0aW9uVGFiSW5mb1ByZXNNb2RlbFtdXHJcbiAgVGFiYmVkQXV0aGVudGljYXRpb25UYWJJbmZvcyA9ICd0YWJiZWRBdXRoZW50aWNhdGlvblRhYkluZm9zJyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGUsIGhhdmluZyB0eXBlIEdlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVQcmVzTW9kZWxcclxuICBHZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlID0gJ2dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGUnLFxyXG5cclxuICAvLyBEUElfR2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZUxpc3QsIGhhdmluZyB0eXBlIEdlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVQcmVzTW9kZWxbXVxyXG4gIEdlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVMaXN0ID0gJ2dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hSZXN1bHRzLCBoYXZpbmcgdHlwZSBHZW9ncmFwaGljU2VhcmNoUHJlc01vZGVsXHJcbiAgR2VvZ3JhcGhpY1NlYXJjaFJlc3VsdHMgPSAnZ2VvZ3JhcGhpY1NlYXJjaFJlc3VsdHMnLFxyXG5cclxuICAvLyBEUElfUGFyYW1JbmZvLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJJbmZvUHJlc01vZGVsXHJcbiAgUGFyYW1JbmZvID0gJ3BhcmFtSW5mbycsXHJcblxyXG4gIC8vIERQSV9QYXJhbUluZm9zLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJJbmZvUHJlc01vZGVsW11cclxuICBQYXJhbUluZm9zID0gJ3BhcmFtSW5mb3MnLFxyXG5cclxuICAvLyBEUElfUGFyYW1OYW1lc3BhY2VJbmZvLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJOYW1lc3BhY2VJbmZvSW5mb1ByZXNNb2RlbFxyXG4gIFBhcmFtTmFtZXNwYWNlSW5mbyA9ICdwYXJhbU5hbWVzcGFjZUluZm8nLFxyXG5cclxuICAvLyBEUElfUGFyYW1OYW1lc3BhY2VJbmZvcywgaGF2aW5nIHR5cGUgUGFyYW1ldGVyTmFtZXNwYWNlSW5mb1ByZXNNb2RlbFtdXHJcbiAgUGFyYW1OYW1lc3BhY2VJbmZvcyA9ICdwYXJhbU5hbWVzcGFjZUluZm9zJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtUmVnaXN0cnlJbmZvLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJSZWdpc3RyeUluZm9QcmVzTW9kZWxcclxuICBQYXJhbVJlZ2lzdHJ5SW5mbyA9ICdwYXJhbVJlZ2lzdHJ5SW5mbycsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlUHJvcGVydGllcywgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZVByb3BlcnRpZXNQcmVzTW9kZWxcclxuICBEYXRhU291cmNlUHJvcGVydGllcyA9ICdjb25uZWN0aW9uUHJvcGVydGllcycsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uVHlwZVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblR5cGVQcmVzTW9kZWxcclxuICBDb25uZWN0aW9uVHlwZVByZXNNb2RlbCA9ICdjb25uZWN0aW9uVHlwZVByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uVHlwZXMsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25UeXBlUHJlc01vZGVsW11cclxuICBDb25uZWN0aW9uVHlwZXMgPSAnY29ubmVjdGlvblR5cGVzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25UeXBlR3JvdXBQcmVzTW9kZWwsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25UeXBlR3JvdXBQcmVzTW9kZWxcclxuICBDb25uZWN0aW9uVHlwZUdyb3VwUHJlc01vZGVsID0gJ2Nvbm5lY3Rpb25UeXBlR3JvdXBQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfU2F2ZWREYXRhU291cmNlUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTYXZlZERhdGFTb3VyY2VQcmVzTW9kZWxcclxuICBTYXZlZERhdGFTb3VyY2VQcmVzTW9kZWwgPSAnc2F2ZWREYXRhc291cmNlUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1NhdmVkRGF0YVNvdXJjZXMsIGhhdmluZyB0eXBlIFNhdmVkRGF0YVNvdXJjZVByZXNNb2RlbFtdXHJcbiAgU2F2ZWREYXRhU291cmNlcyA9ICdzYXZlZERhdGFzb3VyY2VzJyxcclxuXHJcbiAgLy8gRFBJX1NhdmVkRGF0YVNvdXJjZXNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFNhdmVkRGF0YVNvdXJjZXNQcmVzTW9kZWxcclxuICBTYXZlZERhdGFTb3VyY2VzUHJlc01vZGVsID0gJ3NhdmVkRGF0YXNvdXJjZXNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfT3BlblBhbmVJdGVtUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBPcGVuUGFuZUl0ZW1QcmVzTW9kZWxcclxuICBPcGVuUGFuZUl0ZW1QcmVzTW9kZWwgPSAnb3BlblBhbmVJdGVtUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX09wZW5QYW5lSXRlbXMsIGhhdmluZyB0eXBlIE9wZW5QYW5lSXRlbVByZXNNb2RlbFtdXHJcbiAgT3BlblBhbmVJdGVtcyA9ICdvcGVuUGFuZUl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX09wZW5QYW5lSXRlbXNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIE9wZW5QYW5lSXRlbXNQcmVzTW9kZWxcclxuICBPcGVuUGFuZUl0ZW1zUHJlc01vZGVsID0gJ29wZW5QYW5lSXRlbXNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfVmFyaWFibGVWYWx1ZSwgaGF2aW5nIHR5cGUgVmFyaWFibGVWYWx1ZVByZXNNb2RlbFxyXG4gIFZhcmlhYmxlVmFsdWUgPSAndmFyaWFibGVWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9WYXJpYWJsZVZhbHVlcywgaGF2aW5nIHR5cGUgVmFyaWFibGVWYWx1ZVByZXNNb2RlbFtdXHJcbiAgVmFyaWFibGVWYWx1ZXMgPSAndmFyaWFibGVWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfU2VydmVyVmFyaWFibGVWYWx1ZSwgaGF2aW5nIHR5cGUgU2VydmVyVmFyaWFibGVWYWx1ZVByZXNNb2RlbFxyXG4gIFNlcnZlclZhcmlhYmxlVmFsdWUgPSAnc2VydmVyVmFyaWFibGVWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9FZGl0YWJsZVZhcmlhYmxlVmFsdWUsIGhhdmluZyB0eXBlIEVkaXRhYmxlVmFyaWFibGVWYWx1ZVByZXNNb2RlbFxyXG4gIEVkaXRhYmxlVmFyaWFibGVWYWx1ZSA9ICdlZGl0YWJsZVZhcmlhYmxlVmFsdWUnLFxyXG5cclxuICAvLyBEUElfU2VydmVyVmFyaWFibGVNZXRhZGF0YSwgaGF2aW5nIHR5cGUgU2VydmVyVmFyaWFibGVNZXRhZGF0YVByZXNNb2RlbFxyXG4gIFNlcnZlclZhcmlhYmxlTWV0YWRhdGEgPSAnc2VydmVyVmFyaWFibGVNZXRhZGF0YScsXHJcblxyXG4gIC8vIERQSV9Qcm9tcHRWYXJpYWJsZSwgaGF2aW5nIHR5cGUgUHJvbXB0VmFyaWFibGVQcmVzTW9kZWxcclxuICBQcm9tcHRWYXJpYWJsZSA9ICdwcm9tcHRWYXJpYWJsZScsXHJcblxyXG4gIC8vIERQSV9Qcm9tcHRWYXJpYWJsZXMsIGhhdmluZyB0eXBlIFByb21wdFZhcmlhYmxlUHJlc01vZGVsW11cclxuICBQcm9tcHRWYXJpYWJsZXMgPSAncHJvbXB0VmFyaWFibGVzJyxcclxuXHJcbiAgLy8gRFBJX1ZhcmlhYmxlUHJvbXB0RGlhbG9nLCBoYXZpbmcgdHlwZSBWYXJpYWJsZVByb21wdERpYWxvZ1ByZXNNb2RlbFxyXG4gIFZhcmlhYmxlUHJvbXB0RGlhbG9nID0gJ3ZhcmlhYmxlUHJvbXB0RGlhbG9nJyxcclxuXHJcbiAgLy8gRFBJX1ZhcmlhYmxlVmFsdWVPcGVyYXRpb24sIGhhdmluZyB0eXBlIFZhcmlhYmxlVmFsdWVPcGVyYXRpb25QcmVzTW9kZWxcclxuICBWYXJpYWJsZVZhbHVlT3BlcmF0aW9uID0gJ3ZhcmlhYmxlVmFsdWVPcGVyYXRpb24nLFxyXG5cclxuICAvLyBEUElfVmFyaWFibGVWYWx1ZU9wZXJhdGlvbnMsIGhhdmluZyB0eXBlIFZhcmlhYmxlVmFsdWVPcGVyYXRpb25QcmVzTW9kZWxbXVxyXG4gIFZhcmlhYmxlVmFsdWVPcGVyYXRpb25zID0gJ3ZhcmlhYmxlVmFsdWVPcGVyYXRpb25zJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlT3B0aW9uc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVGFibGVPcHRpb25zUHJlc01vZGVsXHJcbiAgVGFibGVPcHRpb25zUHJlc01vZGVsID0gJ3RhYmxlT3B0aW9uc1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9DbGllbnRJbmZvUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBDbGllbnRJbmZvUHJlc01vZGVsXHJcbiAgQ2xpZW50SW5mb1ByZXNNb2RlbCA9ICdjbGllbnRJbmZvUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVGaWxlSW5mb1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVGFibGVhdUZpbGVJbmZvUHJlc01vZGVsXHJcbiAgVGFibGVhdUZpbGVJbmZvUHJlc01vZGVsID0gJ3RhYmxlYXVGaWxlSW5mb1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9EZWJ1Z2dpbmdJbmZvUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBEZWJ1Z2dpbmdJbmZvUHJlc01vZGVsXHJcbiAgRGVidWdnaW5nSW5mb1ByZXNNb2RlbCA9ICdkZWJ1Z2dpbmdJbmZvUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1J1bm5pbmdUaHJlYWRJbmZvUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBSdW5uaW5nVGhyZWFkSW5mb1ByZXNNb2RlbFxyXG4gIFJ1bm5pbmdUaHJlYWRJbmZvUHJlc01vZGVsID0gJ3J1bm5pbmdUaHJlYWRJbmZvUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0Fib3V0RGlhbG9nSW5mb1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQWJvdXREaWFsb2dJbmZvUHJlc01vZGVsXHJcbiAgQWJvdXREaWFsb2dJbmZvUHJlc01vZGVsID0gJ2Fib3V0RGlhbG9nSW5mb1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9IeWJyaWRVSVNob3djYXNlUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBIeWJyaWRVSVNob3djYXNlUHJlc01vZGVsXHJcbiAgSHlicmlkVUlTaG93Y2FzZVByZXNNb2RlbCA9ICdoeWJyaWRVaVNob3djYXNlUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX01lbnVDb25maWd1cmF0aW9uLCBoYXZpbmcgdHlwZSBNZW51Q29uZmlndXJhdGlvblByZXNNb2RlbFxyXG4gIE1lbnVDb25maWd1cmF0aW9uID0gJ21lbnVDb25maWd1cmF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX01lbnVJdGVtLCBoYXZpbmcgdHlwZSBNZW51SXRlbVByZXNNb2RlbFxyXG4gIE1lbnVJdGVtID0gJ21lbnVJdGVtJyxcclxuXHJcbiAgLy8gRFBJX01lbnVJdGVtTW9kZWxzLCBoYXZpbmcgdHlwZSBNZW51SXRlbVByZXNNb2RlbFtdXHJcbiAgTWVudUl0ZW1Nb2RlbHMgPSAnbWVudUl0ZW1Nb2RlbHMnLFxyXG5cclxuICAvLyBEUElfRGVmYXVsdFRleHRGb3JtYXQsIGhhdmluZyB0eXBlIERlZmF1bHRUZXh0Rm9ybWF0UHJlc01vZGVsXHJcbiAgRGVmYXVsdFRleHRGb3JtYXQgPSAnZGVmYXVsdFRleHRGb3JtYXQnLFxyXG5cclxuICAvLyBEUElfTWFwQm94U2VydmVySW5mb1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgTWFwQm94U2VydmVySW5mb1ByZXNNb2RlbFxyXG4gIE1hcEJveFNlcnZlckluZm9QcmVzTW9kZWwgPSAnbWFwYm94U2VydmVySW5mb1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9XTVNTZXJ2ZXJJbmZvUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBXTVNTZXJ2ZXJJbmZvUHJlc01vZGVsXHJcbiAgV01TU2VydmVySW5mb1ByZXNNb2RlbCA9ICd3bXNTZXJ2ZXJJbmZvUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX01hcFNvdXJjZUNvbmZsaWN0UHJlc01vZGVsLCBoYXZpbmcgdHlwZSBNYXBTb3VyY2VDb25mbGljdFByZXNNb2RlbFxyXG4gIE1hcFNvdXJjZUNvbmZsaWN0UHJlc01vZGVsID0gJ21hcFNvdXJjZUNvbmZsaWN0UHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0VudW1lcmF0ZWRTZXREaWFsb2dQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEVudW1lcmF0ZWRTZXREaWFsb2dQcmVzTW9kZWxcclxuICBFbnVtZXJhdGVkU2V0RGlhbG9nUHJlc01vZGVsID0gJ2VudW1lcmF0ZWRTZXREaWFsb2dQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRWRpdEFsaWFzZXNEaWFsb2csIGhhdmluZyB0eXBlIEVkaXRBbGlhc2VzRGlhbG9nUHJlc01vZGVsXHJcbiAgRWRpdEFsaWFzZXNEaWFsb2cgPSAnZWRpdEFsaWFzZXNEaWFsb2dQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQWxpYXNlc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQWxpYXNlc1ByZXNNb2RlbFxyXG4gIEFsaWFzZXNQcmVzTW9kZWwgPSAnYWxpYXNlc1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9DbGVhckFsaWFzZXNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEFsaWFzZXNQcmVzTW9kZWxcclxuICBDbGVhckFsaWFzZXNQcmVzTW9kZWwgPSAnY2xlYXJBbGlhc2VzUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX05ld0FsaWFzZXNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIE5ld0FsaWFzZXNQcmVzTW9kZWxcclxuICBOZXdBbGlhc2VzUHJlc01vZGVsID0gJ25ld0FsaWFzZXNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQWxpYXNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEFsaWFzUHJlc01vZGVsXHJcbiAgQWxpYXNQcmVzTW9kZWwgPSAnYWxpYXNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQWxpYXNJdGVtLCBoYXZpbmcgdHlwZSBBbGlhc0l0ZW1QcmVzTW9kZWxcclxuICBBbGlhc0l0ZW0gPSAnYWxpYXNJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0R1cGxpY2F0ZUFsaWFzSXRlbSwgaGF2aW5nIHR5cGUgQWxpYXNJdGVtUHJlc01vZGVsXHJcbiAgRHVwbGljYXRlQWxpYXNJdGVtID0gJ2R1cGxpY2F0ZUFsaWFzSXRlbScsXHJcblxyXG4gIC8vIERQSV9BbGlhc0xpc3QsIGhhdmluZyB0eXBlIEFsaWFzSXRlbVByZXNNb2RlbFtdXHJcbiAgQWxpYXNMaXN0ID0gJ2FsaWFzTGlzdCcsXHJcblxyXG4gIC8vIERQSV9BbGlhc1Jlc3VsdEl0ZW0sIGhhdmluZyB0eXBlIEFsaWFzUmVzdWx0SXRlbVByZXNNb2RlbFxyXG4gIEFsaWFzUmVzdWx0SXRlbSA9ICdhbGlhc1Jlc3VsdEl0ZW0nLFxyXG5cclxuICAvLyBEUElfQWxpYXNSZXN1bHRMaXN0LCBoYXZpbmcgdHlwZSBBbGlhc1Jlc3VsdEl0ZW1QcmVzTW9kZWxbXVxyXG4gIEFsaWFzUmVzdWx0TGlzdCA9ICdhbGlhc1Jlc3VsdExpc3QnLFxyXG5cclxuICAvLyBEUElfQWxpYXNSZXN1bHRzLCBoYXZpbmcgdHlwZSBBbGlhc1Jlc3VsdHNQcmVzTW9kZWxcclxuICBBbGlhc1Jlc3VsdHMgPSAnYWxpYXNSZXN1bHRzJyxcclxuXHJcbiAgLy8gRFBJX0VkaXRTZXREaWFsb2dQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEVkaXRTZXREaWFsb2dQcmVzTW9kZWxcclxuICBFZGl0U2V0RGlhbG9nUHJlc01vZGVsID0gJ2VkaXRTZXREaWFsb2dQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQ29uZmlybWF0aW9uUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBDb25maXJtYXRpb25QcmVzTW9kZWxcclxuICBDb25maXJtYXRpb25QcmVzTW9kZWwgPSAnY29uZmlybWF0aW9uUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX05vdGlmaWNhdGlvblByZXNNb2RlbCwgaGF2aW5nIHR5cGUgTm90aWZpY2F0aW9uUHJlc01vZGVsXHJcbiAgTm90aWZpY2F0aW9uUHJlc01vZGVsID0gJ25vdGlmaWNhdGlvblByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9SZXRhcmdldERhdGFTb3VyY2VEaWFsb2dQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFJldGFyZ2V0RGF0YVNvdXJjZURpYWxvZ1ByZXNNb2RlbFxyXG4gIFJldGFyZ2V0RGF0YVNvdXJjZURpYWxvZ1ByZXNNb2RlbCA9ICdyZXRhcmdldERhdGFzb3VyY2VEaWFsb2dQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfU2hhcmVkRmlsdGVyUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTaGFyZWRGaWx0ZXJQcmVzTW9kZWxcclxuICBTaGFyZWRGaWx0ZXJQcmVzTW9kZWwgPSAnc2hhcmVkRmlsdGVyUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1NoYXJlZEZpbHRlcldvcmtzaGVldEluZm8sIGhhdmluZyB0eXBlIFNoYXJlZEZpbHRlcldvcmtzaGVldEluZm9QcmVzTW9kZWxcclxuICBTaGFyZWRGaWx0ZXJXb3Jrc2hlZXRJbmZvID0gJ3NoYXJlZEZpbHRlcldvcmtzaGVldEluZm8nLFxyXG5cclxuICAvLyBEUElfU2hhcmVkRmlsdGVyV29ya3NoZWV0SW5mb0xpc3QsIGhhdmluZyB0eXBlIFNoYXJlZEZpbHRlcldvcmtzaGVldEluZm9QcmVzTW9kZWxbXVxyXG4gIFNoYXJlZEZpbHRlcldvcmtzaGVldEluZm9MaXN0ID0gJ3NoYXJlZEZpbHRlcldvcmtzaGVldEluZm9MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkUGlja2VyVHJlZVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRmllbGRQaWNrZXJUcmVlUHJlc01vZGVsXHJcbiAgRmllbGRQaWNrZXJUcmVlUHJlc01vZGVsID0gJ2ZpZWxkUGlja2VyVHJlZVByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9GaWVsZFBpY2tlclRyZWVQcmVzTW9kZWxTb3VyY2UsIGhhdmluZyB0eXBlIEZpZWxkUGlja2VyVHJlZVByZXNNb2RlbFxyXG4gIEZpZWxkUGlja2VyVHJlZVByZXNNb2RlbFNvdXJjZSA9ICdmaWVsZFBpY2tlclRyZWVQcmVzTW9kZWxTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfRmllbGRQaWNrZXJUcmVlUHJlc01vZGVsVGFyZ2V0LCBoYXZpbmcgdHlwZSBGaWVsZFBpY2tlclRyZWVQcmVzTW9kZWxcclxuICBGaWVsZFBpY2tlclRyZWVQcmVzTW9kZWxUYXJnZXQgPSAnZmllbGRQaWNrZXJUcmVlUHJlc01vZGVsVGFyZ2V0JyxcclxuXHJcbiAgLy8gRFBJX0Vycm9ySW5mbywgaGF2aW5nIHR5cGUgRXJyb3JJbmZvUHJlc01vZGVsXHJcbiAgRXJyb3JJbmZvID0gJ2Vycm9ySW5mb1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9DdXN0b21TcGxpdFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQ3VzdG9tU3BsaXRQcmVzTW9kZWxcclxuICBDdXN0b21TcGxpdFByZXNNb2RlbCA9ICdjdXN0b21TcGxpdFByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9QYWdlU2V0dXAsIGhhdmluZyB0eXBlIFBhZ2VTZXR1cFByZXNNb2RlbFxyXG4gIFBhZ2VTZXR1cCA9ICdwYWdlU2V0dXAnLFxyXG5cclxuICAvLyBEUElfU2VydmVyQ29ubmVjdFN0YXR1cywgaGF2aW5nIHR5cGUgU2VydmVyQ29ubmVjdGlvblN0YXR1c1xyXG4gIFNlcnZlckNvbm5lY3RTdGF0dXMgPSAnc2VydmVyQ29ubmVjdGlvblN0YXR1cycsXHJcblxyXG4gIC8vIERQSV9HZXRGaWx0ZXJJdGVtc1Jlc3BvbnNlLCBoYXZpbmcgdHlwZSBHZXRGaWx0ZXJJdGVtc1Jlc3BvbnNlUHJlc01vZGVsXHJcbiAgR2V0RmlsdGVySXRlbXNSZXNwb25zZSA9ICdnZXRGaWx0ZXJJdGVtc1Jlc3BvbnNlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNlYXJjaFJlc3BvbnNlLCBoYXZpbmcgdHlwZSBGaWx0ZXJTZWFyY2hSZXNwb25zZVByZXNNb2RlbFxyXG4gIEZpbHRlclNlYXJjaFJlc3BvbnNlID0gJ2ZpbHRlclNlYXJjaFJlc3BvbnNlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNlYXJjaFdpdGhJbmRleFJlc3BvbnNlLCBoYXZpbmcgdHlwZSBGaWx0ZXJTZWFyY2hXaXRoSW5kZXhSZXNwb25zZVByZXNNb2RlbFxyXG4gIEZpbHRlclNlYXJjaFdpdGhJbmRleFJlc3BvbnNlID0gJ2ZpbHRlclNlYXJjaFdpdGhJbmRleFJlc3BvbnNlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNob3dDaGlsZHJlblJlc3BvbnNlLCBoYXZpbmcgdHlwZSBGaWx0ZXJTaG93Q2hpbGRyZW5SZXNwb25zZVByZXNNb2RlbFxyXG4gIEZpbHRlclNob3dDaGlsZHJlblJlc3BvbnNlID0gJ2ZpbHRlclNob3dDaGlsZHJlblJlc3BvbnNlJyxcclxuXHJcbiAgLy8gRFBJX0VkaXREYXRhU2VydmVyQ29ubmVjdGlvbiwgaGF2aW5nIHR5cGUgRWRpdERhdGFTZXJ2ZXJDb25uZWN0aW9uUHJlc01vZGVsXHJcbiAgRWRpdERhdGFTZXJ2ZXJDb25uZWN0aW9uID0gJ2VkaXREYXRhU2VydmVyQ29ubmVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9JbWFnZXNFZGl0LCBoYXZpbmcgdHlwZSBJbWFnZXNFZGl0UHJlc01vZGVsXHJcbiAgSW1hZ2VzRWRpdCA9ICdpbWFnZXNFZGl0JyxcclxuXHJcbiAgLy8gRFBJX0JhY2tncm91bmRJbWFnZSwgaGF2aW5nIHR5cGUgQmFja2dyb3VuZEltYWdlUHJlc01vZGVsXHJcbiAgQmFja2dyb3VuZEltYWdlID0gJ2JhY2tncm91bmRJbWFnZScsXHJcblxyXG4gIC8vIERQSV9CYWNrZ3JvdW5kSW1hZ2VzLCBoYXZpbmcgdHlwZSBCYWNrZ3JvdW5kSW1hZ2VQcmVzTW9kZWxbXVxyXG4gIEJhY2tncm91bmRJbWFnZXMgPSAnYmFja2dyb3VuZEltYWdlcycsXHJcblxyXG4gIC8vIERQSV9QcmVkaWNhdGUsIGhhdmluZyB0eXBlIFByZWRpY2F0ZVByZXNNb2RlbFxyXG4gIFByZWRpY2F0ZSA9ICdwcmVkaWNhdGUnLFxyXG5cclxuICAvLyBEUElfUHJlZGljYXRlcywgaGF2aW5nIHR5cGUgUHJlZGljYXRlUHJlc01vZGVsW11cclxuICBQcmVkaWNhdGVzID0gJ3ByZWRpY2F0ZXMnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VzRWRpdFJlc3VsdCwgaGF2aW5nIHR5cGUgSW1hZ2VzRWRpdFJlc3VsdFByZXNNb2RlbFxyXG4gIEltYWdlc0VkaXRSZXN1bHQgPSAnaW1hZ2VzRWRpdFJlc3VsdCcsXHJcblxyXG4gIC8vIERQSV9Tb3J0RGlhbG9nUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTb3J0RGlhbG9nUHJlc01vZGVsXHJcbiAgU29ydERpYWxvZ1ByZXNNb2RlbCA9ICdzb3J0RGlhbG9nUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0NvbXBvdW5kVGFibGVDYWxjLCBoYXZpbmcgdHlwZSBDb21wb3VuZFRhYmxlQ2FsY3VsYXRpb25QcmVzTW9kZWxcclxuICBDb21wb3VuZFRhYmxlQ2FsYyA9ICdjb21wb3VuZFRhYmxlQ2FsY3VsYXRpb25QcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfVGFibGVDYWxjLCBoYXZpbmcgdHlwZSBUYWJsZUNhbGN1bGF0aW9uUHJlc01vZGVsXHJcbiAgVGFibGVDYWxjID0gJ3RhYmxlQ2FsY3VsYXRpb25QcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfVGFibGVDYWxjcywgaGF2aW5nIHR5cGUgVGFibGVDYWxjdWxhdGlvblByZXNNb2RlbFtdXHJcbiAgVGFibGVDYWxjcyA9ICd0YWJsZUNhbGN1bGF0aW9uUHJlc01vZGVscycsXHJcblxyXG4gIC8vIERQSV9UYWJsZUNhbGNJZGVudGlmaWVyLCBoYXZpbmcgdHlwZSBUYWJsZUNhbGNJZGVudGlmaWVyUHJlc01vZGVsXHJcbiAgVGFibGVDYWxjSWRlbnRpZmllciA9ICd0YWJsZUNhbGNJZGVudGlmaWVyJyxcclxuXHJcbiAgLy8gRFBJX05lc3RlZFRhYmxlQ2FsY0luZm8sIGhhdmluZyB0eXBlIE5lc3RlZFRhYmxlQ2FsY0luZm9QcmVzTW9kZWxcclxuICBOZXN0ZWRUYWJsZUNhbGNJbmZvID0gJ25lc3RlZFRhYmxlQ2FsY0luZm8nLFxyXG5cclxuICAvLyBEUElfTmVzdGVkVGFibGVDYWxjSW5mb3MsIGhhdmluZyB0eXBlIE5lc3RlZFRhYmxlQ2FsY0luZm9QcmVzTW9kZWxbXVxyXG4gIE5lc3RlZFRhYmxlQ2FsY0luZm9zID0gJ25lc3RlZFRhYmxlQ2FsY0luZm9zJyxcclxuXHJcbiAgLy8gRFBJX09yZGVyaW5nLCBoYXZpbmcgdHlwZSBUYWJsZUNhbGNPcmRlcmluZ1ByZXNNb2RlbFxyXG4gIE9yZGVyaW5nID0gJ3RhYmxlQ2FsY09yZGVyaW5nUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0N1bXVsYXRpdmUsIGhhdmluZyB0eXBlIEN1bXVsYXRpdmVUYWJsZUNhbGNQcmVzTW9kZWxcclxuICBDdW11bGF0aXZlID0gJ2N1bXVsYXRpdmVUYWJsZUNhbGNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlT3B0aW9ucywgaGF2aW5nIHR5cGUgVGFibGVDYWxjUmVmZXJlbmNlT3B0aW9uc1ByZXNNb2RlbFxyXG4gIFJlZmVyZW5jZU9wdGlvbnMgPSAndGFibGVDYWxjUmVmZXJlbmNlT3B0aW9uc1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9EaWZmZXJlbmNlLCBoYXZpbmcgdHlwZSBEaWZmZXJlbmNlVGFibGVDYWxjUHJlc01vZGVsXHJcbiAgRGlmZmVyZW5jZSA9ICdkaWZmZXJlbmNlVGFibGVDYWxjUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1dpbmRvdywgaGF2aW5nIHR5cGUgV2luZG93VGFibGVDYWxjUHJlc01vZGVsXHJcbiAgV2luZG93ID0gJ3dpbmRvd1RhYmxlQ2FsY1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9QZXJjZW50VG90YWwsIGhhdmluZyB0eXBlIFBlcmNlbnRUb3RhbFRhYmxlQ2FsY1ByZXNNb2RlbFxyXG4gIFBlcmNlbnRUb3RhbCA9ICdwZXJjZW50VG90YWxUYWJsZUNhbGNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUmFuaywgaGF2aW5nIHR5cGUgUmFua1RhYmxlQ2FsY1ByZXNNb2RlbFxyXG4gIFJhbmsgPSAncmFua1RhYmxlQ2FsY1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9DdXN0b20sIGhhdmluZyB0eXBlIEN1c3RvbVRhYmxlQ2FsY1ByZXNNb2RlbFxyXG4gIEN1c3RvbSA9ICdjdXN0b21UYWJsZUNhbGNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfV2ViRGF0YVVybCwgaGF2aW5nIHR5cGUgV2ViRGF0YVVybFByZXNNb2RlbFxyXG4gIFdlYkRhdGFVcmwgPSAnd2ViRGF0YVVybCcsXHJcblxyXG4gIC8vIERQSV9WaXNpdGVkV2ViRGF0YUNvbm5lY3RvcnMsIGhhdmluZyB0eXBlIFdlYkRhdGFVcmxQcmVzTW9kZWxbXVxyXG4gIFZpc2l0ZWRXZWJEYXRhQ29ubmVjdG9ycyA9ICd2aXNpdGVkV2ViRGF0YUNvbm5lY3RvcnMnLFxyXG5cclxuICAvLyBEUElfV2ViRGF0YVNlc3Npb25VcmxzLCBoYXZpbmcgdHlwZSBXZWJEYXRhVXJsUHJlc01vZGVsW11cclxuICBXZWJEYXRhU2Vzc2lvblVybHMgPSAnd2ViRGF0YVNlc3Npb25VcmxzJyxcclxuXHJcbiAgLy8gRFBJX1dlYkRhdGFVcmxzLCBoYXZpbmcgdHlwZSBXZWJEYXRhVXJsUHJlc01vZGVsW11cclxuICBXZWJEYXRhVXJscyA9ICd3ZWJEYXRhVXJscycsXHJcblxyXG4gIC8vIERQSV9GaWVsZFBpY2tlciwgaGF2aW5nIHR5cGUgRmllbGRQaWNrZXJQcmVzTW9kZWxcclxuICBGaWVsZFBpY2tlciA9ICdmaWVsZFBpY2tlcicsXHJcblxyXG4gIC8vIERQSV9EZXNjcmliZUZpZWxkLCBoYXZpbmcgdHlwZSBEZXNjcmliZUZpZWxkUHJlc01vZGVsXHJcbiAgRGVzY3JpYmVGaWVsZCA9ICdkZXNjcmliZUZpZWxkJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dEYXRhUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTaG93RGF0YVByZXNNb2RlbFxyXG4gIFNob3dEYXRhUHJlc01vZGVsID0gJ3Nob3dEYXRhUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFUYWJsZVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU2hvd0RhdGFUYWJsZVByZXNNb2RlbFxyXG4gIERhdGFUYWJsZVByZXNNb2RlbCA9ICdkYXRhVGFibGVQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRGF0YVRhYmxlUHJlc01vZGVscywgaGF2aW5nIHR5cGUgU2hvd0RhdGFUYWJsZVByZXNNb2RlbFtdXHJcbiAgRGF0YVRhYmxlUHJlc01vZGVscyA9ICdkYXRhVGFibGVQcmVzTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX1N1bW1hcnlUYWJsZVByZXNNb2RlbHMsIGhhdmluZyB0eXBlIFNob3dEYXRhVGFibGVQcmVzTW9kZWxbXVxyXG4gIFN1bW1hcnlUYWJsZVByZXNNb2RlbHMgPSAnc3VtbWFyeVRhYmxlUHJlc01vZGVscycsXHJcblxyXG4gIC8vIERQSV9SZWZyZXNoQWxsRXh0cmFjdHNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFJlZnJlc2hBbGxFeHRyYWN0c1ByZXNNb2RlbFxyXG4gIFJlZnJlc2hBbGxFeHRyYWN0c1ByZXNNb2RlbCA9ICdyZWZlc2hBbGxFeHRyYWN0c1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9SZWZyZXNoRXh0cmFjdERhdGFTb3VyY2VQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFJlZnJlc2hFeHRyYWN0RGF0YVNvdXJjZVByZXNNb2RlbFxyXG4gIFJlZnJlc2hFeHRyYWN0RGF0YVNvdXJjZVByZXNNb2RlbCA9ICdyZWZyZXNoRXh0cmFjdERhdGFzb3VyY2VQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUmVmcmVzaEV4dHJhY3REYXRhU291cmNlTGlzdCwgaGF2aW5nIHR5cGUgUmVmcmVzaEV4dHJhY3REYXRhU291cmNlUHJlc01vZGVsW11cclxuICBSZWZyZXNoRXh0cmFjdERhdGFTb3VyY2VMaXN0ID0gJ3JlZnJlc2hFeHRyYWN0RGF0YXNvdXJjZUxpc3QnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdEhpc3RvcnlQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEV4dHJhY3RIaXN0b3J5UHJlc01vZGVsXHJcbiAgRXh0cmFjdEhpc3RvcnlQcmVzTW9kZWwgPSAnZXh0cmFjdEhpc3RvcnlQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdEhpc3RvcnlJdGVtUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBFeHRyYWN0SGlzdG9yeUl0ZW1QcmVzTW9kZWxcclxuICBFeHRyYWN0SGlzdG9yeUl0ZW1QcmVzTW9kZWwgPSAnZXh0cmFjdEhpc3RvcnlJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0V4dHJhY3RIaXN0b3J5TGlzdCwgaGF2aW5nIHR5cGUgRXh0cmFjdEhpc3RvcnlJdGVtUHJlc01vZGVsW11cclxuICBFeHRyYWN0SGlzdG9yeUxpc3QgPSAnZXh0cmFjdEhpc3RvcnlMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFQcm92aWRlclByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRGF0YVByb3ZpZGVyUHJlc01vZGVsXHJcbiAgRGF0YVByb3ZpZGVyUHJlc01vZGVsID0gJ2RhdGFQcm92aWRlclByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXRJdGVtLCBoYXZpbmcgdHlwZSBGb3JtYXRJdGVtUHJlc01vZGVsXHJcbiAgRm9ybWF0SXRlbSA9ICdmb3JtYXRJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdEl0ZW1MaXN0LCBoYXZpbmcgdHlwZSBGb3JtYXRJdGVtUHJlc01vZGVsW11cclxuICBGb3JtYXRJdGVtTGlzdCA9ICdmb3JtYXRJdGVtTGlzdCcsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXRDb250YWluZXIsIGhhdmluZyB0eXBlIEZvcm1hdENvbnRhaW5lclByZXNNb2RlbFxyXG4gIEZvcm1hdENvbnRhaW5lciA9ICdmb3JtYXRDb250YWluZXInLFxyXG5cclxuICAvLyBEUElfRm9ybWF0UGFuZSwgaGF2aW5nIHR5cGUgRm9ybWF0UGFuZVByZXNNb2RlbFxyXG4gIEZvcm1hdFBhbmUgPSAnZm9ybWF0UGFuZScsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXRTZWN0aW9uLCBoYXZpbmcgdHlwZSBGb3JtYXRTZWN0aW9uUHJlc01vZGVsXHJcbiAgRm9ybWF0U2VjdGlvbiA9ICdmb3JtYXRTZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0NvbGxhcHNpYmxlU2VjdGlvbiwgaGF2aW5nIHR5cGUgQ29sbGFwc2libGVTZWN0aW9uUHJlc01vZGVsXHJcbiAgQ29sbGFwc2libGVTZWN0aW9uID0gJ2NvbGxhcHNpYmxlU2VjdGlvbicsXHJcblxyXG4gIC8vIERQSV9Db21wb3NpdGVDb250YWluZXIsIGhhdmluZyB0eXBlIENvbXBvc2l0ZUNvbnRhaW5lclByZXNNb2RlbFxyXG4gIENvbXBvc2l0ZUNvbnRhaW5lciA9ICdjb21wb3NpdGVDb250YWluZXInLFxyXG5cclxuICAvLyBEUElfVW5pdENvbnRhaW5lciwgaGF2aW5nIHR5cGUgVW5pdENvbnRhaW5lclByZXNNb2RlbFxyXG4gIFVuaXRDb250YWluZXIgPSAndW5pdENvbnRhaW5lcicsXHJcblxyXG4gIC8vIERQSV9UYWJHcm91cCwgaGF2aW5nIHR5cGUgVGFiR3JvdXBQcmVzTW9kZWxcclxuICBUYWJHcm91cCA9ICd0YWJHcm91cCcsXHJcblxyXG4gIC8vIERQSV9UYWIsIGhhdmluZyB0eXBlIFRhYlByZXNNb2RlbFxyXG4gIFRhYiA9ICd0YWInLFxyXG5cclxuICAvLyBEUElfRm9ybWF0Q29udHJvbCwgaGF2aW5nIHR5cGUgRm9ybWF0Q29udHJvbFByZXNNb2RlbFxyXG4gIEZvcm1hdENvbnRyb2wgPSAnZm9ybWF0Q29udHJvbCcsXHJcblxyXG4gIC8vIERQSV9UZXh0Q29udHJvbCwgaGF2aW5nIHR5cGUgVGV4dENvbnRyb2xQcmVzTW9kZWxcclxuICBUZXh0Q29udHJvbCA9ICd0ZXh0Q29udHJvbCcsXHJcblxyXG4gIC8vIERQSV9OdW1lcmljQ29udHJvbCwgaGF2aW5nIHR5cGUgTnVtZXJpY0NvbnRyb2xQcmVzTW9kZWxcclxuICBOdW1lcmljQ29udHJvbCA9ICdudW1lcmljQ29udHJvbCcsXHJcblxyXG4gIC8vIERQSV9Db2xvckNvbnRyb2wsIGhhdmluZyB0eXBlIENvbG9yQ29udHJvbFByZXNNb2RlbFxyXG4gIENvbG9yQ29udHJvbCA9ICdjb2xvckNvbnRyb2wnLFxyXG5cclxuICAvLyBEUElfVG9nZ2xlQ29udHJvbCwgaGF2aW5nIHR5cGUgVG9nZ2xlQ29udHJvbFByZXNNb2RlbFxyXG4gIFRvZ2dsZUNvbnRyb2wgPSAndG9nZ2xlQ29udHJvbCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RvckNvbnRyb2wsIGhhdmluZyB0eXBlIFNlbGVjdG9yQ29udHJvbFByZXNNb2RlbFxyXG4gIFNlbGVjdG9yQ29udHJvbCA9ICdlbnVtU3RyaW5nU3R5bGUnLFxyXG5cclxuICAvLyBEUElfU3RhdHNBbmFseXRpY1NwZWMsIGhhdmluZyB0eXBlIFN0YXRzQW5hbHl0aWNTcGVjUHJlc01vZGVsXHJcbiAgU3RhdHNBbmFseXRpY1NwZWMgPSAnc3RhdHNBbmFseXRpY1NwZWMnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlclNwZWMsIGhhdmluZyB0eXBlIENsdXN0ZXJTcGVjUHJlc01vZGVsXHJcbiAgQ2x1c3RlclNwZWMgPSAnY2x1c3RlcmluZ1NwZWMnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlclJlc3VsdHMsIGhhdmluZyB0eXBlIENsdXN0ZXJSZXN1bHRzUHJlc01vZGVsXHJcbiAgQ2x1c3RlclJlc3VsdHMgPSAnY2x1c3RlclJlc3VsdHMnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlclVuaXQsIGhhdmluZyB0eXBlIENsdXN0ZXJVbml0UHJlc01vZGVsXHJcbiAgQ2x1c3RlclVuaXQgPSAnY2x1c3RlcicsXHJcblxyXG4gIC8vIERQSV9DbHVzdGVyVW5pdHMsIGhhdmluZyB0eXBlIENsdXN0ZXJVbml0UHJlc01vZGVsW11cclxuICBDbHVzdGVyVW5pdHMgPSAnY2x1c3RlclVuaXRQcmVzTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX0NsdXN0ZXJGaWVsZEFOT1ZBLCBoYXZpbmcgdHlwZSBDbHVzdGVyRmllbGRBTk9WQVByZXNNb2RlbFxyXG4gIENsdXN0ZXJGaWVsZEFOT1ZBID0gJ2NsdXN0ZXJGaWVsZEFub3ZhJyxcclxuXHJcbiAgLy8gRFBJX0NsdXN0ZXJGaWVsZEFOT1ZBVGFibGUsIGhhdmluZyB0eXBlIENsdXN0ZXJGaWVsZEFOT1ZBUHJlc01vZGVsW11cclxuICBDbHVzdGVyRmllbGRBTk9WQVRhYmxlID0gJ2NsdXN0ZXJGaWVsZEFub3ZhVGFibGVQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlckVkaXQsIGhhdmluZyB0eXBlIENsdXN0ZXJFZGl0UHJlc01vZGVsXHJcbiAgQ2x1c3RlckVkaXQgPSAnY2x1c3RlckVkaXRQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlckRlc2NyaXB0aW9uLCBoYXZpbmcgdHlwZSBDbHVzdGVyRGVzY3JpYmVQcmVzTW9kZWxcclxuICBDbHVzdGVyRGVzY3JpcHRpb24gPSAnY2x1c3RlckRlc2NyaXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX091dGxpZXJSZXN1bHRzLCBoYXZpbmcgdHlwZSBPdXRsaWVyUmVzdWx0c1ByZXNNb2RlbFxyXG4gIE91dGxpZXJSZXN1bHRzID0gJ291dGxpZXJSZXN1bHRzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3RUb0RhdGFTZXJ2ZXJTb3VyY2VSZXN1bHQsIGhhdmluZyB0eXBlIENvbm5lY3RUb0RhdGFTZXJ2ZXJTb3VyY2VSZXN1bHRQcmVzTW9kZWxcclxuICBDb25uZWN0VG9EYXRhU2VydmVyU291cmNlUmVzdWx0ID0gJ2Nvbm5lY3RUb0RhdGFTZXJ2ZXJTb3VyY2VSZXN1bHQnLFxyXG5cclxuICAvLyBEUElfRGF0YVNlcnZlckNvbm5lY3Rpb25SZXR1cm5TdGF0dXMsIGhhdmluZyB0eXBlIENvbm5lY3RUb0RhdGFTZXJ2ZXJTb3VyY2VSZXN1bHRQcmVzTW9kZWxcclxuICBEYXRhU2VydmVyQ29ubmVjdGlvblJldHVyblN0YXR1cyA9ICdkYXRhU2VydmVyQ29ubmVjdGlvblJldHVyblN0YXR1cycsXHJcblxyXG4gIC8vIERQSV9XZWJRdWFudGl0YXRpdmVDb2xvckRpYWxvZywgaGF2aW5nIHR5cGUgV2ViUXVhbnRpdGF0aXZlQ29sb3JEaWFsb2dQcmVzTW9kZWxcclxuICBXZWJRdWFudGl0YXRpdmVDb2xvckRpYWxvZyA9ICdxdWFudGl0YXRpdmVDb2xvckRpYWxvZycsXHJcblxyXG4gIC8vIERQSV9XZWJDYXRlZ29yaWNhbENvbG9yRGlhbG9nLCBoYXZpbmcgdHlwZSBXZWJDYXRlZ29yaWNhbENvbG9yRGlhbG9nUHJlc01vZGVsXHJcbiAgV2ViQ2F0ZWdvcmljYWxDb2xvckRpYWxvZyA9ICdjYXRlZ29yaWNhbENvbG9yRGlhbG9nJyxcclxuXHJcbiAgLy8gRFBJX1dlYlNhdmVEYXRhc291cmNlRGlhbG9nLCBoYXZpbmcgdHlwZSBXZWJTYXZlRGF0YXNvdXJjZURpYWxvZ1ByZXNNb2RlbFxyXG4gIFdlYlNhdmVEYXRhc291cmNlRGlhbG9nID0gJ3NhdmVEYXRhc291cmNlRGlhbG9nJyxcclxuXHJcbiAgLy8gRFBJX0JvcmRlclN0eWxlU3BlYywgaGF2aW5nIHR5cGUgU3R5bGVTcGVjUHJlc01vZGVsXHJcbiAgQm9yZGVyU3R5bGVTcGVjID0gJ2JvcmRlclN0eWxlU3BlYycsXHJcblxyXG4gIC8vIERQSV9IYWxvU3R5bGVTcGVjLCBoYXZpbmcgdHlwZSBTdHlsZVNwZWNQcmVzTW9kZWxcclxuICBIYWxvU3R5bGVTcGVjID0gJ2hhbG9TdHlsZVNwZWMnLFxyXG5cclxuICAvLyBEUElfTWFya3NDb2xvclViZXJFZmZlY3RzLCBoYXZpbmcgdHlwZSBNYXJrc0NvbG9yVWJlckVmZmVjdHNQcmVzTW9kZWxcclxuICBNYXJrc0NvbG9yVWJlckVmZmVjdHMgPSAnbWFya3NDb2xvclViZXJFZmZlY3RzJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsQ29sb3JFbmNvZGluZywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxDb2xvckVuY29kaW5nUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxDb2xvckVuY29kaW5nID0gJ2NhdGVnb3JpY2FsQ29sb3JFbmNvZGluZycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbFNoYXBlRW5jb2RpbmcsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsU2hhcGVFbmNvZGluZ1ByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsU2hhcGVFbmNvZGluZyA9ICdjYXRlZ29yaWNhbFNoYXBlRW5jb2RpbmcnLFxyXG5cclxuICAvLyBEUElfU2hhcGVQYWxldHRlUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTaGFwZVBhbGV0dGVQcmVzTW9kZWxcclxuICBTaGFwZVBhbGV0dGVQcmVzTW9kZWwgPSAnc2hhcGVQYWxldHRlUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1NoYXBlUGFsZXR0ZVByZXNNb2RlbHMsIGhhdmluZyB0eXBlIFNoYXBlUGFsZXR0ZVByZXNNb2RlbFtdXHJcbiAgU2hhcGVQYWxldHRlUHJlc01vZGVscyA9ICdzaGFwZVBhbGV0dGVQcmVzTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VEYXRlUHJvcGVydGllcywgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZURhdGVQcm9wZXJ0aWVzUHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZURhdGVQcm9wZXJ0aWVzID0gJ2RhdGFzb3VyY2VEYXRlUHJvcGVydGllcycsXHJcblxyXG4gIC8vIERQSV9EYXRlUHJvcGVydGllc0RhdGVGb3JtYXQsIGhhdmluZyB0eXBlIERhdGVQcm9wZXJ0aWVzRGF0ZUZvcm1hdFByZXNNb2RlbFxyXG4gIERhdGVQcm9wZXJ0aWVzRGF0ZUZvcm1hdCA9ICdkYXRlUHJvcGVydGllc0RhdGVGb3JtYXQnLFxyXG5cclxuICAvLyBEUElfRGF0ZVByb3BlcnRpZXNEYXRlRm9ybWF0cywgaGF2aW5nIHR5cGUgRGF0ZVByb3BlcnRpZXNEYXRlRm9ybWF0UHJlc01vZGVsW11cclxuICBEYXRlUHJvcGVydGllc0RhdGVGb3JtYXRzID0gJ2RhdGVQcm9wZXJ0aWVzRGF0ZUZvcm1hdHMnLFxyXG5cclxuICAvLyBEUElfSGllcmFyY2h5U2VsZWN0LCBoYXZpbmcgdHlwZSBIaWVyYXJjaHlTZWxlY3RNb2RlbFxyXG4gIEhpZXJhcmNoeVNlbGVjdCA9ICdoaWVyYXJjaHlTZWxlY3QnLFxyXG5cclxuICAvLyBEUElfSGllcmFyY2h5U2VsZWN0TWVtYmVyLCBoYXZpbmcgdHlwZSBIaWVyYXJjaHlTZWxlY3RNZW1iZXJQcmVzTW9kZWxcclxuICBIaWVyYXJjaHlTZWxlY3RNZW1iZXIgPSAnaGllcmFyY2h5U2VsZWN0TWVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeVNlbGVjdE1lbWJlckxpc3QsIGhhdmluZyB0eXBlIEhpZXJhcmNoeVNlbGVjdE1lbWJlclByZXNNb2RlbFtdXHJcbiAgSGllcmFyY2h5U2VsZWN0TWVtYmVyTGlzdCA9ICdoaWVyYXJjaHlTZWxlY3RNZW1iZXJMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeVNldERlZmF1bHRNZW1iZXIsIGhhdmluZyB0eXBlIEhpZXJhcmNoeVNldERlZmF1bHRNZW1iZXJQcmVzTW9kZWxcclxuICBIaWVyYXJjaHlTZXREZWZhdWx0TWVtYmVyID0gJ2hpZXJhcmNoeVNldERlZmF1bHRNZW1iZXInLFxyXG5cclxuICAvLyBEUElfU2VtaVN0cnVjdFNjaGVtYSwgaGF2aW5nIHR5cGUgU2VtaVN0cnVjdFNjaGVtYVByZXNNb2RlbFxyXG4gIFNlbWlTdHJ1Y3RTY2hlbWEgPSAnc2VtaVN0cnVjdFNjaGVtYScsXHJcblxyXG4gIC8vIERQSV9TZW1pU3RydWN0U2NoZW1hTWVtYmVyLCBoYXZpbmcgdHlwZSBTZW1pU3RydWN0U2NoZW1hTWVtYmVyUHJlc01vZGVsXHJcbiAgU2VtaVN0cnVjdFNjaGVtYU1lbWJlciA9ICdzZW1pU3RydWN0U2NoZW1hTWVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX1NlbWlTdHJ1Y3RTY2hlbWFNZW1iZXJMaXN0LCBoYXZpbmcgdHlwZSBTZW1pU3RydWN0U2NoZW1hTWVtYmVyUHJlc01vZGVsW11cclxuICBTZW1pU3RydWN0U2NoZW1hTWVtYmVyTGlzdCA9ICdzZW1pU3RydWN0U2NoZW1hTWVtYmVyTGlzdCcsXHJcblxyXG4gIC8vIERQSV9QYXJhbWV0ZXJFZGl0SW5mbywgaGF2aW5nIHR5cGUgUGFyYW1ldGVyRWRpdEluZm9QcmVzTW9kZWxcclxuICBQYXJhbWV0ZXJFZGl0SW5mbyA9ICdwYXJhbWV0ZXJFZGl0SW5mbycsXHJcblxyXG4gIC8vIERQSV9Qcm9kdWN0UGFyYW1ldGVySW5mbywgaGF2aW5nIHR5cGUgUHJvZHVjdFBhcmFtZXRlckluZm9QcmVzTW9kZWxcclxuICBQcm9kdWN0UGFyYW1ldGVySW5mbyA9ICdwcm9kdWN0UGFyYW1ldGVySW5mbycsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWREYXRhc291cmNlRmllbGQsIGhhdmluZyB0eXBlIENhcHRpb25lZERhdGFzb3VyY2VJbmZvUHJlc01vZGVsXHJcbiAgQ2FwdGlvbmVkRGF0YXNvdXJjZUZpZWxkID0gJ2NhcHRpb25lZERhdGFzb3VyY2VGaWVsZCcsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWREYXRhc291cmNlRmllbGRzLCBoYXZpbmcgdHlwZSBDYXB0aW9uZWREYXRhc291cmNlSW5mb1ByZXNNb2RlbFtdXHJcbiAgQ2FwdGlvbmVkRGF0YXNvdXJjZUZpZWxkcyA9ICdjYXB0aW9uZWREYXRhc291cmNlRmllbGRzJyxcclxuXHJcbiAgLy8gRFBJX0VkaXRlZFBhcmFtZXRlclJhbmdlRG9tYWluLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJSYW5nZURvbWFpblByZXNNb2RlbFxyXG4gIEVkaXRlZFBhcmFtZXRlclJhbmdlRG9tYWluID0gJ2VkaXRlZFBhcmFtZXRlclJhbmdlRG9tYWluJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlclJhbmdlRG9tYWluLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJSYW5nZURvbWFpblByZXNNb2RlbFxyXG4gIFBhcmFtZXRlclJhbmdlRG9tYWluID0gJ3BhcmFtZXRlclJhbmdlRG9tYWluJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlckxpc3REb21haW4sIGhhdmluZyB0eXBlIFBhcmFtZXRlckxpc3REb21haW5QcmVzTW9kZWxcclxuICBQYXJhbWV0ZXJMaXN0RG9tYWluID0gJ3BhcmFtZXRlckxpc3REb21haW4nLFxyXG5cclxuICAvLyBEUElfUGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlciwgaGF2aW5nIHR5cGUgUGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlclByZXNNb2RlbFxyXG4gIFBhcmFtZXRlckxpc3REb21haW5NZW1iZXIgPSAncGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlcicsXHJcblxyXG4gIC8vIERQSV9QYXJhbWV0ZXJMaXN0RG9tYWluTWVtYmVycywgaGF2aW5nIHR5cGUgUGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlclByZXNNb2RlbFtdXHJcbiAgUGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlcnMgPSAncGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlcnMnLFxyXG5cclxuICAvLyBEUElfSW5kZXhlZERvbWFpbk1lbWJlciwgaGF2aW5nIHR5cGUgSW5kZXhlZERvbWFpbk1lbWJlclByZXNNb2RlbFxyXG4gIEluZGV4ZWREb21haW5NZW1iZXIgPSAnaW5kZXhlZERvbWFpbk1lbWJlcicsXHJcblxyXG4gIC8vIERQSV9JbmRleGVkRG9tYWluTWVtYmVycywgaGF2aW5nIHR5cGUgSW5kZXhlZERvbWFpbk1lbWJlclByZXNNb2RlbFtdXHJcbiAgSW5kZXhlZERvbWFpbk1lbWJlcnMgPSAnaW5kZXhlZERvbWFpbk1lbWJlcnMnLFxyXG5cclxuICAvLyBEUElfTmV3SW5kZXhlZERvbWFpbk1lbWJlcnMsIGhhdmluZyB0eXBlIEluZGV4ZWREb21haW5NZW1iZXJQcmVzTW9kZWxbXVxyXG4gIE5ld0luZGV4ZWREb21haW5NZW1iZXJzID0gJ25ld0luZGV4ZWREb21haW5NZW1iZXJzJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlckxpc3REb21haW5EaWZmLCBoYXZpbmcgdHlwZSBwYXJhbWV0ZXItbGlzdC1kb21haW4tZGlmZlxyXG4gIFBhcmFtZXRlckxpc3REb21haW5EaWZmID0gJ3BhcmFtZXRlckxpc3REb21haW5EaWZmJyxcclxuXHJcbiAgLy8gRFBJX0luZGV4UmFuZ2UsIGhhdmluZyB0eXBlIEluZGV4UmFuZ2VQcmVzTW9kZWxcclxuICBJbmRleFJhbmdlID0gJ2luZGV4UmFuZ2UnLFxyXG5cclxuICAvLyBEUElfSW5kZXhSYW5nZXMsIGhhdmluZyB0eXBlIEluZGV4UmFuZ2VQcmVzTW9kZWxbXVxyXG4gIEluZGV4UmFuZ2VzID0gJ2luZGV4UmFuZ2VzJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmluZCwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaW5kUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaW5kID0gJ2NhdGVnb3JpY2FsRmluZCcsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWREYXRhVmFsdWUsIGhhdmluZyB0eXBlIENhcHRpb25lZERhdGFWYWx1ZVByZXNNb2RlbFxyXG4gIENhcHRpb25lZERhdGFWYWx1ZSA9ICdjYXB0aW9uZWREYXRhVmFsdWUnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0ZWRWYWx1ZUNhcHRpb24sIGhhdmluZyB0eXBlIENhcHRpb25lZERhdGFWYWx1ZVByZXNNb2RlbFxyXG4gIFNlbGVjdGVkVmFsdWVDYXB0aW9uID0gJ3NlbGVjdGVkVmFsdWVDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFWYWx1ZUNhcHRpb25MaXN0LCBoYXZpbmcgdHlwZSBDYXB0aW9uZWREYXRhVmFsdWVQcmVzTW9kZWxbXVxyXG4gIERhdGFWYWx1ZUNhcHRpb25MaXN0ID0gJ2RhdGFWYWx1ZUNhdHBpb25MaXN0JyxcclxuXHJcbiAgLy8gRFBJX1JhbmdlRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBSYW5nZURhdGFWYWx1ZVByZXNNb2RlbFxyXG4gIFJhbmdlRGF0YVZhbHVlID0gJ3JhbmdlRGF0YVZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlclJhbmdlRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBSYW5nZURhdGFWYWx1ZVByZXNNb2RlbFxyXG4gIFBhcmFtZXRlclJhbmdlRGF0YVZhbHVlID0gJ3BhcmFtZXRlclJhbmdlRGF0YVZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFWYWx1ZVJhbmdlQ2FwdGlvbnMsIGhhdmluZyB0eXBlIERhdGFWYWx1ZVJhbmdlQ2FwdGlvbnNQcmVzTW9kZWxcclxuICBEYXRhVmFsdWVSYW5nZUNhcHRpb25zID0gJ2RhdGFWYWx1ZVJhbmdlQ2FwdGlvbnMnLFxyXG5cclxuICAvLyBEUElfSW5kZXBlbmRlbnREaW1lbnNpb24sIGhhdmluZyB0eXBlIEluZGVwZW5kZW50RGltZW5zaW9uUHJlc01vZGVsXHJcbiAgSW5kZXBlbmRlbnREaW1lbnNpb24gPSAnaW5kZXBlbmRlbnREaW1lbnNpb24nLFxyXG5cclxuICAvLyBEUElfSW5kZXBlbmRlbnREaW1lbnNpb25zLCBoYXZpbmcgdHlwZSBJbmRlcGVuZGVudERpbWVuc2lvblByZXNNb2RlbFtdXHJcbiAgSW5kZXBlbmRlbnREaW1lbnNpb25zID0gJ2luZGVwZW5kZW50RGltZW5zaW9ucycsXHJcblxyXG4gIC8vIERQSV9BdHRyaWJ1dGVQZXJzcGVjdGl2ZSwgaGF2aW5nIHR5cGUgUGVyc3BlY3RpdmVQcmVzTW9kZWxcclxuICBBdHRyaWJ1dGVQZXJzcGVjdGl2ZSA9ICdhdHRyaWJ1dGVQZXJzcGVjdGl2ZScsXHJcblxyXG4gIC8vIERQSV9DdWJlUGVyc3BlY3RpdmUsIGhhdmluZyB0eXBlIFBlcnNwZWN0aXZlUHJlc01vZGVsXHJcbiAgQ3ViZVBlcnNwZWN0aXZlID0gJ2N1YmVQZXJzcGVjdGl2ZScsXHJcblxyXG4gIC8vIERQSV9BdHRyaWJ1dGVQZXJzcGVjdGl2ZXMsIGhhdmluZyB0eXBlIFBlcnNwZWN0aXZlUHJlc01vZGVsW11cclxuICBBdHRyaWJ1dGVQZXJzcGVjdGl2ZXMgPSAnYXR0cmlidXRlUGVyc3BlY3RpdmVzJyxcclxuXHJcbiAgLy8gRFBJX0NhbGN1bGF0ZWRNZW1iZXJzRm9yRWRpdGluZ1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRWRpdENhbGN1bGF0ZWRNZW1iZXJzUHJlc01vZGVsXHJcbiAgQ2FsY3VsYXRlZE1lbWJlcnNGb3JFZGl0aW5nUHJlc01vZGVsID0gJ2NhbGN1bGF0ZWRNZW1iZXJzRm9yRWRpdGluZ1ByZXNtb2RlbCcsXHJcblxyXG4gIC8vIERQSV9DYWxjdWxhdGVkTWVtYmVyLCBoYXZpbmcgdHlwZSBDYWxjdWxhdGVkTWVtYmVyUHJlc01vZGVsXHJcbiAgQ2FsY3VsYXRlZE1lbWJlciA9ICdjYWxjdWxhdGVkTWVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX05ld0NhbGN1bGF0ZWRNZW1iZXIsIGhhdmluZyB0eXBlIENhbGN1bGF0ZWRNZW1iZXJQcmVzTW9kZWxcclxuICBOZXdDYWxjdWxhdGVkTWVtYmVyID0gJ25ld0NhbGN1bGF0ZWRNZW1iZXInLFxyXG5cclxuICAvLyBEUElfVXBkYXRlZENhbGN1bGF0ZWRNZW1iZXIsIGhhdmluZyB0eXBlIENhbGN1bGF0ZWRNZW1iZXJQcmVzTW9kZWxcclxuICBVcGRhdGVkQ2FsY3VsYXRlZE1lbWJlciA9ICd1cGRhdGVkQ2FsY3VsYXRlZE1lbWJlcicsXHJcblxyXG4gIC8vIERQSV9DYWxjdWxhdGVkTWVtYmVyc0xpc3QsIGhhdmluZyB0eXBlIENhbGN1bGF0ZWRNZW1iZXJQcmVzTW9kZWxbXVxyXG4gIENhbGN1bGF0ZWRNZW1iZXJzTGlzdCA9ICdjYWxjdWxhdGVkTWVtYmVyc0xpc3QnLFxyXG5cclxuICAvLyBEUElfQ2FsY3VsYXRlZE1lbWJlckhpZXJhcmNoeUl0ZW0sIGhhdmluZyB0eXBlIENhbGN1bGF0ZWRNZW1iZXJIaWVyYXJjaHlJdGVtUHJlc01vZGVsXHJcbiAgQ2FsY3VsYXRlZE1lbWJlckhpZXJhcmNoeUl0ZW0gPSAnY2FsY3VsYXRlZE1lbWJlckhpZXJhcmNoeUl0ZW0nLFxyXG5cclxuICAvLyBEUElfQ2FsY3VsYXRlZE1lbWJlckhpZXJhcmNoeUxpc3QsIGhhdmluZyB0eXBlIENhbGN1bGF0ZWRNZW1iZXJIaWVyYXJjaHlJdGVtUHJlc01vZGVsW11cclxuICBDYWxjdWxhdGVkTWVtYmVySGllcmFyY2h5TGlzdCA9ICdjYWxjdWxhdGVkTWVtYmVySGllcmFyY2h5TGlzdCcsXHJcblxyXG4gIC8vIERQSV9TdW1tYXJ5Q2FyZFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU3VtbWFyeUNhcmRQcmVzTW9kZWxcclxuICBTdW1tYXJ5Q2FyZFByZXNNb2RlbCA9ICdzdW1tYXJ5Q2FyZCcsXHJcblxyXG4gIC8vIERQSV9NZWFzdXJlU3VtbWFyeSwgaGF2aW5nIHR5cGUgTWVhc3VyZVN1bW1hcnlQcmVzTW9kZWxcclxuICBNZWFzdXJlU3VtbWFyeSA9ICdtZWFzdXJlU3VtbWFyeScsXHJcblxyXG4gIC8vIERQSV9NZWFzdXJlU3VtbWFyeUxpc3QsIGhhdmluZyB0eXBlIE1lYXN1cmVTdW1tYXJ5UHJlc01vZGVsW11cclxuICBNZWFzdXJlU3VtbWFyeUxpc3QgPSAnbWVhc3VyZVN1bW1hcnlMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0Fubm90YXRpb25QcmVzTW9kZWwsIGhhdmluZyB0eXBlIEFubm90YXRpb25QcmVzTW9kZWxcclxuICBBbm5vdGF0aW9uUHJlc01vZGVsID0gJ2Fubm90YXRpb24nLFxyXG5cclxuICAvLyBEUElfQW5ub3RhdGlvbkxpc3QsIGhhdmluZyB0eXBlIEFubm90YXRpb25QcmVzTW9kZWxbXVxyXG4gIEFubm90YXRpb25MaXN0ID0gJ2Fubm90YXRpb25MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0Fubm90YXRpb25TaGFwZVN0eWxlLCBoYXZpbmcgdHlwZSBBbm5vdGF0aW9uU2hhcGVTdHlsZVByZXNNb2RlbFxyXG4gIEFubm90YXRpb25TaGFwZVN0eWxlID0gJ2Fubm90YXRpb25TaGFwZVN0eWxlJyxcclxuXHJcbiAgLy8gRFBJX1RlbGVtZXRyeSwgaGF2aW5nIHR5cGUgVGVsZW1ldHJ5UHJlc01vZGVsXHJcbiAgVGVsZW1ldHJ5ID0gJ3RlbGVtZXRyeScsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlVGVsZW1ldHJ5LCBoYXZpbmcgdHlwZSBEYXRhU291cmNlVGVsZW1ldHJ5UHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZVRlbGVtZXRyeSA9ICdkYXRhU291cmNlVGVsZW1ldHJ5JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VUZWxlbWV0cnlMaXN0LCBoYXZpbmcgdHlwZSBEYXRhU291cmNlVGVsZW1ldHJ5UHJlc01vZGVsW11cclxuICBEYXRhU291cmNlVGVsZW1ldHJ5TGlzdCA9ICdkYXRhU291cmNlVGVsZW1ldHJ5TGlzdCcsXHJcblxyXG4gIC8vIERQSV9WaXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5LCBoYXZpbmcgdHlwZSBWaXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5UHJlc01vZGVsXHJcbiAgVmlzdWFsU3BlY2lmaWNhdGlvblRlbGVtZXRyeSA9ICd2aXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5JyxcclxuXHJcbiAgLy8gRFBJX1Zpc3VhbFNwZWNpZmljYXRpb25UZWxlbWV0cnlMaXN0LCBoYXZpbmcgdHlwZSBWaXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5UHJlc01vZGVsW11cclxuICBWaXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5TGlzdCA9ICd2aXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5TGlzdCcsXHJcblxyXG4gIC8vIERQSV9VbmRlcmx5aW5nRGF0YVRhYmxlLCBoYXZpbmcgdHlwZSBVbmRlcmx5aW5nRGF0YVRhYmxlUHJlc01vZGVsXHJcbiAgVW5kZXJseWluZ0RhdGFUYWJsZSA9ICd1bmRlcmx5aW5nRGF0YVRhYmxlJyxcclxuXHJcbiAgLy8gRFBJX1VuZGVybHlpbmdEYXRhVGFibGVzLCBoYXZpbmcgdHlwZSBVbmRlcmx5aW5nRGF0YVRhYmxlUHJlc01vZGVsW11cclxuICBVbmRlcmx5aW5nRGF0YVRhYmxlcyA9ICd1bmRlcmx5aW5nRGF0YVRhYmxlcycsXHJcblxyXG4gIC8vIERQSV9VbmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1uLCBoYXZpbmcgdHlwZSBVbmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1uUHJlc01vZGVsXHJcbiAgVW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtbiA9ICd1bmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1uJyxcclxuXHJcbiAgLy8gRFBJX1VuZGVybHlpbmdEYXRhVGFibGVDb2x1bW5zLCBoYXZpbmcgdHlwZSBVbmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1uUHJlc01vZGVsW11cclxuICBVbmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1ucyA9ICd1bmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1ucycsXHJcblxyXG4gIC8vIERQSV9QYWdlQ2FjaGVJRCwgaGF2aW5nIHR5cGUgUGFnZUNhY2hlSURQcmVzTW9kZWxcclxuICBQYWdlQ2FjaGVJRCA9ICdwYWdlQ2FjaGVJZCcsXHJcblxyXG4gIC8vIERQSV9SZWxhdGlvbmFsUGFnZUNhY2hlSUQsIGhhdmluZyB0eXBlIFBhZ2VDYWNoZUlEUHJlc01vZGVsXHJcbiAgUmVsYXRpb25hbFBhZ2VDYWNoZUlEID0gJ3JlbGF0aW9uYWxQYWdlQ2FjaGVJZCcsXHJcblxyXG4gIC8vIERQSV9TZWFyY2hSZXN1bHRzQ2FjaGVJRCwgaGF2aW5nIHR5cGUgUGFnZUNhY2hlSURQcmVzTW9kZWxcclxuICBTZWFyY2hSZXN1bHRzQ2FjaGVJRCA9ICdzZWFyY2hSZXN1bHRzQ2FjaGVJZCcsXHJcblxyXG4gIC8vIERQSV9QYWdlSW5mbywgaGF2aW5nIHR5cGUgUGFnZUluZm9QcmVzTW9kZWxcclxuICBQYWdlSW5mbyA9ICdwYWdlSW5mbycsXHJcblxyXG4gIC8vIERQSV9Sb3dDb2xQYWlyLCBoYXZpbmcgdHlwZSBSb3dDb2xQYWlyUHJlc01vZGVsXHJcbiAgUm93Q29sUGFpciA9ICdyb3dDb2xQYWlyJyxcclxuXHJcbiAgLy8gRFBJX1RvcExlZnRSb3dDb2wsIGhhdmluZyB0eXBlIFJvd0NvbFBhaXJQcmVzTW9kZWxcclxuICBUb3BMZWZ0Um93Q29sID0gJ3RvcExlZnRSb3dDb2wnLFxyXG5cclxuICAvLyBEUElfQm90UmlnaHRSb3dDb2wsIGhhdmluZyB0eXBlIFJvd0NvbFBhaXJQcmVzTW9kZWxcclxuICBCb3RSaWdodFJvd0NvbCA9ICdib3RSaWdodFJvd0NvbCcsXHJcblxyXG4gIC8vIERQSV9Sb3dDb2xQYWlycywgaGF2aW5nIHR5cGUgUm93Q29sUGFpclByZXNNb2RlbFtdXHJcbiAgUm93Q29sUGFpcnMgPSAncm93Q29sUGFpcnMnLFxyXG5cclxuICAvLyBEUElfVGFibGVWaWV3Q2FjaGVJbmZvLCBoYXZpbmcgdHlwZSBUYWJsZVZpZXdDYWNoZVByZXNNb2RlbFxyXG4gIFRhYmxlVmlld0NhY2hlSW5mbyA9ICd0YWJsZVZpZXdDYWNoZUluZm8nLFxyXG5cclxuICAvLyBEUElfVGFibGVWaWV3SW5mbywgaGF2aW5nIHR5cGUgdGFibGVWaWV3SW5mb1ByZXNNb2RlbFxyXG4gIFRhYmxlVmlld0luZm8gPSAndGFibGVWaWV3SW5mbycsXHJcblxyXG4gIC8vIERQSV9UYWJsZVZpZXdDb2x1bW5JbmZvLCBoYXZpbmcgdHlwZSBUYWJsZVZpZXdDb2x1bW5JbmZvUHJlc01vZGVsXHJcbiAgVGFibGVWaWV3Q29sdW1uSW5mbyA9ICd0YWJsZVZpZXdDb2x1bW5JbmZvJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlVmlld0NvbHVtbnMsIGhhdmluZyB0eXBlIFRhYmxlVmlld0NvbHVtbkluZm9QcmVzTW9kZWxbXVxyXG4gIFRhYmxlVmlld0NvbHVtbnMgPSAndGFibGVWaWV3Q29sdW1ucycsXHJcblxyXG4gIC8vIERQSV9UYWJsZVZpZXdQYWdlSXRlbSwgaGF2aW5nIHR5cGUgVGFibGVWaWV3UGFnZUl0ZW1QcmVzTW9kZWxcclxuICBUYWJsZVZpZXdQYWdlSXRlbSA9ICd0YWJsZVZpZXdQYWdlSXRlbScsXHJcblxyXG4gIC8vIERQSV9UYWJsZVZpZXdQYWdlQ29sdW1ucywgaGF2aW5nIHR5cGUgVGFibGVWaWV3UGFnZUl0ZW1QcmVzTW9kZWxbXVxyXG4gIFRhYmxlVmlld1BhZ2VDb2x1bW5zID0gJ3RhYmxlVmlld1BhZ2VDb2x1bW5zJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlVmlld1BhZ2VSb3csIGhhdmluZyB0eXBlIFRhYmxlVmlld1BhZ2VSb3dQcmVzTW9kZWxcclxuICBUYWJsZVZpZXdQYWdlUm93ID0gJ3RhYmxlVmlld1BhZ2VSb3cnLFxyXG5cclxuICAvLyBEUElfVGFibGVWaWV3UGFnZVJvd3MsIGhhdmluZyB0eXBlIFRhYmxlVmlld1BhZ2VSb3dQcmVzTW9kZWxbXVxyXG4gIFRhYmxlVmlld1BhZ2VSb3dzID0gJ3RhYmxlVmlld1BhZ2VSb3dzJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlVmlld1BhZ2UsIGhhdmluZyB0eXBlIFRhYmxlVmlld1BhZ2VQcmVzTW9kZWxcclxuICBUYWJsZVZpZXdQYWdlID0gJ3RhYmxlVmlld1BhZ2UnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlciwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlclByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsVmFsdWVQaWNrZXIgPSAnY2F0ZWdvcmljYWxWYWx1ZVBpY2tlcicsXHJcblxyXG4gIC8vIERQSV9Bbm5vdGF0aW9uU2hhcGVCb3JkZXJTdHlsZSwgaGF2aW5nIHR5cGUgTGluZVN0eWxlUHJlc01vZGVsXHJcbiAgQW5ub3RhdGlvblNoYXBlQm9yZGVyU3R5bGUgPSAnYW5ub3RhdGlvblNoYXBlQm9yZGVyU3R5bGUnLFxyXG5cclxuICAvLyBEUElfQW5vdGF0aW9uU2hhcGVTdHJva2VTdHlsZSwgaGF2aW5nIHR5cGUgTGluZVN0eWxlUHJlc01vZGVsXHJcbiAgQW5vdGF0aW9uU2hhcGVTdHJva2VTdHlsZSA9ICdhbm5vdGF0aW9uU2hhcGVTdHJva2VTdHlsZScsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEJpbkVkaXRvclByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxCaW5FZGl0b3JQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEJpbkVkaXRvclByZXNNb2RlbCA9ICdjYXRlZ29yaWNhbEJpbkVkaXRvcicsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEJpbkl0ZW0sIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsQmluSXRlbVByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsQmluSXRlbSA9ICdjYXRlZ29yaWNhbEJpbkl0ZW1QcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxCaW5JdGVtcywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxCaW5JdGVtUHJlc01vZGVsW11cclxuICBDYXRlZ29yaWNhbEJpbkl0ZW1zID0gJ2NhdGVnb3JpY2FsQmluSXRlbVByZXNNb2RlbHMnLFxyXG5cclxuICAvLyBEUElfTWVhc3VyZVBpY2tlckZpZWxkSW5mbywgaGF2aW5nIHR5cGUgTWVhc3VyZVBpY2tlckZpZWxkSW5mb1ByZXNNb2RlbFxyXG4gIE1lYXN1cmVQaWNrZXJGaWVsZEluZm8gPSAnbWVhc3VyZVBpY2tlckZpZWxkSW5mbycsXHJcblxyXG4gIC8vIERQSV9NZWFzdXJlUGlja2VyRmllbGRzLCBoYXZpbmcgdHlwZSBNZWFzdXJlUGlja2VyRmllbGRJbmZvUHJlc01vZGVsW11cclxuICBNZWFzdXJlUGlja2VyRmllbGRzID0gJ21lYXN1cmVQaWNrZXJGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfTWVhc3VyZUFnZ3JlZ2F0aW9uSW5mbywgaGF2aW5nIHR5cGUgTWVhc3VyZUFnZ3JlZ2F0aW9uSW5mb1ByZXNNb2RlbFxyXG4gIE1lYXN1cmVBZ2dyZWdhdGlvbkluZm8gPSAnbWVhc3VyZUFnZ3JlZ2F0aW9uSW5mbycsXHJcblxyXG4gIC8vIERQSV9NZWFzdXJlQWdncmVnYXRpb25zLCBoYXZpbmcgdHlwZSBNZWFzdXJlQWdncmVnYXRpb25JbmZvUHJlc01vZGVsW11cclxuICBNZWFzdXJlQWdncmVnYXRpb25zID0gJ21lYXN1cmVBZ2dyZWdhdGlvbnMnLFxyXG5cclxuICAvLyBEUElfVHVwbGVQYWlyLCBoYXZpbmcgdHlwZSBUdXBsZVBhaXJQcmVzTW9kZWxcclxuICBUdXBsZVBhaXIgPSAndHVwbGVQYWlyJyxcclxuXHJcbiAgLy8gRFBJX0RpbWVuc2lvbkJvdW5kLCBoYXZpbmcgdHlwZSBEaW1lbnNpb25Cb3VuZFByZXNNb2RlbFxyXG4gIERpbWVuc2lvbkJvdW5kID0gJ2RpbWVuc2lvbkJvdW5kJyxcclxuXHJcbiAgLy8gRFBJX1BlcnNwZWN0aXZlQm91bmRzLCBoYXZpbmcgdHlwZSBEaW1lbnNpb25Cb3VuZFByZXNNb2RlbFtdXHJcbiAgUGVyc3BlY3RpdmVCb3VuZHMgPSAncGVyc3BlY3RpdmVCb3VuZHMnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyUGVyc3BlY3RpdmVJbmZvUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBGaWx0ZXJQZXJzcGVjdGl2ZUluZm9QcmVzTW9kZWxcclxuICBGaWx0ZXJQZXJzcGVjdGl2ZUluZm9QcmVzTW9kZWwgPSAnZmlsdGVyUGVyc3BlY3RpdmVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlUmVsZXZhbmNlLCBoYXZpbmcgdHlwZSBUYWJsZVJlbGV2YW5jZVByZXNNb2RlbFxyXG4gIFRhYmxlUmVsZXZhbmNlID0gJ3RhYmxlUmVsZXZhbmNlJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBBZGRJblJlZ2lzdHJhdGlvblByZXNNb2RlbFxyXG4gIEFkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsID0gJ2FkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsTGlzdCwgaGF2aW5nIHR5cGUgQWRkSW5SZWdpc3RyYXRpb25QcmVzTW9kZWxbXVxyXG4gIEFkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsTGlzdCA9ICdhZGRJblJlZ2lzdHJhdGlvblByZXNNb2RlbExpc3QnLFxyXG5cclxuICAvLyBEUElfQWRkSW5EYXNoYm9hcmRBdXRob3JpbmdXaWRnZXQsIGhhdmluZyB0eXBlIEFkZEluRGFzaGJvYXJkV2lkZ2V0UHJlc01vZGVsXHJcbiAgQWRkSW5EYXNoYm9hcmRBdXRob3JpbmdXaWRnZXQgPSAnYWRkSW5EYXNoYm9hcmRBdXRob3JpbmdXaWRnZXRQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQWRkSW5JbnN0YW5jZSwgaGF2aW5nIHR5cGUgQWRkSW5JbnN0YW5jZVByZXNNb2RlbFxyXG4gIEFkZEluSW5zdGFuY2UgPSAnYWRkSW5JbnN0YW5jZVByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9BZGRJbkxvY2F0b3IsIGhhdmluZyB0eXBlIEFkZEluTG9jYXRvclByZXNNb2RlbFxyXG4gIEFkZEluTG9jYXRvciA9ICdhZGRJbkxvY2F0b3JQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQWRkSW5Db250ZXh0LCBoYXZpbmcgdHlwZSBBZGRJbkNvbnRleHRcclxuICBBZGRJbkNvbnRleHQgPSAnYWRkSW5Db250ZXh0JyxcclxuXHJcbiAgLy8gRFBJX0FkZEluTW9kZSwgaGF2aW5nIHR5cGUgQWRkSW5Nb2RlXHJcbiAgQWRkSW5Nb2RlID0gJ2FkZEluTW9kZScsXHJcblxyXG4gIC8vIERQSV9TZXRBeGlzRGF0YVZhbHVlUmVzdWx0LCBoYXZpbmcgdHlwZSBTZXRBeGlzRGF0YVZhbHVlUmVzdWx0XHJcbiAgU2V0QXhpc0RhdGFWYWx1ZVJlc3VsdCA9ICdzZXRBeGlzRGF0YVZhbHVlUmVzdWx0JyxcclxuXHJcbiAgLy8gRFBJX0F4aXNFeHRlbnRTdGFydFR5cGUsIGhhdmluZyB0eXBlIEF4aXNFeHRlbnRUeXBlXHJcbiAgQXhpc0V4dGVudFN0YXJ0VHlwZSA9ICdheGlzRXh0ZW50U3RhcnRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0F4aXNFeHRlbnRFbmRUeXBlLCBoYXZpbmcgdHlwZSBBeGlzRXh0ZW50VHlwZVxyXG4gIEF4aXNFeHRlbnRFbmRUeXBlID0gJ2F4aXNFeHRlbnRFbmRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0F4aXNFeHRlbnRzVHlwZSwgaGF2aW5nIHR5cGUgQXhpc0V4dGVudFR5cGVcclxuICBBeGlzRXh0ZW50c1R5cGUgPSAnYXhpc0V4dGVudHNUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluRW52aXJvbm1lbnQsIGhhdmluZyB0eXBlIEFkZEluRW52aXJvbm1lbnRQcmVzTW9kZWxcclxuICBBZGRJbkVudmlyb25tZW50ID0gJ2FkZEluRW52aXJvbm1lbnRQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQWRkSW5EYXNoYm9hcmRJbmZvLCBoYXZpbmcgdHlwZSBBZGRJbkRhc2hib2FyZEluZm9QcmVzTW9kZWxcclxuICBBZGRJbkRhc2hib2FyZEluZm8gPSAnYWRkSW5EYXNoYm9hcmRJbmZvUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluU2V0dGluZ3NJbmZvLCBoYXZpbmcgdHlwZSBBZGRJblNldHRpbmdzSW5mb1ByZXNNb2RlbFxyXG4gIEFkZEluU2V0dGluZ3NJbmZvID0gJ2FkZEluU2V0dGluZ3NJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluQm9vdHN0cmFwSW5mbywgaGF2aW5nIHR5cGUgQWRkSW5Cb290c3RyYXBJbmZvUHJlc01vZGVsXHJcbiAgQWRkSW5Cb290c3RyYXBJbmZvID0gJ2FkZEluQm9vdHN0cmFwSW5mbycsXHJcblxyXG4gIC8vIERQSV9BZGRJbkRlYnVnU2V0dGluZ3MsIGhhdmluZyB0eXBlIEFkZEluRGVidWdTZXR0aW5nc1ByZXNNb2RlbFxyXG4gIEFkZEluRGVidWdTZXR0aW5ncyA9ICdhZGRJbkRlYnVnU2V0dGluZ3MnLFxyXG5cclxuICAvLyBEUElfUmljaFRleHQsIGhhdmluZyB0eXBlIFJpY2hUZXh0UHJlc01vZGVsXHJcbiAgUmljaFRleHQgPSAncmljaFRleHQnLFxyXG5cclxuICAvLyBEUElfUmljaFRleHRLZXl3b3JkU3ViTGlzdCwgaGF2aW5nIHR5cGUgUmljaFRleHRLZXl3b3JkU3ViTGlzdFByZXNNb2RlbFxyXG4gIFJpY2hUZXh0S2V5d29yZFN1Ykxpc3QgPSAncmljaFRleHRLZXl3b3Jkc1N1Ymxpc3QnLFxyXG5cclxuICAvLyBEUElfUmljaFRleHRLZXl3b3JkU3ViTGlzdHMsIGhhdmluZyB0eXBlIFJpY2hUZXh0S2V5d29yZFN1Ykxpc3RQcmVzTW9kZWxbXVxyXG4gIFJpY2hUZXh0S2V5d29yZFN1Ykxpc3RzID0gJ3JpY2hUZXh0S2V5d29yZFN1Ymxpc3RzJyxcclxuXHJcbiAgLy8gRFBJX1JpY2hUZXh0S2V5d29yZExpc3QsIGhhdmluZyB0eXBlIFJpY2hUZXh0S2V5d29yZExpc3RQcmVzTW9kZWxcclxuICBSaWNoVGV4dEtleXdvcmRMaXN0ID0gJ3JpY2hUZXh0S2V5d29yZHNMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1JpY2hUZXh0QmxvY2tTdHlsZSwgaGF2aW5nIHR5cGUgUmljaFRleHRCbG9ja1N0eWxlUHJlc01vZGVsXHJcbiAgUmljaFRleHRCbG9ja1N0eWxlID0gJ3JpY2hUZXh0QmxvY2tTdHlsZScsXHJcblxyXG4gIC8vIERQSV9SaWNoVGV4dENvbnRlbnRTdHlsZSwgaGF2aW5nIHR5cGUgUmljaFRleHRDb250ZW50U3R5bGVQcmVzTW9kZWxcclxuICBSaWNoVGV4dENvbnRlbnRTdHlsZSA9ICdyaWNoVGV4dENvbnRlbnRTdHlsZSdcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL2dlbi1zcmMvcHJlc2xheWVyL1BhcmFtcy50c1xuICoqLyIsImltcG9ydCB7IFBhcmFtZXRlcklkIGFzIEFwaSwgVmVyYklkIGFzIEFwaVZlcmJJZCwgVmVyc2lvbk51bWJlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIERvY0NvbW1hbmRzIGFzIFByZXNMYXllckRvY0NvbW1hbmRJZCxcclxuICBTcnZDb21tYW5kcyBhcyBQcmVzTGF5ZXJTcnZDb21tYW5kSWQsXHJcbiAgVUlDb21tYW5kcyBhcyBQcmVzTGF5ZXJVSUNvbW1hbmRJZFxyXG59IGZyb20gJy4uLy4uL2dlbi1zcmMvcHJlc2xheWVyL0NvbW1hbmRJZHMnO1xyXG5cclxuaW1wb3J0IHsgUGFyYW1ldGVySWQgYXMgUEwgfSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QYXJhbXMnO1xyXG5pbXBvcnQgeyBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5IH0gZnJvbSAnLi9Db21tYW5kTWFwcGluZ1JlZ2lzdHJ5JztcclxuaW1wb3J0IHsgQ29tbWFuZE5hbWVzcGFjZSwgQ29tbWFuZFBhcmFtZXRlciwgQ29tbWFuZFJlZ2lzdHJhdGlvbiB9IGZyb20gJy4vQ29tbWFuZFJlZ2lzdHJhdGlvbic7XHJcblxyXG5leHBvcnQgY2xhc3MgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeUZhY3Rvcnkge1xyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW5kIHBvcHVsYXRlcyBhIG5ldyBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5IGZvciB0aGUgc3BlY2lmaWMgdmVyc2lvbiBudW1iZXIgcmVxdWVzdGVkXHJcbiAgICpcclxuICAgKiBAc3RhdGljXHJcbiAgICogQHBhcmFtIHtWZXJzaW9uTnVtYmVyfSB2ZXJzaW9uTnVtYmVyXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBydW5uaW5nSW5EZXNrdG9wXHJcbiAgICogQHJldHVybnMge0NvbW1hbmRNYXBwaW5nUmVnaXN0cnl9XHJcbiAgICogQG1lbWJlcm9mIENvbW1hbmRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5XHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBjcmVhdGVDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5KHZlcnNpb25OdW1iZXI6IFZlcnNpb25OdW1iZXIsIHJ1bm5pbmdJbkRlc2t0b3A6IGJvb2xlYW4pOiBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5IHtcclxuICAgIGxldCByZXN1bHQgPSBuZXcgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeSgpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuSW5pdGlhbGl6ZUV4dGVuc2lvbixcclxuICAgICAgUHJlc0xheWVyRG9jQ29tbWFuZElkLkluaXRpYWxpemVBZGRJbkluc3RhbmNlLFxyXG4gICAgICBbIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5FeHRlbnNpb25Mb2NhdG9yLCBQTC5BZGRJbkxvY2F0b3IpIF0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5FeHRlbnNpb25Cb290c3RyYXBJbmZvLCBQTC5BZGRJbkJvb3RzdHJhcEluZm8pKSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb24oXHJcbiAgICAgIEFwaVZlcmJJZC5HZXRVbmRlcmx5aW5nRGF0YSxcclxuICAgICAgUHJlc0xheWVyRG9jQ29tbWFuZElkLkdldFVuZGVybHlpbmdEYXRhLFxyXG4gICAgICBbIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5JZ25vcmVBbGlhc2VzLCBQTC5JZ25vcmVBbGlhc2VzKSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuSWdub3JlU2VsZWN0aW9uLCBQTC5JZ25vcmVTZWxlY3Rpb24pLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5JbmNsdWRlQWxsQ29sdW1ucywgUEwuSW5jbHVkZUFsbENvbHVtbnMpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5NYXhSb3dzLCBQTC5NYXhSb3dzKSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLlZpc3VhbElEUE0pIF0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5VbmRlcmx5aW5nRGF0YVRhYmxlLCBQTC5VbmRlcmx5aW5nRGF0YVRhYmxlKSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuR2V0RGF0YVN1bW1hcnlEYXRhLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0U3VtbWFyeURhdGEsXHJcbiAgICAgIFsgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLklnbm9yZUFsaWFzZXMsIFBMLklnbm9yZUFsaWFzZXMpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5JZ25vcmVTZWxlY3Rpb24sIFBMLklnbm9yZVNlbGVjdGlvbiksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlZpc3VhbElkLCBQTC5WaXN1YWxJRFBNKSBdLFxyXG4gICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVW5kZXJseWluZ1N1bW1hcnlEYXRhVGFibGUsIFBMLlVuZGVybHlpbmdEYXRhVGFibGUpKSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb24oXHJcbiAgICAgIEFwaVZlcmJJZC5HZXREYXRhU291cmNlRGF0YSxcclxuICAgICAgUHJlc0xheWVyRG9jQ29tbWFuZElkLkdldERhdGFTb3VyY2VEYXRhLFxyXG4gICAgICBbIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5EYXRhU291cmNlSWQsIFBMLkRhdGFzb3VyY2UpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5JZ25vcmVBbGlhc2VzLCBQTC5JZ25vcmVBbGlhc2VzKSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuTWF4Um93cywgUEwuTWF4Um93cyksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkNvbHVtbnNUb0luY2x1ZGUsIFBMLkZpZWxkRGlzcGxheU5hbWVzKSBdLFxyXG4gICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRGF0YVNvdXJjZURhdGFUYWJsZSwgUEwuVW5kZXJseWluZ0RhdGFUYWJsZSkpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXIsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5DYXRlZ29yaWNhbEZpbHRlcixcclxuICAgICAgWyBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRmllbGROYW1lLCBQTC5RdWFsaWZpZWRGaWVsZENhcHRpb24pLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWx0ZXJWYWx1ZXMsIFBMLkZpbHRlckFsaWFzZXMpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWx0ZXJVcGRhdGVUeXBlLCBQTC5GaWx0ZXJVcGRhdGVUeXBlKSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuSXNFeGNsdWRlTW9kZSwgUEwuRXhjbHVkZSwgdHJ1ZSksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlZpc3VhbElkLCBQTC5Xb3Jrc2hlZXQpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5WaXN1YWxJZCwgUEwuRGFzaGJvYXJkKV0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWVsZE5hbWUsIFBMLkZpZWxkQ2FwdGlvbikpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkFwcGx5UmFuZ2VGaWx0ZXIsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5SYW5nZUZpbHRlcixcclxuICAgICAgWyBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRmllbGROYW1lLCBQTC5RdWFsaWZpZWRGaWVsZENhcHRpb24pLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWx0ZXJSYW5nZU1pbiwgUEwuUmFuZ2VNaW4sIHRydWUpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWx0ZXJSYW5nZU1heCwgUEwuUmFuZ2VNYXgsIHRydWUpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWx0ZXJSYW5nZU51bGxPcHRpb24sIFBMLkluY2x1ZGVkLCB0cnVlKSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLldvcmtzaGVldCksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlZpc3VhbElkLCBQTC5EYXNoYm9hcmQpXSxcclxuICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkZpZWxkTmFtZSwgUEwuRmllbGRDYXB0aW9uKSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuQ2xlYXJGaWx0ZXIsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5SZXNldEZpbHRlcixcclxuICAgICAgWyBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRmllbGROYW1lLCBQTC5RdWFsaWZpZWRGaWVsZENhcHRpb24pLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5WaXN1YWxJZCwgUEwuV29ya3NoZWV0KSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLkRhc2hib2FyZCldLFxyXG4gICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRmllbGROYW1lLCBQTC5GaWVsZENhcHRpb24pKSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb24oXHJcbiAgICAgIEFwaVZlcmJJZC5HZXRTZWxlY3RlZE1hcmtzLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0U2VsZWN0aW9uRGF0YSxcclxuICAgICAgWyBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLlZpc3VhbElEUE0pIF0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5TZWxlY3RlZERhdGEsIFBMLlNlbGVjdGlvbkRhdGEpKSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb24oXHJcbiAgICAgIEFwaVZlcmJJZC5HZXRIaWdobGlnaHRlZE1hcmtzLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0SGlnaGxpZ2h0ZWREYXRhLFxyXG4gICAgICBbIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5WaXN1YWxJZCwgUEwuVmlzdWFsSURQTSkgXSxcclxuICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkhpZ2hsaWdodGVkRGF0YSwgUEwuSGlnaGxpZ2h0ZWREYXRhKSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuU2F2ZUV4dGVuc2lvblNldHRpbmdzLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuU2F2ZUFkZEluU2V0dGluZ3MsXHJcbiAgICAgIFsgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkV4dGVuc2lvbkxvY2F0b3IsIFBMLkFkZEluTG9jYXRvciksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlNldHRpbmdzVmFsdWVzLCBQTC5BZGRJblNldHRpbmdzKV0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5FeHRlbnNpb25TZXR0aW5nc0luZm8sIFBMLkFkZEluU2V0dGluZ3NJbmZvKSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuR2V0UGFyYW1ldGVyc0ZvclNoZWV0LFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0UGFyYW1ldGVyTW9kZWxzLFxyXG4gICAgICBbXSxcclxuICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlBhcmFtZXRlckluZm9zLCBQTC5QYXJhbWV0ZXJDdHJscykpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkZpbmRQYXJhbWV0ZXIsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5GaW5kUGFyYW1ldGVyTW9kZWwsXHJcbiAgICAgIFsgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlBhcmFtZXRlckNhcHRpb24sIFBMLkZpZWxkQ2FwdGlvbiwgdHJ1ZSksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlBhcmFtZXRlckZpZWxkTmFtZSwgUEwuRmllbGROYW1lU3RyaW5nLCB0cnVlKV0sXHJcbiAgICAgIC8vIFdlIG1pZ2h0IG5vdCBnZXQgYSByZXNwb25zZSBpZiB0aGUgcGFyYW1ldGVyIGlzbid0IGZvdW5kXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5QYXJhbWV0ZXJJbmZvLCBQTC5QYXJhbWV0ZXJDdHJsLCB0cnVlKSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuQ2hhbmdlUGFyYW1ldGVyVmFsdWUsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5TZXRQYXJhbWV0ZXJWYWx1ZSxcclxuICAgICAgWyBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuUGFyYW1ldGVyRmllbGROYW1lLCBQTC5HbG9iYWxGaWVsZE5hbWUpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5QYXJhbWV0ZXJWYWx1ZSwgUEwuVmFsdWVTdHIpXSxcclxuICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlBhcmFtZXRlckluZm8sIFBMLlBhcmFtZXRlckN0cmwpKSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb24oXHJcbiAgICAgIEFwaVZlcmJJZC5DbGVhclNlbGVjdGVkTWFya3MsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5DbGVhclNlbGVjdGVkTWFya3MsXHJcbiAgICAgIFtuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLlZpc3VhbElEUE0pXSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuU2VsZWN0QnlWYWx1ZSxcclxuICAgICAgUHJlc0xheWVyRG9jQ29tbWFuZElkLlNlbGVjdEJ5VmFsdWUsXHJcbiAgICAgIFtuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLlZpc3VhbElEUE0pLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5TZWxlY3Rpb24sIFBMLlNlbGVjdGlvbiwgdHJ1ZSksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlNlbGVjdGlvblVwZGF0ZVR5cGUsIFBMLlNlbGVjdGlvblVwZGF0ZVR5cGUpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5IaWVyVmFsU2VsZWN0aW9uTW9kZWxzLCBQTC5IaWVyVmFsU2VsZWN0aW9uTW9kZWxzLCB0cnVlKSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRGltVmFsU2VsZWN0aW9uTW9kZWxzLCBQTC5EaW1WYWxTZWxlY3Rpb25Nb2RlbHMsIHRydWUpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5RdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzLCBQTC5RdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzLCB0cnVlKV0pKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkdldERhdGFTb3VyY2VzLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0U2NoZW1hLFxyXG4gICAgICBbXSxcclxuICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkRhdGFTY2hlbWEsIFBMLkRhdGFTY2hlbWEpKSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb24oXHJcbiAgICAgIEFwaVZlcmJJZC5SZWZyZXNoRGF0YVNvdXJjZSxcclxuICAgICAgKHJ1bm5pbmdJbkRlc2t0b3ApID8gUHJlc0xheWVyVUlDb21tYW5kSWQuUmVmcmVzaERhdGFTb3VyY2VVSSA6IFByZXNMYXllclNydkNvbW1hbmRJZC5SZWZyZXNoRGF0YSxcclxuICAgICAgW25ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5EYXRhU291cmNlSWQsIFBMLkRhdGFzb3VyY2UpXSxcclxuICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAocnVubmluZ0luRGVza3RvcCkgPyBDb21tYW5kTmFtZXNwYWNlLlRhYlVJIDogQ29tbWFuZE5hbWVzcGFjZS5UYWJTcnYpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkdldEZpbHRlcnMsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5HZXRXb3Jrc2hlZXRGaWx0ZXJzLFxyXG4gICAgICBbbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlZpc3VhbElkLCBQTC5WaXN1YWxJRFBNKV0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5Xb3Jrc2hlZXRGaWx0ZXJzLCBQTC5GaWx0ZXJzSW5mbykpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkdldENhdGVnb3JpY2FsRG9tYWluLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0Q2F0ZWdvcmljYWxEb21haW4sXHJcbiAgICAgIFtuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLlZpc3VhbElEUE0pLFxyXG4gICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkZpZWxkSWQsIFBMLkZpZWxkTmFtZSksXHJcbiAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRG9tYWluVHlwZSwgUEwuRmlsdGVyRG9tYWluVHlwZSldLFxyXG4gICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkNhdGVnb3JpY2FsRG9tYWluLCBQTC5DYXRlZ29yaWNhbERvbWFpbikpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkdldFJhbmdlRG9tYWluLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0UXVhbnRpdGF0aXZlRG9tYWluLFxyXG4gICAgICBbbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlZpc3VhbElkLCBQTC5WaXN1YWxJRFBNKSxcclxuICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWVsZElkLCBQTC5GaWVsZE5hbWUpLFxyXG4gICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkRvbWFpblR5cGUsIFBMLkZpbHRlckRvbWFpblR5cGUpXSxcclxuICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5RdWFudGl0YXRpdmVEb21haW4sIFBMLlF1YW50aXRhdGl2ZURvbWFpbikpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkdldEpvaW5EZXNjcmlwdGlvbixcclxuICAgICAgUHJlc0xheWVyRG9jQ29tbWFuZElkLkdldEpvaW5EZXNjcmlwdGlvblByZXNNb2RlbCxcclxuICAgICAgW25ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5EYXRhU291cmNlSWQsIFBMLkRhdGFzb3VyY2UpXSxcclxuICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkpvaW5EZXNjcmlwdGlvbiwgUEwuSm9pbkRlc2NyaXB0aW9uKSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuR2V0Q29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyaWVzLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0Q29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeVByZXNNb2RlbHMsXHJcbiAgICAgIFtuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRGF0YVNvdXJjZUlkLCBQTC5EYXRhc291cmNlKV0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5Db25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJpZXMsIFBMLkNvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcmllcykpKTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9Db21tYW5kTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeS50c1xuICoqLyIsIi8qIHRzbGludDpkaXNhYmxlICovXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vXHJcbi8vIFRoaXMgZmlsZSBpcyB0aGUgY29weXJpZ2h0ZWQgcHJvcGVydHkgb2YgVGFibGVhdSBTb2Z0d2FyZSBhbmQgaXMgcHJvdGVjdGVkXHJcbi8vIGJ5IHJlZ2lzdGVyZWQgcGF0ZW50cyBhbmQgb3RoZXIgYXBwbGljYWJsZSBVLlMuIGFuZCBpbnRlcm5hdGlvbmFsIGxhd3MgYW5kXHJcbi8vIHJlZ3VsYXRpb25zLlxyXG4vL1xyXG4vLyBVbmxpY2Vuc2VkIHVzZSBvZiB0aGUgY29udGVudHMgb2YgdGhpcyBmaWxlIGlzIHByb2hpYml0ZWQuIFBsZWFzZSByZWZlciB0b1xyXG4vLyB0aGUgTk9USUNFUy50eHQgZmlsZSBmb3IgZnVydGhlciBkZXRhaWxzLlxyXG4vL1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBXQVJOSU5HOiBDb21wdXRlciBnZW5lcmF0ZWQgZmlsZS4gIERvIG5vdCBoYW5kIG1vZGlmeS5cclxuLy8gREVQRU5EUyBPTjogWycuLi90eXBlc2NyaXB0L2pzLWFwaS9hcGktY29yZS9ub2RlX21vZHVsZXMvQHRhYmxlYXUvcHJlc2xheWVyLWNvZGVnZW4tdHlwZXNjcmlwdC90ZW1wbGF0ZXMvY29tbWFuZHMtZW51bS10cy50ZW1wbGF0ZScsIHUnLi4vdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWNvcmUvdGVtcC1wcmVzLWxheWVyL2FsbC1jbWQtd3JhcHBlcnMuZGF0YSddXHJcblxyXG5leHBvcnQgZW51bSBEb2NDb21tYW5kcyB7XHJcblxyXG4gICAgLy8gU2F2ZXMgdGhlIHNldHRpbmdzIGZvciB0aGUgc3BlY2lmaWVkIGFkZC1pbiBpZFxyXG4gICAgU2F2ZUFkZEluU2V0dGluZ3MgPSAnc2F2ZS1hZGQtaW4tc2V0dGluZ3MnLFxyXG5cclxuICAgIC8vIEdldHMgdGhlIHByZXMgbW9kZWwgZm9yIGFuIGFkZC1pbiBpbnN0YW5jZS5cclxuICAgIEdldEFkZEluSW5zdGFuY2VQcmVzTW9kZWwgPSAnZ2V0LWFkZC1pbi1pbnN0YW5jZS1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSBwcmVzIG1vZGVsIGZvciB0aGUgZGFzaGJvYXJkIGF1dGhvcmluZyB3aWRnZXQgZm9yIGFkZC1pbnMuXHJcbiAgICBHZXRBZGRJbkRhc2hib2FyZEF1dGhvcmluZ1dpZGdldFByZXNNb2RlbCA9ICdnZXQtYWRkLWluLWRhc2hib2FyZC1hdXRob3Jpbmctd2lkZ2V0LXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIEdldHMgdGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiBmb3IgYW4gYWRkLWluIHRvIGluaXRpYWxpemUgaXRzZWxmLlxyXG4gICAgSW5pdGlhbGl6ZUFkZEluSW5zdGFuY2UgPSAnaW5pdGlhbGl6ZS1hZGQtaW4taW5zdGFuY2UnLFxyXG5cclxuICAgIC8vIEVuYWJsZXMgb3IgZGlzYWJsZSBqYXZhc2NyaXB0IGRlYnVnZ2luZyBvZiBhbiBhZGQtaW4uXHJcbiAgICBTZXRBZGRJbkpzRGVidWdnaW5nRW5hYmxlZCA9ICdzZXQtYWRkLWluLWpzLWRlYnVnZ2luZy1lbmFibGVkJyxcclxuXHJcbiAgICAvLyBXaGV0aGVyIG9yIG5vdCB3ZSBzaG91bGQgcGF1c2UgYmVmb3JlIGxvYWRpbmcuIElmIG1pc3NpbmcsIHRvZ2dsZSB0aGUgdmFsdWVcclxuICAgIFNldFBhdXNlQmVmb3JlTG9hZGluZ0FkZEluID0gJ3NldC1wYXVzZS1iZWZvcmUtbG9hZGluZy1hZGQtaW4nLFxyXG5cclxuICAgIC8vIFJlbG9hZHMgdGhlIEFkZC1JbiB3aWRnZXQgYW5kIHdlYiBwYWdlLlxyXG4gICAgUmVsb2FkQWRkSW4gPSAncmVsb2FkLWFkZC1pbicsXHJcblxyXG4gICAgLy8gUmV0cmlldmVzIHRoZSBjb250ZXh0IG1lbnUgZm9yIGEgZGFzaGJvYXJkIGFkZC1pbi5cclxuICAgIEdldEFkZEluWm9uZUNvbnRleHRNZW51ID0gJ2dldC1hZGQtaW4tem9uZS1jb250ZXh0LW1lbnUnLFxyXG5cclxuICAgIC8vIEdldHMgdGhlIHByZXMgbW9kZWwgd2hpY2ggaW5kaWNhdGVzIHdoYXQgdGhlIGRlYnVnIHNldHRpbmdzIGZvciBhZGQtaW5zIGlzLlxyXG4gICAgR2V0QWRkSW5EZWJ1Z1NldHRpbmdzUHJlc01vZGVsID0gJ2dldC1hZGQtaW4tZGVidWctc2V0dGluZ3MtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gUHJpbWFyeSB1c2UgaXMgZm9yIGJ1aWxkaW5nIGNvbnRleHQgbWVudXNcclxuICAgIElzU2VsZWN0aW9uQW5FZGl0YWJsZVBhcmFtZXRlciA9ICdpcy1zZWxlY3Rpb24tYW4tZWRpdGFibGUtcGFyYW1ldGVyJyxcclxuXHJcbiAgICAvLyBDaGVjayBpZiBzZWxlY3Rpb24gY2FuIGJlIHVzZWQgYXMgYmFzZSBmb3IgY3JlYXRpbmcgYSBuZXcgcGFyYW1ldGVyLiBQcmltYXJ5IHVzZSBpcyBmb3IgYnVpbGRpbmcgY29udGV4dCBtZW51c1xyXG4gICAgR2V0Q3JlYXRlUGFyYW1ldGVyU3RhdGUgPSAnZ2V0LWNyZWF0ZS1wYXJhbWV0ZXItc3RhdGUnLFxyXG5cclxuICAgIC8vIFVzZXMgRWRpdFBhcmFtZXRlciB0byBnZXQgYW5kIHJldHVybiBpbmZvIGFib3V0IHRoZSBwcmVzbW9kZWwgd2l0aG91dCBtYWludGFpbmluZyB0aGUgY29udHJvbGxlclxyXG4gICAgR2V0UGFyYW1ldGVyRWRpdEluZm8gPSAnZ2V0LXBhcmFtZXRlci1lZGl0LWluZm8nLFxyXG5cclxuICAgIC8vIEluaXRpYWxpemUgdGhlIGNvbnRyb2xsZXIgYW5kIGl0cyBzdG9yZWQgcGFyYW1ldGVyIHRoZW4gcmV0dXJuIGEgcG9wdWxhdGVkIHByZXNtb2RlbFxyXG4gICAgQ3JlYXRlUGFyYW1ldGVyID0gJ2NyZWF0ZS1wYXJhbWV0ZXInLFxyXG5cclxuICAgIC8vIFNhbWUgdW5kZXJseWluZyBsb2dpYyBhcyBDcmVhdGVQYXJhbWV0ZXIgYnV0IGVkaXRzIHJhdGhlciB0aGFuIGNyZWF0aW5nIGEgbmV3IHBhcmFtZXRlclxyXG4gICAgRWRpdFBhcmFtZXRlcl9OZXcgPSAnZWRpdC1wYXJhbWV0ZXItbmV3JyxcclxuXHJcbiAgICAvLyBBZGQgYSBtZW1iZXIgb2YgYSBwYXJhbWV0ZXIgZG9tYWluLiBDaGFuZ2VzIGFyZSBhcHBsaWVkIHRvIGludGVybWVkaWF0ZSBzdGF0ZSBhbmQgc2F2ZWQgb24gY29tbWl0XHJcbiAgICBBZGRQYXJhbWV0ZXJNZW1iZXIgPSAnYWRkLXBhcmFtZXRlci1tZW1iZXInLFxyXG5cclxuICAgIC8vIEVkaXQgYSBtZW1iZXIgb2YgYSBwYXJhbWV0ZXIgZG9tYWluLiBDaGFuZ2VzIGFyZSBhcHBsaWVkIHRvIGludGVybWVkaWF0ZSBzdGF0ZSBhbmQgc2F2ZWQgb24gY29tbWl0XHJcbiAgICBFZGl0UGFyYW1ldGVyTWVtYmVyID0gJ2VkaXQtcGFyYW1ldGVyLW1lbWJlcicsXHJcblxyXG4gICAgLy8gRGVsZXRlIGEgc2VyaWVzIG9mIHJhbmdlcyBvZiBtZW1iZXJzIGZyb20gdGhlIHBhcmFtZXRlciBsaXN0LlxyXG4gICAgRGVsZXRlUGFyYW1ldGVyTWVtYmVycyA9ICdkZWxldGUtcGFyYW1ldGVyLW1lbWJlcnMnLFxyXG5cclxuICAgIC8vIENvcHkgYSBzZXJpZXMgb2YgcmFuZ2VzIG9mIG1lbWJlcnMgb2YgYSBwYXJhbWV0ZXIgbGlzdFxyXG4gICAgQ29weVBhcmFtZXRlck1lbWJlcnMgPSAnY29weS1wYXJhbWV0ZXItbWVtYmVycycsXHJcblxyXG4gICAgLy8gTW92ZSBhIHNlcmllcyBvZiByYW5nZXMgb2YgbWVtYmVycyBvZiBhIHBhcmFtZXRlciBsaXN0XHJcbiAgICBNb3ZlUGFyYW1ldGVyTWVtYmVycyA9ICdtb3ZlLXBhcmFtZXRlci1tZW1iZXJzJyxcclxuXHJcbiAgICAvLyBDaGFuZ2UgZG9tYWluIG9mIGEgcGFyYW1ldGVyLiBDaGFuZ2VzIGFyZSBhcHBsaWVkIHRvIGludGVybWVkaWF0ZSBzdGF0ZSBhbmQgc2F2ZWQgb24gY29tbWl0XHJcbiAgICBFZGl0UGFyYW1ldGVyRG9tYWluVHlwZSA9ICdlZGl0LXBhcmFtZXRlci1kb21haW4tdHlwZScsXHJcblxyXG4gICAgLy8gQ2hhbmdlIGRhdGF0eXBlIG9mIGEgcGFyYW1ldGVyLiBDaGFuZ2VzIGFyZSBhcHBsaWVkIHRvIGludGVybWVkaWF0ZSBzdGF0ZSBhbmQgc2F2ZWQgb24gY29tbWl0XHJcbiAgICBFZGl0UGFyYW1ldGVyRGF0YVR5cGUgPSAnZWRpdC1wYXJhbWV0ZXItZGF0YS10eXBlJyxcclxuXHJcbiAgICAvLyBDaGFuZ2UgZGlzcGxheSBmb3JtYXQgb2YgYSBwYXJhbWV0ZXIuIENoYW5nZXMgYXJlIGFwcGxpZWQgdG8gaW50ZXJtZWRpYXRlIHN0YXRlIGFuZCBzYXZlZCBvbiBjb21taXRcclxuICAgIEVkaXRQYXJhbWV0ZXJGb3JtYXQgPSAnZWRpdC1wYXJhbWV0ZXItZm9ybWF0JyxcclxuXHJcbiAgICAvLyBWYWxpZGF0ZSBjaGFuZ2VzIHRvIGEgcGFyYW1ldGVyJ3MgcmFuZ2UgZG9tYWluIGFuZCBhcHBseSB0byBpbnRlcm1lZGlhdGUgc3RhdGUuIENoYW5nZXMgYXJlIHNhdmVkIG9uIGNvbW1pdFxyXG4gICAgRWRpdFBhcmFtZXRlclJhbmdlID0gJ2VkaXQtcGFyYW1ldGVyLXJhbmdlJyxcclxuXHJcbiAgICAvLyBFZGl0IHRoZSB2YWx1ZSBvZiBhIG5vbi1saXN0IGRvbWFpbiBwYXJhbWV0ZXJcclxuICAgIEVkaXRQYXJhbWV0ZXJWYWx1ZSA9ICdlZGl0LXBhcmFtZXRlci12YWx1ZScsXHJcblxyXG4gICAgLy8gRWRpdCB0aGUgdmFsdWUgb2YgYSBsaXN0IGRvbWFpbiBwYXJhbWV0ZXJcclxuICAgIEVkaXRQYXJhbWV0ZXJWYWx1ZUluZGV4ID0gJ2VkaXQtcGFyYW1ldGVyLXZhbHVlLWluZGV4JyxcclxuXHJcbiAgICAvLyBVcGRhdGUgdGhlIHBhcmFtZXRlciBjYXB0aW9uIGFuZCBkZXNjcmlwdGlvbiAtIHVzZWQgdG8ga2VlcCBiYWNrZW5kIGluIHN5bmMuIE5vIHZlcmlmaWNhdGlvbi9yZXR1cm4gaXMgcmVxdXJpZWQuXHJcbiAgICBFZGl0UGFyYW1ldGVyRGlzcGxheUluZm8gPSAnZWRpdC1wYXJhbWV0ZXItZGlzcGxheS1pbmZvJyxcclxuXHJcbiAgICAvLyBVcGRhdGUgdGhlIGRvbWFpbiBvZiB0aGUgcGFyYW1ldGVyIHVzaW5nIGEgZmllbGQgKGNvbHVtbiBvciBwYXJhbWV0ZXIpIGFzIGEgYmFzZVxyXG4gICAgVXBkYXRlUGFyYW1ldGVyRnJvbUZpZWxkID0gJ3VwZGF0ZS1wYXJhbWV0ZXItZnJvbS1maWVsZCcsXHJcblxyXG4gICAgLy8gVXBkYXRlIHRoZSBsaXN0IGRvbWFpbiBvZiBhIHBhcmFtZXRlciBmcm9tIGEgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB2YWx1ZXNcclxuICAgIFBhcnNlUGFyYW1ldGVyTGlzdERvbWFpbiA9ICdwYXJzZS1wYXJhbWV0ZXItbGlzdC1kb21haW4nLFxyXG5cclxuICAgIC8vIENsZWFycyB0aGUgcGFyYW1ldGVyJ3MgZG9tYWluIG9mIGFsbCBtZW1iZXJzXHJcbiAgICBDbGVhclBhcmFtZXRlckxpc3REb21haW4gPSAnY2xlYXItcGFyYW1ldGVyLWxpc3QtZG9tYWluJyxcclxuXHJcbiAgICAvLyBDcmVhdGVzIG9yIGVkaXRzIHBhcmFtZXRlciBmcm9tIGludGVybWVkaWF0ZSBzdGF0ZS4gVGFrZXMgYSBmZXcgcHJvcGVydGllcyB0aGF0IGFyZSBjYWNoZWQgaW4gZGlhbG9nIGFuZCBhcHBsaWVzIHRoZW0gcHJlLWNvbW1pdC5cclxuICAgIENvbW1pdFBhcmFtZXRlckVkaXRzID0gJ2NvbW1pdC1wYXJhbWV0ZXItZWRpdHMnLFxyXG5cclxuICAgIC8vIEdldHMgdGhlIG1vZGVsIGZvciBhIHBhcnRpY3VsYXIgcGFyYW1ldGVyIG9yIHJldHVybnMgYW4gZW1wdHkgcmVzcG9uc2UgaWYgb25lIGlzIG5vdCBmb3VuZC5cclxuICAgIEZpbmRQYXJhbWV0ZXJNb2RlbCA9ICdmaW5kLXBhcmFtZXRlci1tb2RlbCcsXHJcblxyXG4gICAgLy8gR2V0cyB0aGUgcHJlcyBtb2RlbCBmb3IgdGhlIHNob3cgZGF0YSBkaWFsb2dcclxuICAgIEdldFNob3dEYXRhUHJlc01vZGVsID0gJ2dldC1zaG93LWRhdGEtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gRXhwb3J0IHVuZGVybHlpbmcgZGF0YSBmcm9tIHRoZSBTaG93RGF0YURpYWxvZyB0byBhIENTViBmaWxlXHJcbiAgICBTaG93RGF0YUV4cG9ydFRvQ1NWID0gJ3Nob3ctZGF0YS1leHBvcnQtdG8tY3N2JyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSBzdW1tYXJ5IGRhdGEgZm9yIGEgd29ya3NoZWV0XHJcbiAgICBHZXRTdW1tYXJ5RGF0YSA9ICdnZXQtc3VtbWFyeS1kYXRhJyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSB1bmRlcmx5aW5nIGRhdGEgZm9yIGEgd29ya3NoZWV0XHJcbiAgICBHZXRVbmRlcmx5aW5nRGF0YSA9ICdnZXQtdW5kZXJseWluZy1kYXRhJyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSB1bmRlcmx5aW5nIGRhdGEgZm9yIGEgc3BlY2lmaWMgZGF0YSBzb3VyY2UuXHJcbiAgICBHZXREYXRhU291cmNlRGF0YSA9ICdnZXQtZGF0YS1zb3VyY2UtZGF0YScsXHJcblxyXG4gICAgLy8gU2VsZWN0IGFsbCBtYXJrcyB0aGF0IGhhdmUgdGhlIHR1cGxlJ3MgdmFsdWUgZm9yIHRoZSBnaXZlbiBmaWVsZCAuXHJcbiAgICBTZWxlY3RCeVR1cGxlVmFsdWUgPSAnc2VsZWN0LWJ5LXR1cGxlLXZhbHVlJyxcclxuXHJcbiAgICAvLyBDbGVhciBhbGwgdGhlIHNlbGVjdGVkIG1hcmtzIGZvciB0aGUgZ2l2ZW4gd29ya3NoZWV0XHJcbiAgICBDbGVhclNlbGVjdGVkTWFya3MgPSAnY2xlYXItc2VsZWN0ZWQtbWFya3MnLFxyXG5cclxuICAgIC8vIENyZWF0ZXMgb3IgdXBkYXRlcyBhbmQgZXhpc3RpbmcgZmlsdGVyIGJhc2VkIG9uIHRoZSBwcm92aWRlZCB1cGRhdGVzLlxyXG4gICAgQXBwbHlDYXRlZ29yaWNhbEZpbHRlclVwZGF0ZXMgPSAnYXBwbHktY2F0ZWdvcmljYWwtZmlsdGVyLXVwZGF0ZXMnLFxyXG5cclxuICAgIC8vIFNlYXJjaCBmaWx0ZXIgZG9tYWluIGZvciB0ZXh0IGFuZCByZXR1cm4gYW55IG1hdGNoaW5nIHR1cGxlcy5cclxuICAgIENhdGVnb3JpY2FsRmlsdGVyU2VhcmNoID0gJ2NhdGVnb3JpY2FsLWZpbHRlci1zZWFyY2gnLFxyXG5cclxuICAgIC8vIENsZWFyIGFsbCBtZW1iZXJzIGZyb20gdGhlIHRhYmxlIG9mIHRoZSBpZGVudGlmaWVkIGNhY2hlLlxyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJDbGVhclJlbGF0aW9uYWxDYWNoZSA9ICdjYXRlZ29yaWNhbC1maWx0ZXItY2xlYXItcmVsYXRpb25hbC1jYWNoZScsXHJcblxyXG4gICAgLy8gQ3JlYXRlIHR1cGxlcyBmb3IgYW4gZXhpc3RpbmcgZmlsdGVyIGZyb20gc3VwcGxpZWQgdGV4dC5cclxuICAgIEdldENhdGVnb3JpY2FsRmlsdGVyVHVwbGVzRnJvbVRleHQgPSAnZ2V0LWNhdGVnb3JpY2FsLWZpbHRlci10dXBsZXMtZnJvbS10ZXh0JyxcclxuXHJcbiAgICAvLyBSZXR1cm5zIGEgcHJlc21vZGVsIGJhY2tpbmcgYSBjYXRlZ29yaWNhbCBmaWx0ZXIsIGluaXRpYWxpemluZyBhIGRhdGEgY2FjaGUgZm9yIGZhc3QgbG9va3VwIG9mIHRoZSBmaWx0ZXIncyBtZW1iZXIgZG9tYWluLlxyXG4gICAgR2V0Q2F0ZWdvcmljYWxGaWx0ZXIgPSAnZ2V0LWNhdGVnb3JpY2FsLWZpbHRlcicsXHJcblxyXG4gICAgLy8gUmV0cmlldmVzIGEgcGFnZSBvZiBkYXRhIHRvIGRpc3BsYXkgaW4gdGhlIGZpbHRlcidzIGxpc3QgZG9tYWluXHJcbiAgICBHZXRDYXRlZ29yaWNhbEZpbHRlckRvbWFpblBhZ2UgPSAnZ2V0LWNhdGVnb3JpY2FsLWZpbHRlci1kb21haW4tcGFnZScsXHJcblxyXG4gICAgLy8gUmVzZXQgZmlsdGVyIHRvIGNvbW1pdHRlZCBzdGF0ZVxyXG4gICAgUmVzZXRDYXRlZ29yaWNhbEZpbHRlckRlZmVycmVkID0gJ3Jlc2V0LWNhdGVnb3JpY2FsLWZpbHRlci1kZWZlcnJlZCcsXHJcblxyXG4gICAgLy8gVXNlIHVuY29tbWl0dGVkIHN0YXRlIHRvIHJlc2V0IHRoZSBmaWx0ZXIncyBjb250cm9sbGVyXHJcbiAgICBSZWNyZWF0ZUNhdGVnb3JpY2FsRmlsdGVyQ29udHJvbGxlciA9ICdyZWNyZWF0ZS1jYXRlZ29yaWNhbC1maWx0ZXItY29udHJvbGxlcicsXHJcblxyXG4gICAgLy8gVmFsaWRhdGVzIGEgQ2F0ZWdyb2ljYWwgRmlsdGVyIG5hbWUuXHJcbiAgICBWYWxpZGF0ZUNhdGVnb3JpY2FsRmlsdGVyTmFtZSA9ICd2YWxpZGF0ZS1jYXRlZ29yaWNhbC1maWx0ZXItbmFtZScsXHJcblxyXG4gICAgLy8gUmV0cmlldmVzIHRoZSBmaWVsZCBhZ2dyZWdhdGlvbnMgYWxsb3dlZCBmb3IgdGhlIGZpZWxkIGJlaW5nIGZpbHRlcmVkLlxyXG4gICAgR2V0RmlsdGVyRmllbGRBZ2dyZWdhdGlvbnMgPSAnZ2V0LWZpbHRlci1maWVsZC1hZ2dyZWdhdGlvbnMnLFxyXG5cclxuICAgIC8vIEdldHMgYSBzdW1tYXJ5IG9mIHRoZSBmaWx0ZXIgcGF0dGVybi5cclxuICAgIEdldENhdGVnb3JpY2FsRmlsdGVyUGF0dGVyblN1bW1hcnkgPSAnZ2V0LWNhdGVnb3JpY2FsLWZpbHRlci1wYXR0ZXJuLXN1bW1hcnknLFxyXG5cclxuICAgIC8vIEdldHMgYSBzdW1tZXJ5IG9mIHRoZSBmaWx0ZXIgY29uZGl0aW9uLlxyXG4gICAgR2V0Q2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25TdW1tYXJ5ID0gJ2dldC1jYXRlZ29yaWNhbC1maWx0ZXItY29uZGl0aW9uLXN1bW1hcnknLFxyXG5cclxuICAgIC8vIExvYWQgdGhlIGN1cnJlbnQgbWluaW11bSBhbmQgbWF4aW11bSBkYXRhIHZhbHVlIHJhbmdlIGZvciB0aGUgY29uZGl0aW9uIGZpZWxkLlxyXG4gICAgTG9hZENhdGVnb3JpY2FsRmlsdGVyQ29uZGl0aW9uRmllbGRWYWx1ZVJhbmdlID0gJ2xvYWQtY2F0ZWdvcmljYWwtZmlsdGVyLWNvbmRpdGlvbi1maWVsZC12YWx1ZS1yYW5nZScsXHJcblxyXG4gICAgLy8gVmFsaWRhdGVzIGEgQ2F0ZWdvcmljYWwgRmlsdGVyJ3MgY29uZGl0aW9uIGZvcm11bGEgYW5kIHJlLXdyaXRlcyBpdC5cclxuICAgIFZhbGlkYXRlQ2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25Gb3JtdWxhID0gJ3ZhbGlkYXRlLWNhdGVnb3JpY2FsLWZpbHRlci1jb25kaXRpb24tZm9ybXVsYScsXHJcblxyXG4gICAgLy8gR2V0cyBhIHN1bW1lcnkgb2YgdGhlIGZpbHRlciBsaW1pdC5cclxuICAgIEdldENhdGVnb3JpY2FsRmlsdGVyTGltaXRTdW1tYXJ5ID0gJ2dldC1jYXRlZ29yaWNhbC1maWx0ZXItbGltaXQtc3VtbWFyeScsXHJcblxyXG4gICAgLy8gVmFsaWRhdGVzIGEgQ2F0ZWdvcmljYWwgRmlsdGVyJ3MgbGltaXQgY291bnQuXHJcbiAgICBWYWxpZGF0ZUNhdGVnb3JpY2FsRmlsdGVyTGltaXRDb3VudCA9ICd2YWxpZGF0ZS1jYXRlZ29yaWNhbC1maWx0ZXItbGltaXQtY291bnQnLFxyXG5cclxuICAgIC8vIFZhbGlkYXRlcyBhIENhdGVnb3JpY2FsIEZpbHRlcidzIGxpbWl0IGZvcm11bGEsIGFuZCByZS13cml0ZXMgdGhlIGZvcm11bGEuXHJcbiAgICBWYWxpZGF0ZUNhdGVnb3JpY2FsRmlsdGVyTGltaXRGb3JtdWxhID0gJ3ZhbGlkYXRlLWNhdGVnb3JpY2FsLWZpbHRlci1saW1pdC1mb3JtdWxhJyxcclxuXHJcbiAgICAvLyBWYWxpZGF0ZXMgYSBDYXRlZ29yaWNhbCBGaWx0ZXIncyBsaW1pdC5cclxuICAgIFZhbGlkYXRlQ2F0ZWdvcmljYWxGaWx0ZXJMaW1pdCA9ICd2YWxpZGF0ZS1jYXRlZ29yaWNhbC1maWx0ZXItbGltaXQnLFxyXG5cclxuICAgIC8vIEluZm9ybSBjYWNoZSB3aGVuIGEgdXNlciBjaGFuZ2VzIHRoZSByYW5nZVxyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJTZXRSYW5nZVR5cGVEZWZlcnJlZCA9ICdjYXRlZ29yaWNhbC1maWx0ZXItc2V0LXJhbmdlLXR5cGUtZGVmZXJyZWQnLFxyXG5cclxuICAgIC8vIEluZm9ybSBjYWNoZSB3aGVuIGEgdXNlciBjaGFuZ2VzIHdoZXRoZXIgdGhlIHNlbGVjdGlvbiBpcyBleGNsdXNpdmVcclxuICAgIENhdGVnb3JpY2FsRmlsdGVyU2V0U2VsZWN0aW9uRXhjbHVzaXZlRGVmZXJyZWQgPSAnY2F0ZWdvcmljYWwtZmlsdGVyLXNldC1zZWxlY3Rpb24tZXhjbHVzaXZlLWRlZmVycmVkJyxcclxuXHJcbiAgICAvLyBJbmZvcm0gY2FjaGUgd2hlbiBhIHVzZXIgY2hhbmdlcyB3aGV0aGVyIGFuIGVtcHR5IHNlbGVjdGlvbiBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHNlbGVjdGlvbiBvZiAnQWxsJyBpbiBhIE1hbnVhbCBzZWxlY3Rpb24gbW9kZVxyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJTZXRVc2VBbGxXaGVuTWFudWFsSXNFbXB0eURlZmVycmVkID0gJ2NhdGVnb3JpY2FsLWZpbHRlci1zZXQtdXNlLWFsbC13aGVuLW1hbnVhbC1pcy1lbXB0eS1kZWZlcnJlZCcsXHJcblxyXG4gICAgLy8gSW5mb3JtIGNhY2hlIHdoZW4gYSB1c2VyIGFsdGVycyB0aGUgcHJlc2V0IHR5cGVcclxuICAgIENhdGVnb3JpY2FsRmlsdGVyU2V0UHJlc2V0VHlwZURlZmVycmVkID0gJ2NhdGVnb3JpY2FsLWZpbHRlci1zZXQtcHJlc2V0LXR5cGUtZGVmZXJyZWQnLFxyXG5cclxuICAgIC8vIEluZm9ybSBjYWNoZSB0aGUgdXNlciBoYXMgc2VsZWN0ZWQgb25lIG9yIG1vcmUgbWVtYmVyc1xyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJTZWxlY3RSZWxhdGlvbmFsTWVtYmVyc0RlZmVycmVkID0gJ2NhdGVnb3JpY2FsLWZpbHRlci1zZWxlY3QtcmVsYXRpb25hbC1tZW1iZXJzLWRlZmVycmVkJyxcclxuXHJcbiAgICAvLyBJbmZvcm0gY2FjaGUgdGhlIHVzZXIgaGFzIGRlc2VsZWN0ZWQgb25lIG9yIG1vcmUgbWVtYmVyc1xyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJEZXNlbGVjdFJlbGF0aW9uYWxNZW1iZXJzRGVmZXJyZWQgPSAnY2F0ZWdvcmljYWwtZmlsdGVyLWRlc2VsZWN0LXJlbGF0aW9uYWwtbWVtYmVycy1kZWZlcnJlZCcsXHJcblxyXG4gICAgLy8gSW5mb3JtIGNhY2hlIHdoZW4gYSB1c2VyIHNlbGVjdHMgZXZlcnl0aGluZyBpbiB0aGUgZG9tYWluXHJcbiAgICBDYXRlZ29yaWNhbEZpbHRlclNlbGVjdEFsbFJlbGF0aW9uYWxNZW1iZXJzRGVmZXJyZWQgPSAnY2F0ZWdvcmljYWwtZmlsdGVyLXNlbGVjdC1hbGwtcmVsYXRpb25hbC1tZW1iZXJzLWRlZmVycmVkJyxcclxuXHJcbiAgICAvLyBJbmZvcm0gY2FjaGUgd2hlbiBhIHVzZXIgZGVzZWxlY3RzIGV2ZXJ5dGhpbmcgaW4gdGhlIGRvbWFpblxyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJEZXNlbGVjdEFsbFJlbGF0aW9uYWxNZW1iZXJzRGVmZXJyZWQgPSAnY2F0ZWdvcmljYWwtZmlsdGVyLWRlc2VsZWN0LWFsbC1yZWxhdGlvbmFsLW1lbWJlcnMtZGVmZXJyZWQnLFxyXG5cclxuICAgIC8vIEluZm9ybSBjYWNoZSB0aGUgdXNlciB3YW50cyB0byBzZWUgYSBkaWZmZXJlbnQgZG9tYWluIChlLmcuIHJlbGV2YW50IHZhbHVlcyBvbmx5KVxyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJTZXREb21haW5UeXBlRGVmZXJyZWQgPSAnY2F0ZWdvcmljYWwtZmlsdGVyLXNldC1kb21haW4tdHlwZS1kZWZlcnJlZCcsXHJcblxyXG4gICAgLy8gU2V0IHdoZXRoZXIgZmlsdGVycyBhcHBseSB0byB0b3RhbHMgYXMgd2VsbCBhcyBub24tdG90YWxzIHRhYmxlIGNhbGNzXHJcbiAgICBGaWx0ZXJBcHBseVRvVG90YWxUYWJsZUNhbGNzID0gJ2ZpbHRlci1hcHBseS10by10b3RhbC10YWJsZS1jYWxjcycsXHJcblxyXG4gICAgLy8gR2V0cyB0aGUgbGlzdCBvZiBmaWx0ZXJzIHVzZWQgaW4gYSB3b3Jrc2hlZXRcclxuICAgIEdldFdvcmtzaGVldEZpbHRlcnMgPSAnZ2V0LXdvcmtzaGVldC1maWx0ZXJzJyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSBkb21haW4gZm9yIGEgY2F0ZWdvcmljYWwgRmlsdGVyXHJcbiAgICBHZXRDYXRlZ29yaWNhbERvbWFpbiA9ICdnZXQtY2F0ZWdvcmljYWwtZG9tYWluJyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSBkb21haW4gZm9yIGEgcXVhbnRpdGF0aXZlIEZpbHRlclxyXG4gICAgR2V0UXVhbnRpdGF0aXZlRG9tYWluID0gJ2dldC1xdWFudGl0YXRpdmUtZG9tYWluJyxcclxuXHJcbiAgICAvLyBDcmVhdGVzIGEgZGF0YXNvdXJjZSBmaWx0ZXIgc3RvcmUgYW5kIHJldHVybnMgYSBsaXN0IG9mIHRoZSBjdXJyZW50IGRhdGFzb3VyY2UgZmlsdGVycy5cclxuICAgIENyZWF0ZURhdGFzb3VyY2VGaWx0ZXJTdG9yZSA9ICdjcmVhdGUtZGF0YXNvdXJjZS1maWx0ZXItc3RvcmUnLFxyXG5cclxuICAgIC8vIENvbW1pdHMgdGhlIHBlbmRpbmcgZGF0YXNvdXJjZSBmaWx0ZXIgY2hhbmdlcyBpbiB0aGUgZmlsdGVyIHN0b3JlLlxyXG4gICAgQ29tbWl0RGF0YXNvdXJjZUZpbHRlclN0b3JlID0gJ2NvbW1pdC1kYXRhc291cmNlLWZpbHRlci1zdG9yZScsXHJcblxyXG4gICAgLy8gR2V0cyB0aGUgbGlzdCBvZiBkYXRhc291cmNlIGZpZWxkcyB0aGF0IGNhbiBiZSBmaWx0ZXJlZC5cclxuICAgIEdldERhdGFzb3VyY2VGaWx0ZXJGaWVsZFBpY2tlck1vZGVsID0gJ2dldC1kYXRhc291cmNlLWZpbHRlci1maWVsZC1waWNrZXItbW9kZWwnLFxyXG5cclxuICAgIC8vIEdldCBmaWVsZCBpbmZvcm1hdGlvbiBuZWVkZWQgZm9yIGNyZWF0aW5nIGEgZGF0YXNvdXJjZSBmaWx0ZXIuXHJcbiAgICBHZXREYXRhc291cmNlRmlsdGVyRmllbGRJbmZvID0gJ2dldC1kYXRhc291cmNlLWZpbHRlci1maWVsZC1pbmZvJyxcclxuXHJcbiAgICAvLyBHZXRzIGEgZmlsdGVyIHByZXNlbnRhdGlvbiBtb2RlbCBmb3JtIGEgZmlsdGVyIHN0b3JlLlxyXG4gICAgR2V0RmlsdGVyRnJvbVN0b3JlID0gJ2dldC1maWx0ZXItZnJvbS1zdG9yZScsXHJcblxyXG4gICAgLy8gUmVtb3ZlcyBhIGZpbHRlciBmcm9tIGEgZmlsdGVyIHN0b3JlLlxyXG4gICAgUmVtb3ZlRmlsdGVyRnJvbVN0b3JlID0gJ3JlbW92ZS1maWx0ZXItZnJvbS1zdG9yZScsXHJcblxyXG4gICAgLy8gUmVsZWFzZXMgYSBmaWx0ZXIgc3RvcmUsIGFuZCBpdHMgcmVzb3VyY2VzLCBvbmNlIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuXHJcbiAgICBSZWxlYXNlRmlsdGVyU3RvcmUgPSAncmVsZWFzZS1maWx0ZXItc3RvcmUnLFxyXG5cclxuXHJcbiAgICAvLyBcclxuICAgIEdldEhpZ2hsaWdodGVkRGF0YSA9ICdnZXQtaGlnaGxpZ2h0ZWQtZGF0YScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTZWxlY3Rpb25EYXRhID0gJ2dldC1zZWxlY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2VsZWN0ID0gJ3NlbGVjdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZWxlY3RBbGwgPSAnc2VsZWN0LWFsbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZWxlY3RCeVZhbHVlID0gJ3NlbGVjdC1ieS12YWx1ZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZWxlY3ROb25lSW5jbHVkaW5nTWFzdGVyID0gJ3NlbGVjdC1ub25lLWluY2x1ZGluZy1tYXN0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkTWFudWFsSXRlbXNUb0ZpbHRlciA9ICdhZGQtbWFudWFsLWl0ZW1zLXRvLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDYXRlZ29yaWNhbEZpbHRlciA9ICdjYXRlZ29yaWNhbC1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJCeUluZGV4ID0gJ2NhdGVnb3JpY2FsLWZpbHRlci1ieS1pbmRleCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDaGFuZ2VTaGFyZWRGaWx0ZXIgPSAnY2hhbmdlLXNoYXJlZC1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJDb250ZXh0RmlsdGVycyA9ICdjbGVhci1jb250ZXh0LWZpbHRlcnMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJFeGlzdGluZ0ZpbHRlciA9ICdjbGVhci1leGlzdGluZy1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVmYXVsdEZpbHRlciA9ICdkZWZhdWx0LWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGaWx0ZXJHZW8gPSAnZmlsdGVyLWdlbycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGaWx0ZXJOZWcgPSAnZmlsdGVyLW5lZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGaWx0ZXJOdWxscyA9ICdmaWx0ZXItbnVsbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRmlsdGVyVGFyZ2V0cyA9ICdmaWx0ZXItdGFyZ2V0cycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTaGFyZWRGaWx0ZXJQcmVzTW9kZWwgPSAnZ2V0LXNoYXJlZC1maWx0ZXItcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWVyYXJjaGljYWxGaWx0ZXIgPSAnaGllcmFyY2hpY2FsLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBLZWVwT25seU9yRXhjbHVkZSA9ICdrZWVwLW9ubHktb3ItZXhjbHVkZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSYW5nZUZpbHRlciA9ICdyYW5nZS1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVsRGF0ZUZpbHRlciA9ICdyZWxhdGl2ZS1kYXRlLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXNldEZpbHRlciA9ICdyZXNldC1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0dlb0F0RGVmYXVsdCA9ICdzaG93LWdlby1hdC1kZWZhdWx0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dTVkF0RGVmYXVsdCA9ICdzaG93LXN2LWF0LWRlZmF1bHQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVG9nZ2xlTG9ja1F1aWNrRmlsdGVycyA9ICd0b2dnbGUtbG9jay1xdWljay1maWx0ZXJzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFkZERhdGFDb25uZWN0aW9uID0gJ2FkZC1kYXRhLWNvbm5lY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkRHJpbGxQYXRoID0gJ2FkZC1kcmlsbC1wYXRoJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFkZENyZWRlbnRpYWxzRnJvbUtleWNoYWluID0gJ2FkZC1jcmVkZW50aWFscy1mcm9tLWtleWNoYWluJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFkZENyZWRlbnRpYWxzRnJvbUtleWNoYWluRmlsZSA9ICdhZGQtY3JlZGVudGlhbHMtZnJvbS1rZXljaGFpbi1maWxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFkZEZpZWxkRm9sZGVyID0gJ2FkZC1maWVsZC1mb2xkZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkU3VidG90YWxzID0gJ2FkZC1zdWJ0b3RhbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkVG9EcmlsbFBhdGggPSAnYWRkLXRvLWRyaWxsLXBhdGgnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkVG9GaWVsZEZvbGRlciA9ICdhZGQtdG8tZmllbGQtZm9sZGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFnZ3JlZ2F0ZU1lYXN1cmVzRmxhZyA9ICdhZ2dyZWdhdGUtbWVhc3VyZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQXBwbHlDYWxjdWxhdGlvbiA9ICdhcHBseS1jYWxjdWxhdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBcHBseVBhZ2VTZXR1cE9wdGlvbnMgPSAnYXBwbHktcGFnZS1zZXR1cC1vcHRpb25zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFwcGx5VGFibGVPcHRpb25zID0gJ2FwcGx5LXRhYmxlLW9wdGlvbnMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQXBwbHlUeXBlSW5QaWxsID0gJ2FwcGx5LXR5cGUtaW4tcGlsbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBc3NlcnQgPSAnYXNzZXJ0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEF0dGVtcHRDb25uZWN0RGF0YVNvdXJjZXNPblNoZWV0ID0gJ2F0dGVtcHQtY29ubmVjdC1kYXRhc291cmNlcy1vbi1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdHRlbXB0Q29ubmVjdFdvcmtib29rID0gJ2F0dGVtcHQtY29ubmVjdC13b3JrYm9vaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdHRlbXB0RGF0YVNvdXJjZXNDb25uZWN0aW9uID0gJ2F0dGVtcHQtZGF0YXNvdXJjZXMtY29ubmVjdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdXRvVXBkYXRlcyA9ICdhdXRvLXVwZGF0ZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBCcnVzaCA9ICdoaWdobGlnaHQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQnJ1c2hTcGVjaWFsID0gJ2hpZ2hsaWdodC1zcGVjaWFsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEJ1aWxkRGF0YVNjaGVtYURhdGFTb3VyY2VDb250ZXh0TWVudSA9ICdidWlsZC1kYXRhLXNjaGVtYS1kYXRhLXNvdXJjZS1jb250ZXh0LW1lbnUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQnVpbGREYXRhU2NoZW1hQ29udGV4dE1lbnUgPSAnYnVpbGQtZGF0YS1zY2hlbWEtY29udGV4dC1tZW51JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEJ1aWxkRGF0YVNjaGVtYUZpZWxkQ29udGV4dE1lbnUgPSAnYnVpbGQtZGF0YS1zY2hlbWEtZmllbGQtY29udGV4dC1tZW51JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEJ1aWxkRGF0YVNjaGVtYURyaWxsUGF0aENvbnRleHRNZW51ID0gJ2J1aWxkLWRhdGEtc2NoZW1hLWRyaWxsLXBhdGgtY29udGV4dC1tZW51JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEJ1aWxkRmlsZVRhYmxlSW5mb1ByZXNNb2RlbCA9ICdidWlsZC1maWxlLXRhYmxlLWluZm8tcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBCdWlsZFNoZWV0VGFiQ29udGV4dE1lbnUgPSAnYnVpbGQtc2hlZXQtdGFiLWNvbnRleHQtbWVudScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDYW5jZWxEYXRhU291cmNlUHJlc01vZGVsID0gJ2NhbmNlbC1kYXRhc291cmNlLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2F0QmluTWVyZ2VTcGxpdExhYmVsID0gJ2NhdGVnb3JpY2FsLWJpbi1tZXJnZS1zcGxpdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDYXRlZ29yaWNhbFF1aWNrRmlsdGVyRWRpdCA9ICdjYXRlZ29yaWNhbC1xdWljay1maWx0ZXItZWRpdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDYXRlZ29yaWNhbFF1aWNrRmlsdGVyRXhjbHVkZVZhbHVlcyA9ICdjYXRlZ29yaWNhbC1xdWljay1maWx0ZXItZXhjbHVkZS12YWx1ZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2F0ZWdvcmljYWxRdWlja0ZpbHRlckluY2x1ZGVBbGxXaGVuRW1wdHkgPSAnY2F0ZWdvcmljYWwtcXVpY2stZmlsdGVyLWluY2x1ZGUtYWxsLXdoZW4tZW1wdHknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2F0ZWdvcmljYWxRdWlja0ZpbHRlck1vZGUgPSAnY2F0ZWdvcmljYWwtcXVpY2stZmlsdGVyLW1vZGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2F0ZWdvcmljYWxRdWlja0ZpbHRlclBhdHRlcm4gPSAnY2F0ZWdvcmljYWwtcXVpY2stZmlsdGVyLXBhdHRlcm4nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2hhbmdlQWdncmVnYXRpb24gPSAnY2hhbmdlLWFnZ3JlZ2F0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZUFscGhhTGV2ZWwgPSAnY2hhbmdlLWFscGhhLWxldmVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZUJvcmRlciA9ICdjaGFuZ2UtYm9yZGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZUZpZWxkVHlwZSA9ICdjaGFuZ2UtZmllbGQtdHlwZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDaGFuZ2VGb3JlY2FzdENvbHVtblR5cGUgPSAnY2hhbmdlLWZvcmVjYXN0LWNvbHVtbi10eXBlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZUhhbG8gPSAnY2hhbmdlLWhhbG8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2hhbmdlTWFya2VycyA9ICdjaGFuZ2UtbWFya2VycycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDaGFuZ2VTaXplID0gJ2NoYW5nZS1zaXplJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZVNoZWV0VGFiQ29sb3IgPSAnY2hhbmdlLXNoZWV0LXRhYi1jb2xvcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDbGVhckFsbEF4aXNSYW5nZXMgPSAnY2xlYXItYXhpcy1yYW5nZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJDYWxjTW9kZWwgPSAnY2xlYXItY2FsY3VsYXRpb24tbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJGaWx0ZXJzID0gJ2NsZWFyLWZpbHRlcnMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJGb3JtYXR0aW5nID0gJ2NsZWFyLWZvcm1hdHRpbmcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJGdXR1cmUgPSAnY2xlYXItZnV0dXJlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsZWFyTGF5b3V0ID0gJ2NsZWFyLWxheW91dCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDbGVhclF1aWNrRmlsdGVyID0gJ2NsZWFyLXF1aWNrLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDbGVhclNvcnRzID0gJ2NsZWFyLXNvcnRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsb3NlQ29ubmVjdGlvbiA9ICdjbG9zZS1jb25uZWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsb3NlRGF0YVNvdXJjZSA9ICdjbG9zZS1kYXRhLXNvdXJjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uQWRkR29vZ2xlQW5hbHl0aWNzRGltZW5zaW9uID0gJ2Nvbm5lY3Rpb24tYWRkLWdvb2dsZS1hbmFseXRpY3MtZGltZW5zaW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25BZGRHb29nbGVBbmFseXRpY3NNZWFzdXJlID0gJ2Nvbm5lY3Rpb24tYWRkLWdvb2dsZS1hbmFseXRpY3MtbWVhc3VyZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uQWRkTmV3VGFibGUgPSAnY29ubmVjdGlvbi1hZGQtbmV3LXRhYmxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25BZGRDb2FsZXNjZSA9ICdjb25uZWN0aW9uLWFkZC1jb2FsZXNjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uQWRkUGl2b3QgPSAnY29ubmVjdGlvbi1hZGQtcGl2b3QnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkNvbnZlcnRUb1VuaW9uQW5kRWRpdCA9ICdjb25uZWN0aW9uLWNvbnZlcnQtdG8tdW5pb24tYW5kLWVkaXQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkNvbnZlcnRUb1VuaW9uID0gJ2Nvbm5lY3Rpb24tY29udmVydC10by11bmlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRWRpdFVuaW9uID0gJ2Nvbm5lY3Rpb24tZWRpdC11bmlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uQWRkT3JFZGl0QmF0Y2hVbmlvbiA9ICdjb25uZWN0aW9uLWFkZC1vci1lZGl0LWJhdGNoLXVuaW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25DaGFuZ2VUYWJsZVByb3BlcnR5ID0gJ2Nvbm5lY3Rpb24tY2hhbmdlLXRhYmxlLXByb3BlcnR5JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25Db3VudEVudGl0eSA9ICdjb25uZWN0aW9uLWNvdW50LWVudGl0eScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRGF0YVNlcnZlckZldGNoTW9yZURhdGFzb3VyY2VzID0gJ2Nvbm5lY3Rpb24tZGF0YXNlcnZlci1mZXRjaC1tb3JlLWRhdGFzb3VyY2VzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25EYXRhU2VydmVyUHJvamVjdFNlbGVjdCA9ICdjb25uZWN0aW9uLWRhdGFzZXJ2ZXItY2hhbmdlLXNlbGVjdGVkLXByb2plY3QnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkRhdGFTZXJ2ZXJVcGRhdGVGZXRjaFBhcmFtZXRlcnMgPSAnY29ubmVjdGlvbi1kYXRhc2VydmVyLXVwZGF0ZS1mZXRjaC1wYXJhbWV0ZXJzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25EYXRhU2VydmVyRmx1c2hDYWNoZSA9ICdjb25uZWN0aW9uLWRhdGFzZXJ2ZXItZmx1c2gtY2FjaGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkRlbGV0ZUFsbFRhYmxlcyA9ICdjb25uZWN0aW9uLWRlbGV0ZS1hbGwtdGFibGVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25EZWxldGVUYWJsZSA9ICdjb25uZWN0aW9uLWRlbGV0ZS10YWJsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRWRpdEdvb2dsZUFuYWx5dGljc0FjY291bnQgPSAnY29ubmVjdGlvbi1lZGl0LWdvb2dsZS1hbmFseXRpY3MtYWNjb3VudCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRWRpdEdvb2dsZUFuYWx5dGljc0RhdGVSYW5nZSA9ICdjb25uZWN0aW9uLWVkaXQtZ29vZ2xlLWFuYWx5dGljcy1kYXRlLXJhbmdlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25FZGl0R29vZ2xlQW5hbHl0aWNzTWVhc3VyZUdyb3VwID0gJ2Nvbm5lY3Rpb24tZWRpdC1nb29nbGUtYW5hbHl0aWNzLW1lYXN1cmUtZ3JvdXAnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblRvZ2dsZUdBUXVlcnlQYXJ0aXRpb25pbmcgPSAnY29ubmVjdGlvbi10b2dnbGUtZ2EtcXVlcnktcGFydGl0aW9uaW5nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25FZGl0R29vZ2xlQW5hbHl0aWNzUHJvcGVydHkgPSAnY29ubmVjdGlvbi1lZGl0LWdvb2dsZS1hbmFseXRpY3MtcHJvcGVydHknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkVkaXRHb29nbGVBbmFseXRpY3NWaWV3ID0gJ2Nvbm5lY3Rpb24tZWRpdC1nb29nbGUtYW5hbHl0aWNzLXZpZXcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkVkaXRHb29nbGVBbmFseXRpY3NTZWdtZW50ID0gJ2Nvbm5lY3Rpb24tZWRpdC1nb29nbGUtYW5hbHl0aWNzLXNlZ21lbnQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkVkaXRKb2luQ2xhdXNlcyA9ICdjb25uZWN0aW9uLWVkaXQtam9pbi1jbGF1c2VzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25FZGl0Sm9pblR5cGUgPSAnY29ubmVjdGlvbi1lZGl0LWpvaW4tdHlwZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRWRpdFNRTFRleHQgPSAnY29ubmVjdGlvbi1lZGl0LXNxbC10ZXh0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25GZXRjaEVudGl0eSA9ICdjb25uZWN0aW9uLWZldGNoLWVudGl0eScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uU2V0Rm9yY2VFeHRyYWN0UmVmcmVzaCA9ICdjb25uZWN0aW9uLXNldC1mb3JjZS1leHRyYWN0LXJlZnJlc2gnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblByZXBhcmVEYXRhU291cmNlRm9yRWRpdCA9ICdjb25uZWN0aW9uLXByZXBhcmUtZGF0YXNvdXJjZS1mb3ItZWRpdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uQ2xlYXJSZWZyZXNoQXR0cmlidXRlcyA9ICdjb25uZWN0aW9uLWNsZWFyLXJlZnJlc2gtYXR0cmlidXRlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uUmVtb3ZlR29vZ2xlQW5hbHl0aWNzRGltZW5zaW9uID0gJ2Nvbm5lY3Rpb24tcmVtb3ZlLWdvb2dsZS1hbmFseXRpY3MtZGltZW5zaW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25SZW1vdmVHb29nbGVBbmFseXRpY3NNZWFzdXJlID0gJ2Nvbm5lY3Rpb24tcmVtb3ZlLWdvb2dsZS1hbmFseXRpY3MtbWVhc3VyZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uUmVtb3ZlQ29hbGVzY2UgPSAnY29ubmVjdGlvbi1yZW1vdmUtY29hbGVzY2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblJlbW92ZVBpdm90ID0gJ2Nvbm5lY3Rpb24tcmVtb3ZlLXBpdm90JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25BZGREYXRlUGFyc2VGb3JtYXRzID0gJ2Nvbm5lY3Rpb24tYWRkLWRhdGUtcGFyc2UtZm9ybWF0cycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uUmVuYW1lVGFibGUgPSAnY29ubmVjdGlvbi1yZW5hbWUtdGFibGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblJlcGxhY2VSZWxhdGlvbldpdGhTUUxUZXh0ID0gJ2Nvbm5lY3Rpb24tcmVwbGFjZS1yZWxhdGlvbi13aXRoLXNxbC10ZXh0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25SZXBsYWNlVGFibGUgPSAnY29ubmVjdGlvbi1yZXBsYWNlLXRhYmxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25SZXNldFRhYmxlQWxpYXMgPSAnY29ubmVjdGlvbi1yZXNldC10YWJsZS1hbGlhcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uU2VsZWN0Q2F0YWxvZyA9ICdjb25uZWN0aW9uLXNlbGVjdC1jYXRhbG9nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25TZWxlY3RDdWJlID0gJ2Nvbm5lY3Rpb24tc2VsZWN0LWN1YmUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblNlbGVjdFN0b3JlZFByb2NlZHVyZSA9ICdjb25uZWN0aW9uLXNlbGVjdC1zdG9yZWQtcHJvY2VkdXJlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25TZWxlY3RCaWdRdWVyeUxlZ2FjeVNRTENoZWNrQm94ID0gJ2Nvbm5lY3Rpb24tc2VsZWN0LWJpZ3F1ZXJ5LWxlZ2FjeS1jaGVjaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uVG9nZ2xlSGFzSGVhZGVyUm93ID0gJ2Nvbm5lY3Rpb24tdG9nZ2xlLWhhcy1oZWFkZXItcm93JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25Ub2dnbGVUYWJsZUNsZWFuaW5nID0gJ2Nvbm5lY3Rpb24tdG9nZ2xlLXRhYmxlLWNsZWFuaW5nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25Ub2dnbGVVc2VFeHRyYWN0ID0gJ2Nvbm5lY3Rpb24tdG9nZ2xlLXVzZS1leHRyYWN0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25WaWV3VGFibGVDbGVhbmluZ1Jlc3VsdHMgPSAnY29ubmVjdGlvbi12aWV3LXRhYmxlLWNsZWFuaW5nLXJlc3VsdHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdFRvRGF0YVNlcnZlclNvdXJjZSA9ICdjb25uZWN0LWRhdGEtc2VydmVyLWRhdGFzb3VyY2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29uc2lkZXJaZXJvc0VtcHR5RmxhZyA9ICdjb25zaWRlci16ZXJvcy1lbXB0eScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb252ZXJ0VW5uYW1lZEZpZWxkcyA9ICdjb252ZXJ0LXVubmFtZWQtZmllbGRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENyYXNoID0gJ2NyYXNoJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENyZWF0ZUFnZ3JlZ2F0ZVJvbGUgPSAnY3JlYXRlLWFnZ3JlZ2F0ZS1yb2xlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENyZWF0ZUNvbm5lY3Rpb24gPSAnY3JlYXRlLWNvbm5lY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlRGVmYXVsdFF1aWNrRmlsdGVyID0gJ2NyZWF0ZS1kZWZhdWx0LXF1aWNrLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDcmVhdGVUeXBlSW5QaWxsID0gJ2NyZWF0ZS10eXBlLWluLXBpbGwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3VzdG9tRGF0YUdyaWRGaWVsZE9yZGVyID0gJ2N1c3RvbS1kYXRhZ3JpZC1maWVsZC1vcmRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDdXN0b21EYXRlQWdncmVnYXRpb24gPSAnY3VzdG9tLWRhdGUtYWdncmVnYXRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3VzdG9tU3BsaXRGaWVsZCA9ICdjdXN0b20tc3BsaXQtZmllbGQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVidWdBc3NlcnRpb24gPSAnZGVidWctYXNzZXJ0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERlY3JlbWVudFBhcmFtZXRlclZhbHVlID0gJ2RlY3ItcGFyYW1ldGVyLXZhbHVlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERlbGV0ZUZpZWxkcyA9ICdkZWxldGUtY2FsY3VsYXRpb24tZmllbGRzLWNvbW1hbmQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVsZXRlU2hlZXQgPSAnZGVsZXRlLXNoZWV0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIERlc2NyaWJlRHJpbGxQYXRoID0gJ2Rlc2NyaWJlLWRyaWxsLXBhdGgnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVzY3JpYmVTb3J0RmlsdGVyID0gJ2Rlc2NyaWJlLXNvcnQtZmlsdGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERpc21pc3NOdWxsV2FydCA9ICdkaXNtaXNzLW51bGwtd2FydCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEb21haW5RdWlja0ZpbHRlciA9ICdkb21haW4tcXVpY2stZmlsdGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERvdWJsZUZyZWVDcmFzaCA9ICdkb3VibGUtZnJlZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEcm9wTm93aGVyZSA9ICdkcm9wLW5vd2hlcmUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHJvcE9uU2NoZW1hVmlld2VyID0gJ2Ryb3Atb24tc2NoZW1hLXZpZXdlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEcm9wT25TaGVsZiA9ICdkcm9wLW9uLXNoZWxmJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERyb3BPbkNhbGNFZGl0b3IgPSAnZHJvcC1vbi1jYWxjLWVkaXRvcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEcm9wT25TaG93TWUgPSAnZHJvcC1vbi1zaG93bWUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHJvcFByZXBhcmUgPSAnZHJvcC1wcmVwYXJlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIER1YWxBeGlzID0gJ2R1YWwtYXhpcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEdXBsaWNhdGVTaGVldCA9ICdkdXBsaWNhdGUtc2hlZXQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdENvcHlDYWxjID0gJ2VkaXQtY29weS1jYWxjJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXREcm9wTGluZXMgPSAnZWRpdC1kcm9wLWxpbmVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRFbnVtZXJhdGVkR3JvdXAgPSAnZWRpdC1lbnVtZXJhdGVkLWdyb3VwJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXROZXN0ZWRHcm91cCA9ICdlZGl0LW5lc3RlZC1ncm91cCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0UGlsbCA9ICdlZGl0LXBpbGwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFByaW1pdGl2ZVR5cGUgPSAnZWRpdC1wcmltaXRpdmUtdHlwZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFbmFibGVBbGxCcnVzaGluZyA9ICdlbmFibGUtYWxsLWhpZ2hsaWdodHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRW5hYmxlUXVpY2tGaWx0ZXIgPSAnZW5hYmxlLXF1aWNrLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFbmFibGVTaGVldEJydXNoaW5nID0gJ2VuYWJsZS1zaGVldC1oaWdobGlnaHRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVuYWJsZVRoZW1lZEJydXNoaW5nID0gJ2VuYWJsZS10aGVtZWQtaGlnaGxpZ2h0cycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFbnVtZXJhdGVWYXJpYWJsZXMgPSAnZW51bWVyYXRlLXZhcmlhYmxlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFbnVtZXJhdGVWYXJpYWJsZVNlbGVjdGlvblZhbHVlcyA9ICdlbnVtZXJhdGUtdmFyaWFibGUtc2VsZWN0aW9uLXZhbHVlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFc3RhYmxpc2hDb25uZWN0aW9uID0gJ2VzdGFibGlzaC1jb25uZWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVzdGFibGlzaE1hdGNoaW5nQ29ubmVjdGlvbnMgPSAnZXN0YWJsaXNoLW1hdGNoaW5nLWNvbm5lY3Rpb25zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4cG9ydERhdGFUb1RleHQgPSAnZXhwb3J0LWRhdGEtdG8tdGV4dCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeHRTdmNDb25maWcgPSAnZXh0LXN2Yy1jb25maWcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXh0U3ZjQ29uZmlnQ29ubmVjdCA9ICdleHQtc3ZjLWNvbmZpZy1jb25uZWN0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4dHJhY3QgPSAnZXh0cmFjdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXREYXRhR3JpZEN1cnJlbnRUYWJsZSA9ICdzZXQtZGF0YS1ncmlkLWN1cnJlbnQtdGFibGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRmV0Y2hUYWJsZVJlbGV2YW5jZSA9ICdmZXRjaC10YWJsZS1yZWxldmFuY2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRmV0Y2hDYWNoZWRUYWJsZVJlbGV2YW5jZSA9ICdmZXRjaC1jYWNoZWQtdGFibGUtcmVsZXZhbmNlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZsaXBMYWJlbHMgPSAnZmxpcC1sYWJlbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRmxvYXRpbmdUb29sYmFyID0gJ3pvb20tY29udHJvbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRmxvYXRpbmdUb29sYmFyVG9nZ2xlID0gJ3pvb20tY29udHJvbHMtdG9nZ2xlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZvcmVjYXN0Q29uZmlnID0gJ2ZvcmVjYXN0LWNvbmZpZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGb3JlY2FzdFRvZ2dsZSA9ICdmb3JlY2FzdC10b2dnbGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRm9ybWF0V29ya2Jvb2sgPSAnZm9ybWF0LXdvcmtib29rJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdlb2dyYXBoaWNTZWFyY2hRdWVyeSA9ICdnZW9ncmFwaGljLXNlYXJjaC1xdWVyeScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZW9ncmFwaGljU2VhcmNoTG9hZERhdGEgPSAnZ2VvZ3JhcGhpYy1zZWFyY2gtbG9hZC1kYXRhJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdlb2dyYXBoaWNTZWFyY2hJc0RhdGFEb25lTG9hZGluZyA9ICdnZW9ncmFwaGljLXNlYXJjaC1kYXRhLWRvbmUtbG9hZGluZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZW9ncmFwaGljU2VhcmNoVG9nZ2xlVmlzaWJpbGl0eSA9ICdnZW9ncmFwaGljLXNlYXJjaC10b2dnbGUtdmlzaWJpbGl0eScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRFZGl0Q29ubmVjdGlvblByZXNNb2RlbCA9ICdnZXQtZWRpdC1jb25uZWN0aW9uLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RWRpdEVudW1lcmF0ZWRHcm91cFByZXNNb2RlbCA9ICdnZXQtZWRpdC1lbnVtZXJhdGVkLWdyb3VwLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RWRpdE5lc3RlZEdyb3VwUHJlc01vZGVsID0gJ2dldC1lZGl0LW5lc3RlZC1ncm91cC1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldEZyYW1lRmluZGVyUHJlc01vZGVsID0gJ2dldC1mcmFtZS1maW5kZXItcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRHb29nbGVTaGVldHNMaXN0UHJlc01vZGVsID0gJ2dldC1nb29nbGUtc2hlZXRzLWxpc3QtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRHb29nbGVTaGVldFBhbmVQcmVzTW9kZWwgPSAnZ2V0LWdvb2dsZS1zaGVldC1wYW5lLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0SW5pdGlhbFNRTFByZXNNb2RlbCA9ICdnZXQtaW5pdGlhbC1zcWwtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRRdWVyeUJhbmRpbmdQcmVzTW9kZWwgPSAnZ2V0LXF1ZXJ5LWJhbmRpbmctcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRUYWJiZWRBdXRoZW50aWNhdGlvblByZXNNb2RlbCA9ICdnZXQtdGFiYmVkLWF1dGhlbnRpY2F0aW9uLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0QWN0aXZlU2hlZXQgPSAnZ2V0LWFjdGl2ZS1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRBbHBoYUxldmVsID0gJ2dldC1hbHBoYS1sZXZlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRBcHBDb25maWcgPSAnZ2V0LWFwcC1jb25maWcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RGlzYWJsZWRTZWNvbmRhcnlEU0ZpZWxkcyA9ICdnZXQtZGlzYWJsZWQtc2Vjb25kYXJ5ZHMtZmllbGRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldEJsZW5kaW5nRmllbGRzID0gJ2dldC1ibGVuZGluZy1maWVsZHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0Q2FsY3VsYXRpb25QcmVzTW9kZWwgPSAnZ2V0LWNhbGN1bGF0aW9uLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0Q2F0ZWdvcmljYWxDb2xvciA9ICdnZXQtY2F0ZWdvcmljYWwtY29sb3InLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0Q2xpZW50SW5mbyA9ICdnZXQtY2xpZW50LWluZm8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0Q29tbWFuZHMgPSAnZ2V0LWNvbW1hbmRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldENvbm5lY3Rpb25EZXNjcmlwdGlvblByZXNNb2RlbCA9ICdnZXQtY29ubmVjdGlvbi1kZXNjcmlwdGlvbi1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldERTRHJvcGRvd25QcmVzTW9kZWwgPSAnZ2V0LWRzLWRyb3Bkb3duLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RGF0YVByZXZpZXdXaW5kb3dNZXNzYWdlUHJlc01vZGVsID0gJ2dldC1kYXRhLXByZXZpZXctd2luZG93LXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RGF0YVNvdXJjZVByZXNNb2RlbCA9ICdnZXQtZGF0YXNvdXJjZS1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldERhdGFTb3VyY2VTb3J0UHJlc01vZGVsID0gJ2dldC1kYXRhc291cmNlLXNvcnQtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXREYXRhU291cmNlUHJvcGVydGllc1ByZXNNb2RlbCA9ICdnZXQtZGF0YXNvdXJjZS1wcm9wZXJ0aWVzLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0Q29ubmVjdGlvblNldHRpbmdzUHJlc01vZGVsID0gJ2dldC1jb25uZWN0aW9uLXNldHRpbmdzLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RGFzaGJvYXJkID0gJ2dldC1kYXNoYm9hcmQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RGF0YVByZXZpZXcgPSAnZ2V0LWRhdGEtcHJldmlldycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXREYXRhYmFzZUVudW1lcmF0aW9uUHJlc01vZGVsID0gJ2dldC1kYXRhYmFzZS1lbnVtZXJhdGlvbi1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldERlZmF1bHRDb2xvciA9ICdnZXQtZGVmYXVsdC1jb2xvcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXREZWZhdWx0U2hhcGUgPSAnZ2V0LWRlZmF1bHQtc2hhcGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RHJhZ1ByZXNNb2RlbEZvclRleHQgPSAnZ2V0LWRyYWctcHJlcy1tb2RlbC1mb3ItdGV4dCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXREcm9wVGFyZ2V0UHJlc01vZGVsID0gJ2dldC1kcm9wLXRhcmdldC1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldEVkaXREYXRhU2VydmVyQ29ubmVjdGlvblByZXNNb2RlbCA9ICdnZXQtZWRpdC1kYXRhLXNlcnZlci1jb25uZWN0aW9uLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RWRpdERyb3BMaW5lc01vZGVsID0gJ2dldC1lZGl0LWRyb3AtbGluZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RW5jb2RpbmdTdGF0ZSA9ICdnZXQtZW5jb2Rpbmctc3RhdGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RW5jb2RpbmdUeXBlTWVudU1vZGVsID0gJ2dldC1lbmNvZGluZy10eXBlLW1lbnUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RXh0U3ZjQ29uZmlnID0gJ2dldC1leHQtc3ZjLWNvbmZpZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRGb3JlY2FzdFByZXNNb2RlbCA9ICdnZXQtZm9yZWNhc3QtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRKb2luRGVzY3JpcHRpb25QcmVzTW9kZWwgPSAnZ2V0LWpvaW4tZGVzY3JpcHRpb24tcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRRdWlja0ZpbHRlciA9ICdnZXQtcXVpY2stZmlsdGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFF1aWNrRmlsdGVycyA9ICdnZXQtcXVpY2stZmlsdGVycycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRSZWZlcmVuY2VMaW5lUHJlc01vZGVsID0gJ2dldC1yZWZlcmVuY2UtbGluZS1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFBhcmFtZXRlcnMgPSAnZ2V0LXBhcmFtZXRlcnMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0UGFyYW1ldGVyTW9kZWxzID0gJ2dldC1wYXJhbWV0ZXItbW9kZWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFBhcmFtZXRlcnNSZWdpc3RyeUluZm8gPSAnZ2V0LXBhcmFtcy1yZWdpc3RyeS1pbmZvJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFBpdm90UHJlc01vZGVsID0gJ2dldC1waXZvdC1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFNjZW5lID0gJ2dldC1zY2VuZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTY2hlbWFFbnVtZXJhdGlvblByZXNNb2RlbCA9ICdnZXQtc2NoZW1hLWVudW1lcmF0aW9uLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0U2hlZXRzSW5mbyA9ICdnZXQtc2hlZXRzLWluZm8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0U2hvd01lID0gJ2dldC1zaG93LW1lJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFN0YW5kYXJkQ29ubmVjdGlvbkVudW1lcmF0aW9uUHJlc01vZGVsID0gJ2dldC1zdGFuZGFyZC1jb25uZWN0aW9uLWVudW1lcmF0aW9uLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0U3RvcmVkUHJvY2VkdXJlRW51bWVyYXRpb25QcmVzTW9kZWwgPSAnZ2V0LXN0b3JlZC1wcm9jZWR1cmUtZW51bWVyYXRpb24tcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTdG9yZWRQcm9jZWR1cmVQYXJhbWV0ZXJzUHJlc01vZGVsID0gJ2dldC1zdG9yZWQtcHJvY2VkdXJlLXBhcmFtZXRlcnMtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRUYWJsZUVudW1lcmF0aW9uUHJlc01vZGVsID0gJ2dldC10YWJsZS1lbnVtZXJhdGlvbi1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFRhYmxlQ2xlYW5pbmdQcmVzTW9kZWwgPSAnZ2V0LXRhYmxlLWNsZWFuaW5nLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0VGFyZ2V0RmllbGRMaXN0ID0gJ2dldC10YXJnZXQtZmllbGQtbGlzdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRUb3BMZXZlbENvbm5lY3Rpb25EZXNjcmlwdGlvblByZXNNb2RlbCA9ICdnZXQtdG9wLWxldmVsLWNvbm5lY3Rpb24tZGVzY3JpcHRpb24tcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRUeXBlSW5QaWxsUHJlc01vZGVsID0gJ2dldC10eXBlLWluLXBpbGwtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRVYmVyVGlwUHJlc01vZGVsID0gJ2dldC11YmVydGlwLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0VW5pb25JbmZvUHJlc01vZGVsID0gJ2dldC11bmlvbi1pbmZvLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0VmlzdWFsID0gJ2dldC12aXN1YWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0Vml6RGF0YSA9ICdnZXQtdml6LWRhdGEnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0V2FyZWhvdXNlRW51bWVyYXRpb25QcmVzTW9kZWwgPSAnZ2V0LXdhcmVob3VzZS1lbnVtZXJhdGlvbi1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFdvcmtib29rID0gJ2dldC13b3JrYm9vaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRXb3JsZFVwZGF0ZSA9ICdnZXQtd29ybGQtdXBkYXRlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdvVG9TaGVldCA9ICdnb3RvLXNoZWV0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEhlYXBDb3JydXB0aW9uQ3Jhc2ggPSAnY29ycnVwdC1oZWFwJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEhpZGVDb2x1bW5GaWVsZExhYmVsID0gJ2hpZGUtY29sdW1uLWZpZWxkLWxhYmVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEhpZGVFbXB0eUNvbHNGbGFnID0gJ2hpZGUtZW1wdHktY29scycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWRlRW1wdHlSb3dzRmxhZyA9ICdoaWRlLWVtcHR5LXJvd3MnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSGlkZUxhYmVsID0gJ2hpZGUtbGFiZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSGlkZVJvd0ZpZWxkTGFiZWwgPSAnaGlkZS1yb3ctZmllbGQtbGFiZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSGllcmFyY2hpY2FsUXVpY2tGaWx0ZXJVcGRhdGVTZXRGdW5jdGlvbiA9ICdoaWVyYXJjaGljYWwtcXVpY2stZmlsdGVyLXVwZGF0ZS1zZXQtZnVuY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSW5jbHVkZUluVG9vbHRpcCA9ICdpbmNsdWRlLWluLXRvb2x0aXAnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSW5jbHVkZU90aGVyQ2F0ZWdvcmljYWxCaW4gPSAnaW5jbHVkZS1vdGhlci1jYXQtYmluJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEluY3JlbWVudEV4dHJhY3QgPSAnaW5jcmVtZW50LWV4dHJhY3QnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSW5jcmVtZW50UGFyYW1ldGVyVmFsdWUgPSAnaW5jci1wYXJhbWV0ZXItdmFsdWUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlQ2FsYyA9ICdjcmVhdGUtY2FsYycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0Q2FsYyA9ICdlZGl0LWNhbGMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSW52b2tlSHlwZXJsaW5rID0gJ2ludm9rZS1oeXBlcmxpbmsnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgS2VlcE9ubHlPckV4Y2x1ZGVTZWxlY3Rpb24gPSAna2VlcC1vbmx5LW9yLWV4Y2x1ZGUtc2VsZWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIExhYmVsRHJpbGwgPSAnbGFiZWwtZHJpbGwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTGFiZWxEcmlsbEN0eCA9ICdsYWJlbC1kcmlsbC1jdHgnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTGV2ZWxEcmlsbCA9ICdsZXZlbC1kcmlsbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBMb2FkVXJsID0gJ2xvYWQtdXJsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIExpc3RQdWJsaXNoZWREYXRhU291cmNlcyA9ICdsaXN0LXB1Ymxpc2hlZC1kYXRhc291cmNlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNYXJrTGFiZWwgPSAnbWFyay1sYWJlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNYXJrVHJhaWwgPSAnbWFyay10cmFpbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNZW1vcnlEdW1wT2JqZWN0Q291bnRzID0gJ21lbW9yeS1kdW1wLW9iamVjdC1jb3VudHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTWVtb3J5TGVhayA9ICdtZW1vcnktbGVhaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNZXJnZSA9ICdtZXJnZS1vci1zcGxpdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNaWdyYXRlRGF0YVNvdXJjZSA9ICdtaWdyYXRlLWRhdGEtc291cmNlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE1vZGlmeU1hcmtzSW5TZXQgPSAnYWRkLW9yLXJlbW92ZS1tYXJrcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNb3ZlQXJlYUFubm90YXRpb25UZXh0ID0gJ21vdmUtYXJlYS1hbm5vdGF0aW9uLXRleHQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTW92ZUNvbHVtblRvdGFscyA9ICdtb3ZlLWNvbHVtbi10b3RhbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTW92ZU1hcmsgPSAnbW92ZS1tYXJrJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE1vdmVQb2ludEFubm90YXRpb24gPSAnbW92ZS1wb2ludC1hbm5vdGF0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE1vdmVQb2ludEFubm90YXRpb25UYXJnZXQgPSAnbW92ZS1wb2ludC1hbm5vdGF0aW9uLXRhcmdldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNb3ZlUmVmZXJlbmNlTGluZSA9ICdtb3ZlLXJlZmVyZW5jZS1saW5lJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE1vdmVSb3dUb3RhbHMgPSAnbW92ZS1yb3ctdG90YWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE5hdmlnYXRlVG9TaGVldCA9ICduYXZpZ2F0ZS10by1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBQb3N0Q2FsY0pvaW5DbGF1c2VSZXN1bHQgPSAncG9zdC1jYWxjLWpvaW4tY2xhdXNlLXJlc3VsdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBOZXdEb2NEYXNoYm9hcmQgPSAnbmV3LWRhc2hib2FyZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBOZXdEb2NXb3Jrc2hlZXQgPSAnbmV3LXdvcmtzaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBOb25SYW5nZWRSZW1vdmVSZWZlcmVuY2VMaW5lID0gJ25vbi1yYW5nZWQtcmVtb3ZlLXJlZmVyZW5jZS1saW5lJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wdGltaXplRXh0cmFjdCA9ICdvcHRpbWl6ZS1leHRyYWN0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wdE91dEFjdGlvbnMgPSAnb3B0LW91dC1hY3Rpb25zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFBhZ2VIaXN0b3J5U2V0dGluZ3MgPSAncGFnZS1oaXN0b3J5LXNldHRpbmdzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFBhZ2VUb2dnbGVUcmFpbHMgPSAncGFnZS10b2dnbGUtdHJhaWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFBhcnNlVUlOYW1lID0gJ3BhcnNlLXVpLW5hbWUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGVyY2VudGFnZXMgPSAncGVyY2VudGFnZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGVyc3BlY3RpdmVzID0gJ3BlcnNwZWN0aXZlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBQb3NpdGlvblBvaW50QW5ub3RhdGlvbiA9ICdwb3NpdGlvbi1wb2ludC1hbm5vdGF0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFByb3RvY29sUG9vbExvZyA9ICdwcm90b2NvbC1wb29sLWxvZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBQdWJsaXNoVG9Xb3JrZ3JvdXAgPSAncHVibGlzaC10by13b3JrZ3JvdXAnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHVibGlzaERhdGFTb3VyY2UgPSAncHVibGlzaC1kYXRhc291cmNlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFB1Ymxpc2hEYXRhU291cmNlRnJvbURhdGEgPSAncHVibGlzaC1kYXRhLXNvdXJjZS1mcm9tLWRhdGEnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHVibGlzaERhdGFTb3VyY2VGcm9tV29ya2Jvb2tEYXRhID0gJ3B1Ymxpc2gtZGF0YS1zb3VyY2UtZnJvbS13b3JrYm9vay1kYXRhJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFF1YW50aXRhdGl2ZVF1aWNrRmlsdGVyRWRpdCA9ICdxdWFudGl0YXRpdmUtcXVpY2stZmlsdGVyLWVkaXQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUXVhbnRpdGF0aXZlTW9kZVF1aWNrRmlsdGVyID0gJ3F1YW50aXRhdGl2ZS1tb2RlLXF1aWNrLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBRdWVyeU1pZ3JhdGVEYXRhU291cmNlcyA9ICdxdWVyeS1taWdyYXRlLWRhdGEtc291cmNlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBRdWlja1NvcnQgPSAncXVpY2stc29ydCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSYW5nZWRCeUluZGV4TWVyZ2UgPSAncmFuZ2VkLWJ5LWluZGV4LW1lcmdlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJhbmdlZEJ5VmFsdWVNZXJnZSA9ICdyYW5nZWQtYnktdmFsdWUtbWVyZ2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVjb3JkID0gJ3JlY29yZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZWRvID0gJ3JlZG8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVmcmVzaEV4dHJhY3QgPSAncmVmcmVzaC1leHRyYWN0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlZnJlc2hGcm9tU291cmNlID0gJ3JlZnJlc2gtZnJvbS1zb3VyY2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVsYXRpdmVEYXRlUXVpY2tGaWx0ZXJFZGl0ID0gJ3JlbGF0aXZlLWRhdGUtcXVpY2stZmlsdGVyLWVkaXQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlQWxsUmVmZXJlbmNlTGluZXMgPSAncmVtb3ZlLWFsbC1yZWZlcmVuY2UtbGluZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlRHJpbGxQYXRoID0gJ3JlbW92ZS1kcmlsbC1wYXRoJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbW92ZUV4dHJhY3QgPSAncmVtb3ZlLWV4dHJhY3QnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlRmllbGRGb2xkZXIgPSAncmVtb3ZlLWZpZWxkLWZvbGRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVGaWVsZExhYmVsID0gJ3JlbW92ZS1maWVsZC1sYWJlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVGaWVsZHMgPSAncmVtb3ZlLWZpZWxkcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVGaWVsZHNGcm9tU2hlbGYgPSAncmVtb3ZlLWZpZWxkcy1mcm9tLXNoZWxmJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbW92ZUZyb21EcmlsbFBhdGggPSAncmVtb3ZlLWZyb20tZHJpbGwtcGF0aCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVGcm9tRmllbGRGb2xkZXIgPSAncmVtb3ZlLWZyb20tZmllbGQtZm9sZGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbW92ZVJlZmVyZW5jZUxpbmUgPSAncmVtb3ZlLXJlZmVyZW5jZS1saW5lJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbW92ZVN1YnRvdGFscyA9ICdyZW1vdmUtc3VidG90YWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbmFtZURhdGFTb3VyY2UgPSAncmVuYW1lLWRhdGEtc291cmNlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbmFtZURyaWxsUGF0aCA9ICdyZW5hbWUtZHJpbGwtcGF0aCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW5hbWVGaWVsZEZvbGRlciA9ICdyZW5hbWUtZmllbGQtZm9sZGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbmFtZVNoZWV0ID0gJ3JlbmFtZS1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW9yZGVyTGFiZWxzID0gJ3Jlb3JkZXItbGFiZWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlcG9ydEJ1ZyA9ICdyZXBvcnQtYnVnJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlcXVlc3REYXRhU291cmNlUHJlc01vZGVsID0gJ3JlcXVlc3QtZGF0YXNvdXJjZS1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2V0UGFyYW1ldGVyQ3RybFRpdGxlID0gJ3Jlc2V0LXBhcmFtZXRlci1jdHJsLXRpdGxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2V0VG9vbHRpcCA9ICdyZXNldC10b29sdGlwJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2l6ZUFyZWFBbm5vdGF0aW9uVGV4dCA9ICdyZXNpemUtYXJlYS1hbm5vdGF0aW9uLXRleHQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVzaXplQXhpcyA9ICdyZXNpemUtYXhpcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXNpemVDZWxsID0gJ3Jlc2l6ZS1jZWxsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2l6ZUhlYWRlciA9ICdyZXNpemUtaGVhZGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2l6ZVBvaW50QW5ub3RhdGlvbiA9ICdyZXNpemUtcG9pbnQtYW5ub3RhdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXZlcnQgPSAncmV2ZXJ0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJvdGF0ZUZpZWxkTGFiZWwgPSAncm90YXRlLWZpZWxkLWxhYmVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJvdGF0ZUxhYmVsID0gJ3JvdGF0ZS1sYWJlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTcGxpdEZpZWxkTGFiZWwgPSAnc3BsaXQtZmllbGQtbGFiZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUnVuQWN0aW9uID0gJ3J1bi1hY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUnVuU2NyaXB0ID0gJ3J1bi1zY3JpcHQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUnVuVXBkYXRlcyA9ICdydW4tdXBkYXRlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNhdmVNb2RlbCA9ICdzYXZlLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNhdmVQdWJsaXNoZWREU3RvRmlsZSA9ICdzYXZlLXB1Ymxpc2hlZC1kcy10by1maWxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNlbGVjdERhdGFTb3VyY2UgPSAnc2VsZWN0LWRhdGEtc291cmNlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNlbGVjdEZpZWxkc0luU2hlbGYgPSAnc2VsZWN0LWZpZWxkcy1pbi1zaGVsZicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZW5kRGF0YUNvbm5lY3Rpb25UYWJsZVZpZXdNZXNzYWdlID0gJ3NlbmQtZGF0YS1jb25uZWN0aW9uLXRhYmxldmlldy1tZXNzYWdlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldEFjdGl2ZURhdGFTb3VyY2VOYW1lID0gJ3NldC1hY3RpdmUtZGF0YS1zb3VyY2UtbmFtZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRBY3RpdmVDb25uZWN0aW9uTmFtZSA9ICdzZXQtYWN0aXZlLWNvbm5lY3Rpb24tbmFtZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRBY3RpdmVEYXRhU291cmNlID0gJ3NldC1hY3RpdmUtZGF0YXNvdXJjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRCYXNlUGFsZXR0ZSA9ICdzZXQtYmFzZS1wYWxldHRlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldENhdGVnb3JpY2FsQ29sb3IgPSAnc2V0LWNhdGVnb3JpY2FsLWNvbG9yJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldERhdGFDYWNoZURlbHRhID0gJ3NldC1kYXRhLWNhY2hlLWRlbHRhJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldERhdGFQcmV2aWV3QXV0b1VwZGF0ZSA9ICdzZXQtZGF0YS1wcmV2aWV3LWF1dG8tdXBkYXRlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldERhdGFQcmV2aWV3Q3VzdG9tRmllbGRPcmRlciA9ICdzZXQtZGF0YS1wcmV2aWV3LWN1c3RvbS1maWVsZC1vcmRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXREZWZhdWx0Q29sb3IgPSAnc2V0LWRlZmF1bHQtY29sb3InLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0RGVmYXVsdFNoYXBlID0gJ3NldC1kZWZhdWx0LXNoYXBlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldEZpbHRlckNvbnRleHQgPSAnc2V0LWZpbHRlci1jb250ZXh0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldEZpbHRlclNoYXJlZCA9ICdzZXQtZmlsdGVyLXNoYXJlZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRJbml0aWFsU1FMID0gJ3NldC1pbml0aWFsLXNxbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRJdGVtQ29sb3IgPSAnc2V0LWl0ZW0tY29sb3InLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0SXRlbUNvbG9yUmVzZXRDdXN0b21pemF0aW9uID0gJ3NldC1pdGVtLWNvbG9yLXJlc2V0LWN1c3RvbWl6YXRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0SXRlbUVuY29kaW5nVHlwZSA9ICdzZXQtaXRlbS1lbmNvZGluZy10eXBlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldE1hcmtTaXplID0gJ3NldC1tYXJrLXNpemUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0UGFnZU5hdkZsYWcgPSAnc2V0LXBhZ2UtZmxhZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRQYXJhbWV0ZXJDdHJsRGlzcGxheUZsYWdzID0gJ3NldC1wYXJhbWV0ZXItY3RybC1kaXNwbGF5LWZsYWdzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFBhcmFtZXRlckN0cmxEaXNwbGF5TW9kZSA9ICdzZXQtcGFyYW1ldGVyLWN0cmwtZGlzcGxheS1tb2RlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFBhcmFtZXRlckN0cmxUaXRsZSA9ICdzZXQtcGFyYW1ldGVyLWN0cmwtdGl0bGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0UGFyYW1ldGVyVmFsdWUgPSAnc2V0LXBhcmFtZXRlci12YWx1ZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRQcmltaXRpdmUgPSAnc2V0LXByaW1pdGl2ZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRRdWVyeUJhbmRpbmcgPSAnc2V0LXF1ZXJ5LWJhbmRpbmcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0UXVpY2tGaWx0ZXJJbmNsdWRlZFZhbHVlcyA9ICdzZXQtcXVpY2stZmlsdGVyLWluY2x1ZGVkJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFJlZmVyZW5jZUxpbmVGb3JtdWxhID0gJ3NldC1yZWZlcmVuY2UtbGluZS1mb3JtdWxhJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFJlZmVyZW5jZUxpbmVDb25zdGFudFZhbHVlID0gJ3NldC1yZWZlcmVuY2UtbGluZS1jb25zdGFudC12YWx1ZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRTaGVldEZvcm1hdHRpbmcgPSAnc2V0LXNoZWV0LWZvcm1hdHRpbmcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0U2hlZXRTaXplID0gJ3NldC1zaGVldC1zaXplJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFRvdGFsc1R5cGUgPSAnc2V0LXRvdGFscy10eXBlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFdvcmtib29rTG9jYWxlID0gJ3NldC13b3JrYm9vay1sb2NhbGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0NhdEN0cmxRdWlja0ZpbHRlciA9ICdzaG93LWNhdC1jdHJsLXF1aWNrLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93Q29sRmllbGROYW1lc0ZsYWcgPSAnc2hvdy1jb2wtZmllbGQtbmFtZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0NvbFRvdGFsc0ZsYWcgPSAnc2hvdy1jb2wtdG90YWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dDb2x1bW5GaWVsZExhYmVsID0gJ3Nob3ctY29sdW1uLWZpZWxkLWxhYmVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dFbXB0eUNvbHNGbGFnID0gJ3Nob3ctZW1wdHktY29scycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93RW1wdHlSb3dzRmxhZyA9ICdzaG93LWVtcHR5LXJvd3MnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0ZvcmVjYXN0RWRpdG9yID0gJ3Nob3ctZm9yZWNhc3QtZWRpdG9yJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dGdWxsUmFuZ2UgPSAnc2hvdy1mdWxsLXJhbmdlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dIZWFkZXIgPSAnc2hvdy1oZWFkZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0hpZGRlbkRhdGEgPSAnc2hvdy1oaWRkZW4tZGF0YScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93TWUgPSAnc2hvdy1tZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93UXVhbnRDdHJsUXVpY2tGaWx0ZXIgPSAnc2hvdy1xdWFudC1jdHJsLXF1aWNrLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93UXVpY2tGaWx0ZXJEb2MgPSAnc2hvdy1xdWlja2ZpbHRlci1kb2MnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1JlZmVyZW5jZUxpbmVFZGl0b3IgPSAnc2hvdy1yZWZlcmVuY2UtbGluZS1lZGl0b3InLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1JlZmVyZW5jZUxpbmVDb25zdGFudFZhbHVlRWRpdG9yID0gJ3Nob3ctcmVmZXJlbmNlLWxpbmUtY29uc3RhbnQtdmFsdWUtZWRpdG9yJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dSZWZlcmVuY2VMaW5lRm9ybWF0dGVyID0gJ3Nob3ctcmVmZXJlbmNlLWxpbmUtZm9ybWF0dGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dSb3dGaWVsZExhYmVsID0gJ3Nob3ctcm93LWZpZWxkLWxhYmVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dSb3dGaWVsZE5hbWVzRmxhZyA9ICdzaG93LXJvdy1maWVsZC1uYW1lcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93Um93VG90YWxzRmxhZyA9ICdzaG93LXJvdy10b3RhbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2ltcGxlQ29tbWFuZExpc3QgPSAnc2ltcGxlLWNvbW1hbmQtbGlzdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTbGVlcCA9ICdzbGVlcCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTbGVlcEJhY2tncm91bmRUaHJlYWQgPSAnc2xlZXAtYmFja2dyb3VuZC10aHJlYWQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU29ydERhdGFHcmlkQnlDb2x1bW4gPSAnc29ydC1kYXRhZ3JpZC1ieS1jb2x1bW4nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU29ydERhdGFHcmlkRmllbGRzID0gJ3NvcnQtZGF0YWdyaWQtZmllbGRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNwZWNpYWxWYWx1ZXMgPSAnc3BlY2lhbC12YWx1ZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU3BsaXRGaWVsZCA9ICdzcGxpdC1maWVsZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTdGFja01hcmtzID0gJ3N0YWNrLW1hcmtzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFN0YWNrT3ZlcmZsb3dDcmFzaCA9ICdzdGFjay1vdmVyZmxvdycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTdWJ0b3RhbEFnZ3JlZ2F0aW9uID0gJ3N1YnRvdGFsLWFnZ3JlZ2F0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFN1YnRvdGFscyA9ICdzdWJ0b3RhbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU3dhcEZpZWxkcyA9ICdzd2FwLWZpZWxkcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTd2FwUm93c0FuZENvbHVtbnMgPSAnc3dhcC1yb3dzLWFuZC1jb2x1bW5zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRhYmxlYXVFeGNlcHRpb24gPSAndGFibGVhdS1leGNlcHRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVG9nZ2xlRHJvcExpbmVzID0gJ3RvZ2dsZS1kcm9wLWxpbmVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZUZpZWxkQmxlbmRpbmcgPSAndG9nZ2xlLWZpZWxkLWJsZW5kaW5nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZU1hcmtMYWJlbHMgPSAndG9nZ2xlLW1hcmstbGFiZWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZVBhZ2VUaXRsZSA9ICd0b2dnbGUtcGFnZS10aXRsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUb2dnbGVQYXJhbWV0ZXJDdHJsRGlzcGxheUZsYWcgPSAndG9nZ2xlLXBhcmFtZXRlci1jdHJsLWRpc3BsYXktZmxhZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUb2dnbGVQYXJhbWV0ZXJDdHJsVGl0bGUgPSAndG9nZ2xlLXBhcmFtZXRlci1jdHJsLXRpdGxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZVF1aWNrRmlsdGVyVGl0bGUgPSAndG9nZ2xlLXF1aWNrLWZpbHRlci10aXRsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUb2dnbGVWaXpOYXZpZ2F0aW9uU2V0dGluZyA9ICd0b2dnbGUtdml6LW5hdmlnYXRpb24tc2V0dGluZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBVbmRvID0gJ3VuZG8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVW5oaWRlRGF0YSA9ICd1bmhpZGUtZGF0YScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBVbmhpZGVMYWJlbCA9ICd1bmhpZGUtbGFiZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXBkYXRlQXJlYUFubm90YXRpb24gPSAndXBkYXRlLWFyZWEtYW5ub3RhdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBVcGRhdGVDYWxjU2NvcGVJc29sYXRpb24gPSAndXBkYXRlLXNjb3BlLWlzb2xhdGlvbi1mb3ItY2FsY3VsYXRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXBkYXRlRGF0YVNlcnZlckNvbm5lY3Rpb25JbmZvID0gJ3VwZGF0ZS1kYXRhLXNlcnZlci1jb25uZWN0aW9uLWluZm8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXBkYXRlUG9pbnRBbm5vdGF0aW9uUHVsbGJhY2sgPSAndXBkYXRlLXBvaW50LWFubm90YXRpb24tcHVsbGJhY2snLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXBkYXRlVGFibGVDYWxjSW5mbyA9ICd1cGRhdGUtdGFibGUtY2FsYy1pbmZvbWF0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFVwZ3JhZGVFeHRyYWN0ID0gJ3VwZ3JhZGUtZXh0cmFjdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBVc2VFeHRyYWN0ID0gJ3VzZS1leHRyYWN0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZhbGlkYXRlRHJpbGxQYXRoTmFtZSA9ICd2YWxpZGF0ZS1kcmlsbC1wYXRoLW5hbWUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmFsaWRhdGVGb3JtdWxhID0gJ3ZhbGlkYXRlLWZvcm11bGEnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmFsaWRhdGVJbml0aWFsU1FMID0gJ3ZhbGlkYXRlLWluaXRpYWwtc3FsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZhbGlkYXRlUXVlcnlCYW5kaW5nID0gJ3ZhbGlkYXRlLXF1ZXJ5LWJhbmRpbmcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmFsaWRhdGVUeXBlSW5QaWxsID0gJ3ZhbGlkYXRlLXR5cGUtaW4tcGlsbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3UGFyYW1ldGVyQ3RybHMgPSAndmlldy1wYXJhbS1jdHJscycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3UXVpY2tGaWx0ZXJzID0gJ3ZpZXctcXVpY2stZmlsdGVycycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTY2hlbWEgPSAnZ2V0LXNjaGVtYScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTY2hlbWFWaWV3ZXJEYXRhU2NoZW1hID0gJ2dldC1zY2hlbWEtdmlld2VyLWRhdGEtc2NoZW1hJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbnZlcnRUb0RpbWVuc2lvbiA9ICdjb252ZXJ0LXRvLWRpbWVuc2lvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb252ZXJ0VG9NZWFzdXJlID0gJ2NvbnZlcnQtdG8tbWVhc3VyZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb252ZXJ0VG9Db250aW51b3VzID0gJ2NvbnZlcnQtdG8tY29udGludW91cycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb252ZXJ0VG9EaXNjcmV0ZSA9ICdjb252ZXJ0LXRvLWRpc2NyZXRlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbmFtZUZpZWxkID0gJ3JlbmFtZS1maWVsZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWRlRmllbGQgPSAnaGlkZS1maWVsZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBVbmhpZGVGaWVsZCA9ICd1bmhpZGUtZmllbGQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSGlkZVVudXNlZEZpZWxkcyA9ICdoaWRlLXVudXNlZC1maWVsZHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHVwbGljYXRlRmllbGRzID0gJ2R1cGxpY2F0ZS1maWVsZHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYW5WYWx1ZXMgPSAnY2xlYW4tdmFsdWVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFBhcnNlRGF0ZSA9ICdwYXJzZS1kYXRlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE1ha2VEYXRlID0gJ21ha2UtZGF0ZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRRdWFsaWZ5TmFtZXMgPSAnc2V0LXF1YWxpZnktbmFtZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlTWVhc3VyZUZyb21Db2x1bW4gPSAnY3JlYXRlLW1lYXN1cmUtZnJvbS1jb2x1bW4nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlRnJvbVNjaGVtYURyaWxsUGF0aCA9ICdyZW1vdmUtZnJvbS1zY2hlbWEtZHJpbGwtcGF0aCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGRUb1NjaGVtYURyaWxsUGF0aCA9ICdhZGQtdG8tc2NoZW1hLWRyaWxsLXBhdGgnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlU2NoZW1hRHJpbGxQYXRoID0gJ3JlbW92ZS1zY2hlbWEtZHJpbGwtcGF0aCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93SGlkZGVuRmllbGRzID0gJ3Nob3ctaGlkZGVuLWZpZWxkcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93QWxpYXNlcyA9ICdzaG93LWFsaWFzZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0Um93RGlzcGxheUNvdW50ID0gJ3NldC1yb3ctZGlzcGxheS1jb3VudCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93U3RydWN0dXJlID0gJ3Nob3ctc3RydWN0dXJlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdyb3VwQnlUYWJsZSA9ICdncm91cC1ieS10YWJsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDaGFuZ2VEYXRhVHlwZSA9ICdjaGFuZ2UtZGF0YS10eXBlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZVBpdm90U3RyYXRlZ3kgPSAnY2hhbmdlLXBpdm90LXN0cmF0ZWd5JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZURpc3BsYXlBbGlhcyA9ICdjaGFuZ2UtZGlzcGxheS1hbGlhcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRJbmNsdWRlU2hhcmVkTWVtYmVycyA9ICdzZXQtaW5jbHVkZS1zaGFyZWQtbWVtYmVycycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRVdGlsaXR5RGltZW5zaW9uID0gJ3NldC11dGlsaXR5LWRpbWVuc2lvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXREZWZhdWx0SGllcmFyY2h5ID0gJ3NldC1kZWZhdWx0LWhpZXJhcmNoeScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEYXRhU291cmNlU29ydE9yZGVyID0gJ2RhdGEtc291cmNlLXNvcnQtb3JkZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJVdGlsaXR5RGltZW5zaW9uID0gJ2NsZWFyLXV0aWxpdHktZGltZW5zaW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsZWFyRGVmYXVsdFNvcnQgPSAnY2xlYXItZGVmYXVsdC1zb3J0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldERlZmF1bHRBZ2dyZWdhdGlvbiA9ICdzZXQtZGVmYXVsdC1hZ2dyZWdhdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXREZWZhdWx0VlRBZ2dyZWdhdGlvbiA9ICdzZXQtZGVmYXVsdC12dGFnZ3JlZ2F0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZUZpc2NhbFllYXIgPSAnY2hhbmdlLWZpc2NhbC15ZWFyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZVNlbWFudGljUm9sZSA9ICdjaGFuZ2Utc2VtYW50aWMtcm9sZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGRUb1NoZWV0ID0gJ2FkZC10by1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEcm9wU2NoZW1hU2VsT25TaGVsZiA9ICdkcm9wLXNjaGVtYS1zZWwtb24tc2hlbGYnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkVG9TY2hlbWFGaWVsZEZvbGRlciA9ICdhZGQtdG8tc2NoZW1hLWZpZWxkLWZvbGRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVGcm9tU2NoZW1hRmllbGRGb2xkZXIgPSAncmVtb3ZlLWZyb20tc2NoZW1hLWZpZWxkLWZvbGRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVTY2hlbWFGaWVsZEZvbGRlciA9ICdyZW1vdmUtc2NoZW1hLWZpZWxkLWZvbGRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEZWZhdWx0VGV4dEZvcm1hdCA9ICdkZWZhdWx0LXRleHQtZm9ybWF0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRTY2hlbWFDYXB0aW9uID0gJ2VkaXQtc2NoZW1hLWNhcHRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVzZXRTY2hlbWFDYXB0aW9uID0gJ3Jlc2V0LXNjaGVtYS1jYXB0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENyZWF0ZU91dGxpZXJTZXQgPSAnY3JlYXRlLW91dGxpZXItc2V0JyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gVUlDb21tYW5kcyB7XHJcblxyXG5cclxuICAgIC8vIFxyXG4gICAgQWJvdXQgPSAnYWJvdXQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkRGF0YVNlcnZlckRhdGFTb3VyY2VVSSA9ICdhZGQtZGF0YS1zZXJ2ZXItZGF0YXNvdXJjZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTd2l0Y2hUb0RvY3VtZW50QW5kQWRkRGF0YVNlcnZlckRhdGFTb3VyY2VVSSA9ICdzd2l0Y2gtdG8tZG9jdW1lbnQtYW5kLWFkZC1kYXRhLXNlcnZlci1kcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGREcmlsbFBhdGhVSSA9ICdhZGQtZHJpbGxwYXRoLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFkZEZpZWxkRm9sZGVyVUkgPSAnYWRkLWZpZWxkLWZvbGRlci11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGRGaWxlVG9FeHRyYWN0VUkgPSAnYWRkLWZpbGUtdG8tZXh0cmFjdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGREYXRhU291cmNlVG9FeHRyYWN0VUkgPSAnYWRkLWRhdGEtc291cmNlLXRvLWV4dHJhY3QtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkUUNUb1NoZWV0VUkgPSAnYWRkLXFjLXRvLXNoZWV0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFkZFJlZmVyZW5jZUxpbmVVSSA9ICdhZGQtcmVmZXJlbmNlLWxpbmUtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkU2NoZW1hRmllbGRGb2xkZXJVSSA9ICdhZGQtdG8tc2NoZW1hLWZpZWxkLWZvbGRlci11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGRUYWJsZWF1U2VydmVyRFNDb25uZWN0aW9uVUkgPSAnYWRkLXRhYmxlYXUtc2VydmVyLWRzLWNvbm5lY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkVG9TY2hlbWFEcmlsbFBhdGhVSSA9ICdhZGQtdG8tc2NoZW1hLWRyaWxscGF0aC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGRUb1NoZWV0VUkgPSAnYWRkLXRvLXNoZWV0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFubm90YXRlVUkgPSAnYW5ub3RhdGUtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQXBwZW5kRGF0YVNvdXJjZVRvUmVtb3RlRXh0cmFjdFVJID0gJ2FwcGVuZC1kYXRhLXNvdXJjZS10by1yZW1vdGUtZXh0cmFjdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdHRlbXB0Q29ubmVjdERhdGFTb3VyY2VzT25TaGVldFVJID0gJ2F0dGVtcHQtY29ubmVjdC1kYXRhc291cmNlcy1vbi1zaGVldC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdHRlbXB0RGF0YVNvdXJjZUNvbm5lY3Rpb25VSSA9ICdhdHRlbXB0LWRhdGFzb3VyY2UtY29ubmVjdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdXRvSGlkZVNoZWV0ID0gJ2F1dG8taGlkZS1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdXRvbWF0aW9uQ2xpY2tNUlVJdGVtID0gJ2NsaWNrLW1ydS1pdGVtJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENhbGN1bGF0ZWRNZW1iZXJzVUkgPSAnY2FsY3VsYXRlZC1tZW1iZXJzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZUFnZ3JlZ2F0aW9uVUkgPSAnY2hhbmdlLWFnZ3JlZ2F0aW9uLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZURhdGFTZXJ2ZXJMb2dvblVJID0gJ2NoYW5nZS1kYXRhLXNlcnZlci1sb2dvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDaGFuZ2VFc3NiYXNlQWxpYXNGaWxlID0gJ2NoYW5nZS1lc3NiYXNlLWFsaWFzLWZpbGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2hhbmdlRmllbGRUeXBlVUkgPSAnY2hhbmdlLWZpZWxkLXR5cGUtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2hhbmdlVGFiQ29sb3JTaGVldCA9ICdjaGFuZ2UtdGFiLWNvbG9yLXNoZWV0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoZWNrRm9yUHJvZHVjdFVwZGF0ZXMgPSAnY2hlY2stZm9yLXByb2R1Y3QtdXBkYXRlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDbGVhckRhc2hib2FyZFVJID0gJ2NsZWFyLWRhc2hib2FyZC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDbGVhclNoZWV0VUkgPSAnY2xlYXItc2hlZXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJTdG9yeVVJID0gJ2NsZWFyLXN0b3J5LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsZWFyVml6VUkgPSAnY2xlYXItdml6LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsb3NlQ2FsY3VsYXRpb25VSSA9ICdjbG9zZS1jYWxjdWxhdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDbG9zZURhdGFTb3VyY2VVSSA9ICdjbG9zZS1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsb3NlV29ya2Jvb2sgPSAnY2xvc2Utd29ya2Jvb2snLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29sb3JMZWdlbmRFZGl0VUkgPSAnY29sb3ItbGVnZW5kLWVkaXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29tbWl0UGlsbEVkaXRVSSA9ICdjb21taXQtcGlsbC1lZGl0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3REYXRhU291cmNlVUkgPSAnY29ubmVjdC1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3RSZXByb21wdFVJID0gJ2Nvbm5lY3QtcmVwcm9tcHQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdFZhcmlhYmxlUHJvbXB0VUkgPSAnY29ubmVjdC12YXJpYWJsZS1wcm9tcHQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdFZhcmlhYmxlUHJvbXB0TWF0Y2hpbmdVSSA9ICdjb25uZWN0LXZhcmlhYmxlLXByb21wdC1tYXRjaGluZy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uQWRkTmV3Q3VzdG9tU1FMVUkgPSAnY29ubmVjdGlvbi1hZGQtbmV3LWN1c3RvbS1zcWwtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkFkZE5ld1RhYmxlVUkgPSAnY29ubmVjdGlvbi1hZGQtbmV3LXRhYmxlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25EYXRhR3JpZENvcHlVSSA9ICdjb25uZWN0aW9uLWRhdGEtZ3JpZC1jb3B5LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25FZGl0Q3VzdG9tU1FMVUkgPSAnY29ubmVjdGlvbi1jdXN0b20tc3FsLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25FZGl0RXh0cmFjdFVJID0gJ2Nvbm5lY3Rpb24tZXh0cmFjdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRWRpdERCVmFyaWFibGVzVUkgPSAnY29ubmVjdGlvbi1lZGl0LWRiLXZhcmlhYmxlcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRWRpdENvbm5lY3Rpb25VSSA9ICdjb25uZWN0aW9uLWVkaXQtY29ubmVjdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRmluYWxpemVEYXRhU291cmNlVUkgPSAnY29ubmVjdGlvbi1maW5hbGl6ZS1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25GaW5hbGl6ZUV4dHJhY3RTdGF0ZXNVSSA9ICdjb25uZWN0aW9uLWZpbmFsaXplLWV4dHJhY3Qtc3RhdGVzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25HZXRUeXBlR3JvdXBQcmVzTW9kZWxVSSA9ICdjb25uZWN0aW9uLWdldC10eXBlLWdyb3VwLXByZXMtbW9kZWwtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkdldFNhdmVkRGF0YVNvdXJjZXNQcmVzTW9kZWxVSSA9ICdjb25uZWN0aW9uLWdldC1zYXZlZC1kcy1wcmVzLW1vZGVsLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25QYXJ0aXRpb25pbmdGYWlsdXJlVUkgPSAnY29ubmVjdGlvbi1wYXJ0aXRpb25pbmctZmFpbHVyZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uUmVwbGFjZVRhYmxlVUkgPSAnY29ubmVjdGlvbi1yZXBsYWNlLXRhYmxlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25TZWFyY2hDYXRhbG9nVUkgPSAnY29ubmVjdGlvbi1zZWFyY2gtY2F0YWxvZy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uU2VhcmNoQ3ViZVVJID0gJ2Nvbm5lY3Rpb24tc2VhcmNoLWN1YmUtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblNlbGVjdENhdGFsb2dVSSA9ICdjb25uZWN0aW9uLXNlbGVjdC1jYXRhbG9nLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25TZWxlY3RDdWJlVUkgPSAnY29ubmVjdGlvbi1zZWxlY3QtY3ViZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uU2VsZWN0U3RhbmRhcmRDb25uZWN0aW9uVUkgPSAnY29ubmVjdGlvbi1zZWxlY3Qtc3RhbmRhcmQtY29ubmVjdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uU2VsZWN0U3RvcmVkUHJvY2VkdXJlVUkgPSAnY29ubmVjdGlvbi1zZWxlY3Qtc3RvcmVkLXByb2NlZHVyZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uU2hvd0VkaXRUYWJsZURpYWxvZ1VJID0gJ2Nvbm5lY3Rpb24tc2hvdy1lZGl0LXRhYmxlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25TaG93UGl2b3REaWFsb2dVSSA9ICdjb25uZWNpdG9uLXNob3ctcGl2b3QtZGlhbG9nLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25Tb3J0Q2F0YWxvZ1VJID0gJ2Nvbm5lY3Rpb24tc29ydC1jYXRhbG9nLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25Tb3J0Q3ViZVVJID0gJ2Nvbm5lY3Rpb24tc29ydC1jdWJlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25WYWxpZGF0ZUN1c3RvbVNRTFVJID0gJ2Nvbm5lY3Rpb24tdmFsaWRhdGUtY3VzdG9tLXNxbC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0VG9DbG91ZEZpbGUgPSAnY29ubmVjdC10by1jbG91ZC1maWxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3RUb0RhdGFTZXJ2ZXJTb3VyY2VVSSA9ICdjb25uZWN0LWRhdGEtc2VydmVyLWRhdGFzb3VyY2UtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkNvbnZlcnRUb1NRTFVJID0gJ2Nvbm5lY3Rpb24tY29udmVydC10by1zcWwtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblJlbmFtZUNvbm5lY3Rpb25VSSA9ICdjb25uZWN0aW9uLXJlbmFtZS1jb25uZWN0aW9uLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4cG9ydFVuZGVybHlpbmdEYXRhVG9DU1ZVSSA9ICdleHBvcnQtdG8tY3N2LXdpdGgtcHJvZ3Jlc3MtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdE9EQkNVSSA9ICdjb25uZWN0LW9kYmMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29weUNyb3NzdGFiID0gJ2NvcHktY3Jvc3N0YWInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29weURhdGEgPSAnY29weS1kYXRhJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvcHlEcmlsbFBhdGhGaWVsZHNVSSA9ICdjb3B5LWRyaWxsLXBhdGgtZmllbGRzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvcHlGaWVsZHNEZWZuVUkgPSAnY29weS1maWVsZHMtZGVmbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb3B5SW1hZ2UgPSAnY29weS1pbWFnZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb3B5SW1hZ2VEYXNoYm9hcmQgPSAnY29weS1pbWFnZS1kYXNoYm9hcmQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29weUltYWdlV29ya3NoZWV0ID0gJ2NvcHktaW1hZ2Utd29ya3NoZWV0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvcHlJbWFnZVN0b3J5ID0gJ2NvcHktaW1hZ2Utc3RvcnknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29weVdvcmtzaGVldEZvcm1hdHRpbmcgPSAnY29weS1mb3JtYXR0aW5nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENyZWF0ZUNhbGN1bGF0ZWRTZXRVSSA9ICdjcmVhdGUtY2FsY3VsYXRlZC1zZXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlQ2FsY3VsYXRpb25VSSA9ICdjcmVhdGUtY2FsY3VsYXRpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlQ29tYmluZWRGaWVsZFVJID0gJ2NyZWF0ZS1jb21iaW5lZC1maWVsZC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDcmVhdGVDb25uZWN0aW9uVUkgPSAnY3JlYXRlLWNvbm5lY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlRGF0ZUJpblVJID0gJ2NyZWF0ZS1EYXRlLWJpbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDcmVhdGVHcm91cFNlbGVjdGlvblVJID0gJ2NyZWF0ZS1ncm91cC1zZWxlY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlR3JvdXBVSSA9ICdjcmVhdGUtZ3JvdXAtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlSWRlbnRpdHlTZXQgPSAnY3JlYXRlLXVzZXItZmlsdGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENyZWF0ZUxlYWZDb25uZWN0aW9uVUkgPSAnY3JlYXRlLWxlYWYtY29ubmVjdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDcmVhdGVOdW1lcmljQmluc1VJID0gJ2NyZWF0ZS1udW1lcmljLWJpbnMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlU2V0VUkgPSAnY3JlYXRlLXNldC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDdXN0b21EYXRlQWdncmVnYXRpb25VSSA9ICdjdXN0b20tZGF0ZS1hZ2dyZWdhdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDdXREcmlsbFBhdGhGaWVsZHNVSSA9ICdjdXQtZHJpbGwtcGF0aC1maWVsZHMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3V0RmllbGRzRGVmblVJID0gJ2N1dC1maWVsZHMtZGVmbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEZWFjdGl2YXRlRGFzaGJvYXJkID0gJ2RlYWN0aXZhdGUtZGFzaGJvYXJkJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERlbGV0ZUNvb2tpZXMgPSAnZGVsZXRlLWNvb2tpZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVsZXRlRmllbGRzVUkgPSAnZGVsZXRlLWZpZWxkcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEZWxldGVTaGVldFVJID0gJ2RlbGV0ZS1zaGVldC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEZXNjcmliZUFkaG9jQ2x1c3RlclVJID0gJ2Rlc2NyaWJlLWFkaG9jLWNsdXN0ZXItdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVzY3JpYmVEcmlsbFBhdGhVSSA9ICdkZXNjcmliZS1kcmlsbHBhdGgtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVzY3JpYmVGaWVsZFVJID0gJ2Rlc2NyaWJlLWZpZWxkLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERlc2NyaWJlRm9yZWNhc3RVSSA9ICdkZXNjcmliZS1mb3JlY2FzdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEZXNjcmliZVNjaGVtYURyaWxsUGF0aFVJID0gJ2Rlc2NyaWJlLXNjaGVtYS1kcmlsbHBhdGgtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVzY3JpYmVUcmVuZExpbmUgPSAnZGVzY3JpYmUtdHJlbmQtbGluZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEZXNjcmliZVRyZW5kTW9kZWwgPSAnZGVzY3JpYmUtdHJlbmQtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgT3BlbkRpc2NvdmVyUGFuZUxpbmtzID0gJ29wZW4tZGlzY292ZXItcGFuZS1saW5rcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEaXNtaXNzR29Ub1dvcmtzaGVldFRvb2x0aXBVSSA9ICdkaXNtaXNzLWdvLXRvLXdvcmtzaGVldC10b29sdGlwLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERvd25sb2FkQ29weURhdGFTb3VyY2UgPSAnZG93bmxvYWQtY29weS1kYXRhLXNvdXJjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEcmlsbGRvd25VSSA9ICdkcmlsbGRvd24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHJvcFNjaGVtYVNlbE9uU2hlbGZVSSA9ICdkcm9wLXNjaGVtYS1zZWwtb24tc2hlbGYtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHJvcFVJID0gJ2Ryb3AtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHVwbGljYXRlRGF0YVNvdXJjZVVJID0gJ2R1cGxpY2F0ZS1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIER1cGxpY2F0ZVNoZWV0QXNDcm9zc3RhYiA9ICdkdXBsaWNhdGUtc2hlZXQtYXMtY3Jvc3N0YWInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHVwbGljYXRlU2hlZXRPckNyb3NzdGFiVUkgPSAnZHVwbGljYXRlLXNoZWV0LW9yLWNyb3NzdGFiLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIER1cGxpY2F0ZVNoZWV0VUkgPSAnZHVwbGljYXRlLXNoZWV0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRBbGlhc2VzVUkgPSAnZWRpdC1hbGlhc2VzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRBbm5vdGF0aW9uID0gJ2VkaXQtYW5ub3RhdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0QXhpc1VJID0gJ2VkaXQtYXhpcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0Q2FsY3VsYXRlZFNldFVJID0gJ2VkaXQtY2FsY3VsYXRlZC1zZXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdENhbGN1bGF0aW9uVUkgPSAnZWRpdC1jYWxjdWxhdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0Q2FwdGlvblVJID0gJ2VkaXQtY2FwdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0Q29tYmluZWRGaWVsZFVJID0gJ2VkaXQtY29tYmluZWQtZmllbGQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdENvcHlGaWVsZFVJID0gJ2VkaXQtY29weS1maWVsZC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0RGF0YVNvdXJjZVVJID0gJ2VkaXQtZGF0YXNvdXJjZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0RGF0YVNvdXJjZUZpZWxkQWxpYXNlcyA9ICdlZGl0LWRhdGFzb3VyY2UtZmllbGQtYWxpYXNlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0RGF0YVNvdXJjZUZpbHRlcnNVSSA9ICdlZGl0LWRhdGFzb3VyY2UtZmlsdGVycy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0RGF0YVNvdXJjZVNpdGVQYXRoc1VJID0gJ2VkaXQtZGF0YXNvdXJjZS1zaXRlLXBhdGhzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXREYXRlQmluVUkgPSAnZWRpdC1kYXRlLWJpbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0RGVmYXVsdFNvcnRVSSA9ICdlZGl0LWRlZmF1bHQtc29ydC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0RHJvcExpbmVzVUkgPSAnZWRpdC1kcm9wLWxpbmVzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXREcm9wRmllbGRVSSA9ICdlZGl0LWRyb3AtZmllbGQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdERhdGFTb3VyY2VSZWxhdGlvbnNoaXBzVUkgPSAnZWRpdC1kYXRhc291cmNlLXJlbGF0aW9uc2hpcHMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdEVudW1lcmF0ZWRTZXRVSSA9ICdlZGl0LWVudW1lcmF0ZWQtc2V0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRGaWx0ZXJRdWlja0ZpbHRlciA9ICdlZGl0LWZpbHRlci1xdWljay1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdEZpbHRlclVJID0gJ2VkaXQtZmlsdGVyLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRGb3JlY2FzdFVJID0gJ2VkaXQtZm9yZWNhc3QtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdEdyb3VwVUkgPSAnZWRpdC1ncm91cC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0R3JvdXBWYWx1ZSA9ICdlZGl0LWdyb3VwLXZhbHVlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRHcm91cFZhbHVlTGFiZWwgPSAnZWRpdC1ncm91cC12YWx1ZS1sYWJlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0TGVnZW5kR3JvdXBWYWx1ZVVJID0gJ2VkaXQtZ3JvdXAtdmFsdWUtbGVnZW5kJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRJbWFnZVVJID0gJ2VkaXQtaW1hZ2UtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdExlZ2VuZE1lbWJlckFsaWFzVUkgPSAnZWRpdC1sZWdlbmQtbWVtYmVyLWFsaWFzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRMZWdlbmRUaXRsZVVJID0gJ2VkaXQtbGVnZW5kLXRpdGxlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRNYXJrQ29sb3JVSSA9ICdlZGl0LW1hcmstY29sb3ItdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdE1hcmtTaGFwZVVJID0gJ2VkaXQtbWFyay1zaGFwZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0TWVtYmVyQWxpYXMgPSAnZWRpdC1tZW1iZXItYWxpYXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdE1lbWJlckFsaWFzTGFiZWwgPSAnZWRpdC1tZW1iZXItYWxpYXMtbGFiZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFBhZ2VUaXRsZVVJID0gJ2VkaXQtcGFnZS10aXRsZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0UGFyYW1ldGVyQ3RybFRpdGxlID0gJ2VkaXQtcGFyYW0tY29udHJvbC10aXRsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0UGRmUGFnZVNlbGVjdGlvblVJID0gJ2VkaXQtcGRmLXBhZ2Utc2VsZWN0aW9uLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRQcmltYXJ5QWxpYXNlc1VJID0gJ2VkaXQtcHJpbWFyeS1hbGlhc2VzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRSZWZlcmVuY2VMaW5lID0gJ2VkaXQtcmVmZXJlbmNlLWxpbmUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFNjaGVtYUNhbGN1bGF0aW9uVUkgPSAnZWRpdC1zY2hlbWEtY2FsY3VsYXRpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFNjaGVtYUNhbGN1bGF0aW9uUmFuZ2VVSSA9ICdlZGl0LXNjaGVtYS1jYWxjdWxhdGlvbi1yYW5nZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0U2NoZW1hQ2FwdGlvblVJID0gJ2VkaXQtc2NoZW1hLWNhcHRpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFNjaGVtYUZpZWxkQWxpYXNVSSA9ICdlZGl0LXNjaGVtYS1maWVsZC1hbGlhcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXNldFNjaGVtYUNhcHRpb25VSSA9ICdyZXNldC1zY2hlbWEtZmllbGQtYWxpYXMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVzZXRNdWx0aXBsZVNjaGVtYUNhcHRpb25zVUkgPSAncmVzZXQtbXVsdGlwbGUtc2NoZW1hLWZpZWxkLWFsaWFzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRTY2hlbWFOdW1lcmljQmluc1VJID0gJ2VkaXQtc2NoZW1hLW51bWVyaWMtYmlucy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0U2V0VUkgPSAnZWRpdC1zZXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFRpdGxlUXVpY2tGaWx0ZXIgPSAnZWRpdC10aXRsZS1xdWljay1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFRpdGxlVUkgPSAnZWRpdC10aXRsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0VG9vbHRpcFVJID0gJ2VkaXQtdG9vbHRpcCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0VHJlbmRMaW5lc1VJID0gJ2VkaXQtdHJlbmQtbGluZXMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFVzZXJEZXNjcmlwdGlvblVJID0gJ2VkaXQtdXNlci1kZXNjcmlwdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0V01TTWFwVGlsZVNlcnZlciA9ICdlZGl0LXdtcy1tYXAtdGlsZS1zZXJ2ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFpvbmVQYXJhbSA9ICdlZGl0LXpvbmUtcGFyYW0nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFpvbmVVcmwgPSAnZWRpdC16b25lLXVybCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFc3RhYmxpc2hDb25uZWN0aW9uVUkgPSAnZXN0YWJsaXNoLWNvbm5lY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXN0YWJsaXNoVGFibGVhdVNlcnZlckNvbm5lY3Rpb25VSSA9ICdlc3RhYmxpc2gtdGFibGVhdS1zZXJ2ZXItY29ubmVjdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeGVjdXRlVUlBdXRvbWF0aW9uQnV0dG9uID0gJ2V4ZWN1dGUtdWktYnV0dG9uLWFjdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeGVjdXRlVUlBdXRvbWF0aW9uQ29tYm9Cb3ggPSAnZXhlY3V0ZS11aS1jb21iby1ib3gtYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25HZW5lcmljV2lkZ2V0ID0gJ2V4ZWN1dGUtdWktZ2VuZXJpYy13aWRnZXQtYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25MYWJlbCA9ICdleGVjdXRlLXVpLWxhYmVsLWFjdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeGVjdXRlVUlBdXRvbWF0aW9uTWVudSA9ICdleGVjdXRlLXVpLW1lbnUtYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25JdGVtVmlldyA9ICdleGVjdXRlLXVpLWl0ZW0tdmlldy1hY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXhlY3V0ZVVJQXV0b21hdGlvblRleHRCb3ggPSAnZXhlY3V0ZS11aS10ZXh0LWJveC1hY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXhlY3V0ZVVJQXV0b21hdGlvblRvZ2dsZUJ1dHRvbiA9ICdleGVjdXRlLXVpLXRvZ2dsZS1idXR0b24tYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25TbGlkZXIgPSAnZXhlY3V0ZS11aS1zbGlkZXItYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25XaW5kb3cgPSAnZXhlY3V0ZS11aS13aW5kb3ctYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25XZWJWaWV3ID0gJ2V4ZWN1dGUtdWktd2ViLXZpZXctYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25UYWIgPSAnZXhlY3V0ZS11aS10YWItYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25UZXh0QnJvd3NlciA9ICdleGVjdXRlLXVpLXRleHQtYnJvd3Nlci1hY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXhpdEFwcGxpY2F0aW9uID0gJ2V4aXQtYXBwbGljYXRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXhwb3J0RGF0YSA9ICdleHBvcnQtZGF0YScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeHBvcnREYXRhU291cmNlVUkgPSAnZXhwb3J0LWRhdGFzb3VyY2UtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXhwb3J0UGFja2FnZWRXb3JrYm9vayA9ICdleHBvcnQtcGFja2FnZWQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXhwb3J0V29ya2Jvb2tTaGVldHNVSSA9ICdleHBvcnQtd29ya2Jvb2stc2hlZXRzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4dFN2Y0NvbmZpZ1VJID0gJ2V4dC1zdmMtY29uZmlnLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4dHJhY3RIaXN0b3J5ID0gJ2V4dHJhY3QtaGlzdG9yeScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeHRyYWN0UHJvcGVydGllc1VJID0gJ2V4dHJhY3QtcHJvcGVydGllcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeHRyYWN0VUkgPSAnZXh0cmFjdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGaWx0ZXJGaWVsZExhYmVsVUkgPSAnZmlsdGVyLWZpZWxkLWxhYmVsLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZvcm1hdEFubm90YXRpb24gPSAnZm9ybWF0LWFubm90YXRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRm9ybWF0QXhpc1VJID0gJ2Zvcm1hdC1heGlzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZvcm1hdENhcHRpb25UaXRsZVVJID0gJ2Zvcm1hdC1jYXB0aW9uLXRpdGxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZvcm1hdEZpZWxkID0gJ2Zvcm1hdC1wYW5lJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZvcm1hdEZpZWxkTGFiZWxVSSA9ICdmb3JtYXQtZmllbGQtbGFiZWwtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRm9ybWF0TGFiZWwgPSAnZm9ybWF0LWxhYmVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZvcm1hdExlZ2VuZHNVSSA9ICdmb3JtYXQtbGVnZW5kcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGb3JtYXRSZWZlcmVuY2VMaW5lID0gJ2Zvcm1hdC1yZWZlcmVuY2UtbGluZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGb3JtYXRVSSA9ICdmb3JtYXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRnVsbFNjcmVlbiA9ICdmdWxsc2NyZWVuJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldERhc2hib2FyZFNpZGVQYW5lTW9kZSA9ICdnZXQtZGFzaGJvYXJkLXNpZGVwYW5lLW1vZGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RGVidWdnaW5nSW5mbyA9ICdnZXQtZGVidWdnaW5nLWluZm8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0SWNvblBhdGhGb3JFbmNvZGluZ1R5cGUgPSAnZ2V0LWljb24tcGF0aC1mb3ItZW5jb2RpbmctdHlwZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRJY29uUGF0aEZvclByaW1pdGl2ZVR5cGUgPSAnZ2V0LWljb24tcGF0aC1mb3ItcHJpbWl0aXZlLXR5cGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0VGFibGVPcHRpb25zUHJlc01vZGVsID0gJ2dldC10YWJsZS1vcHRpb25zLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0V2luZG93TmFtZVVJID0gJ2dldC13aW5kb3ctbmFtZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRXb3Jrc2hlZXRTaWRlUGFuZU1vZGUgPSAnZ2V0LXdvcmtzaGVldC1zaWRlcGFuZS1tb2RlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldEhpZGRlblNoZWV0cyA9ICdnZXQtaGlkZGVuLXNoZWV0cycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRPcGVuUGFuZU1SVXMgPSAnZ2V0LW9wZW4tcGFuZS1tcnVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldE9wZW5QYW5lU2FtcGxlV29ya2Jvb2tzID0gJ2dldC1vcGVuLXBhbmUtc2FtcGxlLXdvcmtib29rcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRSZXRhcmdldERhdGFTb3VyY2VQcmVzTW9kZWxVSSA9ICdnZXQtcmV0YXJnZXQtZGF0YXNvdXJjZS1wcmVzLW1vZGVsLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFNjaGVtYVZpZXdlclByZXNNb2RlbCA9ICdnZXQtc2NoZW1hLXZpZXdlci1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFNlbGVjdGVkU2hlZXRzID0gJ2dldC1zZWxlY3RlZC1zaGVldHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0U2hlZXRTb3J0ZXJUaHVtYm5haWwgPSAnZ2V0LXNoZWV0LXNvcnRlci10aHVtYm5haWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0U2hlZXRUYWJVSVRodW1ibmFpbCA9ICdnZXQtc2hlZXQtdGFiLXVpLXRodW1ibmFpbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTaGVldFRhYlVJVGV4dCA9ICdnZXQtc2hlZXQtdGFiLXVpLXRleHQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0VmlzaWJsZVRyZWVJdGVtcyA9ICdnZXQtdmlzaWJsZS10cmVlLWl0ZW1zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdvdG9TaGVldFJhbmdlID0gJ2dvdG8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR290b1VSTCA9ICdnb3RvLXVybCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWRlQ2FwdGlvblVJID0gJ2hpZGUtY2FwdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWRlRmlsbXN0cmlwVUkgPSAnaGlkZS1maWxtc3RyaXAtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSGlkZVRpdGxlVUkgPSAnaGlkZS10aXRsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWRlWm9uZVVJID0gJ2hpZGUtem9uZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWRlQWxsU2hlZXRzVUkgPSAnaGlkZS1hbGwtc2hlZXRzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFVuaGlkZUFsbFNoZWV0c1VJID0gJ3VuaGlkZS1hbGwtc2hlZXRzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEltcG9ydExvY2FsRGF0YVVJID0gJ2ltcG9ydC1sb2NhbC1kYXRhLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEltcG9ydE1hcFNvdXJjZSA9ICdpbXBvcnQtbWFwLXNvdXJjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBJbXBvcnRNYXBTb3VyY2VVSSA9ICdpbXBvcnQtbWFwLXNvdXJjZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBJbXBvcnRXb3JrYm9va1VJID0gJ2ltcG9ydC13b3JrYm9vay11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBMb2FkRGVmYXVsdEZvcm1hdHRpbmdVSSA9ICdsb2FkLWZvcm1hdHRpbmctdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTG9jYXRlRmllbGRVSSA9ICdsb2NhdGUtZmllbGQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTG9nTWVtb3J5VXNhZ2UgPSAnbG9nLW1lbW9yeS11c2FnZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNYW5hZ2VMaWNlbnNpbmcgPSAnbWFuYWdlLWxpY2Vuc2luZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNYW5hZ2VNYXBib3ggPSAnbWFuYWdlLW1hcGJveCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNYW5hZ2VQdWJsaWNXb3JrYm9va3MgPSAnbWFuYWdlLXB1YmxpYycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNYW5hZ2VNYXBTZXJ2aWNlcyA9ICdtYW5hZ2UtbWFwLXNlcnZpY2VzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE1hcExheWVyc1VJID0gJ21hcC1sYXllcnMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTWFuYWdlV01TID0gJ21hbmFnZS13bXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXBncmFkZURhdGFTb3VyY2VzVUkgPSAndXBncmFkZS1kYXRhc291cmNlcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBVcGdyYWRlRGF0YVNvdXJjZVVJID0gJ3VwZ3JhZGUtZGF0YXNvdXJjZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNb3ZlUmVwb3NpdG9yeSA9ICdtb3ZlLXJlcG9zaXRvcnknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTmV3U2NoZW1hRHJpbGxQYXRoVUkgPSAnbmV3LXNjaGVtYS1kcmlsbC1wYXRoLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE5ld1VJRGFzaGJvYXJkID0gJ25ldy1kYXNoYm9hcmQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTmV3VUlXb3Jrc2hlZXQgPSAnbmV3LXdvcmtzaGVldC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBOZXdVSVN0b3J5Ym9hcmQgPSAnbmV3LXN0b3J5Ym9hcmQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTmV3V29ya2Jvb2sgPSAnbmV3LXdvcmtib29rJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE5leHRTaGVldCA9ICduZXh0LXNoZWV0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIE5vblJhbmdlZEVkaXRSZWZlcmVuY2VMaW5lID0gJ25vbi1yYW5nZWQtZWRpdC1yZWZlcmVuY2UtbGluZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBPcGVuQm9va21hcmsgPSAnb3Blbi1ib29rbWFyaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBPcGVuRnJvbVdvcmtncm91cCA9ICdvcGVuLXdvcmtib29rLWZyb20td29ya2dyb3VwJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wZW5NYXBTb3VyY2UgPSAnb3Blbi1tYXAtc291cmNlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wZW5NYXBTb3VyY2VVSSA9ICdvcGVuLW1hcC1zb3VyY2UtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgT3BlblNhbXBsZVdvcmtib29rID0gJ29wZW4tc2FtcGxlLXdvcmtib29rJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wZW5Xb3JrYm9vayA9ICdvcGVuLXdvcmtib29rJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wZW5SZWNlbnRXb3JrYm9vayA9ICdvcGVuLXJlY2VudC13b3JrYm9vaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBPcGVuT3RoZXJGaWxlcyA9ICdvcGVuLW90aGVyLWZpbGVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wdGltaXplRXh0cmFjdFVJID0gJ29wdGltaXplLWV4dHJhY3QtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGFnZVNldHVwID0gJ3BhZ2Utc2V0dXAnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGFzdGUgPSAncGFzdGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGFzdGVGaWVsZHNEZWZuVUkgPSAncGFzdGUtZmllbGRzLWRlZm4tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGFzdGVXb3Jrc2hlZXRGb3JtYXR0aW5nID0gJ3Bhc3RlLWZvcm1hdHRpbmcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUERGRXhwb3J0ID0gJ2V4cG9ydC1wZGYnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGVyc3BlY3RpdmVzVUkgPSAncGVyc3BlY3RpdmVzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFByZXNlbnRhdGlvbk1vZGUgPSAncHJlc2VudGF0aW9uLW1vZGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHJpbnQgPSAncHJpbnQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHJvbXB0U2NyaXB0ID0gJ3Byb21wdC1jb21tYW5kJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFByb3BlcnRpZXNEYXRhU291cmNlVUkgPSAncHJvcGVydGllcy1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFB1Ymxpc2hEYXRhc291cmNlVG9Xb3JrZ3JvdXAgPSAncHVibGlzaC1kYXRhc291cmNlLXRvLXdvcmtncm91cCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBQdWJsaXNoRGF0YXNvdXJjZVRvV29ya2dyb3VwRnJvbURhdGEgPSAncHVibGlzaC1kYXRhc291cmNlLXRvLXdvcmtncm91cC1mcm9tLWRhdGEnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHVibGlzaERhdGFzb3VyY2VUb1dvcmtncm91cFJhbmdlID0gJ3B1Ymxpc2gtZGF0YXNvdXJjZS10by13b3JrZ3JvdXAtcmFuZ2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHVibGlzaFdvcmtib29rVG9Xb3JrZ3JvdXAgPSAncHVibGlzaC13b3JrYm9vay10by13b3JrZ3JvdXAnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHVibGlzaERhdGFzb3VyY2VUb1dvcmtncm91cEZyb21Xb3JrYm9va0RhdGEgPSAncHVibGlzaC1kYXRhc291cmNlLXRvLXdvcmtncm91cC1mcm9tLXdvcmtib29rLWRhdGEnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHJvbXB0Rm9yRGF0YVNvdXJjZUZpbGVVSSA9ICdwcm9tcHQtZm9yLWRhdGFzb3VyY2UtZmlsZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBQcm9tcHRVbmtub3duV0RDVXJsVUkgPSAncHJvbXB0LXVua25vd24td2RjLXVybC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBRdWVyeURhdGFTb3VyY2VVSSA9ICdxdWVyeS1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFF1aWNrRmlsdGVyRmllbGRMYWJlbFVJID0gJ3F1aWNrLWZpbHRlci1maWVsZC1sYWJlbC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBRdWlja1RhYmxlQ2FsY1VJID0gJ3F1aWNrLXRhYmxlLWNhbGMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVjb25uZWN0TWFwU291cmNlVUkgPSAncmVjb25uZWN0LW1hcC1zb3VyY2UtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVjb3JkUGVyZm9ybWFuY2UgPSAncmVjb3JkLXBlcmYnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVmcmVzaEFsbEV4dHJhY3RzVUkgPSAncmVmcmVzaC1hbGwtZXh0cmFjdHMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVmcmVzaEFsbFRodW1ibmFpbHNVSSA9ICdyZWZyZXNoLWFsbC10aHVtYm5haWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlZnJlc2hBdXRvRXh0cmFjdFVJID0gJ3JlZnJlc2gtYXV0by1leHRyYWN0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlZnJlc2hEYXRhU291cmNlVUkgPSAncmVmcmVzaC1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlZnJlc2hFeHRyYWN0VUkgPSAncmVmcmVzaC1leHRyYWN0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlZnJlc2hGcm9tU291cmNlVUkgPSAncmVmcmVzaC1mcm9tLXNvdXJjZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZWZyZXNoTG9jYWxEYXRhVUkgPSAncmVmcmVzaC1sb2NhbC1kYXRhLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlZnJlc2hUaHVtYm5haWxVSSA9ICdyZWZyZXNoLXRodW1ibmFpbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZWxlYXNlTWVtb3J5ID0gJ3JlbGVhc2UtbWVtb3J5JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbW92ZUFubm90YXRpb24gPSAncmVtb3ZlLWFubm90YXRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlRXh0cmFjdFVJID0gJ3JlbW92ZS1leHRyYWN0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbW92ZU1SVUl0ZW0gPSAncmVtb3ZlLW1ydScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVTYXZlZERhdGFTb3VyY2VVSSA9ICdyZW1vdmUtc2F2ZWQtZGF0YXNvdXJjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVTaGVldEZyb21EYXNoYm9hcmRVSSA9ICdyZW1vdmUtc2hlZXQtZnJvbS1kYXNoYm9hcmQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlVGFibGVVSSA9ICdyZW1vdmUtdGFibGUtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVuYW1lRGF0YVNvdXJjZVVJID0gJ3JlbmFtZS1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbmFtZVNjaGVtYUZpZWxkRm9sZGVyVUkgPSAncmVuYW1lLWZpZWxkLWZvbGRlci11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW5hbWVTY2hlbWFEcmlsbFBhdGhVSSA9ICdyZW5hbWUtc2NoZW1hLWRyaWxscGF0aC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW5hbWVTaGVldFVJID0gJ3JlbmFtZS1zaGVldC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW9yZGVyU2hlZXRzVUkgPSAncmVvcmRlci1zaGVldHMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVwbGFjZURhdGFTb3VyY2VXaXRoRGF0YVNlcnZlckRhdGFTb3VyY2VVSSA9ICdyZXBsYWNlLWRhdGFzb3VyY2Utd2l0aC1kYXRhLXNlcnZlci1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlcGxhY2VGaWVsZFVJID0gJ3JlcGxhY2UtZmllbGQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVzZXRDYXB0aW9uVUkgPSAncmVzZXQtY2FwdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXNldENhcmRzID0gJ3Jlc2V0LWNhcmRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2V0TG9jYWxEYXRhVUkgPSAncmVtb3ZlLWxvY2FsLWRhdGEtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVzZXRNZXNzYWdlcyA9ICdyZXNldC1tZXNzYWdlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTdGFydE9ubGluZVN5bmNDbGllbnQgPSAnc3RhcnQtb25saW5lLXN5bmMtY2xpZW50JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2V0VGl0bGVVSSA9ICdyZXNldC10aXRsZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXNldFRvRGVmYXVsdHNNYXBDYXJkID0gJ3Jlc2V0LW1hcC10by1kZWZhdWx0cycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXNldFdvcmtib29rID0gJ3JldmVydC13b3JrYm9vay11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXRhcmdldERhdGFTb3VyY2UgPSAncmV0YXJnZXQtZGF0YXNvdXJjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXRhcmdldERhdGFTb3VyY2VVSSA9ICdyZXRhcmdldC1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNhdmVBc1dvcmtib29rID0gJ3NhdmUtYXMtd29ya2Jvb2snLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2F2ZUJvb2ttYXJrID0gJ3NhdmUtYm9va21hcmsnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2F2ZURlYnVnZ2luZ1dvcmtib29rID0gJ3NhdmUtZGVidWdnaW5nLXdvcmtib29rJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNhdmVEZWZhdWx0Rm9ybWF0dGluZ1VJID0gJ3NhdmUtZm9ybWF0dGluZy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTYXZlV29ya2Jvb2sgPSAnc2F2ZS13b3JrYm9vaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTY2hlbWFEZWZhdWx0TWVtYmVyVUkgPSAnc2NoZW1hLWRlZmF1bHQtbWVtYmVyLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNjcm9sbFNoZWV0ID0gJ3Njcm9sbC1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRBY2NvdW50c0RpbWVuc2lvbiA9ICdzZXQtYWNjb3VudHMtZGltZW5zaW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldEFjdGl2ZUNvbm5lY3Rpb25VSSA9ICdzZXQtYWN0aXZlLWNvbm5lY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0QW5hbHl0aWNzRHJvcFRhcmdldFZpc2liaWxpdHkgPSAnc2V0LWFuYWx5dGljcy1kcm9wLXRhcmdldC12aXNpYmlsaXR5JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldERhc2hib2FyZFNpZGVQYW5lTW9kZSA9ICdzZXQtZGFzaGJvYXJkLXNpZGVwYW5lLW1vZGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0RGVmYXVsdERhdGVGb3JtYXRVSSA9ICdzZXQtZGVmYXVsdC1kYXRlLWZvcm1hdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXREZWZhdWx0TG9jYXRpb25VSSA9ICdzZXQtZGVmYXVsdC1sb2NhdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXREZWZhdWx0TWFwU291cmNlVUkgPSAnc2V0LWRlZmF1bHQtbWFwc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldERlZmF1bHRUZXh0Rm9ybWF0VUkgPSAnc2V0LWRlZmF1bHQtdGV4dC1mb3JtYXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0RGVmYXVsdFV0aWxpdHlNZW1iZXIgPSAnc2V0LWRlZmF1bHQtdXRpbGl0eS1tZW1iZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0RnJlZUZvcm1EYXNoYm9hcmRVSSA9ICdzZXQtZnJlZS1mb3JtLWRhc2hib2FyZC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRGaWx0ZXJTaGFyZWRVSSA9ICdzZXQtZmlsdGVyLXNoYXJlZC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRLZXkgPSAnc2V0LWtleScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRQcm9kdWN0QXV0b1VwZGF0ZSA9ICdzZXQtYXV0by11cGRhdGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0UXVlcnlGYWlsdXJlID0gJ3NldC1xdWVyeS1mYWlsdXJlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFJlbmRlcmluZyA9ICdzZXQtcmVuZGVyaW5nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFJ1bnRpbWVJbW1lZGlhdGVNb2RlID0gJ3NldC1ydW50aW1lLWltbWVkaWF0ZS1tb2RlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFVJTGFuZ3VhZ2UgPSAnc2V0LXVpLWxhbmd1YWdlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFdvcmtib29rTG9jYWxlVUkgPSAnc2V0LXdvcmtib29rLWxvY2FsZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRXb3Jrc2hlZXRTaWRlUGFuZU1vZGUgPSAnc2V0LXdvcmtzaGVldC1zaWRlcGFuZS1tb2RlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFpvbmVGaXhlZFNpemVVSSA9ICdzZXQtem9uZS1maXhlZC1zaXplLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldHNJbk91dFVJID0gJ3Nob3ctaW4tb3V0LXNldHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hhcGVMZWdlbmRFZGl0VUkgPSAnc2hhcGUtbGVnZW5kLWVkaXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0Nsb3VkRmlsZU9BdXRoUHJvbXB0QW5kU2VsZWN0aW9uVUkgPSAnc2hvdy1jbG91ZGZpbGUtb2F1dGgtcHJvbXB0LWFuZC1zZWxlY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0Nvbm5lY3Rpb25BdXRoVUkgPSAnc2hvdy1jb25uZWN0aW9uLWF1dGgtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0Nvbm5lY3Rpb25BdXRoQW5kRXN0YWJsaXNoQ29ubmVjdGlvblVJID0gJ3Nob3ctY29ubmVjdGlvbi1hdXRoLWFuZC1lc3RhYmxpc2gtY29ubmVjdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93Q29ubmVjdFRhYiA9ICdzaG93LWNvbm5lY3QtdGFiJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dDdXN0b21TcGxpdERpYWxvZ1VJID0gJ3Nob3ctY3VzdG9tLXNwbGl0LWRpYWxvZy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93RG9jdW1lbnQgPSAnZG9jdW1lbnQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0ZlYXR1cmVGbGFnRGlhbG9nID0gJ3Nob3ctZmVhdHVyZS1mbGFnLWRpYWxvZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93RmllbGRGb3JtYXRVSSA9ICdzaG93LWZpZWxkLWZvcm1hdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93RmllbGRJblNjaGVtYVVJID0gJ3Nob3ctZmllbGQtaW4tc2NoZW1hJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dGaWxtc3RyaXBVSSA9ICdzaG93LWZpbG1zdHJpcC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93R29vZ2xlU2hlZXRzU2VsZWN0aW9uVUkgPSAnc2hvdy1nb29nbGUtc2hlZXRzLXNlbGVjdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93SGVscCA9ICdzaG93LWhlbHAnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0hpZGVEYXNoYm9hcmRTaGVldFVJID0gJ3Nob3ctaGlkZS1kYXNoYm9hcmQtc2hlZXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0hpZGVTdG9yeWJvYXJkU2hlZXRVSSA9ICdzaG93LWhpZGUtc3Rvcnlib2FyZC1zaGVldC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93R3JhcGhpY3NBUEkgPSAnc2hvdy1ncmFwaGljcy1hcGktY29tbWFuZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93TWFwT3B0aW9uc0RpYWxvZyA9ICdzaG93LW1hcC1vcHRpb25zLWRpYWxvZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93TWVhc3VyZXNVSSA9ICdzaG93LW1lYXN1cmVzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dNZUN5Y2xlVUkgPSAnc2hvdy1tZS1jeWNsZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93TWVIaWRlVUkgPSAnc2hvdy1tZS1oaWRlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dNZW1iZXJzVUkgPSAnc2hvdy1tZW1iZXJzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dNZVRvZ2dsZVVJID0gJ3Nob3ctbWUtdG9nZ2xlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dPQXV0aFByb21wdFVJID0gJ3Nob3ctb2F1dGgtcHJvbXB0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dQYXJhbWV0ZXJDb250cm9sID0gJ3Nob3ctcGFyYW1ldGVyLWNvbnRyb2wnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1B1YmxpY1N0YXR1c0RpYWxvZyA9ICdzaG93LXB1YmxpYy1zdGF0dXMtZGlhbG9nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dQdWJsaWNRdW90YUV4Y2VlZGVkRGlhbG9nID0gJ3Nob3ctcHVibGljLXF1b3RhLWV4Y2VlZGVkLWRpYWxvZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93UHVibGlzaERhdGFzb3VyY2VUb1dvcmtncm91cERpYWxvZyA9ICdzaG93LXB1Ymxpc2gtZGF0YXNvdXJjZS10by13b3JrZ3JvdXAtZGlhbG9nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dRdWVyeUJhbmRpbmdBbmRJbml0aWFsU1FMRGlhbG9nVUkgPSAnc2hvdy1xdWVyeS1iYW5kaW5nLWFuZC1pbml0aWFsLXNxbC1kaWFsb2ctdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1F1aWNrRmlsdGVyID0gJ3Nob3ctcXVpY2tmaWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1F1aWNrRmlsdGVyVUkgPSAnc2hvdy1xdWlja2ZpbHRlci11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93UnVudGltZUluZGljYXRvciA9ICdzaG93LXJ1bnRpbWUtaW5kaWNhdG9yJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dTaGVldFNvcnRlciA9ICdzaGVldC1zb3J0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1RhYmxlT3B0aW9uc0RpYWxvZyA9ICdzaG93LXRhYmxlLW9wdGlvbnMtZGlhbG9nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dXZWJEYXRhQ29ubmVjdG9yVUkgPSAnc2hvdy13ZWItZGF0YS1jb25uZWN0b3ItdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1dpZGdldFNhbmRib3hVSSA9ICdzaG93LXdpZGdldC1zYW5kYm94LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNpemVMZWdlbmRFZGl0VUkgPSAnc2l6ZS1sZWdlbmQtZWRpdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTbGVlcFVJID0gJ3NsZWVwLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNvcnRBc2NlbmRpbmdGaWVsZExhYmVsVUkgPSAnc29ydC1hc2NlbmRpbmctZmllbGQtbGFiZWwtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU29ydERlc2NlbmRpbmdGaWVsZExhYmVsVUkgPSAnc29ydC1kZXNjZW5kaW5nLWZpZWxkLWxhYmVsLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNvcnRGaWVsZExhYmVsVUkgPSAnc29ydC1maWVsZC1sYWJlbC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTb3J0VUkgPSAnc29ydC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTcGxpdEZpZWxkVUkgPSAnc3BsaXQtZmllbGQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU3RhY2tNYXJrc1VJID0gJ3N0YWNrLW1hcmtzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFN0YXJ0RmlsZUNvbm5lY3Rpb25VSSA9ICdzdGFydC1maWxlLWNvbm5lY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU3RhcnRQaWxsRWRpdFVJID0gJ3N0YXJ0LXBpbGwtZWRpdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTd2l0Y2hUb0Nvbm5lY3RUYWIgPSAnc3dpdGNoLXRvLWNvbm5lY3QtdGFiJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFN3aXRjaFRvRG9jdW1lbnQgPSAnc3dpdGNoLXRvLWRvY3VtZW50JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFN3aXRjaFRvU2hlZXRTb3J0ZXIgPSAnc3dpdGNoLXRvLXNoZWV0LXNvcnRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUYWJsZUNhbGNBZGRyZXNzVUkgPSAndGFibGUtY2FsYy1hZGRyZXNzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRhYmxlQ2FsY0lnbm9yZVVJID0gJ3RhYmxlLWNhbGMtaWdub3JlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRhYmxlQ2FsY09yZGVyaW5nVUkgPSAndGFibGUtY2FsYy1vcmRlcmluZy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUYWJsZUNhbGNVSSA9ICd0YWJsZS1jYWxjLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZUNvbm5lY3RQYW5lVUkgPSAndG9nZ2xlLWNvbm5lY3QtcGFuZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUb2dnbGVGaWxtc3RyaXBVSSA9ICd0b2dnbGUtZmlsbXN0cmlwLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZUlOREpvaW5TZW1hbnRpY3NVSSA9ICd0b2dnbGUtaW5kLWpvaW4tc2VtYW50aWNzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZVBpbk1SVUl0ZW0gPSAndG9nZ2xlLXBpbi1tcnUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVG9nZ2xlUmVmZXJlbnRpYWxJbnRlZ3JpdHlVSSA9ICd0b2dnbGUtcmVmZXJlbnRpYWwtaW50ZWdyaXR5LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZVN0YXJ0UGFnZVVJID0gJ3RvZ2dsZS1zdGFydC1wYWdlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRyYWNrTWVtb3J5ID0gJ3RyYWNrLW1lbW9yeScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUcmVuZExpbmVzRmxhZ1VJID0gJ3RyZW5kLWxpbmVzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFVwZGF0ZURlZmF1bHRzTWFwQ2FyZCA9ICd1cGRhdGUtbWFwLWRlZmF1bHRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFVwZ3JhZGVFeHRyYWN0c1VJID0gJ3VwZ3JhZGUtZXh0cmFjdHMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXBncmFkZUV4dHJhY3RVSSA9ICd1cGdyYWRlLWV4dHJhY3QtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXNlRXh0cmFjdFVJID0gJ3VzZS1leHRyYWN0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFVzZU1lbW9yeSA9ICd1c2UtbWVtb3J5JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFV0aWxpdHlEaW1lbnNpb25VSSA9ICd1dGlsaXR5LWRpbWVuc2lvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWYWxpZGF0ZUV4dHJhY3RDcmVkZW50aWFsc1VJID0gJ3ZhbGlkYXRlLWV4dHJhY3QtY3JlZGVudGlhbHMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld0NhcmQgPSAndmlldy1jYXJkJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZpZXdUaXRsZUNhcmQgPSAndmlldy10aXRsZS1jYXJkJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZpZXdTdW1tYXJ5Q2FyZCA9ICd2aWV3LXN1bW1hcnktY2FyZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3Q2FwdGlvbkNhcmQgPSAndmlldy1jYXB0aW9uLWNhcmQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld0NvbHVtbnNTaGVsZiA9ICd2aWV3LWNvbHVtbnMtc2hlbGYnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld1Jvd3NTaGVsZiA9ICd2aWV3LXJvd3Mtc2hlbGYnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld1BhZ2VzU2hlbGYgPSAndmlldy1wYWdlcy1zaGVsZicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3RmlsdGVyc1NoZWxmID0gJ3ZpZXctZmlsdGVycy1zaGVsZicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3TWVhc3VyZXNTaGVsZiA9ICd2aWV3LW1lYXN1cmVzLXNoZWxmJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZpZXdNYXJrc1NoZWxmID0gJ3ZpZXctbWFya3Mtc2hlbGYnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld0N1cnJlbnRQYWdlQ2FyZCA9ICd2aWV3LWN1cnJlbnQtcGFnZS1jYXJkJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZpZXdEYXRhID0gJ3ZpZXctZGF0YScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3U1FMRGF0YVVJID0gJ3ZpZXctc3FsLWRhdGEtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld0RhdGFTb3VyY2VEYXRhID0gJ3ZpZXctZGF0YXNvdXJjZS1kYXRhJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZpZXdMZWdlbmQgPSAndmlldy1sZWdlbmQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld1NpZGVQYW5lID0gJ3ZpZXctc2lkZS1wYW5lJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZpZXdTdGF0dXNCYXIgPSAndmlldy1zdGF0dXNiYXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld1N1bW1hcnlEZXRhaWwgPSAndmlldy1zdW1tYXJ5LWRldGFpbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3VGFibGVEYXRhID0gJ3ZpZXctdGFibGUtZGF0YScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3VG9vbEJhciA9ICd2aWV3LXRvb2xiYXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgV2ViVmlld0VuYWJsZUphdmFzY3JpcHQgPSAnd2Vidmlldy1lbmFibGUtamF2YXNjcmlwdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBXZWJWaWV3RW5hYmxlUGx1Z2lucyA9ICd3ZWJ2aWV3LWVuYWJsZS1wbHVnaW5zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFdlYlZpZXdCbG9ja1BvcHVwcyA9ICd3ZWJ2aWV3LWJsb2NrLXBvcHVwcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBXZWJWaWV3RW5hYmxlVVJMSG92ZXJBY3Rpb25zID0gJ3dlYnZpZXctZW5hYmxlLXVybC1ob3Zlci1hY3Rpb25zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFdvcmtncm91cENoYW5nZURhdGFzZXJ2ZXIgPSAnd29ya2dyb3VwLWNoYW5nZS1kYXRhc2VydmVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFdvcmtncm91cENoYW5nZVNlcnZlciA9ICd3b3JrZ3JvdXAtY2hhbmdlLXNlcnZlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBXb3JrZ3JvdXBDaGFuZ2VVc2VyID0gJ3dvcmtncm91cC1jaGFuZ2UtdXNlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBXb3JrZ3JvdXBSZW1vdmVMYXN0U2VydmVyID0gJ3dvcmtncm91cC1yZW1vdmUtbGFzdC1zZXJ2ZXInLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTcnZDb21tYW5kcyB7XHJcblxyXG4gICAgLy8gcGluZ3MgdGhlIHNlcnZlciB0byB0ZXN0IGlmIHRoZSBzZXNzaW9uIGlzIGV4cGlyZWRcclxuICAgIFBpbmdTZXNzaW9uID0gJ3Bpbmctc2Vzc2lvbicsXHJcblxyXG4gICAgLy8gQXBwbGllcyBzbmFwc2hvdCBmcm9tIGNvbW1lbnRzIHRvIHRoZSB2aXouXHJcbiAgICBBcHBseUN1c3RvbWl6ZWRWaWV3ID0gJ2FwcGx5LWN1c3RvbWl6ZWQtdmlldycsXHJcblxyXG4gICAgLy8gUmVmcmVzaGVzIFZRTFNlc3Npb24gRGF0YVxyXG4gICAgUmVmcmVzaERhdGEgPSAncmVmcmVzaC1kYXRhJyxcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERvY0NvbW1hbmRzIHtcclxuXHJcbiAgICAvLyBSZXR1cm5zIHdoZXRoZXIgZGF0ZSBwcm9wZXJ0aWVzIHNob3VsZCBiZSBlbmFibGVkXHJcbiAgICBHZXREYXRhU291cmNlRGF0ZVByb3BlcnRpZXNBcmVFbmFibGVkID0gJ2dldC1kYXRhc291cmNlLWRhdGUtcHJvcGVydGllcy1hcmUtZW5hYmxlZCcsXHJcblxyXG4gICAgLy8gR2V0IHByZXNtb2RlbCB0byBwb3B1bGF0ZSBkYXRlIHByb3BlcnRpZXMgZGlhbG9nXHJcbiAgICBHZXREYXRhU291cmNlRGF0ZVByb3BlcnRpZXMgPSAnZ2V0LWRhdGFzb3VyY2UtZGF0ZS1wcm9wZXJ0aWVzJyxcclxuXHJcbiAgICAvLyBBcHBseSBuZXcgc2V0dGluZ3MgZm9yIGRhdGUgcHJvcGVydGllc1xyXG4gICAgRWRpdERhdGFTb3VyY2VEYXRlUHJvcGVydGllcyA9ICdlZGl0LWRhdGFzb3VyY2UtZGF0ZS1wcm9wZXJ0aWVzJyxcclxuXHJcbiAgICAvLyBBcHBseSBkYXRhIHNvdXJjZSBkZWx0YSB0byBkYXRhIHNvdXJjZVxyXG4gICAgQXBwbHlEYXRhU291cmNlRGVsdGEgPSAnYXBwbHktZGF0YXNvdXJjZS1kZWx0YScsXHJcblxyXG4gICAgLy8gR2VuZXJhdGUgZGF0YSBzb3VyY2UgZGVsdGEgZnJvbSBsb2NhbCBkYXRhIHNvdXJjZVxyXG4gICAgR2V0RGF0YVNvdXJjZURlbHRhID0gJ2dldC1kYXRhc291cmNlLWRlbHRhJyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSBwcmVzIG1vZGVsIGZvciB0aGUgU2F2ZSBEYXRhc291cmNlIGRpYWxvZ1xyXG4gICAgR2V0V2ViU2F2ZURhdGFzb3VyY2VEaWFsb2cgPSAnZ2V0LXdlYi1zYXZlLWRhdGFzb3VyY2UtZGlhbG9nJyxcclxuXHJcbiAgICAvLyBDcmVhdGVzIGEgZGlhbG9nIGluIHRoZSBicm93c2VyIHRvIHJlbmFtZSB0aGUgZGF0YXNvdXJjZVxyXG4gICAgV2ViUmVuYW1lRGF0YXNvdXJjZURpYWxvZyA9ICd3ZWItcmVuYW1lLWRhdGFzb3VyY2UtZGlhbG9nJyxcclxuXHJcbiAgICAvLyBTd2l0Y2hlcyB0aGUgdmlldyB0byB0aGUgZGF0YSB0YWIgZm9yIGVkaXRpbmdcclxuICAgIFdlYkVkaXREYXRhU291cmNlID0gJ3dlYi1lZGl0LWRhdGEtc291cmNlJyxcclxuXHJcbiAgICAvLyBUb2dnbGVzIGpvaW5pbmcgb24gbnVsbCB2YWx1ZXNcclxuICAgIFRvZ2dsZUlOREpvaW5TZW1hbnRpY3MgPSAndG9nZ2xlLWluZC1qb2luLXNlbWFudGljcycsXHJcblxyXG4gICAgLy8gSm9pbiBOdWxsIFZhbHVlcyB0byBOdWxsIFZhbHVlc1xyXG4gICAgVG9nZ2xlSU5ESm9pblNlbWFudGljc1dyYXBwZXIgPSAndG9nZ2xlLWluZGpvaW4tc2VtYW50aWNzLXdyYXBwZXInLFxyXG5cclxuICAgIC8vIFRvZ2dsZXMgcmVmZXJlbnRpYWwgaW50ZWdyaXR5XHJcbiAgICBUb2dnbGVSZWZlcmVudGlhbEludGVncml0eSA9ICd0b2dnbGUtcmVmZXJlbnRpYWwtaW50ZWdyaXR5JyxcclxuXHJcbiAgICAvLyBSZXRyaWV2ZXMgbGlzdCBvZiBzdW1tYXJ5IG9iamVjdHMsIG9uZSBmb3IgZWFjaCBjb25uZWN0aW9uIGluIGEgZGF0YXNvdXJjZS5cclxuICAgIEdldENvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcnlQcmVzTW9kZWxzID0gJ2dldC1jb25uZWN0aW9uLWRlc2NyaXB0aW9uLXN1bW1hcnktcHJlcy1tb2RlbHMnLFxyXG5cclxuICAgIC8vIEdldHMgdGhlIGF4aXMgb3B0aW9ucyAuXHJcbiAgICBHZXRBeGlzT3B0aW9ucyA9ICdnZXQtYXhpcy1vcHRpb25zJyxcclxuXHJcbiAgICAvLyBSZXNldCB0aGUgYXhpcyBvcHRpb25zIC5cclxuICAgIFJlc2V0QXhpc09wdGlvbnMgPSAncmVzZXQtYXhpcy1vcHRpb25zJyxcclxuXHJcbiAgICAvLyBTaG93IGF4aXMgZWRpdCBkaWFsb2dcclxuICAgIFNob3dFZGl0QXhpc0RpYWxvZyA9ICdzaG93LWVkaXQtYXhpcy1kaWFsb2cnLFxyXG5cclxuICAgIC8vIFNldHMgdGhlIGF4aXMgZGlyZWN0aW9uXHJcbiAgICBTZXRBeGlzUmV2ZXJzZWQgPSAnc2V0LWF4aXMtcmV2ZXJzZWQnLFxyXG5cclxuICAgIC8vIFNldHMgdGhlIGF4aXMgc2NhbGUgdHlwZVxyXG4gICAgU2V0QXhpc1NjYWxlVHlwZSA9ICdzZXQtYXhpcy1zY2FsZS10eXBlJyxcclxuXHJcbiAgICAvLyBTZXRzIHRoZSBtYWluIHRpdGxlIG9mIGEgcXVhbnRpdGF0aXZlIGF4aXNcclxuICAgIFNldEF4aXNUaXRsZSA9ICdzZXQtYXhpcy10aXRsZScsXHJcblxyXG4gICAgLy8gU2V0cyB0aGUgc3VidGl0bGUgb2YgYSBxdWFudGl0YXRpdmUgYXhpc1xyXG4gICAgU2V0QXhpc1N1YnRpdGxlID0gJ3NldC1heGlzLXN1YnRpdGxlJyxcclxuXHJcbiAgICAvLyBTZXRzIHdoZXRoZXIgd2Ugc2hvdWxkIHVzZSB0aGUgYXV0b21hdGljIHN1YnRpdGxlIGZvciBhIHF1YW50aXRhdGl2ZSBheGlzXHJcbiAgICBTZXRBeGlzVXNlQXV0b21hdGljU3VidGl0bGUgPSAnc2V0LWF4aXMtdXNlLWF1dG9tYXRpYy1zdWJ0aXRsZScsXHJcblxyXG4gICAgLy8gU2V0cyB0aGUgYXhpcyByYW5nZSB0eXBlIG9mIGEgcXVhbnRpdGF0aXZlIGF4aXNcclxuICAgIFNldEF4aXNFeHRlbnRTdGFydFR5cGUgPSAnc2V0LWF4aXMtZXh0ZW50LXN0YXJ0LXR5cGUnLFxyXG5cclxuICAgIC8vIFNldHMgdGhlIGF4aXMgcmFuZ2UgdHlwZSBvZiBhIHF1YW50aXRhdGl2ZSBheGlzXHJcbiAgICBTZXRBeGlzRXh0ZW50RW5kVHlwZSA9ICdzZXQtYXhpcy1leHRlbnQtZW5kLXR5cGUnLFxyXG5cclxuICAgIC8vIFNldHMgdGhlIGF4aXMgcmFuZ2UgdHlwZSBvZiBhIHF1YW50aXRhdGl2ZSBheGlzXHJcbiAgICBTZXRCb3RoQXhpc0V4dGVudHNUeXBlID0gJ3NldC1ib3RoLWF4aXMtZXh0ZW50cy10eXBlJyxcclxuXHJcbiAgICAvLyBTZXRzIHdoZXRoZXIgb3Igbm90IHRvIGZvcmNlLWluY2x1ZGUgemVybyBvbiBhIHF1YW50aXRhdGl2ZSBheGlzXHJcbiAgICBTZXRBeGlzSW5jbHVkZVplcm8gPSAnc2V0LWF4aXMtaW5jbHVkZS16ZXJvJyxcclxuXHJcbiAgICAvLyBTZXRzIG5ldyBtaW4vbWF4IHJhbmdlIGVuZGluZ3MgZm9yIGF4aXNcclxuICAgIFNldEF4aXNSYW5nZUVuZCA9ICdzZXQtYXhpcy1yYW5nZS1lbmQnLFxyXG5cclxuICAgIC8vIFNldHMgbmV3IG1pbi9tYXggcmFuZ2UgZW5kaW5ncyBmb3IgYXhpc1xyXG4gICAgU2V0QXhpc1JhbmdlU3RhcnQgPSAnc2V0LWF4aXMtcmFuZ2Utc3RhcnQnLFxyXG5cclxuICAgIC8vIFN5bmNocm9uaXplIGR1YWwgYXhlcyBvbiBhIGZvbGRlZCBxdWFudGl0YXRpdmUgYXhpc1xyXG4gICAgU2V0QXhpc0ZvbGRTdGF0ZSA9ICdzZXQtYXhpcy1mb2xkLXN0YXRlJyxcclxuXHJcbiAgICAvLyBTZXQgdGhlIG1ham9yIHRpY2sgbWFyayBzdGF0ZVxyXG4gICAgU2V0TWFqb3JUaWNrTWFya1N0YXRlID0gJ3NldC1tYWpvci10aWNrLW1hcmstc3RhdGUnLFxyXG5cclxuICAgIC8vIFNldCB0aGUgbWlub3IgdGljayBtYXJrIHN0YXRlXHJcbiAgICBTZXRNaW5vclRpY2tNYXJrU3RhdGUgPSAnc2V0LW1pbm9yLXRpY2stbWFyay1zdGF0ZScsXHJcblxyXG4gICAgLy8gU2V0IHRoZSBtYWpvciB0aWNrIG1hcmsgb3JpZ2luXHJcbiAgICBTZXRNYWpvclRpY2tNYXJrT3JpZ2luID0gJ3NldC1tYWpvci10aWNrLW1hcmstb3JpZ2luJyxcclxuXHJcbiAgICAvLyBTZXQgdGhlIG1pbm9yIHRpY2sgbWFyayBvcmlnaW5cclxuICAgIFNldE1pbm9yVGlja01hcmtPcmlnaW4gPSAnc2V0LW1pbm9yLXRpY2stbWFyay1vcmlnaW4nLFxyXG5cclxuICAgIC8vIFNldCB0aGUgbWFqb3IgdGljayBtYXJrIHNwYWNpbmdcclxuICAgIFNldE1ham9yVGlja01hcmtTcGFjaW5nID0gJ3NldC1tYWpvci10aWNrLW1hcmstc3BhY2luZycsXHJcblxyXG4gICAgLy8gU2V0IHRoZSBtaW5vciB0aWNrIG1hcmsgc3BhY2luZ1xyXG4gICAgU2V0TWlub3JUaWNrTWFya1NwYWNpbmcgPSAnc2V0LW1pbm9yLXRpY2stbWFyay1zcGFjaW5nJyxcclxuXHJcbiAgICAvLyBTZXQgdGhlIG1ham9yIHRpY2sgbWFyayB1bml0c1xyXG4gICAgU2V0TWFqb3JUaWNrTWFya1VuaXRzID0gJ3NldC1tYWpvci10aWNrLW1hcmstdW5pdHMnLFxyXG5cclxuICAgIC8vIFNldCB0aGUgbWlub3IgdGljayBtYXJrIHVuaXRzXHJcbiAgICBTZXRNaW5vclRpY2tNYXJrVW5pdHMgPSAnc2V0LW1pbm9yLXRpY2stbWFyay11bml0cycsXHJcblxyXG5cclxuICAgIC8vIFxyXG4gICAgQm91bmRpbmdCb3hQYW4gPSAnYm91bmRpbmctYm94LXBhbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBPblRvZ2dsZUF4aXNSYW5nZXMgPSAnb24tdG9nZ2xlLWF4aXMtcmFuZ2VzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFBhbmVQYW4gPSAncGFuZS1wYW4nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGFuZVpvb20gPSAncGFuZS16b29tJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFBhbmVab29tRmFjdG9yID0gJ3BhbmUtem9vbS1mYWN0b3InLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGFuZVpvb21QYW4gPSAncGFuZS16b29tLXBhbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW9yZGVyRm9sZGVkQXhlcyA9ICdyZW9yZGVyLWZvbGRlZC1heGVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2V0QXhpc1JhbmdlID0gJ3Jlc2V0LWF4aXMtcmFuZ2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2VsZWN0QXhpc1R1cGxlcyA9ICdzZWxlY3QtYXhpcy10dXBsZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU3dhcFJlZmVyZW5jZUxpbmVGaWVsZHMgPSAnc3dhcC1yZWZlcmVuY2UtbGluZS1maWVsZHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU3luY2hyb25pemVBeGlzID0gJ3N5bmNocm9uaXplLWF4aXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVG9nZ2xlRHVhbEF4aXMgPSAndG9nZ2xlLWR1YWwtYXhpcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBab29tTGV2ZWwgPSAnem9vbS1sZXZlbCcsXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktY29yZS9nZW4tc3JjL3ByZXNsYXllci9Db21tYW5kSWRzLnRzXG4gKiovIiwiaW1wb3J0IHsgVmVyYklkIGFzIEFwaVZlcmJJZCB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgQ29tbWFuZFJlZ2lzdHJhdGlvbiB9IGZyb20gJy4vQ29tbWFuZFJlZ2lzdHJhdGlvbic7XHJcblxyXG4vKipcclxuICogUmVnaXN0cnkgd2hpY2ggY29udGFpbnMgbWFwcGluZ3MgZnJvbSBhbiBBcGkgVmVyYklkIHRvIGEgcHJlcy1sYXllciBjb21tYW5kLlxyXG4gKiBUaGlzIGluY2x1ZGVzIHRoZSBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdmFsdWVzIG9mIHRoZSBjb21tYW5kIGFzIHdlbGxcclxuICpcclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENvbW1hbmRNYXBwaW5nUmVnaXN0cnkge1xyXG4gIHByaXZhdGUgc3RhdGljIFVOS05PV05fQVBJVkVSQjogc3RyaW5nID0gJ1Vua25vd24gQXBpVmVyYjogJTEnO1xyXG4gIHByaXZhdGUgX2NvbW1hbmRzOiB7IFthcGlWZXJiOiBzdHJpbmddOiBDb21tYW5kUmVnaXN0cmF0aW9uIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeS5cclxuICAgKiBAbWVtYmVyb2YgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeVxyXG4gICAqL1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX2NvbW1hbmRzID0ge307XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRzIGEgbmV3IGNvbW1hbmQgdG8gdGhlIHJlZ2lzdHJ5XHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0NvbW1hbmRSZWdpc3RyYXRpb259IGNvbW1hbmRcclxuICAgKiBAbWVtYmVyb2YgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhZGRDb21tYW5kKGNvbW1hbmQ6IENvbW1hbmRSZWdpc3RyYXRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbW1hbmRzW2NvbW1hbmQuYXBpVmVyYklkXSA9IGNvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIHJlZ2lzdHJ5IGNvbnRhaW5zIGEgZGVmaW5pdGlvbiBmb3IgdGhpcyBBcGlWZXJiSWRcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7QXBpVmVyYklkfSBhcGlWZXJiSWRcclxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeVxyXG4gICAqL1xyXG4gIHB1YmxpYyBoYXNDb21tYW5kKGFwaVZlcmJJZDogQXBpVmVyYklkKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuX2NvbW1hbmRzLmhhc093blByb3BlcnR5KGFwaVZlcmJJZCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5fY29tbWFuZHNbYXBpVmVyYklkXSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBjb21tYW5kIHJlZ2lzdHJhdGlvbiBmb3IgdGhpcyBjb21tYW5kIGlkIG9yIHRocm93cyBpZiBpdCBkb2Vzbid0IGV4aXN0XHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0FwaVZlcmJJZH0gYXBpVmVyYklkXHJcbiAgICogQHJldHVybnMge0NvbW1hbmRSZWdpc3RyYXRpb259XHJcbiAgICogQG1lbWJlcm9mIENvbW1hbmRNYXBwaW5nUmVnaXN0cnlcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Q29tbWFuZChhcGlWZXJiSWQ6IEFwaVZlcmJJZCk6IENvbW1hbmRSZWdpc3RyYXRpb24ge1xyXG4gICAgaWYgKCF0aGlzLmhhc0NvbW1hbmQoYXBpVmVyYklkKSkge1xyXG4gICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmVycm9yKENvbW1hbmRNYXBwaW5nUmVnaXN0cnkuVU5LTk9XTl9BUElWRVJCLCBbYXBpVmVyYklkXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2NvbW1hbmRzW2FwaVZlcmJJZF07XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL21hcHBpbmdzL0NvbW1hbmRNYXBwaW5nUmVnaXN0cnkudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEV4ZWN1dGVQYXJhbWV0ZXJzLFxyXG4gIE1vZGVsLFxyXG4gIFBhcmFtZXRlcklkIGFzIEFwaVBhcmFtZXRlcklkLFxyXG4gIFZlcmJJZCBhcyBBcGlWZXJiSWQsXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIERvY0NvbW1hbmRzIGFzIFByZXNMYXllckRvY0NvbW1hbmRJZCxcclxuICBTcnZDb21tYW5kcyBhcyBQcmVzTGF5ZXJTcnZDb21tYW5kSWQsXHJcbiAgVUlDb21tYW5kcyBhcyBQcmVzTGF5ZXJVSUNvbW1hbmRJZFxyXG59IGZyb20gJy4uLy4uL2dlbi1zcmMvcHJlc2xheWVyL0NvbW1hbmRJZHMnO1xyXG5cclxuaW1wb3J0IHsgUGFyYW1ldGVySWQgYXMgUHJlc0xheWVyUGFyYW1ldGVySWQgfSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QYXJhbXMnO1xyXG5pbXBvcnQgeyBBcGlUb1ByZXNMYXllck1hcHBpbmdSZWdpc3RyeSwgUHJlc0xheWVyVG9BcGlNYXBwaW5nUmVnaXN0cnkgfSBmcm9tICcuL1BhcmFtZXRlck1hcHBpbmdSZWdpc3RyeUZhY3RvcnknO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgaXMgYW4gZW51bSB1c2VkIG9ubHkgaW50ZXJuYWxseSBieSB0aGUgYXBpLWNvcmUgcHJvamVjdC5cclxuICogVGhpcyBlbnVtIHJlcHJlc2VudHMgdGhlIGRpZmZlcmVuY2UgbmFtZXNwYWNlcyBhdmFpbGFibGUgZm9yIGNvbW1hbmRzLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gQ29tbWFuZE5hbWVzcGFjZSB7XHJcbiAgVGFiRG9jID0gJ3RhYmRvYycsXHJcbiAgVGFiU3J2ID0gJ3RhYnNydicsXHJcbiAgVGFiVUkgPSAndGFidWknXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIGFuIGlucHV0IG9yIG91dHB1dCBwYXJhbXRlciBmb3IgYSBjb21tYW5kLlxyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBDb21tYW5kUGFyYW1ldGVyXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ29tbWFuZFBhcmFtZXRlciB7XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBDb21tYW5kUGFyYW1ldGVyLlxyXG4gICAqIEBwYXJhbSB7QXBpUGFyYW1ldGVySWR9IGFwaUlkXHJcbiAgICogQHBhcmFtIHtQcmVzTGF5ZXJQYXJhbWV0ZXJJZH0gcHJlc0xheWVySWRcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc09wdGlvbmFsXVxyXG4gICAqIEBtZW1iZXJvZiBDb21tYW5kUGFyYW1ldGVyXHJcbiAgICovXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYXBpSWQ6IEFwaVBhcmFtZXRlcklkLFxyXG4gICAgcHJpdmF0ZSBfcHJlc0xheWVySWQ6IFByZXNMYXllclBhcmFtZXRlcklkLFxyXG4gICAgcHJpdmF0ZSBfaXNPcHRpb25hbD86IGJvb2xlYW4pIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgSWQgb2YgdGhlIEFwaSBQYXJhbWV0ZXJcclxuICAgKlxyXG4gICAqIEByZWFkb25seVxyXG4gICAqIEB0eXBlIHtBcGlQYXJhbWV0ZXJJZH1cclxuICAgKiBAbWVtYmVyb2YgQ29tbWFuZFBhcmFtZXRlclxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgYXBpSWQoKTogQXBpUGFyYW1ldGVySWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwaUlkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIElkIG9mIHRoZSBQcmVzIExheWVyIFBhcmFtZXRlclxyXG4gICAqXHJcbiAgICogQHJlYWRvbmx5XHJcbiAgICogQHR5cGUge1ByZXNMYXllclBhcmFtZXRlcklkfVxyXG4gICAqIEBtZW1iZXJvZiBDb21tYW5kUGFyYW1ldGVyXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBwcmVzTGF5ZXJJZCgpOiBQcmVzTGF5ZXJQYXJhbWV0ZXJJZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJlc0xheWVySWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIGlzIGFuIG9wdGlvbmFsIHBhcmFtZXRlclxyXG4gICAqXHJcbiAgICogQHJlYWRvbmx5XHJcbiAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIENvbW1hbmRQYXJhbWV0ZXJcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGlzT3B0aW9uYWwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLl9pc09wdGlvbmFsO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSB0aGUgY29tcGxldGUgbWFwcGluZyBvZiBhbiBBcGlDb21tYW5kIHRvIGl0cyBjb3JyZXNwb25kaW5nIHByZXMtbGF5ZXIgY29tbWFuZFxyXG4gKiBhbmQgdGhlIGNvbnZlcnNpb24gb2YgdGhlIG91dHB1dCB2YWx1ZSBhcyB3ZWxsXHJcbiAqXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIENvbW1hbmRSZWdpc3RyYXRpb25cclxuICpcclxuICogQHBhcmFtIHtBcGlWZXJiSWR9IF9hcGlWZXJiSWQgdGhlIGludGVybmFsIGFwaSB2ZXJiIElEIG9mIHRoaXMgY29tbWFuZC5cclxuICogQHBhcmFtIHtQcmVzTGF5ZXJEb2NDb21tYW5kSWQgfCBQcmVzTGF5ZXJTcnZDb21tYW5kSWQgfCBQcmVzTGF5ZXJVSUNvbW1hbmRJZH0gX2NvbW1hbmRJZFxyXG4gKiAgIHRoZSBwcmVzIGxheWVyIGNvbW1hbmQgdG8gZXhlY3V0ZVxyXG4gKiBAcGFyYW0ge0NvbW1hbmRQYXJhbWV0ZXJbXX0gX2lucHV0UGFyYW1ldGVycyBsaXN0IG9mIHBhcmFtZXRlcnMgdG8gc2VuZCB3aXRoIHRoaXMgY29tbWFuZCB0byB0aGUgcGxhdGZvcm0uXHJcbiAqIEBwYXJhbSB7Q29tbWFuZFBhcmFtZXRlcn0gW2lzT3B0aW9uYWxdIGV4cGVjdGVkIHJldHVybiBwYXJhbXRlcnMgZnJvbSB0aGUgcGxhdGZvcm0uXHJcbiAqIEBwYXJhbSB7Q29tbWFuZE5hbWVzcGFjZX0gW2lzT3B0aW9uYWxdIG5hbWVzcGFjZSBvZiB0aGUgY29tbWFuZCAoZGVmYXVsdHMgdG8gVGFiRG9jIGlmIG5vdCBwcm92aWRlZCkuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ29tbWFuZFJlZ2lzdHJhdGlvbiB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYXBpVmVyYklkOiBBcGlWZXJiSWQsXHJcbiAgICBwcml2YXRlIF9jb21tYW5kSWQ6IFByZXNMYXllckRvY0NvbW1hbmRJZCB8IFByZXNMYXllclNydkNvbW1hbmRJZCB8IFByZXNMYXllclVJQ29tbWFuZElkLFxyXG4gICAgcHJpdmF0ZSBfaW5wdXRQYXJhbWV0ZXJzOiBDb21tYW5kUGFyYW1ldGVyW10sXHJcbiAgICBwcml2YXRlIF9vdXRwdXRQYXJhbWV0ZXI/OiBDb21tYW5kUGFyYW1ldGVyLFxyXG4gICAgcHJpdmF0ZSBfbmFtZXNwYWNlPzogQ29tbWFuZE5hbWVzcGFjZSxcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFwaVZlcmJJZCgpOiBBcGlWZXJiSWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwaVZlcmJJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29tbWFuZElkKCk6IFByZXNMYXllckRvY0NvbW1hbmRJZCB8IFByZXNMYXllclNydkNvbW1hbmRJZCB8IFByZXNMYXllclVJQ29tbWFuZElkIHtcclxuICAgIHJldHVybiB0aGlzLl9jb21tYW5kSWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWVzcGFjZSgpOiBDb21tYW5kTmFtZXNwYWNlIHtcclxuICAgIHJldHVybiB0aGlzLl9uYW1lc3BhY2UgfHwgQ29tbWFuZE5hbWVzcGFjZS5UYWJEb2M7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlucHV0cygpOiBDb21tYW5kUGFyYW1ldGVyW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lucHV0UGFyYW1ldGVycyB8fCBuZXcgQXJyYXk8Q29tbWFuZFBhcmFtZXRlcj4oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgb3V0cHV0KCk6IENvbW1hbmRQYXJhbWV0ZXIgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX291dHB1dFBhcmFtZXRlcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoaXMgY29tbWFuZCByZXF1aXJlcyBhbiBhZGQtaW4gbG9jYXRvciB0byBiZSBpbmplY3RlZCBpbnRvIGl0XHJcbiAgICpcclxuICAgKiBAcmVhZG9ubHlcclxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgQ29tbWFuZFJlZ2lzdHJhdGlvblxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgbmVlZHNBZGRJbkxvY2F0b3IoKTogYm9vbGVhbiB7XHJcbiAgICBmb3IgKGNvbnN0IGlucHV0IG9mIHRoaXMuaW5wdXRzKSB7XHJcbiAgICAgIGlmIChpbnB1dC5hcGlJZCA9PT0gQXBpUGFyYW1ldGVySWQuRXh0ZW5zaW9uTG9jYXRvcikge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIGRpY3Rpb25hcnkgb2YgcHJlcy1sYXllciBwYXJhbWV0ZXJzIGZyb20gdGhlIGlucHV0IGRpY3Rpb25hcnlcclxuICAgKiBvZiBhcGkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7RXhlY3V0ZVBhcmFtZXRlcnN9IHBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyB0byBjb252ZXJ0XHJcbiAgICogQHBhcmFtIHtBcGlUb1ByZXNMYXllck1hcHBpbmdSZWdpc3RyeX0gYXBpVG9QcmVzTGF5ZXIgLSBtYXBwaW5nIHRvIGRldGVybWluZSB0aGUgY29udmVyc2lvblxyXG4gICAqIEByZXR1cm5zIHt7IFtwYXJhbUlkOiBzdHJpbmddOiBvYmplY3Q7IH19IC0gcGFyYW1ldGVycyB0byBzZW5kIHRvIHRoZSBwcmVzLWxheWVyXHJcbiAgICogQG1lbWJlcm9mIENvbW1hbmRSZWdpc3RyYXRpb25cclxuICAgKi9cclxuICBwdWJsaWMgY3JlYXRlUGFyYW1zKHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzLCBhcGlUb1ByZXNMYXllcjogQXBpVG9QcmVzTGF5ZXJNYXBwaW5nUmVnaXN0cnkpOiB7IFtwYXJhbUlkOiBzdHJpbmddOiBvYmplY3Q7IH0ge1xyXG4gICAgbGV0IHJlc3VsdDogeyBbcGFyYW1JZDogc3RyaW5nXTogb2JqZWN0OyB9ID0ge307XHJcblxyXG4gICAgZm9yIChjb25zdCBpbnB1dFBhcmFtIG9mIHRoaXMuaW5wdXRzKSB7XHJcbiAgICAgIC8vIEZpcnN0IG1ha2Ugc3VyZSB0aGUgcGFyYW1ldGVyIGlzIHRoZXJlIG9yIHRoYXQgaXQncyBvcHRpb25hbFxyXG4gICAgICBpZiAoIXBhcmFtZXRlcnMuaGFzT3duUHJvcGVydHkoaW5wdXRQYXJhbS5hcGlJZCkpIHtcclxuICAgICAgICBpZiAoaW5wdXRQYXJhbS5pc09wdGlvbmFsKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5taXNzaW5nUGFyYW1ldGVyKFtpbnB1dFBhcmFtLmFwaUlkXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBGaW5kIHRoZSBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciB0aGlzIHBhcmFtZXRlclxyXG4gICAgICBjb25zdCBjb252ZXJzaW9uRm4gPSBhcGlUb1ByZXNMYXllci5nZXQoaW5wdXRQYXJhbS5hcGlJZCwgaW5wdXRQYXJhbS5wcmVzTGF5ZXJJZCk7XHJcblxyXG4gICAgICAvLyBDb252ZXJ0IHRoZSBwcmVzIG1vZGVsIGFuZCBpbnNlcnQgaXQgaW50byBvdXIgcmVzdWx0cyBvYmplY3RcclxuICAgICAgcmVzdWx0W2lucHV0UGFyYW0ucHJlc0xheWVySWRdID0gY29udmVyc2lvbkZuKHBhcmFtZXRlcnNbaW5wdXRQYXJhbS5hcGlJZF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcm9jZXNzZXMgdGhlIHJlc3VsdCByZWNlaXZlZCBiYWNrIGFmdGVyIGV4ZWN1dGluZyBhIHByZXMtbGF5ZXIgY29tbWFuZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHt7IFtkb2NQYXJhbUlkOiBzdHJpbmddOiBvYmplY3Q7IH19IHJlc3VsdFBhcmFtZXRlcnNcclxuICAgKiBAcGFyYW0ge1ByZXNMYXllclRvQXBpTWFwcGluZ1JlZ2lzdHJ5fSBwcmVzTGF5ZXJUb0FwaVxyXG4gICAqIEByZXR1cm5zIHtNb2RlbH1cclxuICAgKiBAbWVtYmVyb2YgQ29tbWFuZFJlZ2lzdHJhdGlvblxyXG4gICAqL1xyXG4gIHB1YmxpYyBQcm9jZXNzUmVzdWx0KHJlc3VsdFBhcmFtZXRlcnM6IHsgW2RvY1BhcmFtSWQ6IHN0cmluZ106IG9iamVjdDsgfSwgcHJlc0xheWVyVG9BcGk6IFByZXNMYXllclRvQXBpTWFwcGluZ1JlZ2lzdHJ5KTogTW9kZWwge1xyXG4gICAgLy8gVE9ETzogQWRkIGVycm9yIGhhbmRsaW5nXHJcbiAgICBpZiAodGhpcy5vdXRwdXQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCBub091dHB1dE1vZGVsOiBNb2RlbCA9IHt9O1xyXG4gICAgICByZXR1cm4gbm9PdXRwdXRNb2RlbDtcclxuICAgIH1cclxuICAgIGlmICghcmVzdWx0UGFyYW1ldGVycyB8fCAhcmVzdWx0UGFyYW1ldGVycy5oYXNPd25Qcm9wZXJ0eSh0aGlzLm91dHB1dC5wcmVzTGF5ZXJJZCkpIHtcclxuXHJcbiAgICAgIC8vIGlmIHRoZSBvdXRwdXQgcmVzdWx0IGlzIG1hcmtlZCBhcyBvcHRpb25hbCwgd2UgZG9uJ3QgY29uc2lkZXIgdGhpcyBhbiBlcnJvciBzaXR1YXRpb24gYW5kIGp1c3QgcmV0dXJuIGFuIGVtcHR5IG1vZGVsXHJcbiAgICAgIGlmICh0aGlzLm91dHB1dC5pc09wdGlvbmFsKSB7XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICB9XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24ubWlzc2luZ1BhcmFtZXRlcihbdGhpcy5vdXRwdXQucHJlc0xheWVySWRdKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb252ZXJzaW9uRm4gPSBwcmVzTGF5ZXJUb0FwaS5nZXQodGhpcy5vdXRwdXQucHJlc0xheWVySWQsIHRoaXMub3V0cHV0LmFwaUlkKTtcclxuICAgIHJldHVybiBjb252ZXJzaW9uRm4ocmVzdWx0UGFyYW1ldGVyc1t0aGlzLm91dHB1dC5wcmVzTGF5ZXJJZF0pO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9Db21tYW5kUmVnaXN0cmF0aW9uLnRzXG4gKiovIiwiaW1wb3J0IHsgTW9kZWwsIE5vdGlmaWNhdGlvbklkIGFzIEFwaSwgVmVyc2lvbk51bWJlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25JZCBhcyBQTCB9IGZyb20gJy4uLy4uL2dlbi1zcmMvcHJlc2xheWVyL0V2ZW50cyc7XHJcbmltcG9ydCB7IFByZXNlbnRhdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vZ2VuLXNyYy9wcmVzbGF5ZXIvUHJlc01vZGVscyc7XHJcbmltcG9ydCB7IFByZXNMYXllclRvQXBpQ29udmVydGVyIH0gZnJvbSAnLi9QcmVzTGF5ZXJUb0FwaUNvbnZlcnRlcic7XHJcblxyXG5leHBvcnQgdHlwZSBDb252ZXJzaW9uRm4gPSAocHJlc01vZGVsOiBQcmVzZW50YXRpb25Nb2RlbCkgPT4gTW9kZWw7XHJcblxyXG4vKipcclxuICogU2ltcGxlIHdyYXBwZXIgd2hpY2ggaG9sZHMgYSBtYXBwaW5nIHRvIGdvIGZyb20gYSBwcmVzLWxheWVyIGV2ZW50IHRvIGFuIEFQSSBldmVudFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEV2ZW50TWFwcGluZ1JlZ2lzdHJhdGlvbiB7XHJcbiAgcHVibGljIGdldCBwcmVzTGF5ZXJJZCgpOiBQTCB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJlc0xheWVySWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFwaUlkKCk6IEFwaSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXBpSWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbnZlcnRlcigpOiBDb252ZXJzaW9uRm4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3ByZXNMYXllcklkOiBQTCxcclxuICAgIHByaXZhdGUgX2FwaUlkOiBBcGksXHJcbiAgICBwcml2YXRlIF9jb252ZXJ0ZXI6IENvbnZlcnNpb25GbikgeyB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTaW1wbGUgdHlwZSB3aGljaCBoYXMga2V5cyBvZiBQTCBldmVudCBpZHMgdG8gRXZlbnRNYXBwaW5nUmVnaXN0cmF0aW9uc1xyXG4gKi9cclxuZXhwb3J0IHR5cGUgRXZlbnRNYXBwaW5nUmVnaXN0cnkgPSB7IFtrZXk6IHN0cmluZ106IEV2ZW50TWFwcGluZ1JlZ2lzdHJhdGlvbjsgfTtcclxuXHJcbmV4cG9ydCBjbGFzcyBFdmVudE1hcHBpbmdSZWdpc3RyeUZhY3Rvcnkge1xyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW5kIHBvcHVsYXRlcyBhIG5ldyBFdmVudE1hcHBpbmdSZWdpc3RyeSBmb3IgdGhlIHNwZWNpZmljIHZlcnNpb24gbnVtYmVyIHJlcXVlc3RlZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtWZXJzaW9uTnVtYmVyfSB2ZXJzaW9uTnVtYmVyXHJcbiAgICogQHJldHVybnMge0V2ZW50TWFwcGluZ1JlZ2lzdHJ5fVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlRXZlbnRNYXBwaW5nUmVnaXN0cnkodmVyc2lvbk51bWJlcjogVmVyc2lvbk51bWJlcik6IEV2ZW50TWFwcGluZ1JlZ2lzdHJ5IHtcclxuICAgIGxldCByZWdpc3RyeTogRXZlbnRNYXBwaW5nUmVnaXN0cnkgPSB7fTtcclxuICAgIHJlZ2lzdHJ5W1BMLlNlbGVjdGlvbkNoYW5nZWRdID0gbmV3IEV2ZW50TWFwcGluZ1JlZ2lzdHJhdGlvbihcclxuICAgICAgUEwuU2VsZWN0aW9uQ2hhbmdlZCxcclxuICAgICAgQXBpLlNlbGVjdGVkTWFya3NDaGFuZ2VkLFxyXG4gICAgICBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0VmlzdWFsSWRcclxuICAgICk7XHJcblxyXG4gICAgcmVnaXN0cnlbUEwuUGFyYW1ldGVyQ2hhbmdlZF0gPSBuZXcgRXZlbnRNYXBwaW5nUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5QYXJhbWV0ZXJDaGFuZ2VkLFxyXG4gICAgICBBcGkuUGFyYW1ldGVyQ2hhbmdlZCxcclxuICAgICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEZpZWxkQ2FwdGlvblBhaXJcclxuICAgICk7XHJcblxyXG4gICAgcmVnaXN0cnlbUEwuRmlsdGVyQ2hhbmdlZF0gPSBuZXcgRXZlbnRNYXBwaW5nUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5GaWx0ZXJDaGFuZ2VkLFxyXG4gICAgICBBcGkuRmlsdGVyQ2hhbmdlZCxcclxuICAgICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEZpbHRlckV2ZW50XHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiByZWdpc3RyeTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktY29yZS9zcmMvbWFwcGluZ3MvRXZlbnRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5LnRzXG4gKiovIiwiXHJcbi8qIHRzbGludDpkaXNhYmxlICovXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vXHJcbi8vIFRoaXMgZmlsZSBpcyB0aGUgY29weXJpZ2h0ZWQgcHJvcGVydHkgb2YgVGFibGVhdSBTb2Z0d2FyZSBhbmQgaXMgcHJvdGVjdGVkXHJcbi8vIGJ5IHJlZ2lzdGVyZWQgcGF0ZW50cyBhbmQgb3RoZXIgYXBwbGljYWJsZSBVLlMuIGFuZCBpbnRlcm5hdGlvbmFsIGxhd3MgYW5kXHJcbi8vIHJlZ3VsYXRpb25zLlxyXG4vL1xyXG4vLyBVbmxpY2Vuc2VkIHVzZSBvZiB0aGUgY29udGVudHMgb2YgdGhpcyBmaWxlIGlzIHByb2hpYml0ZWQuIFBsZWFzZSByZWZlciB0b1xyXG4vLyB0aGUgTk9USUNFUy50eHQgZmlsZSBmb3IgZnVydGhlciBkZXRhaWxzLlxyXG4vL1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBXQVJOSU5HOiBDb21wdXRlciBnZW5lcmF0ZWQgZmlsZS4gIERvIG5vdCBoYW5kIG1vZGlmeS5cclxuLy8gREVQRU5EUyBPTjogWycuLi90eXBlc2NyaXB0L2pzLWFwaS9hcGktY29yZS9ub2RlX21vZHVsZXMvQHRhYmxlYXUvcHJlc2xheWVyLWNvZGVnZW4tdHlwZXNjcmlwdC90ZW1wbGF0ZXMvZXZlbnRzLXRzLnRlbXBsYXRlJywgdScuLi90eXBlc2NyaXB0L2pzLWFwaS9hcGktY29yZS90ZW1wLXByZXMtbGF5ZXIvYWxsLWV2ZW50cy5kYXRhJywgJy4uL3R5cGVzY3JpcHQvanMtYXBpL2FwaS1jb3JlL25vZGVfbW9kdWxlcy9AdGFibGVhdS9wcmVzbGF5ZXItY29kZWdlbi10eXBlc2NyaXB0L3RlbXBsYXRlcy9ldmVudHMtY29tbW9uLnRlbXBsYXRlJ11cclxuXHJcbi8vIEV2ZW50cyB5b3UgY2FuIHJlZ2lzdGVyIHRvIHJlY2VpdmUgcHJlc2VudGF0aW9uIG1vZGVsc1xyXG5leHBvcnQgZW51bSBOb3RpZmljYXRpb25JZCB7XHJcblxyXG4gIC8vIFRyaWdnZXJlZCB3aGVuIGFsaWFzZXMgYXJlIHRvIGJlIGVkaXRlZC4gVXNlZCB0byBsYXVuY2ggYSBkaWFsb2cuXHJcbiAgRWRpdEFsaWFzZXNEaWFsb2dOb3RpZmljYXRpb24gPSAnZG9jOmVkaXQtYWxpYXNlcy1kaWFsb2ctbm90aWZpY2F0aW9uLWV2ZW50JyxcclxuXHJcbiAgLy8gZm9yIHRoZSBjYWxjdWxhdGlvbiBkaWFsb2dcclxuICBDYWxjdWxhdGlvbkRpYWxvZyA9ICdkb2M6Y2FsY3VsYXRpb24tZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gdXBkYXRlIGZvciBhbiBhZGhvYyBjYWxjIGluIGEgdHlwZSBpbiBwaWxsXHJcbiAgVHlwZUluUGlsbCA9ICdkb2M6dHlwZS1pbi1waWxsLWV2ZW50JyxcclxuXHJcbiAgLy8gcmVzdWx0cyBvZiBhIHZhbGlkYXRpb24gY29tbWFuZFxyXG4gIENvbW1hbmRWYWxpZGF0aW9uID0gJ2RvYzpjb21tYW5kLXZhbGlkYXRpb24tZXZlbnQnLFxyXG5cclxuICAvLyBldmVudCBmb3IgdGhlIGdyb3VwcyBkaWFsb2dcclxuICBVcGRhdGVDYXRlZ29yaWNhbEJpbkVkaXREaWFsb2cgPSAnZG9jOnVwZGF0ZS1jYXRlZ29yaWNhbC1iaW4tZWRpdC1kaWFsb2ctZXZlbnQnLFxyXG5cclxuICAvLyBmb3IgdGhlIGNhdGVnb3JpY2FsIGNvbG9yIGRpYWxvZ1xyXG4gIENhdGVnb3JpY2FsQ29sb3IgPSAnZG9jOmNhdGVnb3JpY2FsLWNvbG9yLWV2ZW50JyxcclxuXHJcbiAgLy8gdXBkYXRlIHRoZSB3ZWIgY2F0ZWdvcmljYWwgY29sb3IgZGlhbG9nXHJcbiAgV2ViQ2F0ZWdvcmljYWxDb2xvckRpYWxvZyA9ICdkb2M6d2ViLWNhdGVnb3JpY2FsLWNvbG9yLWRpYWxvZy1ldmVudCcsXHJcblxyXG4gIC8vIHVzZXIgaW52b2tlZCBhY3Rpb24gd2hpY2ggcmVxdWlyZXMgYSBEYXRhIEFsZXJ0IERpYWxvZ1xyXG4gIERhdGFBbGVydERpYWxvZyA9ICdkb2M6ZGF0YS1hbGVydC1kaWFsb2ctZXZlbnQnLFxyXG5cclxuICAvLyBldmVudCB0byBzZWxlY3QgZmllbGQocykgaW4gdGhlIGRhdGEgc2NoZW1hXHJcbiAgRGF0YVNjaGVtYVNlbGVjdGlvbiA9ICdkb2M6ZGF0YS1zY2hlbWEtc2VsZWN0aW9uLWV2ZW50JyxcclxuXHJcbiAgLy8gZXZlbnQgZm9yIHdoZW4gdGhlIGRhdGEgc291cmNlIGJlaW5nIGVkaXRlZCBpcyB1cGRhdGVkXHJcbiAgVXBkYXRlRGF0YVByZXBhcmF0aW9uID0gJ2RvYzp1cGRhdGUtZGF0YS1wcmVwYXJhdGlvbi1ldmVudCcsXHJcblxyXG4gIC8vIGV2ZW50IGZvciB3aGVuIHRoZSBkYXRhIHNvdXJjZSBkYXRhIGlzIHVwZGF0ZWRcclxuICBVcGRhdGVEYXRhU291cmNlRGF0YSA9ICdkb2M6dXBkYXRlLWRhdGEtc291cmNlLWRhdGEtZXZlbnQnLFxyXG5cclxuICAvLyBldmVudCBmb3Igd2hlbiBhIGNsaWVudCBzaG91bGQgcmVxdWVzdCBuZXcgZGF0YSBzb3VyY2Ugb3IgZGF0YSBzb3VyY2UgZGF0YSBwcmVzIG1vZGVsc1xyXG4gIERhdGFTb3VyY2VVcGRhdGVOZWVkZWQgPSAnZG9jOmRhdGEtc291cmNlLXVwZGF0ZS1uZWVkZWQtZXZlbnQnLFxyXG5cclxuICAvLyBldmVudCBmb3IgZ2V0dGluZyB0aGUgcHJlcyBtb2RlbCB0byB1cGRhdGUgZmlsZSBqb2luIHRhYmxlIHByb3BlcnRpZXNcclxuICBUZXh0RmlsZVByb3BlcnRpZXMgPSAnZG9jOnRleHQtZmlsZS1wcm9wZXJ0aWVzLWV2ZW50JyxcclxuXHJcbiAgLy8gbm90aWZ5IGNoYW5nZXMgdG8gdGhlIHN0YXRlIG9mIGEgZmlsdGVyJ3MgcmVsYXRpb25hbCBtb2RlbFxyXG4gIEZpbHRlclJlbGF0aW9uYWxTdGF0ZUNoYW5nZWQgPSAnZG9jOmZpbHRlci1yZWxhdGlvbmFsLXN0YXRlLWNoYW5nZWQtZXZlbnQnLFxyXG5cclxuICAvLyBub3RpZnkgY2hhbmdlcyB0byB0aGUgc2l6ZS9zZWxlY3Rpb24gY291bnQgb2YgYSByZWxhdGlvbmFsIGRvbWFpblxyXG4gIEZpbHRlclJlbGF0aW9uYWxEb21haW5DaGFuZ2VkID0gJ2RvYzpmaWx0ZXItcmVsYXRpb25hbC1kb21haW4tY2hhbmdlZC1ldmVudCcsXHJcblxyXG4gIC8vIG5vdGlmeSB3aGVuIGZpbHRlciBjYWNoZSB3YXMgcmVxdWVzdGVkIGJ1dCBub3QgZm91bmRcclxuICBGaWx0ZXJDYWNoZU5vdEZvdW5kID0gJ2RvYzpmaWx0ZXItY2FjaGUtbm90LWZvdW5kLWV2ZW50JyxcclxuXHJcbiAgLy8gSGllcmFyY2h5IFNlbGVjdCBtb2RlbCBvYnNlcnZhYmxlIG5vdGlmaWNhdGlvbi5cclxuICBIaWVyYXJjaHlOb3RpZmljYXRpb24gPSAnZG9jOmhpZXJhcmNoeS1ub3RpZmljYXRpb24tZXZlbnQnLFxyXG5cclxuICAvLyBIaWVyYXJjaHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLlxyXG4gIEhpZXJhcmNoeVNlbGVjdGlvbiA9ICdkb2M6aGllcmFyY2h5LXNlbGVjdGlvbi1ldmVudCcsXHJcblxyXG4gIC8vIGV2ZW50IGZvciB0aGUgbWFwIG9wdGlvbnMgZGlhbG9nXHJcbiAgTWFwT3B0aW9uc0RpYWxvZyA9ICdkb2M6bWFwLW9wdGlvbnMtZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gbm90aWZ5IHRoZSBQYWdlIFVJKGhpZGUvc2hvdyBzdGF0ZXMsIGxheW91dCkgbmVlZHMgdG8gYmUgdXBkYXRlZFxyXG4gIFVwZGF0ZVBhZ2VVSU5vdGlmaWNhdGlvbiA9ICdkb2M6dXBkYXRlLXBhZ2UtdWlub3RpZmljYXRpb24tZXZlbnQnLFxyXG5cclxuICAvLyBub3RpZnkgdG8gdGhlIFNjZW5lVmlldyBoYXMgYmVlbiBkcmF3bi5cclxuICBTY2VuZVZpZXdEcmF3bk5vdGlmaWNhdGlvbiA9ICdkb2M6c2NlbmUtdmlldy1kcmF3bi1ub3RpZmljYXRpb24tZXZlbnQnLFxyXG5cclxuICAvLyBUaGUgQW5pbWF0aW9uQ29udHJvbENoYW5nZSBldmVudCBmaXJlcyB3aGVuIHRoZSB1c2VyIGNsaWNrcyBhbiBhbmltYXRpb24gcGxheWJhY2sgYnV0dG9uOiBmb3J3YXJkLCBzdG9wLCBzbG93LCBmYXN0LCBldGMuXHJcbiAgQW5pbWF0aW9uQ29udHJvbENoYW5nZSA9ICdkb2M6YW5pbWF0aW9uLWNvbnRyb2wtY2hhbmdlLWV2ZW50JyxcclxuXHJcbiAgLy8gbm90aWZ5IHRoZSBzaGVldCBoYXMgYmVlbiByZW5hbWVkXHJcbiAgUmVuYW1lU2hlZXROb3RpZmljYXRpb24gPSAnZG9jOnJlbmFtZS1zaGVldC1ub3RpZmljYXRpb24tZXZlbnQnLFxyXG5cclxuICAvLyB1cGRhdGUgdGhlIHdlYiBxdWFudGl0YXRpdmUgY29sb3IgZGlhbG9nXHJcbiAgV2ViUXVhbnRpdGF0aXZlQ29sb3JEaWFsb2cgPSAnZG9jOndlYi1xdWFudGl0YXRpdmUtY29sb3ItZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gdXBkYXRlIHRoZSBidXR0b24gY29uZmlnIGRpYWxvZ1xyXG4gIFVwZGF0ZUJ1dHRvbkNvbmZpZ0RpYWxvZyA9ICdkb2M6dXBkYXRlLWJ1dHRvbi1jb25maWctZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gZXZlbnQgZm9yIHRoZSByZWZlcmVuY2UgbGluZSBkaWFsb2csIHdoaWNoIGlzIG9ubHkgdmFsaWQgZHVyaW5nIHdlYiBhdXRob3JpbmdcclxuICBVcGRhdGVSZWZMaW5lRGlhbG9nID0gJ2RvYzp1cGRhdGUtcmVmLWxpbmUtZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gZXZlbnQgdG8gdHJpZ2dlciBvdGhlciByZWZlcmVuY2UgbGluZSBkaWFsb2dzIHRvIGNsb3NlXHJcbiAgUmVmTGluZURpYWxvZ09wZW5pbmcgPSAnZG9jOnJlZi1saW5lLWRpYWxvZy1vcGVuaW5nLWV2ZW50JyxcclxuXHJcbiAgLy8gZXZlbnQgZm9yIHRoZSBjbG9zZSBkYXRhIHNvdXJjZSBlcnJvciBkaWFsb2csIHdoaWNoIGlzIG9ubHkgdmFsaWQgZHVyaW5nIHdlYiBhdXRob3JpbmdcclxuICBDbG9zZURhdGFTb3VyY2VFcnJvckRpYWxvZyA9ICdkb2M6Y2xvc2UtZGF0YS1zb3VyY2UtZXJyb3ItZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gdXBkYXRlIHRoZSB3ZWIgU2F2ZSBEYXRhc291cmNlIGRpYWxvZ1xyXG4gIFdlYlNhdmVEYXRhc291cmNlRGlhbG9nID0gJ2RvYzp3ZWItc2F2ZS1kYXRhc291cmNlLWRpYWxvZy1ldmVudCcsXHJcblxyXG4gIC8vIHdhcm5pbmcgcmVzdWx0aW5nIGZyb20gV2FybmluZ01zZ1xyXG4gIFdhcm5pbmdNZXNzYWdlID0gJ2RvYzp3YXJuaW5nLW1lc3NhZ2UtZXZlbnQnLFxyXG5cclxuICAvLyBldmVudCBmb3IgdGhlIHRhYmxlIGNhbGMgZGlhbG9nLCBvbiB3ZWIsIHRoaXMgaXMgb25seSB2YWxpZCBkdXJpbmcgd2ViIGF1dGhvcmluZ1xyXG4gIFRhYmxlQ2FsY0RpYWxvZyA9ICdkb2M6dGFibGUtY2FsYy1kaWFsb2ctZXZlbnQnLFxyXG5cclxuICAvLyB1c2VyIGludm9rZWQgYWN0aW9uIHdoaWNoIHJlcXVpcmVzIFRhYmxlIENhbGMgRGlhbG9nXHJcbiAgVGFibGVDYWxjQWN0aXZhdGVEaWFsb2cgPSAnZG9jOnRhYmxlLWNhbGMtYWN0aXZhdGUtZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gZXZlbnQgZm9yIHRoZSB0cmVuZCBsaW5lIGRpYWxvZ1xyXG4gIFVwZGF0ZVRyZW5kTGluZUVkaXREaWFsb2cgPSAnZG9jOnVwZGF0ZS10cmVuZC1saW5lLWVkaXQtZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gVGhlIHRhYmxlIHBhZ2UgY2FjaGUgaGFzIGJlZW4gcmVmcmVzaGVkOyBwYWdlcyBtdXN0IGJlIHJlbG9hZGVkIGZyb20gdGhlIGNhY2hlLlxyXG4gIFBhZ2VDYWNoZVJlZnJlc2ggPSAnZG9jOnBhZ2UtY2FjaGUtcmVmcmVzaC1ldmVudCcsXHJcblxyXG4gIC8vIFRoZSB0YWJsZSBwYWdlIGNhY2hlIGhhcyBleHBpcmVkIGFuZCBhbGwgcmVzb3VyY2VzIGhhdmUgYmVlbiByZWxlYXNlZC5cclxuICBQYWdlQ2FjaGVFeHBpcmVkID0gJ2RvYzpwYWdlLWNhY2hlLWV4cGlyZWQtZXZlbnQnLFxyXG5cclxuICAvLyBBbGwgcGFnZXMsIGlkZW50aWZpZWQgYnkgcm93L2NvbCwgaW4gdGhlIHByb3ZpZGVkIGxpc3QgaGF2ZSBleHBpcmVkIGFuZCBzaG91bGQgYmUgcmVsb2FkZWQuXHJcbiAgUGFnZUNhY2hlUGFnZXNFeHBpcmVkID0gJ2RvYzpwYWdlLWNhY2hlLXBhZ2VzLWV4cGlyZWQtZXZlbnQnLFxyXG5cclxuICAvLyBBbGwgcGFnZXMgYmV0d2VlbSB0aGUgcmFuZ2UgKGluY2x1c2l2ZSkgaW4gdGhlIHByb3ZpZGVkIGxpc3QgaGF2ZSBleHBpcmVkIGFuZCBzaG91bGQgYmUgcmVsb2FkZWQuXHJcbiAgUGFnZUNhY2hlUGFnZVJhbmdlRXhwaXJlZCA9ICdkb2M6cGFnZS1jYWNoZS1wYWdlLXJhbmdlLWV4cGlyZWQtZXZlbnQnLFxyXG5cclxuICAvLyBUcmlnZ2VyZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byByZWxvYWQgYW4gYWRkLWluIGluc3RhbmNlLlxyXG4gIFJlbG9hZEFkZEluID0gJ2RvYzpyZWxvYWQtYWRkLWluLWV2ZW50JyxcclxuXHJcbiAgLy8gVHJpZ2dlcmVkIHdoZW4gdGhlIHNlbGVjdGVkIG1hcmtzIGhhdmUgY2hhbmdlZC5cclxuICBTZWxlY3Rpb25DaGFuZ2VkID0gJ2RvYzpzZWxlY3Rpb24tY2hhbmdlZC1ldmVudCcsXHJcblxyXG4gIC8vIFRyaWdnZXJlZCB3aGVuIHRoZSB2YWx1ZSBvZiBhIHBhcmFtZXRlciBoYXMgY2hhbmdlZC4gRW1pdHMgdGhlIG5hbWUgYW5kIGNhcHRpb24gb2YgdGhlIHBhcmFtZXRlclxyXG4gIFBhcmFtZXRlckNoYW5nZWQgPSAnZG9jOnBhcmFtZXRlci1jaGFuZ2VkLWV2ZW50JyxcclxuXHJcbiAgLy8gVHJpZ2dlcmVkIHdoZW4gdGhlIGZpbHRlcnMgaGF2ZSBjaGFuZ2VkLlxyXG4gIEZpbHRlckNoYW5nZWQgPSAnZG9jOmZpbHRlci1jaGFuZ2VkLWV2ZW50JyxcclxuXHJcbiAgLy8gVHJpZ2dlcmVkIHdoZW4gc2F2ZWQgY2x1c3RlciBuZWVkcyB0byBiZSByZWNhbGN1bGF0ZWQuXHJcbiAgQ2x1c3RlclJlZml0Tm90aWZpY2F0aW9uID0gJ2RvYzpjbHVzdGVyLXJlZml0LW5vdGlmaWNhdGlvbi1ldmVudCcsXHJcblxyXG4gIC8vIGV2ZW50IGZvciB0aGUgZGV0YWlsZWQgZXJyb3IgZGlhbG9nXHJcbiAgVXBkYXRlRGV0YWlsZWRFcnJvckRpYWxvZyA9ICdkb2M6dXBkYXRlLWRldGFpbGVkLWVycm9yLWRpYWxvZy1ldmVudCcsXHJcblxyXG4gIC8vIHVwZGF0ZSB0aGUgYXhpcyBlZGl0IGRpYWxvZ1xyXG4gIFVwZGF0ZUVkaXRBeGlzRGlhbG9nID0gJ2RvYzp1cGRhdGUtZWRpdC1heGlzLWRpYWxvZy1ldmVudCcsXHJcblxyXG4gIC8vIG5vdGlmaWNhdGlvbiB0byBsYXVuY2ggdGhlIGh5YnJpZCBVSSBzaG93Y2FzZVxyXG4gIExhdW5jaEh5YnJpZFVJU2hvd2Nhc2UgPSAnZG9jOmxhdW5jaC1oeWJyaWQtdWlzaG93Y2FzZS1ldmVudCcsXHJcblxyXG4gIC8vIG5vdGlmaWNhdGlvbiBvZiBuZXcgZWNob2VkIHRleHQgZm9yIEh5YnJpZFVJIHNob3djYXNlIGRlbW9cclxuICBIeWJyaWRVSVNob3djYXNlRWNobyA9ICdkb2M6aHlicmlkLXVpc2hvd2Nhc2UtZWNoby1ldmVudCcsXHJcblxyXG4gIC8vIGV2ZW50IGZvciB0aGUgYmluIGRpYWxvZ1xyXG4gIFVwZGF0ZU51bWVyaWNCaW5FZGl0RGlhbG9nID0gJ2RvYzp1cGRhdGUtbnVtZXJpYy1iaW4tZWRpdC1kaWFsb2ctZXZlbnQnLFxyXG5cclxuICAvLyBVcGRhdGUgZm9yIHRoZSByaWNoIHRleHQgZWRpdG9yIGRpYWxvZ1xyXG4gIFJpY2hUZXh0RWRpdG9yRGlhbG9nID0gJ2RvYzpyaWNoLXRleHQtZWRpdG9yLWRpYWxvZy1ldmVudCcsXHJcblxyXG4gIC8vIGV2ZW50IGZvciB0aGUgc29ydCBkaWFsb2dcclxuICBVcGRhdGVTb3J0RGlhbG9nID0gJ2RvYzp1cGRhdGUtc29ydC1kaWFsb2ctZXZlbnQnLFxyXG5cclxuICAvLyBhIHRlc3QgZXZlbnQgd2l0aCBhIHByZXMgbW9kZWxcclxuICBUZXN0RXZlbnRXaXRoTW9kZWwgPSAnZG9jOnRlc3QtZXZlbnQtd2l0aC1tb2RlbC1ldmVudCcsXHJcblxyXG4gIC8vIGEgdGVzdCBldmVudCB3aXRob3V0IGEgcHJlcyBtb2RlbFxyXG4gIFRlc3RFdmVudFdpdGhvdXRNb2RlbCA9ICdkb2M6dGVzdC1ldmVudC13aXRob3V0LW1vZGVsLWV2ZW50J1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvZ2VuLXNyYy9wcmVzbGF5ZXIvRXZlbnRzLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQXBpIGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFBhcmFtIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCAqIGFzIFByZXNMYXllciBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QcmVzTW9kZWxzJztcclxuaW1wb3J0IHsgUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MgYXMgRW51bU1hcHBpbmdzIH0gZnJvbSAnLi9FbnVtTWFwcGluZ3MnO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzIGNvbnRhaW5pbmcgaGVscGVyIG1ldGhvZHMgZm9yIGNvbnZlcnRpbmcgZnJvbSBQcmVzTGF5ZXJQcmVzTW9kZWxzIHRvIHRoZWlyIEFwaVByZXNNb2RlbHMgZXF1aXZhbGVudHNcclxuICpcclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXJcclxuICovXHJcbmV4cG9ydCBjbGFzcyBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlciB7XHJcbiAgcHVibGljIHN0YXRpYyBQQVJBTUVURVJTX0RCX05BTUU6IHN0cmluZyA9ICdQYXJhbWV0ZXJzJztcclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0U2hlZXRQYXRoKHBsU2hlZXRQYXRoOiBQcmVzTGF5ZXIuU2hlZXRQYXRoUHJlc01vZGVsKTogQXBpLlNoZWV0UGF0aCB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFwaS5TaGVldFBhdGggPSB7XHJcbiAgICAgIHNoZWV0TmFtZTogcGxTaGVldFBhdGguc2hlZXROYW1lLFxyXG4gICAgICBpc0Rhc2hib2FyZDogcGxTaGVldFBhdGguaXNEYXNoYm9hcmQsXHJcbiAgICAgIHN0b3J5Ym9hcmQ6IHBsU2hlZXRQYXRoLnN0b3J5Ym9hcmQsXHJcbiAgICAgIGZsaXBib2FyZFpvbmVJRDogcGxTaGVldFBhdGguZmxpcGJvYXJkWm9uZUlkLFxyXG4gICAgICBzdG9yeVBvaW50SUQ6IHBsU2hlZXRQYXRoLnN0b3J5UG9pbnRJZCxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFZpc3VhbElkKHBsVmlzdWFsSWQ6IFByZXNMYXllci5WaXN1YWxJRFByZXNNb2RlbCk6IEFwaS5WaXN1YWxJZCB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFwaS5WaXN1YWxJZCA9IHtcclxuICAgICAgd29ya3NoZWV0OiBwbFZpc3VhbElkLndvcmtzaGVldCxcclxuICAgICAgZGFzaGJvYXJkOiBwbFZpc3VhbElkLmRhc2hib2FyZCxcclxuICAgICAgc3Rvcnlib2FyZDogcGxWaXN1YWxJZC5zdG9yeWJvYXJkLFxyXG4gICAgICBmbGlwYm9hcmRab25lSUQ6IHBsVmlzdWFsSWQuZmxpcGJvYXJkWm9uZUlkLFxyXG4gICAgICBzdG9yeVBvaW50SUQ6IHBsVmlzdWFsSWQuc3RvcnlQb2ludElkLFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RXh0ZW5zaW9uTG9jYXRvcihwbEFkZEluTG9jYXRvcjogUHJlc0xheWVyLkFkZEluTG9jYXRvclByZXNNb2RlbCk6IEFwaS5FeHRlbnNpb25Mb2NhdG9yIHtcclxuICAgIGxldCBkYXNoYm9hcmRQYXRoID0gdW5kZWZpbmVkO1xyXG4gICAgaWYgKHBsQWRkSW5Mb2NhdG9yLnNoZWV0UGF0aCkge1xyXG4gICAgICBkYXNoYm9hcmRQYXRoID0gUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydFNoZWV0UGF0aChwbEFkZEluTG9jYXRvci5zaGVldFBhdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlc3VsdDogQXBpLkV4dGVuc2lvbkxvY2F0b3IgPSB7XHJcbiAgICAgIGluc3RhbmNlSWQ6IHBsQWRkSW5Mb2NhdG9yLmFkZEluSW5zdGFuY2VJZCxcclxuICAgICAgZGFzaGJvYXJkUGF0aDogZGFzaGJvYXJkUGF0aFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGFzaGJvYXJkSW5ab25lcyhwbERhc2hib2FyZDogUHJlc0xheWVyLkRhc2hib2FyZFByZXNNb2RlbCk6IEFycmF5PEFwaS5EYXNoYm9hcmRab25lPiB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8QXBpLkRhc2hib2FyZFpvbmU+KCk7XHJcblxyXG4gICAgZm9yIChjb25zdCB6b25lS2V5IG9mIE9iamVjdC5rZXlzKHBsRGFzaGJvYXJkLnpvbmVzKSkge1xyXG4gICAgICBjb25zdCB6b25lID0gcGxEYXNoYm9hcmQuem9uZXNbem9uZUtleV07XHJcbiAgICAgIGxldCBhcGlab25lOiBBcGkuRGFzaGJvYXJkWm9uZSA9IHtcclxuICAgICAgICBuYW1lOiB6b25lLnpvbmVDb21tb24ubmFtZSxcclxuICAgICAgICB6b25lSWQ6IHpvbmUuem9uZUlkLFxyXG4gICAgICAgIHpvbmVUeXBlOiBFbnVtTWFwcGluZ3Muem9uZVR5cGUuY29udmVydCh6b25lLnpvbmVDb21tb24uem9uZVR5cGUpLFxyXG4gICAgICAgIGhlaWdodDogem9uZS56b25lQ29tbW9uLmgsXHJcbiAgICAgICAgd2lkdGg6IHpvbmUuem9uZUNvbW1vbi53LFxyXG4gICAgICAgIHg6IHpvbmUuem9uZUNvbW1vbi54LFxyXG4gICAgICAgIHk6IHpvbmUuem9uZUNvbW1vbi55XHJcbiAgICAgIH07XHJcblxyXG4gICAgICByZXN1bHQucHVzaChhcGlab25lKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGFzaGJvYXJkSW5mbyhwbERhc2hib2FyZEluZm86IFByZXNMYXllci5BZGRJbkRhc2hib2FyZEluZm9QcmVzTW9kZWwpOiBBcGkuRXh0ZW5zaW9uRGFzaGJvYXJkSW5mbyB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFwaS5FeHRlbnNpb25EYXNoYm9hcmRJbmZvID0ge1xyXG4gICAgICB6b25lczogUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydERhc2hib2FyZEluWm9uZXMocGxEYXNoYm9hcmRJbmZvLmRhc2hib2FyZFByZXNNb2RlbCksXHJcbiAgICAgIG5hbWU6IHBsRGFzaGJvYXJkSW5mby5kYXNoYm9hcmRQcmVzTW9kZWwuc2hlZXRQYXRoLnNoZWV0TmFtZSxcclxuICAgICAgZXh0ZW5zaW9uWm9uZUlkOiBwbERhc2hib2FyZEluZm8uem9uZUlkLFxyXG4gICAgICBzaXplOiBwbERhc2hib2FyZEluZm8uZGFzaGJvYXJkUHJlc01vZGVsLnZpZXdwb3J0U2l6ZVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RXh0ZW5zaW9uSW5zdGFuY2UocGxBZGRJbkluc3RhbmNlOiBQcmVzTGF5ZXIuQWRkSW5JbnN0YW5jZVByZXNNb2RlbCk6IEFwaS5FeHRlbnNpb25JbnN0YW5jZSB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFwaS5FeHRlbnNpb25JbnN0YW5jZSA9IHtcclxuICAgICAgdXJsOiBwbEFkZEluSW5zdGFuY2UuYWRkSW5SZWdpc3RyYXRpb25QcmVzTW9kZWwudXJsLFxyXG4gICAgICBsb2NhdG9yOiBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RXh0ZW5zaW9uTG9jYXRvcihwbEFkZEluSW5zdGFuY2UuYWRkSW5Mb2NhdG9yUHJlc01vZGVsKVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RXh0ZW5zaW9uRW5pdnJpb25tZW50KHBsQWRkSW5FbnZpcm9ubWVudDogUHJlc0xheWVyLkFkZEluRW52aXJvbm1lbnRQcmVzTW9kZWwpOiBBcGkuRXh0ZW5zaW9uRW52aXJvbm1lbnQge1xyXG4gICAgY29uc3QgcmVzdWx0OiBBcGkuRXh0ZW5zaW9uRW52aXJvbm1lbnQgPSB7XHJcbiAgICAgIGV4dGVuc2lvbkNvbnRleHQ6IEVudW1NYXBwaW5ncy5leHRlbnNpb25Db250ZXh0LmNvbnZlcnQocGxBZGRJbkVudmlyb25tZW50LmFkZEluQ29udGV4dCksXHJcbiAgICAgIGV4dGVuc2lvbk1vZGU6IEVudW1NYXBwaW5ncy5leHRlbnNpb25Nb2RlLmNvbnZlcnQocGxBZGRJbkVudmlyb25tZW50LmFkZEluTW9kZSksXHJcbiAgICAgIGV4dGVuc2lvbkxvY2FsZTogcGxBZGRJbkVudmlyb25tZW50LmFkZEluTG9jYWxlLFxyXG4gICAgICBleHRlbnNpb25MYW5ndWFnZTogcGxBZGRJbkVudmlyb25tZW50LmFkZEluTGFuZ3VhZ2UsXHJcbiAgICAgIHRhYmxlYXVWZXJzaW9uOiBwbEFkZEluRW52aXJvbm1lbnQudGFibGVhdVZlcnNpb24sXHJcbiAgICAgIG9wZXJhdGluZ1N5c3RlbTogcGxBZGRJbkVudmlyb25tZW50Lm9wZXJhdGluZ1N5c3RlbSxcclxuICAgICAgYXBpVmVyc2lvbjogcGxBZGRJbkVudmlyb25tZW50LmFwaVZlcnNpb25cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydEV4dGVuc2lvblNldHRpbmdzSW5mbyhwbEFkZEluU2V0dGluZ3M6IFByZXNMYXllci5BZGRJblNldHRpbmdzSW5mb1ByZXNNb2RlbCk6IEFwaS5FeHRlbnNpb25TZXR0aW5nc0luZm8ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBBcGkuRXh0ZW5zaW9uU2V0dGluZ3NJbmZvID0ge1xyXG4gICAgICAvLyBhZGRJblNldHRpbmdzIGlzIHVuZGVmaW5lZCBkdXJpbmcgYm9vdHN0cmFwIGluaXRpYWxpemF0aW9uXHJcbiAgICAgIHNldHRpbmdzVmFsdWVzOiBwbEFkZEluU2V0dGluZ3MuYWRkSW5TZXR0aW5ncyB8fCB7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RXh0ZW5zaW9uQm9vdHN0cmFwSW5mbyhwbEJvb3RzdHJhcEluZm86IFByZXNMYXllci5BZGRJbkJvb3RzdHJhcEluZm9QcmVzTW9kZWwpOiBBcGkuRXh0ZW5zaW9uQm9vdHN0cmFwSW5mbyB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFwaS5FeHRlbnNpb25Cb290c3RyYXBJbmZvID0ge1xyXG4gICAgICBleHRlbnNpb25EYXNoYm9hcmRJbmZvOiBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RGFzaGJvYXJkSW5mbyhwbEJvb3RzdHJhcEluZm8uYWRkSW5EYXNoYm9hcmRJbmZvUHJlc01vZGVsKSxcclxuICAgICAgZXh0ZW5zaW9uRW52aXJvbm1lbnQ6IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRFeHRlbnNpb25Fbml2cmlvbm1lbnQocGxCb290c3RyYXBJbmZvLmFkZEluRW52aXJvbm1lbnRQcmVzTW9kZWwpLFxyXG4gICAgICBleHRlbnNpb25JbnN0YW5jZTogUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEV4dGVuc2lvbkluc3RhbmNlKHBsQm9vdHN0cmFwSW5mby5hZGRJbkluc3RhbmNlUHJlc01vZGVsKSxcclxuICAgICAgZXh0ZW5zaW9uU2V0dGluZ3NJbmZvOiBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RXh0ZW5zaW9uU2V0dGluZ3NJbmZvKHBsQm9vdHN0cmFwSW5mby5hZGRJblNldHRpbmdzSW5mbylcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydEZpZWxkQ2FwdGlvblBhaXIocGxGaWVsZENhcHRpb25QYWlyOiBQcmVzTGF5ZXIuRmllbGRDYXB0aW9uUGFpclByZXNNb2RlbCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gcGxGaWVsZENhcHRpb25QYWlyLmZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RmlsdGVyRXZlbnQocGxGaWx0ZXJFdmVudDogUHJlc0xheWVyLkZpbHRlckNoYW5nZUV2ZW50UHJlc01vZGVsKTogQXBpLkZpbHRlckV2ZW50IHtcclxuICAgIGNvbnN0IHJlc3VsdDogQXBpLkZpbHRlckV2ZW50ID0ge1xyXG4gICAgICB2aXN1YWxJZDogUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkKHBsRmlsdGVyRXZlbnQudmlzdWFsSWRQcmVzTW9kZWwpLFxyXG4gICAgICBmaWVsZE5hbWU6IHBsRmlsdGVyRXZlbnQuZmllbGRDYXB0aW9uXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydERhdGFTY2hlbWEoZGF0YVNjaGVtYTogUHJlc0xheWVyLkRhdGFTY2hlbWFQcmVzTW9kZWwpOiBBcGkuRGF0YVNjaGVtYSB7XHJcbiAgICBsZXQgYXBpRGF0YVNvdXJjZXM6IEFwaS5EYXRhU291cmNlTWFwID0geyB9O1xyXG5cclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKGRhdGFTY2hlbWEsICdkYXRhU2NoZW1hJyk7XHJcbiAgICBQYXJhbS52ZXJpZnlWYWx1ZShkYXRhU2NoZW1hLmRhdGFTb3VyY2VzLCAnZGF0YVNjaGVtYS5kYXRhU291cmNlcycpO1xyXG5cclxuICAgIC8vIENvbnZlcnQgZWFjaCBwcmVzIGxheWVyIGRhdGFzb3VyY2UgaW4gdGhlIHNjaGVtYSB0byBhbiBBcGkgZGF0YXNvdXJjZVxyXG4gICAgT2JqZWN0LmtleXMoZGF0YVNjaGVtYS5kYXRhU291cmNlcykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIC8vIFNraXAgdGhlIGRlZmF1bHQgUGFyYW1ldGVycyBkYXRhc291cmNlIHdlIHJlY2VpdmUgZnJvbSB0aGUgcGxhdGZvcm0uXHJcbiAgICAgIGlmIChkYXRhU2NoZW1hLmRhdGFTb3VyY2VzW2tleV0uZGF0YXNvdXJjZSAhPT0gUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuUEFSQU1FVEVSU19EQl9OQU1FKSB7XHJcbiAgICAgICAgYXBpRGF0YVNvdXJjZXNba2V5XSA9IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnREYXRhU291cmNlKGRhdGFTY2hlbWEuZGF0YVNvdXJjZXNba2V5XSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHNjaGVtYU1hcCA9IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRXb3Jrc2hlZXREYXRhU2NoZW1hTWFwKGRhdGFTY2hlbWEud29ya3NoZWV0RGF0YVNjaGVtYU1hcCk7XHJcblxyXG4gICAgY29uc3QgcmVzdWx0OiBBcGkuRGF0YVNjaGVtYSA9IHtcclxuICAgICAgZGF0YVNvdXJjZXM6IGFwaURhdGFTb3VyY2VzLFxyXG4gICAgICB3b3Jrc2hlZXREYXRhU2NoZW1hTWFwOiBzY2hlbWFNYXAsXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnREYXRhU291cmNlKGRhdGFTb3VyY2U6IFByZXNMYXllci5EYXRhU291cmNlUHJlc01vZGVsKTogQXBpLkRhdGFTb3VyY2Uge1xyXG4gICAgY29uc3QgZXh0cmFjdFVwZGF0ZVRpbWUgPSAoZGF0YVNvdXJjZS5leHRyYWN0VXBkYXRlVGltZSA9PT0gJycpID8gdW5kZWZpbmVkIDogZGF0YVNvdXJjZS5leHRyYWN0VXBkYXRlVGltZTtcclxuICAgIGNvbnN0IGRhdGFTb3VyY2VGaWVsZHMgPSBuZXcgQXJyYXk8QXBpLkZpZWxkPigpO1xyXG5cclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKGRhdGFTb3VyY2UsICdkYXRhU291cmNlJyk7XHJcbiAgICBQYXJhbS52ZXJpZnlWYWx1ZShkYXRhU291cmNlLmZpZWxkTGlzdCwgJ2RhdGFTY2hlbWEuZmllbGRMaXN0Jyk7XHJcblxyXG4gICAgZGF0YVNvdXJjZS5maWVsZExpc3QuZm9yRWFjaCgocGxGaWVsZCkgPT4ge1xyXG4gICAgICAvLyBJZiB0aGUgZGF0YXNvdXJjZSBjb250YWlucyBoaWVyYXJjaGllcyBvciBmb2xkZXJzLCB0aGUgYmFzZSBmaWVsZCB3aWxsIGNvbnRhaW5cclxuICAgICAgLy8gYSBsaXN0IG9mIHRoZSBmaWVsZHMgZ3JvdXBlZCBiZW5lYXRoIGl0LCB3ZSBhcmUgaW50ZXJlc3RlZCBpbiB0aG9zZS5cclxuICAgICAgLy8gVGFibGVhdSBkb2VzIG5vdCBzdXBwb3J0IG5lc3RlZCBmb2xkZXJzIG9yIGhpZXJhcmNoaWVzLCBzbyB0aGlzIGRvZXMgbm90IG5lZWQgdG8gYmUgcmVjdXJzaXZlLlxyXG4gICAgICBjb25zdCBoaWVyYXJjaHlNb2RlbCA9IHBsRmllbGQgYXMgUHJlc0xheWVyLkhpZXJhcmNoeVByZXNNb2RlbDtcclxuXHJcbiAgICAgIGlmIChoaWVyYXJjaHlNb2RlbC5jb2x1bW5MaXN0KSB7IC8vIElmIGNvbHVtbiBsaXN0IGlzIGRlZmluZWQsIHRoaXMgaXMgYSBoaWVyYXJjaHkuXHJcbiAgICAgICAgaGllcmFyY2h5TW9kZWwuY29sdW1uTGlzdC5mb3JFYWNoKGZpZWxkID0+IGRhdGFTb3VyY2VGaWVsZHMucHVzaChQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RmllbGQoZmllbGQpKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gVGhpcyBpcyBhIGJpdCBicml0dGxlIGZvciBub3csIGJ1dCB0aGlzIHZhbHVlIGlzIG5vdCBleHBvc2VkIHZpYSB0aGUgcGxhdGZvcm0gRmllbGRUeXBlIEVudW0uXHJcbiAgICAgICAgaWYgKHBsRmllbGQudHlwZSAhPT0gJ2ZpZWxkLWZvbGRlcicgJiYgcGxGaWVsZC50eXBlICE9PSAnZGltZW5zaW9uJykge1xyXG4gICAgICAgICAgZGF0YVNvdXJjZUZpZWxkcy5wdXNoKFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRGaWVsZChwbEZpZWxkKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCByZXN1bHQ6IEFwaS5EYXRhU291cmNlID0ge1xyXG4gICAgICBuYW1lOiBkYXRhU291cmNlLmRhdGFzb3VyY2VDYXB0aW9uLFxyXG4gICAgICBpZDogZGF0YVNvdXJjZS5kYXRhc291cmNlLFxyXG4gICAgICBpc0V4dHJhY3Q6IChleHRyYWN0VXBkYXRlVGltZSAhPT0gdW5kZWZpbmVkKSxcclxuICAgICAgZXh0cmFjdFVwZGF0ZVRpbWU6IGV4dHJhY3RVcGRhdGVUaW1lLFxyXG4gICAgICBmaWVsZHM6IGRhdGFTb3VyY2VGaWVsZHNcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFdvcmtzaGVldERhdGFTY2hlbWFNYXAoc2NoZW1hTWFwOiB7IFtrZXk6IHN0cmluZ106IFByZXNMYXllci5Xb3Jrc2hlZXREYXRhU2NoZW1hUHJlc01vZGVsIH0pOlxyXG4gICAgQXBpLldvcmtzaGVldERhdGFTY2hlbWFNYXAge1xyXG5cclxuICAgIGxldCByZXN1bHQ6IEFwaS5Xb3Jrc2hlZXREYXRhU2NoZW1hTWFwID0ge307XHJcblxyXG4gICAgT2JqZWN0LmtleXMoc2NoZW1hTWFwKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgLy8gV2UgbmVlZCB0byByZW1vdmUgYW55IHJlZmVyZW5jZXMgdG8gdGhlIFwiUGFyYW1ldGVyc1wiIGRhdGFzb3VyY2UuICBUaGlzIGlzIHRyZWF0ZWQgYXMgYSBzZXBhcmF0ZVxyXG4gICAgICAvLyBkYXRhc291cmNlIGJ5IHRoZSBwbGF0Zm9ybSwgYnV0IHRoZSBFeHRlbnNpb25zIEFQSSBhY2Nlc3NlcyBQYXJhbWV0ZXJzIGRpcmVjdGx5LlxyXG4gICAgICBsZXQgY2xlYW5SZWZlcmVuY2VkRGF0YVNvdXJjZUxpc3QgPSBzY2hlbWFNYXBba2V5XS5yZWZlcmVuY2VkRGF0YVNvdXJjZUxpc3QuZmlsdGVyKChkc05hbWUpID0+IHtcclxuICAgICAgICByZXR1cm4gZHNOYW1lICE9PSBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5QQVJBTUVURVJTX0RCX05BTUU7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgY29uc3Qgd29ya3NoZWV0RGF0YVNvdXJjZUluZm86IEFwaS5Xb3Jrc2hlZXREYXRhU291cmNlSW5mbyA9IHtcclxuICAgICAgICBwcmltYXJ5RGF0YVNvdXJjZTogc2NoZW1hTWFwW2tleV0ucHJpbWFyeURhdGFzb3VyY2UsXHJcbiAgICAgICAgcmVmZXJlbmNlZERhdGFTb3VyY2VMaXN0OiBjbGVhblJlZmVyZW5jZWREYXRhU291cmNlTGlzdFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmVzdWx0W2tleV0gPSB3b3Jrc2hlZXREYXRhU291cmNlSW5mbztcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRGaWVsZChwbEZpZWxkOiBQcmVzTGF5ZXIuRmllbGRQcmVzTW9kZWwpOiBBcGkuRmllbGQge1xyXG4gICAgY29uc3QgZmllbGRDb2x1bW4gPSBwbEZpZWxkIGFzIFByZXNMYXllci5GaWVsZENvbHVtblByZXNNb2RlbDtcclxuICAgIGNvbnN0IGdyb3VwQ29sdW1uID0gcGxGaWVsZCBhcyBQcmVzTGF5ZXIuR3JvdXBQcmVzTW9kZWw7XHJcblxyXG4gICAgbGV0IGFnZ3JlZ2F0aW9uID0gQXBpLkZpZWxkQWdncmVnYXRpb25UeXBlLk5vbmU7XHJcbiAgICBsZXQgcm9sZSA9IEFwaS5GaWVsZFJvbGVUeXBlLlVua25vd247XHJcbiAgICBsZXQgaXNDYWxjdWxhdGVkID0gZmFsc2U7XHJcblxyXG4gICAgLy8gV2UgZXhwZWN0IHRoYXQgZXZlcnkgRmllbGRQcmVzTW9kZWwgd2UgZ2V0IGJhY2sgZnJvbSB0aGUgY29tbWFuZCB0aGF0IHJldHVybnMgRmllbGRQcmVzTW9kZWxzXHJcbiAgICAvLyBpcyBhY3R1YWxseSBhbiBpbnN0YW5jZSBvZiB0aGUgZGVyaXZlZCBGaWVsZENvbHVtblByZXNNb2RlbC5cclxuICAgIGlmIChmaWVsZENvbHVtbi5hZ2dyZWdhdGlvbiAmJiBmaWVsZENvbHVtbi5maWVsZFJvbGUpIHtcclxuICAgICAgYWdncmVnYXRpb24gPSBFbnVtTWFwcGluZ3MuZmllbGRBZ2dyZWdhdGlvblR5cGUuY29udmVydChmaWVsZENvbHVtbi5hZ2dyZWdhdGlvbik7XHJcbiAgICAgIHJvbGUgPSBFbnVtTWFwcGluZ3MuZmllbGRSb2xlVHlwZS5jb252ZXJ0KGZpZWxkQ29sdW1uLmZpZWxkUm9sZSk7XHJcbiAgICAgIGlzQ2FsY3VsYXRlZCA9IGZpZWxkQ29sdW1uLmlzQ2FsY3VsYXRlZCB8fCBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBJbnRlcm5hbCBFcnJvcjogZmllbGQgcHJlcyBtb2RlbCBpcyBtaXNzaW5nIGV4cGVjdGVkIHByb3BlcnRpZXMuJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVzdWx0OiBBcGkuRmllbGQgPSB7XHJcbiAgICAgIG5hbWU6IHBsRmllbGQuZGVzY3JpcHRpb24sXHJcbiAgICAgIGlkOiBwbEZpZWxkLm5hbWUsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBwbEZpZWxkLnVzZXJDYXB0aW9uLFxyXG4gICAgICBhZ2dyZWdhdGlvbjogYWdncmVnYXRpb24sXHJcbiAgICAgIGlzSGlkZGVuOiAhIShwbEZpZWxkLmlzSGlkZGVuKSxcclxuICAgICAgaXNHZW5lcmF0ZWQ6IHBsRmllbGQuaXNHZW5lcmF0ZWQsXHJcbiAgICAgIGlzQ2FsY3VsYXRlZEZpZWxkOiBpc0NhbGN1bGF0ZWQsXHJcbiAgICAgIHJvbGU6IHJvbGUsXHJcbiAgICAgIGlzQ29tYmluZWRGaWVsZDogISEoZ3JvdXBDb2x1bW4uaXNDb21iaW5lZEZpZWxkKVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0Sm9pbkRlc2NyaXB0aW9uKHBsSm9pbkRlc2NyaXB0aW9uOiBQcmVzTGF5ZXIuSm9pbkRlc2NyaXB0aW9uUHJlc01vZGVsKTogQXBpLkpvaW5EZXNjcmlwdGlvbiB7XHJcbiAgICBQYXJhbS52ZXJpZnlWYWx1ZShwbEpvaW5EZXNjcmlwdGlvbiwgJ3BsSm9pbkRlc2NyaXB0aW9uJyk7XHJcbiAgICBsZXQgYXBpVGFibGVzOiBBcGkuVGFibGVJbmZvW10gPSBwbEpvaW5EZXNjcmlwdGlvbi5qb2luVGFibGVJbmZvcy5tYXAoam9pblRhYmxlID0+IHtcclxuICAgICAgY29uc3QgYXBpVGFibGU6IEFwaS5UYWJsZUluZm8gPSB7XHJcbiAgICAgICAgbmFtZTogam9pblRhYmxlLnRhYmxlQWxpYXMsXHJcbiAgICAgICAgaWQ6IGpvaW5UYWJsZS50YWJsZU5hbWUsXHJcbiAgICAgICAgY3VzdG9tU1FMOiAoam9pblRhYmxlLmlzQ3VzdG9tU3FsKSA/IGpvaW5UYWJsZS5zcWxRdWVyeSA6IHVuZGVmaW5lZCxcclxuICAgICAgICBjb25uZWN0aW9uQ2xhc3NOYW1lOiBqb2luVGFibGUuY29ubmVjdGlvbkNsYXNzTmFtZSxcclxuICAgICAgICBjb25uZWN0aW9uSWQ6IGpvaW5UYWJsZS5jb25uZWN0aW9uTmFtZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmV0dXJuIGFwaVRhYmxlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgcmVzdWx0OiBBcGkuSm9pbkRlc2NyaXB0aW9uID0ge1xyXG4gICAgICB0YWJsZXM6IGFwaVRhYmxlc1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0Q29ubmVjdGlvbkRlc2NycHRpb25TdW1tYXJpZXMocGxDb25uZWN0aW9uRGVzY3JpcHRpb246IFByZXNMYXllci5Db25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJ5UHJlc01vZGVsW10pOlxyXG4gICAgQXBpLkNvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcnlbXSB7XHJcbiAgICByZXR1cm4gcGxDb25uZWN0aW9uRGVzY3JpcHRpb24ubWFwKHBsU3VtbWFyeSA9PiB7XHJcbiAgICAgIGNvbnN0IGFwaUNvbm5lY3Rpb246IEFwaS5Db25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJ5ID0ge1xyXG4gICAgICAgIG5hbWU6IHBsU3VtbWFyeS5jb25uZWN0aW9uRGVzY3JpcHRpb25MYWJlbCxcclxuICAgICAgICBpZDogcGxTdW1tYXJ5LmNvbm5lY3Rpb25OYW1lLFxyXG4gICAgICAgIHR5cGU6IHBsU3VtbWFyeS5jb25uZWN0aW9uVHlwZUxhYmVsLFxyXG4gICAgICAgIHNlcnZlclVSSTogcGxTdW1tYXJ5LmNvbm5lY3Rpb25VcmlcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHJldHVybiBhcGlDb25uZWN0aW9uO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL21hcHBpbmdzL1ByZXNMYXllclRvQXBpQ29udmVydGVyLnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBEYXNoYm9hcmRPYmplY3RUeXBlLFxyXG4gIERhdGFUeXBlLFxyXG4gIERhdGVSYW5nZVR5cGUsXHJcbiAgRGF0ZVN0ZXBQZXJpb2QsXHJcbiAgRG9tYWluUmVzdHJpY3Rpb25UeXBlLFxyXG4gIEV4dGVuc2lvbkNvbnRleHQsXHJcbiAgRXh0ZW5zaW9uTW9kZSxcclxuICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZSxcclxuICBGaWVsZFJvbGVUeXBlLFxyXG4gIEZpbHRlckRvbWFpblR5cGUsXHJcbiAgRmlsdGVyTnVsbE9wdGlvbixcclxuICBGaWx0ZXJVcGRhdGVUeXBlXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgRW51bUNvbnZlcnRlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQgKiBhcyBFbnVtcyBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9FbnVtcyc7XHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZTp0eXBlZGVmIC0gRGlzYWJsZSB0aGlzIHRvIG1ha2UgZGVjbGFyaW5nIHRoZXNlIGNsYXNzZXMgYSBiaXQgZWFzaWVyICovXHJcbmV4cG9ydCBjbGFzcyBQcmVzTGF5ZXJUb0FwaUVudW1NYXBwaW5ncyB7XHJcbiAgcHVibGljIHN0YXRpYyB6b25lVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEVudW1zLlpvbmVUeXBlLCBEYXNoYm9hcmRPYmplY3RUeXBlPih7XHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfSW52YWxpZF06IERhc2hib2FyZE9iamVjdFR5cGUuQmxhbmssXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfVml6XTogRGFzaGJvYXJkT2JqZWN0VHlwZS5Xb3Jrc2hlZXQsXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfQ29sb3JMZWdlbmRdOiBEYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9TaGFwZUxlZ2VuZF06IERhc2hib2FyZE9iamVjdFR5cGUuTGVnZW5kLFxyXG4gICAgW0VudW1zLlpvbmVUeXBlLlpUX1NpemVMZWdlbmRdOiBEYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9NYXBMZWdlbmRdOiBEYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9RdWlja0ZpbHRlcl06IERhc2hib2FyZE9iamVjdFR5cGUuUXVpY2tGaWx0ZXIsXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfSGlnaGxpZ2h0ZXJdOiBEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLCAvLyBUT0RPXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfQ3VyclBhZ2VdOiBEYXNoYm9hcmRPYmplY3RUeXBlLlBhZ2VGaWx0ZXIsXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfRW1wdHldOiBEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxyXG4gICAgW0VudW1zLlpvbmVUeXBlLlpUX1RpdGxlXTogRGFzaGJvYXJkT2JqZWN0VHlwZS5UaXRsZSxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9UZXh0XTogRGFzaGJvYXJkT2JqZWN0VHlwZS5UZXh0LFxyXG4gICAgW0VudW1zLlpvbmVUeXBlLlpUX0JpdG1hcF06IERhc2hib2FyZE9iamVjdFR5cGUuSW1hZ2UsXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfV2ViXTogRGFzaGJvYXJkT2JqZWN0VHlwZS5XZWJQYWdlLFxyXG4gICAgW0VudW1zLlpvbmVUeXBlLlpUX0FkZEluXTogRGFzaGJvYXJkT2JqZWN0VHlwZS5FeHRlbnNpb24sIC8vIFRPRE9cclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9QYXJhbUN0cmxdOiBEYXNoYm9hcmRPYmplY3RUeXBlLlBhcmFtZXRlckNvbnRyb2wsXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfRmxpcGJvYXJkTmF2XTogRGFzaGJvYXJkT2JqZWN0VHlwZS5CbGFuayxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9GbGlwYm9hcmRdOiBEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxyXG4gICAgW0VudW1zLlpvbmVUeXBlLlpUX0xheW91dEJhc2ljXTogRGFzaGJvYXJkT2JqZWN0VHlwZS5CbGFuayxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9MYXlvdXRGbG93XTogRGFzaGJvYXJkT2JqZWN0VHlwZS5CbGFuayxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9MYXlvdXRGcmVlRm9ybV06IERhc2hib2FyZE9iamVjdFR5cGUuQmxhbmssXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfRW5kXTogRGFzaGJvYXJkT2JqZWN0VHlwZS5CbGFuayxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9CdXR0b25dOiBEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxyXG4gIH0sIERhc2hib2FyZE9iamVjdFR5cGUuQmxhbmspO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGV4dGVuc2lvbkNvbnRleHQgPSBuZXcgRW51bUNvbnZlcnRlcjxFbnVtcy5BZGRJbkNvbnRleHQsIEV4dGVuc2lvbkNvbnRleHQ+KHtcclxuICAgIFtFbnVtcy5BZGRJbkNvbnRleHQuVW5rbm93bl06IEV4dGVuc2lvbkNvbnRleHQuVW5rbm93bixcclxuICAgIFtFbnVtcy5BZGRJbkNvbnRleHQuRGVza3RvcF06IEV4dGVuc2lvbkNvbnRleHQuRGVza3RvcCxcclxuICAgIFtFbnVtcy5BZGRJbkNvbnRleHQuU2VydmVyXTogRXh0ZW5zaW9uQ29udGV4dC5TZXJ2ZXJcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBleHRlbnNpb25Nb2RlID0gbmV3IEVudW1Db252ZXJ0ZXI8RW51bXMuQWRkSW5Nb2RlLCBFeHRlbnNpb25Nb2RlPih7XHJcbiAgICBbRW51bXMuQWRkSW5Nb2RlLlVua25vd25dOiBFeHRlbnNpb25Nb2RlLlVua25vd24sXHJcbiAgICBbRW51bXMuQWRkSW5Nb2RlLkF1dGhvcmluZ106IEV4dGVuc2lvbk1vZGUuQXV0aG9yaW5nLFxyXG4gICAgW0VudW1zLkFkZEluTW9kZS5WaWV3aW5nXTogRXh0ZW5zaW9uTW9kZS5WaWV3aW5nXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZGF0YVR5cGUgPSBuZXcgRW51bUNvbnZlcnRlcjxFbnVtcy5EYXRhVHlwZSwgRGF0YVR5cGU+ICh7XHJcbiAgICBbRW51bXMuRGF0YVR5cGUuRFRfQk9PTEVBTl06IERhdGFUeXBlLkJvb2wsXHJcbiAgICBbRW51bXMuRGF0YVR5cGUuRFRfREFURV06IERhdGFUeXBlLkRhdGUsXHJcbiAgICBbRW51bXMuRGF0YVR5cGUuRFRfREFURVRJTUVdOiBEYXRhVHlwZS5EYXRlVGltZSxcclxuICAgIFtFbnVtcy5EYXRhVHlwZS5EVF9JTlRFR0VSXTogRGF0YVR5cGUuSW50LFxyXG4gICAgW0VudW1zLkRhdGFUeXBlLkRUX1JFQUxdOiBEYXRhVHlwZS5GbG9hdCxcclxuICAgIFtFbnVtcy5EYXRhVHlwZS5EVF9TVFJJTkddOiBEYXRhVHlwZS5TdHJpbmcsXHJcbiAgICBbRW51bXMuRGF0YVR5cGUuRFRfU1BBVElBTF06IERhdGFUeXBlLlNwYXRpYWxcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBmaWVsZEFnZ3JlZ2F0aW9uVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEVudW1zLkFnZ1R5cGUsIEZpZWxkQWdncmVnYXRpb25UeXBlPih7XHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfQVRUUl06IEZpZWxkQWdncmVnYXRpb25UeXBlLkF0dHIsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfQVZHXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuQXZnLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX0NPVU5UXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnQsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfQ09VTlREXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnRkLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX0RBWV06IEZpZWxkQWdncmVnYXRpb25UeXBlLkRheSxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19FTkRdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5FbmQsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfSE9VUl06IEZpZWxkQWdncmVnYXRpb25UeXBlLkhvdXIsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfSU5PVVRdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Jbk91dCxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19LVVJUT1NJU106IEZpZWxkQWdncmVnYXRpb25UeXBlLkt1cnRvc2lzLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX01BWF06IEZpZWxkQWdncmVnYXRpb25UeXBlLk1heCxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19NRFldOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NZHksXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfTUVESUFOXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuTWVkaWFuLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX01JTl06IEZpZWxkQWdncmVnYXRpb25UeXBlLk1pbixcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19NSU5VVEVdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NaW51dGUsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfTU9OVEhZRUFSXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuTW9udGhZZWFyLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX05PTkVdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Ob25lLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX1FUUl06IEZpZWxkQWdncmVnYXRpb25UeXBlLlF0cixcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19RVUFSVDFdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdWFydDEsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfUVVBUlQzXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuUXVhcnQzLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX1NFQ09ORF06IEZpZWxkQWdncmVnYXRpb25UeXBlLlNlY29uZCxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19TS0VXTkVTU106IEZpZWxkQWdncmVnYXRpb25UeXBlLlNrZXduZXNzLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX1NUREVWXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuU3RkZXYsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfU1RERVZQXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuU3RkZXZwLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX1NVTV06IEZpZWxkQWdncmVnYXRpb25UeXBlLlN1bSxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLlRSVU5DX0RBWV06IEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jRGF5LFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuVFJVTkNfSE9VUl06IEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jSG91cixcclxuICAgIFtFbnVtcy5BZ2dUeXBlLlRSVU5DX01JTlVURV06IEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTWludXRlLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuVFJVTkNfTU9OVEhdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY01vbnRoLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuVFJVTkNfUVRSXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNRdHIsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5UUlVOQ19TRUNPTkRdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1NlY29uZCxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLlRSVU5DX1dFRUtdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1dlZWssXHJcbiAgICBbRW51bXMuQWdnVHlwZS5UUlVOQ19ZRUFSXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNZZWFyLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX1VTRVJdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Vc2VyLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX1ZBUl06IEZpZWxkQWdncmVnYXRpb25UeXBlLlZhcixcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19WQVJQXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuVmFycCxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19XRUVLXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuV2VlayxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19XRUVLREFZXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuV2Vla2RheSxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19ZRUFSXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuWWVhcixcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBmaWVsZFJvbGVUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8RW51bXMuRmllbGRSb2xlLCBGaWVsZFJvbGVUeXBlPih7XHJcbiAgICBbRW51bXMuRmllbGRSb2xlLlJPTEVfRElNRU5TSU9OXTogRmllbGRSb2xlVHlwZS5EaW1lbnNpb24sXHJcbiAgICBbRW51bXMuRmllbGRSb2xlLlJPTEVfTUVBU1VSRV06IEZpZWxkUm9sZVR5cGUuTWVhc3VyZVxyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIHBhcmFtZXRlclR5cGVzRG9tYWluVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEVudW1zLlBhcmFtZXRlclR5cGVzRG9tYWluVHlwZSwgRG9tYWluUmVzdHJpY3Rpb25UeXBlPih7XHJcbiAgICBbRW51bXMuUGFyYW1ldGVyVHlwZXNEb21haW5UeXBlLkRvbWFpbl9BbnldOiBEb21haW5SZXN0cmljdGlvblR5cGUuQWxsLFxyXG4gICAgW0VudW1zLlBhcmFtZXRlclR5cGVzRG9tYWluVHlwZS5Eb21haW5fTGlzdF06IERvbWFpblJlc3RyaWN0aW9uVHlwZS5MaXN0LFxyXG4gICAgW0VudW1zLlBhcmFtZXRlclR5cGVzRG9tYWluVHlwZS5Eb21haW5fUmFuZ2VdOiBEb21haW5SZXN0cmljdGlvblR5cGUuUmFuZ2UsXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZGF0ZVN0ZXBQZXJpb2QgPSBuZXcgRW51bUNvbnZlcnRlcjxFbnVtcy5EYXRlUGVyaW9kVHlwZSwgRGF0ZVN0ZXBQZXJpb2Q+KHtcclxuICAgIFtFbnVtcy5EYXRlUGVyaW9kVHlwZS5QZXJpb2RZZWFyXTogRGF0ZVN0ZXBQZXJpb2QuWWVhcnMsXHJcbiAgICBbRW51bXMuRGF0ZVBlcmlvZFR5cGUuUGVyaW9kUXVhcnRlcl06IERhdGVTdGVwUGVyaW9kLlF1YXJ0ZXJzLFxyXG4gICAgW0VudW1zLkRhdGVQZXJpb2RUeXBlLlBlcmlvZE1vbnRoXTogRGF0ZVN0ZXBQZXJpb2QuTW9udGhzLFxyXG4gICAgW0VudW1zLkRhdGVQZXJpb2RUeXBlLlBlcmlvZFdlZWtdOiBEYXRlU3RlcFBlcmlvZC5XZWVrcyxcclxuICAgIFtFbnVtcy5EYXRlUGVyaW9kVHlwZS5QZXJpb2REYXldOiBEYXRlU3RlcFBlcmlvZC5EYXlzLFxyXG4gICAgW0VudW1zLkRhdGVQZXJpb2RUeXBlLlBlcmlvZEhvdXJdOiBEYXRlU3RlcFBlcmlvZC5Ib3VycyxcclxuICAgIFtFbnVtcy5EYXRlUGVyaW9kVHlwZS5QZXJpb2RNaW51dGVdOiBEYXRlU3RlcFBlcmlvZC5NaW51dGVzLFxyXG4gICAgW0VudW1zLkRhdGVQZXJpb2RUeXBlLlBlcmlvZFNlY29uZF06IERhdGVTdGVwUGVyaW9kLlNlY29uZHNcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRlUmFuZ2VUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8RW51bXMuRmlsdGVyc1JlbGF0aXZlRGF0ZVJhbmdlVHlwZSwgRGF0ZVJhbmdlVHlwZT4oe1xyXG4gICAgW0VudW1zLkZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGUuUmFuZ2VDdXJyZW50XTogRGF0ZVJhbmdlVHlwZS5DdXJyZW50LFxyXG4gICAgW0VudW1zLkZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGUuUmFuZ2VDdXJyZW50VG9EYXRlXTogRGF0ZVJhbmdlVHlwZS5Ub0RhdGUsXHJcbiAgICBbRW51bXMuRmlsdGVyc1JlbGF0aXZlRGF0ZVJhbmdlVHlwZS5SYW5nZUxhc3QxXTogRGF0ZVJhbmdlVHlwZS5MYXN0LFxyXG4gICAgW0VudW1zLkZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGUuUmFuZ2VMYXN0Tl06IERhdGVSYW5nZVR5cGUuTGFzdE4sXHJcbiAgICBbRW51bXMuRmlsdGVyc1JlbGF0aXZlRGF0ZVJhbmdlVHlwZS5SYW5nZU5leHQxXTogRGF0ZVJhbmdlVHlwZS5OZXh0LFxyXG4gICAgW0VudW1zLkZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGUuUmFuZ2VOZXh0Tl06IERhdGVSYW5nZVR5cGUuTmV4dE5cclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBmaWx0ZXJEb21haW5UeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8RW51bXMuRmlsdGVyc0RvbWFpblR5cGUsIEZpbHRlckRvbWFpblR5cGU+ICh7XHJcbiAgICBbRW51bXMuRmlsdGVyc0RvbWFpblR5cGUuUmVsZXZhbnRdOiBGaWx0ZXJEb21haW5UeXBlLlJlbGV2YW50LFxyXG4gICAgW0VudW1zLkZpbHRlcnNEb21haW5UeXBlLkRhdGFiYXNlXTogRmlsdGVyRG9tYWluVHlwZS5EYXRhYmFzZVxyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQXBpVG9QcmVzTGF5ZXJFbnVtTWFwcGluZ3Mge1xyXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyVXBkYXRlVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEZpbHRlclVwZGF0ZVR5cGUsIEVudW1zLkZpbHRlclVwZGF0ZVR5cGU+ICh7XHJcbiAgICBbRmlsdGVyVXBkYXRlVHlwZS5BZGRdOiBFbnVtcy5GaWx0ZXJVcGRhdGVUeXBlLkFERCxcclxuICAgIFtGaWx0ZXJVcGRhdGVUeXBlLkFsbF06IEVudW1zLkZpbHRlclVwZGF0ZVR5cGUuQUxMLFxyXG4gICAgW0ZpbHRlclVwZGF0ZVR5cGUuUmVwbGFjZV06IEVudW1zLkZpbHRlclVwZGF0ZVR5cGUuUkVQTEFDRSxcclxuICAgIFtGaWx0ZXJVcGRhdGVUeXBlLlJlbW92ZV06IEVudW1zLkZpbHRlclVwZGF0ZVR5cGUuUkVNT1ZFXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgbnVsbE9wdGlvbiA9IG5ldyBFbnVtQ29udmVydGVyPEZpbHRlck51bGxPcHRpb24sIEVudW1zLkZpbHRlcnNRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcz4gKHtcclxuICAgIFtGaWx0ZXJOdWxsT3B0aW9uLkFsbFZhbHVlc106IEVudW1zLkZpbHRlcnNRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcy5BbGwsXHJcbiAgICBbRmlsdGVyTnVsbE9wdGlvbi5Ob25OdWxsVmFsdWVzXTogRW51bXMuRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLk5vbk51bGwsXHJcbiAgICBbRmlsdGVyTnVsbE9wdGlvbi5OdWxsVmFsdWVzXTogRW51bXMuRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLk51bGxcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBmaWx0ZXJEb21haW5UeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8RmlsdGVyRG9tYWluVHlwZSwgRW51bXMuRmlsdGVyc0RvbWFpblR5cGU+ICh7XHJcbiAgICBbRmlsdGVyRG9tYWluVHlwZS5SZWxldmFudF06IEVudW1zLkZpbHRlcnNEb21haW5UeXBlLlJlbGV2YW50LFxyXG4gICAgW0ZpbHRlckRvbWFpblR5cGUuRGF0YWJhc2VdOiBFbnVtcy5GaWx0ZXJzRG9tYWluVHlwZS5EYXRhYmFzZVxyXG4gIH0pO1xyXG59XHJcbi8qIHRzbGludDplbmFibGU6dHlwZWRlZiAqL1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9FbnVtTWFwcGluZ3MudHNcbiAqKi8iLCIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vL1xyXG4vLyBUaGlzIGZpbGUgaXMgdGhlIGNvcHlyaWdodGVkIHByb3BlcnR5IG9mIFRhYmxlYXUgU29mdHdhcmUgYW5kIGlzIHByb3RlY3RlZFxyXG4vLyBieSByZWdpc3RlcmVkIHBhdGVudHMgYW5kIG90aGVyIGFwcGxpY2FibGUgVS5TLiBhbmQgaW50ZXJuYXRpb25hbCBsYXdzIGFuZFxyXG4vLyByZWd1bGF0aW9ucy5cclxuLy9cclxuLy8gVW5saWNlbnNlZCB1c2Ugb2YgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBpcyBwcm9oaWJpdGVkLiBQbGVhc2UgcmVmZXIgdG9cclxuLy8gdGhlIE5PVElDRVMudHh0IGZpbGUgZm9yIGZ1cnRoZXIgZGV0YWlscy5cclxuLy9cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gV0FSTklORzogQ29tcHV0ZXIgZ2VuZXJhdGVkIGZpbGUuICBEbyBub3QgaGFuZCBtb2RpZnkuXHJcbi8vIERFUEVORFMgT046IFsnLi4vdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWNvcmUvbm9kZV9tb2R1bGVzL0B0YWJsZWF1L3ByZXNsYXllci1jb2RlZ2VuLXR5cGVzY3JpcHQvdGVtcGxhdGVzL2VudW0tdHMudGVtcGxhdGUnLCB1Jy4uL3R5cGVzY3JpcHQvanMtYXBpL2FwaS1jb3JlL3RlbXAtcHJlcy1sYXllci9hbGwtZW51bXMuZGF0YSddXHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRGF0YVNjYWxpbmcge1xyXG5cclxuICAvLyBcclxuICBTQ0FMSU5HX05PTkUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIFNDQUxJTkdfU1RBTkRBUkRJWkVEID0gJ3N0YW5kYXJkaXplZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNDQUxJTkdfTk9STUFMSVpFRCA9ICdub3JtYWxpemVkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRm9yZWNhc3RNb2RlbFR5cGUge1xyXG5cclxuICAvLyBcclxuICBGb3JlY2FzdE1vZGVsVHlwZUF1dG9TZWFzb24gPSAnYXV0by1zZWFzb24nLFxyXG5cclxuICAvLyBcclxuICBGb3JlY2FzdE1vZGVsVHlwZUF1dG8gPSAnYXV0bycsXHJcblxyXG4gIC8vIFxyXG4gIEZvcmVjYXN0TW9kZWxUeXBlQ3VzdG9tID0gJ2N1c3RvbSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZvcmVjYXN0UmFuZ2VUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRm9yZWNhc3RSYW5nZVR5cGVBdXRvID0gJ2F1dG8nLFxyXG5cclxuICAvLyBcclxuICBGb3JlY2FzdFJhbmdlVHlwZU5leHQgPSAnbmV4dCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcmVjYXN0UmFuZ2VUeXBlRW5kT2YgPSAnZW5kLW9mJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRm9yZWNhc3RTdGF0dXMge1xyXG5cclxuICAvLyBcclxuICBGU19WQUxJRCA9ICdmcy12YWxpZCcsXHJcblxyXG4gIC8vIFxyXG4gIEZTX0lOVkFMSURfREFURVRJTUUgPSAnZnMtaW52YWxpZC1kYXRldGltZScsXHJcblxyXG4gIC8vIFxyXG4gIEZTX0lOVkFMSURfUkVTUE9OU0UgPSAnZnMtaW52YWxpZC1yZXNwb25zZScsXHJcblxyXG4gIC8vIFxyXG4gIEZTX05FRURfTU9SRV9EQVRBID0gJ2ZzLW5lZWQtbW9yZS1kYXRhJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfVElNRV9TRVJJRVNfVE9PX1NIT1JUID0gJ2ZzLXRpbWUtc2VyaWVzLXRvby1zaG9ydCcsXHJcblxyXG4gIC8vIFxyXG4gIEZTX1RJTUVfU0VSSUVTX0lSUkVHVUxBUiA9ICdmcy10aW1lLXNlcmllcy1pcnJlZ3VsYXInLFxyXG5cclxuICAvLyBcclxuICBGU19OVUxMX0RBVEVUSU1FID0gJ2ZzLW51bGwtZGF0ZXRpbWUnLFxyXG5cclxuICAvLyBcclxuICBGU19OVUxMX1JFU1BPTlNFID0gJ2ZzLW51bGwtcmVzcG9uc2UnLFxyXG5cclxuICAvLyBcclxuICBGU19NRVRBREFUQV9JTlZBTElEID0gJ2ZzLW1ldGFkYXRhLWludmFsaWQnLFxyXG5cclxuICAvLyBcclxuICBGU19OT19SRVNQT05TRSA9ICdmcy1uby1yZXNwb25zZScsXHJcblxyXG4gIC8vIFxyXG4gIEZTX0VYQ0VTU19EQVRBID0gJ2ZzLWV4Y2Vzcy1kYXRhJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfRVhDRVNTX1BBUlRJVElPTlMgPSAnZnMtZXhjZXNzLXBhcnRpdGlvbnMnLFxyXG5cclxuICAvLyBcclxuICBGU19ESU1FTlNJT05fSU5WQUxJRCA9ICdmcy1kaW1lbnNpb24taW52YWxpZCcsXHJcblxyXG4gIC8vIFxyXG4gIEZTX1RBQkxFQ0FMQ19JTlZBTElEID0gJ2ZzLXRhYmxlY2FsYy1pbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfVElNRV9TRVJJRVNfVE9PX0lSUkVHVUxBUiA9ICdmcy10aW1lLXNlcmllcy10b28taXJyZWd1bGFyJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfQUdHUkVHQVRFX0ZJTFRFUiA9ICdmcy1hZ2dyZWdhdGUtZmlsdGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfRElTQUdHUkVHQVRFX1JFU1BPTlNFID0gJ2ZzLWRpc2FnZ3JlZ2F0ZS1yZXNwb25zZScsXHJcblxyXG4gIC8vIFxyXG4gIEZTX1BFUkNFTlRBR0VfSU5WQUxJRCA9ICdmcy1wZXJjZW50YWdlLWludmFsaWQnLFxyXG5cclxuICAvLyBcclxuICBGU19UT1RBTF9JTlZBTElEID0gJ2ZzLXRvdGFsLWludmFsaWQnLFxyXG5cclxuICAvLyBcclxuICBGU19FWENFU1NfREFURVRJTUUgPSAnZnMtZXhjZXNzLWRhdGV0aW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfREFURV9BR0dfSU5DT01QQVRJQkxFID0gJ2ZzLWRhdGUtYWdnLWluY29tcGF0aWJsZScsXHJcblxyXG4gIC8vIFxyXG4gIEZTX1RJTUVfU0VSSUVTX05PVF9QT1NJVElWRSA9ICdmcy10aW1lLXNlcmllcy1ub3QtcG9zaXRpdmUnLFxyXG5cclxuICAvLyBcclxuICBGU19SRVFVRVNURURfTU9ERUxfSU5WQUxJRCA9ICdmcy1yZXF1ZXN0ZWQtbW9kZWwtaW52YWxpZCcsXHJcblxyXG4gIC8vIFxyXG4gIEZTX1RPT19TSE9SVF9GT1JfU0VBU09OID0gJ2ZzLXRvby1zaG9ydC1mb3Itc2Vhc29uJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfUkVRVUVTVEVEX01PREVMX1VOU1RBQkxFID0gJ2ZzLXJlcXVlc3RlZC1tb2RlbC11bnN0YWJsZScsXHJcblxyXG4gIC8vIFxyXG4gIEZTX1VOREVGSU5FRCA9ICdmcy11bmRlZmluZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTdHlsZUF0dHJpYnV0ZSB7XHJcblxyXG4gIC8vIFxyXG4gIHNhQWx0ZXJuYXRlVGV4dCA9ICdzYUFsdGVybmF0ZVRleHQnLFxyXG5cclxuICAvLyBcclxuICBzYUFsdE1hcmtDb2xvciA9ICdzYUFsdE1hcmtDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhQXNwZWN0ID0gJ3NhQXNwZWN0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FBdXRvU3VidGl0bGUgPSAnc2FBdXRvU3VidGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBzYUJhY2tncm91bmRDb2xvciA9ICdzYUJhY2tncm91bmRDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhQmFja2dyb3VuZFRyYW5zcGFyZW5jeSA9ICdzYUJhY2tncm91bmRUcmFuc3BhcmVuY3knLFxyXG5cclxuICAvLyBcclxuICBzYUJhbmRTaXplID0gJ3NhQmFuZFNpemUnLFxyXG5cclxuICAvLyBcclxuICBzYUJhbmRDb2xvciA9ICdzYUJhbmRDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhQmFuZExldmVsID0gJ3NhQmFuZExldmVsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb2R5VHlwZSA9ICdzYUJvZHlUeXBlJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJDb2xvciA9ICdzYUJvcmRlckNvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJDb2xvclRvcCA9ICdzYUJvcmRlckNvbG9yVG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJDb2xvclJpZ2h0ID0gJ3NhQm9yZGVyQ29sb3JSaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhQm9yZGVyQ29sb3JCb3R0b20gPSAnc2FCb3JkZXJDb2xvckJvdHRvbScsXHJcblxyXG4gIC8vIFxyXG4gIHNhQm9yZGVyQ29sb3JMZWZ0ID0gJ3NhQm9yZGVyQ29sb3JMZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJTdHlsZSA9ICdzYUJvcmRlclN0eWxlJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJTdHlsZVRvcCA9ICdzYUJvcmRlclN0eWxlVG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJTdHlsZVJpZ2h0ID0gJ3NhQm9yZGVyU3R5bGVSaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhQm9yZGVyU3R5bGVCb3R0b20gPSAnc2FCb3JkZXJTdHlsZUJvdHRvbScsXHJcblxyXG4gIC8vIFxyXG4gIHNhQm9yZGVyU3R5bGVMZWZ0ID0gJ3NhQm9yZGVyU3R5bGVMZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJXaWR0aCA9ICdzYUJvcmRlcldpZHRoJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJXaWR0aFRvcCA9ICdzYUJvcmRlcldpZHRoVG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJXaWR0aFJpZ2h0ID0gJ3NhQm9yZGVyV2lkdGhSaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhQm9yZGVyV2lkdGhCb3R0b20gPSAnc2FCb3JkZXJXaWR0aEJvdHRvbScsXHJcblxyXG4gIC8vIFxyXG4gIHNhQm9yZGVyV2lkdGhMZWZ0ID0gJ3NhQm9yZGVyV2lkdGhMZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3hwbG90U3R5bGUgPSAnc2FCb3hwbG90U3R5bGUnLFxyXG5cclxuICAvLyBcclxuICBzYUJyZWFrT25TcGVjaWFsID0gJ3NhQnJlYWtPblNwZWNpYWwnLFxyXG5cclxuICAvLyBcclxuICBzYUNlbGwgPSAnc2FDZWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FDZWxsVyA9ICdzYUNlbGxXJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FDZWxsSCA9ICdzYUNlbGxIJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FDZWxsUSA9ICdzYUNlbGxRJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FDZWxsUU1hcmsgPSAnc2FDZWxsUU1hcmsnLFxyXG5cclxuICAvLyBcclxuICBzYUNvbG9yID0gJ3NhQ29sb3InLFxyXG5cclxuICAvLyBcclxuICBzYUNvbG9yTW9kZSA9ICdzYUNvbG9yTW9kZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhQ29sTGV2ZWxzID0gJ3NhQ29sTGV2ZWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FDb2xWZXJ0TGV2ZWxzID0gJ3NhQ29sVmVydExldmVscycsXHJcblxyXG4gIC8vIFxyXG4gIHNhQ29sSG9yaXpIZWlnaHQgPSAnc2FDb2xIb3JpekhlaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhQ29sVmVydEhlaWdodCA9ICdzYUNvbFZlcnRIZWlnaHQnLFxyXG5cclxuICAvLyBEZXByZWNhdGVkXHJcbiAgc2FDb2xIZWlnaHQgPSAnc2FDb2xIZWlnaHQnLFxyXG5cclxuICAvLyBcclxuICBzYUNvbFdpZHRoID0gJ3NhQ29sV2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYUNvbnRlbnQgPSAnc2FDb250ZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FEaXNwbGF5RmllbGRMYWJlbHMgPSAnc2FEaXNwbGF5RmllbGRMYWJlbHMnLFxyXG5cclxuICAvLyBcclxuICBzYURpc3BsYXlIZWFkZXIgPSAnc2FEaXNwbGF5SGVhZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FEaXNwbGF5QWx0ZXJuYXRlVGV4dCA9ICdzYURpc3BsYXlBbHRlcm5hdGVUZXh0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FEaXZMZXZlbCA9ICdzYURpdkxldmVsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FFbmFibGVkID0gJ3NhRW5hYmxlZCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhRmlsbEFib3ZlQ29sb3IgPSAnc2FGaWxsQWJvdmVDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhRmlsbEJlbG93Q29sb3IgPSAnc2FGaWxsQmVsb3dDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhRmlsbENvbG9yID0gJ3NhRmlsbENvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FGb2dCR0NvbG9yID0gJ3NhRm9nQkdDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhRm9nRGVzYXR1cmF0aW9uV2l0aG91dFNlbGVjdGlvbiA9ICdzYUZvZ0Rlc2F0dXJhdGlvbldpdGhvdXRTZWxlY3Rpb24nLFxyXG5cclxuICAvLyBcclxuICBzYUZvZ0Rlc2F0dXJhdGlvbldpdGhTZWxlY3Rpb24gPSAnc2FGb2dEZXNhdHVyYXRpb25XaXRoU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FGb250ID0gJ3NhRm9udCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhRm9udEZhbWlseSA9ICdzYUZvbnRGYW1pbHknLFxyXG5cclxuICAvLyBcclxuICBzYUZvbnRTaXplID0gJ3NhRm9udFNpemUnLFxyXG5cclxuICAvLyBcclxuICBzYUZvbnRTdHlsZSA9ICdzYUZvbnRTdHlsZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhRm9udFdlaWdodCA9ICdzYUZvbnRXZWlnaHQnLFxyXG5cclxuICAvLyBcclxuICBzYUdlb2dyYXBoaWNBcmVhVHlwZSA9ICdzYUdlb2dyYXBoaWNBcmVhVHlwZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhSEFsaWduID0gJ3NhSEFsaWduJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FIYWxvQ29sb3IgPSAnc2FIYWxvQ29sb3InLFxyXG5cclxuICAvLyBcclxuICBzYUhhbG9Db2xvclNlbGVjdGVkID0gJ3NhSGFsb0NvbG9yU2VsZWN0ZWQnLFxyXG5cclxuICAvLyBcclxuICBzYUhhc0ZpbGwgPSAnc2FIYXNGaWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FIYXNIYWxvID0gJ3NhSGFzSGFsbycsXHJcblxyXG4gIC8vIERlcHJlY2F0ZWRcclxuICBzYUhhc0xhYmVsID0gJ3NhSGFzTGFiZWwnLFxyXG5cclxuICAvLyBcclxuICBzYUhhc1N0cm9rZSA9ICdzYUhhc1N0cm9rZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhSGVpZ2h0ID0gJ3NhSGVpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FIZWlnaHRIZWFkZXIgPSAnc2FIZWlnaHRIZWFkZXInLFxyXG5cclxuICAvLyBcclxuICBzYUhpZ2hsaWdodExlZ2VuZCA9ICdzYUhpZ2hsaWdodExlZ2VuZCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhSG5heGlzID0gJ3NhSG5heGlzJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FIbmxhYmVsID0gJ3NhSG5sYWJlbCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhSW5Ub29sdGlwID0gJ3NhSW5Ub29sdGlwJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FMaW5lRW5kID0gJ3NhTGluZUVuZCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhTGluZUVuZFNpemUgPSAnc2FMaW5lRW5kU2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhTGluZUludGVycG9sYXRpb24gPSAnc2FMaW5lSW50ZXJwb2xhdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIHNhTGluZU1hcmtlclBvc2l0aW9uID0gJ3NhTGluZU1hcmtlclBvc2l0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FMaW5lUGF0dGVybiA9ICdzYUxpbmVQYXR0ZXJuJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FMaW5lUGF0dGVybk9ubHkgPSAnc2FMaW5lUGF0dGVybk9ubHknLFxyXG5cclxuICAvLyBcclxuICBzYUxpbmVWaXNpYmlsaXR5ID0gJ3NhTGluZVZpc2liaWxpdHknLFxyXG5cclxuICAvLyBcclxuICBzYU1hcCA9ICdzYU1hcCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFwU3R5bGUgPSAnc2FNYXBTdHlsZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFyZ2luID0gJ3NhTWFyZ2luJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNYXJnaW5Ub3AgPSAnc2FNYXJnaW5Ub3AnLFxyXG5cclxuICAvLyBcclxuICBzYU1hcmdpblJpZ2h0ID0gJ3NhTWFyZ2luUmlnaHQnLFxyXG5cclxuICAvLyBcclxuICBzYU1hcmdpbkJvdHRvbSA9ICdzYU1hcmdpbkJvdHRvbScsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFyZ2luTGVmdCA9ICdzYU1hcmdpbkxlZnQnLFxyXG5cclxuICAvLyBcclxuICBzYU1hcmtDb2xvciA9ICdzYU1hcmtDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFya1RyYW5zcGFyZW5jeSA9ICdzYU1hcmtUcmFuc3BhcmVuY3knLFxyXG5cclxuICAvLyBcclxuICBzYU1hcmtMYWJlbHNTaG93ID0gJ3NhTWFya0xhYmVsc1Nob3cnLFxyXG5cclxuICAvLyBcclxuICBzYVJ1bm5pbmdPcmRlckxhYmVsc1Nob3cgPSAnc2FSdW5uaW5nT3JkZXJMYWJlbHNTaG93JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNYXJrTGFiZWxzTW9kZSA9ICdzYU1hcmtMYWJlbHNNb2RlJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNYXJrTGFiZWxzQ3VsbCA9ICdzYU1hcmtMYWJlbHNDdWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNYXJrTGFiZWxzTGluZUVuZEZpcnN0ID0gJ3NhTWFya0xhYmVsc0xpbmVFbmRGaXJzdCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFya0xhYmVsc0xpbmVFbmRMYXN0ID0gJ3NhTWFya0xhYmVsc0xpbmVFbmRMYXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNYXJrTGFiZWxzUmFuZ2VNaW4gPSAnc2FNYXJrTGFiZWxzUmFuZ2VNaW4nLFxyXG5cclxuICAvLyBcclxuICBzYU1hcmtMYWJlbHNSYW5nZU1heCA9ICdzYU1hcmtMYWJlbHNSYW5nZU1heCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFya0xhYmVsc1JhbmdlU2NvcGUgPSAnc2FNYXJrTGFiZWxzUmFuZ2VTY29wZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFya0xhYmVsc1JhbmdlRmllbGQgPSAnc2FNYXJrTGFiZWxzUmFuZ2VGaWVsZCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFya01hcmtlcnNNb2RlID0gJ3NhTWFya01hcmtlcnNNb2RlJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNYXhIZWlnaHQgPSAnc2FNYXhIZWlnaHQnLFxyXG5cclxuICAvLyBcclxuICBzYU1heEZvbnRTaXplID0gJ3NhTWF4Rm9udFNpemUnLFxyXG5cclxuICAvLyBcclxuICBzYU1heFN0cm9rZVdpZHRoID0gJ3NhTWF4U3Ryb2tlV2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYU1heFdpZHRoID0gJ3NhTWF4V2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYU1pZFN0cm9rZVdpZHRoID0gJ3NhTWlkU3Ryb2tlV2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYU1pbkhlaWdodCA9ICdzYU1pbkhlaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWluRm9udFNpemUgPSAnc2FNaW5Gb250U2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWluTGVuZ3RoID0gJ3NhTWluTGVuZ3RoJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNaW5NYXBTaXplID0gJ3NhTWluTWFwU2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWluU2l6ZSA9ICdzYU1pblNpemUnLFxyXG5cclxuICAvLyBcclxuICBzYU1pblN0cm9rZVdpZHRoID0gJ3NhTWluU3Ryb2tlV2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYU1pbldpZHRoID0gJ3NhTWluV2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYU5vbmhpZ2hsaWdodENvbG9yID0gJ3NhTm9uaGlnaGxpZ2h0Q29sb3InLFxyXG5cclxuICAvLyBcclxuICBzYU9taXRPblNwZWNpYWwgPSAnc2FPbWl0T25TcGVjaWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FPcGFjaXR5ID0gJ3NhT3BhY2l0eScsXHJcblxyXG4gIC8vIFxyXG4gIHNhT3JpZW50YXRpb24gPSAnc2FPcmllbnRhdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIHNhUGFkZGluZyA9ICdzYVBhZGRpbmcnLFxyXG5cclxuICAvLyBcclxuICBzYVBhZGRpbmdUb3AgPSAnc2FQYWRkaW5nVG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FQYWRkaW5nUmlnaHQgPSAnc2FQYWRkaW5nUmlnaHQnLFxyXG5cclxuICAvLyBcclxuICBzYVBhZGRpbmdCb3R0b20gPSAnc2FQYWRkaW5nQm90dG9tJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FQYWRkaW5nTGVmdCA9ICdzYVBhZGRpbmdMZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FQYWxldHRlID0gJ3NhUGFsZXR0ZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhUmVuZGVyRm9sZFJldmVyc2VkID0gJ3NhUmVuZGVyRm9sZFJldmVyc2VkJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FSZXZlcnNlUGFsZXR0ZSA9ICdzYVJldmVyc2VQYWxldHRlJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FSb3VuZGluZyA9ICdzYVJvdW5kaW5nJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FSb3dIb3JpekxldmVscyA9ICdzYVJvd0hvcml6TGV2ZWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FSb3dIb3JpeldpZHRoID0gJ3NhUm93SG9yaXpXaWR0aCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhUm93TGV2ZWxzID0gJ3NhUm93TGV2ZWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FSb3dWZXJ0V2lkdGggPSAnc2FSb3dWZXJ0V2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYVNlcGFyYXRvciA9ICdzYVNlcGFyYXRvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhU2hhcGUgPSAnc2FTaGFwZScsXHJcblxyXG4gIC8vIERlcHJlY2F0ZWRcclxuICBzYVNob3dMYWJlbHMgPSAnc2FTaG93TGFiZWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FTaXplID0gJ3NhU2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhU2l6ZUJhciA9ICdzYVNpemVCYXInLFxyXG5cclxuICAvLyBcclxuICBzYVNtYXJ0QXV0b0FsaWdubWVudCA9ICdzYVNtYXJ0QXV0b0FsaWdubWVudCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhU3BhY2UgPSAnc2FTcGFjZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhU3Ryb2tlQ29sb3IgPSAnc2FTdHJva2VDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhU3Ryb2tlU2l6ZSA9ICdzYVN0cm9rZVNpemUnLFxyXG5cclxuICAvLyBcclxuICBzYVN1YnRpdGxlID0gJ3NhU3VidGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBzYVRleHRBbGlnbiA9ICdzYVRleHRBbGlnbicsXHJcblxyXG4gIC8vIFxyXG4gIHNhVGV4dEFsaWduRGVmYXVsdCA9ICdzYVRleHRBbGlnbkRlZmF1bHQnLFxyXG5cclxuICAvLyBcclxuICBzYVRleHREZWNvcmF0aW9uID0gJ3NhVGV4dERlY29yYXRpb24nLFxyXG5cclxuICAvLyBcclxuICBzYVRleHRJbmRlbnQgPSAnc2FUZXh0SW5kZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FUZXh0T3JpZW50YXRpb24gPSAnc2FUZXh0T3JpZW50YXRpb24nLFxyXG5cclxuICAvLyBcclxuICBzYVRleHRGb3JtYXQgPSAnc2FUZXh0Rm9ybWF0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FUaWNrQ29sb3IgPSAnc2FUaWNrQ29sb3InLFxyXG5cclxuICAvLyBcclxuICBzYVRpY2tMZW5ndGggPSAnc2FUaWNrTGVuZ3RoJyxcclxuXHJcbiAgLy8gRGVwcmVjYXRlZFxyXG4gIHNhVGlja1NwYWNpbmcgPSAnc2FUaWNrU3BhY2luZycsXHJcblxyXG4gIC8vIFxyXG4gIHNhVGl0bGUgPSAnc2FUaXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhVG90YWxMYWJlbCA9ICdzYVRvdGFsTGFiZWwnLFxyXG5cclxuICAvLyBcclxuICBzYVZBbGlnbiA9ICdzYVZBbGlnbicsXHJcblxyXG4gIC8vIFxyXG4gIHNhVmVydGljYWxBbGlnbiA9ICdzYVZlcnRpY2FsQWxpZ24nLFxyXG5cclxuICAvLyBcclxuICBzYVZlcnRpY2FsQWxpZ25EZWZhdWx0ID0gJ3NhVmVydGljYWxBbGlnbkRlZmF1bHQnLFxyXG5cclxuICAvLyBcclxuICBzYVZuYXhpcyA9ICdzYVZuYXhpcycsXHJcblxyXG4gIC8vIFxyXG4gIHNhVm5sYWJlbCA9ICdzYVZubGFiZWwnLFxyXG5cclxuICAvLyBcclxuICBzYVdhcm5PblNwZWNpYWwgPSAnc2FXYXJuT25TcGVjaWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FXYXNob3V0ID0gJ3NhV2FzaG91dCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhV2hpc2tlckVuZCA9ICdzYVdoaXNrZXJFbmQnLFxyXG5cclxuICAvLyBcclxuICBzYVdoaXNrZXJTdHJva2VDb2xvciA9ICdzYVdoaXNrZXJTdHJva2VDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhV2hpc2tlclN0cm9rZVNpemUgPSAnc2FXaGlza2VyU3Ryb2tlU2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhV2lkdGggPSAnc2FXaWR0aCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhV2lkdGhIZWFkZXIgPSAnc2FXaWR0aEhlYWRlcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhV3JhcCA9ICdzYVdyYXAnLFxyXG5cclxuICAvLyBcclxuICBzYVpvb20gPSAnc2Fab29tJyxcclxuXHJcbiAgLy8gU3BlY2lhbCBhdHRyaWJ1dGVzIHVzZWQgZm9yIG1hdGNoaW5nXHJcbiAgc2FOb25lID0gJ3NhTm9uZScsXHJcblxyXG4gIC8vIFNwZWNpYWwgYXR0cmlidXRlcyB1c2VkIGZvciBtYXRjaGluZ1xyXG4gIHNhQW55ID0gJ3NhQW55J1xyXG59XHJcblxyXG4vLyBsb3dlc3QgYml0IG9mIGVudW0gdmFsdWUgZGVub3RlcyB0d28tdG9uZSBzdHlsZXM7IG5ld2x5IGFkZGVkIHN0eWxlcyBzaG91bGQgZm9sbG93IHRoaXMgcGF0dGVybi5cclxuZXhwb3J0IGVudW0gQm94cGxvdFN0eWxlIHtcclxuXHJcbiAgLy8gbWFzayBmb3IgY2hlY2tpbmcgaWYgYSBzdHlsZSBpcyB0d28tdG9uZVxyXG4gIEJveHBsb3RTdHlsZVR3b1RvbmUgPSAndHdvLXRvbmUnLFxyXG5cclxuICAvLyBcclxuICBCb3hwbG90U3R5bGVNb2Rlcm4gPSAnbW9kZXJuJyxcclxuXHJcbiAgLy8gXHJcbiAgQm94cGxvdFN0eWxlR2xhc3MgPSAnZ2xhc3MnLFxyXG5cclxuICAvLyBcclxuICBCb3hwbG90U3R5bGVDbGFzc2ljID0gJ2NsYXNzaWMnLFxyXG5cclxuICAvLyBcclxuICBCb3hwbG90U3R5bGVDbGFzc2ljVHdvVG9uZSA9ICdjbGFzc2ljLXR3by10b25lJ1xyXG59XHJcblxyXG4vLyB1c2VkIGZvciBib3hwbG90cyBhbmQgcHJlZGljdGlvbiBiYW5kIHdoaXNrZXJzXHJcbmV4cG9ydCBlbnVtIFdoaXNrZXJFbmQge1xyXG5cclxuICAvLyBcclxuICBXaGlza2VyRW5kTm9uZSA9ICdub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgV2hpc2tlckVuZFNtYWxsID0gJ3NtYWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgV2hpc2tlckVuZExhcmdlID0gJ2xhcmdlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU3R5bGVFbGVtZW50IHtcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudEF4aXMgPSAnZWxlbWVudEF4aXMnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50Q2VsbCA9ICdlbGVtZW50Q2VsbCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREYXRhbGFiZWwgPSAnZWxlbWVudERhdGFsYWJlbCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREcm9wc3BvdCA9ICdlbGVtZW50RHJvcHNwb3QnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50SGVhZGVyID0gJ2VsZW1lbnRIZWFkZXInLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50RmllbGRMYWJlbCA9ICdlbGVtZW50RmllbGRMYWJlbCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRGaWVsZExhYmVsRGVjb3JhdGlvbiA9ICdlbGVtZW50RmllbGRMYWJlbERlY29yYXRpb24nLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50RmllbGRMYWJlbFNwYW5uZXIgPSAnZWxlbWVudEZpZWxkTGFiZWxTcGFubmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudExhYmVsID0gJ2VsZW1lbnRMYWJlbCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRNYXJrID0gJ2VsZW1lbnRNYXJrJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFBhbmUgPSAnZWxlbWVudFBhbmUnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50VGFibGUgPSAnZWxlbWVudFRhYmxlJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFdvcmtzaGVldCA9ICdlbGVtZW50V29ya3NoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudEJhc2VzaGVldCA9ICdlbGVtZW50QmFzZXNoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudERhc2hib2FyZCA9ICdlbGVtZW50RGFzaGJvYXJkJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFN0b3J5Ym9hcmQgPSAnZWxlbWVudFN0b3J5Ym9hcmQnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50Q2FwdGlvbiA9ICdlbGVtZW50Q2FwdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREcm9wbGluZSA9ICdlbGVtZW50RHJvcGxpbmUnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50UmVmbGluZSA9ICdlbGVtZW50UmVmbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRSZWZCYW5kID0gJ2VsZW1lbnRSZWZCYW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFJlZkJveHBsb3QgPSAnZWxlbWVudFJlZkJveHBsb3QnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50R3JpZGxpbmUgPSAnZWxlbWVudEdyaWRsaW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFplcm9saW5lID0gJ2VsZW1lbnRaZXJvbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRUcmVuZGxpbmUgPSAnZWxlbWVudFRyZW5kbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRUYWJsZURpdiA9ICdlbGVtZW50VGFibGVEaXYnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50SGVhZGVyRGl2ID0gJ2VsZW1lbnRIZWFkZXJEaXYnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50TWFwcGVkSW1hZ2UgPSAnZWxlbWVudE1hcHBlZEltYWdlJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudEFjdGlvbiA9ICdlbGVtZW50QWN0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFRpdGxlID0gJ2VsZW1lbnRUaXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRMZWdlbmQgPSAnZWxlbWVudExlZ2VuZCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRMZWdlbmRUaXRsZSA9ICdlbGVtZW50TGVnZW5kVGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50TGVnZW5kVGl0bGVUZXh0ID0gJ2VsZW1lbnRMZWdlbmRUaXRsZVRleHQnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50QXhpc1RpdGxlID0gJ2VsZW1lbnRBeGlzVGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50QW5ub3RhdGlvbiA9ICdlbGVtZW50QW5ub3RhdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREYXNoVGl0bGUgPSAnZWxlbWVudERhc2hUaXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREYXNoU3VidGl0bGUgPSAnZWxlbWVudERhc2hTdWJ0aXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREYXNoVGV4dCA9ICdlbGVtZW50RGFzaFRleHQnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50RGFzaFpvbmUgPSAnZWxlbWVudERhc2hab25lJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudERhc2hDb250YWluZXIgPSAnZWxlbWVudERhc2hDb250YWluZXInLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50U2Nyb2xsYmFyID0gJ2VsZW1lbnRTY3JvbGxiYXInLFxyXG5cclxuICAvLyBTdGF0aWMgb24vb2ZmIG1hcCBsYXllcnNcclxuICBlbGVtZW50TWFwTGF5ZXIgPSAnZWxlbWVudE1hcExheWVyJyxcclxuXHJcbiAgLy8gQ29udGFpbnMgd2FzaG91dFxyXG4gIGVsZW1lbnRNYXAgPSAnZWxlbWVudE1hcCcsXHJcblxyXG4gIC8vIEluaXRpYWxseSBmb3IgVXJiYW5NYXBwaW5nL0NsYXJpdGFzIGRhdGFcclxuICBlbGVtZW50TWFwRGF0YUxheWVyID0gJ2VsZW1lbnRNYXBEYXRhTGF5ZXInLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50UXVpY2tGaWx0ZXIgPSAnZWxlbWVudFF1aWNrRmlsdGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFF1aWNrRmlsdGVyVGl0bGUgPSAnZWxlbWVudFF1aWNrRmlsdGVyVGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50UGFyYW1ldGVyQ3RybCA9ICdlbGVtZW50UGFyYW1ldGVyQ3RybCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRQYXJhbWV0ZXJDdHJsVGl0bGUgPSAnZWxlbWVudFBhcmFtZXRlckN0cmxUaXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRQYWdlQ2FyZFRpdGxlID0gJ2VsZW1lbnRQYWdlQ2FyZFRpdGxlJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFN0b3J5RGVzY3JpcHRpb24gPSAnZWxlbWVudFN0b3J5RGVzY3JpcHRpb24nLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50U3RvcnlQb2ludENhcHRpb24gPSAnZWxlbWVudFN0b3J5UG9pbnRDYXB0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFN0b3J5VGl0bGUgPSAnZWxlbWVudFN0b3J5VGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50VG9vbHRpcCA9ICdlbGVtZW50VG9vbHRpcCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRBbGwgPSAnZWxlbWVudEFsbCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRQYWdlQ2FyZEJvZHkgPSAnZWxlbWVudFBhZ2VDYXJkQm9keScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREYXRhSGlnaGxpZ2h0ZXIgPSAnZWxlbWVudERhdGFIaWdobGlnaHRlcicsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREYXRhSGlnaGxpZ2h0ZXJUaXRsZSA9ICdlbGVtZW50RGF0YUhpZ2hsaWdodGVyVGl0bGUnLFxyXG5cclxuICAvLyBTcGVjaWFsIGVsZW1lbnRzIHVzZWQgZm9yIG1hdGNoaW5nIGFuZCBvcmdhbml6YXRpb25cclxuICBlbGVtZW50Tm9uZSA9ICdlbGVtZW50Tm9uZScsXHJcblxyXG4gIC8vIFNwZWNpYWwgZWxlbWVudHMgdXNlZCBmb3IgbWF0Y2hpbmcgYW5kIG9yZ2FuaXphdGlvblxyXG4gIGVsZW1lbnRBbnkgPSAnZWxlbWVudEFueScsXHJcblxyXG4gIC8vIFNwZWNpYWwgZWxlbWVudHMgdXNlZCBmb3IgbWF0Y2hpbmcgYW5kIG9yZ2FuaXphdGlvblxyXG4gIGVsZW1lbnRSb290ID0gJ2VsZW1lbnRSb290J1xyXG59XHJcblxyXG4vLyBEbyBub3QgbWVzcyB3aXRoIHRoZXNlIHZhbHVlcy4gVGhleSBhcmUgc29tZXRpbWVzIHVzZWQgYXMgYXJyYXkgaW5kZXhlcy9ib3VuZHNcclxuZXhwb3J0IGVudW0gU3R5bGVEYXRhQ2xhc3Mge1xyXG5cclxuICAvLyBcclxuICBkY05vcm1hbCA9ICdkY05vcm1hbCcsXHJcblxyXG4gIC8vIFxyXG4gIGRjVG90YWwgPSAnZGNUb3RhbCcsXHJcblxyXG4gIC8vIFxyXG4gIGRjU3VidG90YWwgPSAnZGNTdWJ0b3RhbCcsXHJcblxyXG4gIC8vIFxyXG4gIGRjQ09VTlQgPSAnZGNDT1VOVCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFN0eWxlRmllbGRTY29wZSB7XHJcblxyXG4gIC8vIFxyXG4gIGZzTm9uZSA9ICdmc05vbmUnLFxyXG5cclxuICAvLyBcclxuICBmc1Jvd3MgPSAnZnNSb3dzJyxcclxuXHJcbiAgLy8gXHJcbiAgZnNDb2xzID0gJ2ZzQ29scydcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFN0eWxlU3dhdGNoIHtcclxuXHJcbiAgLy8gXHJcbiAgc3NVbnNwZWNpZmllZCA9ICdzc1Vuc3BlY2lmaWVkJyxcclxuXHJcbiAgLy8gXHJcbiAgc3NMaWdodCA9ICdzc0xpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgc3NEYXJrID0gJ3NzRGFyaydcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRhYmxlYXVGb250U3R5bGUge1xyXG5cclxuICAvLyBcclxuICBOb3JtYWxTdHlsZSA9ICdmb250LXN0eWxlLW5vcm1hbCcsXHJcblxyXG4gIC8vIFxyXG4gIEl0YWxpYyA9ICdmb250LXN0eWxlLWl0YWxpYydcclxufVxyXG5cclxuLy8gVW5zdXBwb3J0ZWQgZm9yIEJldHN5XHJcbmV4cG9ydCBlbnVtIFRleHREZWNvcmF0aW9uIHtcclxuXHJcbiAgLy8gXHJcbiAgTm9EZWNvcmF0aW9uID0gJ3RleHQtZGVjb3JhdGlvbi1ub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgVW5kZXJsaW5lID0gJ3RleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUnLFxyXG5cclxuICAvLyBub3QgeWV0IHN1cHBvcnRlZFxyXG4gIE92ZXJsaW5lID0gJ3RleHQtZGVjb3JhdGlvbi1vdmVybGluZScsXHJcblxyXG4gIC8vIFxyXG4gIFN0cmlrZXRocm91Z2ggPSAndGV4dC1kZWNvcmF0aW9uLXN0cmlrZXRocm91Z2gnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBGb250V2VpZ2h0IHtcclxuXHJcbiAgLy8gXHJcbiAgTm9ybWFsV2VpZ2h0ID0gJ2ZvbnQtd2VpZ2h0LW5vcm1hbCcsXHJcblxyXG4gIC8vIFxyXG4gIEJvbGQgPSAnZm9udC13ZWlnaHQtYm9sZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRleHRPcmllbnQge1xyXG5cclxuICAvLyBcclxuICBUT19BdXRvID0gJ3RleHQtb3JpZW50LWF1dG8nLFxyXG5cclxuICAvLyBcclxuICBUT19Ib3J6ID0gJ3RleHQtb3JpZW50LWhvcml6b250YWwnLFxyXG5cclxuICAvLyBcclxuICBUT19WZXJ0VXAgPSAndGV4dC1vcmllbnQtdmVydGljYWwtdXAnLFxyXG5cclxuICAvLyBcclxuICBUT19WZXJ0RG93biA9ICd0ZXh0LW9yaWVudC12ZXJ0aWNhbC1kb3duJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVGV4dEFsaWduIHtcclxuXHJcbiAgLy8gXHJcbiAgVEFfU3RhcnQgPSAndGV4dC1hbGlnbi1zdGFydCcsXHJcblxyXG4gIC8vIFxyXG4gIFRBX0NlbnRlciA9ICd0ZXh0LWFsaWduLWNlbnRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFRBX0VuZCA9ICd0ZXh0LWFsaWduLWVuZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRleHRXcmFwTW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIFRleHRXcmFwT2ZmID0gJ3RleHQtd3JhcC1vZmYnLFxyXG5cclxuICAvLyBcclxuICBUZXh0V3JhcFRydW5jYXRlID0gJ3RleHQtd3JhcC10cnVuY2F0ZScsXHJcblxyXG4gIC8vIFxyXG4gIFRleHRXcmFwT24gPSAndGV4dC13cmFwLW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgVGV4dFdyYXBBdXRvID0gJ3RleHQtd3JhcC1hdXRvJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVGV4dFdob2xlTGluZU1vZGUge1xyXG5cclxuICAvLyBcclxuICBUZXh0V2hvbGVMaW5lT2ZmID0gJ3RleHQtd2hvbGUtbGluZS1vZmYnLFxyXG5cclxuICAvLyBcclxuICBUZXh0V2hvbGVMaW5lT24gPSAndGV4dC13aG9sZS1saW5lLW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgVGV4dFdob2xlTGluZUF1dG8gPSAndGV4dC13aG9sZS1saW5lLWF1dG8nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBUZXh0QnJlYWtNb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgVGV4dEJyZWFrV2hpdGVzcGFjZU9ubHkgPSAndGV4dC1icmVhay13cy1vbmx5JyxcclxuXHJcbiAgLy8gXHJcbiAgVGV4dEJyZWFrQXV0byA9ICd0ZXh0LWJyZWFrLWF1dG8nXHJcbn1cclxuXHJcbi8vIHR5cGUgb2YgYWdncmVnYXRpb25cclxuZXhwb3J0IGVudW0gQWdnVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIEFHR19TVU0gPSAnc3VtJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX0FWRyA9ICdhdmVyYWdlJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX01JTiA9ICdtaW4nLFxyXG5cclxuICAvLyBcclxuICBBR0dfTUFYID0gJ21heCcsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19TVERFViA9ICdzdGQtZGV2JyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX1NUREVWUCA9ICdzdGQtZGV2LXAnLFxyXG5cclxuICAvLyBcclxuICBBR0dfVkFSID0gJ3ZhcicsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19WQVJQID0gJ3Zhci1wJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX0NPVU5UID0gJ2NvdW50JyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX0NPVU5URCA9ICdjb3VudC1kJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX01FRElBTiA9ICdtZWRpYW4nLFxyXG5cclxuICAvLyBcclxuICBBR0dfQVRUUiA9ICdhdHRyJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX05PTkUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19QRVJDRU5USUxFID0gJ3BlcmNlbnRpbGUnLFxyXG5cclxuICAvLyBcclxuICBBR0dfWUVBUiA9ICd5ZWFyJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX1FUUiA9ICdxdHInLFxyXG5cclxuICAvLyBcclxuICBBR0dfTU9OVEggPSAnbW9udGgnLFxyXG5cclxuICAvLyBcclxuICBBR0dfREFZID0gJ2RheScsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19IT1VSID0gJ2hvdXInLFxyXG5cclxuICAvLyBcclxuICBBR0dfTUlOVVRFID0gJ21pbnV0ZScsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19TRUNPTkQgPSAnc2Vjb25kJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX1dFRUsgPSAnd2VlaycsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19XRUVLREFZID0gJ3dlZWtkYXknLFxyXG5cclxuICAvLyBcclxuICBBR0dfTU9OVEhZRUFSID0gJ21vbnRoLXllYXInLFxyXG5cclxuICAvLyBcclxuICBBR0dfTURZID0gJ21keScsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19FTkQgPSAnZW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgVFJVTkNfWUVBUiA9ICd0cnVuYy15ZWFyJyxcclxuXHJcbiAgLy8gXHJcbiAgVFJVTkNfUVRSID0gJ3RydW5jLXF0cicsXHJcblxyXG4gIC8vIFxyXG4gIFRSVU5DX01PTlRIID0gJ3RydW5jLW1vbnRoJyxcclxuXHJcbiAgLy8gXHJcbiAgVFJVTkNfV0VFSyA9ICd0cnVuYy13ZWVrJyxcclxuXHJcbiAgLy8gXHJcbiAgVFJVTkNfREFZID0gJ3RydW5jLWRheScsXHJcblxyXG4gIC8vIFxyXG4gIFRSVU5DX0hPVVIgPSAndHJ1bmMtaG91cicsXHJcblxyXG4gIC8vIFxyXG4gIFRSVU5DX01JTlVURSA9ICd0cnVuYy1taW51dGUnLFxyXG5cclxuICAvLyBcclxuICBUUlVOQ19TRUNPTkQgPSAndHJ1bmMtc2Vjb25kJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX1FVQVJUMSA9ICdxdWFydDEnLFxyXG5cclxuICAvLyBcclxuICBBR0dfUVVBUlQzID0gJ3F1YXJ0MycsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19TS0VXTkVTUyA9ICdza2V3bmVzcycsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19LVVJUT1NJUyA9ICdrdXJ0b3NpcycsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19JTk9VVCA9ICdpbi1vdXQnLFxyXG5cclxuICAvLyBcclxuICBBR0dfU1VNX1hTUVIgPSAnc3VtLXhzcXInLFxyXG5cclxuICAvLyBcclxuICBBR0dfVVNFUiA9ICd1c2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX0NPTExFQ1QgPSAnY29sbGVjdCcsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19DT1ZBUiA9ICdjb3ZhcicsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19DT1ZBUlAgPSAnY292YXJwJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX0NPUlIgPSAnY29ycidcclxufVxyXG5cclxuLy8gRGF0YVZhbHVlRm9ybWF0dGVyOjpEYXRhVHlwZUVuY29kaW5ncyBoYXMgaGFyZGNvZGVkIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIGZvbGxvd2luZyBlbnVtIG1lbWJlcnMuIFNvIGFueSBjaGFuZ2VzIGhlcmUgc2hvdWxkIGJlIGRvbmUgdGhlcmUgdG9vXHJcbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRFRfSU5URUdFUiA9ICdpbnRlZ2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgRFRfUkVBTCA9ICdyZWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgRFRfU1RSSU5HID0gJ2NzdHJpbmcnLFxyXG5cclxuICAvLyBcclxuICBEVF9EQVRFVElNRSA9ICdkYXRldGltZScsXHJcblxyXG4gIC8vIFxyXG4gIERUX0JPT0xFQU4gPSAnYm9vbGVhbicsXHJcblxyXG4gIC8vIFxyXG4gIERUX0RBVEUgPSAnZGF0ZScsXHJcblxyXG4gIC8vIFxyXG4gIERUX1RVUExFID0gJ3R1cGxlJyxcclxuXHJcbiAgLy8gXHJcbiAgRFRfU1BBVElBTCA9ICdzcGF0aWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgRFRfVU5LTk9XTiA9ICd1bmtub3duJyxcclxuXHJcbiAgLy8gXHJcbiAgRFRfQklOQVJZID0gJ2JpbmFyeScsXHJcblxyXG4gIC8vIFxyXG4gIERUX1RJTUUgPSAndGltZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIERhdGVQZXJpb2RUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgUGVyaW9kWWVhciA9ICd5ZWFyJyxcclxuXHJcbiAgLy8gXHJcbiAgUGVyaW9kUXVhcnRlciA9ICdxdWFydGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgUGVyaW9kTW9udGggPSAnbW9udGgnLFxyXG5cclxuICAvLyBcclxuICBQZXJpb2RXZWVrID0gJ3dlZWsnLFxyXG5cclxuICAvLyBcclxuICBQZXJpb2REYXkgPSAnZGF5JyxcclxuXHJcbiAgLy8gXHJcbiAgUGVyaW9kSG91ciA9ICdob3VyJyxcclxuXHJcbiAgLy8gXHJcbiAgUGVyaW9kTWludXRlID0gJ21pbnV0ZScsXHJcblxyXG4gIC8vIFxyXG4gIFBlcmlvZFNlY29uZCA9ICdzZWNvbmQnXHJcbn1cclxuXHJcbi8vIEZvcm1hdCBwcmVwZW5kZWQgdG8gZm9ybWF0IHN0cmluZ3MgdG8gc3BlY2lmeSB0eXBlXHJcbmV4cG9ydCBlbnVtIEZvcm1hdENvZGUge1xyXG5cclxuICAvLyBcclxuICBBdXRvRm9ybWF0ID0gJ2F1dG8tZm9ybWF0JyxcclxuXHJcbiAgLy8gXHJcbiAgU3lzdGVtTG9uZ0RhdGUgPSAnc3lzdGVtLWxvbmctZGF0ZScsXHJcblxyXG4gIC8vIFxyXG4gIFN5c3RlbVNob3J0RGF0ZSA9ICdzeXN0ZW0tc2hvcnQtZGF0ZScsXHJcblxyXG4gIC8vIFxyXG4gIFN5c3RlbU51bWJlciA9ICdzeXN0ZW0tbnVtYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgU3lzdGVtQ3VycmVuY3kgPSAnc3lzdGVtLWN1cnJlbmN5JyxcclxuXHJcbiAgLy8gXHJcbiAgU3lzdGVtVGltZSA9ICdzeXN0ZW0tdGltZScsXHJcblxyXG4gIC8vIFxyXG4gIEN1c3RvbSA9ICdjdXN0b20nLFxyXG5cclxuICAvLyBcclxuICBDdXN0b21JQ1UgPSAnY3VzdG9tLWljdScsXHJcblxyXG4gIC8vIFxyXG4gIEN1c3RvbU51bWJlciA9ICdjdXN0b20tbnVtYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQ3VzdG9tQ3VycmVuY3kgPSAnY3VzdG9tLWN1cnJlbmN5JyxcclxuXHJcbiAgLy8gXHJcbiAgQ3VzdG9tU2NpZW50aWZpYyA9ICdjdXN0b20tc2NpZW50aWZpYycsXHJcblxyXG4gIC8vIFxyXG4gIEN1c3RvbVBlcmNlbnRhZ2UgPSAnY3VzdG9tLXBlcmNlbnRhZ2UnXHJcbn1cclxuXHJcbi8vIFVuaXRzIHNwZWNpZmllZCBpbiBhIGZvcm1hdCBzdHJpbmdcclxuZXhwb3J0IGVudW0gVW5pdHNGb3JtYXRFbnVtIHtcclxuXHJcbiAgLy8gXHJcbiAgVW5pdHNGbXROb25lID0gJ3VuaXRzLW5vbmUnLFxyXG5cclxuICAvLyBcclxuICBVbml0c0ZtdFRob3VzYW5kcyA9ICd1bml0cy10aG91c2FuZHMnLFxyXG5cclxuICAvLyBcclxuICBVbml0c0ZtdE1pbGxpb25zID0gJ3VuaXRzLW1pbGxpb25zJyxcclxuXHJcbiAgLy8gXHJcbiAgVW5pdHNGbXRCaWxsaW9uc0VuZ2xpc2ggPSAndW5pdHMtYmlsbGlvbnMtZW5nbGlzaCcsXHJcblxyXG4gIC8vIFxyXG4gIFVuaXRzRm10QmlsbGlvbnNTdGFuZGFyZCA9ICd1bml0cy1iaWxsaW9ucy1zdGFuZGFyZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZvcmVjYXN0Q29sdW1uVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIEZPUkVDQVNUX05PTkUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEZPUkVDQVNUX1ZBTFVFID0gJ3ZhbHVlJyxcclxuXHJcbiAgLy8gXHJcbiAgRk9SRUNBU1RfSU5ESUNBVE9SID0gJ2luZGljYXRvcicsXHJcblxyXG4gIC8vIFxyXG4gIEZPUkVDQVNUX1BSRUNJU0lPTiA9ICdwcmVjaXNpb24nLFxyXG5cclxuICAvLyBcclxuICBGT1JFQ0FTVF9RVUFMSVRZID0gJ3F1YWxpdHknLFxyXG5cclxuICAvLyBcclxuICBGT1JFQ0FTVF9GSVRfVFJFTkQgPSAnZml0X3RyZW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgRk9SRUNBU1RfUFJFQ0lTSU9OX1BFUkNFTlQgPSAncHJlY2lzaW9uX3BlcmNlbnQnLFxyXG5cclxuICAvLyBcclxuICBGT1JFQ0FTVF9QUkVESUNUSU9OX0lOVEVSVkFMX1VQUEVSID0gJ3ByZWRpY3Rpb25fdXBwZXInLFxyXG5cclxuICAvLyBcclxuICBGT1JFQ0FTVF9QUkVESUNUSU9OX0lOVEVSVkFMX0xPV0VSID0gJ3ByZWRpY3Rpb25fbG93ZXInXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBNYXJrTWFya2Vyc01vZGUge1xyXG5cclxuICAvLyBcclxuICBNTU1fQXV0byA9ICdtbW0tYXV0bycsXHJcblxyXG4gIC8vIFxyXG4gIE1NTV9BbGwgPSAnbW1tX2FsbCcsXHJcblxyXG4gIC8vIFxyXG4gIE1NTV9Ob25lID0gJ21tbV9ub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgTU1NX0RlZmF1bHQgPSAnbW1tX2RlZmF1bHQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBQZXJjZW50TW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIFBFUkNFTlRfQ0VMTF9JTl9QQU5FID0gJ2NlbGwtaW4tcGFuZScsXHJcblxyXG4gIC8vIFxyXG4gIFBFUkNFTlRfUk9XX0lOX1BBTkUgPSAncm93LWluLXBhbmUnLFxyXG5cclxuICAvLyBcclxuICBQRVJDRU5UX0NPTFVNTl9JTl9QQU5FID0gJ2NvbHVtbi1pbi1wYW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgUEVSQ0VOVF9QQU5FID0gJ3BhbmUnLFxyXG5cclxuICAvLyBcclxuICBQRVJDRU5UX1JPVyA9ICdyb3cnLFxyXG5cclxuICAvLyBcclxuICBQRVJDRU5UX0NPTFVNTiA9ICdjb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBQRVJDRU5UX1RBQkxFID0gJ3RhYmxlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU3BlY2lhbFZhbHVlc01vZGUge1xyXG5cclxuICAvLyBcclxuICBTUEVDSUFMX1ZBTFVFU19ISURFX0FORF9XQVJOID0gJ2hpZGUtYW5kLXdhcm4nLFxyXG5cclxuICAvLyBcclxuICBTUEVDSUFMX1ZBTFVFU19ISURFID0gJ2hpZGUnLFxyXG5cclxuICAvLyBcclxuICBTUEVDSUFMX1ZBTFVFU19ISURFX0JSRUFLX0xJTkVTID0gJ2hpZGUtYnJlYWstbGluZXMnLFxyXG5cclxuICAvLyBcclxuICBTUEVDSUFMX1ZBTFVFU19TSE9XID0gJ3Nob3cnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBMYXlvdXRUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgTEFZT1VUX0NBUlRFU0lBTiA9ICdjYXJ0ZXNpYW4nLFxyXG5cclxuICAvLyBcclxuICBMQVlPVVRfREVGQVVMVCA9ICdkZWZhdWx0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2hlbGZUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgU1RfTk9ORSA9ICdub25lLXNoZWxmJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfQ09MVU1OU19TSEVMRiA9ICdjb2x1bW5zLXNoZWxmJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfUk9XU19TSEVMRiA9ICdyb3dzLXNoZWxmJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfUEFHRVNfU0hFTEYgPSAncGFnZXMtc2hlbGYnLFxyXG5cclxuICAvLyBcclxuICBTVF9GSUxURVJfU0hFTEYgPSAnZmlsdGVyLXNoZWxmJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfSU1BR0VfU0hFTEYgPSAnaW1hZ2Utc2hlbGYnLFxyXG5cclxuICAvLyBcclxuICBTVF9NRUFTVVJFU19TSEVMRiA9ICdtZWFzdXJlcy1zaGVsZicsXHJcblxyXG4gIC8vIFxyXG4gIFNUX1NIT1dNRV9TSEVMRiA9ICdzaG93LW1lLXNoZWxmJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfRU5DT0RJTkdfU0hFTEYgPSAnZW5jb2Rpbmctc2hlbGYnLFxyXG5cclxuICAvLyBcclxuICBTVF9DTFVTVEVSX1NIRUxGID0gJ2NsdXN0ZXItc2hlbGYnLFxyXG5cclxuICAvLyBcclxuICBTVF9HRU9NRVRSWV9TSEVMRiA9ICdnZW9tZXRyeS1zaGVsZicsXHJcblxyXG4gIC8vIFxyXG4gIFNUX0VORCA9ICdlbmQtc2hlbGYnLFxyXG5cclxuICAvLyBcclxuICBTVF9GSU5BTCA9ICdmaW5hbC1zaGVsZidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFJlc3RyaWN0VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFJUX0lOVEVSU0VDVCA9ICdydC1pbnRlcnNlY3Rpb24nLFxyXG5cclxuICAvLyBcclxuICBSVF9VTklPTiA9ICdydC11bmlvbidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRvb2x0aXBNb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgVE1fTk9ORSA9ICdub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgVE1fU1RJQ0tZID0gJ3N0aWNreScsXHJcblxyXG4gIC8vIFxyXG4gIFRNX1NNT09USCA9ICdzbW9vdGgnLFxyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQ29sdW1uR3JvdXBzIHtcclxuXHJcbiAgLy8gMHgwMVxyXG4gIENPTFNfSU5fT1VUUFVUID0gJ2NvbHMtaW4tb3V0cHV0JyxcclxuXHJcbiAgLy8gMHgwMlxyXG4gIENPTFNfSU5fRklMVEVSX1NIRUxGID0gJ2NvbHMtaW4tZmlsdGVyLXNoZWxmJyxcclxuXHJcbiAgLy8gMHgwNFxyXG4gIENPTFNfUkVGX0JZX0ZJTFRFUlMgPSAnY29scy1yZWYtYnktZmlsdGVycycsXHJcblxyXG4gIC8vIDB4MDhcclxuICBDT0xTX1JFRl9CWV9PTUVBU1VSRVMgPSAnY29scy1yZWYtYnktb21lYXN1cmVzJyxcclxuXHJcbiAgLy8gMHgxMFxyXG4gIENPTFNfUkVGX0JZX0pPSU5fTE9EID0gJ2NvbHMtcmVmLWJ5LWpvaW4tbG9kJyxcclxuXHJcbiAgLy8gMHgyMFxyXG4gIENPTFNfSElEREVOID0gJ2NvbHMtaGlkZGVuJyxcclxuXHJcbiAgLy8gMHg0MFxyXG4gIENPTFNfUkVGX0JZX1NPUlRTID0gJ2NvbHMtcmVmLWJ5LXNvcnRzJyxcclxuXHJcbiAgLy8gXHJcbiAgQ09MU19SRUZfQllfRklMVEVSU19PUl9TT1JUUyA9ICdjb2xzLXJlZi1ieS1maWx0ZXJzLW9yLXNvcnRzJyxcclxuXHJcbiAgLy8gXHJcbiAgQ09MU19PTl9TSEVMVkVTID0gJ2NvbHMtb24tc2hlbHZlcycsXHJcblxyXG4gIC8vIFxyXG4gIENPTFNfQUxMID0gJ2NvbHMtYWxsJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQnV0dG9uc09wdGlvbiB7XHJcblxyXG4gIC8vIFxyXG4gIEJPX0hJREUgPSAnYnV0dG9ucy1oaWRlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2VsZWN0aW9uUmVsYXhhdGlvbk9wdGlvbiB7XHJcblxyXG4gIC8vIFxyXG4gIFNST19BTExPVyA9ICdzZWxlY3Rpb24tcmVsYXhhdGlvbi1hbGxvdycsXHJcblxyXG4gIC8vIFxyXG4gIFNST19ESVNBTExPVyA9ICdzZWxlY3Rpb24tcmVsYXhhdGlvbi1kaXNhbGxvdycsXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBFbmNvZGluZ1R5cGUge1xyXG5cclxuICAvLyBhIHRleHQgZW5jb2RpbmdcclxuICBFVF9URVhUID0gJ3RleHQtZW5jb2RpbmcnLFxyXG5cclxuICAvLyBhIGNvbG9yIGVuY29kaW5nXHJcbiAgRVRfQ09MT1IgPSAnY29sb3ItZW5jb2RpbmcnLFxyXG5cclxuICAvLyBhIHNpemUgZW5jb2RpbmdcclxuICBFVF9TSVpFID0gJ3NpemUtZW5jb2RpbmcnLFxyXG5cclxuICAvLyBhIHNoYXBlIGVuY29kaW5nXHJcbiAgRVRfU0hBUEUgPSAnc2hhcGUtZW5jb2RpbmcnLFxyXG5cclxuICAvLyBhbiBpbWFnZSBlbmNvZGluZ1xyXG4gIEVUX0lNQUdFID0gJ2ltYWdlLWVuY29kaW5nJyxcclxuXHJcbiAgLy8gYSBzb3J0IChwYXRoKSBlbmNvZGluZyAoY3VycmVudGx5IG9ubHkgZm9yIGxpbmUgb3IgcG9seWdvbiBjaGFydHMpXHJcbiAgRVRfU09SVCA9ICdzb3J0LWVuY29kaW5nJyxcclxuXHJcbiAgLy8gYSB3ZWRnZSBzaXplIChhbmdsZSkgZW5jb2RpbmcgKGN1cnJlbnRseSBvbmx5IGZvciBwaWUgY2hhcnRzKVxyXG4gIEVUX1dFREdFU0laRSA9ICd3ZWRnZS1zaXplLWVuY29kaW5nJyxcclxuXHJcbiAgLy8gYSBnZW9tZXRyeSBlbmNvZGluZ1xyXG4gIEVUX0dFT01FVFJZID0gJ2dlb21ldHJ5LWVuY29kaW5nJyxcclxuXHJcbiAgLy8gYSBsZXZlbCBvZiBkZXRhaWwgZW5jb2RpbmdcclxuICBFVF9MT0QgPSAnbGV2ZWwtb2YtZGV0YWlsLWVuY29kaW5nJyxcclxuXHJcbiAgLy8gZW5jb2RpbmcgdXNlZCBmb3IgdGhlIGRhdGEgaGlnaGxpZ2h0ZXIvbGVnZW5kIG1lY2hhbmlzbVxyXG4gIEVUX0hJR0hMSUdIVCA9ICdoaWdobGlnaHQtZW5jb2RpbmcnLFxyXG5cclxuICAvLyBhIHRvb2x0aXAgZW5jb2RpbmdcclxuICBFVF9UT09MVElQID0gJ3Rvb2x0aXAtZW5jb2RpbmcnLFxyXG5cclxuICAvLyBhIHRlbXBvcmFyeSBsYWJlbCBwbGFjZWQgYWJvdmUgbWFya3MgZm9yIHRoZSB0YWJsZSBjYWxjIGRpYWxvZ1xyXG4gIEVUX1JVTk5JTkdPUkRFUiA9ICdydW5uaW5nb3JkZXItZW5jb2RpbmcnLFxyXG5cclxuICAvLyB0aGUgbnVtYmVyIG9mIGVuY29kaW5ncywgdGhpcyBpcyBpbnZhbGlkIGlucHV0IGZvciBhbiBlbmNvZGluZyBwcmVzZW50YXRpb24gbW9kZWxcclxuICBOVU1fRU5DT0RJTkdTID0gJ251bS1lbmNvZGluZ3MnLFxyXG5cclxuICAvLyBhbiBpbnZhbGlkIGVuY29kaW5nXHJcbiAgRVRfSU5WQUxJRCA9ICdpbnZhbGlkLWVuY29kaW5nJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBvZiB2YWxpZCBob3Jpem9udGFsIGFsaWdubWVudHMuXHJcbmV4cG9ydCBlbnVtIExhYmVsSEFsaWdubWVudCB7XHJcblxyXG4gIC8vIFxyXG4gIExIQV9MZWZ0ID0gJ2gtYWxpZ24tbGVmdCcsXHJcblxyXG4gIC8vIFxyXG4gIExIQV9DZW50ZXIgPSAnaC1hbGlnbi1jZW50ZXInLFxyXG5cclxuICAvLyBcclxuICBMSEFfUmlnaHQgPSAnaC1hbGlnbi1yaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIExIQV9BdXRvbWF0aWMgPSAnaC1hbGlnbi1hdXRvJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBvZiB2YWxpZCB2ZXJ0aWNhbCBhbGlnbm1lbnRzLlxyXG5leHBvcnQgZW51bSBMYWJlbFZBbGlnbm1lbnQge1xyXG5cclxuICAvLyBcclxuICBMVkFfQm90dG9tID0gJ3YtYWxpZ24tYm90dG9tJyxcclxuXHJcbiAgLy8gXHJcbiAgTFZBX0NlbnRlciA9ICd2LWFsaWduLWNlbnRlcicsXHJcblxyXG4gIC8vIFxyXG4gIExWQV9Ub3AgPSAndi1hbGlnbi10b3AnLFxyXG5cclxuICAvLyBcclxuICBMVkFfQXV0b21hdGljID0gJ3YtYWxpZ24tYXV0bydcclxufVxyXG5cclxuLy8gRW51bWVyYXRpb24gb2YgdmFsaWQgbGFiZWwgcG9zaXRpb25zLlxyXG5leHBvcnQgZW51bSBMYWJlbFBvc2l0aW9uIHtcclxuXHJcbiAgLy8gUG9zaXRpb24gZWFjaCB0ZXh0IHJ1biByZWxhdGl2ZSB0byB0aGUgY2VudGVyIG9mIHRoZSBvcmlnaW5hbCBiYm94LiAgVXNlIHRoZSBvcmlnaW5hbCBiYm94IGFzIHRoZSBoZWlnaHQgYW5kIHdpZHRoIG9mIHRoZSB0ZXh0IG1hcmsuICBVc2VkIGZvciBub24tc3RhY2tlZCBPTyB0ZXh0IG1hcmtzLlxyXG4gIENlbnRlckluT3JpZ2luYWxCYm94ID0gJ2xhYmVsLXBvc2l0aW9uLWNlbnRlci1pbi1vcmlnaW5hbC1ib3gnLFxyXG5cclxuICAvLyBQb3NpdGlvbiBlYWNoIHRleHQgcnVuIHJlbGF0aXZlIHRvIHRoZSBib3R0b20gbGVmdCBjb3JuZXIgb2YgdGhlIG1lYXN1cmVkIGJib3guIFVzZSB0aGUgbWVhc3VyZWQgYmJveCBhcyB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgbGFiZWwuIFVzZWQgZm9yIGxhYmVsc1xyXG4gIE9yaWdpbkF0TG93ZXJMZWZ0ID0gJ2xhYmVsLXBvc2l0aW9uLW9yaWdpbi1hdC1sb3dlci1sZWZ0JyxcclxuXHJcbiAgLy8gUG9zaXRpb24gZWFjaCB0ZXh0IHJ1biByZWxhdGl2ZSB0byB0aGUgY2VudGVyIG9mIHRoZSBtZWFzdXJlZCBiYm94LiBVc2UgdGhlIG1lYXN1cmVkIGJib3ggYXMgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHRleHQgbWFyay4gVXNlZCBmb3IgbW9zdCB0ZXh0IG1hcmtzLlxyXG4gIE9yaWdpbkF0Q2VudGVyID0gJ2xhYmVsLXBvc2l0aW9uLW9yaWdpbi1hdC1jZW50ZXInXHJcbn1cclxuXHJcbi8vIEVudW1lcmF0aW9uIG9mIHdheXMgdG8gdXNlIGNvbG9yLiAgVmFsdWVzIGNhbiBiZSBvcidlZCB0b2dldGhlciB0byBtYWtlIGEgbWFzayBmb3IgYWxsb3dlZCBvcHRpb25zXHJcbmV4cG9ydCBlbnVtIENvbG9yTW9kZSB7XHJcblxyXG4gIC8vIENvbG9yIHVzZXIgc3BlY2lmaWVkXHJcbiAgQ0xSTV9Vc2VyID0gJ2Nscm0tdXNlcicsXHJcblxyXG4gIC8vIENvbG9yIHNlbGVjdGVkIGF1dG9tYXRpY2FsbHlcclxuICBDTFJNX0F1dG8gPSAnY2xybS1hdXRvJyxcclxuXHJcbiAgLy8gQ29sb3IgbWF0Y2hlcyBtYXJrIGNvbG9yXHJcbiAgQ0xSTV9NYXRjaCA9ICdjbHJtLW1hdGNoJyxcclxuXHJcbiAgLy8gTm8gY29sb3IgKHRyYW5zcGFyZW50IG9yIG5vdCBkcmF3bilcclxuICBDTFJNX05vbmUgPSAnY2xybS1ub25lJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya0xhYmVsc01vZGUge1xyXG5cclxuICAvLyBcclxuICBNTE1fQWxsID0gJ21sbS1hbGwnLFxyXG5cclxuICAvLyBcclxuICBNTE1fU2VsZWN0aW9uID0gJ21sbS1zZWxlY3Rpb24nLFxyXG5cclxuICAvLyBcclxuICBNTE1fSGlnaGxpZ2h0ID0gJ21sbS1oaWdobGlnaHQnLFxyXG5cclxuICAvLyBcclxuICBNTE1fTGluZUVuZHMgPSAnbWxtLWxpbmUtZW5kcycsXHJcblxyXG4gIC8vIG1pbi9tYXggc2V0dGluZ1xyXG4gIE1MTV9SYW5nZSA9ICdtbG0tcmFuZ2UnLFxyXG5cclxuICAvLyBtb3N0IHJlY2VudCAob25seSByZWxldmFudCB3aGVuIGRhdGUgZmllbGQgaXMgaW4gcGxheSlcclxuICBNTE1fTW9zdFJlY2VudCA9ICdtbG0tbW9zdC1yZWNlbnQnLFxyXG5cclxuICAvLyAuLi50aGlzIGlzIFwiIHZpcnR1YWwgXCIgKHJ1bnRpbWUgb25seSwgbm90IHNhdmVkLCBub3Qgc2hvd24gYXMgYSB1c2VyIHNldHRpbmdcclxuICBNTE1fTXVsdGlwbGVWYWx1ZXMgPSAnbWxtLW11bHRpcGxlLXZhbHVlcycsXHJcblxyXG4gIC8vIFxyXG4gIE1MTV9EZWZhdWx0ID0gJ21sbS1kZWZhdWx0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya0xhYmVsc1Njb3BlIHtcclxuXHJcbiAgLy8gXHJcbiAgTUxTX1RhYmxlID0gJ21scy10YWJsZScsXHJcblxyXG4gIC8vIFxyXG4gIE1MU19QYW5lID0gJ21scy1wYW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgTUxTX0NlbGwgPSAnbWxzLWNlbGwnLFxyXG5cclxuICAvLyBcclxuICBNTFNfTXVsdGlNYXJrID0gJ21scy1tdWx0aW1hcmsnLFxyXG5cclxuICAvLyAuLi50aGlzIGlzIFwiIHZpcnR1YWwgXCIgKHJ1bnRpbWUgb25seSwgbm90IHNhdmVkLCBub3Qgc2hvd24gYXMgYSB1c2VyIHNldHRpbmcpXHJcbiAgTUxTX011bHRpcGxlVmFsdWVzID0gJ21scy1tdWx0aXBsZS12YWx1ZXMnLFxyXG5cclxuICAvLyBcclxuICBNTFNfRGVmYXVsdCA9ICdtbHMtZGVmYXVsdCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIE1hcmtMYWJlbHNWaXNpYmlsaXR5IHtcclxuXHJcbiAgLy8gXHJcbiAgTUxWX0hpZGRlbiA9ICdtbHYtaGlkZGVuJyxcclxuXHJcbiAgLy8gXHJcbiAgTUxWX1Zpc2libGUgPSAnbWx2LXZpc2libGUnLFxyXG5cclxuICAvLyBcclxuICBNTFZfVXNlQ3VycmVudCA9ICdtbHYtdXNlLWN1cnJlbnQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTdGFja2luZ01vZGUge1xyXG5cclxuICAvLyBcclxuICBTdGFja2luZ09mZiA9ICdvZmYnLFxyXG5cclxuICAvLyBcclxuICBTdGFja2luZ09uID0gJ29uJyxcclxuXHJcbiAgLy8gXHJcbiAgU3RhY2tpbmdBdXRvID0gJ2F1dG8nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBNYXJrQWxpZ25tZW50IHtcclxuXHJcbiAgLy8gXHJcbiAgTWFya0FsaWdubWVudExlZnQgPSAnbWFyay1hbGlnbm1lbnQtbGVmdCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcmtBbGlnbm1lbnRSaWdodCA9ICdtYXJrLWFsaWdubWVudC1yaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcmtBbGlnbm1lbnRDZW50ZXIgPSAnbWFyay1hbGlnbm1lbnQtY2VudGVyJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUGFuZUxhYmVsQ29tcG9zaXRpb24ge1xyXG5cclxuICAvLyBcclxuICBQTENfTm9uZSA9ICdwYW5lLWxhYmVsLWNvbXBvc2l0aW9uLW5vbmUnLFxyXG5cclxuICAvLyBcclxuICBQTENfTWl4ZWQgPSAncGFuZS1sYWJlbC1jb21wb3NpdGlvbi1taXhlZCcsXHJcblxyXG4gIC8vIFxyXG4gIFBMQ19BbGwgPSAncGFuZS1sYWJlbC1jb21wb3NpdGlvbi1hbGwnXHJcbn1cclxuXHJcbi8vIFRoZSB1c2VyLXNwZWNpZmllZCBtYXJrIHR5cGUgb24gdGhlIE1hcmtzIENhcmRcclxuZXhwb3J0IGVudW0gUHJpbWl0aXZlVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFBUX0FVVE9NQVRJQyA9ICdhdXRvbWF0aWMnLFxyXG5cclxuICAvLyBcclxuICBQVF9URVhUID0gJ3RleHQnLFxyXG5cclxuICAvLyBcclxuICBQVF9JTUFHRSA9ICdpbWFnZScsXHJcblxyXG4gIC8vIFxyXG4gIFBUX1NIQVBFID0gJ3NoYXBlJyxcclxuXHJcbiAgLy8gXHJcbiAgUFRfUkVDVEFOR0xFID0gJ3JlY3RhbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIFBUX0JBUiA9ICdiYXInLFxyXG5cclxuICAvLyBcclxuICBQVF9HQU5UVCA9ICdnYW50dCcsXHJcblxyXG4gIC8vIFxyXG4gIFBUX1NRVUFSRSA9ICdzcXVhcmUnLFxyXG5cclxuICAvLyBcclxuICBQVF9DSVJDTEUgPSAnY2lyY2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgUFRfUE9MWUxJTkUgPSAncG9seWxpbmUnLFxyXG5cclxuICAvLyBsaW5lIGNoYXJ0XHJcbiAgUFRfTElORSA9ICdsaW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgUFRfUE9MWUdPTiA9ICdwb2x5Z29uJyxcclxuXHJcbiAgLy8gYXJlYSBjaGFydFxyXG4gIFBUX0FSRUEgPSAnYXJlYScsXHJcblxyXG4gIC8vIFxyXG4gIFBUX1BJRSA9ICdwaWUnLFxyXG5cclxuICAvLyBcclxuICBQVF9NVUxUSVBPTFlHT04gPSAnbXVsdGlwb2x5Z29uJyxcclxuXHJcbiAgLy8gTm90IGFuIGFjdHVhbCBwcmltaXRpdmUgdHlwZS4gVGhpcyBpcyBqdXN0IHVzZWQgdG8gZmxhZyB0aGUgVUkgdGhhdCBtdWx0aXBsZSB0eXBlcyBhcmUgaW4gcGxheS5cclxuICBQVF9NVUxUSVBMRSA9ICdtdWx0aXBsZScsXHJcblxyXG4gIC8vIHVzZWQgZm9yIGxvb3Bpbmcgb3ZlciBhbGwgdmFsdWVzXHJcbiAgTlVNX1BSSU1JVElWRVMgPSAnY291bnQnLFxyXG5cclxuICAvLyB1c2VkIHRvIGZsYWcgYW4gdW5zZXQgb3IgaW52YWxpZCBzdGF0ZVxyXG4gIFBUX0lOVkFMSUQgPSAnaW52YWxpZCdcclxufVxyXG5cclxuLy8gRGVmaW5lcyB0aGUgd2F5IGEgZ2l2ZW4gcHJpbWl0aXZlIGJlaGF2ZXMgb24gYSB2aXogLSBmb3IgaW5zdGFuY2UsIGEgUFRfQ0lSQ0xFIGlzIHRyZWF0ZWQgYXMgYSBwb2ludCwgd2hpbGUgYSBQVF9QT0xZR09OIHdvdWxkIGJlIHRyZWF0ZWQgYXMgYW4gYXJlYS5cclxuZXhwb3J0IGVudW0gTWFya1R5cGUge1xyXG5cclxuICAvLyBcclxuICBNVF9QT0lOVCA9ICdwb2ludCcsXHJcblxyXG4gIC8vIFxyXG4gIE1UX0xJTkUgPSAnbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIE1UX0FSRUEgPSAnYXJlYScsXHJcblxyXG4gIC8vIFxyXG4gIE1UX0lOVkFMSUQgPSAnaW52YWxpZCdcclxufVxyXG5cclxuLy8gUGFuZUF4aXMgaXMgdXNlZCB0byBkZXNjcmliZSB3aGljaCBheGlzIG9mIGEgcGFuZSBpcyB0aGUgaW5kZXBlbmRlbnQgYXhpcy5cclxuZXhwb3J0IGVudW0gUGFuZUF4aXMge1xyXG5cclxuICAvLyBUaGUgaW5kZXBlbmRlbnQgYXhpcyBpcyBpbmZlcnJlZCBmcm9tIG90aGVyIHByb3BlcnRpZXMgb2YgdGhlIHBhbmUuXHJcbiAgQVhJU19BVVRPID0gJ2F1dG8nLFxyXG5cclxuICAvLyBcclxuICBBWElTX1ggPSAneCcsXHJcblxyXG4gIC8vIFxyXG4gIEFYSVNfWSA9ICd5J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUm91bmRpbmcge1xyXG5cclxuICAvLyBcclxuICBSb3VuZGluZ19Ob25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBSb3VuZGluZ19TbWFsbCA9ICdzbWFsbCcsXHJcblxyXG4gIC8vIFxyXG4gIFJvdW5kaW5nX01lZGl1bSA9ICdtZWRpdW0nLFxyXG5cclxuICAvLyBcclxuICBSb3VuZGluZ19MYXJnZSA9ICdsYXJnZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIExpbmVFbmQge1xyXG5cclxuICAvLyBcclxuICBMaW5lRW5kX05vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVFbmRfQXJyb3cgPSAnYXJyb3cnLFxyXG5cclxuICAvLyBcclxuICBMaW5lRW5kX09wZW5BcnJvdyA9ICdvcGVuLWFycm93JyxcclxuXHJcbiAgLy8gXHJcbiAgTGluZUVuZF9Eb3QgPSAnZG90J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTGluZUVuZFNpemUge1xyXG5cclxuICAvLyBcclxuICBMaW5lRW5kU2l6ZV9TbWFsbGVzdCA9ICdzbWFsbGVzdCcsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVFbmRTaXplX1NtYWxsZXIgPSAnc21hbGxlcicsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVFbmRTaXplX1NtYWxsID0gJ3NtYWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgTGluZUVuZFNpemVfTWVkaXVtID0gJ21lZGl1bScsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVFbmRTaXplX0xhcmdlID0gJ2xhcmdlJyxcclxuXHJcbiAgLy8gXHJcbiAgTGluZUVuZFNpemVfTGFyZ2VyID0gJ2xhcmdlcicsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVFbmRTaXplX0xhcmdlc3QgPSAnbGFyZ2VzdCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEJvZHlUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgQm9keVR5cGVfTm9uZSA9ICdub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgQm9keVR5cGVfQm94ID0gJ2JveCcsXHJcblxyXG4gIC8vIFxyXG4gIEJvZHlUeXBlX0VkZ2UgPSAnZWRnZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFN0eWxlVGhlbWUge1xyXG5cclxuICAvLyBcclxuICB0aGVtZUNsYXNzaWMgPSAnY2xhc3NpYycsXHJcblxyXG4gIC8vIFxyXG4gIHRoZW1lTW9kZXJuID0gJ21vZGVybicsXHJcblxyXG4gIC8vIFxyXG4gIHRoZW1lQ2xlYW4gPSAnY2xlYW4nLFxyXG5cclxuICAvLyBcclxuICB0aGVtZVNtb290aCA9ICdzbW9vdGgnLFxyXG5cclxuICAvLyBcclxuICB0aGVtZUN1c3RvbSA9ICdjdXN0b20nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBBeGlzRm9sZFN0YXRlIHtcclxuXHJcbiAgLy8gXHJcbiAgYWZOb25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBhZkZvbGRlZCA9ICdmb2xkZWQnLFxyXG5cclxuICAvLyBcclxuICBhZlN5bmNocm9uaXplZCA9ICdzeW5jaHJvbml6ZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBMaW5lUGF0dGVybiB7XHJcblxyXG4gIC8vIFxyXG4gIExpbmVQYXR0ZXJuTm9uZSA9ICdub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgTGluZVBhdHRlcm5Tb2xpZCA9ICdzb2xpZCcsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVQYXR0ZXJuRGFzaGVkID0gJ2Rhc2hlZCcsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVQYXR0ZXJuRG90dGVkID0gJ2RvdHRlZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIExpbmVWaXNpYmlsaXR5IHtcclxuXHJcbiAgLy8gXHJcbiAgTGluZVZpc2liaWxpdHlBdXRvID0gJ2F1dG9tYXRpYycsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVWaXNpYmlsaXR5T24gPSAnb24nLFxyXG5cclxuICAvLyBcclxuICBMaW5lVmlzaWJpbGl0eU9mZiA9ICdvZmYnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTdHlsZXNMaW5lUGF0dGVybiB7XHJcblxyXG4gIC8vIFxyXG4gIFN0eWxlc0xpbmVQYXR0ZXJuU29saWQgPSAnc29saWQnLFxyXG5cclxuICAvLyBcclxuICBTdHlsZXNMaW5lUGF0dGVybkRhc2hlZCA9ICdkYXNoZWQnLFxyXG5cclxuICAvLyBcclxuICBTdHlsZXNMaW5lUGF0dGVybkRvdHRlZCA9ICdkb3R0ZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBMaW5lQ2FwIHtcclxuXHJcbiAgLy8gXHJcbiAgTGluZUNhcEZsYXQgPSAnZmxhdCcsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVDYXBTcXVhcmUgPSAnc3F1YXJlJyxcclxuXHJcbiAgLy8gXHJcbiAgTGluZUNhcFJvdW5kID0gJ3JvdW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgTGluZUNhcFRyaWFuZ2xlID0gJ3RyaWFuZ2xlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTGluZUpvaW4ge1xyXG5cclxuICAvLyBcclxuICBCZXZlbEpvaW4gPSAnYmV2ZWwnLFxyXG5cclxuICAvLyBcclxuICBNaXRlckpvaW4gPSAnbWl0ZXInLFxyXG5cclxuICAvLyBcclxuICBSb3VuZEpvaW4gPSAncm91bmQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBMaW5lQWxpZ25tZW50IHtcclxuXHJcbiAgLy8gXHJcbiAgQWxpZ25tZW50Q2VudGVyID0gJ2NlbnRlcicsXHJcblxyXG4gIC8vIFxyXG4gIEFsaWdubWVudEluc2V0ID0gJ2luc2V0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRmlsbE1vZGUge1xyXG5cclxuICAvLyBcclxuICBGaWxsRXZlbk9kZCA9ICdldmVuLW9kZCcsXHJcblxyXG4gIC8vIFxyXG4gIEZpbGxXaW5kaW5nID0gJ3dpbmRpbmcnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBCb3JkZXJTdHlsZSB7XHJcblxyXG4gIC8vIG5vbmVcclxuICBCb3JkZXJTdHlsZU5vbmUgPSAnYnMtbm9uZScsXHJcblxyXG4gIC8vIGhpZGRlblxyXG4gIEJvcmRlclN0eWxlSGlkZGVuID0gJ2JzLWhpZGRlbicsXHJcblxyXG4gIC8vIGRvdHRlZFxyXG4gIEJvcmRlclN0eWxlRG90dGVkID0gJ2JzLWRvdHRlZCcsXHJcblxyXG4gIC8vIGRhc2hlZFxyXG4gIEJvcmRlclN0eWxlRGFzaGVkID0gJ2JzLWRhc2hlZCcsXHJcblxyXG4gIC8vIHNvbGlkXHJcbiAgQm9yZGVyU3R5bGVTb2xpZCA9ICdicy1zb2xpZCcsXHJcblxyXG4gIC8vIGRvdWJsZVxyXG4gIEJvcmRlclN0eWxlRG91YmxlID0gJ2JzLWRvdWJsZScsXHJcblxyXG4gIC8vIGdyb292ZVxyXG4gIEJvcmRlclN0eWxlR3Jvb3ZlID0gJ2JzLWdyb292ZScsXHJcblxyXG4gIC8vIHJpZGdlXHJcbiAgQm9yZGVyU3R5bGVSaWRnZSA9ICdicy1yaWRnZScsXHJcblxyXG4gIC8vIGluc2V0XHJcbiAgQm9yZGVyU3R5bGVJbnNldCA9ICdicy1pbnNldCcsXHJcblxyXG4gIC8vIG91dHNldFxyXG4gIEJvcmRlclN0eWxlT3V0c2V0ID0gJ2JzLW91dHNldCcsXHJcblxyXG4gIC8vIGludmFsaWRcclxuICBCb3JkZXJTdHlsZUludmFsaWQgPSAnYnMtaW52YWxpZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIENvbG9yUGFsZXR0ZVR5cGUge1xyXG5cclxuICAvLyBcclxuICBDb2xvclBhbGV0dGVSZWd1bGFyID0gJ2NvbG9yLXBhbGV0dGUtcmVndWxhcicsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yUGFsZXR0ZU9yZGVyZWREaXZlcmdpbmcgPSAncGFsZXR0ZS1vcmRlcmVkLWRpdmVyZ2luZycsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yUGFsZXR0ZU9yZGVyZWRMaW5lYXIgPSAncGFsZXR0ZS1vcmRlcmVkLWxpbmVhcidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFBhbGV0dGVGbGFncyB7XHJcblxyXG4gIC8vIFxyXG4gIFBhbGV0dGVGbGFnTm9uZSA9ICdwYWxldHRlLWZsYWctbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIFBhbGV0dGVGbGFnQ3VzdG9tID0gJ3BhbGV0dGUtZmxhZy1jdXN0b20nLFxyXG5cclxuICAvLyBcclxuICBQYWxldHRlRmxhZ05vdFF1YW50aXRhdGl2ZSA9ICdwYWxldHRlLWZsYWctbm90LXF1YW50aXRhdGl2ZScsXHJcblxyXG4gIC8vIFxyXG4gIFBhbGV0dGVGbGFnTm90Q2F0ZWdvcmljYWwgPSAncGFsZXR0ZS1mbGFnLW5vdC1jYXRlZ29yaWNhbCcsXHJcblxyXG4gIC8vIFxyXG4gIFBhbGV0dGVGbGFnTm90UmVmZXJlbmNlQmFuZCA9ICdwYWxldHRlLWZsYWctbm90LXJlZmVyZW5jZS1iYW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgUGFsZXR0ZUZsYWdOb3RCb3hwbG90ID0gJ3BhbGV0dGUtZmxhZy1ub3QtYm94cGxvdCcsXHJcblxyXG4gIC8vIFxyXG4gIFBhbGV0dGVGbGFnTm90RmlsbGVkTWFwTGlnaHQgPSAncGFsZXR0ZS1mbGFnLW5vdC1maWxsZWQtbWFwLWxpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgUGFsZXR0ZUZsYWdOb3RGaWxsZWRNYXBEYXJrID0gJ3BhbGV0dGUtZmxhZy1ub3QtZmlsbGVkLW1hcC1kYXJrJyxcclxuXHJcbiAgLy8gXHJcbiAgUGFsZXR0ZUZsYWdMZWdhY3kgPSAncGFsZXR0ZS1mbGFnLWxlZ2FjeSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIERlZmF1bHRQYWxldHRlVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNtYWxsTm9taW5hbCA9ICdwYWxldHRlLWRlZmF1bHQtc21hbGwtbm9taW5hbCcsXHJcblxyXG4gIC8vIFxyXG4gIExhcmdlTm9taW5hbCA9ICdwYWxldHRlLWRlZmF1bHQtbGFyZ2Utbm9taW5hbCcsXHJcblxyXG4gIC8vIFxyXG4gIE9yZGluYWwgPSAncGFsZXR0ZS1kZWZhdWx0LW9yZGluYWwnLFxyXG5cclxuICAvLyBcclxuICBRdWFudGl0YXRpdmVQb3NpdGl2ZSA9ICdwYWxldHRlLWRlZmF1bHQtcXVhbnQtcG9zJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVhbnRpdGF0aXZlTmVnYXRpdmUgPSAncGFsZXR0ZS1kZWZhdWx0LXF1YW50LW5lZycsXHJcblxyXG4gIC8vIFxyXG4gIFF1YW50aXRhdGl2ZURpdmVyZ2luZyA9ICdwYWxldHRlLWRlZmF1bHQtcXVhbnQtZGl2JyxcclxuXHJcbiAgLy8gXHJcbiAgUXVhbnRpdGF0aXZlUG9zaXRpdmVMaWdodCA9ICdwYWxldHRlLWRlZmF1bHQtcXVhbnQtcG9zLWxpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgUXVhbnRpdGF0aXZlTmVnYXRpdmVMaWdodCA9ICdwYWxldHRlLWRlZmF1bHQtcXVhbnQtbmVnLWxpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgUXVhbnRpdGF0aXZlRGl2ZXJnaW5nTGlnaHQgPSAncGFsZXR0ZS1kZWZhdWx0LXF1YW50LWRpdi1saWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIFF1YW50aXRhdGl2ZVBvc2l0aXZlQXJlYSA9ICdwYWxldHRlLWRlZmF1bHQtcXVhbnQtcG9zLWFyZWEnLFxyXG5cclxuICAvLyBcclxuICBRdWFudGl0YXRpdmVOZWdhdGl2ZUFyZWEgPSAncGFsZXR0ZS1kZWZhdWx0LXF1YW50LW5lZy1hcmVhJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVhbnRpdGF0aXZlRGl2ZXJnaW5nQXJlYSA9ICdwYWxldHRlLWRlZmF1bHQtcXVhbnQtZGl2LWFyZWEnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTaG93Qm91bmRzIHtcclxuXHJcbiAgLy8gXHJcbiAgQm90aCA9ICdzaG93LWJvdGgnLFxyXG5cclxuICAvLyBcclxuICBVcHBlciA9ICdzaG93LXVwcGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgTG93ZXIgPSAnc2hvdy1sb3dlcidcclxufVxyXG5cclxuLy8gU2FtcGxlIHZzLiBwb3B1bGF0aW9uIHN0YW5kYXJkIGRldmlhdGlvblxyXG5leHBvcnQgZW51bSBTdERldlR5cGUge1xyXG5cclxuICAvLyBcclxuICBTYW1wbGUgPSAnc3RkZXYtc2FtcGxlJyxcclxuXHJcbiAgLy8gXHJcbiAgUG9wdWxhdGlvbiA9ICdzdGRldi1wb3B1bGF0aW9uJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUmVmZXJlbmNlTGluZUZvcm11bGFHcm91cCB7XHJcblxyXG4gIC8vIFxyXG4gIE5vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIExpbmUgPSAnbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIEJhbmQgPSAnYmFuZCcsXHJcblxyXG4gIC8vIFxyXG4gIERpc3RyaWJ1dGlvbiA9ICdkaXN0cmlidXRpb24nLFxyXG5cclxuICAvLyBcclxuICBCb3hwbG90ID0gJ2JveHBsb3QnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBSZWZlcmVuY2VMaW5lU2NvcGVUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgUGVyQ2VsbCA9ICdwZXItY2VsbCcsXHJcblxyXG4gIC8vIFxyXG4gIFBlclBhbmUgPSAncGVyLXBhbmUnLFxyXG5cclxuICAvLyBcclxuICBQZXJUYWJsZSA9ICdwZXItdGFibGUnLFxyXG59XHJcblxyXG4vLyBob3cgc2hvdWxkIHRoZSBsaW5lIGJlIGxhYmVsZWRcclxuZXhwb3J0IGVudW0gUmVmZXJlbmNlTGluZUxhYmVsVHlwZSB7XHJcblxyXG4gIC8vIG5vIGxhYmVsXHJcbiAgTm9uZSA9ICdub25lJyxcclxuXHJcbiAgLy8gYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbGFiZWxcclxuICBBdXRvbWF0aWMgPSAnYXV0b21hdGljJyxcclxuXHJcbiAgLy8gXHJcbiAgVmFsdWUgPSAndmFsdWUnLFxyXG5cclxuICAvLyBcclxuICBDb21wdXRhdGlvbiA9ICdjb21wdXRhdGlvbicsXHJcblxyXG4gIC8vIGEgdXNlciBkZWZpbmVkIGxhYmVsXHJcbiAgQ3VzdG9tID0gJ2N1c3RvbScsXHJcbn1cclxuXHJcbi8vIGhvdyBzaG91bGQgdGhlIGxpbmUgYmUgY29tcHV0ZWRcclxuZXhwb3J0IGVudW0gUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlIHtcclxuXHJcbiAgLy8gYSB1c2VyIHNwZWNpZmllZCBjb25zdGFudCB2YWx1ZVxyXG4gIENvbnN0YW50ID0gJ2NvbnN0YW50JyxcclxuXHJcbiAgLy8gXHJcbiAgVG90YWwgPSAndG90YWwnLFxyXG5cclxuICAvLyB0b3RhbCBvZiBhbGwgdmFsdWVzIGF0IHRoZSBnaXZlbiBzY29wZSA8LSBpcyB0aGlzIGNvcnJlY3Q/IGxvb2tzIGxpa2UgY29tbWVudCBmcm9tIEZvcm11bGFUb3RhbFxyXG4gIFN1bSA9ICdzdW0nLFxyXG5cclxuICAvLyBtaW5pbXVtIHZhbHVlIGluIHRoZSBzY29wZVxyXG4gIE1pbiA9ICdtaW4nLFxyXG5cclxuICAvLyBtYXhpbXVtIHZhbHVlIGluIHRoZSBzY29wZVxyXG4gIE1heCA9ICdtYXgnLFxyXG5cclxuICAvLyBhdmVyYWdlIHZhbHVlIGluIHRoZSBzY29wZVxyXG4gIEF2ZXJhZ2UgPSAnYXZlcmFnZScsXHJcblxyXG4gIC8vIG1lZGlhbiB2YWx1ZSBpbiB0aGUgc2NvcGVcclxuICBNZWRpYW4gPSAnbWVkaWFuJyxcclxuXHJcbiAgLy8gdGhlIG4gcXVhbnRpbGVzIHZhbHVlcyBpbiB0aGUgc2NvcGVcclxuICBRdWFudGlsZXMgPSAncXVhbnRpbGVzJyxcclxuXHJcbiAgLy8gYSBnaXZlbiBwZXJjZW50aWxlIGluIHRoZSBzY29wZVxyXG4gIFBlcmNlbnRpbGUgPSAncGVyY2VudGlsZScsXHJcblxyXG4gIC8vIG1lYW4gKy0gc3RhbmRhcmQgZGV2aWF0aW9uXHJcbiAgU3RhbmRhcmREZXZpYXRpb24gPSAnc3RhbmRhcmQtZGV2aWF0aW9uJyxcclxuXHJcbiAgLy8gYSBnaXZlbiBjb25maWRlbmNlIGludGVydmFsIGFyb3VuZCB0aGUgbWVhblxyXG4gIENvbmZpZGVuY2VJbnRlcnZhbCA9ICdjb25maWRlbmNlLWludGVydmFsJyxcclxuXHJcbiAgLy8gXHJcbiAgTWVkaWFuQ29uZmlkZW5jZUludGVydmFsID0gJ21lZGlhbi1jb25maWRlbmNlLWludGVydmFsJ1xyXG59XHJcblxyXG4vLyBMaW5lIG9yIGNvbmZpZGVuY2UgaW50ZXJ2YWwgb3IgYm90aFxyXG5leHBvcnQgZW51bSBSZWZlcmVuY2VMaW5lQ29uZmlkZW5jZUludGVydmFsU3RhdGUge1xyXG5cclxuICAvLyBkaXNwbGF5IGxpbmUgb25seVxyXG4gIExpbmVPbmx5ID0gJ2xpbmUtb25seScsXHJcblxyXG4gIC8vIGRpc3BsYXkgdGhlIGxpbmUgYW5kIGEgY29uZmlkZW5jZSBpbnRlcnZhbFxyXG4gIExpbmVBbmRDb25maWRlbmNlSW50ZXJ2YWwgPSAnbGluZS1hbmQtaW50ZXJ2YWwnLFxyXG5cclxuICAvLyBkaXNwbGF5IGNvbmZpZGVuY2UgaW50ZXJ2YWwgb25seVxyXG4gIENvbmZpZGVuY2VJbnRlcnZhbE9ubHkgPSAnaW50ZXJ2YWwtb25seSdcclxufVxyXG5cclxuLy8gdHlwZSBvZiBkaXN0cmlidXRpb24uIGkuZS4gUGVyY2VudGFnZSwgUGVyY2VudGlsZSwgUXVhbnRpbGUsIGFuZCBTdGFuZGFyZCBEZXZpYXRpb25cclxuZXhwb3J0IGVudW0gUmVmZXJlbmNlTGluZURpc3RyaWJ1dGlvblR5cGUge1xyXG5cclxuICAvLyBkaXN0cmlidXRpb24gdHlwZSBwZXJjZW50YWdlXHJcbiAgUGVyY2VudGFnZXMgPSAncGVyY2VudGFnZXMnLFxyXG5cclxuICAvLyBkaXN0cmlidXRpb24gdHlwZSBwZXJjZW50aWxlXHJcbiAgUGVyY2VudGlsZXMgPSAncGVyY2VudGlsZXMnLFxyXG5cclxuICAvLyBkaXN0cmlidXRpb24gdHlwZSBxdWFudGlsZVxyXG4gIFF1YW50aWxlcyA9ICdxdWFudGlsZXMnLFxyXG5cclxuICAvLyBkaXN0cmlidXRpb24gdHlwZSBzdGFuZGFyZCBkZXZpYXRpb25cclxuICBTdGFuZGFyZERldmlhdGlvbiA9ICdzdGFuZGFyZC1kZXZpYXRpb24nXHJcbn1cclxuXHJcbi8vIHRoZSBraW5kIG9mIExPRCBjYWxjIHRvIHVzZSBmb3IgYSBnaXZlbiByZWZlcmVuY2UgbGluZVxyXG5leHBvcnQgZW51bSBSZWZlcmVuY2VMaW5lTE9EQ2FsY1R5cGUge1xyXG5cclxuICAvLyBDcmVhdGUgYSBmb3JtdWxhIHVzaW5nIGEgRklYRUQtbGlrZSBsZXZlbC1vZi1kZXRhaWwgY2FsY3VsYXRpb24sIHRvIHdoaWNoIHNoZWV0IGZpbHRlcnMgYXBwbHksIHRoYXQgd2lsbCBnbyBvbnRvIGEgc3BlY2lmaWMgc2hlZXRcclxuICBNZWFzdXJlRm9ybXVsYSA9ICdtZWFzdXJlLWZvcm11bGEnLFxyXG5cclxuICAvLyBDcmVhdGUgYSBib29sZWFuIGZvcm11bGEgdGhhdCBjYW4gYmUgdXNlZCBhcyBhIGZpbHRlclxyXG4gIEJvb2xlYW5GaWx0ZXIgPSAnYm9vbGVhbi1maWx0ZXInXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBCb3hwbG90V2hpc2tlclR5cGUge1xyXG5cclxuICAvLyBcclxuICBTdGFuZGFyZCA9ICdzdGFuZGFyZCcsXHJcblxyXG4gIC8vIFxyXG4gIE1pbm1heCA9ICdtaW5tYXgnXHJcbn1cclxuXHJcbi8vIGNhdGVnb3JpZXMgb2YgY29ubmVjdGlvbiB0eXBlcyBkaXNwbGF5ZWQgYnkgdGhlIGNvbm5lY3Rpb24gVUlcclxuZXhwb3J0IGVudW0gQ29ubmVjdGlvblR5cGVDYXRlZ29yeSB7XHJcblxyXG4gIC8vIHN0YW5kYXJkIGRhdGFiYXNlXHJcbiAgQ1RDX0RhdGFiYXNlID0gJ2RhdGFiYXNlJyxcclxuXHJcbiAgLy8gJ01vcmUgSXRlbXMgLi4uJyBtZXRhIGl0ZW1cclxuICBDVENfTW9yZSA9ICdtb3JlJyxcclxuXHJcbiAgLy8gT3RoZXIgZmlsZSB0eXBlc1xyXG4gIENUQ19PdGhlciA9ICdvdGhlcicsXHJcblxyXG4gIC8vIGludmFsaWQgY29ubmVjdGlvbiBjYXRlZ29yeVxyXG4gIENUQ19JbnZhbGlkID0gJ2ludmFsaWQnXHJcbn1cclxuXHJcbi8vIGEgbG9naWNhbCBncm91cGluZyBvZiBjb25uZWN0aW9uIHR5cGVzIGRpc3BsYXllZCBieSB0aGUgY29ubmVjdGlvbiBVSVxyXG5leHBvcnQgZW51bSBDb25uZWN0aW9uVHlwZUdyb3VwIHtcclxuXHJcbiAgLy8gaW4gYSBmaWxlXHJcbiAgQ1RHX0ZpbGUgPSAnZmlsZScsXHJcblxyXG4gIC8vIG9uIGEgc2VydmVyXHJcbiAgQ1RHX1NlcnZlciA9ICdzZXJ2ZXInLFxyXG5cclxuICAvLyBvbiBhIHJlY2VudCBzZXJ2ZXJcclxuICBDVEdfTXJ1U2VydmVyID0gJ21ydS1zZXJ2ZXInLFxyXG5cclxuICAvLyBpbnZhbGlkIGdyb3VwXHJcbiAgQ1RHX0ludmFsaWQgPSAnaW52YWxpZCdcclxufVxyXG5cclxuLy8gVGhlIHR5cGUgb2YgbWV0YWRhdGEgYSBjb2x1bW4gY29udGFpbnNcclxuZXhwb3J0IGVudW0gQ3ViZU1ldGFkYXRhQ2F0ZWdvcnkge1xyXG5cclxuICAvLyBjdWJlJ3MgbmFtZVxyXG4gIENNQ19OYW1lID0gJ25hbWUnLFxyXG5cclxuICAvLyBjdWJlJ3MgZGVzY3JpcHRpb25cclxuICBDTUNfRGVzY3JpcHRpb24gPSAnZGVzY3JpcHRpb24nLFxyXG5cclxuICAvLyBjdWJlJ3MgbGFzdCB1cGRhdGVkIHRpbWVzdGFtcFxyXG4gIENNQ19MYXN0VXBkYXRlZCA9ICdsYXN0LXVwZGF0ZWQnLFxyXG5cclxuICAvLyBpbnZhbGlkXHJcbiAgQ01DX0ludmFsaWQgPSAnaW52YWxpZCdcclxufVxyXG5cclxuLy8gVGhlIHR5cGUgb2Ygd2lkZ2V0IHRvIGRpc3BsYXkgdG8gdGhlIHVzZXIgd2hlbiB0aGV5IGFyZSBzcGVjaWZ5aW5nIGNvbm5lY3Rpb24gaW5mb1xyXG5leHBvcnQgZW51bSBDb25uZWN0aW9uV2lkZ2V0VHlwZSB7XHJcblxyXG4gIC8vIHNob3cgdGhlIGpvaW4gYXJlYVxyXG4gIENXVF9Kb2luQXJlYSA9ICdqb2luLWFyZWEnLFxyXG5cclxuICAvLyBzaG93IHRoZSBjdWJlIHNlbGVjdGlvbiB1aVxyXG4gIENXVF9DdWJlU2VsZWN0aW9uID0gJ2N1YmUtc2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gc2hvdyB0aGUgZ29vZ2xlIGFuYWx5dGljcyB1aVxyXG4gIENXVF9Hb29nbGVBbmFseXRpY3MgPSAnZ29vZ2xlLWFuYWx5dGljcycsXHJcblxyXG4gIC8vIHNob3cgdGhlIHRhYmxlYXUgc2VydmVyIHVpXHJcbiAgQ1dUX1RhYmxlYXVTZXJ2ZXIgPSAndGFibGVhdS1zZXJ2ZXInLFxyXG5cclxuICAvLyBkbyBub3Qgc2hvdyBhbnkgY29ubmVjdGlvbiB3aWRnZXRcclxuICBDV1RfTm9XaWRnZXQgPSAnbm8td2lkZ2V0JyxcclxuXHJcbiAgLy8gaW52YWxpZFxyXG4gIENXVF9JbnZhbGlkID0gJ2ludmFsaWQnXHJcbn1cclxuXHJcbi8vIFRoZSB0eXBlIG9mIGdvb2dsZSBhbmFseXRpY3MgYmFzaWMgaW5mb1xyXG5leHBvcnQgZW51bSBHb29nbGVCYXNpY0luZm9UeXBlIHtcclxuXHJcbiAgLy8gZ29vZ2xlIGFuYWx5dGljcyBhY2NvdW50XHJcbiAgR0FfQWNjb3VudCA9ICdnYS1hY2NvdW50JyxcclxuXHJcbiAgLy8gZ29vZ2xlIGFuYWx5dGljcyBwcm9wZXJ0eVxyXG4gIEdBX1Byb3BlcnR5ID0gJ2dhLXByb3BlcnR5JyxcclxuXHJcbiAgLy8gZ29vZ2xlIGFuYWx5dGljcyB2aWV3XHJcbiAgR0FfVmlldyA9ICdnYS12aWV3JyxcclxuXHJcbiAgLy8gaW52YWxpZFxyXG4gIEdBX0ludmFsaWQgPSAnaW52YWxpZCdcclxufVxyXG5cclxuLy8gVGhlIHdheSBpbiB3aGljaCBhIHBpZWNlIG9mIGNvbm5lY3Rpb24gaW5mb3JtYXRpb24gaXMgc3BlY2lmaWVkXHJcbmV4cG9ydCBlbnVtIENvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVHlwZSB7XHJcblxyXG4gIC8vIFVzZXMgYSBjb21ibyBib3hcclxuICBDU1RfQ29tYm9Cb3ggPSAnY29tYm8tYm94JyxcclxuXHJcbiAgLy8gVXNlcyBhIGxpbmUgZWRpdFxyXG4gIENTVF9MaW5lRWRpdCA9ICdsaW5lLWVkaXQnLFxyXG5cclxuICAvLyBVc2VzIGEgbGluZSBlZGl0IHdpdGggYSBicm93c2UgYnV0dG9uIG5leHQgdG8gaXRcclxuICBDU1RfTGluZUVkaXRCcm93c2UgPSAnbGluZS1lZGl0LWJyb3dzZScsXHJcblxyXG4gIC8vIGludmFsaWRcclxuICBDU1RfSW52YWxpZCA9ICdpbnZhbGlkJ1xyXG59XHJcblxyXG4vLyBHQSBEYXRlIFJhbmdlXHJcbmV4cG9ydCBlbnVtIERhdGVSYW5nZSB7XHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUZpcnN0ID0gJ2RhdGUtcmFuZ2UtZmlyc3QnLFxyXG5cclxuICAvLyBcclxuICBEYXRlUmFuZ2VMYXN0MzBEYXlzID0gJ2RhdGUtcmFuZ2UtbGFzdDMwJyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0ZVJhbmdlVG9kYXkgPSAnZGF0ZS1yYW5nZS10b2RheScsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZVllc3RlcmRheSA9ICdkYXRlLXJhbmdlLXllc3RlcmRheScsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUxhc3RXZWVrID0gJ2RhdGUtcmFuZ2UtbGFzdC13ZWVrJyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0ZVJhbmdlTGFzdE1vbnRoID0gJ2RhdGUtcmFuZ2UtbGFzdC1tb250aCcsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUxhc3RZZWFyID0gJ2RhdGUtcmFuZ2UtbGFzdC15ZWFyJyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0ZVJhbmdlVGhpc1dlZWtUb1llc3RlcmRheSA9ICdkYXRlLXJhbmdlLXRoaXMtd2Vlay10by15ZXN0ZXJkYXknLFxyXG5cclxuICAvLyBcclxuICBEYXRlUmFuZ2VUaGlzTW9udGhUb1llc3RlcmRheSA9ICdkYXRlLXJhbmdlLXRoaXMtbW9udGgtdG8teWVzdGVyZGF5JyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0ZVJhbmdlVGhpc1llYXJUb1llc3RlcmRheSA9ICdkYXRlLXJhbmdlLXRoaXMteWVhci10by15ZXN0ZXJkYXknLFxyXG5cclxuICAvLyBcclxuICBEYXRlUmFuZ2VMYXN0V2Vla1RvWWVzdGVyZGF5ID0gJ2RhdGUtcmFuZ2UtbGFzdC13ZWVrLXRvLXllc3RlcmRheScsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUxhc3RNb250aFRvWWVzdGVyZGF5ID0gJ2RhdGUtcmFuZ2UtbGFzdC1tb250aC10by15ZXN0ZXJkYXknLFxyXG5cclxuICAvLyBcclxuICBEYXRlUmFuZ2VMYXN0WWVhclRvWWVzdGVyZGF5ID0gJ2RhdGUtcmFuZ2UtbGFzdC15ZWFyLXRvLXllc3RlcmRheScsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUZpeGVkUmFuZ2UgPSAnZGF0ZS1yYW5nZS1maXhlZC1yYW5nZScsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUZpeGVkU3RhcnQgPSAnZGF0ZS1yYW5nZS1maXhlZC1zdGFydCcsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUNvdW50ID0gJ2RhdGUtcmFuZ2UtY291bnQnXHJcbn1cclxuXHJcbi8vIFNwZWNpZmllcyB0aGUgdHlwZSBvZiB3aWRnZXQgdG8gc2hvdyBpbiBDb25uZWN0U2VydmVyV2lkZ2V0XHJcbmV4cG9ydCBlbnVtIENvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlIHtcclxuXHJcbiAgLy8gaW52YWxpZFxyXG4gIENTV1RfSW52YWxpZCA9ICdpbnZhbGlkJyxcclxuXHJcbiAgLy8gbWljcm9zb2Z0IGFjY2Vzc1xyXG4gIENTV1RfQWNjZXNzID0gJ2FjY2VzcycsXHJcblxyXG4gIC8vIGdlbmVyaWMgb2RiY1xyXG4gIENTV1RfT0RCQyA9ICdvZGJjJyxcclxuXHJcbiAgLy8gY3ViZXNcclxuICBDU1dUX0N1YmUgPSAnY3ViZScsXHJcblxyXG4gIC8vIHJlbGF0aW9uYWwgZGF0YSBzb3VyY2VzXHJcbiAgQ1NXVF9SZWxhdGlvbmFsID0gJ3JlbGF0aW9uYWwnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBBdXRoZW50aWNhdGlvbkVudW1zTW9kZSB7XHJcblxyXG4gIC8vIG5vIGF1dGhlbnRpY2F0aW9uIHdpZGdldFxyXG4gIEF1dGhNb2RlTm9uZSA9ICdhdXRoLW1vZGUtbm9uZScsXHJcblxyXG4gIC8vIHVzZXJuYW1lIGFuZCBwYXNzd29yZFxyXG4gIEF1dGhNb2RlQmFzaWMgPSAnYXV0aC1tb2RlLWJhc2ljJyxcclxuXHJcbiAgLy8gdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGNhbiBiZSBibGFua1xyXG4gIEF1dGhNb2RlQmFzaWNOb1ZhbGlkYXRlRmllbGRzID0gJ2F1dGgtbW9kZS1iYXNpYy1uby12YWxpZGF0ZS1maWVsZHMnLFxyXG5cclxuICAvLyBvbmx5IHVzZXJuYW1lXHJcbiAgQXV0aE1vZGVCYXNpY1VzZXJOYW1lT25seSA9ICdhdXRoLW1vZGUtYmFzaWMtdXNlcm5hbWUtb25seScsXHJcblxyXG4gIC8vIGF3cyBhY2Nlc3Mga2V5IGFuZCBzZWNyZXQgSURcclxuICBBdXRoTW9kZUJhc2ljQVdTID0gJ2F1dGgtbW9kZS1iYXNpYy1hd3MnLFxyXG5cclxuICAvLyB1c2VybmFtZSwgcGFzc3dvcmQsIGFuZCBhIGxpc3Qgb2YgQXV0aE9wdGlvbnMgd2l0aCByYWRpbyBidXR0b25zXHJcbiAgQXV0aE1vZGVSYWRpbyA9ICdhdXRoLW1vZGUtcmFkaW8nLFxyXG5cclxuICAvLyBMaWtlIEF1dGhNb2RlUmFkaW8sIGJ1dCBlbmFibGUgdXNlcm5hbWUvcGFzc3dvcmQgZXZlbiBmb3IgaW50ZWdyYXRlZCBhdXRoXHJcbiAgQXV0aE1vZGVSYWRpb1VuaW5kZW50ZWQgPSAnYXV0aC1tb2RlLXJhZGlvLXVuaW5kZW50ZWQnLFxyXG5cclxuICAvLyB1c2VybmFtZSwgcGFzc3dvcmQsIGFuZCBhIGxpc3Qgb2YgQXV0aE9wdGlvbnMgd2l0aCBhIGNvbWJvYm94XHJcbiAgQXV0aE1vZGVDb21ib0JveCA9ICdhdXRoLW1vZGUtY29tYm9ib3gnLFxyXG5cclxuICAvLyBMaWtlIEF1dGhNb2RlQ29tYm9ib3gsIGJ1dCB3aXRoIG9wdGlvbiBub3QgcmVxdWlyaW5nIHVzZXJuYW1lL3Bhc3N3b3JkXHJcbiAgQXV0aE1vZGVDb21ib0JveEludGVncmF0ZWQgPSAnYXV0aC1tb2RlLWNvbWJvYm94LWludGVncmF0ZWQnLFxyXG5cclxuICAvLyBkcml2ZXIsIGF1dGhlbnRpY2F0aW9uLCB1c2VybmFtZSwgcmVhbG0sIGV0Y1xyXG4gIEF1dGhNb2RlSGl2ZSA9ICdhdXRoLW1vZGUtaGl2ZScsXHJcblxyXG4gIC8vIG5vbmUsIGF6dXJlIG1hcmtldHBsYWNlIGFjY291bnQsIGV4cGxpY2l0XHJcbiAgQXV0aE1vZGVPRGF0YSA9ICdhdXRoLW1vZGUtb2RhdGEnLFxyXG5cclxuICAvLyBlZGl0aW9uLCBhdXRoZW50aWNhdGlvbiwgc3NvIGRvbWFpbiwgZXRjXHJcbiAgQXV0aE1vZGVTaGFyZVBvaW50ID0gJ2F1dGgtbW9kZS1zaGFyZXBvaW50JyxcclxuXHJcbiAgLy8gdXNlcm5hbWUsIHBhc3N3b3JkLCBjbGllbnQsICYgbGFuZ3VhZ2VcclxuICBBdXRoTW9kZVNBUEJXID0gJ2F1dGgtbW9kZS1zYXBidycsXHJcblxyXG4gIC8vIEFiaWxpdHkgdG8gc3dpdGNoIGJldHdlZW4gdHdvIGRpZmZlcmVudCBhdXRoIG1vZGVzIGVhY2ggaW4gdGhlaXIgb3duIG1vZGFsIGRpYWxvZ3MgKGJhc2ljIGFuZCBvYXV0aClcclxuICBBdXRoTW9kZVN3aXRjaE1vZGFsID0gJ2F1dGgtbW9kZS1zd2l0Y2gtbW9kYWwnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBBdXRoZW50aWNhdGlvbkVudW1zUmVjb25uZWN0TW9kZSB7XHJcblxyXG4gIC8vIEF1dGggbm90IG5lZWRlZCBmb3IgcmVjb25uZWN0XHJcbiAgUmVjb25uZWN0TW9kZU5vbmUgPSAncmVjb25uZWN0LW1vZGUtbm9uZScsXHJcblxyXG4gIC8vIFVzZXJuYW1lIGFuZCBwYXNzd29yZFxyXG4gIFJlY29ubmVjdE1vZGVCYXNpYyA9ICdyZWNvbm5lY3QtbW9kZS1iYXNpYycsXHJcblxyXG4gIC8vIEFjY2VzcyBmaWxlXHJcbiAgUmVjb25uZWN0TW9kZUFjY2VzcyA9ICdyZWNvbm5lY3QtbW9kZS1hY2Nlc3MnLFxyXG5cclxuICAvLyBNaWNyb3NvZnQgQXp1cmUgRGF0YSBNYXJrZXQgKE9EYXRhKVxyXG4gIFJlY29ubmVjdE1vZGVEYXRhTWFya2V0ID0gJ3JlY29ubmVjdC1tb2RlLWRhdGEtbWFya2V0JyxcclxuXHJcbiAgLy8gR29vZ2xlIE9BdXRoXHJcbiAgUmVjb25uZWN0TW9kZUdvb2dsZU9BdXRoID0gJ3JlY29ubmVjdC1tb2RlLWdvb2dsZS1vYXV0aCcsXHJcblxyXG4gIC8vIFNhbGVzZm9yY2VPQXV0aCwgd2l0aCB0aGUgb3B0aW9uIG9mIHVzZXJuYW1lL3Bhc3N3b3JkIGF1dGhcclxuICBSZWNvbm5lY3RNb2RlU2FsZXNmb3JjZU9BdXRoID0gJ3JlY29ubmVjdC1tb2RlLXNhbGVzZm9yY2Utb2F1dGgnLFxyXG5cclxuICAvLyBXZWIgZGF0YSBjb25uZWN0b3JcclxuICBSZWNvbm5lY3RNb2RlV2ViRGF0YSA9ICdyZWNvbm5lY3QtbW9kZS13ZWItZGF0YSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEF1dGhlbnRpY2F0aW9uRW51bXNBdXRoT3B0aW9uIHtcclxuXHJcbiAgLy8gRklSU1RcclxuICBBdXRoRXhwbGljaXQgPSAnYXV0aC1vcHRpb24tZXhwbGljaXQnLFxyXG5cclxuICAvLyBcclxuICBBdXRoRXhwbGljaXRVbmluZGVudGVkID0gJ2F1dGgtb3B0aW9uLWV4cGxpY2l0LXVuaW5kZW50ZWQnLFxyXG5cclxuICAvLyBcclxuICBBdXRoVXNlV2luZG93cyA9ICdhdXRoLW9wdGlvbi11c2Utd2luZG93cycsXHJcblxyXG4gIC8vIFxyXG4gIEF1dGhVc2VXaW5kb3dzUHJlZmVycmVkID0gJ2F1dGgtb3B0aW9uLXdpbmRvd3MtcHJlZmVycmVkJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aFRlcmFkYXRhID0gJ2F1dGgtb3B0aW9uLXRlcmFkYXRhJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aExEQVAgPSAnYXV0aC1vcHRpb24tbGRhcCcsXHJcblxyXG4gIC8vIFxyXG4gIEF1dGhWaXJ0dWFsTm9kZSA9ICdhdXRoLW9wdGlvbi12aXJ0dWFsLW5vZGUnLFxyXG5cclxuICAvLyBcclxuICBBdXRoT0RhdGFBY2NvdW50ID0gJ2F1dGgtb3B0aW9uLW9kYXRhJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aE5vbmUgPSAnYXV0aC1vcHRpb24tbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEF1dGhLZXJiZXJvcyA9ICdhdXRoLW9wdGlvbi1rZXJiZXJvcycsXHJcblxyXG4gIC8vIEludHJvZHVjZWQgZm9yIEtlcmJlcm9zIHdpdGggZmFsbGJhY2ssIHJlY29nbml6aW5nIHRoYXQgdGhlIGRiIG1heSBvciBtYXkgbm90IGJlIG9uIFdpbmRvd3NcclxuICBBdXRoSW50ZWdyYXRlZCA9ICdhdXRoLW9wdGlvbi1pbnRlZ3JhdGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aFVzZXJuYW1lID0gJ2F1dGgtb3B0aW9uLXVzZXJuYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aFVzZXJuYW1lQW5kUGFzc3dvcmQgPSAnYXV0aC1vcHRpb24tdXNlcm5hbWUtYW5kLXBhc3N3b3JkJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aFNTTCA9ICdhdXRoLW9wdGlvbi1zc2wnLFxyXG5cclxuICAvLyBcclxuICBBdXRoSERJRW11bGF0b3IgPSAnYXV0aC1oZGktZW11bGF0b3InLFxyXG5cclxuICAvLyBcclxuICBBdXRoSERJU2VydmljZSA9ICdhdXRoLWhkaS1zZXJ2aWNlJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aEhUVFAgPSAnYXV0aC1odHRwJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aEhUVFBTID0gJ2F1dGgtaHR0cHMnLFxyXG5cclxuICAvLyBcclxuICBBdXRoQWNjZXNzTm9TZWN1cml0eSA9ICdhdXRoLW9wdGlvbi1hY2Nlc3Mtbm8nLFxyXG5cclxuICAvLyBcclxuICBBdXRoQWNjZXNzWWVzU2VjdXJpdHkgPSAnYXV0aC1vcHRpb24tYWNjZXNzLXllcycsXHJcblxyXG4gIC8vIFxyXG4gIEF1dGhPQXV0aCA9ICdhdXRoLW9hdXRoJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aEZvcm1zID0gJ2F1dGgtZm9ybXMnLFxyXG5cclxuICAvLyBcclxuICBBdXRoVGhpcmRQYXJ0eVNTTyA9ICdhdXRoLXRoaXJkLXBhcnR5LVNTTycsXHJcblxyXG4gIC8vIExBU1RcclxuICBBdXRoSW52YWxpZCA9ICdhdXRoLW9wdGlvbi1pbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aFNBTUxJZFAgPSAnYXV0aC1vcHRpb24tc2FtbC1pZHAnXHJcbn1cclxuXHJcbi8vIGRhdGEgc291cmNlIHZhbGlkYXRpb24gbW9kZXNcclxuZXhwb3J0IGVudW0gRGF0YVNvdXJjZVBhcnNlclZhbGlkYXRpb25Nb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgV29ya2Jvb2tMb2FkVmFsaWRhdGlvbiA9ICd3b3JrYm9vay1sb2FkLXZhbGlkYXRpb24nLFxyXG5cclxuICAvLyBcclxuICBBdXRvVmFsaWRhdGlvbiA9ICdhdXRvLXZhbGlkYXRpb24nLFxyXG5cclxuICAvLyBcclxuICBGb3JjZVZhbGlkYXRpb24gPSAnZm9yY2UtdmFsaWRhdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIFByZXZlbnRWYWxpZGF0aW9uID0gJ3ByZXZlbnQtdmFsaWRhdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIFByZXZlbnRWYWxpZGF0aW9uQW5kVGhyb3cgPSAncHJldmVudC12YWxpZGF0aW9uLWFuZC10aHJvdydcclxufVxyXG5cclxuLy8gRW51bSBmb3IgRGF0YUdyaWQvTWV0YWRhdGFHcmlkIGZpZWxkcyByZW9yZGVyaW5nXHJcbmV4cG9ydCBlbnVtIEZpZWxkT3JkZXJUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgREFUQVNPVVJDRV9PUkRFUiA9ICdkYXRhc291cmNlLW9yZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQUxQSEFfUEVSX1RBQkxFID0gJ2FscGhhLXBlci10YWJsZScsXHJcblxyXG4gIC8vIFxyXG4gIEFMUEhBQkVUSUNBTF9PUkRFUiA9ICdhbHBoYWJldGljYWwtb3JkZXInLFxyXG5cclxuICAvLyBcclxuICBDVVNUT01fT1JERVIgPSAnY3VzdG9tLW9yZGVyJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTGluZUludGVycG9sYXRpb25Nb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgTElNX0xpbmVhciA9ICdsaW0tbGluZWFyJyxcclxuXHJcbiAgLy8gXHJcbiAgTElNX1N0ZXAgPSAnbGltLXN0ZXAnLFxyXG5cclxuICAvLyBcclxuICBMSU1fSnVtcCA9ICdsaW0tanVtcCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIExpbmVNYXJrZXJQb3NpdGlvbiB7XHJcblxyXG4gIC8vIFxyXG4gIExNUF9MZWZ0ID0gJ2xtcC1sZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgTE1QX0NlbnRlciA9ICdsbXAtY2VudGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgTE1QX1JpZ2h0ID0gJ2xtcC1yaWdodCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZvbGRlclJvbGUge1xyXG5cclxuICAvLyBcclxuICBGT0xERVJfRElNRU5TSU9OUyA9ICdkaW1lbnNpb25zJyxcclxuXHJcbiAgLy8gXHJcbiAgRk9MREVSX01FQVNVUkVTID0gJ21lYXN1cmUnLFxyXG5cclxuICAvLyBcclxuICBGT0xERVJfR1JPVVBTID0gJ2dyb3VwcycsXHJcblxyXG4gIC8vIFxyXG4gIEZPTERFUl9QQVJBTUVURVJTID0gJ3BhcmFtZXRlcnMnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBGaWVsZFR5cGVJY29uU2V0IHtcclxuXHJcbiAgLy8gXHJcbiAgRlRfU0VUX0FMTCA9ICdhbGwnLFxyXG5cclxuICAvLyBcclxuICBGVF9TRVRfQ1VCRV9NRUFTVVJFUyA9ICdjdWJlLW1lYXN1cmVzJyxcclxuXHJcbiAgLy8gXHJcbiAgRlRfU0VUX0NVQkVfRElNRU5TSU9OUyA9ICdjdWJlLWRpbWVuc2lvbnMnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBGaWVsZFBpdm90U3RyYXRlZ3kge1xyXG5cclxuICAvLyBcclxuICBQSVZPVF9PTl9LRVkgPSAncGl2b3Qtb24ta2V5JyxcclxuXHJcbiAgLy8gXHJcbiAgUElWT1RfT05fQUxJQVMgPSAncGl2b3Qtb24tYWxpYXMnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBBbGlhc1R5cGUge1xyXG5cclxuICAvLyBcclxuICBBTElBU19OT1RTRVQgPSAnYWxpYXMtbm90LXNldCcsXHJcblxyXG4gIC8vIFxyXG4gIEFMSUFTX0JFR0lOID0gJ2FsaWFzLWJlZ2luJyxcclxuXHJcbiAgLy8gXHJcbiAgQUxJQVNfS0VZID0gJ2FsaWFzLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEFMSUFTX0tFWV9OQU1FID0gJ2FsaWFzLWtleS1uYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgQUxJQVNfS0VZX01FRE5BTUUgPSAnYWxpYXMta2V5LW1lZG5hbWUnLFxyXG5cclxuICAvLyBcclxuICBBTElBU19LRVlfTE9OR05BTUUgPSAnYWxpYXMta2V5LWxvbmduYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgQUxJQVNfTkFNRSA9ICdhbGlhcy1uYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgQUxJQVNfTkFNRV9LRVkgPSAnYWxpYXMtbmFtZS1rZXknLFxyXG5cclxuICAvLyBcclxuICBBTElBU19NRUROQU1FID0gJ2FsaWFzLW1lZG5hbWUnLFxyXG5cclxuICAvLyBcclxuICBBTElBU19NRUROQU1FX0tFWSA9ICdhbGlhcy1tZWRuYW1lLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEFMSUFTX0xPTkdOQU1FID0gJ2FsaWFzLWxvbmduYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgQUxJQVNfTE9OR05BTUVfS0VZID0gJ2FsaWFzLWxvbmduYW1lLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEFMSUFTX0VORCA9ICdhbGlhcy1lbmQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBBbGlhc1R5cGVzIHtcclxuXHJcbiAgLy8gXHJcbiAgTUFTS19BTElBU19LRVkgPSAnbWFzay1hbGlhcy1rZXknLFxyXG5cclxuICAvLyBcclxuICBNQVNLX0FMSUFTX05BTUUgPSAnbWFzay1hbGlhcy1uYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgTUFTS19BTElBU19NRUROQU1FID0gJ21hc2stYWxpYXMtbWVkbmFtZScsXHJcblxyXG4gIC8vIFxyXG4gIE1BU0tfQUxJQVNfTE9OR05BTUUgPSAnbWFzay1hbGlhcy1sb25nbmFtZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZpZWxkUm9sZSB7XHJcblxyXG4gIC8vIFxyXG4gIFJPTEVfRElNRU5TSU9OID0gJ2RpbWVuc2lvbicsXHJcblxyXG4gIC8vIFxyXG4gIFJPTEVfTUVBU1VSRSA9ICdtZWFzdXJlJyxcclxuXHJcbiAgLy8gXHJcbiAgUk9MRV9VTktOT1dOID0gJ3Vua25vd24nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBGaWVsZFR5cGUge1xyXG5cclxuICAvLyBcclxuICBUWVBFX1FVQU5USVRBVElWRSA9ICdxdWFudGl0YXRpdmUnLFxyXG5cclxuICAvLyBcclxuICBUWVBFX09SRElOQUwgPSAnb3JkaW5hbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRZUEVfTk9NSU5BTCA9ICdub21pbmFsJyxcclxuXHJcbiAgLy8gXHJcbiAgVFlQRV9VTktOT1dOID0gJ3Vua25vd24nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBEYXRhU291cmNlT3JkZXIge1xyXG5cclxuICAvLyBcclxuICBEU09fQUxQSEFCRVRJQyA9ICdkc28tYWxwaGFiZXRpYycsXHJcblxyXG4gIC8vIFxyXG4gIERTT19PUkRJTkFMID0gJ2Rzby1vcmRpbmFsJ1xyXG59XHJcblxyXG4vLyBXaGVyZSB0aGUgY29sdW1uIGNvbWVzIGZyb21cclxuZXhwb3J0IGVudW0gQ29sdW1uQ2xhc3Mge1xyXG5cclxuICAvLyBBIG1ldGFkYXRhIGNvbHVtbiAoTyBvciBRIE1lYXN1cmVzKVxyXG4gIENPTF9NRVRBREFUQSA9ICdjb2wtbWV0YWRhdGEnLFxyXG5cclxuICAvLyBBIHBoeXNpY2FsIGNvbHVtbiBvbiB0aGUgZGF0YWJhc2VcclxuICBDT0xfREFUQUJBU0UgPSAnY29sLWRhdGFiYXNlJyxcclxuXHJcbiAgLy8gQSBudW1iZXJpYyBiaW4gKGEgc3BlY2lhbCBraW5kIG9mIGNhbGN1bGF0ZWQgY29sdW1uKVxyXG4gIENPTF9OVU1FUklDQklOID0gJ2NvbC1udW1lcmljYmluJyxcclxuXHJcbiAgLy8gQSBDYXRlZ29yaWNhbCBiaW4gKGdyb3VwKVxyXG4gIENPTF9DQVRFR09SSUNBTEJJTiA9ICdjb2wtY2F0ZWdvcmljYWxiaW4nLFxyXG5cclxuICAvLyBBIGNvbHVtbiBpbnN0YW5jZVxyXG4gIENPTF9JTlNUQU5DRSA9ICdjb2wtaW5zdGFuY2UnLFxyXG5cclxuICAvLyBBIChyYXcpIG1keCBjYWxjdWxhdGVkIGNvbHVtblxyXG4gIENPTF9NRFhDQUxDID0gJ2NvbC1tZHhjYWxjJyxcclxuXHJcbiAgLy8gQSB1c2VyLWRlZmluZWQgY2FsY3VsYXRlZCBjb2x1bW4sIFRhYmxlYXUgZXhwcmVzc2lvbiBzeW50YXhcclxuICBDT0xfVVNFUkNBTEMgPSAnY29sLXVzZXJjYWxjJyxcclxuXHJcbiAgLy8gQSBjb2x1bW4gdGhhdCB3b3VsZCBoYXZlIGJlZW4gQ09MX0RBVEFCQVNFLCBidXQgdGhlIHVuZGVybHlpbmcgZGF0YWJhc2UgY29sdW1uIGRvZXMgbm90IGV4aXN0XHJcbiAgQ09MX0RBTkdMSU5HID0gJ2NvbC1kYW5nbGluZycsXHJcblxyXG4gIC8vIEEgY29sdW1uIHRoYXQgY29udGFpbnMgbG9jYWwgc3VwcGxpZWQgZGF0YSAoZS5nLiBMYXRpdHVkZSlcclxuICBDT0xfTE9DQUxEQVRBID0gJ2NvbC1sb2NhbGRhdGEnLFxyXG5cclxuICAvLyBBIGNvbHVtbiB0aGF0IGNvbnRhaW5zIGEgdmlzdWFsIG1vZGVsIGF0dHJpYnV0ZSAoZS5nLiBQYW5lSW5kZXgsIENvbG9yLCAuLi4pXHJcbiAgQ09MX1ZJU1VBTERBVEEgPSAnY29sLXZpc3VhbGRhdGEnLFxyXG5cclxuICAvLyBBIGNvbHVtbiB0aGF0J3MgYSBHcm91cCAoYSBcIiBTZXQgXCIgaW4gVUkgdGVybWlub2xvZ3kpXHJcbiAgQ09MX0dST1VQID0gJ2NvbC1ncm91cCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFZUQWdnVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFZUQUdHX1NVTSA9ICdzdW0nLFxyXG5cclxuICAvLyBcclxuICBWVEFHR19BVkcgPSAnYXZnJyxcclxuXHJcbiAgLy8gXHJcbiAgVlRBR0dfTUlOID0gJ21pbicsXHJcblxyXG4gIC8vIFxyXG4gIFZUQUdHX01BWCA9ICdtYXgnLFxyXG5cclxuICAvLyBcclxuICBWVEFHR19TRVJWRVIgPSAnc2VydmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgVlRBR0dfTk9ORSA9ICdub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgVlRBR0dfREVGQVVMVCA9ICdkZWZhdWx0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRW50aXR5VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIE5vRW51bWVyYXRpb25FbnRpdHkgPSAnbm8tZW51bWVyYXRpb24tZW50aXR5JyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0YWJhc2VFbnRpdHkgPSAnZGF0YWJhc2UtZW50aXR5JyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hRW50aXR5ID0gJ3NjaGVtYS1lbnRpdHknLFxyXG5cclxuICAvLyBcclxuICBUYWJsZUVudGl0eSA9ICd0YWJsZS1lbnRpdHknXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBQaWNrRW50aXR5U2VhcmNoVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFBpY2tFbnRpdHlTZWFyY2hUeXBlX1N0YXJ0c1dpdGggPSAnc3RhcnRzLXdpdGgnLFxyXG5cclxuICAvLyBcclxuICBQaWNrRW50aXR5U2VhcmNoVHlwZV9Db250YWlucyA9ICdjb250YWlucycsXHJcblxyXG4gIC8vIFxyXG4gIFBpY2tFbnRpdHlTZWFyY2hUeXBlX0V4YWN0TWF0Y2ggPSAnZXhhY3QtbWF0Y2gnLFxyXG5cclxuICAvLyBcclxuICBQaWNrRW50aXR5U2VhcmNoVHlwZV9ERUZBVUxUID0gJ2RlZmF1bHQnXHJcbn1cclxuXHJcbi8vIFBhcnNpbmcgbWV0aG9kcyBhbmQgc3RydWN0dXJlcy5cclxuZXhwb3J0IGVudW0gRXhwcmVzc2lvbk9wIHtcclxuXHJcbiAgLy8gXHJcbiAgTG9naWNhbE9yID0gJ29wLWxvZ2ljYWwtb3InLFxyXG5cclxuICAvLyBcclxuICBMb2dpY2FsQW5kID0gJ29wLWxvZ2ljYWwtYW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgTG9naWNhbE5vdCA9ICdvcC1sb2dpY2FsLW5vdCcsXHJcblxyXG4gIC8vIFxyXG4gIEJpdHdpc2VYT3IgPSAnb3AtYml0d2lzZS14b3InLFxyXG5cclxuICAvLyBcclxuICBCaXR3aXNlT3IgPSAnb3AtYml0d2lzZS1vcicsXHJcblxyXG4gIC8vIFxyXG4gIEVxdWFscyA9ICdvcC1lcXVhbHMnLFxyXG5cclxuICAvLyBcclxuICBHcmVhdGVyID0gJ29wLWdyZWF0ZXInLFxyXG5cclxuICAvLyBcclxuICBMZXNzID0gJ29wLWxlc3MnLFxyXG5cclxuICAvLyBcclxuICBHRXF1YWwgPSAnb3AtZ2VxdWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgTEVxdWFsID0gJ29wLWxlcXVhbCcsXHJcblxyXG4gIC8vIFxyXG4gIE5FcXVhbCA9ICdvcC1uZXF1YWwnLFxyXG5cclxuICAvLyBcclxuICBQbHVzID0gJ29wLXBsdXMnLFxyXG5cclxuICAvLyBcclxuICBNaW51cyA9ICdvcC1taW51cycsXHJcblxyXG4gIC8vIFxyXG4gIEJpdHdpc2VBbmQgPSAnb3AtYml0d2lzZS1hbmQnLFxyXG5cclxuICAvLyBcclxuICBNdWx0aXBseSA9ICdvcC1tdWx0aXBseScsXHJcblxyXG4gIC8vIFxyXG4gIERpdmlkZSA9ICdvcC1kaXZpZGUnLFxyXG5cclxuICAvLyBcclxuICBNb2R1bG8gPSAnb3AtbW9kdWxvJyxcclxuXHJcbiAgLy8gXHJcbiAgUG93ZXIgPSAnb3AtcG93ZXInLFxyXG5cclxuICAvLyBcclxuICBQb3NpdGl2ZSA9ICdvcC1wb3NpdGl2ZScsXHJcblxyXG4gIC8vIFxyXG4gIE5lZ2F0aXZlID0gJ29wLW5lZ2F0aXZlJyxcclxuXHJcbiAgLy8gXHJcbiAgQml0d2lzZU5vdCA9ICdvcC1iaXR3aXNlLW5vdCcsXHJcblxyXG4gIC8vIFxyXG4gIENvbHVtbiA9ICdvcC1jb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBTdHJpbmcgPSAnb3Atc3RyaW5nJyxcclxuXHJcbiAgLy8gXHJcbiAgTnVtYmVyID0gJ29wLW51bWJlcicsXHJcblxyXG4gIC8vIFxyXG4gIERhdGUgPSAnb3AtZGF0ZScsXHJcblxyXG4gIC8vIFxyXG4gIEJvb2xlYW4gPSAnb3AtYm9vbGVhbicsXHJcblxyXG4gIC8vIFxyXG4gIEZ1bmNhbGwgPSAnb3AtZnVuY2FsbCcsXHJcblxyXG4gIC8vIFxyXG4gIExQYXJlbiA9ICdvcC1scGFyZW4nLFxyXG5cclxuICAvLyBcclxuICBSUGFyZW4gPSAnb3AtcnBhcmVuJyxcclxuXHJcbiAgLy8gXHJcbiAgQ29tbWEgPSAnb3AtY29tbWEnLFxyXG5cclxuICAvLyBcclxuICBJZGVudCA9ICdvcC1pZGVudCcsXHJcblxyXG4gIC8vIFxyXG4gIE51bGwgPSAnb3AtbnVsbCcsXHJcblxyXG4gIC8vIFxyXG4gIElmID0gJ29wLWlmJyxcclxuXHJcbiAgLy8gXHJcbiAgRWxzZWlmID0gJ29wLWVsc2VpZicsXHJcblxyXG4gIC8vIFxyXG4gIENhc2UgPSAnb3AtY2FzZScsXHJcblxyXG4gIC8vIFxyXG4gIFdoZW4gPSAnb3Atd2hlbicsXHJcblxyXG4gIC8vIFxyXG4gIFRoZW4gPSAnb3AtdGhlbicsXHJcblxyXG4gIC8vIFxyXG4gIEVsc2UgPSAnb3AtZWxzZScsXHJcblxyXG4gIC8vIFxyXG4gIEVuZEV4cHIgPSAnb3AtZW5kZXhwcicsXHJcblxyXG4gIC8vIFxyXG4gIFdoaXRlc3BhY2UgPSAnb3Atd2hpdGVzcGFjZScsXHJcblxyXG4gIC8vIFxyXG4gIENvbW1lbnQgPSAnb3AtY29tbWVudCcsXHJcblxyXG4gIC8vIFxyXG4gIExCcmFjZSA9ICdvcC1sYnJhY2UnLFxyXG5cclxuICAvLyBcclxuICBSQnJhY2UgPSAnb3AtcmJyYWNlJyxcclxuXHJcbiAgLy8gXHJcbiAgQ29sb24gPSAnb3AtY29sb24nLFxyXG5cclxuICAvLyBcclxuICBCYXIgPSAnb3AtYmFyJyxcclxuXHJcbiAgLy8gXHJcbiAgVHh0eXBlID0gJ29wLXR4dHlwZScsXHJcblxyXG4gIC8vIFxyXG4gIEVuZCA9ICdvcC1lbmQnLFxyXG5cclxuICAvLyBcclxuICBSQnJhY2tldHMgPSAnb3AtcmJyYWNrZXRzJyxcclxuXHJcbiAgLy8gdXNlZCB0byByZXByZXNlbnQgaW52YWxpZCB0b2tlbnNcclxuICBJbnZhbGlkID0gJ29wLWludmFsaWQnXHJcbn1cclxuXHJcbi8vIHRyaS1zdGF0ZSBib29sXHJcbmV4cG9ydCBlbnVtIFRyaUJvb2wge1xyXG5cclxuICAvLyBcclxuICBUQl9JbnZhbGlkID0gJ3RyaWJvb2wtaW52YWxpZCcsXHJcblxyXG4gIC8vIFxyXG4gIFRCX0ZhbHNlID0gJ3RyaWJvb2wtZmFsc2UnLFxyXG5cclxuICAvLyBcclxuICBUQl9UcnVlID0gJ3RyaWJvb2wtdHJ1ZSdcclxufVxyXG5cclxuLy8gdGFibGUgY2FsYyByZWZlcmVuY2Ugb3B0aW9ucyBzZXRcclxuZXhwb3J0IGVudW0gUmVmZXJlbmNlT3B0aW9uc1NldCB7XHJcblxyXG4gIC8vIFxyXG4gIFJPU19SZWxhdGl2ZSA9ICdyZWZlcmVuY2Utb3B0aW9ucy1zZXQtcmVsYXRpdmUnLFxyXG5cclxuICAvLyBcclxuICBST1NfRml4ZWQgPSAncmVmZXJlbmNlLW9wdGlvbnMtc2V0LWZpeGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgUk9TX1BhcmFtZXRlciA9ICdyZWZlcmVuY2Utb3B0aW9ucy1zZXQtcGFyYW1ldGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgUk9TX05vbmUgPSAncmVmZXJlbmNlLW9wdGlvbnMtc2V0LW5vbmUnXHJcbn1cclxuXHJcbi8vIHdpZGdldCBzdGF0ZVxyXG5leHBvcnQgZW51bSBXaWRnZXRTdGF0ZSB7XHJcblxyXG4gIC8vIFxyXG4gIEhpZGRlbiA9ICd3aWRnZXQtc3RhdGUtaGlkZGVuJyxcclxuXHJcbiAgLy8gXHJcbiAgRGlzYWJsZWQgPSAnd2lkZ2V0LXN0YXRlLWRpc2FibGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgRW5hYmxlZCA9ICd3aWRnZXQtc3RhdGUtZW5hYmxlZCdcclxufVxyXG5cclxuLy8gcmFuayB0eXBlXHJcbmV4cG9ydCBlbnVtIFJhbmtUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgQ29tcGV0aXRpb24gPSAncmFuay10eXBlLWNvbXBldGl0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgTW9kaWZpZWRDb21wZXRpdGlvbiA9ICdyYW5rLXR5cGUtbW9kaWZpZWQtY29tcGV0aXRpb24nLFxyXG5cclxuICAvLyBcclxuICBEZW5zZSA9ICdyYW5rLXR5cGUtZGVuc2UnLFxyXG5cclxuICAvLyBcclxuICBVbmlxdWUgPSAncmFuay10eXBlLXVuaXF1ZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRhYmxlQ2FsY0NvbW1hbmRUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgVGFibGVDYWxjQ29tbWFuZENsZWFyID0gJ2NsZWFyJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQ2FsY05lc3RpbmdMZXZlbCB7XHJcblxyXG4gIC8vIFxyXG4gIFByaW1hcnkgPSAncHJpbWFyeScsXHJcblxyXG4gIC8vIHVzZWQgb25seSBmb3IgdHlwZSAhPSBUQ19DVVNUT01cclxuICBTZWNvbmRhcnkgPSAnc2Vjb25kYXJ5JyxcclxuXHJcbiAgLy8gdXNlZCBvbmx5IGZvciB0eXBlID09IFRDX0NVU1RPTVxyXG4gIE5lc3RlZCA9ICduZXN0ZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBEZWNpbWFsTW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIERlY2ltYWxNb2RlQXV0b21hdGljID0gJ2F1dG9tYXRpYycsXHJcblxyXG4gIC8vIFxyXG4gIERlY2ltYWxNb2RlTWFudWFsID0gJ21hbnVhbCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRhYmxlQ2FsY09yZGVyaW5nVHlwZSB7XHJcblxyXG4gIC8vIEFkdmFuY2VkLi4uXHJcbiAgT1RGaWVsZCA9ICdmaWVsZCcsXHJcblxyXG4gIC8vIFRhYmxlIChBY3Jvc3MpXHJcbiAgT1RSb3dzID0gJ3Jvd3MnLFxyXG5cclxuICAvLyBUYWJsZSAoRG93bilcclxuICBPVENvbHVtbnMgPSAnY29sdW1ucycsXHJcblxyXG4gIC8vIFRhYmxlIChBY3Jvc3MgdGhlbiBEb3duKVxyXG4gIE9UVGFibGUgPSAndGFibGUnLFxyXG5cclxuICAvLyBUYWJsZSAoRG93biB0aGVuIEFjcm9zcylcclxuICBPVFRhYmxlQ29sdW1uUHJlY2VkZW5jZSA9ICd0YWJsZS1jb2x1bW4tcHJlY2VkZW5jZScsXHJcblxyXG4gIC8vIFBhbmUgQWNyb3NzXHJcbiAgT1RSb3dJblBhbmUgPSAncm93LWluLXBhbmUnLFxyXG5cclxuICAvLyBQYW5lIChEb3duKVxyXG4gIE9UQ29sdW1uSW5QYW5lID0gJ2NvbHVtbi1pbi1wYW5lJyxcclxuXHJcbiAgLy8gUGFuZSAoQWNyb3NzIHRoZW4gRG93bilcclxuICBPVFBhbmUgPSAncGFuZScsXHJcblxyXG4gIC8vIFBhbmUgKERvd24gdGhlbiBBY3Jvc3MpXHJcbiAgT1RQYW5lQ29sdW1uUHJlY2VkZW5jZSA9ICdwYW5lLWNvbHVtbi1wcmVjZWRlbmNlJyxcclxuXHJcbiAgLy8gQ2VsbFxyXG4gIE9UQ2VsbEluUGFuZSA9ICdjZWxsLWluLXBhbmUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBUYWJsZUNhbGNTb3J0TW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNNX0F1dG9tYXRpYyA9ICdzb3J0LW1vZGUtYXV0b21hdGljJyxcclxuXHJcbiAgLy8gXHJcbiAgU01fQ3VzdG9tID0gJ3NvcnQtbW9kZS1jdXN0b20nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBUYWJsZUNhbGNUYWJsZUNhbGNUeXBlIHtcclxuXHJcbiAgLy8gbm9uZSAodXNlZCB0byBpbml0aWFsaXplIHZhcmlhYmxlcylcclxuICBUQ19OT05FID0gJ25vbmUnLFxyXG5cclxuICAvLyBSdW5uaW5nIFRvdGFsXHJcbiAgVENfQ1VNVUxBVElWRSA9ICdjdW11bGF0aXZlJyxcclxuXHJcbiAgLy8gTW92aW5nIENhbGN1bGF0aW9uXHJcbiAgVENfV0lORE9XID0gJ3dpbmRvdycsXHJcblxyXG4gIC8vIERpZmZlcmVuY2UgRnJvbVxyXG4gIFRDX0RJRkYgPSAnZGlmZicsXHJcblxyXG4gIC8vIFBlcmNlbnQgRGlmZmVyZW5jZSBGcm9tXHJcbiAgVENfUENURElGRiA9ICdwY3QtZGlmZicsXHJcblxyXG4gIC8vIFBlcmNlbnQgRnJvbVxyXG4gIFRDX1BDVFZBTFVFID0gJ3BjdC12YWx1ZScsXHJcblxyXG4gIC8vIFBlcmNlbnQgT2YgVG90YWxcclxuICBUQ19QQ1RUT1RBTCA9ICdwY3QtdG90YWwnLFxyXG5cclxuICAvLyBSYW5rXHJcbiAgVENfUkFOSyA9ICdyYW5rJyxcclxuXHJcbiAgLy8gUGVyY2VudGlsZVxyXG4gIFRDX1BDVFJBTksgPSAncGN0LXJhbmsnLFxyXG5cclxuICAvLyBDdXN0b21cclxuICBUQ19DVVNUT00gPSAnY3VzdG9tJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUXVpY2tUYWJsZUNhbGNDb21tYW5kVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrVGFibGVDYWxjQ29tbWFuZFJ1blRvdGFsID0gJ3J1bi10b3RhbCcsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrVGFibGVDYWxjQ29tbWFuZERpZmZlcmVuY2UgPSAnZGlmZmVyZW5jZScsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrVGFibGVDYWxjQ29tbWFuZFBjdERpZmYgPSAncGN0LWRpZmYnLFxyXG5cclxuICAvLyBcclxuICBRdWlja1RhYmxlQ2FsY0NvbW1hbmRQY3RUb3RhbCA9ICdwY3QtdG90YWwnLFxyXG5cclxuICAvLyBcclxuICBRdWlja1RhYmxlQ2FsY0NvbW1hbmRSYW5rID0gJ3JhbmsnLFxyXG5cclxuICAvLyBcclxuICBRdWlja1RhYmxlQ2FsY0NvbW1hbmRQY3RSYW5rID0gJ3BjdC1yYW5rJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tUYWJsZUNhbGNDb21tYW5kTW92aW5nQXZnID0gJ21vdmluZy1hdmcnLFxyXG5cclxuICAvLyBcclxuICBRdWlja1RhYmxlQ2FsY0NvbW1hbmRZdGQgPSAneXRkJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tUYWJsZUNhbGNDb21tYW5kQ2dyID0gJ2NncicsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrVGFibGVDYWxjQ29tbWFuZFlPdmVyWSA9ICd5LW92ZXIteScsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrVGFibGVDYWxjQ29tbWFuZFl0ZEdyb3d0aCA9ICd5dGQtZ3Jvd3RoJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tUYWJsZUNhbGNDb21tYW5kQ3VzdG9tID0gJ2N1c3RvbSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRhYmxlQ2FsY0FkZHJlc3NDb21tYW5kVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFRhYmxlQ2FsY0FkZHJlc3NDb21tYW5kUmVsID0gJ3JlbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRhYmxlQ2FsY0FkZHJlc3NDb21tYW5kQWJzID0gJ2FicycsXHJcblxyXG4gIC8vIFxyXG4gIFRhYmxlQ2FsY0FkZHJlc3NDb21tYW5kUGFyYW0gPSAncGFyYW0nLFxyXG5cclxuICAvLyBcclxuICBUYWJsZUNhbGNBZGRyZXNzQ29tbWFuZE1vcmUgPSAnbW9yZSdcclxufVxyXG5cclxuLy8gcmVsYXRpdmUgYWRkcmVzc2luZ1xyXG5leHBvcnQgZW51bSBUYWJsZUNhbGNSZWxhdGl2ZUFkZHJlc3Mge1xyXG5cclxuICAvLyBcclxuICBSZWxBZGRyRmlyc3QgPSAncmVsYXRpdmUtYWRkcmVzcy1maXJzdCcsXHJcblxyXG4gIC8vIFxyXG4gIFJlbEFkZHJQcmV2aW91cyA9ICdyZWxhdGl2ZS1hZGRyZXNzLXByZXZpb3VzJyxcclxuXHJcbiAgLy8gXHJcbiAgUmVsQWRkck5leHQgPSAncmVsYXRpdmUtYWRkcmVzcy1uZXh0JyxcclxuXHJcbiAgLy8gXHJcbiAgUmVsQWRkckxhc3QgPSAncmVsYXRpdmUtYWRkcmVzcy1sYXN0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQ2F0ZWdvcmljYWxCaW5JdGVtVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFVuYmlubmVkID0gJ3VuYmlubmVkJyxcclxuXHJcbiAgLy8gXHJcbiAgQmluTWVtYmVyID0gJ2NhdGVnb3JpY2FsLWJpbi1tZW1iZXInLFxyXG5cclxuICAvLyBcclxuICBCaW4gPSAnY2F0ZWdvcmljYWwtYmluJ1xyXG59XHJcblxyXG4vLyBUaGUgY2xhc3MgcHJvcGVydGllc1xyXG5leHBvcnQgZW51bSBDcmVkZW50aWFsVHlwZVByb3BlcnRpZXNGbGFnIHtcclxuXHJcbiAgLy8gXHJcbiAgTm9uZSA9ICdub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgR2VuZXJpY0F1dGhDbGFzcyA9ICdnZW5lcmljLWF1dGgtY2xhc3MnLFxyXG5cclxuICAvLyBcclxuICBQcm92aWRlckNsYXNzID0gJ3Byb3ZpZGVyLWNsYXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0YUNvbm5lY3Rpb25DbGFzcyA9ICdkYXRhLWNvbm5lY3Rpb24tY2xhc3MnXHJcbn1cclxuXHJcbi8vIFRoZSBjb25uZWN0b3IgdHlwZVxyXG5leHBvcnQgZW51bSBDb25uZWN0b3JUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgSW52YWxpZCA9ICdpbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgV2ViRGF0YUNvbm5lY3RvciA9ICd3ZWItZGF0YS1jb25uZWN0b3InLFxyXG5cclxuICAvLyBcclxuICBDbG91ZEZpbGVDb25uZWN0b3IgPSAnY2xvdWQtZmlsZS1jb25uZWN0b3InLFxyXG5cclxuICAvLyBcclxuICBMZWdhY3lDb25uZWN0b3IgPSAnbGVnYWN5LWNvbm5lY3RvcidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRhYmxlUGlsbEljb24ge1xyXG5cclxuICAvLyBcclxuICBMaXN0SXRlbSA9ICdsaXN0LWl0ZW0nLFxyXG5cclxuICAvLyBcclxuICBTaGVldCA9ICdzaGVldCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvdW5kVGFibGUgPSAnZm91bmQtdGFibGUnLFxyXG5cclxuICAvLyBcclxuICBOYW1lZFJhbmdlID0gJ25hbWVkLXJhbmdlJyxcclxuXHJcbiAgLy8gXHJcbiAgU3RvcmVkUHJvY2VkdXJlID0gJ3N0b3JlZC1wcm9jZWR1cmUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBKb2luVmFsaWRhdGlvbkVycm9yIHtcclxuXHJcbiAgLy8gXHJcbiAgSlZFX05vRXJyb3IgPSAnbm8tZXJyb3InLFxyXG5cclxuICAvLyBcclxuICBKVkVfRW1wdHlDbGF1c2UgPSAnZW1wdHktY2xhdXNlJyxcclxuXHJcbiAgLy8gXHJcbiAgSlZFX1R5cGVNaXNtYXRjaCA9ICd0eXBlLW1pc21hdGNoJyxcclxuXHJcbiAgLy8gXHJcbiAgSlZFX0ludmFsaWRGaWVsZCA9ICdpbnZhbGlkLWZpZWxkJyxcclxuXHJcbiAgLy8gXHJcbiAgSlZFX0JhZENsYXVzZSA9ICdiYWQtY2xhdXNlJyxcclxuXHJcbiAgLy8gXHJcbiAgSlZFX0JhZElucHV0UmVsYXRpb24gPSAnYmFkLWlucHV0LXJlbGF0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgSlZFX1JlcGVhdGVkRmllbGRSZWZlcmVuY2VzID0gJ3JlcGVhdGVkLWZpZWxkLXJlZmVyZW5jZXMnLFxyXG5cclxuICAvLyBcclxuICBKVkVfVW5zdXBwb3J0ZWRKb2luVHlwZSA9ICd1bnN1cHBvcnRlZC1qb2luLXR5cGUnLFxyXG5cclxuICAvLyBcclxuICBKVkVfSW52YWxpZENhbGN1bGF0aW9uID0gJ2ludmFsaWQtY2FsY3VsYXRpb24nLFxyXG5cclxuICAvLyBcclxuICBKVkVfTm9uU3BhdGlhbFR5cGUgPSAnbm9uLXNwYXRpYWwtdHlwZScsXHJcblxyXG4gIC8vIFxyXG4gIEpWRV9Ob25TcGF0aWFsQ29tcGFyaXNvbiA9ICdub24tc3BhdGlhbC1jb21wJyxcclxuXHJcbiAgLy8gXHJcbiAgSlZFX1Vua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIENvbm5lY3Rpb25UeXBlRW51bSB7XHJcblxyXG4gIC8vIC1kLXMgaXMgdXNlZCB0byBmb3JjZSB0aGUgZW51bSBnZW5lcmF0b3IgdG8gZ2VuZXJhdGUgRFMgd2l0aCBjYXBpdGFsIGxldHRlcnMgaW4gLmNzIGp1c3QgbGlrZSB0aGUgLmNwcFxyXG4gIEludmFsaWREUyA9ICdpbnZhbGlkLWQtcycsXHJcblxyXG4gIC8vIFxyXG4gIEZpbGVEUyA9ICdmaWxlLWQtcycsXHJcblxyXG4gIC8vIFxyXG4gIFNlcnZlckRTID0gJ3NlcnZlci1kLXMnLFxyXG5cclxuICAvLyBcclxuICBJbnRlcm5ldERTID0gJ2ludGVybmV0LWQtcycsXHJcblxyXG4gIC8vIFxyXG4gIFRhYmxlYXVTZXJ2ZXJEUyA9ICd0YWJsZWF1LXNlcnZlci1kLXMnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBDb25uZWN0aW9uRXJyb3JTdGFnZSB7XHJcblxyXG4gIC8vIFxyXG4gIFVua25vd24gPSAndW5rbm93bicsXHJcblxyXG4gIC8vIFxyXG4gIENyZWF0ZVByb3RvY29sRmFpbGVkID0gJ2NyZWF0ZS1wcm90b2NvbC1mYWlsZWQnLFxyXG5cclxuICAvLyBcclxuICBMb2FkTWV0YWRhdGFGYWlsZWQgPSAnbG9hZC1tZXRhZGF0YS1mYWlsZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTb3J0RGlyZWN0aW9uIHtcclxuXHJcbiAgLy8gYXNjZW5kaW5nXHJcbiAgU1RfQVNDID0gJ2FzYycsXHJcblxyXG4gIC8vIGRlc2NlbmRpbmdcclxuICBTVF9ERVNDID0gJ2Rlc2MnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTb3J0VHlwZSB7XHJcblxyXG4gIC8vIFVzZSB0aGUgZGVmaW5lZCBvcmRlcmluZ1xyXG4gIFNUX05BVFVSQUwgPSAnZGF0YS1zb3VyY2Utb3JkZXInLFxyXG5cclxuICAvLyBBbHBoYWJldGljL251bWVyaWMgb3JkZXJpbmcgb2YgZGF0YVxyXG4gIFNUX0FMUEhBQkVUSUMgPSAnYWxwaGEnLFxyXG5cclxuICAvLyBTcGVjaWZ5IGEgc2Vjb25kYXJ5IGZpZWxkXHJcbiAgU1RfQ09NUFVURUQgPSAnZmllbGQnLFxyXG5cclxuICAvLyBNYW51YWxseSBkZWZpbmVkIG9yZGVyaW5nXHJcbiAgU1RfTUFOVUFMID0gJ21hbnVhbCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFNvcnRFbmQge1xyXG5cclxuICAvLyBcclxuICBTVF9UT1AgPSAndG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfQk9UVE9NID0gJ2JvdHRvbSdcclxufVxyXG5cclxuLy8gRW51bWVyYXRpb24gZm9yIHRoZSB0eXBlIG9mIGpvaW4gY29ubmVjdGluZyB0d28gdGFibGVzXHJcbmV4cG9ydCBlbnVtIFNRTEpvaW5UeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgU1FMX0lubmVySm9pbiA9ICdzcWwtaW5uZXItam9pbicsXHJcblxyXG4gIC8vIFxyXG4gIFNRTF9MZWZ0Sm9pbiA9ICdzcWwtbGVmdC1qb2luJyxcclxuXHJcbiAgLy8gXHJcbiAgU1FMX1JpZ2h0Sm9pbiA9ICdzcWwtcmlnaHQtam9pbicsXHJcblxyXG4gIC8vIFxyXG4gIFNRTF9GdWxsSm9pbiA9ICdzcWwtZnVsbC1qb2luJyxcclxuXHJcbiAgLy8gXHJcbiAgU1FMX0Nyb3NzSm9pbiA9ICdzcWwtY3Jvc3Mtam9pbidcclxufVxyXG5cclxuLy8gVGhlIHJlc3VsdCBvZiBwYXJzaW5nIGFuZCBzZXR0aW5nIGEgZGF0YSB2YWx1ZSBmb3IgYSBwcm9wZXJ0eSBvZiBhIHF1YW50aXRhdGl2ZSBheGlzLlxyXG5leHBvcnQgZW51bSBTZXRBeGlzRGF0YVZhbHVlUmVzdWx0IHtcclxuXHJcbiAgLy8gXHJcbiAgU3VjY2VzcyA9ICdzZXQtYXhpcy1kYXRhLXZhbHVlLXJlc3VsdC1zdWNjZXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgUGFyc2VGYWlsdXJlID0gJ3NldC1heGlzLWRhdGEtdmFsdWUtcmVzdWx0LXBhcnNlLWZhaWx1cmUnLFxyXG5cclxuICAvLyBcclxuICBWYWx1ZUZhaWx1cmUgPSAnc2V0LWF4aXMtZGF0YS12YWx1ZS1yZXN1bHQtdmFsdWUtZmFpbHVyZSdcclxufVxyXG5cclxuLy8gVGhlIHR5cGUgb2YgYW4gYXhpcycgZXh0ZW50XHJcbmV4cG9ydCBlbnVtIEF4aXNFeHRlbnRUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgQXV0b21hdGljID0gJ2F4aXMtZXh0ZW50LWF1dG9tYXRpYycsXHJcblxyXG4gIC8vIFxyXG4gIFVuaWZvcm0gPSAnYXhpcy1leHRlbnQtdW5pZm9ybScsXHJcblxyXG4gIC8vIFxyXG4gIEluZGVwZW5kZW50ID0gJ2F4aXMtZXh0ZW50LWluZGVwZW5kZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgRml4ZWQgPSAnYXhpcy1leHRlbnQtZml4ZWQnXHJcbn1cclxuXHJcbi8vIEVudW1lcmF0aW9uIG9mIHVuaXRzIHRpY2sgc3BhY2luZyBjYW4gdGFrZVxyXG5leHBvcnQgZW51bSBUaWNrU3BhY2luZ1VuaXRzIHtcclxuXHJcbiAgLy8gXHJcbiAgTm9Vbml0cyA9ICduby11bml0cycsXHJcblxyXG4gIC8vIFxyXG4gIFllYXJzID0gJ3llYXJzJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVhcnRlcnMgPSAncXVhcnRlcnMnLFxyXG5cclxuICAvLyBcclxuICBNb250aHMgPSAnbW9udGhzJyxcclxuXHJcbiAgLy8gXHJcbiAgV2Vla3MgPSAnd2Vla3MnLFxyXG5cclxuICAvLyBcclxuICBEYXlzID0gJ2RheXMnLFxyXG5cclxuICAvLyBcclxuICBIb3VycyA9ICdob3VycycsXHJcblxyXG4gIC8vIFxyXG4gIE1pbnV0ZXMgPSAnbWludXRlcycsXHJcblxyXG4gIC8vIFxyXG4gIFNlY29uZHMgPSAnc2Vjb25kcydcclxufVxyXG5cclxuLy8gRW51bWVyYXRpb24gb2Ygd2hldGhlciB0b3RhbHMgYXJlIGluY2x1ZGVkIGluIG9yIGV4Y2x1ZGVkIGZyb20gdGhlIGNvbG9yIGVuY29kaW5nXHJcbmV4cG9ydCBlbnVtIFRvdGFsc0luY2x1c2lvbiB7XHJcblxyXG4gIC8vIFRvdGFscyBpbmNsdWRlZCBpbiBjb2xvciBlbmNvZGluZ1xyXG4gIEluY2x1ZGVUb3RhbHMgPSAnaW5jbHVkZS10b3RhbHMnLFxyXG5cclxuICAvLyBUb3RhbHMgZXhjbHVkZWQgZnJvbSBjb2xvciBlbmNvZGluZ1xyXG4gIEV4Y2x1ZGVUb3RhbHMgPSAnZXhjbHVkZS10b3RhbHMnXHJcbn1cclxuXHJcbi8vIEhvdyB0aWNrIG1hcmtzIGFyZSBiZWluZyBjYWxjdWxhdGVkXHJcbmV4cG9ydCBlbnVtIFRpY2tNYXJrU3RhdGUge1xyXG5cclxuICAvLyBcclxuICBUaWNrc0F1dG9tYXRpYyA9ICd0aWNrcy1hdXRvbWF0aWMnLFxyXG5cclxuICAvLyBcclxuICBUaWNrc01hbnVhbCA9ICd0aWNrcy1tYW51YWwnLFxyXG5cclxuICAvLyBcclxuICBUaWNrc05vbmUgPSAndGlja3MtTm9uZSdcclxufVxyXG5cclxuLy8gU2V0dGluZyBmb3IgdHlwZSBvZiBheGlzIHJhbmdlXHJcbmV4cG9ydCBlbnVtIEF4aXNSYW5nZVR5cGUge1xyXG5cclxuICAvLyBcclxuICBBdXRvbWF0aWNSYW5nZSA9ICdhdXRvbWF0aWMtcmFuZ2UnLFxyXG5cclxuICAvLyBcclxuICBVbmlmb3JtUmFuZ2UgPSAndW5pZm9ybS1yYW5nZScsXHJcblxyXG4gIC8vIFxyXG4gIEluZGVwZW5kZW50UmFuZ2UgPSAnaW5kZXBlbmRlbnQtcmFuZ2UnLFxyXG5cclxuICAvLyBcclxuICBGaXhlZFJhbmdlID0gJ2ZpeGVkLXJhbmdlJyxcclxuXHJcbiAgLy8gXHJcbiAgRml4ZWRNaW4gPSAnZml4ZWQtbWluJyxcclxuXHJcbiAgLy8gXHJcbiAgRml4ZWRNYXggPSAnZml4ZWQtbWF4JyxcclxuXHJcbiAgLy8gXHJcbiAgRml4ZWRNaW5Vbmlmb3JtTWF4ID0gJ2ZpeGVkLW1pbi11bmlmb3JtLW1heCcsXHJcblxyXG4gIC8vIFxyXG4gIEZpeGVkTWluSW5kZXBlbmRlbnRNYXggPSAnZml4ZWQtbWluLWluZGVwZW5kZW50LW1heCcsXHJcblxyXG4gIC8vIFxyXG4gIEZpeGVkTWF4VW5pZm9ybU1pbiA9ICdmaXhlZC1tYXgtdW5pZm9ybS1taW4nLFxyXG5cclxuICAvLyBcclxuICBGaXhlZE1heEluZGVwZW5kZW50TWluID0gJ2ZpeGVkLW1heC1pbmRlcGVuZGVudC1taW4nLFxyXG5cclxuICAvLyBcclxuICBGaXhlZFJhbmdlT3JkaW5hbCA9ICdmaXhlZC1yYW5nZS1vcmRpbmFsJ1xyXG59XHJcblxyXG4vLyByZXByZXNlbnRzIHR5cGUgb2Ygd2lkZ2V0IG9uIHRoZSB0b29sYmFyIG9mIHJpY2ggdGV4dCBlZGl0b3JcclxuZXhwb3J0IGVudW0gUmljaFRleHRFZGl0b3JXaWRnZXRLZXkge1xyXG5cclxuICAvLyBcclxuICBOb25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBGb250U2l6ZSA9ICdmb250c2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIEZvbnROYW1lID0gJ2ZvbnRuYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9udENvbG9yID0gJ2NvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgQm9sZCA9ICdib2xkJyxcclxuXHJcbiAgLy8gXHJcbiAgSXRhbGljID0gJ2l0YWxpYycsXHJcblxyXG4gIC8vIFxyXG4gIFVuZGVybGluZSA9ICd1bmRlcmxpbmUnLFxyXG5cclxuICAvLyBcclxuICBBbGlnbkxlZnQgPSAnanVzdGlmeWxlZnQnLFxyXG5cclxuICAvLyBcclxuICBBbGlnbkNlbnRlciA9ICdqdXN0aWZ5Y2VudGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQWxpZ25SaWdodCA9ICdqdXN0aWZ5cmlnaHQnLFxyXG5cclxuICAvLyBcclxuICBDbGVhckZvcm1hdHRpbmcgPSAnY2xlYXJmb3JtYXR0aW5nJyxcclxuXHJcbiAgLy8gXHJcbiAgVGFibGVhdUtleXdvcmRzID0gJ3RhYmxlYXVrZXl3b3JkcydcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIENlbGxTaXplQ2hhbmdlIHtcclxuXHJcbiAgLy8gXHJcbiAgQ1NDX1RhbGxlciA9ICd0YWxsZXInLFxyXG5cclxuICAvLyBcclxuICBDU0NfU2hvcnRlciA9ICdzaG9ydGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1NDX1dpZGVyID0gJ3dpZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1NDX05hcnJvd2VyID0gJ25hcnJvd2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1NDX0JpZ2dlciA9ICdiaWdnZXInLFxyXG5cclxuICAvLyBcclxuICBDU0NfU21hbGxlciA9ICdzbWFsbGVyJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQ2VsbFR5cGVFbnVtIHtcclxuXHJcbiAgLy8gXHJcbiAgQ0xUX1NxdWFyZSA9ICdzcXVhcmUnLFxyXG5cclxuICAvLyBcclxuICBDTFRfVGV4dCA9ICd0ZXh0J1xyXG59XHJcblxyXG4vLyByZXByZXNlbnRzIHR5cGUgb2YgZm9ybWF0dGluZyBwcmVzIG1vZGVsXHJcbmV4cG9ydCBlbnVtIFR5cGVPZkZvcm1hdEl0ZW0ge1xyXG5cclxuICAvLyBcclxuICBGVF9Gb3JtYXRJdGVtID0gJ2Zvcm1hdEl0ZW0nLFxyXG5cclxuICAvLyBcclxuICBGVF9Gb3JtYXRDb250YWluZXIgPSAnZm9ybWF0Q29udGFpbmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRlRfRm9ybWF0Q29udHJvbCA9ICdmb3JtYXRDb250cm9sJ1xyXG59XHJcblxyXG4vLyByZXByZXNlbnRzIHR5cGUgb2YgZm9ybWF0dGluZyBjb250YWluZXJcclxuZXhwb3J0IGVudW0gVHlwZU9mRm9ybWF0Q29udGFpbmVyIHtcclxuXHJcbiAgLy8gXHJcbiAgRlRfRm9ybWF0UGFuZSA9ICdmb3JtYXRQYW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgRlRfRm9ybWF0U2VjdGlvbiA9ICdmb3JtYXRTZWN0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgRlRfQ29sbGFwc2libGVTZWN0aW9uID0gJ2NvbGxhcHNpYmxlU2VjdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIEZUX0NvbXBvc2l0ZUNvbnRhaW5lciA9ICdjb21wb3NpdGVDb250YWluZXInLFxyXG5cclxuICAvLyBcclxuICBGVF9Vbml0Q29udGFpbmVyID0gJ3VuaXRDb250YWluZXInLFxyXG5cclxuICAvLyBcclxuICBGVF9UYWIgPSAndGFiJyxcclxuXHJcbiAgLy8gXHJcbiAgRlRfVGFiR3JvdXAgPSAndGFiR3JvdXAnXHJcbn1cclxuXHJcbi8vIHJlcHJlc2VudHMgdHlwZSBvZiBmb3JtYXR0aW5nIGNvbnRyb2xcclxuZXhwb3J0IGVudW0gVHlwZU9mRm9ybWF0Q29udHJvbCB7XHJcblxyXG4gIC8vIFxyXG4gIEZUX05vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEZUX051bWVyaWNDb250cm9sID0gJ251bWVyaWMtY29udHJvbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZUX1RleHRDb250cm9sID0gJ3RleHQtY29udHJvbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZUX0NvbG9yQ29udHJvbCA9ICdjb2xvci1jb250cm9sJyxcclxuXHJcbiAgLy8gXHJcbiAgRlRfU2VsZWN0b3JDb250cm9sID0gJ3NlbGVjdG9yLWNvbnRyb2wnLFxyXG5cclxuICAvLyBcclxuICBGVF9Ub2dnbGVDb250cm9sID0gJ3RvZ2dsZS1jb250cm9sJ1xyXG59XHJcblxyXG4vLyByZXByZXNlbnRzIHR5cGUgb2YgZm9ybWF0dGluZyB3aWRnZXRcclxuZXhwb3J0IGVudW0gRm9ybWF0V2lkZ2V0S2V5IHtcclxuXHJcbiAgLy8gXHJcbiAgRldLX05vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEZXS19Gb250RmFtaWx5ID0gJ2ZvbnRGYW1pbHknLFxyXG5cclxuICAvLyBcclxuICBGV0tfRm9udFNpemUgPSAnZm9udFNpemUnLFxyXG5cclxuICAvLyBcclxuICBGV0tfQ29sb3JTd2F0Y2ggPSAnY29sb3JTd2F0Y2gnLFxyXG5cclxuICAvLyBcclxuICBGV0tfQm9sZCA9ICdib2xkJyxcclxuXHJcbiAgLy8gXHJcbiAgRldLX0l0YWxpY3MgPSAnaXRhbGljcycsXHJcblxyXG4gIC8vIFxyXG4gIEZXS19VbmRlcmxpbmUgPSAndW5kZXJsaW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgRldLX0xpbmVWaXNpYmlsaXR5ID0gJ2xpbmVWaXNpYmlsaXR5JyxcclxuXHJcbiAgLy8gXHJcbiAgRldLX0xpbmVQYXR0ZXJuID0gJ2xpbmVQYXR0ZXJuJyxcclxuXHJcbiAgLy8gXHJcbiAgRldLX0xpbmVTaXplID0gJ2xpbmVTaXplJyxcclxuXHJcbiAgLy8gXHJcbiAgRldLX051bWJlclR5cGUgPSAnbnVtZXJpY1R5cGUnLFxyXG5cclxuICAvLyBcclxuICBGV0tfRGVjaW1hbFBsYWNlcyA9ICdkZWNpbWFsUGxhY2VzJyxcclxuXHJcbiAgLy8gXHJcbiAgRldLX1Rob3VzYW5kc1NlcGFyYXRvciA9ICd0aG91c2FuZHNTZXBhcmF0b3InLFxyXG5cclxuICAvLyBcclxuICBGV0tfTnVtZXJpY1VuaXRzID0gJ251bWVyaWNVbml0cydcclxufVxyXG5cclxuLy8gcmVwcmVzZW50cyBpZGVudGlmaWVyIGZvciBlYWNoIG5vZGUgaW4gZm9ybWF0IHBhbmVcclxuZXhwb3J0IGVudW0gRm9ybWF0Tm9kZUlkZW50aWZpZXIge1xyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTm9uZV9LZXkgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Xb3JrYm9va19LZXkgPSAnd29ya2Jvb2snLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRm9udF9LZXkgPSAnZm9udCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Db2xvcl9LZXkgPSAnY29sb3InLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZXNfS2V5ID0gJ2xpbmVzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRBbGxfS2V5ID0gJ2ZvbnQtYWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRBbGxDb250cm9sc19LZXkgPSAnZm9udC1hbGwtY29udHJvbHMnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRm9udE1vcmVfS2V5ID0gJ2ZvbnQtbW9yZScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Gb250V29ya3NoZWV0VGl0bGVzX0tleSA9ICd3b3Jrc2hlZXQtdGl0bGVzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRUb29sVGlwX0tleSA9ICdmb250LXRvb2x0aXAnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRm9udFdvcmtzaGVldF9LZXkgPSAnZm9udC13b3Jrc2hlZXQnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRm9udERhc2hUaXRsZXNfS2V5ID0gJ2Rhc2gtdGl0bGVzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRTdG9yeVRpdGxlc19LZXkgPSAnc3RvcnktdGl0bGVzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRUaXRsZXNDb250cm9sc19LZXkgPSAndGl0bGVzLWNvbnRyb2xzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRUb29sdGlwQ29udHJvbHNfS2V5ID0gJ3Rvb2x0aXAtY29udHJvbHMnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRm9udFdvcmtzaGVldENvbnRyb2xzX0tleSA9ICd3b3Jrc2hlZXQtY29udHJvbHMnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZU1vcmVfS2V5ID0gJ2xpbmUtbW9yZScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lR3JpZF9LZXkgPSAnbGluZS1ncmlkJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVHcmlkVGFic19LZXkgPSAnbGluZS1ncmlkLXRhYnMnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZVplcm9fS2V5ID0gJ2xpbmUtemVybycsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lWmVyb1RhYnNfS2V5ID0gJ2xpbmUtemVyby10YWJzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVBeGlzVGlja19LZXkgPSAnbGluZS1heGlzLXRpY2snLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNUaWNrVGFic19LZXkgPSAnbGluZS1heGlzLXRpY2stdGFicycsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lQXhpc1J1bGVyX0tleSA9ICdsaW5lLWF4aXMtcnVsZXInLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNSdWxlclRhYnNfS2V5ID0gJ2xpbmUtYXhpcy1ydWxlci10YWJzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVIZWFkZXJEaXZpZGVyX0tleSA9ICdsaW5lLWhlYWRlci1kaXZpZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVIZWFkZXJEaXZpZGVyVGFic19LZXkgPSAnbGluZS1oZWFkZXItZGl2aWRlci10YWJzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVQYW5lRGl2aWRlcl9LZXkgPSAnbGluZS1wYW5lRGl2aWRlcicsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lUGFuZURpdmlkZXJUYWJzX0tleSA9ICdsaW5lLXBhbmVEaXZpZGVyLXRhYnMnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUdyaWRBbGxfS2V5ID0gJ2xpbmUtZ3JpZC1hbGwnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUdyaWRSb3dfS2V5ID0gJ2xpbmUtZ3JpZC1yb3cnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUdyaWRDb2x1bW5fS2V5ID0gJ2xpbmUtZ3JpZC1jb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZVplcm9BbGxfS2V5ID0gJ2xpbmUtemVyby1hbGwnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZVplcm9Sb3dfS2V5ID0gJ2xpbmUtemVyby1yb3cnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZVplcm9Db2x1bW5fS2V5ID0gJ2xpbmUtemVyby1jb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNUaWNrQWxsX0tleSA9ICdsaW5lLWF4aXMtdGljay1hbGwnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNUaWNrUm93X0tleSA9ICdsaW5lLWF4aXMtdGljay1yb3cnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNUaWNrQ29sdW1uX0tleSA9ICdsaW5lLWF4aXMtdGljay1jb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNSdWxlckFsbF9LZXkgPSAnbGluZS1heGlzLXJ1bGVyLWFsbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lQXhpc1J1bGVyUm93X0tleSA9ICdsaW5lLWF4aXMtcnVsZXItcm93JyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVBeGlzUnVsZXJDb2x1bW5fS2V5ID0gJ2xpbmUtYXhpcy1ydWxlci1jb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZVJlZmVyZW5jZV9LZXkgPSAnbGluZS1yZWZlcmVuY2UnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZURyb3BfS2V5ID0gJ2xpbmUtZHJvcCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lVHJlbmRfS2V5ID0gJ2xpbmUtdHJlbmQnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZVZpc2liaWxpdHlfS2V5ID0gJ2xpbmUtdmlzaWJpbGl0eScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lUGF0dGVybl9LZXkgPSAnbGluZS1wYXR0ZXJuJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVXaWR0aF9LZXkgPSAnbGluZS13aWR0aCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lQ29sb3JfS2V5ID0gJ2xpbmUtY29sb3InLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfVGlja0NvbG9yX0tleSA9ICd0aWNrLWNvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0JvcmRlclBhdHRlcm5fS2V5ID0gJ2JvcmRlci1wYXR0ZXJuJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0JvcmRlckNvbG9yX0tleSA9ICdib3JkZXItY29sb3InLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRGl2aWRlckNvbG9yX0tleSA9ICdkaXZpZGVyLWNvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRGYW1pbHlfS2V5ID0gJ2ZvbnQtZmFtaWx5LWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Gb250U2l6ZV9LZXkgPSAnZm9udC1zaXplLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Cb2xkX0tleSA9ICdib2xkLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9JdGFsaWNzX0tleSA9ICdpdGFsaWNzLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9VbmRlcmxpbmVfS2V5ID0gJ3VuZGVybGluZS1rZXknLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRm9udENvbG9yX0tleSA9ICdmb250LWNvbG9yLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9OdW1iZXJfQ29udGFpbmVyX0tleSA9ICdudW1iZXItY29udGFpbmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X051bWJlcl9UeXBlX0tleSA9ICdudW1iZXItY29udGFpbmVyLXR5cGUnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTnVtYmVyX1VuaXRzX0tleSA9ICdudW1iZXItY29udGFpbmVyLXVuaXRzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X051bWJlcl9EZWNpbWFsX0tleSA9ICdudW1iZXItY29udGFpbmVyLWRlY2ltYWwnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTnVtYmVyX1Rob3VzYW5kc19TZXBhcmF0b3JfS2V5ID0gJ251bWJlci1jb250YWluZXItdGhvdXNhbmRzLXNlcGFyYXRvcicsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Gb250UGlja2VyTWluaW1hbF9LZXkgPSAnZm9udC1waWNrZXItbWluaW1hbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Gb250UGlja2VyRGVmYXVsdF9LZXkgPSAnZm9udC1waWNrZXItZGVmYXVsdCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lUGlja2VyRGVmYXVsdF9LZXkgPSAnbGluZS1waWNrZXItZGVmYXVsdCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lUGlja2VyTm9WaXNfS2V5ID0gJ2xpbmUtcGlja2VyLW5vLXZpc2liaWxpdHknLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNUaWNrUGlja2VyX0tleSA9ICdsaW5lLWF4aXMtdGljay1waWNrZXInXHJcbn1cclxuXHJcbi8vIHJlcHJlc2VudHMgdGhlIGNvbG9yIHN3YXRjaCB0aGF0IHdpbGwgYmUgdXNlZCBpbiB0aGUgQ29sb3JDb250cm9sUHJlc01vZGVsXHJcbmV4cG9ydCBlbnVtIENvbG9yU3dhdGNoVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIENTVF9EYXJrID0gJ2Rhcmstc3dhdGNoJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1NUX0xpZ2h0ID0gJ2xpZ2h0LXN3YXRjaCdcclxufVxyXG5cclxuLy8gcmVwcmVzZW50cyB0aGUgdHlwZSBvZiBhIHN0eWxlIHBpY2tlciwgYWZmZWN0aW5nIHRoZSBwcmV2aWV3IHJlbmRlcmluZyBhbmQsIHBvc3NpYmx5LCB0aGUgbGF5b3V0XHJcbmV4cG9ydCBlbnVtIFBpY2tlclR5cGUge1xyXG5cclxuICAvLyBcclxuICBQVF9Ob25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBQVF9Gb250ID0gJ2ZvbnQnLFxyXG5cclxuICAvLyBcclxuICBQVF9MaW5lID0gJ2xpbmUnLFxyXG5cclxuICAvLyBcclxuICBQVF9OdW1iZXIgPSAnbnVtYmVyJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVXBkYXRlU2NvcGUge1xyXG5cclxuICAvLyBcclxuICBVU19Xb3Jrc2hlZXQgPSAnd29ya3NoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgVVNfRGFzaGJvYXJkID0gJ2Rhc2hib2FyZCcsXHJcblxyXG4gIC8vIFxyXG4gIFVTX1F1aWNrRmlsdGVycyA9ICdxdWljay1maWx0ZXJzJyxcclxuXHJcbiAgLy8gXHJcbiAgVVNfU3RvcnkgPSAnc3RvcnknXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBQYXJhbWV0ZXJDdHJsVHlwZXNEaXNwbGF5TW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIE1PREVfVFlQRV9JTiA9ICd0eXBlX2luJyxcclxuXHJcbiAgLy8gXHJcbiAgTU9ERV9DT01QQUNUX0xJU1QgPSAnY29tcGFjdCcsXHJcblxyXG4gIC8vIFxyXG4gIE1PREVfTElTVCA9ICdsaXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgTU9ERV9TTElERVIgPSAnc2xpZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgTU9ERV9EQVRFVElNRSA9ICdkYXRldGltZSdcclxufVxyXG5cclxuLy8gZmxhZ3MgZm9yIGRpc3BsYXkgb3B0aW9uc1xyXG5leHBvcnQgZW51bSBQYXJhbWV0ZXJDdHJsVHlwZXNEaXNwbGF5RmxhZyB7XHJcblxyXG4gIC8vIFxyXG4gIERJU1BMQVlfQ1VTVE9NX1RJVExFID0gJ2N1c3RvbV90aXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIERJU1BMQVlfSElERV9TTElERVJfU0xJREVSID0gJ2hpZGVfc2xpZGVyX3NsaWRlcicsXHJcblxyXG4gIC8vIFxyXG4gIERJU1BMQVlfSElERV9TTElERVJfUkVBRE9VVCA9ICdoaWRlX3NsaWRlcl9yZWFkb3V0JyxcclxuXHJcbiAgLy8gXHJcbiAgRElTUExBWV9ISURFX1NMSURFUl9CVVRUT05TID0gJ2hpZGVfc2xpZGVyX2J1dHRvbnMnXHJcbn1cclxuXHJcbi8vIFRoZSBmb2xsb3cgc3VwcG9ydHMgMTAyNCBjdXN0b20gcGFsZXR0ZXMsIGVhY2ggd2l0aCA0bSBzaGFwZXMuIEVuY29kaW5nIGlzIHBhbGV0dGUgJmx0OyZsdDsgUGFsZXR0ZVNoaWZ0IHwgc2hhcGUuXHJcbmV4cG9ydCBlbnVtIFNoYXBlRW5jb2RlQ29uc3RhbnRzIHtcclxuXHJcbiAgLy8gU2hpZnQgdmFsdWUgZm9yIHBhbGV0dGVcclxuICBFbmNvZGVQYWxldHRlU2hpZnQgPSAncGFsZXR0ZVNoaWZ0JyxcclxuXHJcbiAgLy8gTWFzayBmb3IgZ2V0dGluZyBwYWxldHRlIGZyb20gZW5jb2RlZCB2YWx1ZS4gKFRoZW4gc2hpZnQgZG93bilcclxuICBFbmNvZGVQYWxldHRlTWFzayA9ICdwYWxldHRlTWFzaycsXHJcblxyXG4gIC8vIE1hc2sgZm9yIGdldHRpbmcgc2hhcGUgZnJvbSBlbmNvZGVkIHZhbHVlXHJcbiAgRW5jb2RlU2hhcGVNYXNrID0gJ3NoYXBlTWFzaydcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFNoYXBlVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlQ2lyY2xlID0gJ2NpcmNsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlU3F1YXJlID0gJ3NxdWFyZScsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlUGx1cyA9ICdwbHVzJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVUaW1lcyA9ICd0aW1lcycsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlQXN0ZXJpc2sgPSAnYXN0ZXJpc2snLFxyXG5cclxuICAvLyBcclxuICBTaGFwZURpYW1vbmQgPSAnZGlhbW9uZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlVHJpYW5nbGUgPSAndHJpYW5nbGUnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZURvd25UcmlhbmdsZSA9ICdkb3duLXRyaWFuZ2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVMZWZ0VHJpYW5nbGUgPSAnbGVmdC10cmlhbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlUmlnaHRUcmlhbmdsZSA9ICdyaWdodC10cmlhbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIE1heEFsbFNoYXBlcyA9ICdpbnZhbGlkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2hhcGVQYWxldHRlIHtcclxuXHJcbiAgLy8gYnVpbHQtaW4gcGFsZXR0ZVxyXG4gIFNoYXBlUGFsZXR0ZUZpbGxlZCA9ICdmaWxsZWQnLFxyXG5cclxuICAvLyBjdXN0b20gcGFsZXR0ZXNcclxuICBTaGFwZVBhbGV0dGVDdXN0b20xID0gJ2N1c3RvbTEnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b20yID0gJ2N1c3RvbTInLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b20zID0gJ2N1c3RvbTMnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b200ID0gJ2N1c3RvbTQnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b201ID0gJ2N1c3RvbTUnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b202ID0gJ2N1c3RvbTYnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b203ID0gJ2N1c3RvbTcnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b204ID0gJ2N1c3RvbTgnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b205ID0gJ2N1c3RvbTknLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b20xMCA9ICdjdXN0b20xMCcsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlUGFsZXR0ZUN1c3RvbTExID0gJ2N1c3RvbTExJyxcclxuXHJcbiAgLy8gYW5kIHNvIG9uLi4uXHJcbiAgU2hhcGVQYWxldHRlQ3VzdG9tMTIgPSAnY3VzdG9tMTInLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVIaWRkZW4gPSAnaGlkZGVuJ1xyXG59XHJcblxyXG4vLyBTaGFwZVR5cGUgYW5kIHBhbGV0dGUgbWFwcGVkIGludG8gYSBzaW5nbGUgdmFsdWUuIFRoaXMgZW51bSBkZXBlbmRzIG9uIFNoYXBlVHlwZSBhbmQgdGhlIGltcGxlbWVudGF0aW9uIG9mIFNoYXBlTWFuYWdlcjo6SW50RW5jb2RlLlxyXG5leHBvcnQgZW51bSBTaGFwZUlEIHtcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJRENpcmNsZSA9ICdzaGFwZUlEQ2lyY2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJRFNxdWFyZSA9ICdzaGFwZUlEU3F1YXJlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJRFBsdXMgPSAnc2hhcGVJRFBsdXMnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUlEVGltZXMgPSAnc2hhcGVJRFRpbWVzJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJREFzdGVyaXNrID0gJ3NoYXBlSURBc3RlcmlzaycsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlSUREaWFtb25kID0gJ3NoYXBlSUREaWFtb25kJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJRFRyaWFuZ2xlID0gJ3NoYXBlSURUcmlhbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlSUREb3duVHJpYW5nbGUgPSAnc2hhcGVJRERvd25UcmlhbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlSURMZWZ0VHJpYW5nbGUgPSAnc2hhcGVJRExlZnRUcmlhbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlSURSaWdodFRyaWFuZ2xlID0gJ3NoYXBlSURSaWdodFRyaWFuZ2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJREZpbGxlZENpcmNsZSA9ICdzaGFwZUlERmlsbGVkQ2lyY2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJREZpbGxlZFNxdWFyZSA9ICdzaGFwZUlERmlsbGVkU3F1YXJlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJREZpbGxlZFBsdXMgPSAnc2hhcGVJREZpbGxlZFBsdXMnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUlERmlsbGVkVGltZXMgPSAnc2hhcGVJREZpbGxlZFRpbWVzJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJREZpbGxlZFN0YXIgPSAnc2hhcGVJREZpbGxlZFN0YXInLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUlERmlsbGVkRGlhbW9uZCA9ICdzaGFwZUlERmlsbGVkRGlhbW9uZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlSURGaWxsZWRUcmlhbmdsZSA9ICdzaGFwZUlERmlsbGVkVHJpYW5nbGUnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUlERmlsbGVkRG93blRyaWFuZ2xlID0gJ3NoYXBlSURGaWxsZWREb3duVHJpYW5nbGUnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUlERmlsbGVkTGVmdFRyaWFuZ2xlID0gJ3NoYXBlSURGaWxsZWRMZWZ0VHJpYW5nbGUnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUlERmlsbGVkUmlnaHRUcmlhbmdsZSA9ICdzaGFwZUlERmlsbGVkUmlnaHRUcmlhbmdsZScsXHJcblxyXG4gIC8vIDArKFNoYXBlUGFsZXR0ZUhpZGRlbjw8RW5jb2RlUGFsZXR0ZVNoaWZ0KVxyXG4gIFNoYXBlSURVbnNjYWxlZEZpbGxlZENpcmNsZSA9ICdzaGFwZUlEVW5zY2FsZWRGaWxsZWRDaXJjbGUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBMZWdlbmRUeXBlRW51bSB7XHJcblxyXG4gIC8vIFxyXG4gIENvbG9yID0gJ2NvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGUgPSAnc2hhcGUnLFxyXG5cclxuICAvLyBcclxuICBTaXplID0gJ3NpemUnLFxyXG5cclxuICAvLyBcclxuICBIaWdobGlnaHRMZWdlbmQgPSAnaGlnaGxpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgTWFwID0gJ21hcCcsXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBCcnVzaFNwZWNpYWxGaWVsZHMge1xyXG5cclxuICAvLyBcclxuICBCU0ZfSW52YWxpZCA9ICdpbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgQlNGX0FsbEZpZWxkcyA9ICdhbGwnLFxyXG5cclxuICAvLyBcclxuICBCU0ZfRGF0ZXNBbmRUaW1lcyA9ICdkYXRlLXRpbWUnLFxyXG5cclxuICAvLyBcclxuICBCU0ZfVHJhaWxzID0gJ3RyYWlscycsXHJcblxyXG4gIC8vIFxyXG4gIEJTRl9FbnRpcmVUYWJsZSA9ICd0YWJsZSdcclxufVxyXG5cclxuLy8gd2hhdCBraW5kIG9mIGN1cnZlIHdpbGwgYmUgZml0IHRvIHRoZSBkYXRhIGdpdmVuIHJlc3BvbnNlIHZhcmlhYmxlIFkgYW5kIGEgc2luZ2xlIHF1YW50aXRhdGl2ZSBmYWN0b3IgWFxyXG5leHBvcnQgZW51bSBUcmVuZExpbmVGaXRUeXBlIHtcclxuXHJcbiAgLy8gZXF1YXRpb24gPSBZIH4gWCArIDFcclxuICBUcmVuZExpbmVGaXRUeXBlX19MaW5lYXJGaXQgPSAnbGluZWFyJyxcclxuXHJcbiAgLy8gZXF1YXRpb24gPSBZIH4gWF4yICsgWCArIDFcclxuICBUcmVuZExpbmVGaXRUeXBlX19Qb2x5bm9taWFsRml0ID0gJ3BvbHlub21pYWwnLFxyXG5cclxuICAvLyBlcXVhdGlvbiA9IFkgfiBsb2coWClcclxuICBUcmVuZExpbmVGaXRUeXBlX19Mb2dGaXQgPSAnbG9nJyxcclxuXHJcbiAgLy8gZXF1YXRpb24gPSBZIH4gZXhwKFgpXHJcbiAgVHJlbmRMaW5lRml0VHlwZV9fRXhwRml0ID0gJ2V4cCcsXHJcblxyXG4gIC8vIGVxdWF0aW9uID0gWSB+IFheYlxyXG4gIFRyZW5kTGluZUZpdFR5cGVfX1Bvd2VyRml0ID0gJ3Bvd2VyJ1xyXG59XHJcblxyXG4vLyB0eXBlIGZvciBjb21wb25lbnRzIG9mIGEgY29tbWFuZCBwcmVzZW50YXRpb24gbW9kZWxcclxuZXhwb3J0IGVudW0gQ29tbWFuZHNFbnVtSXRlbVR5cGUge1xyXG5cclxuICAvLyBpdGVtIHdpdGggdGV4dCBhbmQgYW4gYXNzb2NpYXRlZCBjb21tYW5kXHJcbiAgSXRlbSA9ICdpdGVtJyxcclxuXHJcbiAgLy8gZHluYW1pYyByYW5nZSBvZiBpdGVtcyBnZW5lcmF0ZWQgYnkgYW4gYXNzb2NpYXRlZCBjb21tYW5kXHJcbiAgSXRlbVJhbmdlID0gJ3JhbmdlJyxcclxuXHJcbiAgLy8gbGlzdCBvZiBzdWJjb21tYW5kc1xyXG4gIFN1YkNvbW1hbmRzSXRlbSA9ICdzdWJjb21tYW5kcycsXHJcblxyXG4gIC8vIGxvZ2ljYWwgc2VwYXJhdGlvbiBiZXR3ZWVuIGdyb3VwcyBvZiBjb21tYW5kc1xyXG4gIFNlcGFyYXRvckl0ZW0gPSAnc2VwYXJhdG9yJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUGFyYW1ldGVyVHlwZXNEb21haW5UeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRG9tYWluX0FueSA9ICdhbnknLFxyXG5cclxuICAvLyBcclxuICBEb21haW5fTGlzdCA9ICdsaXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgRG9tYWluX1JhbmdlID0gJ3JhbmdlJ1xyXG59XHJcblxyXG4vLyBDYXRlZ29yaWNhbCBmaWx0ZXIgdHlwZSB1c2FnZS5cclxuZXhwb3J0IGVudW0gRmlsdGVyc0NhdGVnb3JpY2FsRmlsdGVyVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFZpc3VhbCA9ICd2aXN1YWwnLFxyXG5cclxuICAvLyBcclxuICBFeHRyYWN0ID0gJ2V4dHJhY3QnLFxyXG5cclxuICAvLyBcclxuICBHcm91cCA9ICdncm91cCdcclxufVxyXG5cclxuLy8gRmlsdGVyIGNvbnRleHQgZG9tYWluc1xyXG5leHBvcnQgZW51bSBGaWx0ZXJzRG9tYWluVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFJlbGV2YW50ID0gJ3JlbGV2YW50JyxcclxuXHJcbiAgLy8gXHJcbiAgQ2FzY2FkaW5nID0gJ2Nhc2NhZGluZycsXHJcblxyXG4gIC8vIFxyXG4gIENhc2NhZGluZ0NvbnRleHQgPSAnY2FzY2FkaW5nLWNvbnRleHQnLFxyXG5cclxuICAvLyBcclxuICBDb250ZXh0ID0gJ2NvbnRleHQnLFxyXG5cclxuICAvLyBcclxuICBEYXRhYmFzZSA9ICdhbGwnXHJcbn1cclxuXHJcbi8vIFNlbGVjdGlvbiAocmVsYXRpb25hbCBvbmx5KSAtIFJhbmdlIHR5cGVcclxuZXhwb3J0IGVudW0gRmlsdGVyc1JhbmdlVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIEFsbCA9ICdhbGwnLFxyXG5cclxuICAvLyBcclxuICBTZWxlY3RlZCA9ICdzZWxlY3RlZCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hbnVhbCA9ICdtYW51YWwnXHJcbn1cclxuXHJcbi8vIFBhdHRlcm4gYmFzZWQgZmlsdGVyaW5nXHJcbmV4cG9ydCBlbnVtIEZpbHRlcnNQYXR0ZXJuVHlwZSB7XHJcblxyXG4gIC8vIHN0YXJ0cyB3aXRoIHRoZSBzcGVjaWZpZWQgcGF0dGVybiB0ZXh0XHJcbiAgU3RhcnRzV2l0aCA9ICdzdGFydHMtd2l0aCcsXHJcblxyXG4gIC8vIGVuZHMgd2l0aCB0aGUgc3BlY2lmaWVkIHBhdHRlcm4gdGV4dFxyXG4gIEVuZHNXaXRoID0gJ2VuZHMtd2l0aCcsXHJcblxyXG4gIC8vIGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgcGF0dGVybiB0ZXh0XHJcbiAgQ29udGFpbnMgPSAnY29udGFpbnMnLFxyXG5cclxuICAvLyBleGFjdGx5IG1hdGNoZXMgdGhlIHNwZWNpZmllZCBwYXR0ZXJuIHRleHRcclxuICBFeGFjdE1hdGNoID0gJ2V4YWN0LW1hdGNoJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRmlsdGVyc0xpbWl0VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIE5vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEJ5RmllbGQgPSAnYnktZmllbGQnLFxyXG5cclxuICAvLyBcclxuICBGb3JtdWxhID0gJ2Zvcm11bGEnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBGaWx0ZXJzQ29uZGl0aW9uVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIE5vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEJ5RmllbGQgPSAnYnktZmllbGQnLFxyXG5cclxuICAvLyBcclxuICBGb3JtdWxhID0gJ2Zvcm11bGEnXHJcbn1cclxuXHJcbi8vIEhpZ2hlciBsZXZlbCBpbnRlcHJldGF0aW9uIG9mIGEgcmVsYXRpdmUgZGF0ZSBmaWx0ZXIncyByYW5nZVxyXG5leHBvcnQgZW51bSBGaWx0ZXJzUmVsYXRpdmVEYXRlUmFuZ2VUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgUmFuZ2VDdXJyZW50ID0gJ2N1cnInLFxyXG5cclxuICAvLyBcclxuICBSYW5nZUN1cnJlbnRUb0RhdGUgPSAndG9kYXRlJyxcclxuXHJcbiAgLy8gXHJcbiAgUmFuZ2VMYXN0MSA9ICdsYXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgUmFuZ2VOZXh0MSA9ICduZXh0JyxcclxuXHJcbiAgLy8gXHJcbiAgUmFuZ2VMYXN0TiA9ICdsYXN0bicsXHJcblxyXG4gIC8vIFxyXG4gIFJhbmdlTmV4dE4gPSAnbmV4dG4nLFxyXG5cclxuICAvLyBcclxuICBSYW5nZU90aGVyMSA9ICdvdGhlcicsXHJcblxyXG4gIC8vIFxyXG4gIFJhbmdlT3RoZXJOID0gJ290aGVybicsXHJcblxyXG4gIC8vIFxyXG4gIFJhbmdlSW52YWxpZCA9ICdpbnZhbGlkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRmlsdGVyc0ZpbHRlck1vZGUge1xyXG5cclxuICAvLyBcclxuICBMb2NhbCA9ICdsb2NhbCcsXHJcblxyXG4gIC8vIFxyXG4gIEdsb2JhbCA9ICdnbG9iYWwnLFxyXG5cclxuICAvLyBcclxuICBTaGFyZWQgPSAnc2hhcmVkJyxcclxuXHJcbiAgLy8gXHJcbiAgTWFwcGVkR2xvYmFsID0gJ21hcHBlZC1nbG9iYWwnXHJcbn1cclxuXHJcbi8vIEhvdyB1bmNvbW1pdHRlZCBzZWxlY3Rpb24gc3RhdGUgaXMgYmVpbmcgdHJhY2tlZFxyXG5leHBvcnQgZW51bSBGaWx0ZXJzU2VsZWN0aW9uVHJhY2tpbmcge1xyXG5cclxuICAvLyBQYXNzZWQgbWVtYmVycyBoYXZlIGJlZW4gdXBkYXRlZDogZWFjaCBpbmNsdWRlZCBtZW1iZXJzJyBzZWxlY3Rpb24gc3RhdGUgc2hvdWxkIGJlIGZsaXBwZWQgZnJvbSBpdHMgaW5pdGlhbCBzdGF0ZS5cclxuICBEaWZmZXJlbmNlc0Zyb21CYXNlID0gJ2RpZmZlcmVuY2VzJyxcclxuXHJcbiAgLy8gUGFzc2VkIG1lbWJlcnMgc2hvdWxkIGJlIHVuY29uZGl0aW9uYWxseSBzZWxlY3RlZFxyXG4gIFNlbGVjdGVkVmFsdWVzID0gJ3NlbGVjdGVkJyxcclxuXHJcbiAgLy8gRG9uJ3Qgc2F2ZSBhbnkgc2VsZWN0aW9uIHN0YXRlLiBUaGlzIHNhdmVzIG1lbW9yeSBhdCB0aGUgY29zdCBvZiBub3QgYmVpbmcgcmVjb3ZlcmFibGUgaWYgdGhlIGNvbnRyb2xsZXIgaXMgZ29uZS5cclxuICBOb25lID0gJ2RvbnQtdHJhY2stc2VsZWN0aW9uLXN0YXRlJ1xyXG59XHJcblxyXG4vLyBmaWx0ZXIgdXBkYXRlIG9wdGlvbnNcclxuZXhwb3J0IGVudW0gRmlsdGVyVXBkYXRlVHlwZSB7XHJcblxyXG4gIC8vIHNlbGVjdCBhbGwgdmFsdWVzIGluIGZpbHRlclxyXG4gIEFMTCA9ICdmaWx0ZXItYWxsJyxcclxuXHJcbiAgLy8gYWRkIGl0ZW1zIHRvIGV4aXN0aW5nIGZpbHRlclxyXG4gIEFERCA9ICdmaWx0ZXItYWRkJyxcclxuXHJcbiAgLy8gcmVtb3ZlIGl0ZW1zIGZyb20gZXhpc3RpbmcgZmlsdGVyXHJcbiAgUkVNT1ZFID0gJ2ZpbHRlci1yZW1vdmUnLFxyXG5cclxuICAvLyByZXBsYWNlIGV4aXN0aW5nIGZpbHRlciB3aXRoIGdpdmVuIG9wdGlvbnNcclxuICBSRVBMQUNFID0gJ2ZpbHRlci1yZXBsYWNlJyxcclxuXHJcbiAgLy8gbWl4dHVyZSBvZiBhZGQgKyByZW1vdmFsXHJcbiAgREVMVEEgPSAnZmlsdGVyLWRlbHRhJyxcclxuXHJcbiAgLy8gY2xlYXIgdGhlIGZpbHRlclxyXG4gIENMRUFSID0gJ2ZpbHRlci1jbGVhcicsXHJcblxyXG4gIC8vIGVhY2ggdmFsdWUgaW4gdGhlIGZpbHRlciwgYnV0IGluZGl2aWR1YWxseSBzZWxlY3RlZFxyXG4gIEVBQ0ggPSAnZmlsdGVyLWVhY2gnXHJcbn1cclxuXHJcbi8vIGFkZGl0aW9uYWwgY29udGV4dCBuZWVkZWQgdG8gcGVyZm9ybSBhIGZpbHRlciB1cGRhdGUgY29ycmVjdGx5XHJcbmV4cG9ydCBlbnVtIEZpbHRlclVwZGF0ZVF1YWxpZmllclR5cGUge1xyXG5cclxuICAvLyB0aGUgZmlsdGVyJ3MgZG9tYWluIGlzIGEgbWFudWFsbHkgdHlwZWQgaW4gb3Igc2VsZWN0ZWQgc3Vic2V0IG9mIHRoZSBmdWxsIGRvbWFpblxyXG4gIENVU1RPTV9ET01BSU4gPSAnZmlsdGVyLXVwZGF0ZS1jdXN0b20tZG9tYWluJyxcclxuXHJcbiAgLy8gbm8gcXVhbGlmaWNhdGlvbnMgdG8gdGhlIGZpbHRlci11cGRhdGUgYXJlIHNwZWNpZmllZFxyXG4gIE5PX1FVQUxJRklDQVRJT05TID0gJ2ZpbHRlci11cGRhdGUtbm8tcXVhbCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZpbHRlcnNQcmVzZXRUeXBlIHtcclxuXHJcbiAgLy8ga2VlcCB0aGUgc2VsZWN0aW9uIGNob3NlbiBieSB0aGUgdXNlclxyXG4gIE5vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIHVwZGF0ZSB0byB0aGUgbGF0ZXN0IHZhbHVlcyBpbiB0aGUgZGF0YWJhc2VcclxuICBMYXN0VmFsdWVzID0gJ2xhc3QtdmFsdWVzJyxcclxuXHJcbiAgLy8gXHJcbiAgQ3VycmVudFZhbHVlcyA9ICdjdXJyZW50LXZhbHVlcydcclxufVxyXG5cclxuLy8gTm90ZTogYW4gZW1wdHkgcmFuZ2UgKGJvdGggZW5kcG9pbnRzIE5VTEwpIGlzIGRlZmluZWQgdG8gbWVhbiAnYWxsIG5vbi1OVUxMIHZhbHVlcycsIGJ5IHN5bW1ldHJ5IHdpdGggd2hhdCBhIHNpbmdsZS1lbmRlZCByYW5nZSBtZWFucywgc28gYW4gZW1wdHkgcmFuZ2UgYW5kIEluUmFuZ2UgcmVhbGx5IG1lYW5zIE5vbk51bGwsIGFuZCBhbiBlbXB0eSByYW5nZSBhbmQgblJhbmdlT3JOdWxsIHJlYWxseSBtZWFucyBBbGxcclxuZXhwb3J0IGVudW0gRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzIHtcclxuXHJcbiAgLy8gdGhlIGlkZW50aXR5IGZpbHRlciAoZXZlcnl0aGluZyBpcyBpbmNsdWRlZClcclxuICBBbGwgPSAnaW5jbHVkZS1hbGwnLFxyXG5cclxuICAvLyBhbGwgdmFsdWVzIHdoaWNoIGFyZSBub24tbnVsbHB0clxyXG4gIE5vbk51bGwgPSAnaW5jbHVkZS1ub24tbnVsbCcsXHJcblxyXG4gIC8vIGFsbCB2YWx1ZXMgd2hpY2ggYXJlIG51bGxwdHJcclxuICBOdWxsID0gJ2luY2x1ZGUtbnVsbCcsXHJcblxyXG4gIC8vIG9ubHkgdmFsdWVzIHdpdGhpbiB0aGUgcmFuZ2UgYW5kIHdoaWNoIGFyZSBub24gbnVsbFxyXG4gIEluUmFuZ2UgPSAnaW5jbHVkZS1yYW5nZScsXHJcblxyXG4gIC8vIHZhbHVlcyB3aXRoaW4gdGhlIHJhbmdlIG9yIHdoaWNoIGFyZSBudWxscHRyXHJcbiAgSW5SYW5nZU9yTnVsbCA9ICdpbmNsdWRlLXJhbmdlLW9yLW51bGwnLFxyXG5cclxuICAvLyBhbGwgdmFsdWVzIGFyZSBmaWx0ZXJlZCBvdXQuIFVzZXIgY2Fubm90IGNyZWF0ZSB0aGlzIHR5cGUgb2YgZmlsdGVyIGRpcmVjdGx5OyBpcyBvbmx5IGNyZWF0ZWQgd2hlbiB0d28gZmlsdGVycyBpbnRlcnNlY3QgYW5kIHRoZWlyIGluY2x1ZGVkVmFsdWVzIGNvbmZsaWN0IHNvIHRoZXkgd2lsbCBpbmNsdWRlIG5vdGhpbmcgKGUuZy4sIE5vbk51bGwgd2l0aCBOdWxsKVxyXG4gIE5vbmUgPSAnaW5jbHVkZS1ub25lJ1xyXG59XHJcblxyXG4vLyBGaXNjYWwgWWVhciBTdGFydGluZyBNb250aFxyXG5leHBvcnQgZW51bSBGWVNWYWx1ZXMge1xyXG5cclxuICAvLyBcclxuICBGWVNWYWx1ZXNfX0ZZU19KQU5VQVJZID0gJ2Z5cy1qYW51YXJ5JyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfRkVCUlVBUlkgPSAnZnlzLWZlYnJ1YXJ5JyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfTUFSQ0ggPSAnZnlzLW1hcmNoJyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfQVBSSUwgPSAnZnlzLWFwcmlsJyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfTUFZID0gJ2Z5cy1tYXknLFxyXG5cclxuICAvLyBcclxuICBGWVNWYWx1ZXNfX0ZZU19KVU5FID0gJ2Z5cy1qdW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfSlVMWSA9ICdmeXMtanVseScsXHJcblxyXG4gIC8vIFxyXG4gIEZZU1ZhbHVlc19fRllTX0FVR1VTVCA9ICdmeXMtYXVndXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfU0VQVEVNQkVSID0gJ2Z5cy1zZXB0ZW1iZXInLFxyXG5cclxuICAvLyBcclxuICBGWVNWYWx1ZXNfX0ZZU19PQ1RPQkVSID0gJ2Z5cy1vY3RvYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfTk9WRU1CRVIgPSAnZnlzLW5vdmVtYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfREVDRU1CRVIgPSAnZnlzLWRlY2VtYmVyJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUGFnZU5hdkZsYWdzRmxhZ3Mge1xyXG5cclxuICAvLyBcclxuICBOb25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBMb29wZWRQbGF5YmFjayA9ICdsb29wZWQtcGxheWJhY2snLFxyXG5cclxuICAvLyBcclxuICBTaG93RHJvcGRvd24gPSAnc2hvdy1kcm9wZG93bicsXHJcblxyXG4gIC8vIFxyXG4gIFNob3dTbGlkZXIgPSAnc2hvdy1zbGlkZXInLFxyXG5cclxuICAvLyBcclxuICBTaG93UGxheUN0cmxzID0gJ3Nob3ctcGxheS1jb250cm9scycsXHJcblxyXG4gIC8vIFxyXG4gIFNob3dUcmFpbEN0cmxzID0gJ3Nob3ctdHJhaWwtY29udHJvbHMnLFxyXG5cclxuICAvLyBcclxuICBTeW5jaHJvbml6ZWQgPSAnc3luY2hyb25pemVkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUGFnZVRyYWlsRW51bXNNYXJrc1RvVHJhaWwge1xyXG5cclxuICAvLyBcclxuICBNYW51YWwgPSAnbWFudWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgQWxsID0gJ2FsbCcsXHJcblxyXG4gIC8vIFxyXG4gIFNlbGVjdGVkID0gJ3NlbGVjdGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgSGlnaGxpZ2h0ZWQgPSAnaGlnaGxpZ2h0ZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBQYWdlVHJhaWxFbnVtc1RyYWlsVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIE1hcmtzID0gJ21hcmtzJyxcclxuXHJcbiAgLy8gXHJcbiAgVHJhaWxzID0gJ3RyYWlscycsXHJcblxyXG4gIC8vIFxyXG4gIEJvdGggPSAnYm90aCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFBhZ2VUcmFpbEVudW1zVHJhaWxFZmZlY3Qge1xyXG5cclxuICAvLyBcclxuICBOb25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBUcmFuc3BhcmVuY3kgPSAndHJhbnNwYXJlbmN5J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUGFnZVRyYWlsRW51bXNUcmFpbEZsYWdzIHtcclxuXHJcbiAgLy8gXHJcbiAgTm9GbGFncyA9ICduby1mbGFncycsXHJcblxyXG4gIC8vIFxyXG4gIERyYXdJZkhpZ2hsaWdodGVkID0gJ2RyYXctaWYtaGlnaGxpZ2h0ZWQnLFxyXG5cclxuICAvLyBcclxuICBEcmF3SWZTZWxlY3RlZCA9ICdkcmF3LWlmLXNlbGVjdGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgRHJhd0Fsd2F5cyA9ICdkcmF3LWFsd2F5cycsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVzRW5hYmxlZCA9ICdsaW5lcy1lbmFibGVkJ1xyXG59XHJcblxyXG4vLyBzaW1wbGUgcGFnZSBjaGFuZ2UgY29tbWFuZHNcclxuZXhwb3J0IGVudW0gQ2hhbmdlUGFnZUNoYW5nZVR5cGUge1xyXG5cclxuICAvLyBcclxuICBUb0ZpcnN0ID0gJ2ZpcnN0JyxcclxuXHJcbiAgLy8gXHJcbiAgVG9OZXh0ID0gJ25leHQnLFxyXG5cclxuICAvLyBcclxuICBUb1ByZXYgPSAncHJldmlvdXMnLFxyXG5cclxuICAvLyBcclxuICBUb0xhc3QgPSAnbGFzdCdcclxufVxyXG5cclxuLy8gU3RvcCwgc3RhcnQgaW4gYSBkaXJlY3Rpb24sIG9yIHNldCBzcGVlZCBvZiBwYWdlIGFuaW1hdGlvblxyXG5leHBvcnQgZW51bSBDaGFuZ2VQYWdlUGFnZUFuaW1hdGlvbkNvbnRyb2wge1xyXG5cclxuICAvLyBcclxuICBTdG9wID0gJ3N0b3AnLFxyXG5cclxuICAvLyBcclxuICBGb3J3YXJkID0gJ2ZvcndhcmQnLFxyXG5cclxuICAvLyBcclxuICBCYWNrd2FyZCA9ICdiYWNrd2FyZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNsb3dTcGVlZCA9ICdzbG93LXNwZWVkJyxcclxuXHJcbiAgLy8gXHJcbiAgTm9ybWFsU3BlZWQgPSAnbm9ybWFsLXNwZWVkJyxcclxuXHJcbiAgLy8gXHJcbiAgRmFzdFNwZWVkID0gJ2Zhc3Qtc3BlZWQnLFxyXG5cclxuICAvLyBcclxuICBUb2dnbGVGb3J3YXJkID0gJ3RvZ2dsZS1mb3J3YXJkJyxcclxuXHJcbiAgLy8gXHJcbiAgVG9nZ2xlQmFja3dhcmQgPSAndG9nZ2xlLWJhY2t3YXJkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTGVnZW5kSXRlbUxheW91dCB7XHJcblxyXG4gIC8vIFxyXG4gIExlZ2VuZEl0ZW1MYXlvdXRWZXJ0ID0gJ3ZlcnRpY2FsJyxcclxuXHJcbiAgLy8gXHJcbiAgTGVnZW5kSXRlbUxheW91dEhvcnogPSAnaG9yaXpvbnRhbCcsXHJcblxyXG4gIC8vIFxyXG4gIExlZ2VuZEl0ZW1MYXlvdXRHcmlkID0gJ2dyaWQnLFxyXG5cclxuICAvLyBcclxuICBMZWdlbmRJdGVtTGF5b3V0QXV0byA9ICdhdXRvJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTGVnZW5kSXRlbU9yZGVyIHtcclxuXHJcbiAgLy8gXHJcbiAgTGVnZW5kSXRlbU9yZGVyTm9ybWFsID0gJ25vcm1hbCcsXHJcblxyXG4gIC8vIFxyXG4gIExlZ2VuZEl0ZW1PcmRlclJldmVyc2VkID0gJ3JldmVyc2VkJyxcclxuXHJcbiAgLy8gXHJcbiAgTGVnZW5kSXRlbU9yZGVyQXV0byA9ICdhdXRvJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2l6ZU1vZGUge1xyXG5cclxuICAvLyBcclxuICBTaXplTW9kZUF1dG8gPSAnc2l6ZS1tb2RlLWF1dG8nLFxyXG5cclxuICAvLyBcclxuICBTaXplTW9kZUZpeGVkID0gJ3NpemUtbW9kZS1maXhlZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNpemVNb2RlTWluID0gJ3NpemUtbW9kZS1taW4nLFxyXG5cclxuICAvLyBcclxuICBTaXplTW9kZU1heCA9ICdzaXplLW1vZGUtbWF4JyxcclxuXHJcbiAgLy8gXHJcbiAgU2l6ZU1vZGVSYW5nZSA9ICdzaXplLW1vZGUtcmFuZ2UnLFxyXG5cclxuICAvLyBcclxuICBTaXplTW9kZUZpdFdpZHRoID0gJ3NpemUtbW9kZS1maXQtd2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBTaXplTW9kZUZpdEhlaWdodCA9ICdzaXplLW1vZGUtaGVpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgU2l6ZU1vZGVTY3JvbGxIZWlnaHQgPSAnc2l6ZS1tb2RlLXNjcm9sbC1oZWlnaHQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTaG93TWVDb21tYW5kVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9URVhUID0gJ3RleHQnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfSEVBVCA9ICdoZWF0JyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX1NQT1RUQUJMRSA9ICdzcG90LXRhYmxlJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0JBUkhPUklaID0gJ2Jhci1ob3JpeicsXHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9CQVJTVEFDSyA9ICdiYXItc3RhY2snLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfQkFSU0lERSA9ICdiYXItc2lkZScsXHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9CQVJNRUFTVVJFID0gJ2Jhci1tZWFzdXJlJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX09MSU5FID0gJ28tbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9RSUxJTkUgPSAncWktbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9PQVJFQSA9ICdvLWFyZWEnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfUUlBUkVBID0gJ3FpLWFyZWEnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfQ0lSQ0xFID0gJ2NpcmNsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9DSVJDTEVTSURFID0gJ2NpcmNsZS1zaWRlJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0dBTlRUID0gJ2dhbnR0JyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX1NDQVRURVIgPSAnc2NhdHRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9TQ0FUVEVSTUFUUklYID0gJ3NjYXR0ZXItbWF0cml4JyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0hJU1RPR1JBTSA9ICdoaXN0b2dyYW0nLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfTUFQUyA9ICdtYXBzJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0ZJTExFRE1BUFMgPSAnZmlsbGVkLW1hcHMnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfUElFUyA9ICdwaWVzJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0RVQUxCQVJMSU5FID0gJ2R1YWwtYmFyLWxpbmUnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfRFVBTExJTkUgPSAnZHVhbC1saW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0JVTExFVCA9ICdidWxsZXQnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfVFJFRU1BUCA9ICd0cmVlbWFwJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0JVQkJMRSA9ICdidWJibGUnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfQk9YUExPVCA9ICdib3gtcGxvdCcsXHJcbn1cclxuXHJcbi8vIGljb24gdG8gZGlzcGxheSBmb3IgYW4gaXRlbSBvbiBhIHNoZWxmXHJcbmV4cG9ydCBlbnVtIFNoZWxmSWNvblR5cGUge1xyXG5cclxuICAvLyBub3Qgc2V0XHJcbiAgU0lUX05vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIGluY29tcGF0aWJsZSBmaWVsZFxyXG4gIFNJVF9JbmNvbXBhdGlibGVGaWVsZCA9ICdpbmNvbXBhdGlibGUtZmllbGQnLFxyXG5cclxuICAvLyByZW1vdGVcclxuICBTSVRfUmVtb3RlID0gJ3JlbW90ZScsXHJcblxyXG4gIC8vIGdyb3VwXHJcbiAgU0lUX0dyb3VwID0gJ2dyb3VwJyxcclxuXHJcbiAgLy8gdGFibGUgY2FsY1xyXG4gIFNJVF9UYWJsZUNhbGMgPSAndGFibGUtY2FsYycsXHJcblxyXG4gIC8vIGl0ZW0gY29tZXMgZnJvbSBhIHNlY29uZGFyeSBkYXRhc291cmNlXHJcbiAgU0lUX1NlY29uZGFyeURhdGFzb3VyY2UgPSAnc2Vjb25kYXJ5LWRhdGFzb3VyY2UnLFxyXG5cclxuICAvLyB0YWJsZSBjYWxjIGZyb20gYSBzZWNvbmRhcnkgZGF0YXNvdXJjZVxyXG4gIFNJVF9UYWJsZUNhbGNTZWNvbmRhcnkgPSAndGFibGUtY2FsYy1zZWNvbmRhcnknLFxyXG5cclxuICAvLyBmb3JlY2FzdFxyXG4gIFNJVF9Gb3JlY2FzdCA9ICdmb3JlY2FzdCcsXHJcblxyXG4gIC8vIGFzY2VuZGluZyBzb3J0XHJcbiAgU0lUX1NvcnRBc2MgPSAnc29ydC1hc2MnLFxyXG5cclxuICAvLyBkZXNjZW5kaW5nIHNvcnRcclxuICBTSVRfU29ydERlc2MgPSAnc29ydC1kZXNjJyxcclxuXHJcbiAgLy8gYWxwaGFiZXRpYyBhc2NlbmRpbmcgc29ydFxyXG4gIFNJVF9Tb3J0QWxwaGFiZXRpY0FzYyA9ICdzb3J0LWFscGhhYmV0aWMtYXNjJyxcclxuXHJcbiAgLy8gYWxwaGFiZXRpYyBkZXNjZW5kaW5nIHNvcnRcclxuICBTSVRfU29ydEFscGhhYmV0aWNEZXNjID0gJ3NvcnQtYWxwaGFiZXRpYy1kZXNjJ1xyXG59XHJcblxyXG4vLyBpY29uIHRvIGRpc3BsYXkgZm9yIGFuIGl0ZW0gb24gdGhlIGZpbHRlcnMgc2hlbGZcclxuZXhwb3J0IGVudW0gRmlsdGVySWNvblR5cGUge1xyXG5cclxuICAvLyBhIGdsb2JhbCBmaWx0ZXIgaWNvblxyXG4gIEZJVF9HbG9iYWwgPSAnZ2xvYmFsLWZpbHRlcicsXHJcblxyXG4gIC8vIGEgc2hhcmVkIGZpbHRlciBpY29uXHJcbiAgRklUX1NoYXJlZCA9ICdzaGFyZWQtZmlsdGVyJyxcclxuXHJcbiAgLy8gYSBtYXBwZWQgc2hhcmVkIHNvdXJjZSBmaWx0ZXIgaWNvblxyXG4gIEZJVF9NYXBwZWRTaGFyZWRTb3VyY2UgPSAnbWFwcGVkLXNoYXJlZC1zb3VyY2UtZmlsdGVyJyxcclxuXHJcbiAgLy8gYSBtYXBwZWQgc2hhcmVkIHRhcmdldCBmaWx0ZXIgaWNvblxyXG4gIEZJVF9NYXBwZWRTaGFyZWRUYXJnZXQgPSAnbWFwcGVkLXNoYXJlZC10YXJnZXQtZmlsdGVyJyxcclxuXHJcbiAgLy8gYSBzbGljaW5nIGZpbHRlciBpY29uXHJcbiAgRklUX1NsaWNlID0gJ3NsaWNlLWZpbHRlcicsXHJcblxyXG4gIC8vIGEgbG9jYWwgZmlsdGVyIGljb25cclxuICBGSVRfTG9jYWwgPSAnbG9jYWwtZmlsdGVyJyxcclxuXHJcbiAgLy8gYSBtYXBwZWQgZ2xvYmFsIHNvdXJjZSBmaWx0ZXIgaWNvblxyXG4gIEZJVF9NYXBwZWRHbG9iYWxTb3VyY2UgPSAnbWFwcGVkLWdsb2JhbC1zb3VyY2UtZmlsdGVyJyxcclxuXHJcbiAgLy8gYSBtYXBwZWQgZ2xvYmFsIHRhcmdldCBmaWx0ZXIgaWNvblxyXG4gIEZJVF9NYXBwZWRHbG9iYWxUYXJnZXQgPSAnbWFwcGVkLWdsb2JhbC10YXJnZXQtZmlsdGVyJyxcclxuXHJcbiAgLy8gbm90IGEgZmlsdGVyXHJcbiAgRklUX05vbmUgPSAnbm8tZmlsdGVyJ1xyXG59XHJcblxyXG4vLyB1c2VkIHRvIGluZGljYXRlIGlmIGEgZmllbGQgaXMgcGFydCBvZiBhIGR1YWwgYXhpc1xyXG5leHBvcnQgZW51bSBJdGVtRHJhd1N0eWxlIHtcclxuXHJcbiAgLy8gbm90IHBhcnQgb2YgYSBkdWFsIGF4aXNcclxuICBJVEVNX0RSQVdTVFlMRV9OT1JNQUwgPSAnbm9ybWFsJyxcclxuXHJcbiAgLy8gZmlyc3QgaXRlbSBvbiBkdWFsIGF4aXNcclxuICBJVEVNX0RSQVdTVFlMRV9PUEVORUQgPSAnb3BlbmVkJyxcclxuXHJcbiAgLy8gc2Vjb25kIGl0ZW0gb24gZHVhbCBheGlzXHJcbiAgSVRFTV9EUkFXU1RZTEVfQ0xPU0VEID0gJ2Nsb3NlZCcsXHJcblxyXG4gIC8vIG1pZGRsZSBpdGVtIGluIGEgc2V0IG9mIGxheWVyc1xyXG4gIElURU1fRFJBV1NUWUxFX01JRERMRSA9ICdtaWRkbGUnXHJcbn1cclxuXHJcbi8vIGluZGljYXRlcyB0aGUgc2l6ZSBvZiBwYWdlIGZvciBhIHNoZWV0XHJcbmV4cG9ydCBlbnVtIFBhZ2VTaXplT3B0aW9uIHtcclxuXHJcbiAgLy8gXHJcbiAgUEFHRVNJWkVfTEVUVEVSID0gJ2xldHRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFBBR0VTSVpFX0xFR0FMID0gJ2xlZ2FsJyxcclxuXHJcbiAgLy8gXHJcbiAgUEFHRVNJWkVfTk9URSA9ICdub3RlJyxcclxuXHJcbiAgLy8gXHJcbiAgUEFHRVNJWkVfRk9MSU8gPSAnZm9saW8nLFxyXG5cclxuICAvLyBcclxuICBQQUdFU0laRV9UQUJMT0lEID0gJ3RhYmxvaWQnLFxyXG5cclxuICAvLyBcclxuICBQQUdFU0laRV9MRURHRVIgPSAnbGVkZ2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgUEFHRVNJWkVfU1RBVEVNRU5UID0gJ3N0YXRlbWVudCcsXHJcblxyXG4gIC8vIFxyXG4gIFBBR0VTSVpFX0VYRUNVVElWRSA9ICdleGVjdXRpdmUnLFxyXG5cclxuICAvLyBcclxuICBQQUdFU0laRV9BMyA9ICdhMycsXHJcblxyXG4gIC8vIFxyXG4gIFBBR0VTSVpFX0E0ID0gJ2E0JyxcclxuXHJcbiAgLy8gXHJcbiAgUEFHRVNJWkVfQTUgPSAnYTUnLFxyXG5cclxuICAvLyBcclxuICBQQUdFU0laRV9CNCA9ICdiNCcsXHJcblxyXG4gIC8vIFxyXG4gIFBBR0VTSVpFX0I1ID0gJ2I1JyxcclxuXHJcbiAgLy8gXHJcbiAgUEFHRVNJWkVfUVVBUlRPID0gJ3F1YXJ0bycsXHJcblxyXG4gIC8vIFxyXG4gIFBBR0VTSVpFX1VOU1BFQ0lGSUVEID0gJ3Vuc3BlY2lmaWVkJyxcclxufVxyXG5cclxuLy8gSW5kaWNhdGVzIHRoZSBsYXlvdXQgb2YgcGFnZSBmb3IgYSBzaGVldFxyXG5leHBvcnQgZW51bSBQYWdlT3JpZW50YXRpb24ge1xyXG5cclxuICAvLyBcclxuICBPcmllbnRhdGlvblByaW50ZXIgPSAncHJpbnRlcicsXHJcblxyXG4gIC8vIFxyXG4gIE9yaWVudGF0aW9uUG9ydHJhaXQgPSAncG9ydHJhaXQnLFxyXG5cclxuICAvLyBcclxuICBPcmllbnRhdGlvbkxhbmRzY2FwZSA9ICdsYW5kc2NhcGUnXHJcbn1cclxuXHJcbi8vIEluZGljYXRlcyB0aGUgbWFubmVyIG9mIHNjYWxpbmcgb2YgcGFnZSBmb3IgYSBzaGVldFxyXG5leHBvcnQgZW51bSBTY2FsZU1vZGUge1xyXG5cclxuICAvLyBcclxuICBTY2FsZUF1dG8gPSAnYXV0bycsXHJcblxyXG4gIC8vIFxyXG4gIFNjYWxlUGVyY2VudGFnZSA9ICdwZXJjZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgU2NhbGVGaXRQYWdlcyA9ICdmaXQtcGFnZXMnXHJcbn1cclxuXHJcbi8vIEluZGljYXRlcyB0aGUgZGVmYXVsdC9zZWxlY3RhYmxlIHNjYWxpbmcgb2YgcGFnZSBmb3IgYSBzaGVldFxyXG5leHBvcnQgZW51bSBQYWdlU2NhbGluZ09wdGlvbiB7XHJcblxyXG4gIC8vIFxyXG4gIFNjYWxlUGN0QXV0byA9ICdhdXRvJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NhbGVQY3Q0MDAgPSAncGN0NDAwJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NhbGVQY3QyMDAgPSAncGN0MjAwJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NhbGVQY3QxMDAgPSAncGN0MTAwJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NhbGVQY3Q5MCA9ICdwY3Q5MCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjYWxlUGN0ODAgPSAncGN0ODAnLFxyXG5cclxuICAvLyBcclxuICBTY2FsZVBjdDc1ID0gJ3BjdDc1JyxcclxuXHJcbiAgLy8gXHJcbiAgU2NhbGVQY3Q2MCA9ICdwY3Q2MCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjYWxlUGN0NTAgPSAncGN0NTAnLFxyXG5cclxuICAvLyBcclxuICBTY2FsZVBjdDI1ID0gJ3BjdDI1J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2hlZXRSYW5nZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNoZWV0UmFuZ2VBbGwgPSAnYWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hlZXRSYW5nZUFjdGl2ZSA9ICdhY3RpdmUnLFxyXG5cclxuICAvLyBcclxuICBTaGVldFJhbmdlU2VsZWN0ZWQgPSAnc2VsZWN0ZWQnXHJcbn1cclxuXHJcbi8vIHNoZWV0IHR5cGVcclxuZXhwb3J0IGVudW0gU2hlZXRUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgVFlQRV9XT1JLU0hFRVQgPSAnd29ya3NoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgVFlQRV9EQVNIQk9BUkQgPSAnZGFzaGJvYXJkJyxcclxuXHJcbiAgLy8gXHJcbiAgVFlQRV9TVE9SWSA9ICdzdG9yeSdcclxufVxyXG5cclxuLy8gYSBkYXNoYm9hcmQgaW1hZ2UgbWV0cmljJ3MgdHlwZVxyXG5leHBvcnQgZW51bSBDbGllbnRVSU1ldHJpY1R5cGUge1xyXG5cclxuICAvLyBcclxuICBVSU1UX1Njcm9sbGJhck1ldHJpYyA9ICdzY3JvbGxiYXItbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9RRmlsdGVyRml4ZWRNZXRyaWMgPSAncS1maWx0ZXItZml4ZWQtbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9RRmlsdGVyU2xpZGVyTWV0cmljID0gJ3EtZmlsdGVyLXNsaWRlci1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX1FGaWx0ZXJSZWFkb3V0TWV0cmljID0gJ3EtZmlsdGVyLXJlYWRvdXQtbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9DRmlsdGVyRml4ZWRNZXRyaWMgPSAnYy1maWx0ZXItZml4ZWQtbWV0cmljJyxcclxuXHJcbiAgLy8gbWluaW11bSBjaGVjay9yYWRpb2xpc3QgaXRlbSBzaXplXHJcbiAgVUlNVF9DRmlsdGVySXRlbU1ldHJpYyA9ICdjLWZpbHRlci1pdGVtLW1ldHJpYycsXHJcblxyXG4gIC8vIFxyXG4gIFVJTVRfSEZpbHRlckZpeGVkTWV0cmljID0gJ2gtZmlsdGVyLWZpeGVkLW1ldHJpYycsXHJcblxyXG4gIC8vIG1pbmltdW0gaGllcmFyY2hpY2FsIGl0ZW0gc2l6ZVxyXG4gIFVJTVRfSEZpbHRlckl0ZW1NZXRyaWMgPSAnaC1maWx0ZXItaXRlbS1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX0NtU2xpZGVyRmlsdGVyTWV0cmljID0gJ2NtLXNsaWRlci1maWx0ZXItbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9DbURyb3Bkb3duRmlsdGVyTWV0cmljID0gJ2NtLWRyb3Bkb3duLWZpbHRlci1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX0NtUGF0dGVybkZpbHRlck1ldHJpYyA9ICdjbS1wYXR0ZXJuLWZpbHRlci1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX1JEYXRlRmlsdGVyTWV0cmljID0gJ3ItZGF0ZS1maWx0ZXItbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9SRGF0ZVBGaWx0ZXJNZXRyaWMgPSAnci1kYXRlLXAtZmlsdGVyLW1ldHJpYycsXHJcblxyXG4gIC8vIFxyXG4gIFVJTVRfUGFyYW1UeXBlSW5NZXRyaWMgPSAncGFyYW0tdHlwZS1pbi1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX1BhcmFtQ29tcGFjdExpc3RNZXRyaWMgPSAncGFyYW0tY29tcGFjdC1saXN0LW1ldHJpYycsXHJcblxyXG4gIC8vIFxyXG4gIFVJTVRfUGFyYW1MaXN0TWV0cmljID0gJ3BhcmFtLWxpc3QtbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9QYXJhbVNsaWRlck1ldHJpYyA9ICdwYXJhbS1zbGlkZXItbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9QYXJhbURhdGVUaW1lTWV0cmljID0gJ3BhcmFtLWRhdGUtdGltZS1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX0NGaWx0ZXJBcHBseU1ldHJpYyA9ICdjLWZpbHRlci1hcHBseS1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX0NtVHlwZUluU2VhcmNoTWV0cmljID0gJ2NtLXR5cGUtaW4tc2VhcmNoLW1ldHJpYycsXHJcblxyXG4gIC8vIG1pbmltdW0gY3VzdG9tIGxpc3QgaXRlbSBzaXplXHJcbiAgVUlNVF9DRmlsdGVyQ3VzdG9tSXRlbU1ldHJpYyA9ICdjLWZpbHRlci1jdXN0b20taXRlbS1tZXRyaWMnXHJcbn1cclxuXHJcbi8vIGEgcmVnaW9uIG9mIGEgdml6IHdoZXJlIHNvcnQgaW5kaWNhdG9ycyBtYXkgYXBwZWFyXHJcbmV4cG9ydCBlbnVtIFNvcnRSZWdpb25UeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgU1JUX0xBQkVMU19YID0gJ3hoZWFkZXInLFxyXG5cclxuICAvLyBcclxuICBTUlRfTEFCRUxTX1kgPSAneWhlYWRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFNSVF9MQUJFTFNfRklFTEQgPSAndWxlZnQnLFxyXG5cclxuICAvLyBcclxuICBTUlRfQVhJU19MRUZUID0gJ2xlZnRheGlzJyxcclxuXHJcbiAgLy8gXHJcbiAgU1JUX0FYSVNfQk9UVE9NID0gJ2JvdHRvbWF4aXMnLFxyXG5cclxuICAvLyBcclxuICBTUlRfQVhJU19SSUdIVCA9ICdyaWdodGF4aXMnLFxyXG5cclxuICAvLyBcclxuICBTUlRfQVhJU19UT1AgPSAndG9wYXhpcydcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFF0Q3Vyc29yU2hhcGUge1xyXG5cclxuICAvLyBcclxuICBBcnJvd0N1cnNvciA9ICdhcnJvdycsXHJcblxyXG4gIC8vIFxyXG4gIFVwQXJyb3dDdXJzb3IgPSAndXAtYXJyb3cnLFxyXG5cclxuICAvLyBcclxuICBDcm9zc0N1cnNvciA9ICdjcm9zcycsXHJcblxyXG4gIC8vIFxyXG4gIFdhaXRDdXJzb3IgPSAnd2FpdCcsXHJcblxyXG4gIC8vIFxyXG4gIElCZWFtQ3Vyc29yID0gJ2liZWFtJyxcclxuXHJcbiAgLy8gXHJcbiAgU2l6ZVZlckN1cnNvciA9ICdzaXplLXZlcicsXHJcblxyXG4gIC8vIFxyXG4gIFNpemVIb3JDdXJzb3IgPSAnc2l6ZS1ob3InLFxyXG5cclxuICAvLyBcclxuICBTaXplQkRpYWdDdXJzb3IgPSAnc2l6ZS1iZGlhZycsXHJcblxyXG4gIC8vIFxyXG4gIFNpemVGRGlhZ0N1cnNvciA9ICdzaXplLWZkaWFnJyxcclxuXHJcbiAgLy8gXHJcbiAgU2l6ZUFsbEN1cnNvciA9ICdzaXplLWFsbCcsXHJcblxyXG4gIC8vIFxyXG4gIEJsYW5rQ3Vyc29yID0gJ2JsYW5rJyxcclxuXHJcbiAgLy8gXHJcbiAgU3BsaXRWQ3Vyc29yID0gJ3NwbGl0LXYnLFxyXG5cclxuICAvLyBcclxuICBTcGxpdEhDdXJzb3IgPSAnc3BsaXQtaCcsXHJcblxyXG4gIC8vIFxyXG4gIFBvaW50aW5nSGFuZEN1cnNvciA9ICdwb2ludGluZy1oYW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9yYmlkZGVuQ3Vyc29yID0gJ2ZvcmJpZGRlbicsXHJcblxyXG4gIC8vIFxyXG4gIFdoYXRzVGhpc0N1cnNvciA9ICd3aGF0cy10aGlzJyxcclxuXHJcbiAgLy8gXHJcbiAgQnVzeUN1cnNvciA9ICdidXN5JyxcclxuXHJcbiAgLy8gXHJcbiAgT3BlbkhhbmRDdXJzb3IgPSAnb3Blbi1oYW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgQ2xvc2VkSGFuZEN1cnNvciA9ICdjbG9zZWQtaGFuZCcsXHJcblxyXG4gIC8vIFxyXG4gIERyYWdDb3B5Q3Vyc29yID0gJ2RyYWctY29weScsXHJcblxyXG4gIC8vIFxyXG4gIERyYWdNb3ZlQ3Vyc29yID0gJ2RyYWctbW92ZScsXHJcblxyXG4gIC8vIFxyXG4gIERyYWdMaW5rQ3Vyc29yID0gJ2RyYWctbGluaydcclxufVxyXG5cclxuLy8gc3BlY2lmaWVzIHZhcmlvdXMgY29tcG9uZW50cyBvZiBhIHZpeiB0aGF0IGFyZSByZW5kZXJlZCBhcyBpbWFnZXNcclxuZXhwb3J0IGVudW0gVml6SW1hZ2VSZWdpb24ge1xyXG5cclxuICAvLyB0aGUgbWFpbiB2aXogYXJlYVxyXG4gIFZJWl9SRUdJT05fVEFCTEUgPSAndml6JyxcclxuXHJcbiAgLy8geSBheGlzIGl0ZW1zXHJcbiAgVklaX1JFR0lPTl9ST1dIRUFERVJTID0gJ3loZWFkZXInLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX0xFRlRBWElTID0gJ2xlZnRheGlzJyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9SSUdIVEFYSVMgPSAncmlnaHRheGlzJyxcclxuXHJcbiAgLy8geCBheGlzIGl0ZW1zXHJcbiAgVklaX1JFR0lPTl9DT0xVTU5IRUFERVJTID0gJ3hoZWFkZXInLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX0JPVFRPTUFYSVMgPSAnYm90dG9tYXhpcycsXHJcblxyXG4gIC8vIFxyXG4gIFZJWl9SRUdJT05fVE9QQVhJUyA9ICd0b3BheGlzJyxcclxuXHJcbiAgLy8gc3BhY2luZyBhcmVhc1xyXG4gIFZJWl9SRUdJT05fVVBQRVJMRUZUID0gJ3VsZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9VUFBFUlJJR0hUID0gJ3VyaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIFZJWl9SRUdJT05fTE9XRVJMRUZUID0gJ2xsZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9MT1dFUlJJR0hUID0gJ2xyaWdodCcsXHJcblxyXG4gIC8vIGxhYmVsbGluZyBhcmVhc1xyXG4gIFZJWl9SRUdJT05fVElUTEUgPSAndGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX0NBUFRJT04gPSAnY2FwdGlvbicsXHJcblxyXG4gIC8vIGxlZ2VuZCBhcmVhc1xyXG4gIFZJWl9SRUdJT05fQ09MT1JMRUdFTkQgPSAnY29sb3InLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX1NIQVBFTEVHRU5EID0gJ3NoYXBlJyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9TSVpFTEVHRU5EID0gJ3NpemUnLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX0hJR0hMSUdIVExFR0VORCA9ICdoaWdobGlnaHQtbGVnZW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9NQVBMRUdFTkQgPSAnbWFwJyxcclxuXHJcbiAgLy8gbGVnZW5kIHRpdGxlc1xyXG4gIFZJWl9SRUdJT05fQ09MT1JMRUdFTkRUSVRMRSA9ICdjb2xvci10aXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIFZJWl9SRUdJT05fU0hBUEVMRUdFTkRUSVRMRSA9ICdzaGFwZS10aXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIFZJWl9SRUdJT05fU0laRUxFR0VORFRJVExFID0gJ3NpemUtdGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX0hJR0hMSUdIVExFR0VORFRJVExFID0gJ2hpZ2hsaWdodC1sZWdlbmQtdGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX01BUExFR0VORFRJVExFID0gJ21hcC10aXRsZScsXHJcblxyXG4gIC8vIGxlZ2VuZCBib2RpZXNcclxuICBWSVpfUkVHSU9OX0NPTE9STEVHRU5EQk9EWSA9ICdjb2xvci1ib2R5JyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9TSEFQRUxFR0VOREJPRFkgPSAnc2hhcGUtYm9keScsXHJcblxyXG4gIC8vIFxyXG4gIFZJWl9SRUdJT05fU0laRUxFR0VOREJPRFkgPSAnc2l6ZS1ib2R5JyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9ISUdITElHSFRMRUdFTkRCT0RZID0gJ2hpZ2hsaWdodC1sZWdlbmQtYm9keScsXHJcblxyXG4gIC8vIFxyXG4gIFZJWl9SRUdJT05fTUFQTEVHRU5EQk9EWSA9ICdtYXAtYm9keScsXHJcblxyXG4gIC8vIFRoZXNlIGFyZSByZWdpb24gbmFtZXMgKHJhbmdlcyBvZiBvdGhlciBlbnVtcylcclxuICBWSVpfUkVHSU9OX0VORCA9ICdlbmQnLFxyXG59XHJcblxyXG4vLyBuYW1lcyBvZiBsZWdhY3kgbWVudSBpdGVtc1xyXG5leHBvcnQgZW51bSBMZWdhY3lNZW51TmFtZSB7XHJcblxyXG4gIC8vIHZpZXcgdW5kZXJseWluZyBkYXRhXHJcbiAgTE1fTkFNRV9WSUVXREFUQSA9ICd2aWV3ZGF0YScsXHJcblxyXG4gIC8vIGV4cG9ydCBpbWFnZVxyXG4gIExNX05BTUVfRVhQT1JUSU1BR0UgPSAnZXhwb3J0aW1hZ2UnLFxyXG5cclxuICAvLyBleHBvcnQgZGF0YVxyXG4gIExNX05BTUVfRVhQT1JUREFUQSA9ICdleHBvcnRkYXRhJyxcclxuXHJcbiAgLy8gZXhwb3J0IGFzIGNyb3NzdGFiXHJcbiAgTE1fTkFNRV9FWFBPUlRDUk9TU1RBQiA9ICdleHBvcnRjcm9zc3RhYicsXHJcblxyXG4gIC8vIHByaW50IHRvIHBkZlxyXG4gIExNX05BTUVfUFJJTlQgPSAncHJpbnQnXHJcbn1cclxuXHJcbi8vIHN0YXRlcyBvZiBsZWdhY3kgbWVudSBpdGVtc1xyXG5leHBvcnQgZW51bSBMZWdhY3lNZW51U3RhdGUge1xyXG5cclxuICAvLyB2aXNpYmxlIHN0YXRlXHJcbiAgTE1fU1RBVEVfVklTSUJMRSA9ICd2aXNpYmxlJyxcclxuXHJcbiAgLy8gY2hlY2tlZCBzdGF0ZVxyXG4gIExNX1NUQVRFX0NIRUNLRUQgPSAnY2hlY2tlZCcsXHJcblxyXG4gIC8vIGdyYXllZCBzdGF0ZVxyXG4gIExNX1NUQVRFX0dSQVlFRCA9ICdncmF5ZWQnLFxyXG5cclxuICAvLyByYWRpbyBzdGF0ZVxyXG4gIExNX1NUQVRFX1JBRElPID0gJ3JhZGlvJyxcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIE1lbWJlclVuaXF1ZW5lc3NUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgVW5pcXVlV2l0aGluQ3ViZSA9ICdjdWJlLXVuaXF1ZScsXHJcblxyXG4gIC8vIFxyXG4gIFVuaXF1ZVdpdGhpbkhpZXJhcmNoeSA9ICdoaWVyYXJjaHktdW5pcXVlJyxcclxuXHJcbiAgLy8gXHJcbiAgVW5pcXVlV2l0aGluTGV2ZWwgPSAnbGV2ZWwtdW5pcXVlJyxcclxuXHJcbiAgLy8gXHJcbiAgVW5pcXVlV2l0aGluUGFyZW50ID0gJ3BhcmVudC11bmlxdWUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBEaW1lbnNpb25UeXBlIHtcclxuXHJcbiAgLy8ganVzdCBhIHJlZ3VsYXIgZGltZW5zaW9uLCBubyBzcGVjaWFsIHNlbWFudGljc1xyXG4gIFJlZ3VsYXJEaW1lbnNpb24gPSAncmVndWxhci1kaW1lbnNpb24nLFxyXG5cclxuICAvLyB0aGUgbWVhc3VyZXMgZGltZW5zaW9uLCB3aGljaCB3ZSBkb24ndCBtb2RlbCBhcyBzdWNoXHJcbiAgTWVhc3VyZURpbWVuc2lvbiA9ICdtZWFzdXJlLWRpbWVuc2lvbicsXHJcblxyXG4gIC8vIGEgdGltZSBkaW1lbnNpb25cclxuICBUaW1lRGltZW5zaW9uID0gJ3RpbWUtZGltZW5zaW9uJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2NoZW1hVmlld2VyRGF0YVNvdXJjZVR5cGUge1xyXG5cclxuICAvLyBcclxuICBTVlRfRFNfTk9STUFMID0gJ2RhdGFzb3VyY2UnLFxyXG5cclxuICAvLyBcclxuICBTVlRfRFNfTk9STUFMX1BSSU1BUlkgPSAnZGF0YXNvdXJjZS1wcmltYXJ5JyxcclxuXHJcbiAgLy8gXHJcbiAgU1ZUX0RTX05PUk1BTF9TRUNPTkRBUlkgPSAnZGF0YXNvdXJjZS1zZWNvbmRhcnknLFxyXG5cclxuICAvLyBcclxuICBTVlRfRFNfRVhUUkFDVCA9ICdleHRyYWN0JyxcclxuXHJcbiAgLy8gXHJcbiAgU1ZUX0RTX0VYVFJBQ1RfUFJJTUFSWSA9ICdleHRyYWN0LXByaW1hcnknLFxyXG5cclxuICAvLyBcclxuICBTVlRfRFNfRVhUUkFDVF9TRUNPTkRBUlkgPSAnZXh0cmFjdC1zZWNvbmRhcnknLFxyXG5cclxuICAvLyBcclxuICBTVlRfRFNfQ1VCRSA9ICdjdWJlJyxcclxuXHJcbiAgLy8gXHJcbiAgU1ZUX0RTX0NVQkVfUFJJTUFSWSA9ICdjdWJlLXByaW1hcnknLFxyXG5cclxuICAvLyBcclxuICBTVlRfRFNfQ1VCRV9TRUNPTkRBUlkgPSAnY3ViZS1zZWNvbmRhcnknLFxyXG5cclxuICAvLyBcclxuICBTVlRfRFNfU0VSVkVSID0gJ3NlcnZlcicsXHJcblxyXG4gIC8vIFxyXG4gIFNWVF9EU19TRVJWRVJfUFJJTUFSWSA9ICdzZXJ2ZXItcHJpbWFyeScsXHJcblxyXG4gIC8vIFxyXG4gIFNWVF9EU19TRVJWRVJfU0VDT05EQVJZID0gJ3NlcnZlci1zZWNvbmRhcnknXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTY2hlbWFJdGVtVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIElUX0RJTUVOU0lPTiA9ICdkaW1lbnNpb24nLFxyXG5cclxuICAvLyBcclxuICBJVF9ISUVSQVJDSFkgPSAnaGllcmFyY2h5JyxcclxuXHJcbiAgLy8gXHJcbiAgSVRfTEVWRUwgPSAnbGV2ZWwnLFxyXG5cclxuICAvLyBcclxuICBJVF9DQVRFR09SSUNBTCA9ICdjYXRlZ29yaWNhbCcsXHJcblxyXG4gIC8vIFxyXG4gIElUX01FQVNVUkUgPSAnbWVhc3VyZScsXHJcblxyXG4gIC8vIFxyXG4gIElUX1ZBTFVFID0gJ3ZhbHVlJyxcclxuXHJcbiAgLy8gXHJcbiAgSVRfR1JPVVAgPSAnZ3JvdXAnLFxyXG5cclxuICAvLyBcclxuICBJVF9GT0xERVIgPSAnZm9sZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgSVRfVEFCTEUgPSAndGFibGUnLFxyXG5cclxuICAvLyBcclxuICBJVF9EUklMTFBBVEggPSAnZHJpbGxwYXRoJyxcclxuXHJcbiAgLy8gXHJcbiAgSVRfUEFSQU1FVEVSID0gJ3BhcmFtZXRlcicsXHJcblxyXG4gIC8vIFxyXG4gIElUX0hFQURFUiA9ICdoZWFkZXInXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGUge1xyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfQkxBTksgPSAnYmxhbmsnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfUkVMQVRJT05BTCA9ICdyZWxhdGlvbmFsJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0NVQkUgPSAnY3ViZScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9EQVRFVElNRSA9ICdkYXRldGltZScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9EQVRFID0gJ2RhdGUnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfVElNRSA9ICd0aW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX1RFWFQgPSAndGV4dCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9OVU1CRVIgPSAnbnVtYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0NVUlJFTkNZID0gJ2N1cnJlbmN5JyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0JPT0wgPSAnYm9vbCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9ISUVSQVJDSFkgPSAnaGllcmFyY2h5JyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0xFVkVMID0gJ2xldmVsJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0FUVFJJQlVURSA9ICdhdHRyaWJ1dGUnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfRk9MREVSX0NMT1NFRCA9ICdmb2xkZXItY2xvc2VkJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0ZPTERFUl9PUEVOID0gJ2ZvbGRlci1vcGVuJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0dST1VQID0gJ2dycCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX0dST1VQID0gJ2ludmFsaWQtZ3JwJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX1NWUl9HUlAgPSAnc3ZyLWdycCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX1NWUl9HUlAgPSAnaW52YWxpZC1zdnItZ3JwJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX05VTUVSSUNfQklOX08gPSAnbnVtZXJpYy1iaW4tbycsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9OVU1FUklDX0JJTl9RID0gJ251bWVyaWMtYmluLXEnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfSU5WQUxJRF9OVU1FUklDX0JJTiA9ICdpbnZhbGlkLW51bWVyaWMtYmluJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0RSSUxMUEFUSCA9ICdkcmlsbHBhdGgnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfVkFMSURfU1lTR1JQID0gJ3ZhbGlkLXN5c2dycCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX1NZU0dSUCA9ICdpbnZhbGlkLXN5c2dycCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9DQVRfQklOID0gJ2NhdC1iaW4nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfQ0FUX0JJTl9HRU9HQVBISUNfTyA9ICdjYXQtYmluLWdlb2dhcGhpYy1vJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0NBVF9CSU5fR0VPR0FQSElDX1EgPSAnY2F0LWJpbi1nZW9nYXBoaWMtcScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX0NBVF9CSU4gPSAnaW52YWxpZC1jYXQtYmluJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0lOVkFMSURfQ0FUX0JJTl9HRU9HQVBISUNfTyA9ICdpbnZhbGlkLWNhdC1iaW4tZ2VvZ2FwaGljLW8nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfSU5WQUxJRF9DQVRfQklOX0dFT0dBUEhJQ19RID0gJ2ludmFsaWQtY2F0LWJpbi1nZW9nYXBoaWMtcScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9HRU9HUkFQSElDID0gJ2dlb2dyYXBoaWMnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfSU5WQUxJRF9HRU9HUkFQSElDX08gPSAnaW52YWxpZC1nZW9ncmFwaGljLW8nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfSU5WQUxJRF9HRU9HUkFQSElDX1EgPSAnaW52YWxpZC1nZW9ncmFwaGljLXEnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfSURFTlRfU0VUID0gJ2lkZW50LXNldCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX0lERU5UX1NFVCA9ICdpbnZhbGlkLWlkZW50LXNldCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9UQUJMRSA9ICd0YWJsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9OT05FID0gJ25vbmUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlX19TVlRfQ1VCRV9NX0JMQU5LID0gJ2N1YmUtbS1ibGFuaycsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlX19TVlRfQ1VCRV9NX0ZPTERFUl9DTE9TRUQgPSAnY3ViZS1tLWZvbGRlci1jbG9zZWQnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9GT0xERVJfT1BFTiA9ICdjdWJlLW0tZm9sZGVyLW9wZW4nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9EQVRFVElNRSA9ICdjdWJlLW0tZGF0ZXRpbWUnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9EQVRFID0gJ2N1YmUtbS1kYXRlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlTWVhc3VyZVR5cGVfX1NWVF9DVUJFX01fVElNRSA9ICdjdWJlLW0tdGltZScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlX19TVlRfQ1VCRV9NX1RFWFQgPSAnY3ViZS1tLXRleHQnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9OVU1CRVIgPSAnY3ViZS1tLW51bWJlcicsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlX19TVlRfQ1VCRV9NX0NVUlJFTkNZID0gJ2N1YmUtbS1jdXJyZW5jeScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlX19TVlRfQ1VCRV9NX0JPT0xFQU4gPSAnY3ViZS1tLWJvb2xlYW4nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9HRU9HUkFQSElDID0gJ2N1YmUtbS1nZW9ncmFwaGljJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfQkxBTksgPSAnY3ViZS1kLWJsYW5rJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9ISUVSQVJDSFkgPSAnY3ViZS1kLWhpZXJhcmNoeScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfTEVWRUwgPSAnY3ViZS1kLWxldmVsJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9ISUVSX0NBTEMgPSAnY3ViZS1kLWhpZXItY2FsYycsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfTFZMX0NBTEMgPSAnY3ViZS1kLWx2bC1jYWxjJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9ISUVSX0dFTyA9ICdjdWJlLWQtaGllci1nZW8nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0hJRVJfR0VPX0NVU1RPTSA9ICdjdWJlLWQtaGllci1nZW8tY3VzdG9tJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9GT0xERVJfQ0xPU0VEID0gJ2N1YmUtZC1mb2xkZXItY2xvc2VkJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9GT0xERVJfT1BFTiA9ICdjdWJlLWQtZm9sZGVyLW9wZW4nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0FUVFJJQlVURSA9ICdjdWJlLWQtYXR0cmlidXRlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9URVhUID0gJ2N1YmUtZC10ZXh0JyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9EQVRFVElNRSA9ICdjdWJlLWQtZGF0ZXRpbWUnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0RBVEVUSU1FX0lOVkFMSUQgPSAnY3ViZS1kLWRhdGV0aW1lLWludmFsaWQnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0RBVEUgPSAnY3ViZS1kLWRhdGUnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0RBVEVfSU5WQUxJRCA9ICdjdWJlLWQtZGF0ZS1pbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9HRU9HUkFQSElDID0gJ2N1YmUtZC1nZW9ncmFwaGljJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9HRU9HUkFQSElDX0lOVkFMSUQgPSAnY3ViZS1kLWdlb2dyYXBoaWMtaW52YWxpZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfR0VPR1JBUEhJQ19DVVNUT00gPSAnY3ViZS1kLWdlb2dyYXBoaWMtY3VzdG9tJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9HRU9HUkFQSElDX0NVU1RPTV9JTlZBTElEID0gJ2N1YmUtZC1nZW9ncmFwaGljLWN1c3RvbS1pbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9WQVJZSU5HID0gJ2N1YmUtZC12YXJ5aW5nJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9VREEgPSAnY3ViZS1kLXVkYScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfTlVNQkVSID0gJ2N1YmUtZC1udW1iZXInXHJcbn1cclxuXHJcbi8vIEluZGljYXRlcyB0aGUgc2VsZWN0aW9uIG1vZGU6IFNpbmdsZSB8IE11bHRpcGxlLlxyXG5leHBvcnQgZW51bSBIU01TZWxlY3Rpb25Nb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgU2luZ2xlID0gJ3NlbGVjdGlvbi1tb2RlLXNpbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIE11bHRpcGxlID0gJ3NlbGVjdGlvbi1tb2RlLW11bHRpcGxlJ1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgd2hhdCBkZWZhdWx0IG1lbWJlciB0byB1c2UgZm9yIGEgaGllcmFyY2hpY2FsIGZpZWxkLlxyXG5leHBvcnQgZW51bSBIU01EZWZhdWx0TWVtYmVyVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFVzZURlZmF1bHRNZW1iZXIgPSAndXNlLWRlZmF1bHQtbWVtYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgVXNlQWxsTWVtYmVyID0gJ3VzZS1hbGwtbWVtYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgVXNlU2VsZWN0ZWRNZW1iZXIgPSAndXNlLXNlbGVjdGVkLW1lbWJlcidcclxufVxyXG5cclxuLy8gSGllcmFyY2hpY2FsIHNlbGVjdCBtb2RlbCBwcmVzZW50YXRpb24gbGF5ZXIgbm90aWZpY2F0aW9uLlxyXG5leHBvcnQgZW51bSBIU01Ob3RpZmljYXRpb25UeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgVXBkYXRlZCA9ICdoc20tbm90aWZpY2F0aW9uLXVwZGF0ZWQnLFxyXG5cclxuICAvLyBcclxuICBNaXNzaW5nTWVtYmVycyA9ICdoc20tbm90aWZpY2F0aW9uLW1pc3NpbmctbWVtYmVycydcclxufVxyXG5cclxuLy8gVHlwZSBvZiBoaWVyYXJjaHkgY29tbWFuZCBzZWxlY3Rpb24gdG8gYmUgcGVyZm9ybWVkLlxyXG5leHBvcnQgZW51bSBIU01TZWxlY3Rpb25SZXF1ZXN0VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNlbGVjdE1vZGUgPSAnaHNtLXNlbGVjdGlvbi1yZXF1ZXN0LXNlbGVjdC1tb2RlJyxcclxuXHJcbiAgLy8gXHJcbiAgTWVtYmVyRGVzY2VuZGFudHNTdGF0ZSA9ICdoc20tc2VsZWN0aW9uLXJlcXVlc3QtZGVzY2VuZGFudHMtc3RhdGUnLFxyXG5cclxuICAvLyBcclxuICBTZWxlY3RlZE1lbWJlclR1cGxlID0gJ2hzbS1zZWxlY3Rpb24tcmVxdWVzdC1zZWxlY3RlZC1tZW1iZXItdHVwbGUnLFxyXG5cclxuICAvLyBcclxuICBTZWxlY3RlZE1lbWJlckNhcHRpb24gPSAnaHNtLXNlbGVjdGlvbi1yZXF1ZXN0LXNlbGVjdGVkLW1lbWJlci1jYXB0aW9uJ1xyXG59XHJcblxyXG4vLyBUeXBlIG9mIGhpZXJhcmNoeSBtZW1iZXIgc2VsZWN0aW9uIHRvIGJlIHBlcmZvcm1lZC5cclxuZXhwb3J0IGVudW0gSFNNTWVtYmVyU2VsZWN0UmVxdWVzdFR5cGUge1xyXG5cclxuICAvLyBcclxuICBTZWxlY3RNZW1iZXIgPSAnaHNtLW1lbWJlci1yZXF1ZXN0LXNlbGVjdC1tZW1iZXInLFxyXG5cclxuICAvLyBcclxuICBTZWxlY3RTdWJ0cmVlID0gJ2hzbS1tZW1iZXItcmVxdWVzdC1zZWxlY3Qtc3VidHJlZScsXHJcblxyXG4gIC8vIFxyXG4gIFNlbGVjdExldmVsID0gJ2hzbS1tZW1iZXItcmVxdWVzdC1zZWxlY3QtbGV2ZWwnLFxyXG5cclxuICAvLyBcclxuICBNZW1iZXJTZWxlY3QgPSAnaHNtLW1lbWJlci1yZXF1ZXN0LW1lbWJlci1zZWxlY3QnLFxyXG5cclxuICAvLyBcclxuICBNZW1iZXJMZXZlbCA9ICdoc20tbWVtYmVyLXJlcXVlc3QtbWVtYmVyLWxldmVsJ1xyXG59XHJcblxyXG4vLyBIaWVyYXJjaHkgbGV2ZWwgc2VsZWN0aW9uIHN0YXRlLlxyXG5leHBvcnQgZW51bSBIU01MZXZlbFNlbGVjdGlvblN0YXRlIHtcclxuXHJcbiAgLy8gXHJcbiAgQWxsU2VsZWN0ZWQgPSAnaHNtLWFsbC1zZWxlY3RlZCcsXHJcblxyXG4gIC8vIFxyXG4gIE5vbmVTZWxlY3RlZCA9ICdoc20tbm9uZS1zZWxlY3RlZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNvbWVTZWxlY3RlZCA9ICdoc20tc29tZS1zZWxlY3RlZCcsXHJcblxyXG4gIC8vIFVzZWQgd2hlbiBhIHF1ZXJ5IGlzIG1hZGUgb2YgbGV2ZWxzIHRoYXQgZG9uJ3QgZXhpc3QgaW4gdGhlIGdpdmVuIHN1YnRyZWUuIFdlIG5lZWQgdG8gZGlzdGluZ3Vpc2ggdGhhdCBmcm9tIG5vbmUgc2VsZWN0ZWQgd2hpY2ggaW1wbGllcyB0aGF0IG1lbWJlcnMgZXhpc3QgYnV0IGFyZSBub3Qgc2VsZWN0ZWQuXHJcbiAgVW5rbm93blNlbGVjdGVkID0gJ2hzbS11bmtub3duLXNlbGVjdGVkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gSFNNTWVtYmVyTG9hZFN0YXRlIHtcclxuXHJcbiAgLy8gXHJcbiAgQWxsTG9hZGVkID0gJ2hzbS1hbGwtbG9hZGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgTm9uZUxvYWRlZCA9ICdoc20tbm9uZS1sb2FkZWQnLFxyXG5cclxuICAvLyBcclxuICBTb21lTG9hZGVkID0gJ2hzbS1zb21lLWxvYWRlZCdcclxufVxyXG5cclxuLy8gUmV0dXJuIHZhbHVlIGZyb20gQ29ubmVjdGlvblN0YXRlQ29udHJvbGxlciBjb25uZWN0IG1ldGhvZHNcclxuZXhwb3J0IGVudW0gQ29ubmVjdGlvbkF0dGVtcHRSZXN1bHQge1xyXG5cclxuICAvLyBBbGwgZGF0YSBzb3VyY2VzIHJlcXVlc3RlZCBhcmUgY29ubmVjdGVkLlxyXG4gIENBUl9Db25uZWN0ZWQgPSAnY29ubmVjdGVkJyxcclxuXHJcbiAgLy8gTm90IGFsbCBkYXRhIHNvdXJjZXMgYXJlIGNvbm5lY3RlZC5cclxuICBDQVJfTm90Q29ubmVjdGVkID0gJ25vdC1jb25uZWN0ZWQnLFxyXG5cclxuICAvLyBUaGUgdXNlciBpbnRlcnJ1cHRlZCB0aGUgY29ubmVjdGlvbiBmbG93IHRvIGVkaXQgYSBjb25uZWN0aW9uLlxyXG4gIENBUl9Vc2VyRWRpdENvbm5lY3Rpb24gPSAndXNlci1lZGl0LWNvbm5lY3Rpb24nLFxyXG5cclxuICAvLyBUaGUgY29ubmVjdGlvbiBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoZSBjdXJyZW50IHBsYXRmb3JtLlxyXG4gIENBUl9Db25uZWN0aW9uTm90U3VwcG9ydGVkID0gJ2Nvbm5lY3Rpb24tbm90LXN1cHBvcnRlZCdcclxufVxyXG5cclxuLy8gUmV0dXJuIHZhbHVlIGZyb20gQ29ubmVjdFRvRGF0YVNlcnZlclNvdXJjZUNvbW1hbmQ6OkRvXHJcbmV4cG9ydCBlbnVtIERhdGFTZXJ2ZXJDb25uZWN0aW9uUmVzdWx0IHtcclxuXHJcbiAgLy8gVGhlIGRhdGEgc291cmNlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBhZGRlZC5cclxuICBEU0NSX1N1Y2Nlc3MgPSAnc3VjY2VzcycsXHJcblxyXG4gIC8vIEVycm9yIHRoYXQgd2FzIGhhbmRsZWQuIFRoZXJlJ3Mgbm8gbW9yZSB0byBkbyAoZXguIGNhbmNlbCwgb3IgYW4gZXhjZXB0aW9uIHRoYXQgdGhlIGNvbW1hbmQganVzdCBwcmludGVkIHRvIHRoZSBlcnJvciBkaWFsb2cpLlxyXG4gIERTQ1JfRmFpbHVyZSA9ICdmYWlsdXJlJyxcclxuXHJcbiAgLy8gVHJ5IGFnYWluIGFmdGVyIG1ha2luZyBhIG5ldyB3b3JrYm9vay5cclxuICBEU0NSX1JlcXVpcmVzV29ya2Jvb2tEb2MgPSAncmVxdWlyZXMtd29ya2Jvb2snLFxyXG5cclxuICAvLyBUcnkgYWdhaW4gYWZ0ZXIgbG9nZ2luZyBiYWNrIG9uIHRvIFRhYmxlYXUgc2VydmVyLlxyXG4gIERTQ1JfUmVxdWlyZXNBdXRoZW50aWNhdGlvbiA9ICdyZXF1aXJlcy1hdXRoZW50aWNhdGlvbicsXHJcblxyXG4gIC8vIFRyeSBhZ2FpbiBhZnRlciBnZXR0aW5nIGRhdGFiYXNlIGNyZWRlbnRpYWxzIGZyb20gdGhlIHVzZXIuIFBhc3MgdGhlbSBpbiB0aHJvdWdoIHRoZSBEUElfRGF0YXNvdXJjZVVzZXJuYW1lIGFuZCB0aGUgRFBJX0RhdGFzb3VyY2VQYXNzd29yZCBwYXJhbWV0ZXJzLlxyXG4gIERTQ1JfUmVxdWlyZXNEQkNyZWRlbnRpYWxzID0gJ3JlcXVpcmVzLWRiLWNyZWRlbnRpYWxzJyxcclxuXHJcbiAgLy8gVHJ5IGFnYWluIGFmdGVyIGFzc29jaWF0aW5nIGFuIE9BdXRoIGtleSBmcm9tIHRoZSB1c2VyIGtleWNoYWluIHdpdGggdGhlIGRhdGEgc291cmNlLlxyXG4gIERTQ1JfUmVxdWlyZXNPQXV0aEtleUFzc29jaWF0aW9uID0gJ3JlcXVpcmVzLW9hdXRoLWtleS1hc3NvY2lhdGlvbicsXHJcblxyXG4gIC8vIFRoZSBPQXV0aCBjcmVkZW50aWFscyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIGRhdGFzb3VyY2UgYXJlIG5vdCB2YWxpZC5cclxuICBEU0NSX1JlcXVpcmVzVmFsaWRPQXV0aEtleSA9ICdyZXF1aXJlcy12YWxpZC1vYXV0aC1rZXknLFxyXG5cclxuICAvLyBNdWx0aXBsZSBsZWFmIGNvbm5lY3Rpb25zIHdpdGhpbiBhIGZlZGVyYXRlZCBkYXRhIHNvdXJjZSBjb250YWluIGVycm9ycyAoZS5nLiwgbXVsdGlwbGUgbGVhZnMgbWlnaHQgbmVlZCBjcmVkZW50aWFscykuXHJcbiAgRFNDUl9GZWRlcmF0ZWRFcnJvciA9ICdmZWRlcmF0ZWQtZXJyb3InXHJcbn1cclxuXHJcbi8vIFR5cGUgb2YgZXJyb3IgZW5jb3VudGVyZWQgd2hpbGUgYXR0ZW1wdGluZyB0byBjb25uZWN0LlxyXG5leHBvcnQgZW51bSBDb25uZWN0aW9uRXJyb3JUeXBlIHtcclxuXHJcbiAgLy8gQXV0aGVudGljYXRpb24gY3JlZGVudGlhbHMgYXJlIG5lZWRlZCBpbiBvcmRlciB0byBjb25uZWN0LlxyXG4gIENFVF9OZWVkc0F1dGhlbnRpY2F0aW9uID0gJ25lZWRzLWF1dGhlbnRpY2F0aW9uJyxcclxuXHJcbiAgLy8gVGhlIGRhdGEgc291cmNlIGlzIHByb3ZpZGVkIGJ5IERhdGEgU2VydmVyLCBidXQgbm8gRGF0YSBTZXJ2ZXIgY29ubmVjdGlvbiBpcyBwcmVzZW50LlxyXG4gIENFVF9EYXRhU2VydmVyRGlzY29ubmVjdGVkID0gJ2RhdGEtc2VydmVyLWRpc2Nvbm5lY3RlZCcsXHJcblxyXG4gIC8vIEFuIGV4Y2VwdGlvbiBvY2N1cnJlZCB3aGlsZSBjb25uZWN0aW5nLiAgVGhpcyBjb3VsZCBiZSBjYXVzZWQgYnkgYSBiYWQgcGFzc3dvcmQsIG9yIHdyb25nIHBhdGgvdXJsLlxyXG4gIENFVF9FeGNlcHRpb25XaGlsZUNvbm5lY3RpbmcgPSAnZXhjZXB0aW9uLXdoaWxlLWNvbm5lY3RpbmcnLFxyXG5cclxuICAvLyBBbiBleGNlcHRpb24gb2NjdXJyZWQgd2hpbGUgdHJ5aW5nIHRvIGNvbm5lY3QgdGhlIGRhdGEgc291cmNlIGFzIGEgd2hvbGUuXHJcbiAgQ0VUX0V4Y2VwdGlvbldoaWxlQ29ubmVjdGluZ0RhdGFTb3VyY2UgPSAnZXhjZXB0aW9uLXdoaWxlLWNvbm5lY3RpbmctZGF0YS1zb3VyY2UnLFxyXG5cclxuICAvLyBUaGUgY29ubmVjdGlvbiBpcyBub3Qgc3VwcG9ydGVkLlxyXG4gIENFVF9Db25uZWN0aW9uTm90U3VwcG9ydGVkID0gJ2Nvbm5lY3Rpb24tbm90LXN1cHBvcnRlZCcsXHJcblxyXG4gIC8vIEFuIHVuZXhwZWN0ZWQgZXhjZXB0aW9uIG9jY3VycmVkLlxyXG4gIENFVF9VbmV4cGVjdGVkRXhjZXB0aW9uID0gJ3VuZXhwZWN0ZWQtZXhjZXB0aW9uJ1xyXG59XHJcblxyXG4vLyBpZGVudGlmaWVzIHRoZSBwaWVjZSBvZiB0aGUgdmlzdWFsXHJcbmV4cG9ydCBlbnVtIFZpc3VhbFBhcnQge1xyXG5cclxuICAvLyBkZWZhdWx0IGJ1Y2tldCBpZiB0eXBlIGlzbid0IHNwZWNpZmllZFxyXG4gIFZQX01pc2MgPSAnbWlzYycsXHJcblxyXG4gIC8vIFxyXG4gIFZQX0Fubm90YXRpb25zID0gJ2Fubm90YXRpb25zJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfQXhpc1J1bGVzID0gJ2F4aXMtcnVsZXMnLFxyXG5cclxuICAvLyBcclxuICBWUF9Ub3BBeGlzID0gJ3RvcC1heGlzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfQm90dG9tQXhpcyA9ICdib3R0b20tYXhpcycsXHJcblxyXG4gIC8vIFxyXG4gIFZQX0xlZnRBeGlzID0gJ2xlZnQtYXhpcycsXHJcblxyXG4gIC8vIFxyXG4gIFZQX1JpZ2h0QXhpcyA9ICdyaWdodC1heGlzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfQmFja2dyb3VuZCA9ICdiYWNrZ3JvdW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfQm9yZGVycyA9ICdib3JkZXJzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfQ2FwdGlvbiA9ICdjYXB0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfQ2VsbEJvcmRlcnMgPSAnY2VsbC1ib3JkZXJzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfRGVjb3JhdGlvbiA9ICdkZWNvcmF0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfRHJvcExpbmVzID0gJ2Ryb3AtbGluZXMnLFxyXG5cclxuICAvLyBcclxuICBWUF9YTGFiZWxzID0gJ3gtbGFiZWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfWUxhYmVscyA9ICd5LWxhYmVscycsXHJcblxyXG4gIC8vIFxyXG4gIFZQX0xlZ2VuZHMgPSAnbGVnZW5kcycsXHJcblxyXG4gIC8vIFxyXG4gIFZQX01hcmtzID0gJ21hcmtzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfTWFya0xhYmVscyA9ICdtYXJrLWxhYmVscycsXHJcblxyXG4gIC8vIFxyXG4gIFZQX01hcmtUcmFpbHMgPSAnbWFyay10cmFpbHMnLFxyXG5cclxuICAvLyBcclxuICBWUF9SZWZlcmVuY2VCYW5kcyA9ICdyZWYtYmFuZHMnLFxyXG5cclxuICAvLyBcclxuICBWUF9SZWZlcmVuY2VMaW5lcyA9ICdyZWYtbGluZXMnLFxyXG5cclxuICAvLyBcclxuICBWUF9QYW5lQm9yZGVycyA9ICdwYW5lLWJvcmRlcnMnLFxyXG5cclxuICAvLyBcclxuICBWUF9TY3JvbGxCYXJzID0gJ3Njcm9sbC1iYXJzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfVGl0bGUgPSAndGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBWUF9UcmVuZExpbmVzID0gJ3RyZW5kLWxpbmVzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfVXBwZXJNYXBMYXllcnMgPSAndXBwZXItbWFwLWxheWVycydcclxufVxyXG5cclxuLy8gRGV0YWlscyBvZiB0aGUgcGFydCB3aXRoaW4gYW4gRWxlbWVudElkXHJcbmV4cG9ydCBlbnVtIFNjZW5lTW9kZWxUeXBlc0RldGFpbCB7XHJcblxyXG4gIC8vIFxyXG4gIE5vRGV0YWlsID0gJ25vLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcmtEZXRhaWwgPSAnbWFyay1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBMYWJlbERldGFpbCA9ICdsYWJlbC1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBMYWJlbEhhbmRsZURldGFpbCA9ICdsYWJlbC1oYW5kbGUtZGV0YWlsJyxcclxuXHJcbiAgLy8gXHJcbiAgVG9wTGVmdEhhbmRsZURldGFpbCA9ICd0b3AtbGVmdC1oYW5kbGUtZGV0YWlsJyxcclxuXHJcbiAgLy8gXHJcbiAgVG9wTWlkSGFuZGxlRGV0YWlsID0gJ3RvcC1taWQtaGFuZGxlLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRvcFJpZ2h0SGFuZGxlRGV0YWlsID0gJ3RvcC1yaWdodC1oYW5kbGUtZGV0YWlsJyxcclxuXHJcbiAgLy8gXHJcbiAgUmlnaHRNaWRIYW5kbGVEZXRhaWwgPSAncmlnaHQtbWlkLWhhbmRsZS1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBCb3R0b21SaWdodEhhbmRsZURldGFpbCA9ICdib3R0b20tcmlnaHQtaGFuZGxlLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIEJvdHRvbU1pZEhhbmRsZURldGFpbCA9ICdib3R0b20tbWlkLWhhbmRsZS1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBCb3R0b21MZWZ0SGFuZGxlRGV0YWlsID0gJ2JvdHRvbS1sZWZ0LWhhbmRsZS1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBMZWZ0TWlkSGFuZGxlRGV0YWlsID0gJ2xlZnQtbWlkLWhhbmRsZS1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBMaW5lRGV0YWlsID0gJ2xpbmUtZGV0YWlsJyxcclxuXHJcbiAgLy8gXHJcbiAgQXJyb3dIYW5kbGVEZXRhaWwgPSAnYXJyb3ctaGFuZGxlLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRleHRDZW50ZXJIYW5kbGVEZXRhaWwgPSAndGV4dC1jZW50ZXItaGFuZGxlLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRleHRCb3hIYW5kbGVEZXRhaWwgPSAndGV4dC1ib3gtaGFuZGxlLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcmtBcnJvd0hhbmRsZURldGFpbCA9ICdtYXJrLWFycm93LWhhbmRsZS1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBNYXJrTW92YWJsZUhhbmRsZURldGFpbCA9ICdtYXJrLW1vdmFibGUtaGFuZGxlLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcmtBbmNob3JEZXRhaWwgPSAnbWFyay1hbmNob3ItZGV0YWlsJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2NlbmVNb2RlbFR5cGVzSGl0VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIE5vSGl0ID0gJ25vLWhpdCcsXHJcblxyXG4gIC8vIFxyXG4gIEFyZWFIaXQgPSAnYXJlYS1oaXQnLFxyXG5cclxuICAvLyBcclxuICBOZWFySGl0ID0gJ25lYXItaGl0JyxcclxuXHJcbiAgLy8gXHJcbiAgRXhhY3RIaXQgPSAnZXhhY3QtaGl0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2NlbmVNb2RlbFR5cGVzSGl0VGVzdFN0eWxlIHtcclxuXHJcbiAgLy8gXHJcbiAgQm91bmRzVGVzdCA9ICdib3VuZHMtdGVzdCcsXHJcblxyXG4gIC8vIFxyXG4gIEV4YWN0VGVzdCA9ICdleGFjdC10ZXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgUmFkaWFsRGlzdGFuY2VUZXN0ID0gJ3JhZGlhbC1kaXN0YW5jZS10ZXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgTGFiZWxUZXN0ID0gJ2xhYmVsLXRlc3QnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTY2VuZU1vZGVsVHlwZXNIaXRUZXN0RmxhZ3Mge1xyXG5cclxuICAvLyBcclxuICBIaXRUZXN0QWxsID0gJ2hpdC10ZXN0LWFsbCcsXHJcblxyXG4gIC8vIFxyXG4gIEhpdFRlc3RJZ25vcmVMYWJlbHMgPSAnaGl0LXRlc3QtaWdub3JlLWxhYmVscycsXHJcblxyXG4gIC8vIFxyXG4gIEhpdFRlc3RJZ25vcmVBbm5vdGF0aW9ucyA9ICdoaXQtdGVzdC1pZ25vcmUtYW5ub3RhdGlvbnMnLFxyXG5cclxuICAvLyBcclxuICBIaXRUZXN0Rm9yT3ZlcmxheSA9ICdoaXQtdGVzdC1mb3Itb3ZlcmxheSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEFubm90YXRlRW51bSB7XHJcblxyXG4gIC8vIFxyXG4gIEFFX01hcmsgPSAnbWFyaycsXHJcblxyXG4gIC8vIFxyXG4gIEFFX1BvaW50ID0gJ3BvaW50JyxcclxuXHJcbiAgLy8gXHJcbiAgQUVfQXJlYSA9ICdhcmVhJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya0VudW0ge1xyXG5cclxuICAvLyBcclxuICBNRV9BdXRvID0gJ2F1dG8nLFxyXG5cclxuICAvLyBcclxuICBNRV9PbiA9ICdvbicsXHJcblxyXG4gIC8vIFxyXG4gIE1FX09mZiA9ICdvZmYnLFxyXG5cclxuICAvLyBcclxuICBNRV9DbGVhciA9ICdjbGVhcidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFpvb21MZXZlbCB7XHJcblxyXG4gIC8vIFxyXG4gIFpPT01fRU5USVJFX1ZJRVcgPSAnem9vbS1lbnRpcmUtdmlldycsXHJcblxyXG4gIC8vIFxyXG4gIFpPT01fRklUX1dJRFRIID0gJ3pvb20tZml0LXdpZHRoJyxcclxuXHJcbiAgLy8gXHJcbiAgWk9PTV9GSVRfSEVJR0hUID0gJ3pvb20tZml0LWhlaWdodCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEFjdGlvblR5cGUge1xyXG5cclxuICAvLyBcclxuICBBVF9Vbmtub3duID0gJ3Vua25vd24nLFxyXG5cclxuICAvLyBcclxuICBBVF9CcnVzaCA9ICdicnVzaCcsXHJcblxyXG4gIC8vIFxyXG4gIEFUX0ZpbHRlciA9ICdmaWx0ZXInLFxyXG5cclxuICAvLyBcclxuICBBVF9VUkwgPSAndXJsJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2hlbGZEcm9wQWN0aW9uIHtcclxuXHJcbiAgLy8gXHJcbiAgU2RhUmVwbGFjZSA9ICdyZXBsYWNlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2RhQ29tYmluZSA9ICdjb21iaW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgU2RhSW5zZXJ0ID0gJ2luc2VydCcsXHJcblxyXG4gIC8vIFxyXG4gIFNkYVN3YXAgPSAnc3dhcCcsXHJcblxyXG4gIC8vIFxyXG4gIFNkYVJlcGxhY2VBbGwgPSAncmVwbGFjZS1hbGwnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTaGVsZkRyb3BDb250ZXh0IHtcclxuXHJcbiAgLy8gXHJcbiAgU2hlbGZEcm9wQ29udGV4dF9Ob25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBTaGVsZkRyb3BDb250ZXh0X0NhdGVnb3JpY2FsID0gJ2NhdGVnb3JpY2FsJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hlbGZEcm9wQ29udGV4dF9RdWFudGl0YXRpdmUgPSAncXVhbnRpdGF0aXZlJ1xyXG59XHJcblxyXG4vLyBEcmFnL0Ryb3Agc291cmNlIGFuZCB0YXJnZXRcclxuZXhwb3J0IGVudW0gRHJhZ0Ryb3BUeXBlIHtcclxuXHJcbiAgLy8gZHJhZyBmcm9tIG9yIGRyb3Agb250byB2aXpcclxuICBEcmFnRHJvcF9WaXogPSAnZHJhZy1kcm9wLXZpeicsXHJcblxyXG4gIC8vIGRyYWcgZnJvbSBvciBkcm9wIG9udG8gc2hlbGZcclxuICBEcmFnRHJvcF9TaGVsZiA9ICdkcmFnLWRyb3Atc2hlbGYnLFxyXG5cclxuICAvLyBkcmFnIGZyb20gb3IgZHJvcCBvbnRvIHNjaGVtYVxyXG4gIERyYWdEcm9wX1NjaGVtYSA9ICdkcmFnLWRyb3Atc2NoZW1hJyxcclxuXHJcbiAgLy8gZHJhZyBmcm9tIG9yIGRyb3Agb250byBub3doZXJlXHJcbiAgRHJhZ0Ryb3BfTm9uZSA9ICdkcmFnLWRyb3Atbm9uZScsXHJcblxyXG4gIC8vIGRyYWcgZnJvbSBvciBkcm9wIG9udG8gY2FsY3VsYXRpb24gZWRpdG9yXHJcbiAgRHJhZ0Ryb3BfQ2FsY3VsYXRpb25FZGl0b3IgPSAnZHJhZy1kcm9wLWNhbGN1bGF0aW9uLWVkaXRvcicsXHJcblxyXG4gIC8vIGRyYWcgZnJvbSBwaXZvdCB3aW5kb3dcclxuICBEcmFnRHJvcF9QaXZvdCA9ICdkcmFnLWRyb3AtcGl2b3QnXHJcbn1cclxuXHJcbi8vIERpYWxvZyB0eXBlIHJlbGF0ZWQgdG8gcmVkaXJlY3QgYWN0aW9uIHJlcXVpcmVkIGJ5IFVJXHJcbmV4cG9ydCBlbnVtIENvbW1hbmRSZWRpcmVjdFR5cGUge1xyXG5cclxuICAvLyBhZGQgbmV3IGRhdGEgY29ubmVjdGlvbiBkaWFsb2dcclxuICBDb21tYW5kUmVkaXJlY3RfQWRkRGF0YUNvbm5lY3Rpb24gPSAnY29tbWFuZC1yZWRpcmVjdC1hZGQtZGF0YS1jb25uZWN0aW9uJyxcclxuXHJcbiAgLy8gY3JlYXRlIGRyaWxsIHBhdGggZGlhbG9nXHJcbiAgQ29tbWFuZFJlZGlyZWN0X0FkZERyaWxsUGF0aCA9ICdjb21tYW5kLXJlZGlyZWN0LWFkZC1kcmlsbC1wYXRoJyxcclxuXHJcbiAgLy8gY29uZmlybWF0aW9uIGRpYWxvZ1xyXG4gIENvbW1hbmRSZWRpcmVjdF9Db25maXJtYXRpb24gPSAnY29tbWFuZC1yZWRpcmVjdC1jb25maXJtYXRpb24nLFxyXG5cclxuICAvLyBzaG93cyB0aGUgZm9ybWF0IHdvcmtib29rIHBhbmVcclxuICBDb21tYW5kUmVkaXJlY3RfRm9ybWF0V29ya2Jvb2sgPSAnY29tbWFuZC1yZWRpcmVjdC1mb3JtYXQtd29ya2Jvb2snLFxyXG5cclxuICAvLyBub3RpZmljYXRpb24gZGlhbG9nXHJcbiAgQ29tbWFuZFJlZGlyZWN0X05vdGlmaWNhdGlvbiA9ICdjb21tYW5kLXJlZGlyZWN0LW5vdGlmaWNhdGlvbicsXHJcblxyXG4gIC8vIHNob3cgbnVtYmVyIGZvcm1hdHRpbmcgZGlhbG9nXHJcbiAgQ29tbWFuZFJlZGlyZWN0X051bWJlckZvcm1hdCA9ICdjb21tYW5kLXJlZGlyZWN0LW51bWJlci1mb3JtYXQnLFxyXG5cclxuICAvLyBmdWxsLWZlYXR1cmVkIGVkaXRvclxyXG4gIENvbW1hbmRSZWRpcmVjdF9FZGl0ID0gJ2NvbW1hbmQtcmVkaXJlY3QtZWRpdCcsXHJcblxyXG4gIC8vIHF1aWNrIGVkaXRvclxyXG4gIENvbW1hbmRSZWRpcmVjdF9RdWlja0VkaXQgPSAnY29tbWFuZC1yZWRpcmVjdC1xdWljay1lZGl0JyxcclxuXHJcbiAgLy8gaW5saW5lIHJlbmFtZSBmaWVsZFxyXG4gIENvbW1hbmRSZWRpcmVjdF9SZW5hbWVGaWVsZCA9ICdjb21tYW5kLXJlZGlyZWN0LXJlbmFtZS1maWVsZCcsXHJcblxyXG4gIC8vIHJlbmFtZSBkcmlsbCBwYXRoIGRpYWxvZ1xyXG4gIENvbW1hbmRSZWRpcmVjdF9SZW5hbWVEcmlsbFBhdGggPSAnY29tbWFuZC1yZWRpcmVjdC1yZW5hbWUtZHJpbGwtcGF0aCcsXHJcblxyXG4gIC8vIHJlbmFtZSBzaGVldCBkaWFsb2dcclxuICBDb21tYW5kUmVkaXJlY3RfUmVuYW1lU2hlZXQgPSAnY29tbWFuZC1yZWRpcmVjdC1yZW5hbWUtc2hlZXQnLFxyXG5cclxuICAvLyBlZGl0IHdlYiB6b25lIHVybFxyXG4gIENvbW1hbmRSZWRpcmVjdF9FZGl0V2ViWm9uZVVybCA9ICdjb21tYW5kLXJlZGlyZWN0LWVkaXQtd2ViLXpvbmUtdXJsJyxcclxuXHJcbiAgLy8gZWRpdCBmb3JtYXR0aW5nXHJcbiAgQ29tbWFuZFJlZGlyZWN0X0VkaXRGb3JtYXR0aW5nID0gJ2NvbW1hbmQtcmVkaXJlY3QtZWRpdC1mb3JtYXR0aW5nJyxcclxuXHJcbiAgLy8gY2F0ZWdvcmljYWwgYmluIGVkaXQgZGlhbG9nXHJcbiAgQ29tbWFuZFJlZGlyZWN0X0NhdGVnb3JpY2FsQmluRWRpdCA9ICdjb21tYW5kLXJlZGlyZWN0LWNhdGVnb3JpY2FsLWJpbi1lZGl0JyxcclxuXHJcbiAgLy8gbnVtZXJpYyBiaW4gZWRpdCBkaWFsb2dcclxuICBDb21tYW5kUmVkaXJlY3RfTnVtZXJpY0JpbkVkaXQgPSAnY29tbWFuZC1yZWRpcmVjdC1udW1lcmljLWJpbi1lZGl0JyxcclxuXHJcbiAgLy8gcmljaCB0ZXh0IGRpYWxvZ1xyXG4gIENvbW1hbmRSZWRpcmVjdF9SaWNoVGV4dCA9ICdjb21tYW5kLXJlZGlyZWN0LXJpY2gtdGV4dCcsXHJcblxyXG4gIC8vIGRlbGV0ZSBzaGVldCBkaWFsb2dcclxuICBDb21tYW5kUmVkaXJlY3RfRGVsZXRlU2hlZXQgPSAnY29tbWFuZC1yZWRpcmVjdC1kZWxldGUtc2hlZXQnLFxyXG5cclxuICAvLyBObyByZWRpcmVjdCByZXF1aXJlZFxyXG4gIENvbW1hbmRSZWRpcmVjdF9Ob25lID0gJ2NvbW1hbmQtcmVkaXJlY3Qtbm9uZSdcclxufVxyXG5cclxuLy8gRGlyZWN0aXZlcyBmb3IgaGV1cmlzdGljYWxseSBpbnRlcnByZXRpbmcgdXNlciBpbnRlbnQgb2YgY29tbWFuZFxyXG5leHBvcnQgZW51bSBIZXVyaXN0aWNDb21tYW5kUmVpbnRlcnByZXRhdGlvbiB7XHJcblxyXG4gIC8vIERpcmVjdHMgVGFibGVhdSB0byBub3QgcmVpbnRlcnByZXQgc3BlY2lmaWNzIG9mIHRoZSBjb21tYW5kXHJcbiAgRG9Ob3RSZWludGVycHJldENvbW1hbmQgPSAnZG8tbm90LXJlaW50ZXJwcmV0LWNvbW1hbmQnLFxyXG5cclxuICAvLyBEaXJlY3RzIFRhYmxlYXUgdG8gZ3Vlc3MgdGhhdCB3aGVuIHRoZSB1c2VyIHNlbGVjdGVkIGFsbCBpdGVtcyBpbiBhIGZpbHRlciwgdGhlIGludGVudCB3YXMgYWN0dWFsbHkgdG8gc2VsZWN0IEFMTFxyXG4gIENhdGVnb3JpY2FsRmlsdGVyX0luZmVyQWxsV2hlbkV2ZXJ5dGhpbmdTZWxlY3RlZCA9ICdjYXRlZ29yaWNhbC1maWx0ZXItaW5mZXItYWxsLXdoZW4tZXZlcnl0aGluZy1zZWxlY3RlZCdcclxufVxyXG5cclxuLy8gZmlsdGVyIHR5cGVzXHJcbmV4cG9ydCBlbnVtIEZpbHRlclR5cGUge1xyXG5cclxuICAvLyBRdWFudGl0YXRpdmVcclxuICBGTFRSX1F1YW50aXRhdGl2ZSA9ICdRdWFudGl0YXRpdmUnLFxyXG5cclxuICAvLyBDYXRlZ29yaWNhbFxyXG4gIEZMVFJfQ2F0ZWdvcmljYWwgPSAnQ2F0ZWdvcmljYWwnLFxyXG5cclxuICAvLyBIaWVyYXJjaGljYWxcclxuICBGTFRSX0hpZXJhcmNoaWNhbCA9ICdIaWVyYXJjaGljYWwnLFxyXG5cclxuICAvLyBSZWxhdGl2ZSBEYXRlXHJcbiAgRkxUUl9SZWxhdGl2ZURhdGUgPSAnUmVsYXRpdmVEYXRlJyxcclxuXHJcbiAgLy8gUmVsYXRpdmVEYXRlUGlja1xyXG4gIEZMVFJfUmVsYXRpdmVEYXRlUGljayA9ICdSZWxhdGl2ZURhdGVQaWNrJyxcclxuXHJcbiAgLy8gTm90U3BlY2lmaWVkXHJcbiAgRkxUUl9EZWZhdWx0ID0gJ0ZpbHRlckRlZmF1bHQnXHJcbn1cclxuXHJcbi8vIFBhcmFtZXRlciBlcnJvcnNcclxuZXhwb3J0IGVudW0gUGFyYW1ldGVyRXJyb3Ige1xyXG5cclxuICAvLyBmaWVsZCBhZ2dyZWdhdGlvbiBpcyBpbnZhbGlkXHJcbiAgSW52YWxpZEFnZ0ZpZWxkcyA9ICdpbnZhbGlkLWFnZy1maWVsZHMnLFxyXG5cclxuICAvLyBmaWVsZCBpcyBpbnZhbGlkXHJcbiAgSW52YWxpZEZpZWxkcyA9ICdpbnZhbGlkLWZpZWxkcycsXHJcblxyXG4gIC8vIGZpbHRlciB2YWx1ZXMgYXJlIGludmFsaWRcclxuICBJbnZhbGlkRmlsdGVyVmFsdWVzID0gJ2ludmFsaWQtZmlsdGVyLXZhbHVlcycsXHJcblxyXG4gIC8vIGRhdGUgdmFsdWUgaXMgaW52YWxpZFxyXG4gIEludmFsaWREYXRlcyA9ICdpbnZhbGlkLWRhdGVzJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2VsZWN0aW9uVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNUX1R1cGxlcyA9ICd0dXBsZXMnLFxyXG5cclxuICAvLyBcclxuICBTVF9Ob2RlcyA9ICdub2RlcycsXHJcblxyXG4gIC8vIFxyXG4gIFNUX1RyZW5kTGluZXMgPSAndHJlbmQtbGluZXMnLFxyXG5cclxuICAvLyBcclxuICBTVF9MZWdlbmRJdGVtcyA9ICdsZWdlbmQtaXRlbXMnLFxyXG5cclxuICAvLyBcclxuICBTVF9SZWZMaW5lcyA9ICdyZWYtbGluZXMnLFxyXG5cclxuICAvLyBcclxuICBTVF9Bbm5vdGF0aW9ucyA9ICdhbm5vdGF0aW9ucycsXHJcblxyXG4gIC8vIFxyXG4gIFNUX09yaWVudGVkTm9kZXMgPSAnb3JpZW50ZWQtbm9kZXMnLFxyXG5cclxuICAvLyBcclxuICBTVF9TaGVsZkZpZWxkcyA9ICdzaGVsZi1maWVsZHMnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTZWxlY3Rpb25VcGRhdGVUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgU1VfQUREID0gJ3NlbGVjdC1hZGQnLFxyXG5cclxuICAvLyBcclxuICBTVV9SRU1PVkUgPSAnc2VsZWN0LXJlbW92ZScsXHJcblxyXG4gIC8vIFxyXG4gIFNVX1JFUExBQ0UgPSAnc2VsZWN0LXJlcGxhY2UnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTZWxlY3RPcHRpb25zIHtcclxuXHJcbiAgLy8gTm8ga2V5IGRvd25cclxuICBTZWxlY3RPcHRpb25zU2ltcGxlID0gJ3NlbGVjdC1vcHRpb25zLXNpbXBsZScsXHJcblxyXG4gIC8vIEN0cmwga2V5IGRvd25cclxuICBTZWxlY3RPcHRpb25zVG9nZ2xlID0gJ3NlbGVjdC1vcHRpb25zLXRvZ2dsZScsXHJcblxyXG4gIC8vIFNoaWZ0IGtleSBkb3duXHJcbiAgU2VsZWN0T3B0aW9uc1JhbmdlID0gJ3NlbGVjdC1vcHRpb25zLXJhbmdlJyxcclxuXHJcbiAgLy8gVXN1YWxseSB0cmlnZ2VyZWQgYnkgcmlnaHQgY2xpY2tcclxuICBTZWxlY3RPcHRpb25zTW91c2VNZW51ID0gJ3NlbGVjdC1vcHRpb25zLW1lbnUnLFxyXG5cclxuICAvLyBBbiBhdHRlbXB0IHRvIHNlbGVjdCB2aWEgc2VhcmNoXHJcbiAgU2VsZWN0T3B0aW9uc1NlYXJjaE1hdGNoID0gJ3NlbGVjdC1vcHRpb25zLXNlYXJjaCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFdoaXRlc3BhY2VTZWxlY3Rpb25CZWhhdmlvciB7XHJcblxyXG4gIC8vIENsZWFyIHNlbGVjdGlvbiBvdmVyIHdoaXRlc3BhY2UgYmFzZWQgb24gZGVmYXVsdCBmYWN0b3JzIChpLmUuLCBhcmUgd2UgaW4gYXBwZW5kIG1vZGU/KVxyXG4gIERlZmF1bHQgPSAnZGVmYXVsdCcsXHJcblxyXG4gIC8vIEFsd2F5cyBjbGVhciBzZWxlY3Rpb24gb3ZlciB3aGl0ZXNwYWNlXHJcbiAgQWx3YXlzQ2xlYXIgPSAnYWx3YXlzLWNsZWFyJyxcclxuXHJcbiAgLy8gTmV2ZXIgY2xlYXIgc2VsZWN0aW9uIG92ZXIgd2hpdGVzcGFjZVxyXG4gIE5ldmVyQ2xlYXIgPSAnbmV2ZXItY2xlYXInXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBPcmllbnRhdGlvbiB7XHJcblxyXG4gIC8vIFxyXG4gIFZlcnRpY2FsID0gJ28tdmVydCcsXHJcblxyXG4gIC8vIFxyXG4gIEhvcml6b250YWwgPSAnby1ob3JpeicsXHJcblxyXG4gIC8vIFxyXG4gIE9BdXRvbWF0aWMgPSAnby1hdXRvJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2NhbGVUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgTG9nID0gJ2xvZycsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVhciA9ICdsaW5lYXInXHJcbn1cclxuXHJcbi8vIHR5cGUgb2Ygb2JqZWN0IGFjdGlvbiBhcHBsaWVzIHRvXHJcbmV4cG9ydCBlbnVtIFNvdXJjZVR5cGUge1xyXG5cclxuICAvLyBhbGwgc2hlZXRzIGluIHRoZSB3b3JrYm9va1xyXG4gIFNUX0FsbCA9ICdhbGwnLFxyXG5cclxuICAvLyBhbGwgc2hlZXRzIHJlZmVyZW5jaW5nIGEgZ2l2ZW4gZGF0YXNvdXJjZVxyXG4gIFNUX0RhdGFzb3VyY2UgPSAnZGF0YXNvdXJjZScsXHJcblxyXG4gIC8vIHdvcmtzaGVldCBvciBkYXNoYm9hcmRcclxuICBTVF9TaGVldCA9ICdzaGVldCdcclxufVxyXG5cclxuLy8gaG93IGFuIGFjdGlvbiBnZXRzIGFjdGl2YXRlZFxyXG5leHBvcnQgZW51bSBBY3RpdmF0aW9uTWV0aG9kIHtcclxuXHJcbiAgLy8gZS5nLiBieSBwaWNraW5nIGFuIG9wdGlvbiBmcm9tIGEgY29udGV4dCBtZW51XHJcbiAgQU1fRXhwbGljaXQgPSAnZXhwbGljaXRseScsXHJcblxyXG4gIC8vIGF1dG8gYWN0aXZhdGVkIHdoZW4gbWFya3MgYXJlIHNlbGVjdGVkXHJcbiAgQU1fT25TZWxlY3QgPSAnb24tc2VsZWN0JyxcclxuXHJcbiAgLy8gYXV0byBhY3RpdmF0ZWQgd2hlbiB0aGUgdXNlciBtb3ZlcyB0aGUgbW91c2Ugb3ZlciBhIG1hcmtcclxuICBBTV9PbkhvdmVyID0gJ29uLWhvdmVyJ1xyXG59XHJcblxyXG4vLyB3aGV0aGVyIGFuIGFjdGlvbiBzaG91bGQgYmUgcnVuIHdoZW4gc2VsZWN0aW9uIGlzIGNsZWFyZWRcclxuZXhwb3J0IGVudW0gT25DbGVhciB7XHJcblxyXG4gIC8vIGRvIG5vdGhpbmcsIGUuZy4gbGVhdmUgZmlsdGVyIGluIHBsYWNlXHJcbiAgT0NfTm90aGluZyA9ICdub3RoaW5nJyxcclxuXHJcbiAgLy8gc2hvdyBhbGwgdmFsdWVzXHJcbiAgT0NfU2hvd0FsbCA9ICdzaG93LWFsbCcsXHJcblxyXG4gIC8vIGV4Y2x1ZGUgZXZlcnl0aGluZ1xyXG4gIE9DX0V4Y2x1ZGVBbGwgPSAnZXhjbHVkZS1hbGwnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBNZXJnZU9yU3BsaXQge1xyXG5cclxuICAvLyBcclxuICBNT1NfTUVSR0UgPSAnbWVyZ2UnLFxyXG5cclxuICAvLyBcclxuICBNT1NfU1BMSVQgPSAnc3BsaXQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBNYXJrTGF5b3V0UHJpbWl0aXZlIHtcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVQcmltaXRpdmUgPSAnc2hhcGUnLFxyXG5cclxuICAvLyBcclxuICBMaW5lUHJpbWl0aXZlID0gJ2xpbmUnLFxyXG5cclxuICAvLyBcclxuICBCYXJQcmltaXRpdmUgPSAnYmFyJyxcclxuXHJcbiAgLy8gXHJcbiAgUG9sYXJCYXJQcmltaXRpdmUgPSAncG9sYXItYmFyJyxcclxuXHJcbiAgLy8gXHJcbiAgVGV4dFByaW1pdGl2ZSA9ICd0ZXh0JyxcclxuXHJcbiAgLy8gXHJcbiAgTGFiZWxQcmltaXRpdmUgPSAnbGFiZWwnLFxyXG5cclxuICAvLyBcclxuICBQaWVQcmltaXRpdmUgPSAncGllJyxcclxuXHJcbiAgLy8gXHJcbiAgQXJlYVByaW1pdGl2ZSA9ICdhcmVhJyxcclxuXHJcbiAgLy8gXHJcbiAgUG9seWdvblByaW1pdGl2ZSA9ICdwb2x5Z29uJyxcclxuXHJcbiAgLy8gXHJcbiAgTXVsdGlwb2x5Z29uUHJpbWl0aXZlID0gJ211bHRpcG9seWdvbicsXHJcblxyXG4gIC8vIFxyXG4gIFNxdWFyZVByaW1pdGl2ZSA9ICdzcXVhcmUnXHJcbn1cclxuXHJcbi8vIERvZXMgdGhlIFBhbmVUeXBlL1ByaW1pdGl2ZVR5cGUvTGF5b3V0VHlwZSB0cmlwbGV0IHJlc3VsdCBpbiB2ZXJ5IHNwZWNpZmljIGxheW91dCBydWxlcz9cclxuZXhwb3J0IGVudW0gTWFya0xheW91dFZpelR5cGUge1xyXG5cclxuICAvLyBObyBzcGVjaWFsIHJ1bGVzXHJcbiAgU3RhbmRhcmQgPSAnc3RhbmRhcmQnLFxyXG5cclxuICAvLyBHZW5lcmljIE9PIFN0YWNrZWQgcnVsZXNcclxuICBPT1N0YWNrZWQgPSAnb28tc3RhY2tlZCcsXHJcblxyXG4gIC8vIE9PIEdhbnR0IFN0YWNrZWQgcnVsZXNcclxuICBHYW50dFN0YWNrZWQgPSAnZ2FudHQtc3RhY2tlZCcsXHJcblxyXG4gIC8vIFRyZWVtYXBcclxuICBUcmVlbWFwID0gJ3RyZWVtYXAnLFxyXG5cclxuICAvLyBCdWJibGUgQ2hhcnQgLS0gT08gUGFja2VkIGNpcmNsZXMgb3Igc2hhcGVzXHJcbiAgQnViYmxlID0gJ2J1YmJsZScsXHJcblxyXG4gIC8vIFdvcmRsZVxyXG4gIFdvcmRsZSA9ICd3b3JkbGUnLFxyXG5cclxuICAvLyBIaWdobGlnaHQgVGFibGVcclxuICBIaWdobGlnaHQgPSAnaGlnaGxpZ2h0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya0xheW91dEhhbmRsZVNwZWNpYWxzIHtcclxuXHJcbiAgLy8gXHJcbiAgQ2F0ZWdvcmljYWxBeGlzID0gJ2NhdGVnb3JpY2FsLWF4aXMnLFxyXG5cclxuICAvLyBcclxuICBTaG93U3BlY2lhbHMgPSAnc2hvdy1zcGVjaWFscycsXHJcblxyXG4gIC8vIFxyXG4gIE9taXRTcGVjaWFscyA9ICdvbWl0LXNwZWNpYWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgQnJlYWtPblNwZWNpYWxzID0gJ2JyZWFrLW9uLXNwZWNpYWxzJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya0xheW91dE1hcmtGbGFnIHtcclxuXHJcbiAgLy8gbWFyayBkb2VzIG5vdCBjb25uZWN0IHRvIHRoZSBuZXh0IG1hcmtcclxuICBFbmQgPSAnZW5kJyxcclxuXHJcbiAgLy8gbGFzdCBtYXJrIGluIGEgbXVsdGktcHJpbWl0aXZlXHJcbiAgRW5kUHJpbWl0aXZlID0gJ2VuZHByaW1pdGl2ZScsXHJcblxyXG4gIC8vIGxhc3QgbWFyayBoYXMgYW4gZWRnZSBjb25uZWN0b3IgdG8gZmlyc3QgbWFya1xyXG4gIENsb3NlZFByaW1pdGl2ZSA9ICdjbG9zZWRwcmltaXRpdmUnLFxyXG5cclxuICAvLyB2aXN1YWwgbWFya2VyIHNob3VsZCBiZSBkaXNwbGF5ZWRcclxuICBNYXJrZWQgPSAnbWFya2VkJyxcclxuXHJcbiAgLy8gdmlzdWFsIG1hcmtlciBzaG91bGQgYmUgZGlzcGxheWVkIGlmIGxhYmVsbGVkXHJcbiAgTWFya2VkSWZMYWJlbCA9ICdtYXJrZWRpZmxhYmVsJyxcclxuXHJcbiAgLy8gZGlzcGxheSBkZWJ1ZyBpbmZvcm1hdGlvblxyXG4gIERlYnVnID0gJ2RlYnVnJyxcclxuXHJcbiAgLy8gdXNlciBmbGFncyBjYW4gYmVnaW4gaGVyZVxyXG4gIFVzZXIgPSAndXNlcidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIE1hcmtMYXlvdXRQYW5lRmxhZyB7XHJcblxyXG4gIC8vIEFsbG93cyBzY2VuZSB0byBiZSBwYW5uZWQgaW4gdGhlIFggZGlyZWN0aW9uXHJcbiAgRW5hYmxlUGFuWCA9ICdlbmFibGUtcGFuLXgnLFxyXG5cclxuICAvLyBBbGxvd3Mgc2NlbmUgdG8gYmUgcGFubmVkIGluIHRoZSBZIGRpcmVjdGlvblxyXG4gIEVuYWJsZVBhblkgPSAnZW5hYmxlLXBhbi15JyxcclxuXHJcbiAgLy8gQWxsb3dzIHRoZSBwb3NpdGlvbnMgb2YgbWFya3MgdG8gYmUgc2NhbGVkIGluIHRoZSBYIGRpcmVjdGlvbiBhcyB0aGUgdmlldyBpcyB6b29tZWRcclxuICBFbmFibGVab29tWCA9ICdlbmFibGUtem9vbS14JyxcclxuXHJcbiAgLy8gQWxsb3dzIHRoZSBwb3NpdGlvbnMgb2YgbWFya3MgdG8gYmUgc2NhbGVkIGluIHRoZSBZIGRpcmVjdGlvbiBhcyB0aGUgdmlldyBpcyB6b29tZWRcclxuICBFbmFibGVab29tWSA9ICdlbmFibGUtem9vbS15JyxcclxuXHJcbiAgLy8gQWxsb3dzIHRoZSBzaXplIG9mIG1hcmtzIHRvIGJlIHNjYWxlZCBpbiB0aGUgWCBkaXJlY3Rpb24gYXMgdGhlIHZpZXcgaXMgem9vbWVkOyByZXF1aXJlcyB3aWR0aCBpbiBkb21haW4gY29vcmRpbmF0ZXNcclxuICBFbmFibGVTY2FsZVggPSAnZW5hYmxlLXNjYWxlLXgnLFxyXG5cclxuICAvLyBBbGxvd3MgdGhlIHNpemUgb2YgbWFya3MgdG8gYmUgc2NhbGVkIGluIHRoZSBZIGRpcmVjdGlvbiBhcyB0aGUgdmlldyBpcyB6b29tZWQ7IHJlcXVpcmVzIGhlaWdodCBpbiBkb21haW4gY29vcmRpbmF0ZXNcclxuICBFbmFibGVTY2FsZVkgPSAnZW5hYmxlLXNjYWxlLXknLFxyXG5cclxuICAvLyBDbGlwIHRvIGNlbGwgYm9yZGVycyBpbiB0aGUgeCBkaXJlY3Rpb25cclxuICBDbGlwVG9DZWxsWCA9ICdjbGlwLXRvLWNlbGwteCcsXHJcblxyXG4gIC8vIENsaXAgdG8gY2VsbCBib3JkZXJzIGluIHRoZSB5IGRpcmVjdGlvblxyXG4gIENsaXBUb0NlbGxZID0gJ2NsaXAtdG8tY2VsbC15JyxcclxuXHJcbiAgLy8gVXNlIGNlbGwgY2xpcHBpbmcgZm9yIHNlbGVjdGlvblxyXG4gIENsaXBUb0NlbGxGb3JTZWxlY3Rpb24gPSAnY2xpcC10by1jZWxsLWZvci1zZWxlY3Rpb24nLFxyXG5cclxuICAvLyBUaGUgeC1heGlzIGlzIG9uIHRvcCBvZiBwYW5lXHJcbiAgWEF4aXNPblRvcCA9ICd4LWF4aXMtb24tdG9wJyxcclxuXHJcbiAgLy8gVGhlIHktYXhpcyBpcyBvbiB0aGUgcmlnaHQgb2YgcGFuZVxyXG4gIFlBeGlzT25SaWdodCA9ICd5LWF4aXMtb24tcmlnaHQnLFxyXG5cclxuICAvLyBUaGUgcGFuZSBoYXMgY2VsbHMgaW4gdGhlIHggYXhpc1xyXG4gIEhhc0NlbGxzWCA9ICdoYXMtY2VsbHMteCcsXHJcblxyXG4gIC8vIFRoZSBwYW5lIGhhcyBjZWxscyBpbiB0aGUgeSBheGlzXHJcbiAgSGFzQ2VsbHNZID0gJ2hhcy1jZWxscy15J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya0xheW91dERyb3BMaW5lRmxhZyB7XHJcblxyXG4gIC8vIFNob3cgZHJvcCBsaW5lcyBvbiBzZWxlY3RlZCBtYXJrXHJcbiAgRHJvcExpbmVTaG93U2VsZWN0ZWQgPSAnZHJvcGxpbmUtc2hvdy1zZWxlY3RlZCcsXHJcblxyXG4gIC8vIFNob3cgZHJvcCBsaW5lcyBvbiBhbGwgbWFya3NcclxuICBEcm9wTGluZVNob3dBbGwgPSAnZHJvcGxpbmUtc2hvdy1hbGwnLFxyXG5cclxuICAvLyBEcm9wIGxpbmUgdG8geC1heGlzXHJcbiAgRHJvcExpbmVYID0gJ2Ryb3BsaW5lLXgnLFxyXG5cclxuICAvLyBEcm9wIGxpbmUgdG8geS1heGlzXHJcbiAgRHJvcExpbmVZID0gJ2Ryb3BsaW5lLXknLFxyXG5cclxuICAvLyBTaG93IGxhYmVscyBvbiBkcm9wIGxpbmVzXHJcbiAgRHJvcExpbmVMYWJlbHMgPSAnZHJvcGxpbmUtbGFiZWxzJ1xyXG59XHJcblxyXG4vLyBJZGVudGlmaWVzIHRoZSBvZmZzZXQgZm9yIGEgcGFydGljdWxhciB0YWJsZSBpbiB0aGUgYXJyYXkgb2YgdGFibGVzIGluIFBETWFya3NQcmVzTW9kZWxcclxuZXhwb3J0IGVudW0gTWFya0xheW91dERhdGFUYWJsZUlEIHtcclxuXHJcbiAgLy8gVGhlIHRhYmxlIHRoYXQgY29udGFpbnMgdGhlIG1hcmsgaW5mb3JtYXRpb25cclxuICBNYXJrVGFibGUgPSAnbWFyay10YWJsZScsXHJcblxyXG4gIC8vIFRoZSB0YWJsZSB0aGF0IGNvbnRhaW5zIHRleHQgcnVucyBmb3IgdGV4dCBtYXJrcyBhbmQgbGFiZWxzXHJcbiAgVGV4dFJ1blRhYmxlID0gJ3RleHQtcnVuLXRhYmxlJyxcclxuXHJcbiAgLy8gVGhlIHRhYmxlIHRoYXQgY29udGFpbnMgdGV4dCBzdHlsZXMgZm9yIGVhY2ggdGV4dCBydW4uXHJcbiAgVGV4dFN0eWxlVGFibGUgPSAndGV4dC1zdHlsZS10YWJsZSdcclxufVxyXG5cclxuLy8gV2hpY2ggbGFiZWxpbmcgYWxnb3JpdGhtIHNob3VsZCBiZSB1c2VkPyAgQ2xvc2VseSByZWxhdGVkIHRvIE1hcmtMYXlvdXQ6OlZpelR5cGVcclxuZXhwb3J0IGVudW0gTGFiZWxMYXlvdXRUeXBlIHtcclxuXHJcbiAgLy8gTm8gbGFiZWxzXHJcbiAgTEFCRUxfTEFZT1VUX05PTkUgPSAndW5sYWJlbGVkJyxcclxuXHJcbiAgLy8gVHJlZW1hcCAtIGxhYmVscyBpbnNpZGUgdGhlIHJlY3RhbmdsZXNcclxuICBMQUJFTF9MQVlPVVRfVFJFRU1BUCA9ICd0cmVlbWFwLWxhYmVscycsXHJcblxyXG4gIC8vIEJ1YmJsZSBDaGFydCAtIGxhYmVscyBpbnNpZGUgdGhlIHNoYXBlc1xyXG4gIExBQkVMX0xBWU9VVF9CVUJCTEVDSEFSVCA9ICdidWJibGUtbGFiZWxzJyxcclxuXHJcbiAgLy8gU2NhdHRlcnBsb3QgLSBkeW5hbWljIGJlc3QtZml0IGxhYmVsc1xyXG4gIExBQkVMX0xBWU9VVF9TQ0FUVEVSUExPVCA9ICdzY2F0dGVycGxvdC1sYWJlbHMnLFxyXG5cclxuICAvLyBTdGFuZGFyZCBsYWJlbGluZ1xyXG4gIExBQkVMX0xBWU9VVF9TVEFOREFSRCA9ICdzdGFuZGFyZC1sYWJlbHMnLFxyXG5cclxuICAvLyBIaWdobGlnaHQgdGFibGVcclxuICBMQUJFTF9MQVlPVVRfSElHSExJR0hUX1RBQkxFID0gJ2hpZ2hsaWdodC10YWJsZS1sYWJlbHMnXHJcbn1cclxuXHJcbi8vIE1hcmtMYXllciByZXByZXNlbnRzIHRoZSBsYXllcnMgb2YgYSBtYXJrIGdpdmVuIHRoZSB2YXJpb3VzIHN0YXRlc1xyXG5leHBvcnQgZW51bSBNYXJrTGF5ZXIge1xyXG5cclxuICAvLyBcclxuICBOb3JtYWxVbmRlciA9ICdub3JtYWxVbmRlcicsXHJcblxyXG4gIC8vIFxyXG4gIE5vcm1hbE9uID0gJ25vcm1hbE9uJyxcclxuXHJcbiAgLy8gXHJcbiAgU2VsZWN0ZWRVbmRlciA9ICdzZWxlY3RlZFVuZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgU2VsZWN0ZWRPbiA9ICdzZWxlY3RlZE9uJyxcclxuXHJcbiAgLy8gXHJcbiAgSGlnaGxpZ2h0ZWRVbmRlciA9ICdoaWdobGlnaHRlZFVuZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgSGlnaGxpZ2h0ZWRPbiA9ICdoaWdobGlnaHRlZE9uJyxcclxuXHJcbiAgLy8gXHJcbiAgRWRnZVVuZGVyID0gJ2VkZ2VVbmRlcicsXHJcblxyXG4gIC8vIFxyXG4gIEVkZ2VPbiA9ICdlZGdlT24nLFxyXG5cclxuICAvLyBcclxuICBCb3JkZXIgPSAnYm9yZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgU2VsZWN0ZWRVbmRlcjEgPSAnc2VsZWN0ZWRVbmRlcjEnLFxyXG5cclxuICAvLyBcclxuICBTZWxlY3RlZE9uMSA9ICdzZWxlY3RlZE9uMScsXHJcblxyXG4gIC8vIFxyXG4gIFVuU2VsZWN0ZWRDdXN0b21TaGFwZSA9ICd1blNlbGVjdGVkQ3VzdG9tU2hhcGUnLFxyXG5cclxuICAvLyBcclxuICBOb3JtYWxBbHBoYU1hc2sgPSAnbm9ybWFsQWxwaGFNYXNrJyxcclxuXHJcbiAgLy8gXHJcbiAgSGFsb0FscGhhTWFzayA9ICdoYWxvQWxwaGFNYXNrJyxcclxuXHJcbiAgLy8gXHJcbiAgSGlnaGxpZ2h0ZWRVbmRlcjEgPSAnaGlnaGxpZ2h0ZWRVbmRlcjEnLFxyXG5cclxuICAvLyBcclxuICBIaWdobGlnaHRlZE9uMSA9ICdoaWdobGlnaHRlZE9uMScsXHJcblxyXG4gIC8vIFxyXG4gIFNlbGVjdGVkRWRnZVVuZGVyID0gJ3NlbGVjdGVkRWRnZVVuZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQmxvYlVuZGVyID0gJ2Jsb2JVbmRlcicsXHJcblxyXG4gIC8vIFxyXG4gIEJsb2JPbiA9ICdibG9iT24nLFxyXG5cclxuICAvLyBcclxuICBIb3Zlck92ZXJsYXkgPSAnaG92ZXJPdmVybGF5JyxcclxuXHJcbiAgLy8gXHJcbiAgUHJlc3NlZE92ZXJsYXkgPSAncHJlc3NlZE92ZXJsYXknXHJcbn1cclxuXHJcbi8vIENvbG9yT3ZlcnJpZGVNb2RlIHJlcHJlc2VudHMgdGhlIGRpZmZlcmVudCB3YXlzIGluIHdoaWNoIG1hcmsgY29sb3JzIG1heSBiZSBtb2RpZmllZC5cclxuZXhwb3J0IGVudW0gQ29sb3JPdmVycmlkZU1vZGUge1xyXG5cclxuICAvLyBcclxuICBDb2xvck92ZXJyaWRlTm9uZSA9ICdjb2xvck92ZXJyaWRlTm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yT3ZlcnJpZGVGb2cgPSAnY29sb3JPdmVycmlkZUZvZycsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yT3ZlcnJpZGVPcGFxdWUgPSAnY29sb3JPdmVycmlkZU9wYXF1ZScsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yT3ZlcnJpZGVSZXBsYWNlQWxwaGEgPSAnY29sb3JPdmVycmlkZVJlcGxhY2VBbHBoYScsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yT3ZlcnJpZGVDb3VudCA9ICdjb2xvck92ZXJyaWRlQ291bnQnXHJcbn1cclxuXHJcbi8vIENvbG9yVHJhbnNmb3JtTW9kZSByZXByZXNlbnRzIHRoZSBkaWZmZXJlbnQgd2F5cyBpbiB3aGljaCBtYXJrIGNvbG9ycyBtYXkgYmUgbW9kaWZpZWQuXHJcbmV4cG9ydCBlbnVtIENvbG9yVHJhbnNmb3JtTW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIENvbG9yVHJhbnNmb3JtTm9uZSA9ICdjb2xvclRyYW5zZm9ybU5vbmUnLFxyXG5cclxuICAvLyBcclxuICBDb2xvclRyYW5zZm9ybUZvZyA9ICdjb2xvclRyYW5zZm9ybUZvZycsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yVHJhbnNmb3JtT3BhcXVlID0gJ2NvbG9yVHJhbnNmb3JtT3BhcXVlJyxcclxuXHJcbiAgLy8gXHJcbiAgQ29sb3JUcmFuc2Zvcm1PdmVycmlkZUNvbG9yID0gJ2NvbG9yVHJhbnNmb3JtT3ZlcnJpZGVDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yVHJhbnNmb3JtT3ZlcnJpZGVBbHBoYSA9ICdjb2xvclRyYW5zZm9ybU92ZXJyaWRlQWxwaGEnXHJcbn1cclxuXHJcbi8vIE1hcmtTdGF0ZSByZXByZXNlbnRzIHZhbGlkIHN0YXRlcyBmb3IgYSBtYXJrLlxyXG5leHBvcnQgZW51bSBNYXJrU3RhdGUge1xyXG5cclxuICAvLyBcclxuICBNYXJrU3RhdGVOb3JtYWwgPSAnbWFya1N0YXRlTm9ybWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgTWFya1N0YXRlSGlnaGxpZ2h0ZWQgPSAnbWFya1N0YXRlSGlnaGxpZ2h0ZWQnLFxyXG5cclxuICAvLyBcclxuICBNYXJrU3RhdGVTZWxlY3RlZCA9ICdtYXJrU3RhdGVTZWxlY3RlZCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcmtTdGF0ZUludmlzaWJsZSA9ICdtYXJrU3RhdGVJbnZpc2libGUnXHJcbn1cclxuXHJcbi8vIExpbmVTdGF0ZSByZXByZXNlbnRzIHZhbGlkIHN0YXRlcyBmb3IgYSBsaW5lIG11bHRpLW1hcmsuXHJcbmV4cG9ydCBlbnVtIExpbmVTdGF0ZSB7XHJcblxyXG4gIC8vIFxyXG4gIExpbmVTdGF0ZU5vcm1hbCA9ICdsaW5lU3RhdGVOb3JtYWwnLFxyXG5cclxuICAvLyBcclxuICBMaW5lU3RhdGVIaWdobGlnaHRlZCA9ICdsaW5lU3RhdGVIaWdobGlnaHRlZCcsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVTdGF0ZVNlbGVjdGVkID0gJ2xpbmVTdGF0ZVNlbGVjdGVkJ1xyXG59XHJcblxyXG4vLyBSZW5kZXJQYXNzIHJlcHJlc2VudHMgZWFjaCBwYXNzIG92ZXIgdGhlIHNjZW5lIGVsZW1lbnRzIGFzIGVhY2ggbGF5ZXIgaXMgcmVuZGVyZWQuXHJcbmV4cG9ydCBlbnVtIFJlbmRlclBhc3Mge1xyXG5cclxuICAvLyBcclxuICBOb3JtYWxVbmRlclBhc3MgPSAnbm9ybWFsVW5kZXJQYXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgTm9ybWFsT25QYXNzID0gJ25vcm1hbE9uUGFzcycsXHJcblxyXG4gIC8vIFxyXG4gIEhpZ2hsaWdodGVkVW5kZXJQYXNzID0gJ2hpZ2hsaWdodGVkVW5kZXJQYXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgSGlnaGxpZ2h0ZWRPblBhc3MgPSAnaGlnaGxpZ2h0ZWRPblBhc3MnLFxyXG5cclxuICAvLyBcclxuICBTZWxlY3RlZFVuZGVyUGFzcyA9ICdzZWxlY3RlZFVuZGVyUGFzcycsXHJcblxyXG4gIC8vIFxyXG4gIFNlbGVjdGVkT25QYXNzID0gJ3NlbGVjdGVkT25QYXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgUmVuZGVyUGFzc0NvdW50ID0gJ3JlbmRlclBhc3NDb3VudCdcclxufVxyXG5cclxuLy8gVGhlIHJvbGUgYXNzb2NpYXRlZCB3aXRoIGEgc2NlbmUgZWxlbWVudC4gVGhpcyBhbGxvd3MgdGhlIGRyYXcgb3JkZXJpbmcgdG8gYmUgbW9yZSBlZmZpY2llbnQuXHJcbmV4cG9ydCBlbnVtIEVsZW1lbnRSb2xlIHtcclxuXHJcbiAgLy8gXHJcbiAgTW9kZWxDb250YWluZXJSb2xlID0gJ21vZGVsQ29udGFpbmVyUm9sZScsXHJcblxyXG4gIC8vIFxyXG4gIEJhY2tncm91bmRSb2xlID0gJ2JhY2tncm91bmRSb2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgVW5kZXJNYXJrUm9sZSA9ICd1bmRlck1hcmtSb2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgTWFya1JvbGUgPSAnbWFya1JvbGUnLFxyXG5cclxuICAvLyBcclxuICBVbmRlckxhYmVsUm9sZSA9ICd1bmRlckxhYmVsUm9sZScsXHJcblxyXG4gIC8vIFxyXG4gIExhYmVsUm9sZSA9ICdsYWJlbFJvbGUnLFxyXG5cclxuICAvLyBcclxuICBGb3JlZ3JvdW5kUm9sZSA9ICdmb3JlZ3JvdW5kUm9sZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFBhdGhFbGVtZW50IHtcclxuXHJcbiAgLy8gXHJcbiAgUGF0aE1vdmVUbyA9ICdtb3ZldG8nLFxyXG5cclxuICAvLyBcclxuICBQYXRoTGluZVRvID0gJ2xpbmV0bycsXHJcblxyXG4gIC8vIFxyXG4gIFBhdGhDdXJ2ZVRvID0gJ2N1cnZldG8nXHJcbn1cclxuXHJcbi8vIFRoZSBzZXJpYWxpemF0aW9uIGlzIHN0aWxsIGR1cGxpY2F0ZWQgaW4gSnNvblV0aWxzOjpab25lVXRpbHM6OlpvbmVOYW1lcyBhbmQgdHlwZXMuanNcclxuZXhwb3J0IGVudW0gWm9uZVR5cGUge1xyXG5cclxuICAvLyBcclxuICBaVF9JbnZhbGlkID0gJ2ludmFsaWQnLFxyXG5cclxuICAvLyBzZWN0aW9uOiBuYW1lID0gd29ya3NoZWV0IG5hbWVcclxuICBaVF9WaXogPSAndml6JyxcclxuXHJcbiAgLy8gXHJcbiAgWlRfQ29sb3JMZWdlbmQgPSAnY29sb3InLFxyXG5cclxuICAvLyBcclxuICBaVF9TaGFwZUxlZ2VuZCA9ICdzaGFwZScsXHJcblxyXG4gIC8vIFxyXG4gIFpUX1NpemVMZWdlbmQgPSAnc2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIFpUX01hcExlZ2VuZCA9ICdtYXAnLFxyXG5cclxuICAvLyBwYXJhbSA9IGZpZWxkIG5hbWVcclxuICBaVF9RdWlja0ZpbHRlciA9ICdmaWx0ZXInLFxyXG5cclxuICAvLyBwYXJhbSA9IGZpZWxkIG5hbWVcclxuICBaVF9IaWdobGlnaHRlciA9ICdoaWdobGlnaHRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFpUX0N1cnJQYWdlID0gJ2N1cnJlbnQtcGFnZScsXHJcblxyXG4gIC8vIHNlY3Rpb246IG5hbWUgdW51c2VkXHJcbiAgWlRfRW1wdHkgPSAnZW1wdHknLFxyXG5cclxuICAvLyBwYXJhbSA9IHRpdGxlXHJcbiAgWlRfVGl0bGUgPSAndGl0bGUnLFxyXG5cclxuICAvLyBwYXJhbSA9IHRleHRcclxuICBaVF9UZXh0ID0gJ3RleHQnLFxyXG5cclxuICAvLyBwYXJhbSA9IGZpbGUgbmFtZVxyXG4gIFpUX0JpdG1hcCA9ICdiaXRtYXAnLFxyXG5cclxuICAvLyBwYXJhbSA9IFVSTFxyXG4gIFpUX1dlYiA9ICd3ZWInLFxyXG5cclxuICAvLyBwYXJhbSA9IGFkZC1pbiBpZFxyXG4gIFpUX0FkZEluID0gJ2FkZC1pbicsXHJcblxyXG4gIC8vIFxyXG4gIFpUX0J1dHRvbiA9ICdidXR0b24tb2JqZWN0JyxcclxuXHJcbiAgLy8gcGFyYW0gPSBmaWVsZCBuYW1lXHJcbiAgWlRfUGFyYW1DdHJsID0gJ3BhcmFtY3RybCcsXHJcblxyXG4gIC8vIFxyXG4gIFpUX0ZsaXBib2FyZE5hdiA9ICdmbGlwYm9hcmQtbmF2JyxcclxuXHJcbiAgLy8gXHJcbiAgWlRfRmxpcGJvYXJkID0gJ2ZsaXBib2FyZCcsXHJcblxyXG4gIC8vIHNlY3Rpb246IGxheW91dFxyXG4gIFpUX0xheW91dEJhc2ljID0gJ2xheW91dC1iYXNpYycsXHJcblxyXG4gIC8vIFxyXG4gIFpUX0xheW91dEZsb3cgPSAnbGF5b3V0LWZsb3cnLFxyXG5cclxuICAvLyBcclxuICBaVF9MYXlvdXRGcmVlRm9ybSA9ICdsYXlvdXQtZnJlZS1mb3JtJyxcclxuXHJcbiAgLy8gdXNlZCBvbmx5IGZvciBlbnVtIGl0ZXJhdGlvblxyXG4gIFpUX0VuZCA9ICdlbmQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBDb250ZW50VHlwZSB7XHJcblxyXG4gIC8vIHNlY3Rpb246IG5hbWUgPSB3b3Jrc2hlZXQgbmFtZVxyXG4gIENUX1ZpeiA9ICd2aXonLFxyXG5cclxuICAvLyBcclxuICBDVF9Db2xvckxlZ2VuZCA9ICdjb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIENUX1NoYXBlTGVnZW5kID0gJ3NoYXBlJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1RfU2l6ZUxlZ2VuZCA9ICdzaXplJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1RfTWFwTGVnZW5kID0gJ21hcCcsXHJcblxyXG4gIC8vIHBhcmFtID0gZmllbGQgbmFtZVxyXG4gIENUX1F1aWNrRmlsdGVyID0gJ2ZpbHRlcicsXHJcblxyXG4gIC8vIHBhcmFtID0gZmllbGQgbmFtZVxyXG4gIENUX0hpZ2hsaWdodGVyID0gJ2hpZ2hsaWdodGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1RfQ3VyclBhZ2UgPSAnY3VycmVudC1wYWdlJyxcclxuXHJcbiAgLy8gcGFyYW0gPSBmaWVsZCBuYW1lXHJcbiAgQ1RfUGFyYW1DdHJsID0gJ3BhcmFtY3RybCcsXHJcblxyXG4gIC8vIHBhcmFtID0gdGl0bGVcclxuICBDVF9UaXRsZSA9ICd0aXRsZScsXHJcblxyXG4gIC8vIHBhcmFtID0gdGV4dFxyXG4gIENUX1RleHQgPSAndGV4dCcsXHJcblxyXG4gIC8vIHBhcmFtID0gZmlsZSBuYW1lXHJcbiAgQ1RfQml0bWFwID0gJ2JpdG1hcCcsXHJcblxyXG4gIC8vIHBhcmFtID0gVVJMXHJcbiAgQ1RfV2ViID0gJ3dlYicsXHJcblxyXG4gIC8vIHBhcmFtID0gYWRkLWluIGlkXHJcbiAgQ1RfQWRkSW4gPSAnYWRkLWluJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1RfQnV0dG9uID0gJ2J1dHRvbicsXHJcblxyXG4gIC8vIFxyXG4gIENUX0ZsaXBib2FyZE5hdiA9ICdmbGlwYm9hcmQtbmF2JyxcclxuXHJcbiAgLy8gXHJcbiAgQ1RfRmxpcGJvYXJkID0gJ2ZsaXBib2FyZCcsXHJcblxyXG4gIC8vIERlbm90ZXMgdGhhdCB0aGlzIHpvbmUgaGFzIG5vIGNvbnRlbnQgYW5kIHRoZXJlZm9yZSBoYXMgYSBtZWFuaW5nZnVsIGxheW91dCB0eXBlXHJcbiAgQ1RfTm9uZSA9ICdjb250ZW50LW5vbmUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBab25lTGF5b3V0VHlwZSB7XHJcblxyXG4gIC8vIHNlY3Rpb246IGxheW91dFxyXG4gIFpMVF9CYXNpYyA9ICdiYXNpYycsXHJcblxyXG4gIC8vIFxyXG4gIFpMVF9GcmVlRm9ybSA9ICdmcmVlLWZvcm0nLFxyXG5cclxuICAvLyBcclxuICBaTFRfRmxvdyA9ICdmbG93JyxcclxuXHJcbiAgLy8gXHJcbiAgWkxUX0Rpc3RyaWJ1dGVFdmVubHkgPSAnZGlzdHJpYnV0ZS1ldmVubHknLFxyXG5cclxuICAvLyBcclxuICBaTFRfVHJpdmlhbCA9ICd0cml2aWFsJ1xyXG59XHJcblxyXG4vLyBSZWN0YW5sZ2VzIGluIHRoZSBib3ggbW9kZWxcclxuZXhwb3J0IGVudW0gQm94VHlwZSB7XHJcblxyXG4gIC8vIGJvdW5kaW5nIHJlY3RhbmdsZSBpbiB0aGUgYm94IG1vZGVsXHJcbiAgQlRfQm91bmRpbmcgPSAnYm91bmRpbmcnLFxyXG5cclxuICAvLyBib3JkZXIgcmVjdGFuZ2xlIGluIHRoZSBib3ggbW9kZWwgZXhjbHVkaW5nIG1hcmdpbnNcclxuICBCVF9Cb3JkZXIgPSAnYm9yZGVyJyxcclxuXHJcbiAgLy8gY29udGVudCByZWFjdG5hZ2UgaW4gdGhlIGJveCBtb2RlbCBleGNsdWRpbmcgbWFyZ2lucyBwbHVzIGJvcmRlcnMgYW5kIHBhZGRpbmdzXHJcbiAgQlRfQ29udGVudCA9ICdjb250ZW50J1xyXG59XHJcblxyXG4vLyBSZXByZXNlbnRzIHRoZSB0eXBlIG9mIGNvbW1hbmQgdG8gYmUgcGVyZm9ybWVkIG9uIHRoZSB6LW9yZGVyIG9mIGEgem9uZVxyXG5leHBvcnQgZW51bSBNb2RpZnlab25lWk9yZGVyQ29tbWFuZFR5cGUge1xyXG5cclxuICAvLyBcclxuICBNb2RpZnlab25lWk9yZGVyQ29tbWFuZEZyb250ID0gJ2Zyb250JyxcclxuXHJcbiAgLy8gXHJcbiAgTW9kaWZ5Wm9uZVpPcmRlckNvbW1hbmRCYWNrID0gJ2JhY2snLFxyXG5cclxuICAvLyBcclxuICBNb2RpZnlab25lWk9yZGVyQ29tbWFuZFJlbGF0aXZlUG9zID0gJ3JlbC1wb3MnXHJcbn1cclxuXHJcbi8vIEVudW1lcmF0aW9uIG9mIHZhbGlkIGhvcml6b250YWwgYWxpZ25tZW50cyBmb3IgdGV4dCByZWdpb25zLlxyXG5leHBvcnQgZW51bSBUZXh0UmVnaW9uSEFsaWduIHtcclxuXHJcbiAgLy8gXHJcbiAgVEhBX0xlZnQgPSAnaC1hbGlnbi1sZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgVEhBX0NlbnRlciA9ICdoLWFsaWduLWNlbnRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFRIQV9SaWdodCA9ICdoLWFsaWduLXJpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgVEhBX0F1dG9tYXRpYyA9ICdoLWFsaWduLWF1dG8nXHJcbn1cclxuXHJcbi8vIEVudW1lcmF0aW9uIG9mIHZhbGlkIHZlcnRpY2FsIGFsaWdubWVudHMgZm9yIHRleHQgcmVnaW9ucy5cclxuZXhwb3J0IGVudW0gVGV4dFJlZ2lvblZBbGlnbiB7XHJcblxyXG4gIC8vIFxyXG4gIFRWQV9Cb3R0b20gPSAndi1hbGlnbi1ib3R0b20nLFxyXG5cclxuICAvLyBcclxuICBUVkFfQ2VudGVyID0gJ3YtYWxpZ24tY2VudGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgVFZBX1RvcCA9ICd2LWFsaWduLXRvcCcsXHJcblxyXG4gIC8vIFxyXG4gIFRWQV9BdXRvbWF0aWMgPSAndi1hbGlnbi1hdXRvJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQXV0b0NvbXBsZXRlSXRlbVR5cGUge1xyXG5cclxuICAvLyBcclxuICBBQ0lUX0ludmFsaWQgPSAnaW52YWxpZCcsXHJcblxyXG4gIC8vIFxyXG4gIEFDSVRfRmllbGQgPSAnZmllbGQnLFxyXG5cclxuICAvLyBcclxuICBBQ0lUX0Z1bmN0aW9uID0gJ2Z1bmMnLFxyXG5cclxuICAvLyBcclxuICBBQ0lUX1NlcGFyYXRvciA9ICdzZXBhcmF0b3InLFxyXG5cclxuICAvLyBcclxuICBBQ0lUX0hlYWRlciA9ICdoZWFkZXInXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBDYWxjdWxhdGlvbkNvbnRleHQge1xyXG5cclxuICAvLyBcclxuICBDQ19DYWxjdWxhdGlvbkRpYWxvZyA9ICdjYWxjdWxhdGlvbi1kaWFsb2cnLFxyXG5cclxuICAvLyBcclxuICBDQ19UeXBlSW5QaWxsID0gJ3R5cGUtaW4tcGlsbCcsXHJcblxyXG4gIC8vIFxyXG4gIENDX0ZpbHRlclRvcCA9ICdmaWx0ZXItdG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgQ0NfRmlsdGVyQ29uZGl0aW9uID0gJ2ZpbHRlci1jb25kaXRpb24nLFxyXG5cclxuICAvLyBcclxuICBDQ19Kb2luQ2FsY0RpYWxvZyA9ICdqb2luLWNhbGMtZGlhbG9nJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRm9yZWNhc3RDb21wb25lbnRUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRm9yZWNhc3RDb21wb25lbnRUeXBlX19FVFNfTk9ORSA9ICdldHMtbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcmVjYXN0Q29tcG9uZW50VHlwZV9fRVRTX0FERElUSVZFID0gJ2V0cy1hZGRpdGl2ZScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcmVjYXN0Q29tcG9uZW50VHlwZV9fRVRTX01VTFRJUExJQ0FUSVZFID0gJ2V0cy1tdWx0aXBsaWNhdGl2ZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFByZWRpY3Rpb25JbnRlcnZhbEF4aXMge1xyXG5cclxuICAvLyBcclxuICBQSV9BWElTX05PTkUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIFBJX0FYSVNfWCA9ICdheGlzLXgnLFxyXG5cclxuICAvLyBcclxuICBQSV9BWElTX1kgPSAnYXhpcy15J1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgdGhlIHR5cGUgb2YgcXVpY2sgZmlsdGVyXHJcbmV4cG9ydCBlbnVtIFF1aWNrRmlsdGVyVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFFGVF9Vbmtub3duID0gJ3Vua25vd24nLFxyXG5cclxuICAvLyBcclxuICBRRlRfUXVhbnRpdGF0aXZlID0gJ3F1YW50aXRhdGl2ZScsXHJcblxyXG4gIC8vIFxyXG4gIFFGVF9SZWxhdGl2ZURhdGUgPSAncmVsYXRpdmUtZGF0ZScsXHJcblxyXG4gIC8vIFxyXG4gIFFGVF9IaWVyYXJjaHkgPSAnaGllcmFyY2h5JyxcclxuXHJcbiAgLy8gXHJcbiAgUUZUX0NhdGVnb3JpY2FsID0gJ2NhdGVnb3JpY2FsJ1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgYSBjYXRlZ29yaWNhbCBVSSBjb250cm9sXHJcbmV4cG9ydCBlbnVtIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsIHtcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxfX1FGQ0NfUmVhZG91dCA9ICdyZWFkb3V0JyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxfX1FGQ0NfU2xpZGVyID0gJ3NsaWRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsX19RRkNDX1N0ZXBCdG5zID0gJ3N0ZXAtYnV0dG9ucycsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsX19RRkNDX0FsbEJ0biA9ICdhbGwtYnV0dG9ucycsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsX19RRkNDX0ZpbHRlclN0YXRlID0gJ2ZpbHRlcnN0YXRlLWJ1dHRvbicsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsX19RRkNDX1NlYXJjaCA9ICdzZWFyY2gnLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybF9fUUZDQ19Eb21haW4gPSAnZG9tYWluJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxfX1FGQ0NfTW9yZUZld2VyQnV0dG9uID0gJ21vcmVmZXdlci1idXR0b24nLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybF9fUUZDQ19FeGNsdWRlID0gJ2V4Y2x1ZGUnLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybF9fUUZDQ19Nb2RlID0gJ21vZGUnLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybF9fUUZDQ19MZXZlbHMgPSAnbGV2ZWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxfX1FGQ0NfQXBwbHlCdXR0b24gPSAnYXBwbHktYnV0dG9uJ1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgYSBjYXRlZ29yaWNhbCBtb2RlXHJcbmV4cG9ydCBlbnVtIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbE1vZGVfX1FGQ01fQ2hlY2tMaXN0ID0gJ2NoZWNrLWxpc3QnLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsTW9kZV9fUUZDTV9SYWRpb0xpc3QgPSAncmFkaW8tbGlzdCcsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlX19RRkNNX0Ryb3Bkb3duID0gJ2Ryb3Bkb3duJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbE1vZGVfX1FGQ01fU2xpZGVyID0gJ3NsaWRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlX19RRkNNX1BhdHRlcm4gPSAncGF0dGVybicsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlX19RRkNNX1R5cGVJbkxpc3QgPSAndHlwZS1pbi1saXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbE1vZGVfX1FGQ01fQ2hlY2tEcm9wZG93biA9ICdjaGVjay1kcm9wZG93bicsXHJcbn1cclxuXHJcbi8vIEluZGljYXRlcyBhIHF1YW50aXRhdGl2ZSBVSSBjb250cm9sXHJcbmV4cG9ydCBlbnVtIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybCB7XHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybF9fUUZRQ19SZWFkb3V0cyA9ICdyZWFkb3V0cycsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybF9fUUZRQ19TbGlkZXIgPSAnc2xpZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVDdHJsX19RRlFDX051bGxDdHJscyA9ICdudWxsLWNvbnRyb2xzJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVDdHJsX19RRlFDX1JlbGRhdGVQaWNrZXIgPSAncmVsLWRhdGUtcGlja2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVDdHJsX19RRlFDX0RvbWFpbiA9ICdkb21haW4nLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZUN0cmxfX1FGUUNfTW9yZUZld2VyQnV0dG9uID0gJ21vcmVmZXdlci1idXR0b24nLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZUN0cmxfX1FGUUNfRmlsdGVyU3RhdGUgPSAnZmlsdGVyc3RhdGUtYnV0dG9uJ1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgYSBxdWFudGl0YXRpdmUgbW9kZVxyXG5leHBvcnQgZW51bSBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGUge1xyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVfX1FGUU1fTWluTWF4ID0gJ21pbi1tYXgnLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVfX1FGUU1fTWluT25seSA9ICdtaW4tb25seScsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlTW9kZV9fUUZRTV9NYXhPbmx5ID0gJ21heC1vbmx5JyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVNb2RlX19RRlFNX1JlbERhdGUgPSAncmVsLWRhdGUnLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVfX1FGUU1fUmVsUGljayA9ICdyZWwtcGljaydcclxufVxyXG5cclxuLy8gV2hlcmUgaXMgcmVuZGVyaW5nIGhhcHBlbmluZyAtIGNsaWVudCBvciBzZXJ2ZXJcclxuZXhwb3J0IGVudW0gUmVuZGVyTW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIFJlbmRlck1vZGVTZXJ2ZXIgPSAncmVuZGVyLW1vZGUtc2VydmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgUmVuZGVyTW9kZUNsaWVudCA9ICdyZW5kZXItbW9kZS1jbGllbnQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBBZGRPclJlbW92ZU1hcmtzIHtcclxuXHJcbiAgLy8gXHJcbiAgQU9STV9BREQgPSAnYWRkJyxcclxuXHJcbiAgLy8gXHJcbiAgQU9STV9SRU1PVkUgPSAncmVtb3ZlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVmlzdWFsRG9jRW51bXNHZW9TZWFyY2hWaXNpYmlsaXR5IHtcclxuXHJcbiAgLy8gXHJcbiAgR1NWX09uID0gJ29uJyxcclxuXHJcbiAgLy8gXHJcbiAgR1NWX09mZiA9ICdvZmYnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBWaXN1YWxEb2NFbnVtc01hcFNjYWxlVmlzaWJpbGl0eSB7XHJcblxyXG4gIC8vIFxyXG4gIE1TVl9PbiA9ICdvbicsXHJcblxyXG4gIC8vIFxyXG4gIE1TVl9PZmYgPSAnb2ZmJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVmlzdWFsRG9jRW51bXNBdXRvRHJpbGxWaXNpYmlsaXR5IHtcclxuXHJcbiAgLy8gXHJcbiAgQURWX09uID0gJ29uJyxcclxuXHJcbiAgLy8gXHJcbiAgQURWX09mZiA9ICdvZmYnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBWaXN1YWxEb2NFbnVtc01hcFRvb2xTZWxlY3Rpb24ge1xyXG5cclxuICAvLyBcclxuICBNVF9QYW5fTWFwID0gJ3Bhbi1tYXAnLFxyXG5cclxuICAvLyBcclxuICBNVF9SZWN0YW5ndWxhcl9TZWxlY3Rpb24gPSAncmVjdGFuZ3VsYXItc2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgTVRfUmFkaWFsX1NlbGVjdGlvbiA9ICdyYWRpYWwtc2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgTVRfWm9vbV9JbiA9ICd6b29tLWluJyxcclxuXHJcbiAgLy8gXHJcbiAgTVRfWm9vbV9PdXQgPSAnem9vbS1vdXQnLFxyXG5cclxuICAvLyBcclxuICBNVF9TaW5nbGVfU2VsZWN0aW9uID0gJ3NpbmdsZS1zZWxlY3Rpb24nLFxyXG5cclxuICAvLyBcclxuICBNVF9MYXNzb19TZWxlY3Rpb24gPSAnbGFzc28tc2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgTVRfQWxsX1NlbGVjdGlvbl9Ub29scyA9ICdhbGwtc2VsZWN0aW9uLXRvb2xzJyxcclxuXHJcbiAgLy8gXHJcbiAgTVRfQXJlYV9ab29tID0gJ2FyZWEtem9vbScsXHJcblxyXG4gIC8vIFxyXG4gIE1UX05vX1Rvb2xzID0gJ25vLXRvb2xzJyxcclxuXHJcbiAgLy8gXHJcbiAgTVRfQWR2YW5jZWRfU2VsZWN0aW9uX1Rvb2xzID0gJ2FkdmFuY2VkLXNlbGVjdGlvbi10b29scycsXHJcblxyXG4gIC8vIFxyXG4gIE1UX01hcF9Ub29scyA9ICdtYXAtdG9vbHMnLFxyXG5cclxuICAvLyBcclxuICBNVF9Ob25fTWFwX1Rvb2xzID0gJ25vbi1tYXAtdG9vbHMnLFxyXG5cclxuICAvLyBcclxuICBNVF9Ub29sX01hc2sgPSAndG9vbC1tYXNrJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVmlzdWFsRG9jRW51bXNGbG9hdGluZ1Rvb2xiYXJWaXNpYmlsaXR5IHtcclxuXHJcbiAgLy8gXHJcbiAgRlRWX0F1dG8gPSAnYXV0bycsXHJcblxyXG4gIC8vIFxyXG4gIEZUVl9TaG93ID0gJ3Nob3cnLFxyXG5cclxuICAvLyBcclxuICBGVFZfSGlkZSA9ICdoaWRlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVmlzdWFsRG9jRW51bXNWaXpOYXZpZ2F0aW9uU2V0dGluZyB7XHJcblxyXG4gIC8vIFxyXG4gIE5BVl9BdXRvID0gJ2F1dG8nLFxyXG5cclxuICAvLyBcclxuICBOQVZfRml4ZWQgPSAnZml4ZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBWaXN1YWxEb2NFbnVtc1pvb21UeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgUGVyY2VudCA9ICdwZXJjZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgRW50aXJlVmlldyA9ICdlbnRpcmUtdmlldycsXHJcblxyXG4gIC8vIFxyXG4gIEZpdFdpZHRoID0gJ2ZpdC13aWR0aCcsXHJcblxyXG4gIC8vIFxyXG4gIEZpdEhlaWdodCA9ICdmaXQtaGVpZ2h0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2hlZXRTY3JvbGxEaXJlY3Rpb24ge1xyXG5cclxuICAvLyBzY3JvbGwtZmlyc3RcclxuICBTaGVldFNjcm9sbEZpcnN0ID0gJ3Njcm9sbC1maXJzdCcsXHJcblxyXG4gIC8vIHNjcm9sbC1wcmV2XHJcbiAgU2hlZXRTY3JvbGxQcmV2ID0gJ3Njcm9sbC1wcmV2JyxcclxuXHJcbiAgLy8gc2Nyb2xsLW5leHRcclxuICBTaGVldFNjcm9sbE5leHQgPSAnc2Nyb2xsLW5leHQnLFxyXG5cclxuICAvLyBzY3JvbGwtbGFzdFxyXG4gIFNoZWV0U2Nyb2xsTGFzdCA9ICdzY3JvbGwtbGFzdCdcclxufVxyXG5cclxuLy8gYWdncmVnYXRpb24gdHlwZSBmb3IgcGVyc3BlY3RpdmVzXHJcbmV4cG9ydCBlbnVtIFBlcnNwZWN0aXZlVXRpbHNBZ2dyZWdhdGVUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgUkVBTElUWSA9ICdyZWFsaXR5JyxcclxuXHJcbiAgLy8gXHJcbiAgRklSU1QgPSAnZmlyc3QtdGltZS1pbi1jdWJlJyxcclxuXHJcbiAgLy8gXHJcbiAgTEFTVCA9ICdsYXRlc3QtdGltZS1pbi1jdWJlJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1VTVE9NX0ZPUl9DVUJFID0gJ2N1c3RvbS1mb3ItY3ViZScsXHJcblxyXG4gIC8vIFxyXG4gIENVU1RPTV9QRVJfQVRUUklCVVRFID0gJ2N1c3RvbS1wZXItYXR0cmlidXRlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gWm9uZUVkZ2VNb3ZlIHtcclxuXHJcbiAgLy8gXHJcbiAgRWRnZURyYWcgPSAnZWRnZS1kcmFnJyxcclxuXHJcbiAgLy8gXHJcbiAgRWRnZVNuYXBBbGlnbiA9ICdlZGdlLXNuYXAtYWxpZ24nLFxyXG5cclxuICAvLyBcclxuICBFZGdlU25hcFBvc2l0aW9uID0gJ2VkZ2Utc25hcC1wb3NpdGlvbidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZvcm1hdENvbnRyb2xUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRkNUX05PTkUgPSAnZmN0LW5vbmUnLFxyXG5cclxuICAvLyBcclxuICBGQ1RfQ29sb3IgPSAnZmN0LWNvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0ZvbnQgPSAnZmN0LWZvbnQnLFxyXG5cclxuICAvLyBcclxuICBGQ1RfQm9yZGVyID0gJ2ZjdC1ib3JkZXInLFxyXG5cclxuICAvLyBcclxuICBGQ1RfU3Ryb2tlID0gJ2ZjdC1zdHJva2UnLFxyXG5cclxuICAvLyBcclxuICBGQ1RfTnVtYmVyID0gJ2ZjdC1udW1iZXInLFxyXG5cclxuICAvLyBcclxuICBGQ1RfTGF5b3V0ID0gJ2ZjdC1sYXlvdXQnLFxyXG5cclxuICAvLyBcclxuICBGQ1RfVGV4dCA9ICdmY3QtdGV4dCcsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9PcHRDb2xvciA9ICdmY3Qtb3B0Y29sb3InLFxyXG5cclxuICAvLyBcclxuICBGQ1RfQmFuZENvbG9yID0gJ2ZjdC1iYW5kY29sb3InLFxyXG5cclxuICAvLyBcclxuICBGQ1RfQmFuZFNpemUgPSAnZmN0LWJhbmRzaXplJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0JhbmRMZXZlbCA9ICdmY3QtYmFuZGxldmVsJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0RpdkxldmVsID0gJ2ZjdC1kaXZsZXZlbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9TcGVjVmFsc1RleHQgPSAnZmN0LXNwZWN2YWxzdGV4dCcsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9TcGVjVmFsc0dyYXBoID0gJ2ZjdC1zcGVjdmFsc2dyYXBoJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0hBbGlnbiA9ICdmY3QtaGFsaWduJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX09yaWVudCA9ICdmY3Qtb3JpZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX1JvdW5kaW5nID0gJ2ZjdC1yb3VuZGluZycsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9MaW5lRW5kID0gJ2ZjdC1saW5lZW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0xpbmVFbmRTaXplID0gJ2ZjdC1saW5lZW5kc2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9Cb2R5VHlwZSA9ICdmY3QtYm9keXR5cGUnLFxyXG5cclxuICAvLyBcclxuICBGQ1RfQWxwaGFMZXZlbCA9ICdmY3QtYWxwaGFsZXZlbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9MaW5lSW50ZXJwb2xhdGlvbiA9ICdmY3QtbGluZS1pbnRlcnBvbGF0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0xpbmVNYXJrZXJQb3NpdGlvbiA9ICdmY3QtbGluZS1tYXJrZXItcG9zaXRpb24nLFxyXG5cclxuICAvLyBcclxuICBGQ1RfTWFya0JvcmRlciA9ICdmY3QtbWFya2JvcmRlcicsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9NYXJrSGFsbyA9ICdmY3QtbWFya2hhbG8nLFxyXG5cclxuICAvLyBcclxuICBGQ1RfTWFya01hcmtlcnMgPSAnZmN0LW1hcmttYXJrZXJzJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX1JlZkxpbmVQYWxldHRlID0gJ2ZjdC1yZWZsaW5lcGFsZXR0ZScsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9SZXZlcnNlID0gJ2ZjdC1yZXZlcnNlJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX1doaXNrZXJzID0gJ2ZjdC13aGlza2VycycsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9Cb3hwbG90UGFsZXR0ZSA9ICdmY3QtYm94cGxvdHBhbGV0dGUnLFxyXG5cclxuICAvLyBcclxuICBGQ1RfU29saWRTdHJva2UgPSAnZmN0LXNvbGlkc3Ryb2tlJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0JveHBsb3RTdHlsZSA9ICdmY3QtYm94cGxvdHN0eWxlJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0JveHBsb3RDb21wb3VuZEZpbGwgPSAnZmN0LWJveHBsb3Rjb21wb3VuZGZpbGwnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBGb3JtYXRDb250cm9sRmxhZyB7XHJcblxyXG4gIC8vIFxyXG4gIEZDRl9WaXN1YWxTdHlsZXNoZWV0ID0gJ2ZjZl92aXN1YWxzdHlsZXNoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgRkNGX1BhbmVTdHlsZXNoZWV0ID0gJ2ZjZl9wYW5lc3R5bGVzaGVldCcsXHJcblxyXG4gIC8vIFxyXG4gIEZDRl9GaXhlZFNjb3BlID0gJ2ZjZl9maXhlZHNjb3BlJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNGX0FsbG93VHJhbnNwYXJlbmN5ID0gJ2ZjZl9hbGxvd3RyYW5zcGFyZW5jeSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEFwcENvbmZpZ0VudW0ge1xyXG5cclxuICAvLyBkZWZhdWx0IGRpcmVjdG9yeSB3aGVyZSBUYWJsZWF1IGZpbmRzIGRhdGEgc291cmNlcywgbG9ncywgc2hhcGVzLCBldGMuXHJcbiAgQUNTX1JlcG9zaXRvcnlEaXIgPSAncmVwb3NpdG9yeS1kaXInLFxyXG5cclxuICAvLyBhcHBsaWNhdGlvbiBkaXJlY3RvcnlcclxuICBBQ1NfQXBwbGljYXRpb25EaXIgPSAnYXBwbGljYXRpb24tZGlyJyxcclxuXHJcbiAgLy8gc2FtcGxlIHdvcmtib29rcyBkaXJlY3RvcnlcclxuICBBQ1NfU2FtcGxlc0RpciA9ICdzYW1wbGVzLWRpcidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIERlbHRhVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIERFTFRBX05PTkUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIERFTFRBX0FEREVEID0gJ2FkZGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgREVMVEFfRURJVEVEID0gJ2VkaXRlZCcsXHJcblxyXG4gIC8vIFxyXG4gIERFTFRBX1JFTU9WRUQgPSAncmVtb3ZlZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEV4dHJhY3RUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRXh0cmFjdFR5cGVfQWxsID0gJ2V4dHJhY3QtdHlwZS1hbGwnLFxyXG5cclxuICAvLyBcclxuICBFeHRyYWN0VHlwZV9Tb21lID0gJ2V4dHJhY3QtdHlwZS1zb21lJyxcclxuXHJcbiAgLy8gXHJcbiAgRXh0cmFjdFR5cGVfTm9uZSA9ICdleHRyYWN0LXR5cGUtbm9uZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEV4dHJhY3RSZWZyZXNoU3RhdHVzIHtcclxuXHJcbiAgLy8gXHJcbiAgRXh0cmFjdFJlZnJlc2hfTm9uZSA9ICdleHRyYWN0LXJlZnJlc2gtbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEV4dHJhY3RSZWZyZXNoX1BlbmRpbmcgPSAnZXh0cmFjdC1yZWZyZXNoLXBlbmRpbmcnLFxyXG5cclxuICAvLyBcclxuICBFeHRyYWN0UmVmcmVzaF9JblByb2dyZXNzID0gJ2V4dHJhY3QtcmVmcmVzaC1pbnByb2dyZXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgRXh0cmFjdFJlZnJlc2hfRG9uZSA9ICdleHRyYWN0LXJlZnJlc2gtZG9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEV4dHJhY3RSZWZyZXNoX0Vycm9yID0gJ2V4dHJhY3QtcmVmcmVzaC1lcnJvcicsXHJcblxyXG4gIC8vIFxyXG4gIEV4dHJhY3RSZWZyZXNoX0NhbmNlbGVkID0gJ2V4dHJhY3QtcmVmcmVzaC1jYW5jZWxlZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIE1hcFVuaXRTZWxlY3Rpb25FbnVtIHtcclxuXHJcbiAgLy8gXHJcbiAgTVVTX0F1dG9tYXRpYyA9ICdhdXRvbWF0aWMnLFxyXG5cclxuICAvLyBcclxuICBNVVNfTWV0cmljID0gJ21ldHJpYycsXHJcblxyXG4gIC8vIFxyXG4gIE1VU19VUyA9ICd1cydcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIERhdGFDb25uZWN0aW9uSGlzdG9yeVJlZnJlc2hUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgUlRfRlVMTCA9ICdmdWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgUlRfSU5DUkVNRU5UID0gJ2luY3JlbWVudCcsXHJcblxyXG4gIC8vIFxyXG4gIFJUX0FQUEVORF9GUk9NX0RBVEFfU09VUkNFID0gJ2FwcGVuZC1mcm9tLWRhdGEtc291cmNlJyxcclxuXHJcbiAgLy8gXHJcbiAgUlRfQVBQRU5EX0ZST01fRklMRSA9ICdhcHBlbmQtZnJvbS1maWxlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQ2FsY1N0eWxlIHtcclxuXHJcbiAgLy8gXHJcbiAgU0NFX1NUWUxFX0RFRkFVTFQgPSAnc3R5bGVfZGVmYXVsdCcsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9QUklNQVJZX0ZJRUxEID0gJ3N0eWxlX3ByaW1fZmllbGQnLFxyXG5cclxuICAvLyBcclxuICBTQ0VfU1RZTEVfU0VDT05EQVJZX0ZJRUxEID0gJ3N0eWxlX3NlY19maWVsZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9MT0NBTF9GVU5DVElPTiA9ICdzdHlsZV9sb2NhbF9mdW5jJyxcclxuXHJcbiAgLy8gXHJcbiAgU0NFX1NUWUxFX1JFTU9URV9GVU5DVElPTiA9ICdzdHlsZV9yZW1vdGVfZnVuYycsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9QQVJBTUVURVIgPSAnc3R5bGVfcGFyYW0nLFxyXG5cclxuICAvLyBcclxuICBTQ0VfU1RZTEVfQ09NTUVOVCA9ICdzdHlsZV9jb21tZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgU0NFX1NUWUxFX0lOVkFMSURfRklFTEQgPSAnc3R5bGVfaW52YWxpZF9maWVsZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9UQUJMRV9FWFBSID0gJ3N0eWxlX3RhYmxlX2V4cHInLFxyXG5cclxuICAvLyBcclxuICBTQ0VfU1RZTEVfU1RSSU5HID0gJ3N0eWxlX3N0cmluZycsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9ESVNBQkxFRCA9ICdzdHlsZV9kaXNhYmxlZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9EUkFHX09WRVJfRklFTEQgPSAnc3R5bGVfZHJhZ19vdmVyX2ZpZWxkJyxcclxuXHJcbiAgLy8gXHJcbiAgU0NFX1NUWUxFX0RSQUdfT1ZFUl9TRUwgPSAnc3R5bGVfZHJhZ19vdmVyX3NlbCcsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9TRUxFQ1RJT04gPSAnc3R5bGVfc2VsZWN0aW9uJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRnVuY3Rpb25Hcm91cCB7XHJcblxyXG4gIC8vIFxyXG4gIEZHX05VTUVSSUMgPSAnbnVtJyxcclxuXHJcbiAgLy8gXHJcbiAgRkdfU1RSSU5HID0gJ3N0cicsXHJcblxyXG4gIC8vIFxyXG4gIEZHX0RBVEUgPSAnZGF0ZScsXHJcblxyXG4gIC8vIFxyXG4gIEZHX0NBU1QgPSAnY2FzdCcsXHJcblxyXG4gIC8vIFxyXG4gIEZHX0xPR0lDQUwgPSAnbG9naWMnLFxyXG5cclxuICAvLyBcclxuICBGR19BR0dSRUdBVEUgPSAnYWdnJyxcclxuXHJcbiAgLy8gXHJcbiAgRkdfT1BFUkFUT1IgPSAnb3BlcicsXHJcblxyXG4gIC8vIFxyXG4gIEZHX1NZU1RFTSA9ICdzeXMnLFxyXG5cclxuICAvLyBcclxuICBGR19QQVNTVEhSVSA9ICdwYXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgRkdfU1BFQ0lBTCA9ICdzcGVjJyxcclxuXHJcbiAgLy8gXHJcbiAgRkdfVVNFUiA9ICd1c2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgRkdfVEFCTEVDQUxDID0gJ3RhYmxlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRnVuY3Rpb25BcmdUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRkFUX05PTkUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEZBVF9CT09MID0gJ2Jvb2xlYW4nLFxyXG5cclxuICAvLyBcclxuICBGQVRfUkVBTCA9ICdyZWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgRkFUX0lOVCA9ICdpbnRlZ2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgRkFUX1NUUiA9ICdzdHInLFxyXG5cclxuICAvLyBcclxuICBGQVRfREFURVRJTUUgPSAnZGF0ZXRpbWUnLFxyXG5cclxuICAvLyBcclxuICBGQVRfREFURSA9ICdkYXRlJyxcclxuXHJcbiAgLy8gXHJcbiAgRkFUX0xPQ0FMU1RSID0gJ2xvY3N0cicsXHJcblxyXG4gIC8vIFxyXG4gIEZBVF9OVUxMID0gJ25pbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZBVF9FUlJPUiA9ICdlcnInLFxyXG5cclxuICAvLyBcclxuICBGQVRfQU5ZID0gJ2FueScsXHJcblxyXG4gIC8vIFxyXG4gIEZBVF9CSU4gPSAnYmluJyxcclxuXHJcbiAgLy8gXHJcbiAgRkFUX1RVUExFID0gJ3R1cCcsXHJcblxyXG4gIC8vIFxyXG4gIEZBVF9MT0NBTFJFQUwgPSAnbG9jcmVhbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZBVF9MT0NBTElOVCA9ICdsb2NpbnQnLFxyXG5cclxuICAvLyBcclxuICBGQVRfU1BBVElBTCA9ICdzcGF0aWFsJ1xyXG59XHJcblxyXG4vLyBsb2dpY2FsIHBvc2l0aW9uIG9mIGFjdGl2aXR5IHN1Y2ggYXMgQmVnYW4gb3IgRW5kZWRcclxuZXhwb3J0IGVudW0gQWN0aXZpdHlEaXNwb3NpdGlvbiB7XHJcblxyXG4gIC8vIG5vIGFjdGl2aXR5XHJcbiAgTm9EaXNwb3NpdGlvbiA9ICduby1kaXNwb3NpdGlvbicsXHJcblxyXG4gIC8vIGFjdGl2aXR5IGhhcyBiZWdhblxyXG4gIEJlZ2FuID0gJ2JlZ2FuJyxcclxuXHJcbiAgLy8gYWN0aXZpdHkgaGFzIGVuZGVkXHJcbiAgRW5kZWQgPSAnZW5kZWQnLFxyXG5cclxuICAvLyBhY3Rpdml0eSBoYXMgb2NjdXJyZWQgYnV0IG5laXRoZXIgYmVnYW4gbm9yIGVuZGVkIGlzIGtub3duXHJcbiAgT2NjdXJyZWQgPSAnb2NjdXJyZWQnLFxyXG5cclxuICAvLyBpbmRlZmluaXRlIGFjdGl2aXR5IGlzIGV4ZWN1dGluZ1xyXG4gIEFjdGl2ZSA9ICdhY3RpdmUnLFxyXG5cclxuICAvLyBpbmRlZmluaXRlIGFjdGl2aXR5IGhhcyB5aWVsZGVkIChlLmcuLCBpZGxlLCB3YWl0aW5nLCBzbGVlcGluZywgcXVpZXNjZSlcclxuICBJZGxlID0gJ2lkbGUnXHJcbn1cclxuXHJcbi8vIHJlc3VsdCBvZiBhY3Rpdml0eSBzdWNoIGFzIFN1Y2Nlc3MgYW5kIEZhaWx1cmVcclxuZXhwb3J0IGVudW0gQWN0aXZpdHlSZXN1bHQge1xyXG5cclxuICAvLyBhY3Rpdml0eSBoYXMgbm8gcmVzdWx0XHJcbiAgTm9SZXN1bHQgPSAnbm8tcmVzdWx0JyxcclxuXHJcbiAgLy8gYWN0aXZpdHkgZW5kZWQgd2l0aCBzdWNjZXNzXHJcbiAgU3VjY2VlZGVkID0gJ3N1Y2NlZWRlZCcsXHJcblxyXG4gIC8vIGFjdGl2aXR5IGVuZGVkIHdpdGggZmFpbHVyZVxyXG4gIEZhaWxlZCA9ICdmYWlsdXJlJyxcclxuXHJcbiAgLy8gYWN0aXZpdHkgZW5kZWQgd2l0aCB0aHJvd24gZXhjZXB0aW9uXHJcbiAgVGhyZXdFeGNlcHRpb24gPSAndGhyZXctZXhjZXB0aW9uJyxcclxuXHJcbiAgLy8gYWN0aXZpdHkgZW5kZWQgZHVlIHRvIGEgdGltZW91dFxyXG4gIFRpbWVkT3V0ID0gJ3RpbWVkLW91dCcsXHJcblxyXG4gIC8vIGFjdGl2aXR5IHdhcyBjYW5jZWxlZFxyXG4gIENhbmNlbGVkID0gJ2NhbmNlbGVkJyxcclxuXHJcbiAgLy8gYWN0aXZpdHkgaGFzIHVua25vd24gcmVzdWx0XHJcbiAgVW5rbm93blJlc3VsdCA9ICd1bmtub3duLXJlc3VsdCdcclxufVxyXG5cclxuLy8gdHlwZSBvZiBhbmFseXRpY3Mgb2JqZWN0XHJcbmV4cG9ydCBlbnVtIEFuYWx5dGljc09iamVjdFR5cGUge1xyXG5cclxuICAvLyBcclxuICBDb25zdGFudFJlZmVyZW5jZUxpbmUgPSAnY29uc3RhbnQtcmVmZXJlbmNlLWxpbmUnLFxyXG5cclxuICAvLyBcclxuICBBdmVyYWdlUmVmZXJlbmNlTGluZSA9ICdhdmVyYWdlLXJlZmVyZW5jZS1saW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgQ3VzdG9tUmVmZXJlbmNlTGluZSA9ICdjdXN0b20tcmVmZXJlbmNlLWxpbmUnLFxyXG5cclxuICAvLyBcclxuICBDdXN0b21SZWZlcmVuY2VCYW5kID0gJ2N1c3RvbS1yZWZlcmVuY2UtYmFuZCcsXHJcblxyXG4gIC8vIFxyXG4gIEF2ZXJhZ2VBbmROaW5ldHlGaXZlID0gJ2F2ZXJhZ2UtYW5kLW5pbmV0eS1maXZlJyxcclxuXHJcbiAgLy8gXHJcbiAgTWVkaWFuQW5kTmluZXR5Rml2ZSA9ICdtZWRpYW4tYW5kLW5pbmV0eS1maXZlJyxcclxuXHJcbiAgLy8gXHJcbiAgQ3VzdG9tRGlzdHJpYnV0aW9uQmFuZCA9ICdjdXN0b20tZGlzdHJpYnV0aW9uLWJhbmQnLFxyXG5cclxuICAvLyBcclxuICBCb3hwbG90ID0gJ2JveHBsb3QnLFxyXG5cclxuICAvLyBcclxuICBDdXN0b21Cb3hwbG90ID0gJ2N1c3RvbS1ib3hwbG90JyxcclxuXHJcbiAgLy8gXHJcbiAgVG90YWxzID0gJ3RvdGFscycsXHJcblxyXG4gIC8vIFxyXG4gIFRyZW5kTGluZU9iamVjdCA9ICd0cmVuZC1saW5lLW9iamVjdCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcmVjYXN0ID0gJ2ZvcmVjYXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgQ2x1c3RlciA9ICdjbHVzdGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgT3V0bGllciA9ICdvdXRsaWVyJyxcclxuXHJcbiAgLy8gXHJcbiAgTWVkaWFuQW5kUXVhcnRpbGVzID0gJ21lZGlhbi1hbmQtcXVhcnRpbGVzJyxcclxuXHJcbiAgLy8gXHJcbiAgVW5rbm93biA9ICd1bmtub3duJ1xyXG59XHJcblxyXG4vLyB0YXJnZXQgd2hlcmUgYW4gYW5hbHl0aWNzIG9iamVjdCBtYXkgYmUgZHJvcHBlZFxyXG5leHBvcnQgZW51bSBBbmFseXRpY3NPYmplY3REcm9wVGFyZ2V0IHtcclxuXHJcbiAgLy8gXHJcbiAgVGFyZ2V0Q2VsbCA9ICd0YXJnZXQtY2VsbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRhcmdldFBhbmUgPSAndGFyZ2V0LXBhbmUnLFxyXG5cclxuICAvLyBcclxuICBUYXJnZXRUYWJsZSA9ICd0YXJnZXQtdGFibGUnLFxyXG5cclxuICAvLyBcclxuICBUYXJnZXRMaW5lYXIgPSAndGFyZ2V0LWxpbmVhcicsXHJcblxyXG4gIC8vIFxyXG4gIFRhcmdldExvZyA9ICd0YXJnZXQtbG9nJyxcclxuXHJcbiAgLy8gXHJcbiAgVGFyZ2V0RXhwb25lbnRpYWwgPSAndGFyZ2V0LWV4cG9uZW50aWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgVGFyZ2V0UG9seW5vbWlhbCA9ICd0YXJnZXQtcG9seW5vbWlhbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRhcmdldFBvd2VyID0gJ3RhcmdldC1wb3dlcicsXHJcblxyXG4gIC8vIFxyXG4gIFRhcmdldEZvcmVjYXN0ID0gJ3RhcmdldC1mb3JlY2FzdCcsXHJcblxyXG4gIC8vIFxyXG4gIFRhcmdldENsdXN0ZXIgPSAndGFyZ2V0LWNsdXN0ZXInLFxyXG5cclxuICAvLyBcclxuICBUYXJnZXRPdXRsaWVyID0gJ3RhcmdldC1vdXRsaWVyJyxcclxuXHJcbiAgLy8gXHJcbiAgVGFyZ2V0U3VidG90YWxzID0gJ3RhcmdldC1zdWJ0b3RhbHMnLFxyXG5cclxuICAvLyBcclxuICBUYXJnZXRDb2x1bW5Ub3RhbHMgPSAndGFyZ2V0LWNvbHVtbi10b3RhbHMnLFxyXG5cclxuICAvLyBcclxuICBUYXJnZXRSb3dUb3RhbHMgPSAndGFyZ2V0LXJvdy10b3RhbHMnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBDYWxjQXBwbHlSZXN1bHQge1xyXG5cclxuICAvLyBjYXB0aW9uIGZvciBuZXcgY2FsY3VsYXRpb24gaXMgaW52YWxpZFxyXG4gIElOVkFMSURfQ0FQVElPTiA9ICdpbnZhbGlkLWNhcHRpb24tZm9yLW5ldy1jYWxjJyxcclxuXHJcbiAgLy8gZm9ybXVsYSBpcyBpbnZhbGlkXHJcbiAgSU5WQUxJRF9GT1JNVUxBID0gJ2ludmFsaWQtZm9ybXVsYScsXHJcblxyXG4gIC8vIHN1Y2Nlc3NmdWxseSBhcHBsaWVkXHJcbiAgU1VDQ0VFRCA9ICdzdWNjZWVkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1cyB7XHJcblxyXG4gIC8vIFxyXG4gIFVJQXV0b21hdGlvbkNvbW1hbmRTdGF0dXNfU3VjY2VzcyA9ICdzdWNjZXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1c19VbnN1cHBvcnRlZENvbnRyb2xUeXBlRXJyb3IgPSAndW5zdXBwb3J0ZWQtY29udHJvbC10eXBlLWVycm9yJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1c19VbnN1cHBvcnRlZEFjdGlvbkVycm9yID0gJ3Vuc3VwcG9ydGVkLWFjdGlvbi1lcnJvcicsXHJcblxyXG4gIC8vIFxyXG4gIFVJQXV0b21hdGlvbkNvbW1hbmRTdGF0dXNfQ29tcG9uZW50Tm90Rm91bmRFcnJvciA9ICdjb21wb25lbnQtbm90LWZvdW5kLWVycm9yJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1c19Vbmtub3duRXJyb3IgPSAndW5rbm93bi1lcnJvcicsXHJcblxyXG4gIC8vIFxyXG4gIFVJQXV0b21hdGlvbkNvbW1hbmRTdGF0dXNfU2F2ZUVycm9yID0gJ3NhdmUtZXJyb3InLFxyXG5cclxuICAvLyBcclxuICBVSUF1dG9tYXRpb25Db21tYW5kU3RhdHVzX0JhZElucHV0RXJyb3IgPSAnYmFkLWlucHV0LWVycm9yJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRHJvcFdoZW4ge1xyXG5cclxuICAvLyBcclxuICBEcm9wV2hlbk5ldmVyID0gJ25ldmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRHJvcFdoZW5BbHdheXMgPSAnYWx3YXlzJyxcclxuXHJcbiAgLy8gXHJcbiAgRHJvcFdoZW5TZWxlY3RlZCA9ICd3aGVuLXNlbGVjdGVkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVmFsdWVEb21haW5UeXBlIHtcclxuXHJcbiAgLy8gaW52YWxpZCBkb21haW5cclxuICBET01BSU5fSU5WQUxJRCA9ICdkb21haW4taW52YWxpZCcsXHJcblxyXG4gIC8vIHVzZXIgY2FuIHR5cGUgaW4gYW55IHZhbHVlIHRoZXkgcGxlYXNlXCIgMVxyXG4gIERPTUFJTl9GUkVFX0VOVFJZID0gJ2RvbWFpbi1mcmVlLWVudHJ5JyxcclxuXHJcbiAgLy8gdXNlciBtdXN0IHNlbGVjdCBhIHZhbHVlIGZyb20gdGhlIGxpc3RcclxuICBET01BSU5fTElTVCA9ICdkb21haW4tbGlzdCcsXHJcblxyXG4gIC8vIHVzZXIgY2FuIGZyZWVseSBlbnRlciB2YWx1ZXMgYXMgbG9uZyBhcyB0aGV5IGFyZSBhYm92ZSBtaW4gdmFsdWVcclxuICBET01BSU5fTUlOID0gJ2RvbWFpbi1taW4nLFxyXG5cclxuICAvLyB1c2VyIGNhbiBmcmVlbHkgZW50ZXIgdmFsdWVzIGFzIGxvbmcgYXMgdGhleSBhcmUgYmVsb3cgbWF4IHZhbHVlXHJcbiAgRE9NQUlOX01BWCA9ICdkb21haW4tbWF4J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gT3BlcmF0aW9uVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIEVxdWFscyA9ICdlcXVhbHMnLFxyXG5cclxuICAvLyBcclxuICBOb3RFcXVhbHMgPSAnbm90LWVxdWFscycsXHJcblxyXG4gIC8vIFxyXG4gIExlc3NUaGFuID0gJ2xlc3MtdGhhbicsXHJcblxyXG4gIC8vIFxyXG4gIExlc3NUaGFuRXF1YWwgPSAnbGVzcy10aGFuLWVxdWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgR3JlYXRlclRoYW4gPSAnZ3JlYXRlci10aGFuJyxcclxuXHJcbiAgLy8gXHJcbiAgR3JlYXRlclRoYW5FcXVhbCA9ICdncmVhdGVyLXRoYW4tZXF1YWwnLFxyXG5cclxuICAvLyBcclxuICBSYW5nZUluY2x1c2l2ZSA9ICdyYW5nZS1pbmNsdXNpdmUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBEcm9wRmllbGRSZXN1bHQge1xyXG5cclxuICAvLyBcclxuICBEcm9wRmllbGRObyA9ICdubycsXHJcblxyXG4gIC8vIFxyXG4gIERyb3BGaWVsZFllcyA9ICd5ZXMnLFxyXG5cclxuICAvLyBcclxuICBEcm9wRmllbGRMb2NrID0gJ2xvY2snLFxyXG5cclxuICAvLyBcclxuICBEcm9wRmllbGRGaWx0ZXIgPSAnZmlsdGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRHJvcEZpZWxkRGlzYWdncmVnYXRlID0gJ2Rpc2FnZ3JlZ2F0ZSdcclxufVxyXG5cclxuLy8gcmVzb2x1dGlvbiB0eXBlIGZvciBhIG5hbWUgY29uZmxpY3RcclxuZXhwb3J0IGVudW0gTmFtZUNvbmZsaWN0UmVzb2x1dGlvbiB7XHJcblxyXG4gIC8vIFxyXG4gIE5SQ19Vc2VPbGQgPSAndXNlLW9sZCcsXHJcblxyXG4gIC8vIFxyXG4gIE5SQ19Vc2VOZXcgPSAndXNlLW5ldycsXHJcblxyXG4gIC8vIFxyXG4gIE5SQ19SZW5hbWVOZXcgPSAncmVuYW1lLW5ldydcclxufVxyXG5cclxuLy8gdXNlIGVpdGhlciBhIHN0cmluZyBzZXBhcmF0b3Igb3IgYSBzZXQgbnVtYmVyIG9mIGNoYXJhY3RlcnNcclxuZXhwb3J0IGVudW0gU2VwYXJhdG9yVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNlcGFyYXRvclR5cGVfX1N0cmluZ1NlcGFyYXRvciA9ICdzdHJpbmctc2VwYXJhdG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgU2VwYXJhdG9yVHlwZV9fQ2hhcmFjdGVyQ291bnRTZXBhcmF0b3IgPSAnY2hhcmFjdGVyLWNvdW50LXNlcGFyYXRvcidcclxufVxyXG5cclxuLy8gc3BsaXQgZ2xvYmFsbHkgb3Igb25seSBvbiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvciBvbmx5IG9uIHRoZSBsYXN0IG9jY3VycmVuY2VcclxuZXhwb3J0IGVudW0gU3BsaXRNb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgU3BsaXRNb2RlX19DU19BTEwgPSAnc3BsaXQtYWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgU3BsaXRNb2RlX19DU19GSVJTVCA9ICdzcGxpdC1maXJzdCcsXHJcblxyXG4gIC8vIFxyXG4gIFNwbGl0TW9kZV9fQ1NfTEFTVCA9ICdzcGxpdC1sYXN0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTm9kZVNlbGVjdGlvblR5cGUge1xyXG5cclxuICAvLyBcclxuICBOb2RlU2VsZWN0aW9uX05vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIE5vZGVTZWxlY3Rpb25fU2luZ2xlUm93ID0gJ3NpbmdsZS1yb3cnLFxyXG5cclxuICAvLyBcclxuICBOb2RlU2VsZWN0aW9uX011bHRpUm93ID0gJ211bHRpLXJvdycsXHJcblxyXG4gIC8vIFxyXG4gIE5vZGVTZWxlY3Rpb25fU2luZ2xlQ29sdW1uID0gJ3NpbmdsZS1jb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBOb2RlU2VsZWN0aW9uX011bHRpQ29sdW1uID0gJ211bHRpLWNvbHVtbicsXHJcblxyXG4gIC8vIFxyXG4gIE5vZGVTZWxlY3Rpb25fTWl4ZWQgPSAnbWl4ZWQnXHJcbn1cclxuXHJcbi8vIGljb25zIGZvciBBY3Rpb257U291cmNlL0Rlc3R9Q29tYm9cclxuZXhwb3J0IGVudW0gU291cmNlRGVzdEljb24ge1xyXG5cclxuICAvLyBcclxuICBTRElfRGF0YVNvdXJjZSA9ICdkYXRhLXNvdXJjZScsXHJcblxyXG4gIC8vIFxyXG4gIFNESV9Xb3Jrc2hlZXQgPSAnd29ya3NoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgU0RJX0Rhc2hib2FyZCA9ICdkYXNoYm9hcmQnLFxyXG5cclxuICAvLyBcclxuICBTRElfQWxsID0gJ2FsbCdcclxufVxyXG5cclxuLy8gcG9zaXRpb24gYW5kIG9yaWVudGF0aW9uIG9mIGxlZ2VuZHMgb24gYSBzaGVldFxyXG5leHBvcnQgZW51bSBMZWdlbmRMYXlvdXQge1xyXG5cclxuICAvLyBcclxuICBMTF9SaWdodFZlcnRpY2FsID0gJ3JpZ2h0LXZlcnRpY2FsJyxcclxuXHJcbiAgLy8gXHJcbiAgTExfUmlnaHRIb3Jpem9udGFsID0gJ3JpZ2h0LWhvcml6b250YWwnLFxyXG5cclxuICAvLyBcclxuICBMTF9Cb3R0b21WZXJ0aWNhbCA9ICdib3R0b20tdmVydGljYWwnLFxyXG5cclxuICAvLyBcclxuICBMTF9Cb3R0b21Ib3Jpem9udGFsID0gJ2JvdHRvbS1ob3Jpem9udGFsJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gR2V0SnNvblJlc3BvbnNlRW51bSB7XHJcblxyXG4gIC8vIHRoZSBqc29uIHJlcG9uc2UgZXhpc3RzIGFuZCBpcyB2YWxpZFxyXG4gIEpTT05fT0sgPSAnb2snLFxyXG5cclxuICAvLyB0aGUgc2hlZXQgc3BlY2lmaWVkIGlzIG5vdCB2YWxpZFxyXG4gIEpTT05fTk9fU0hFRVQgPSAnbm8tc2hlZXQnLFxyXG5cclxuICAvLyB0aGUgZmllbGQgaWQgaXMgaW52YWxpZCBmb3IgdGhpcyBmaWx0ZXJcclxuICBKU09OX0lOVkFMSURfRklFTEQgPSAnaW52YWxpZC1maWVsZCdcclxufVxyXG5cclxuLy8gY2xpZW50IG1ldHJpYyBkZXNjcmlwdGlvbnNcclxuZXhwb3J0IGVudW0gQ2xpZW50TWV0cmljIHtcclxuXHJcbiAgLy8gVW5rbm93biBNZXRyaWNcclxuICBDTV9Vbmtub3duID0gJ1VOS05XTicsXHJcblxyXG4gIC8vIEJvb3RzdHJhcCBSZXF1ZXN0XHJcbiAgQ01fQm9vdHN0cmFwUmVxdWVzdCA9ICdCVFNUUlAnLFxyXG5cclxuICAvLyBQcm9jZXNzIFByaW1hcnkgUGF5bG9hZFxyXG4gIENNX1Byb2Nlc3NQcmltYXJ5UGF5bG9hZCA9ICdQUk9QUkknLFxyXG5cclxuICAvLyBQcm9jZXNzIFNlY29uZGFyeSBQYXlsb2FkXHJcbiAgQ01fUHJvY2Vzc1NlY29uZGFyeVBheWxvYWQgPSAnUFJPU0VDJyxcclxuXHJcbiAgLy8gSW5pdGlhbGl6ZSBNb2RlbHNcclxuICBDTV9Jbml0aWFsaXplTW9kZWxzID0gJ01ETElOSScsXHJcblxyXG4gIC8vIEhhbmRsZSBNb2RlbCBFdmVudHNcclxuICBDTV9IYW5kbGVNb2RlbEV2ZW50cyA9ICdNRExFVlQnLFxyXG5cclxuICAvLyBFeGVjdXRlIExvY2FsIENvbW1hbmRcclxuICBDTV9FeGVjdXRlTG9jYWxDb21tYW5kID0gJ0VYRUxPQycsXHJcblxyXG4gIC8vIEV4ZWN1dGUgUmVtb3RlIENvbW1hbmRcclxuICBDTV9FeGVjdXRlUmVtb3RlQ29tbWFuZCA9ICdFWEVSRU0nLFxyXG5cclxuICAvLyBQcm9jZXNzIExvY2FsIENvbW1hbmQgUmVzcG9uc2VcclxuICBDTV9Qcm9jZXNzTG9jYWxSZXNwb25zZSA9ICdQUk9MT0MnLFxyXG5cclxuICAvLyBQcm9jZXNzIFJlbW90ZSBDb21tYW5kIFJlc3BvbnNlXHJcbiAgQ01fUHJvY2Vzc1JlbW90ZVJlc3BvbnNlID0gJ1BST1JFTScsXHJcblxyXG4gIC8vIFJlbmRlciBQYW5ldGFibGVcclxuICBDTV9SZW5kZXJQYW5ldGFibGUgPSAnUk5EUlBUJyxcclxuXHJcbiAgLy8gUmVuZGVyIFJlZ2lvblxyXG4gIENNX1JlbmRlclJlZ2lvbiA9ICdSTkRSUkcnLFxyXG5cclxuICAvLyBSdW50aW1lIG1vZGVsIHByZXNtb2RlbCBjb252ZXJzaW9uXHJcbiAgQ01fUnVudGltZUNvbnZlcnNpb24gPSAnUlRDT05WJyxcclxuXHJcbiAgLy8gQ2xpZW50IExvYWRlZFxyXG4gIENNX0NsaWVudExvYWRlZCA9ICdDTE5UTEQnLFxyXG5cclxuICAvLyBBcHBsaWNhdGlvbiBTdGFydHVwXHJcbiAgQ01fQXBwbGljYXRpb25TdGFydHVwID0gJ0FQUFNUUicsXHJcblxyXG4gIC8vIEFwcGxpY2F0aW9uIEludGVyYWN0aXZlXHJcbiAgQ01fQXBwbGljYXRpb25JbnRlcmFjdGl2ZSA9ICdBUFBJTlQnLFxyXG5cclxuICAvLyBBbGwgWm9uZXMgTG9hZGVkXHJcbiAgQ01fQWxsWm9uZXNMb2FkZWQgPSAnQUxMWk5TJyxcclxuXHJcbiAgLy8gVG9vbGJhciBMYXlvdXRcclxuICBDTV9Ub29sYmFyTGF5b3V0ID0gJ1RCUkxBWScsXHJcblxyXG4gIC8vIFRvb2xiYXIgSGFuZGxlTmV3VG9vbGJhclxyXG4gIENNX1Rvb2xiYXJIYW5kbGVOZXdUb29sYmFyID0gJ1RCUkhOVCcsXHJcblxyXG4gIC8vIFRvb2xiYXIgQWRkVG9vbGJhclxyXG4gIENNX1Rvb2xiYXJBZGRUb29sYmFyID0gJ1RCUkFERCcsXHJcblxyXG4gIC8vIFRvb2xiYXIgSGFuZGxlUmVzaXplXHJcbiAgQ01fVG9vbGJhckhhbmRsZVJlc2l6ZSA9ICdUQlJIUkUnLFxyXG5cclxuICAvLyBKYXZhU2NyaXB0IE1vZHVsZSBsb2FkZWQgYXN5bmNocm9ub3VzbHlcclxuICBDTV9Nb2R1bGVMb2FkZWQgPSAnTURMT0FEJ1xyXG59XHJcblxyXG4vLyByZXN1bHQgY29kZSBmb3IgaW1hZ2VzIGVkaXQgb3BlcmF0aW9uXHJcbmV4cG9ydCBlbnVtIEltYWdlc0VkaXRSZXN1bHRDb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgSUVSX1N1Y2Nlc3MgPSAnc3VjY2VzcycsXHJcblxyXG4gIC8vIFxyXG4gIElFUl9FbXB0eUNhcHRpb24gPSAnZW1wdHktY2FwdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIElFUl9EdXBsaWNhdGVDYXB0aW9uID0gJ2R1cGxpY2F0ZS1jYXB0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgSUVSX0ZhaWxlZFZhbGlkYXRpb24gPSAnZmFpbGVkLXZhbGlkYXRpb24nLFxyXG5cclxuICAvLyBcclxuICBJRVJfSW52YWxpZFVSTCA9ICdpbnZhbGlkLXVybCcsXHJcblxyXG4gIC8vIFxyXG4gIElFUl9FbXB0eVhSYW5nZSA9ICdlbXB0eS14LXJhbmdlJyxcclxuXHJcbiAgLy8gXHJcbiAgSUVSX0VtcHR5WVJhbmdlID0gJ2VtcHR5LXktcmFuZ2UnLFxyXG5cclxuICAvLyBcclxuICBJRVJfTm9JbWFnZVByZXZpZXcgPSAnbm8taW1hZ2UtcHJldmlldycsXHJcblxyXG4gIC8vIFxyXG4gIElFUl9SZW5kZXJFeGNlcHRpb24gPSAncmVuZGVyLWV4Y2VwdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIElFUl9UYWJsZWF1RXhjZXB0aW9uID0gJ3RhYmxlYXUtZXhjZXB0aW9uJ1xyXG59XHJcblxyXG4vLyB0aGUgc291cmNlIG9mIHRoZSB1bmRlcmx5aW5nIGRhdGEgdXNlZCBieSB0aGUgZGF0YSBwcm92aWRlclxyXG5leHBvcnQgZW51bSBEYXRhUHJvdmlkZXJUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRFBfRGF0YXNvdXJjZSA9ICdkYXRhc291cmNlJyxcclxuXHJcbiAgLy8gXHJcbiAgRFBfU2VsZWN0aW9uID0gJ3NlbGVjdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIERQX1RhYmxlID0gJ3RhYmxlJyxcclxuXHJcbiAgLy8gXHJcbiAgRFBfU1FMUXVlcnkgPSAnc3FsLXF1ZXJ5J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRGFzaGJvYXJkRGV2aWNlTGF5b3V0IHtcclxuXHJcbiAgLy8gXHJcbiAgRGFzaGJvYXJkRGV2aWNlTGF5b3V0X0RlZmF1bHQgPSAnZGVmYXVsdCcsXHJcblxyXG4gIC8vIFxyXG4gIERhc2hib2FyZERldmljZUxheW91dF9EZXNrdG9wID0gJ2Rlc2t0b3AnLFxyXG5cclxuICAvLyBcclxuICBEYXNoYm9hcmREZXZpY2VMYXlvdXRfVGFibGV0ID0gJ3RhYmxldCcsXHJcblxyXG4gIC8vIFxyXG4gIERhc2hib2FyZERldmljZUxheW91dF9QaG9uZSA9ICdwaG9uZSdcclxufVxyXG5cclxuLy8gd2hvIGlzIGNhbGxpbmcgdGhlIGRldmljZSBkZXRlY3Rpb24gbG9naWNcclxuZXhwb3J0IGVudW0gRGV2aWNlU291cmNlIHtcclxuXHJcbiAgLy8gTm90aGluZyBzcGVjaWFsIGFib3V0IHRoZSBjYWxsZXIgdG8gdGhlIGRldGVjdGlvbiBsb2dpYy4gVGhpcyBtZWFucyBpdCBpcyB0aGUgd2ViIGJyb3dzZXIuXHJcbiAgRGV2aWNlU291cmNlX1Vua25vd24gPSAndW5rbm93bicsXHJcblxyXG4gIC8vIHRoZSBzbmFwc2hvdCBzZXJ2aWNlIGZvciB0aGUgbW9iaWxlIGFwcFxyXG4gIERldmljZVNvdXJjZV9TbmFwc2hvdFNlcnZpY2UgPSAnc25hcHNob3Qtc3J2JyxcclxuXHJcbiAgLy8gdGhlIDpkZXZpY2UgdXJsIHBhcmFtZXRlclxyXG4gIERldmljZVNvdXJjZV9VcmxQYXJhbSA9ICd1cmwtcGFyYW0nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBEYXNoYm9hcmRTaXppbmdEaW1lbnNpb24ge1xyXG5cclxuICAvLyBcclxuICBOb0RpbWVuc2lvbiA9ICdubycsXHJcblxyXG4gIC8vIFxyXG4gIE1pbldpZHRoRGltZW5zaW9uID0gJ21pbndpZHRoJyxcclxuXHJcbiAgLy8gXHJcbiAgTWluSGVpZ2h0RGltZW5zaW9uID0gJ21pbmhlaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIE1heFdpZHRoRGltZW5zaW9uID0gJ21heHdpZHRoJyxcclxuXHJcbiAgLy8gXHJcbiAgTWF4SGVpZ2h0RGltZW5zaW9uID0gJ21heGhlaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIEZpeGVkV2lkdGhEaW1lbnNpb24gPSAnZml4ZWR3aWR0aCcsXHJcblxyXG4gIC8vIFxyXG4gIEZpeGVkSGVpZ2h0RGltZW5zaW9uID0gJ2ZpeGVkaGVpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgU2Nyb2xsYWJsZUhlaWdodERpbWVuc2lvbiA9ICdzY3JvbGxhYmxlaGVpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgTWluRGltZW5zaW9ucyA9ICdtaW5zJyxcclxuXHJcbiAgLy8gXHJcbiAgTWF4RGltZW5zaW9ucyA9ICdtYXhzJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRmxpcGJvYXJkTmF2VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIENhcHRpb24gPSAnY2FwdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIE51bWJlciA9ICdudW1iZXInLFxyXG5cclxuICAvLyBcclxuICBEb3QgPSAnZG90JyxcclxuXHJcbiAgLy8gXHJcbiAgQXJyb3dPbmx5ID0gJ2Fycm93b25seSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIERhc2hib2FyZFNpemluZ01vZGUge1xyXG5cclxuICAvLyBcclxuICBVbnNwZWNpZmllZFNpemluZyA9ICd1bnNwZWNpZmllZCcsXHJcblxyXG4gIC8vIFxyXG4gIEF1dG9tYXRpY1NpemluZyA9ICdhdXRvbWF0aWMnLFxyXG5cclxuICAvLyBcclxuICBGaXhlZFNpemluZyA9ICdmaXhlZCcsXHJcblxyXG4gIC8vIFxyXG4gIFJhbmdlU2l6aW5nID0gJ3JhbmdlJyxcclxuXHJcbiAgLy8gXHJcbiAgVlNjcm9sbFNpemluZyA9ICd2c2Nyb2xsJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gR3JpZE92ZXJsYXlNb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgR09NX0F1dG9tYXRpYyA9ICdnb20tYXV0b21hdGljJyxcclxuXHJcbiAgLy8gXHJcbiAgR09NX09uID0gJ2dvbS1vbicsXHJcblxyXG4gIC8vIFxyXG4gIEdPTV9PZmYgPSAnZ29tLW9mZidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZSB7XHJcblxyXG4gIC8vIFxyXG4gIEZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZV9SZXBsYWNlRmllbGQgPSAncmVwbGFjZS1maWVsZC11c2UtY2FzZScsXHJcblxyXG4gIC8vIFxyXG4gIEZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZV9DcmVhdGVJZGVudGl0eVNldCA9ICdjcmVhdGUtaWRlbnRpdHktc2V0JyxcclxuXHJcbiAgLy8gXHJcbiAgRmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlX0VkaXREYXRhc3JvdWNlQWxpYXNlcyA9ICdlZGl0LWRhdGFzb3VyY2UtYWxpYXNlcy11c2UtY2FzZScsXHJcblxyXG4gIC8vIFxyXG4gIEZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZV9FZGl0RmlsdGVycyA9ICdlZGl0LWZpbHRlcnMtdXNlLWNhc2UnLFxyXG5cclxuICAvLyBcclxuICBGaWVsZFBpY2tlckRpYWxvZ1VzZUNhc2VfRXh0cmFjdEZpbHRlciA9ICdpbmNyZW1lbnRhbC1leHRyYWN0LXVzZS1jYXNlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2lkZVR5cGUge1xyXG5cclxuICAvLyBcclxuICBTVF9Ub3AgPSAndG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfUmlnaHQgPSAncmlnaHQnLFxyXG5cclxuICAvLyBcclxuICBTVF9Cb3R0b20gPSAnYm90dG9tJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfTGVmdCA9ICdsZWZ0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gV29ya2dyb3VwUHVibGlzaEVycm9yVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIEVBX05vbmUgPSAnZWEtbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEVBX1dhcm5pbmcgPSAnZWEtd2FybmluZycsXHJcblxyXG4gIC8vIFxyXG4gIEVBX1Byb21wdCA9ICdlYS1wcm9tcHQnLFxyXG5cclxuICAvLyBcclxuICBFQV9JbmZvID0gJ2VhLWluZm8nLFxyXG5cclxuICAvLyBcclxuICBFQV9TZXJ2ZXIgPSAnZWEtc2VydmVyJ1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdXNlciBoYXMgc2lnbmVkIGluIG9yIGlzIHNpZ25lZCBpbnRvIGEgc2VydmVyXHJcbmV4cG9ydCBlbnVtIFNlcnZlckNvbm5lY3Rpb25TdGF0dXMge1xyXG5cclxuICAvLyBUaGUgdXNlciBoYXMgbmV2ZXIgc2lnbmVkIGluXHJcbiAgTmV2ZXJTaWduZWRJbiA9ICdzZXJ2ZXItY29ubmVjdGlvbi1zdGF0dXMtbmV2ZXItc2lnbmVkLWluJyxcclxuXHJcbiAgLy8gVGhlIHVzZXIgaGFzIHNpZ25lZCBpbiBhdCBsZWFzdCBvbmNlXHJcbiAgSGFzU2lnbmVkSW4gPSAnc2VydmVyLWNvbm5lY3Rpb25fc3RhdHVzLWhhcy1zaWduZWQtaW4nLFxyXG5cclxuICAvLyBBdXRvIHNpZ24gaW4gd2lsbCBiZSBhdHRlbXB0ZWRcclxuICBXaWxsQXV0b1NpZ25JbiA9ICdzZXJ2ZXItY29ubmVjdGlvbl9zdGF0dXMtd2lsbC1hdXRvLXNpZ24taW4nLFxyXG5cclxuICAvLyBUaGUgdXNlciBpcyBzaWduZWQgaW5cclxuICBTaWduZWRJbiA9ICdzZXJ2ZXItY29ubmVjdGlvbl9zdGF0dXMtc2lnbmVkLWluJ1xyXG59XHJcblxyXG4vLyBTdGFydCBvZiBXZWVrIChTdGFydGluZyBEYXkpXHJcbmV4cG9ydCBlbnVtIFNPV1ZhbHVlIHtcclxuXHJcbiAgLy8gXHJcbiAgU09XVmFsdWVfX1NPV19TWVNURU1ERUZBVUxUID0gJ3Nvdy1zeXN0ZW0tZGVmYXVsdCcsXHJcblxyXG4gIC8vIFxyXG4gIFNPV1ZhbHVlX19TT1dfN0RBWVBFUklPRCA9ICdzb3ctNy1kYXktcGVyaW9kJyxcclxuXHJcbiAgLy8gXHJcbiAgU09XVmFsdWVfX1NPV19TVU5EQVkgPSAnc293LXN1bmRheScsXHJcblxyXG4gIC8vIFxyXG4gIFNPV1ZhbHVlX19TT1dfTU9OREFZID0gJ3Nvdy1tb25kYXknLFxyXG5cclxuICAvLyBcclxuICBTT1dWYWx1ZV9fU09XX1RVRVNEQVkgPSAnc293LXR1ZXNkYXknLFxyXG5cclxuICAvLyBcclxuICBTT1dWYWx1ZV9fU09XX1dFRE5FU0RBWSA9ICdzb3ctd2VkbmVzZGF5JyxcclxuXHJcbiAgLy8gXHJcbiAgU09XVmFsdWVfX1NPV19USFVSU0RBWSA9ICdzb3ctdGh1cnNkYXknLFxyXG5cclxuICAvLyBcclxuICBTT1dWYWx1ZV9fU09XX0ZSSURBWSA9ICdzb3ctZnJpZGF5JyxcclxuXHJcbiAgLy8gXHJcbiAgU09XVmFsdWVfX1NPV19TQVRVUkRBWSA9ICdzb3ctc2F0dXJkYXknLFxyXG5cclxuICAvLyBcclxuICBTT1dWYWx1ZV9fU09XX0lTTzg2MDFXRUVLID0gJ3Nvdy1pc284NjAxLXdlZWsnXHJcbn1cclxuXHJcbi8vIFR5cGUgb2YgRmluZCB0byBwZXJmb3JtXHJcbmV4cG9ydCBlbnVtIEZpbmRUeXBlIHtcclxuXHJcbiAgLy8gU3RhcnRzIFdpdGhcclxuICBGaW5kVHlwZV9TdGFydHMgPSAnZmluZHR5cGUtc3RhcnRzJyxcclxuXHJcbiAgLy8gRW5kcyBXaXRoXHJcbiAgRmluZFR5cGVfRW5kcyA9ICdmaW5kdHlwZS1lbmRzJyxcclxuXHJcbiAgLy8gQ29udGFpbnNcclxuICBGaW5kVHlwZV9Db250YWlucyA9ICdmaW5kdHlwZS1jb250YWlucycsXHJcblxyXG4gIC8vIEV4YWN0XHJcbiAgRmluZFR5cGVfRXhhY3QgPSAnZmluZHR5cGUtZXhhY3QnXHJcbn1cclxuXHJcbi8vIFBlcnNwZWN0aXZlVHlwZSBvZiBhIGdpdmVuIFBlcnNwZWN0aXZlUHJlc01vZGVsXHJcbmV4cG9ydCBlbnVtIFBlcnNwZWN0aXZlRW51bVBlcnNwZWN0aXZlVHlwZSB7XHJcblxyXG4gIC8vIFJlYWxpdHlcclxuICBQZXJzcGVjdGl2ZVR5cGVfUmVhbGl0eSA9ICdwZXJzcGVjdGl2ZXR5cGUtcmVhbGl0eScsXHJcblxyXG4gIC8vIEZpcnN0XHJcbiAgUGVyc3BlY3RpdmVUeXBlX0ZpcnN0ID0gJ3BlcnNwZWN0aXZldHlwZS1maXJzdCcsXHJcblxyXG4gIC8vIExhc3RcclxuICBQZXJzcGVjdGl2ZVR5cGVfTGFzdCA9ICdwZXJzcGVjdGl2ZXR5cGUtbGFzdCcsXHJcblxyXG4gIC8vIEN1c3RvbVxyXG4gIFBlcnNwZWN0aXZlVHlwZV9DdXN0b20gPSAncGVyc3BlY3RpdmV0eXBlLWN1c3RvbSdcclxufVxyXG5cclxuLy8gTGlzdCBvZiBvcHRpb25zIGZvciB3aGF0IHRvIHdyaXRlIG91dCBmcm9tIGdldC1ydW50aW1lLWluZm9cclxuZXhwb3J0IGVudW0gUnVudGltZUluZm9SdW50aW1lT3V0cHV0IHtcclxuXHJcbiAgLy8gb3V0cHV0IHRoZSBWVEwgZnJvbSB0aGUgcHJvZHVjZXJzXHJcbiAgUmF3VlRMID0gJ3Jhdy12dGwnLFxyXG5cclxuICAvLyBvdXRwdXQgdGhlIGRhdGEgc3RvcmUgZnJvbSB0aGUgcHJvZHVjZXJzXHJcbiAgUmF3U3RvcmUgPSAncmF3LXN0b3JlJyxcclxuXHJcbiAgLy8gb3V0cHV0IHRoZSBncmFwaCBhbmQgY29tcGlsZWQgVlRMXHJcbiAgUGF5bG9hZFZUTCA9ICdwYXlsb2FkLXZ0bCcsXHJcblxyXG4gIC8vIG91dHB1dCB0aGUgZmluYWwgZGF0YSBzdG9yZSBhZnRlciB0cmFuc2Zvcm1zIGFyZSBydW5cclxuICBGaW5hbFN0b3JlID0gJ2ZpbmFsLXN0b3JlJyxcclxuXHJcbiAgLy8gb3V0cHV0IHRoZSBWVEwgYW5kIGRhdGEgc3RvcmUgZnJvbSB0aGUgcHJvZHVjZXJzXHJcbiAgSW5wdXQgPSAnaW5wdXQnLFxyXG5cclxuICAvLyBvdXRwdXQgdGhlIGZpbmFsIFZUTCBhbmQgZGF0YSBzdG9yZSBhZnRlciBjb21waWxhdGlvbiBhbmQgcnVubmluZ1xyXG4gIE91dHB1dCA9ICdvdXRwdXQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBHZW9tZXRyeVR5cGUge1xyXG5cclxuICAvLyBcclxuICBFbXB0eSA9ICdlbXB0eScsXHJcblxyXG4gIC8vIFxyXG4gIE11bHRpUG9seWdvbiA9ICdtdWx0aVBvbHlnb24nLFxyXG5cclxuICAvLyBcclxuICBNdWx0aVBvaW50ID0gJ211bHRpUG9pbnQnLFxyXG5cclxuICAvLyBcclxuICBNdWx0aUxpbmVTdHJpbmcgPSAnbXVsdGlMaW5lU3RyaW5nJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya1NpemluZ1NldHRpbmcge1xyXG5cclxuICAvLyBcclxuICBNYXJrc1NjYWxpbmdBdXRvbWF0aWMgPSAnbWFya3Mtc2NhbGluZy1hdXRvbWF0aWMnLFxyXG5cclxuICAvLyBcclxuICBNYXJrc1NjYWxpbmdPbiA9ICdtYXJrcy1zY2FsaW5nLW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgTWFya3NTY2FsaW5nT2ZmID0gJ21hcmtzLXNjYWxpbmctb2ZmJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBmb3IgY2FyZCB0eXBlIG9uIHdvcmtzaGVldHMuXHJcbmV4cG9ydCBlbnVtIENhcmRUeXBlIHtcclxuXHJcbiAgLy8gQ2FyZE1hbmFnZXIgdHJlYXRzIHplcm8gc3BlY2lhbGx5LCBzbyB3ZSBjYW4ndCBzdGFydCBhdCB6ZXJvLlxyXG4gIENvbHVtbnMgPSAnY2FyZHR5cGUtY29sdW1ucycsXHJcblxyXG4gIC8vIFxyXG4gIFJvd3MgPSAnY2FyZHR5cGUtcm93cycsXHJcblxyXG4gIC8vIFxyXG4gIFBhZ2VzID0gJ2NhcmR0eXBlLXBhZ2VzJyxcclxuXHJcbiAgLy8gXHJcbiAgQ3VycmVudFBhZ2UgPSAnY2FyZHR5cGUtY3VycmVudFBhZ2UnLFxyXG5cclxuICAvLyBcclxuICBGaWx0ZXJzID0gJ2NhcmR0eXBlLWZpbHRlcnMnLFxyXG5cclxuICAvLyBcclxuICBNYXJrcyA9ICdjYXJkdHlwZS1tYXJrcycsXHJcblxyXG4gIC8vIFxyXG4gIE1lYXN1cmVzID0gJ2NhcmR0eXBlLW1lYXN1cmVzJyxcclxuXHJcbiAgLy8gXHJcbiAgQ29sb3JMZWdlbmQgPSAnY2FyZHR5cGUtY29sb3JMZWdlbmQnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUxlZ2VuZCA9ICdjYXJkdHlwZS1zaGFwZUxlZ2VuZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNpemVMZWdlbmQgPSAnY2FyZHR5cGUtc2l6ZUxlZ2VuZCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcExlZ2VuZCA9ICdjYXJkdHlwZS1tYXBMZWdlbmQnLFxyXG5cclxuICAvLyBcclxuICBUaXRsZSA9ICdjYXJkdHlwZS10aXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIENhcHRpb24gPSAnY2FyZHR5cGUtY2FwdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIFN1bW1hcnkgPSAnY2FyZHR5cGUtc3VtbWFyeScsXHJcblxyXG4gIC8vIFxyXG4gIFBhcmFtZXRlciA9ICdjYXJkdHlwZS1wYXJhbWV0ZXInLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlciA9ICdjYXJkdHlwZS1xdWlja0ZpbHRlcicsXHJcblxyXG4gIC8vIFxyXG4gIEhpZ2hsaWdodGVyID0gJ2NhcmR0eXBlLWhpZ2hsaWdodGVyJ1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgdGhlIHR5cGUgb2YgdGFibGUgZGF0YSB0byBiZSBkaXNwbGF5ZWQuXHJcbmV4cG9ydCBlbnVtIFRhYmxlVmlld0RhdGFUeXBlIHtcclxuXHJcbiAgLy8gVGFibGUgdmlldyB3aXRoIGVhY2ggY29sdW1uIGlzIHNwZWNpZmllZCBieSBGaWVsZE5hbWUuIERQSV9Db2x1bW5zIGlzIHJlcXVpcmVkLlxyXG4gIFRhYmxlVmlld0ZpZWxkRGF0YSA9ICd0YWJsZS12aWV3LWZpZWxkLWRhdGEnLFxyXG5cclxuICAvLyBUYWJsZSB2aWV3IHdoZXJlIHRoZSBjb2x1bW5zIGFyZSBkZWZpbmVkIGJ5IGEgZ3JvdXAuIERQSV9GaWVsZE5hbWUgaXMgcmVxdWlyZWQuXHJcbiAgVGFibGVWaWV3R3JvdXBEYXRhID0gJ3RhYmxlLXZpZXctZ3JvdXAtZGF0YSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFdhcm5pbmdUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgTElOS19FUlJPUiA9ICdsaW5rZXJyb3InLFxyXG5cclxuICAvLyBcclxuICBPVkVSTEFQX1RFWFQgPSAnV2Fybk92ZXJsYXBwaW5nVGV4dCcsXHJcblxyXG4gIC8vIFxyXG4gIElOVkFMSURfV09SS1NIRUVUID0gJ1dhcm5JbnZhbGlkV29ya3NoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgT1BFTl9CT09LID0gJ29wZW5ib29rJyxcclxuXHJcbiAgLy8gXHJcbiAgT1BFTl9EQVRBU09VUkNFID0gJ29wZW5kYXRhc291cmNlJyxcclxuXHJcbiAgLy8gXHJcbiAgT1BFTl9TSEVFVCA9ICdvcGVuc2hlZXQnLFxyXG5cclxuICAvLyBcclxuICBMT0NBTERBVEFfQU1CSUdVSVRZID0gJ0xvY2FsRGF0YUFtYmlndWl0eScsXHJcblxyXG4gIC8vIFxyXG4gIExPQ0FMREFUQV9NSVNNQVRDSCA9ICdMb2NhbERhdGFNaXNtYXRjaCcsXHJcblxyXG4gIC8vIFxyXG4gIE1JU1NJTkdfTE9DQUxfVElMRSA9ICdNaXNzaW5nTG9jYWxUaWxlcycsXHJcblxyXG4gIC8vIFxyXG4gIE1BUF9USUxFX0RPV05MT0FEID0gJ01hcFRpbGVEb3dubG9hZEVycm9yJyxcclxuXHJcbiAgLy8gXHJcbiAgTUFQX1RJTEVfSU5URVJNSVRURU5UID0gJ01hcFRpbGVJbnRlcm1pdHRlbnQnLFxyXG5cclxuICAvLyBcclxuICBNQVBfVElMRV9SRUdJT04gPSAnTWFwVGlsZVJlZ2lvbicsXHJcblxyXG4gIC8vIFxyXG4gIE1BUF9TRVJWRVJfRk9SQklEREVOID0gJ01hcFNlcnZlckZvcmJpZGRlbicsXHJcblxyXG4gIC8vIFxyXG4gIERNX0NBTk5PVF9TQ09SRSA9ICdETUNhbm5vdFNjb3JlJyxcclxuXHJcbiAgLy8gXHJcbiAgRE1fU0NPUklOR19OT1RfUkVDID0gJ0RNU2NvcmluZ05vdFJlY29tbWVuZGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgTE9DQUxfREFUQV9MSUJSQVJZX01JU1NJTkcgPSAnTG9jYWxEYXRhTGlicmFyeU1pc3NpbmcnLFxyXG5cclxuICAvLyBcclxuICBETV9NSVNTSU5HX01PREVMID0gJ0RNTWlzc2luZ01vZGVsJyxcclxuXHJcbiAgLy8gXHJcbiAgRElfTk9fTElOSyA9ICdESU5vTGluaycsXHJcblxyXG4gIC8vIFxyXG4gIExPQ0FMREFUQV9OT19HRU9NRVRSWSA9ICdMb2NhbERhdGFOb0dlb21ldHJ5JyxcclxuXHJcbiAgLy8gXHJcbiAgTE9DQUxEQVRBX05PX0dFT01FVFJZX1VQR1JBREUgPSAnTG9jYWxEYXRhTm9HZW9tZXRyeVVwZ3JhZGUnLFxyXG5cclxuICAvLyBcclxuICBESV9OT19SRUxBVElPTlNISVBTID0gJ0RJTm9SZWxhdGlvbnNoaXBzJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gV29ya2Jvb2tVSU1vZGUge1xyXG5cclxuICAvLyBcclxuICBEYXRhVGFiID0gJ2RhdGEtdGFiJyxcclxuXHJcbiAgLy8gXHJcbiAgRG9jdW1lbnQgPSAnZG9jdW1lbnQnLFxyXG5cclxuICAvLyBcclxuICBTaGVldFNvcnRlciA9ICdzaGVldC1zb3J0ZXInXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBUb3BMZXZlbE1lbnVJdGVtIHtcclxuXHJcbiAgLy8gXHJcbiAgRmlsZSA9ICdmaWxlJyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0YSA9ICdkYXRhJyxcclxuXHJcbiAgLy8gXHJcbiAgV29ya3NoZWV0ID0gJ3dvcmtzaGVldCcsXHJcblxyXG4gIC8vIFxyXG4gIERhc2hib2FyZCA9ICdkYXNoYm9hcmQnLFxyXG5cclxuICAvLyBcclxuICBBbmFseXNpcyA9ICdhbmFseXNpcycsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdCA9ICdmb3JtYXQnLFxyXG5cclxuICAvLyBcclxuICBNYXAgPSAnbWFwJyxcclxuXHJcbiAgLy8gXHJcbiAgSGVscCA9ICdoZWxwJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIEFkZElucyAoUHJvamVjdCBGcmVsYXJkKVxyXG5leHBvcnQgZW51bSBBZGRJblR5cGUge1xyXG5cclxuICAvLyBcclxuICBJbnZhbGlkID0gJ2ludmFsaWQnLFxyXG5cclxuICAvLyBcclxuICBEYXNoYm9hcmQgPSAnZGFzaGJvYXJkJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBvZiBkaWZmZXJlbnQgY29udGV4dHMgYW4gYWRkLWluIGNhbiBydW4gaW5cclxuZXhwb3J0IGVudW0gQWRkSW5Db250ZXh0IHtcclxuXHJcbiAgLy8gXHJcbiAgVW5rbm93biA9ICd1bmtub3duJyxcclxuXHJcbiAgLy8gXHJcbiAgRGVza3RvcCA9ICdkZXNrdG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgU2VydmVyID0gJ3NlcnZlcidcclxufVxyXG5cclxuLy8gRW51bWVyYXRpb24gb2YgZGlmZmVyZW50IG1vZGVzIGFuIGFkZC1pbiBjYW4gcnVuIGluXHJcbmV4cG9ydCBlbnVtIEFkZEluTW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIFVua25vd24gPSAndW5rbm93bicsXHJcblxyXG4gIC8vIFxyXG4gIEF1dGhvcmluZyA9ICdhdXRob3JpbmcnLFxyXG5cclxuICAvLyBcclxuICBWaWV3aW5nID0gJ3ZpZXdpbmcnXHJcbn1cclxuXHJcbi8vIE1hcmtlcnMgZm9yIGFycmF5LW9mLWZsb2F0IGVuY29kaW5nIG9mIGdlb21ldHJ5XHJcbmV4cG9ydCBlbnVtIExpbmVhckZsb2F0R2VvbWV0cnlNYXJrZXIge1xyXG5cclxuICAvLyBcclxuICBMRkdfSW52YWxpZCA9ICdpbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgTEZHX011bHRpUG9seWdvbiA9ICdtdWx0aVBvbHlnb24nLFxyXG5cclxuICAvLyBcclxuICBMRkdfTXVsdGlMaW5lID0gJ211bHRpTGluZScsXHJcblxyXG4gIC8vIFxyXG4gIExGR19NdWx0aVBvaW50ID0gJ211bHRpUG9pbnQnLFxyXG5cclxuICAvLyBcclxuICBMRkdfU3RhcnRPYmplY3QgPSAnc3RhcnRPYmplY3QnLFxyXG5cclxuICAvLyBcclxuICBMRkdfU3RhcnRQb2x5Z29uID0gJ3N0YXJ0UG9seWdvbicsXHJcblxyXG4gIC8vIFxyXG4gIExGR19TdGFydExpbmUgPSAnc3RhcnRMaW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgTEZHX0VuZEdlb21ldHJ5ID0gJ2VuZEdlb21ldHJ5J1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBmb3IgZGF0YSBhbGVydCB0eXBlcy5cclxuZXhwb3J0IGVudW0gRGF0YUFsZXJ0VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIERhdGFQcmVzZW50ID0gJ2RhdGEtcHJlc2VudCcsXHJcblxyXG4gIC8vIFxyXG4gIENvbnN0Q29tcGFyaXNvbiA9ICdjb25zdC1jb21wYXJpc29uJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBmb3IgdmFsaWQgb3BlcmF0aW9ucyBpbiBkYXRhIGFsZXJ0IGNvbmRpdGlvbnNcclxuZXhwb3J0IGVudW0gRGF0YUFsZXJ0Q29uZGl0aW9uT3BlcmF0aW9uVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIEdyZWF0ZXJUaGFuID0gJ2dyZWF0ZXItdGhhbicsXHJcblxyXG4gIC8vIFxyXG4gIEdyZWF0ZXJUaGFuRXF1YWwgPSAnZ3JlYXRlci10aGFuLWVxdWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgRXF1YWxzID0gJ2VxdWFscycsXHJcblxyXG4gIC8vIFxyXG4gIExlc3NUaGFuID0gJ2xlc3MtdGhhbicsXHJcblxyXG4gIC8vIFxyXG4gIExlc3NUaGFuRXF1YWwgPSAnbGVzcy10aGFuLWVxdWFsJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBmb3IgbW9kZXMgdGhlIGRhdGEgYWxlcnQgZGlhbG9nIGNvdWxkIGJlIGluXHJcbmV4cG9ydCBlbnVtIERhdGFBbGVydERpYWxvZ01vZGUge1xyXG5cclxuICAvLyBcclxuICBDcmVhdGUgPSAnY3JlYXRlJyxcclxuXHJcbiAgLy8gXHJcbiAgRWRpdCA9ICdlZGl0J1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvZ2VuLXNyYy9wcmVzbGF5ZXIvRW51bXMudHNcbiAqKi8iLCJpbXBvcnQgeyBNb2RlbCwgUGFyYW1ldGVySWQgYXMgQXBpLCBTaGVldFBhdGgsIFZlcnNpb25OdW1iZXIgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgUGFyYW1ldGVySWQgYXMgUEwgfSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QYXJhbXMnO1xyXG5pbXBvcnQgeyBQcmVzZW50YXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL2dlbi1zcmMvcHJlc2xheWVyL1ByZXNNb2RlbHMnO1xyXG5pbXBvcnQgeyBBY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIgfSBmcm9tICcuL0FjdGl2ZU1hcmtzRGF0YUNvbnZlcnRlcic7XHJcbmltcG9ydCB7IEFwaVRvUHJlc0xheWVyQ29udmVydGVyIH0gZnJvbSAnLi9BcGlUb1ByZXNMYXllckNvbnZlcnRlcic7XHJcbmltcG9ydCB7IEZpbHRlcnNDb252ZXJ0ZXIgfSBmcm9tICcuL0ZpbHRlcnNDb252ZXJ0ZXInO1xyXG5pbXBvcnQgeyBNYXBwaW5nUmVnaXN0cnkgfSBmcm9tICcuL01hcHBpbmdSZWdpc3RyeSc7XHJcbmltcG9ydCB7IFBhcmFtZXRlcnNEYXRhQ29udmVydGVyIH0gZnJvbSAnLi9QYXJhbWV0ZXJzRGF0YUNvbnZlcnRlcic7XHJcbmltcG9ydCB7IFByZXNMYXllclRvQXBpQ29udmVydGVyIH0gZnJvbSAnLi9QcmVzTGF5ZXJUb0FwaUNvbnZlcnRlcic7XHJcbmltcG9ydCB7IFVuZGVybHlpbmdEYXRhQ29udmVydGVyIH0gZnJvbSAnLi9VbmRlcmx5aW5nRGF0YUNvbnZlcnRlcic7XHJcblxyXG4vKnRzbGludDpkaXNhYmxlLW5leHQtbGluZSAqL1xyXG5jb25zdCBpZCA9IGZ1bmN0aW9uKGluUGFyYW06IGFueSk6IGFueSB7IHJldHVybiBpblBhcmFtOyB9XHJcblxyXG4vKipcclxuICogRmFjdG9yeSBjbGFzcyBmb3IgY3JlYXRpbmcgcGFyYW1ldGVycyBtYXBwaW5ncyBiYXNlZCBvbiB0aGUgVmVyc2lvbk51bWJlciBvZiB0aGUgQXBpXHJcbiAqXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIFBhcmFtZXRlck1hcHBpbmdSZWdpc3RyeUZhY3RvcnlcclxuICovXHJcbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5IHtcclxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVByZXNMYXllclRvQXBpUGFyYW1SZWdpc3RyeSh2ZXJzaW9uTnVtYmVyOiBWZXJzaW9uTnVtYmVyKTogUHJlc0xheWVyVG9BcGlNYXBwaW5nUmVnaXN0cnkge1xyXG4gICAgbGV0IHJlc3VsdCA9IG5ldyBQcmVzTGF5ZXJUb0FwaU1hcHBpbmdSZWdpc3RyeSgpO1xyXG5cclxuICAgIC8vIFRPRE8gLSBjaGVjayB0aGUgdmVyc2lvbiBudW1iZXIgYW5kIGNvbnN0cnVjdCBhcHByb3ByaWF0ZSBjb252ZXJzaW9uc1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oXHJcbiAgICAgIFBMLkFkZEluTG9jYXRvcixcclxuICAgICAgQXBpLkV4dGVuc2lvbkxvY2F0b3IsXHJcbiAgICAgIFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRFeHRlbnNpb25Mb2NhdG9yKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5BZGRJbkJvb3RzdHJhcEluZm8sXHJcbiAgICAgIEFwaS5FeHRlbnNpb25Cb290c3RyYXBJbmZvLFxyXG4gICAgICBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RXh0ZW5zaW9uQm9vdHN0cmFwSW5mb1xyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5VbmRlcmx5aW5nRGF0YVRhYmxlLFxyXG4gICAgICBBcGkuVW5kZXJseWluZ0RhdGFUYWJsZSxcclxuICAgICAgVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIuYnVpbGRVbmRlcmx5aW5nRGF0YVRhYmxlLmJpbmQodW5kZWZpbmVkLCBmYWxzZSlcclxuICAgICk7XHJcblxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihcclxuICAgICAgUEwuVW5kZXJseWluZ0RhdGFUYWJsZSxcclxuICAgICAgQXBpLlVuZGVybHlpbmdTdW1tYXJ5RGF0YVRhYmxlLFxyXG4gICAgICBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5idWlsZFVuZGVybHlpbmdEYXRhVGFibGUuYmluZCh1bmRlZmluZWQsIHRydWUpXHJcbiAgICApO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oXHJcbiAgICAgIFBMLlVuZGVybHlpbmdEYXRhVGFibGUsXHJcbiAgICAgIEFwaS5EYXRhU291cmNlRGF0YVRhYmxlLFxyXG4gICAgICBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5idWlsZFVuZGVybHlpbmdEYXRhVGFibGUuYmluZCh1bmRlZmluZWQsIHRydWUpXHJcbiAgICApO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oXHJcbiAgICAgIFBMLkZpZWxkQ2FwdGlvbixcclxuICAgICAgQXBpLkZpZWxkTmFtZSxcclxuICAgICAgaWRcclxuICAgICk7XHJcblxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihcclxuICAgICAgUEwuU2VsZWN0aW9uRGF0YSxcclxuICAgICAgQXBpLlNlbGVjdGVkRGF0YSxcclxuICAgICAgQWN0aXZlTWFya3NEYXRhQ29udmVydGVyLmJ1aWxkU2VsZWN0ZWREYXRhVGFibGVcclxuICAgICk7XHJcblxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihcclxuICAgICAgUEwuSGlnaGxpZ2h0ZWREYXRhLFxyXG4gICAgICBBcGkuSGlnaGxpZ2h0ZWREYXRhLFxyXG4gICAgICBBY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIuYnVpbGRIaWdobGlnaHRlZERhdGFUYWJsZVxyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5BZGRJblNldHRpbmdzSW5mbyxcclxuICAgICAgQXBpLkV4dGVuc2lvblNldHRpbmdzSW5mbyxcclxuICAgICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEV4dGVuc2lvblNldHRpbmdzSW5mb1xyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5Xb3Jrc2hlZXQsXHJcbiAgICAgIEFwaS5Xb3Jrc2hlZXROYW1lLFxyXG4gICAgICBpZFxyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5QYXJhbWV0ZXJDdHJscyxcclxuICAgICAgQXBpLlBhcmFtZXRlckluZm9zLFxyXG4gICAgICBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci5jb252ZXJ0UGFyYW1ldGVyTGlzdFxyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5QYXJhbWV0ZXJDdHJsLFxyXG4gICAgICBBcGkuUGFyYW1ldGVySW5mbyxcclxuICAgICAgUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIuY29udmVydFBhcmFtZXRlclxyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5EYXRhU2NoZW1hLFxyXG4gICAgICBBcGkuRGF0YVNjaGVtYSxcclxuICAgICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydERhdGFTY2hlbWFcclxuICAgICk7XHJcblxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihcclxuICAgICAgUEwuRmlsdGVyc0luZm8sXHJcbiAgICAgIEFwaS5Xb3Jrc2hlZXRGaWx0ZXJzLFxyXG4gICAgICBGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRGaWx0ZXJzUHJlc01vZGVsXHJcbiAgICApO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oXHJcbiAgICAgIFBMLkNhdGVnb3JpY2FsRG9tYWluLFxyXG4gICAgICBBcGkuQ2F0ZWdvcmljYWxEb21haW4sXHJcbiAgICAgIEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydENhdGVnb3JpY2FsRG9tYWluXHJcbiAgICApO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oXHJcbiAgICAgIFBMLlF1YW50aXRhdGl2ZURvbWFpbixcclxuICAgICAgQXBpLlF1YW50aXRhdGl2ZURvbWFpbixcclxuICAgICAgRmlsdGVyc0NvbnZlcnRlci5jb252ZXJ0UXVhbnRpdGF0aXZlRG9tYWluXHJcbiAgICApO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oXHJcbiAgICAgIFBMLkpvaW5EZXNjcmlwdGlvbixcclxuICAgICAgQXBpLkpvaW5EZXNjcmlwdGlvbixcclxuICAgICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEpvaW5EZXNjcmlwdGlvblxyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5Db25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJpZXMsXHJcbiAgICAgIEFwaS5Db25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJpZXMsXHJcbiAgICAgIFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRDb25uZWN0aW9uRGVzY3JwdGlvblN1bW1hcmllc1xyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjcmVhdGVBcGlUb1ByZXNMYXllclBhcmFtUmVnaXN0cnkodmVyc2lvbk51bWJlcjogVmVyc2lvbk51bWJlcik6IEFwaVRvUHJlc0xheWVyTWFwcGluZ1JlZ2lzdHJ5IHtcclxuICAgIGxldCByZXN1bHQgPSBuZXcgQXBpVG9QcmVzTGF5ZXJNYXBwaW5nUmVnaXN0cnkoKTtcclxuXHJcbiAgICAvLyBUT0RPIC0gY2hlY2sgdGhlIHZlcnNpb24gbnVtYmVyIGFuZCBjb25zdHJ1Y3QgYXBwcm9wcmlhdGUgY29udmVyc2lvbnNcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5FeHRlbnNpb25Mb2NhdG9yLCBQTC5BZGRJbkxvY2F0b3IsIEFwaVRvUHJlc0xheWVyQ29udmVydGVyLmNvbnZlcnRFeHRlbnNpb25Mb2NhdG9yKTtcclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLlNldHRpbmdzVmFsdWVzLCBQTC5BZGRJblNldHRpbmdzLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5JZ25vcmVBbGlhc2VzLCBQTC5JZ25vcmVBbGlhc2VzLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5JZ25vcmVTZWxlY3Rpb24sIFBMLklnbm9yZVNlbGVjdGlvbiwgaWQpO1xyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuSW5jbHVkZUFsbENvbHVtbnMsIFBMLkluY2x1ZGVBbGxDb2x1bW5zLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5NYXhSb3dzLCBQTC5NYXhSb3dzLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5WaXN1YWxJZCwgUEwuVmlzdWFsSURQTSwgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkKTtcclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLkNvbHVtbnNUb0luY2x1ZGUsIFBMLkZpZWxkRGlzcGxheU5hbWVzLCBpZCk7XHJcblxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuRmllbGROYW1lLCBQTC5RdWFsaWZpZWRGaWVsZENhcHRpb24sIGlkKTtcclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLkZpbHRlclZhbHVlcywgUEwuRmlsdGVyQWxpYXNlcywgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlcyk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5GaWx0ZXJVcGRhdGVUeXBlLCBQTC5GaWx0ZXJVcGRhdGVUeXBlLCBBcGlUb1ByZXNMYXllckNvbnZlcnRlci5jb252ZXJ0RmlsdGVyVHlwZSk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5Jc0V4Y2x1ZGVNb2RlLCBQTC5FeGNsdWRlLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5GaWx0ZXJSYW5nZU1pbiwgUEwuUmFuZ2VNaW4sIGlkKTtcclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLkZpbHRlclJhbmdlTWF4LCBQTC5SYW5nZU1heCwgaWQpO1xyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuRmlsdGVyUmFuZ2VOdWxsT3B0aW9uLCBQTC5JbmNsdWRlZCwgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuQ29udmVydE51bGxPcHRpb24pO1xyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuRmllbGRJZCwgUEwuRmllbGROYW1lLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5Eb21haW5UeXBlLCBQTC5GaWx0ZXJEb21haW5UeXBlLCBBcGlUb1ByZXNMYXllckNvbnZlcnRlci5Db252ZXJ0RmlsdGVyRG9tYWluVHlwZSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuVmlzdWFsSWQsIFBMLldvcmtzaGVldCwgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkVG9Xb3Jrc2hlZXQpO1xyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuVmlzdWFsSWQsIFBMLkRhc2hib2FyZCwgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkVG9EYXNoYm9hcmQpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLlBhcmFtZXRlckNhcHRpb24sIFBMLkZpZWxkQ2FwdGlvbiwgaWQpO1xyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuUGFyYW1ldGVyRmllbGROYW1lLCBQTC5GaWVsZE5hbWVTdHJpbmcsIGlkKTtcclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLlBhcmFtZXRlckZpZWxkTmFtZSwgUEwuR2xvYmFsRmllbGROYW1lLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5QYXJhbWV0ZXJWYWx1ZSwgUEwuVmFsdWVTdHIsIGlkKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGkuU2hlZXRQYXRoLFxyXG4gICAgICBQTC5TaGVldFBhdGhQTSxcclxuICAgICAgcG0gPT4gQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFNoZWV0UGF0aChwbSBhcyBTaGVldFBhdGgpXHJcbiAgICApO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLlNlbGVjdGlvbiwgUEwuU2VsZWN0aW9uLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5TZWxlY3Rpb25VcGRhdGVUeXBlLCBQTC5TZWxlY3Rpb25VcGRhdGVUeXBlLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5IaWVyVmFsU2VsZWN0aW9uTW9kZWxzLCBQTC5IaWVyVmFsU2VsZWN0aW9uTW9kZWxzLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5RdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzLCBQTC5RdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5EaW1WYWxTZWxlY3Rpb25Nb2RlbHMsIFBMLkRpbVZhbFNlbGVjdGlvbk1vZGVscywgaWQpO1xyXG5cclxuICAgIC8vIFRoZSBwYXJhbSBQTC5EYXRhc291cmNlIGlzIHRoZSBJRCBzdHJpbmcgZm9yIGEgc3BlY2lmaWMgZGF0YXNvdXJjZSwgbm90IHRvIGJlIGNvbmZ1c2VkXHJcbiAgICAvLyB3aXRoIHRoZSBwYXJhbSBQTC5EYXRhU291cmNlLCB3aGljaCBpcyB0aGUgZnVsbCBwcmVzIG1vZGVsIGZvciBhIGRhdGEgc291cmNlLlxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuRGF0YVNvdXJjZUlkLCBQTC5EYXRhc291cmNlLCBpZCk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBcGlUb1ByZXNMYXllck1hcHBpbmdSZWdpc3RyeVxyXG4gIGV4dGVuZHMgTWFwcGluZ1JlZ2lzdHJ5PEFwaSwgUEwsIChhcGlNb2RlbDogTW9kZWwpID0+IFByZXNlbnRhdGlvbk1vZGVsPiB7fVxyXG5cclxuZXhwb3J0IGNsYXNzIFByZXNMYXllclRvQXBpTWFwcGluZ1JlZ2lzdHJ5XHJcbiAgZXh0ZW5kcyBNYXBwaW5nUmVnaXN0cnk8UEwsIEFwaSwgKHByZXNMYXllclBtOiBQcmVzZW50YXRpb25Nb2RlbCkgPT4gTW9kZWw+IHt9XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL21hcHBpbmdzL1BhcmFtZXRlck1hcHBpbmdSZWdpc3RyeUZhY3RvcnkudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIERhdGFIZWFkZXIsXHJcbiAgRGF0YVRhYmxlLFxyXG4gIERhdGFWYWx1ZSxcclxuICBIaWdobGlnaHRlZE1hcmtzVGFibGUsXHJcbiAgTWFya0luZm8sXHJcbiAgTWFya1R5cGUsXHJcbiAgU2VsZWN0ZWRNYXJrc1RhYmxlXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIERhdGFEaWN0aW9uYXJ5UHJlc01vZGVsLFxyXG4gIEhpZ2hsaWdodGVkRGF0YVByZXNNb2RlbCxcclxuICBTZWxlY3Rpb25EYXRhUHJlc01vZGVsLFxyXG4gIFZpekRhdGFQcmVzTW9kZWxcclxufSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QcmVzTW9kZWxzJztcclxuaW1wb3J0IHsgUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MgYXMgRW51bU1hcHBpbmcgfSBmcm9tICcuL0VudW1NYXBwaW5ncyc7XHJcbmltcG9ydCB7IFVuZGVybHlpbmdEYXRhQ29udmVydGVyIH0gZnJvbSAnLi9VbmRlcmx5aW5nRGF0YUNvbnZlcnRlcic7XHJcblxyXG4vKipcclxuICogQ29udGFpbnMgbG9naWMgZm9yIGNvbnZlcnRpbmcgdGhlIGFjdGl2ZSBtYXJrcyBvbiBhIHZpeiBpbnRvIHRoZSBBUEkgcHJlcyBtb2RlbHMuXHJcbiAqIEluIHRoZSBvcmlnaW5hbCBwcm9qZWN0LCBtb3N0IG9mIHRoaXMgd2FzIGluIHRoZSBQcm9jZXNzQWN0aXZlTWFya3MgZnVuY3Rpb25cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIge1xyXG4gIHByaXZhdGUgc3RhdGljIE1BTEZPUk1FRF9EQVRBOiBzdHJpbmcgPSAnTWFsZm9ybWVkIGRhdGEgdGFibGUnO1xyXG4gIHB1YmxpYyBzdGF0aWMgYnVpbGRTZWxlY3RlZERhdGFUYWJsZShzZWxlY3RlZERhdGE6IFNlbGVjdGlvbkRhdGFQcmVzTW9kZWwpOiBTZWxlY3RlZE1hcmtzVGFibGUge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZGF0YTogQWN0aXZlTWFya3NEYXRhQ29udmVydGVyLmJ1aWxkQWN0aXZlTWFya3NMaXN0KHNlbGVjdGVkRGF0YS5kYXRhRGljdGlvbmFyeSwgc2VsZWN0ZWREYXRhLnZpekRhdGEpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBidWlsZEhpZ2hsaWdodGVkRGF0YVRhYmxlKGhpZ2hsaWdodGVkRGF0YTogSGlnaGxpZ2h0ZWREYXRhUHJlc01vZGVsKTogSGlnaGxpZ2h0ZWRNYXJrc1RhYmxlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGRhdGE6IEFjdGl2ZU1hcmtzRGF0YUNvbnZlcnRlci5idWlsZEFjdGl2ZU1hcmtzTGlzdChoaWdobGlnaHRlZERhdGEuZGF0YURpY3Rpb25hcnksIGhpZ2hsaWdodGVkRGF0YS52aXpEYXRhKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGJ1aWxkQWN0aXZlTWFya3NMaXN0KGRhdGFEaWN0aW9uYXJ5OiBEYXRhRGljdGlvbmFyeVByZXNNb2RlbCwgdml6RGF0YTogVml6RGF0YVByZXNNb2RlbCk6IEFycmF5PERhdGFUYWJsZT4ge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PERhdGFUYWJsZT4oKTtcclxuXHJcbiAgICAvLyBUaGUgZGF0YSBtb2RlbCBmb3IgdGhlIFZpekRhdGFQcmVzTW9kZWwgaXMgYSBsaXR0bGUgc3RyYW5nZSwgc28gdGhpcyBwYXJzaW5nIHRha2VzIHNvbWUgdGltZSB0byBmaWd1cmUgb3V0LlxyXG4gICAgLy8gVGhlcmUgY2FuIGJlIG11bHRpcGxlIHBhbmVzIG9mIGRhdGEsIHNvIHdlIG11c3QgZ28gdGhyb3VnaCB0aGVtIG9uZSBhdCBhIHRpbWUgdG8gY3JlYXRlIGRhdGEgdGFibGVzXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZpekRhdGEucGFuZUNvbHVtbnNEYXRhLnBhbmVDb2x1bW5zTGlzdC5sZW5ndGg7IGkrKykge1xyXG5cclxuICAgICAgLy8gTmVlZCB0byBmaWx0ZXIgdG8gZmluZCBhbGwgdGhlIGNvbHVtbnMgd2hpY2ggYXJlIGluIHRoaXMgcGFuZVxyXG4gICAgICBjb25zdCBjb2x1bW5zID0gdml6RGF0YS5wYW5lQ29sdW1uc0RhdGEudml6RGF0YUNvbHVtbnMuZmlsdGVyKHZpekRhdGFDb2x1bW4gPT4ge1xyXG4gICAgICAgIC8vIFdlIGtub3cgdGhpcyBjb2x1bW4gbWF0dGVycyBmb3IgdGhlIGN1cnJlbnQgcGFuZSBpZiB0aGlzIHBhbmUncyBpbmRleCBpcyBpbiBwYW5lSW5kaWNlc1xyXG4gICAgICAgIHJldHVybiB2aXpEYXRhQ29sdW1uLnBhbmVJbmRpY2VzLmluZGV4T2YoaSkgPiAtMTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgYSBtYXBwaW5nIG9mIHdoaWNoIGluZGV4IGluIHRoZSBkYXRhIGRpY3Rpb25hcnkgb3VyIGNvbHVtbnMgYXJlIGluXHJcbiAgICAgIGNvbnN0IGNvbHVtbkluZGljZXMgPSBjb2x1bW5zLm1hcCh2aXpEYXRhQ29sdW1uID0+IHtcclxuXHJcbiAgICAgICAgLy8gVGhlIGNvbHVtbkluZGV4IGlzIGluIHRoZSBzYW1lIHBvc2l0aW9uIGFzIHRoZSBwYW5lSW5kZXhcclxuICAgICAgICBjb25zdCBwYW5lSW5kZXggPSB2aXpEYXRhQ29sdW1uLnBhbmVJbmRpY2VzLmluZGV4T2YoaSk7XHJcbiAgICAgICAgY29uc3QgY29sdW1uSW5kZXggPSB2aXpEYXRhQ29sdW1uLmNvbHVtbkluZGljZXNbcGFuZUluZGV4XTtcclxuICAgICAgICByZXR1cm4gY29sdW1uSW5kZXg7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gR2V0IHRoZSBkYXRhIGZvciB0aGUgcGFuZSB3ZSBhcmUgcHJvY2Vzc2luZ1xyXG4gICAgICBjb25zdCB2aXpQYW5lID0gdml6RGF0YS5wYW5lQ29sdW1uc0RhdGEucGFuZUNvbHVtbnNMaXN0W2ldO1xyXG5cclxuICAgICAgaWYgKHZpelBhbmUudml6UGFuZUNvbHVtbnMubGVuZ3RoICE9PSBjb2x1bW5zLmxlbmd0aCkge1xyXG4gICAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoQWN0aXZlTWFya3NEYXRhQ29udmVydGVyLk1BTEZPUk1FRF9EQVRBKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBBcnJheTxEYXRhSGVhZGVyPigpO1xyXG4gICAgICBjb25zdCByb3dzID0gbmV3IEFycmF5PEFycmF5PERhdGFWYWx1ZT4+KCk7XHJcblxyXG4gICAgICAvLyBDb2x1bW4gMCB3aWxsIGJlIHRoZSB0dXBsZSBpZCBjb2x1bW4uIFdlIGNhbiB1c2UgdGhpcyBhcyBhIGNvdW50ZXIgZm9yIGhvdyBtYW55IHJvd3Mgd2UgaGF2ZVxyXG4gICAgICBjb25zdCB0dXBsZUlkcyA9IHZpelBhbmUudml6UGFuZUNvbHVtbnNbMF0udHVwbGVJZHM7XHJcbiAgICAgIGNvbnN0IG1hcmtzID0gbmV3IEFycmF5PE1hcmtJbmZvPigpO1xyXG4gICAgICBmb3IgKGxldCB0dXBsZUluZGV4ID0gMDsgdHVwbGVJbmRleCA8IHR1cGxlSWRzLmxlbmd0aDsgdHVwbGVJbmRleCsrKSB7XHJcbiAgICAgICAgLy8gVE9ETyBOZWVkIHRvIHJldmFsdWF0ZSB0aGUgcGxhY2Ugb2YgdGhpcyBsb2dpYy4gSWYgaXQgdHVybnMgb3V0IHRoYXQgd2UgbmVlZCBhIHNlcGFyYXRlIGNvbW1hbmRcclxuICAgICAgICAvLyBjYWxsIHRvIGdldCB0aGUgbWFya3MgaW5mbywgdGhlbiB0aGlzIGxvZ2ljIHNob3VsZCBub3QgYmUgaGVyZSBidXQgaW5zdGVhZCBpbiBhIGxheWVyIGFib3ZlIHNvbWV3aGVyZVxyXG4gICAgICAgIGxldCBtYXJrOiBNYXJrSW5mbyA9IHtcclxuICAgICAgICAgIHR5cGU6IE1hcmtUeXBlLkJhciwgLy8gaGFyZGNvZGluZyB0aGlzIGZvciBub3dcclxuICAgICAgICAgIGNvbG9yOiAncmVkJywgLy8gaGFyZGNvZGluZyB0aGlzIGZvciBub3dcclxuICAgICAgICAgIHR1cGxlSWQ6IHR1cGxlSWRzW3R1cGxlSW5kZXhdLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbWFya3MucHVzaChtYXJrKTtcclxuICAgICAgICAvLyBXZSB3aWxsIGhhdmUgMSBsZXNzIHZhbHVlIGluIHRoaXMgcm93IHNpbmNlIHRoZXJlJ3MgdGhlIHR1cGxlSWQgY29sdW1uXHJcbiAgICAgICAgY29uc3QgY2VsbHMgPSBuZXcgQXJyYXk8RGF0YVZhbHVlPih2aXpQYW5lLnZpelBhbmVDb2x1bW5zLmxlbmd0aCAtIDEpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBqID0gMS8qIHNraXAgdGhlIGZpcnN0IHdoaWNoIGlzIHR1cGxlIGlkcyAqLzsgaiA8IHZpelBhbmUudml6UGFuZUNvbHVtbnMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgIC8vIE5leHQsIHdlIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBjb2x1bW4gd2UgYXJlIHJlYWRpbmcgZGF0YSBmb3JcclxuICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbY29sdW1uSW5kaWNlc1tqXV07XHJcbiAgICAgICAgICBjb25zdCB2aXpQYW5lQ29sdW1uRGF0YSA9IHZpelBhbmUudml6UGFuZUNvbHVtbnNbal07XHJcblxyXG4gICAgICAgICAgLy8gRGVmaW5lIHRoZSBoZWFkZXIgd2hlbiB3ZSBhcmUgcHJvY2Vzc2luZyB0aGUgZmlyc3Qgcm93XHJcbiAgICAgICAgICBpZiAodHVwbGVJbmRleCA9PT0gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBoZWFkZXI6IERhdGFIZWFkZXIgPSB7XHJcbiAgICAgICAgICAgICAgZGF0YVR5cGU6IEVudW1NYXBwaW5nLmRhdGFUeXBlLmNvbnZlcnQoY29sdW1uLmRhdGFUeXBlKSxcclxuICAgICAgICAgICAgICBmaWVsZE5hbWU6IGNvbHVtbi5mbixcclxuICAgICAgICAgICAgICBpc1JlZmVyZW5jZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgaW5kZXg6IGogLSAxLFxyXG4gICAgICAgICAgICAgIGZpZWxkQ2FwdGlvbjogY29sdW1uLmZpZWxkQ2FwdGlvblxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaGVhZGVycy5wdXNoKGhlYWRlcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5sb29rdXBWYWx1ZUZyb21EaWN0aW9uYXJ5KFxyXG4gICAgICAgICAgICBkYXRhRGljdGlvbmFyeSwgY29sdW1uLmRhdGFUeXBlLCB2aXpQYW5lQ29sdW1uRGF0YS52YWx1ZUluZGljZXNbdHVwbGVJbmRleF0pO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGFsaWFzVmFsdWUgPSBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5sb29rdXBWYWx1ZUZyb21EaWN0aW9uYXJ5KFxyXG4gICAgICAgICAgICBkYXRhRGljdGlvbmFyeSwgY29sdW1uLmRhdGFUeXBlLCB2aXpQYW5lQ29sdW1uRGF0YS5hbGlhc0luZGljZXNbdHVwbGVJbmRleF0pIHx8ICcnO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gYWxpYXNWYWx1ZTsgLy8gVE9ETyAtIEZpZ3VyZSBvdXQgaG93IHRvIHVzZSB0aGUgZm9ybWF0U3RyaW5nc1xyXG5cclxuICAgICAgICAgIGNvbnN0IGRhdGFDZWxsOiBEYXRhVmFsdWUgPSB7XHJcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgICAgICAgICAgZm9ybWF0dGVkVmFsdWU6IGZvcm1hdHRlZFZhbHVlLFxyXG4gICAgICAgICAgICBhbGlhc2VkVmFsdWU6IGFsaWFzVmFsdWVcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgLy8gQWRkIG91ciBjZWxsIHRvIHRoaXMgcm93XHJcbiAgICAgICAgICBjZWxsc1tqIC0gMV0gPSBkYXRhQ2VsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJvd3MucHVzaChjZWxscyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGRhdGFUYWJsZTogRGF0YVRhYmxlID0ge1xyXG4gICAgICAgIGRhdGFUYWJsZTogcm93cyxcclxuICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgIG1hcmtzOiBtYXJrc1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmVzdWx0LnB1c2goZGF0YVRhYmxlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9BY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBFbnVtcyBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9FbnVtcyc7XHJcbmltcG9ydCB7XHJcbiAgRGF0YURpY3Rpb25hcnlQcmVzTW9kZWwsXHJcbiAgVW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtblByZXNNb2RlbCxcclxuICBVbmRlcmx5aW5nRGF0YVRhYmxlUHJlc01vZGVsLFxyXG4gIFZpekRhdGFQcmVzTW9kZWxcclxufSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QcmVzTW9kZWxzJztcclxuaW1wb3J0IHsgUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MgYXMgRW51bU1hcHBpbmcgfSBmcm9tICcuL0VudW1NYXBwaW5ncyc7XHJcblxyXG5pbXBvcnQgeyBEYXRhSGVhZGVyLCBEYXRhVGFibGUsIERhdGFWYWx1ZSwgVW5kZXJseWluZ0RhdGFUYWJsZSB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG4vKipcclxuICogQ29udGFpbnMgc3RhdGljIGhlbHBlciBtZXRob2RzIGZvciBjb252ZXJ0aW5nIGZyb20gYW4gdW5kZXJseWluZyBkYXRhIHByZXMgbW9kZWwgaW50byB0aGUgYXBpIHJlcHJlc2VudGF0aW9uLlxyXG4gKiBNb3N0IG9mIHRoZSBjb2RlIGlzIGEgZGlyZWN0IHBvcnQgZnJvbSBBcGlVbmRlcmx5aW5nRGF0YUhhbmRsZXIuY3NcclxuICogaHR0cHM6Ly9vcGVuZ3Jvay9zb3VyY2UveHJlZi90ZWFtc19uZWFyL3dvcmtncm91cC92cWx3ZWIvc2NyaXB0c2hhcnAvc3JjL1VJL0FwaS9BcGlVbmRlcmx5aW5nRGF0YUhhbmRsZXIuY3NcclxuICovXHJcbmV4cG9ydCBjbGFzcyBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlciB7XHJcbiAgcHVibGljIHN0YXRpYyBsb29rdXBWYWx1ZUZyb21EaWN0aW9uYXJ5KGRhdGFEaWN0aW9uYXJ5OiBEYXRhRGljdGlvbmFyeVByZXNNb2RlbCwgZHQ6IEVudW1zLkRhdGFUeXBlLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAoaW5kZXggPCAwKSB7XHJcbiAgICAgIC8vIHBlciBjbCAyODAzOTYgLyBidWd6aWQgODExOTcgbmVnYXRpdmUgZGF0YSB2YWx1ZSBpbmRleCBtZWFucyB0aGF0IGl0IGlzIHNwZWNpYWxcclxuICAgICAgZHQgPSBFbnVtcy5EYXRhVHlwZS5EVF9TVFJJTkc7XHJcbiAgICAgIGluZGV4ID0gLWluZGV4IC0gMTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBjb25zdCByYXdWYWx1ZSA9IFVuZGVybHlpbmdEYXRhQ29udmVydGVyLmdldFJhd1ZhbHVlKGRhdGFEaWN0aW9uYXJ5LCBkdCwgaW5kZXgpO1xyXG4gICAgaWYgKHJhd1ZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgIHJlc3VsdCA9IHJhd1ZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cclxuICBwdWJsaWMgc3RhdGljIGdldFJhd1ZhbHVlKGRhdGFEaWN0aW9uYXJ5OiBEYXRhRGljdGlvbmFyeVByZXNNb2RlbCwgZHQ6IEVudW1zLkRhdGFUeXBlLCBpbmRleDogbnVtYmVyKTogYW55IHtcclxuICAgIGlmICghZGF0YURpY3Rpb25hcnkuZGF0YVNlZ21lbnRzKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRhdGFEaWN0aW9uYXJ5LmRhdGFTZWdtZW50cykpIHtcclxuICAgICAgY29uc3QgZGF0YVNlZ21lbnQgPSBkYXRhRGljdGlvbmFyeS5kYXRhU2VnbWVudHNba2V5XTtcclxuICAgICAgZm9yIChjb25zdCBkYXRhQ29sdW1uIG9mIGRhdGFTZWdtZW50LmRhdGFDb2x1bW5zKSB7XHJcbiAgICAgICAgaWYgKCFkYXRhQ29sdW1uIHx8IGRhdGFDb2x1bW4uZGF0YVR5cGUgIT09IGR0KSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChpbmRleCA8IGRhdGFDb2x1bW4uZGF0YVZhbHVlcy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiBkYXRhQ29sdW1uLmRhdGFWYWx1ZXNbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW5kZXggLT0gZGF0YUNvbHVtbi5kYXRhVmFsdWVzLmxlbmd0aDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBidWlsZERhdGFUYWJsZShcclxuICAgIGRhdGFEaWN0aW9uYXJ5OiBEYXRhRGljdGlvbmFyeVByZXNNb2RlbCwgY29sdW1uczogQXJyYXk8VW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtblByZXNNb2RlbD4pOiBEYXRhVGFibGUge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhVGFibGUgPSB7XHJcbiAgICAgIGRhdGFUYWJsZTogVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIuYnVpbGRUYWJsZShkYXRhRGljdGlvbmFyeSwgY29sdW1ucyksXHJcbiAgICAgIGhlYWRlcnM6IGNvbHVtbnMubWFwKChjLCBpKSA9PiBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5idWlsZENvbHVtbk1vZGVsKGMsIGkpKVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBidWlsZFVuZGVybHlpbmdEYXRhVGFibGUoaXNTdW1tYXJ5OiBib29sZWFuLCB1bmRlcmx5aW5nRGF0YVRhYmxlOiBVbmRlcmx5aW5nRGF0YVRhYmxlUHJlc01vZGVsKTogVW5kZXJseWluZ0RhdGFUYWJsZSB7XHJcbiAgICBjb25zdCByZXN1bHQ6IFVuZGVybHlpbmdEYXRhVGFibGUgPSB7XHJcbiAgICAgIGRhdGE6IFVuZGVybHlpbmdEYXRhQ29udmVydGVyLmJ1aWxkRGF0YVRhYmxlKHVuZGVybHlpbmdEYXRhVGFibGUuZGF0YURpY3Rpb25hcnksIHVuZGVybHlpbmdEYXRhVGFibGUudW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtbnMpLFxyXG4gICAgICBpc1N1bW1hcnk6IGlzU3VtbWFyeVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBidWlsZEFjdGl2ZU1hcmtzVGFibGUoZGF0YURpY3Rpb25hcnk6IERhdGFEaWN0aW9uYXJ5UHJlc01vZGVsLCB2aXpEYXRhOiBWaXpEYXRhUHJlc01vZGVsKTogRGF0YVRhYmxlIHtcclxuICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uYXBpTm90SW1wbGVtZW50ZWQoWydidWlsZEFjdGl2ZU1hcmtzVGFibGUnXSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBidWlsZENvbHVtbk1vZGVsKGNvbHVtbjogVW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtblByZXNNb2RlbCwgaW5kZXg6IG51bWJlcik6IERhdGFIZWFkZXIge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZGF0YVR5cGU6IEVudW1NYXBwaW5nLmRhdGFUeXBlLmNvbnZlcnQoY29sdW1uLmRhdGFUeXBlKSxcclxuICAgICAgZmllbGROYW1lOiBjb2x1bW4uZm4sXHJcbiAgICAgIGZpZWxkQ2FwdGlvbjogY29sdW1uLmZpZWxkQ2FwdGlvbixcclxuICAgICAgaXNSZWZlcmVuY2VkOiAhIWNvbHVtbi5pc1JlZmVyZW5jZWQsXHJcbiAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGJ1aWxkVGFibGUoXHJcbiAgICBkYXRhRGljdGlvbmFyeTogRGF0YURpY3Rpb25hcnlQcmVzTW9kZWwsIGNvbHVtbnM6IEFycmF5PFVuZGVybHlpbmdEYXRhVGFibGVDb2x1bW5QcmVzTW9kZWw+KTogQXJyYXk8QXJyYXk8RGF0YVZhbHVlPj4ge1xyXG5cclxuICAgIGlmIChjb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbmV3IEFycmF5PEFycmF5PERhdGFWYWx1ZT4+KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgcm93Q291bnQgPSBjb2x1bW5zWzBdLmZvcm1hdFZhbElkeHMubGVuZ3RoO1xyXG4gICAgY29uc3QgY29sdW1uQ291bnQgPSBjb2x1bW5zLmxlbmd0aDtcclxuXHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8QXJyYXk8RGF0YVZhbHVlPj4ocm93Q291bnQpO1xyXG5cclxuICAgIC8vIEluaXRpYWxpemUgYWxsIG9mIG91ciByb3dzXHJcbiAgICBmb3IgKGxldCByb3dJbmRleCA9IDA7IHJvd0luZGV4IDwgcm93Q291bnQ7IHJvd0luZGV4KyspIHtcclxuICAgICAgcmVzdWx0W3Jvd0luZGV4XSA9IG5ldyBBcnJheTxEYXRhVmFsdWU+KGNvbHVtbkNvdW50KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBHbyB0aHJvdWdoIGNvbHVtbi1ieS1jb2x1bW4gYW5kIGNvbnZlcnQgdGhlIHZhbHVlc1xyXG4gICAgZm9yIChsZXQgY29sdW1uSW5kZXggPSAwOyBjb2x1bW5JbmRleCA8IGNvbHVtbkNvdW50OyBjb2x1bW5JbmRleCsrKSB7XHJcbiAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbY29sdW1uSW5kZXhdO1xyXG4gICAgICBmb3IgKGxldCByb3dJbmRleCA9IDA7IHJvd0luZGV4IDwgcm93Q291bnQ7IHJvd0luZGV4KyspIHtcclxuICAgICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IFVuZGVybHlpbmdEYXRhQ29udmVydGVyLmxvb2t1cFZhbHVlRnJvbURpY3Rpb25hcnkoXHJcbiAgICAgICAgICAgIGRhdGFEaWN0aW9uYXJ5LCBFbnVtcy5EYXRhVHlwZS5EVF9TVFJJTkcsIGNvbHVtbi5mb3JtYXRWYWxJZHhzW3Jvd0luZGV4XSk7XHJcblxyXG4gICAgICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5pc051bGwoWydmb3JtYXR0ZWRWYWx1ZSddKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbHVlOiBEYXRhVmFsdWUgPSB7XHJcbiAgICAgICAgICB2YWx1ZTogVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIubG9va3VwVmFsdWVGcm9tRGljdGlvbmFyeShcclxuICAgICAgICAgICAgZGF0YURpY3Rpb25hcnksIGNvbHVtbi5kYXRhVHlwZSwgY29sdW1uLnZhbHVlSW5kaWNlc1tyb3dJbmRleF0pLFxyXG4gICAgICAgICAgZm9ybWF0dGVkVmFsdWU6IGZvcm1hdHRlZFZhbHVlLFxyXG4gICAgICAgICAgYWxpYXNlZFZhbHVlOiBmb3JtYXR0ZWRWYWx1ZVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJlc3VsdFtyb3dJbmRleF1bY29sdW1uSW5kZXhdID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9VbmRlcmx5aW5nRGF0YUNvbnZlcnRlci50c1xuICoqLyIsImltcG9ydCAqIGFzIEFwaSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuaW1wb3J0ICogYXMgUHJlc0xheWVyIGZyb20gJy4uLy4uL2dlbi1zcmMvcHJlc2xheWVyL1ByZXNNb2RlbHMnO1xyXG5pbXBvcnQgeyBBcGlUb1ByZXNMYXllckVudW1NYXBwaW5ncyBhcyBFbnVtQ29udmVydGVyIH0gZnJvbSAnLi9FbnVtTWFwcGluZ3MnO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzIGNvbnRhaW5pbmcgaGVscGVyIG1ldGhvZHMgZm9yIGNvbnZlcnRpbmcgZnJvbSBBcGlQcmVzTW9kZWxzIHRvIHRoZWlyIFByZXNMYXllciBlcXVpdmFsZW50c1xyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBBcGlUb1ByZXNMYXllckNvbnZlcnRlclxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFwaVRvUHJlc0xheWVyQ29udmVydGVyIHtcclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRTaGVldFBhdGgoYXBpU2hlZXRQYXRoPzogQXBpLlNoZWV0UGF0aCk6IFByZXNMYXllci5TaGVldFBhdGhQcmVzTW9kZWwge1xyXG4gICAgaWYgKCFhcGlTaGVldFBhdGgpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5pc1VuZGVmaW5lZChbJ3NoZWV0UGF0aCddKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXN1bHQ6IFByZXNMYXllci5TaGVldFBhdGhQcmVzTW9kZWwgPSB7XHJcbiAgICAgIHNoZWV0TmFtZTogYXBpU2hlZXRQYXRoLnNoZWV0TmFtZSxcclxuICAgICAgaXNEYXNoYm9hcmQ6IGFwaVNoZWV0UGF0aC5pc0Rhc2hib2FyZCxcclxuICAgICAgc3Rvcnlib2FyZDogYXBpU2hlZXRQYXRoLnN0b3J5Ym9hcmQgfHwgJycsXHJcbiAgICAgIGZsaXBib2FyZFpvbmVJZDogYXBpU2hlZXRQYXRoLmZsaXBib2FyZFpvbmVJRCB8fCAwLFxyXG4gICAgICBzdG9yeVBvaW50SWQ6IGFwaVNoZWV0UGF0aC5zdG9yeVBvaW50SUQgfHwgMCxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydEV4dGVuc2lvbkxvY2F0b3IoYXBpRXh0ZW5zaW9uTG9jYXRvcjogQXBpLkV4dGVuc2lvbkxvY2F0b3IpOiBQcmVzTGF5ZXIuQWRkSW5Mb2NhdG9yUHJlc01vZGVsIHtcclxuICAgIGNvbnN0IHJlc3VsdDogUHJlc0xheWVyLkFkZEluTG9jYXRvclByZXNNb2RlbCA9IHtcclxuICAgICAgYWRkSW5JbnN0YW5jZUlkOiBhcGlFeHRlbnNpb25Mb2NhdG9yLmluc3RhbmNlSWQsXHJcbiAgICAgIHNoZWV0UGF0aDogQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFNoZWV0UGF0aChhcGlFeHRlbnNpb25Mb2NhdG9yLmRhc2hib2FyZFBhdGgpXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRWaXN1YWxJZChhcGlWaXN1YWxpZDogQXBpLlZpc3VhbElkKTogUHJlc0xheWVyLlZpc3VhbElEUHJlc01vZGVsIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgd29ya3NoZWV0OiBhcGlWaXN1YWxpZC53b3Jrc2hlZXQsXHJcbiAgICAgIGRhc2hib2FyZDogYXBpVmlzdWFsaWQuZGFzaGJvYXJkLFxyXG4gICAgICBzdG9yeWJvYXJkOiBhcGlWaXN1YWxpZC5zdG9yeWJvYXJkLFxyXG4gICAgICBzdG9yeVBvaW50SWQ6IGFwaVZpc3VhbGlkLnN0b3J5UG9pbnRJRCxcclxuICAgICAgZmxpcGJvYXJkWm9uZUlkOiBhcGlWaXN1YWxpZC5mbGlwYm9hcmRab25lSURcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdCBhcyBQcmVzTGF5ZXIuVmlzdWFsSURQcmVzTW9kZWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRWaXN1YWxJZFRvV29ya3NoZWV0KGFwaVZpc3VhbElkOiBBcGkuVmlzdWFsSWQpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGFwaVZpc3VhbElkLndvcmtzaGVldDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFZpc3VhbElkVG9EYXNoYm9hcmQoYXBpVmlzdWFsSWQ6IEFwaS5WaXN1YWxJZCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYXBpVmlzdWFsSWQuZGFzaGJvYXJkIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RmlsdGVyVmFsdWVzKGZpbHRlclZhbHVlczogQXJyYXk8c3RyaW5nPik6IEFycmF5PHN0cmluZz4ge1xyXG4gICAgaWYgKGZpbHRlclZhbHVlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgLy8gcGxhdGZvcm0gY29kZSBleHBlY3RzIGFuIGVtcHR5IHN0cmluZyBmb3IgY2xlYXJpbmcgZmlsdGVyIHZhbHVlc1xyXG4gICAgICByZXR1cm4gWycnXTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWx0ZXJWYWx1ZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRGaWx0ZXJUeXBlKGZpbHRlclVwZGF0ZVR5cGU6IEFwaS5GaWx0ZXJVcGRhdGVUeXBlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBFbnVtQ29udmVydGVyLmZpbHRlclVwZGF0ZVR5cGUuY29udmVydChmaWx0ZXJVcGRhdGVUeXBlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgQ29udmVydE51bGxPcHRpb24obnVsbE9wdGlvbjogQXBpLkZpbHRlck51bGxPcHRpb24pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEVudW1Db252ZXJ0ZXIubnVsbE9wdGlvbi5jb252ZXJ0KG51bGxPcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBDb252ZXJ0RmlsdGVyRG9tYWluVHlwZShmaWx0ZXJEb21haW5UeXBlOiBBcGkuRmlsdGVyRG9tYWluVHlwZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gRW51bUNvbnZlcnRlci5maWx0ZXJEb21haW5UeXBlLmNvbnZlcnQoZmlsdGVyRG9tYWluVHlwZSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL21hcHBpbmdzL0FwaVRvUHJlc0xheWVyQ29udmVydGVyLnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBDYXRlZ29yaWNhbERvbWFpbixcclxuICBDYXRlZ29yaWNhbEZpbHRlcixcclxuICBEYXRhVmFsdWUsXHJcbiAgRmlsdGVyLFxyXG4gIEZpbHRlclR5cGUsXHJcbiAgUmFuZ2VEb21haW4sXHJcbiAgUmFuZ2VGaWx0ZXIsXHJcbiAgUmVsYXRpdmVEYXRlRmlsdGVyLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIERhdGFUeXBlLFxyXG4gIEZpbHRlcnNRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcyBhcyBJbmNsdWRlZFZhbHVlcyxcclxuICBGaWx0ZXJUeXBlIGFzIFByZXNMYXllckZpbHRlclR5cGUsXHJcbn0gZnJvbSAnLi4vLi4vZ2VuLXNyYy9wcmVzbGF5ZXIvRW51bXMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBDYXRlZ29yaWNhbERvbWFpblByZXNNb2RlbCxcclxuICBGaWx0ZXJJbmZvUHJlc01vZGVsLFxyXG4gIEZpbHRlclZhbHVlUHJlc01vZGVsLFxyXG4gIFF1YW50aXRhdGl2ZURvbWFpblByZXNNb2RlbCxcclxufSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QcmVzTW9kZWxzJztcclxuXHJcbmltcG9ydCB7IFByZXNMYXllclRvQXBpRW51bU1hcHBpbmdzIGFzIEVudW1NYXBwaW5ncyB9IGZyb20gJy4vRW51bU1hcHBpbmdzJztcclxuaW1wb3J0IHsgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIgfSBmcm9tICcuL1ByZXNMYXllclRvQXBpQ29udmVydGVyJztcclxuXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJzQ29udmVydGVyIHtcclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRGaWx0ZXJzUHJlc01vZGVsKGZpbHRlclBtczogRmlsdGVySW5mb1ByZXNNb2RlbFtdKTogRmlsdGVyW10ge1xyXG4gICAgbGV0IGZpbHRlcnM6IEZpbHRlcltdID0gW107XHJcbiAgICBmaWx0ZXJQbXMuZm9yRWFjaCggZmlsdGVyUG0gPT4ge1xyXG4gICAgICBzd2l0Y2ggKGZpbHRlclBtLmZpbHRlclR5cGUpIHtcclxuICAgICAgICBjYXNlIFByZXNMYXllckZpbHRlclR5cGUuRkxUUl9DYXRlZ29yaWNhbDoge1xyXG4gICAgICAgICAgZmlsdGVycy5wdXNoKEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydENhdGVnb3JpY2FsRmlsdGVyUHJlc01vZGVsKGZpbHRlclBtKSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNhc2UgUHJlc0xheWVyRmlsdGVyVHlwZS5GTFRSX1F1YW50aXRhdGl2ZToge1xyXG4gICAgICAgICAgZmlsdGVycy5wdXNoKEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydFF1YW50aXRhdGl2ZUZpbHRlclByZXNNb2RlbChmaWx0ZXJQbSkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjYXNlIFByZXNMYXllckZpbHRlclR5cGUuRkxUUl9SZWxhdGl2ZURhdGU6IHtcclxuICAgICAgICAgIGZpbHRlcnMucHVzaChGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRSZWxhdGl2ZURhdGVGaWx0ZXJQcmVzTW9kZWwoZmlsdGVyUG0pKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZmlsdGVycztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydENhdGVnb3JpY2FsRmlsdGVyUHJlc01vZGVsKGZpbHRlclBtOiBGaWx0ZXJJbmZvUHJlc01vZGVsKTogQ2F0ZWdvcmljYWxGaWx0ZXIge1xyXG4gICAgbGV0IHNlbGVjdGVkVmFsdWVzOiBEYXRhVmFsdWVbXSA9IGZpbHRlclBtLmNhdGVnb3JpY2FsRmlsdGVySW5mby5jYXB0aW9uZWRGaWx0ZXJWYWx1ZUxpc3QubWFwKGZpbHRlclZhbHVlID0+IHtcclxuICAgICAgcmV0dXJuIEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKGZpbHRlclZhbHVlKTtcclxuICAgIH0pO1xyXG4gICAgbGV0IGZpbHRlcjogQ2F0ZWdvcmljYWxGaWx0ZXIgPSB7XHJcbiAgICAgIHZhbHVlczogc2VsZWN0ZWRWYWx1ZXMsXHJcbiAgICAgIGlzRXhjbHVkZTogZmlsdGVyUG0uY2F0ZWdvcmljYWxGaWx0ZXJJbmZvLmV4Y2x1ZGUsXHJcbiAgICAgIGZpbHRlclR5cGU6IEZpbHRlclR5cGUuQ2F0ZWdvcmljYWwsXHJcbiAgICAgIGZpZWxkQ2FwdGlvbjogZmlsdGVyUG0uZmllbGRDYXB0aW9uLFxyXG4gICAgICBmaWVsZE5hbWU6IGZpbHRlclBtLmZuLFxyXG4gICAgICB2aXN1YWxJZDogUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkKGZpbHRlclBtLnZpc3VhbElkUHJlc01vZGVsKVxyXG4gICAgfTtcclxuICAgIHJldHVybiBmaWx0ZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRRdWFudGl0YXRpdmVGaWx0ZXJQcmVzTW9kZWwoZmlsdGVyUG06IEZpbHRlckluZm9QcmVzTW9kZWwpOiBSYW5nZUZpbHRlciB7XHJcbiAgICBsZXQgbWluVmFsdWU6IERhdGFWYWx1ZSA9IEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKFxyXG4gICAgICBmaWx0ZXJQbS5xdWFudGl0YXRpdmVGaWx0ZXJJbmZvLmNhcHRpb25lZFJhbmdlTWluXHJcbiAgICApO1xyXG4gICAgbGV0IG1heFZhbHVlOiBEYXRhVmFsdWUgPSBGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRGaWx0ZXJWYWx1ZVByZXNNb2RlbChcclxuICAgICAgZmlsdGVyUG0ucXVhbnRpdGF0aXZlRmlsdGVySW5mby5jYXB0aW9uZWRSYW5nZU1heFxyXG4gICAgKTtcclxuICAgIGxldCBmaWx0ZXI6IFJhbmdlRmlsdGVyID0ge1xyXG4gICAgICBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlLlJhbmdlLFxyXG4gICAgICBmaWVsZENhcHRpb246IGZpbHRlclBtLmZpZWxkQ2FwdGlvbixcclxuICAgICAgZmllbGROYW1lOiBmaWx0ZXJQbS5mbixcclxuICAgICAgdmlzdWFsSWQ6IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRWaXN1YWxJZChmaWx0ZXJQbS52aXN1YWxJZFByZXNNb2RlbCksXHJcbiAgICAgIG1pbjogbWluVmFsdWUsXHJcbiAgICAgIG1heDogbWF4VmFsdWUsXHJcbiAgICAgIGluY2x1ZGVOdWxsVmFsdWVzOiBGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRJbmNsdWRlZE51bGxWYWx1ZXMoZmlsdGVyUG0ucXVhbnRpdGF0aXZlRmlsdGVySW5mby5pbmNsdWRlZClcclxuICAgIH07XHJcbiAgICByZXR1cm4gZmlsdGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0UmVsYXRpdmVEYXRlRmlsdGVyUHJlc01vZGVsKGZpbHRlclBtOiBGaWx0ZXJJbmZvUHJlc01vZGVsKTogUmVsYXRpdmVEYXRlRmlsdGVyIHtcclxuICAgIGxldCBhbmNob3JEYXRlVmFsdWU6IERhdGFWYWx1ZSA9IEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKFxyXG4gICAgICBmaWx0ZXJQbS5yZWxhdGl2ZURhdGVGaWx0ZXJJbmZvLmNhcHRpb25lZEFuY2hvckRhdGVcclxuICAgICk7XHJcbiAgICBsZXQgZmlsdGVyOiBSZWxhdGl2ZURhdGVGaWx0ZXIgPSB7XHJcbiAgICAgIGZpbHRlclR5cGU6IEZpbHRlclR5cGUuUmVsYXRpdmVEYXRlLFxyXG4gICAgICBmaWVsZENhcHRpb246IGZpbHRlclBtLmZpZWxkQ2FwdGlvbixcclxuICAgICAgZmllbGROYW1lOiBmaWx0ZXJQbS5mbixcclxuICAgICAgdmlzdWFsSWQ6IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRWaXN1YWxJZChmaWx0ZXJQbS52aXN1YWxJZFByZXNNb2RlbCksXHJcbiAgICAgIGFuY2hvckRhdGU6IGFuY2hvckRhdGVWYWx1ZSxcclxuICAgICAgcGVyaW9kVHlwZTogRW51bU1hcHBpbmdzLmRhdGVTdGVwUGVyaW9kLmNvbnZlcnQoZmlsdGVyUG0ucmVsYXRpdmVEYXRlRmlsdGVySW5mby5kYXRlUGVyaW9kVHlwZSksXHJcbiAgICAgIHJhbmdlVHlwZTogRW51bU1hcHBpbmdzLmRhdGVSYW5nZVR5cGUuY29udmVydChmaWx0ZXJQbS5yZWxhdGl2ZURhdGVGaWx0ZXJJbmZvLmRhdGVSYW5nZVR5cGUpLFxyXG4gICAgICByYW5nZU46IGZpbHRlclBtLnJlbGF0aXZlRGF0ZUZpbHRlckluZm8ucmFuZ2VOXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGZpbHRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydENhdGVnb3JpY2FsRG9tYWluKGRvbWFpblBtOiBDYXRlZ29yaWNhbERvbWFpblByZXNNb2RlbCk6IENhdGVnb3JpY2FsRG9tYWluIHtcclxuICAgIGxldCBkb21haW5WYWx1ZXM6IEFycmF5PERhdGFWYWx1ZT4gPSBkb21haW5QbS5jYXB0aW9uZWRGaWx0ZXJWYWx1ZUxpc3QubWFwKGZpbHRlclZhbHVlID0+IHtcclxuICAgICAgcmV0dXJuIEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKGZpbHRlclZhbHVlKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHsgdmFsdWVzOiBkb21haW5WYWx1ZXN9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0UXVhbnRpdGF0aXZlRG9tYWluKGRvbWFpblBtOiBRdWFudGl0YXRpdmVEb21haW5QcmVzTW9kZWwpOiBSYW5nZURvbWFpbiB7XHJcbiAgICBsZXQgbWluVmFsdWU6IERhdGFWYWx1ZSA9IEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKGRvbWFpblBtLmNhcHRpb25lZFJhbmdlTWluKTtcclxuICAgIGxldCBtYXhWYWx1ZTogRGF0YVZhbHVlID0gRmlsdGVyc0NvbnZlcnRlci5jb252ZXJ0RmlsdGVyVmFsdWVQcmVzTW9kZWwoZG9tYWluUG0uY2FwdGlvbmVkUmFuZ2VNYXgpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbWF4OiBtYXhWYWx1ZSxcclxuICAgICAgbWluOiBtaW5WYWx1ZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKGR2UE06IEZpbHRlclZhbHVlUHJlc01vZGVsKTogRGF0YVZhbHVlIHtcclxuICAgIC8qdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gICAgbGV0IHZhbHVlOiBhbnk7XHJcbiAgICBzd2l0Y2ggKGR2UE0uZGF0YVR5cGUpIHtcclxuICAgICAgY2FzZSBEYXRhVHlwZS5EVF9CT09MRUFOOiB7XHJcbiAgICAgICAgdmFsdWUgPSBCb29sZWFuKGR2UE0uZGF0YVZhbHVlU3RyKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIERhdGFUeXBlLkRUX0RBVEU6IHtcclxuICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKGR2UE0uZGF0YVZhbHVlU3RyKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIERhdGFUeXBlLkRUX0RBVEVUSU1FOiB7XHJcbiAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZShkdlBNLmRhdGFWYWx1ZVN0cik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSBEYXRhVHlwZS5EVF9JTlRFR0VSOiB7XHJcbiAgICAgICAgdmFsdWUgPSBOdW1iZXIucGFyc2VJbnQoZHZQTS5kYXRhVmFsdWVTdHIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUuRFRfUkVBTDoge1xyXG4gICAgICAgIHZhbHVlID0gTnVtYmVyLnBhcnNlRmxvYXQoZHZQTS5kYXRhVmFsdWVTdHIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRlZmF1bHQgdG8gc3RyaW5nXHJcbiAgICAgIGRlZmF1bHQ6IHtcclxuICAgICAgICB2YWx1ZSA9IGR2UE0uZGF0YVZhbHVlU3RyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgIC8vIFRPRE86IG5vIGVhc3kgd2F5IG9mIGdldHRpbmcgYmFjayBhbGlhc2VkIHZhbHVlIGZyb20gcGxhdGZvcm0sIHdpbGwgbmVlZCB0byBpbnZlc3RpZ2F0ZSBmdXJ0aGVyXHJcbiAgICAgIGFsaWFzZWRWYWx1ZTogJycsXHJcbiAgICAgIGZvcm1hdHRlZFZhbHVlOiBkdlBNLmRhdGFWYWx1ZURpc3BsYXlTdHJpbmdcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRJbmNsdWRlZE51bGxWYWx1ZXMoaW5jbHVkZU51bGw6IEluY2x1ZGVkVmFsdWVzKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKGluY2x1ZGVOdWxsID09PSBJbmNsdWRlZFZhbHVlcy5JblJhbmdlT3JOdWxsIHx8XHJcbiAgICAgIGluY2x1ZGVOdWxsID09PSBJbmNsdWRlZFZhbHVlcy5BbGwgfHxcclxuICAgICAgaW5jbHVkZU51bGwgPT09IEluY2x1ZGVkVmFsdWVzLk51bGxcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL21hcHBpbmdzL0ZpbHRlcnNDb252ZXJ0ZXIudHNcbiAqKi8iLCJpbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuLyoqXHJcbiAqIFNpbXBsZSByZWdpc3RyeSBjbGFzcyB3aGljaCBjcmVhdGVzIGEgbWFwcGluZyBiYXNlZCBvbiB0d28ga2V5cy5cclxuICpcclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgTWFwcGluZ1JlZ2lzdHJ5XHJcbiAqIEB0ZW1wbGF0ZSBUSW5wdXRFbnVtVHlwZVxyXG4gKiBAdGVtcGxhdGUgVE91dHB1dEVudW1UeXBlXHJcbiAqIEB0ZW1wbGF0ZSBUTWFwcGluZ1N0b3JhZ2VUeXBlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWFwcGluZ1JlZ2lzdHJ5PFRJbnB1dEVudW1UeXBlIGV4dGVuZHMgc3RyaW5nLCBUT3V0cHV0RW51bVR5cGUgZXh0ZW5kcyBzdHJpbmcsIFRNYXBwaW5nU3RvcmFnZVR5cGU+IHtcclxuICBwcml2YXRlIHN0YXRpYyBNSVNTSU5HX1JFUVVFU1RFRF9NQVBQSU5HOiBzdHJpbmcgPSAnTWlzc2luZyByZXF1ZXN0ZWQgbWFwcGluZzogJTEgdG8gJTInO1xyXG4gIHByaXZhdGUgX3JlZ2lzdHJ5OiB7IFtrZXk6IHN0cmluZ106IFRNYXBwaW5nU3RvcmFnZVR5cGUgfTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fcmVnaXN0cnkgPSB7fTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYXMoaW5wdXRUeXBlOiBUSW5wdXRFbnVtVHlwZSwgb3V0cHV0VHlwZTogVE91dHB1dEVudW1UeXBlKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLm1ha2VLZXkoaW5wdXRUeXBlLCBvdXRwdXRUeXBlKTtcclxuICAgIGlmICghdGhpcy5fcmVnaXN0cnkuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLl9yZWdpc3RyeVtrZXldKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQoaW5wdXRUeXBlOiBUSW5wdXRFbnVtVHlwZSwgb3V0cHV0VHlwZTogVE91dHB1dEVudW1UeXBlKTogVE1hcHBpbmdTdG9yYWdlVHlwZSB7XHJcbiAgICBpZiAoIXRoaXMuaGFzKGlucHV0VHlwZSwgb3V0cHV0VHlwZSkpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5lcnJvcihNYXBwaW5nUmVnaXN0cnkuTUlTU0lOR19SRVFVRVNURURfTUFQUElORywgW2lucHV0VHlwZSwgb3V0cHV0VHlwZV0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGtleSA9IHRoaXMubWFrZUtleShpbnB1dFR5cGUsIG91dHB1dFR5cGUpO1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlZ2lzdHJ5W2tleV07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkUmVnaXN0cmF0aW9uKGlucHV0VHlwZTogVElucHV0RW51bVR5cGUsIG91dHB1dFR5cGU6IFRPdXRwdXRFbnVtVHlwZSwgc3RvcmFnZUl0ZW06IFRNYXBwaW5nU3RvcmFnZVR5cGUpOiB2b2lkIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMubWFrZUtleShpbnB1dFR5cGUsIG91dHB1dFR5cGUpO1xyXG5cclxuICAgIC8vIEFkZCB0aGlzIGl0ZW1cclxuICAgIHRoaXMuX3JlZ2lzdHJ5W2tleV0gPSBzdG9yYWdlSXRlbTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbWJpbmVzIHRoZSB0d28ga2V5cyBpbnRvIGEgdW5pcXVlIHN0cmluZ1xyXG4gICAqXHJcbiAgICogQHByaXZhdGVcclxuICAgKiBAcGFyYW0ge1RJbnB1dEVudW1UeXBlfSBpbnB1dFR5cGVcclxuICAgKiBAcGFyYW0ge1RPdXRwdXRFbnVtVHlwZX0gb3V0cHV0VHlwZVxyXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XHJcbiAgICogQG1lbWJlcm9mIE1hcHBpbmdSZWdpc3RyeVxyXG4gICAqL1xyXG4gIHByaXZhdGUgbWFrZUtleShpbnB1dFR5cGU6IFRJbnB1dEVudW1UeXBlLCBvdXRwdXRUeXBlOiBUT3V0cHV0RW51bVR5cGUpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qga2V5T2JqID0geyBpbnB1dDogaW5wdXRUeXBlLCBvdXRwdXQ6IG91dHB1dFR5cGUgfTtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShrZXlPYmopO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9NYXBwaW5nUmVnaXN0cnkudHNcbiAqKi8iLCJpbXBvcnQgeyBEYXRhVHlwZSwgRGF0YVZhbHVlLCBEb21haW5SZXN0cmljdGlvblR5cGUsIFBhcmFtZXRlckluZm8gfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IFBhcmFtZXRlckN0cmxQcmVzTW9kZWwgfSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QcmVzTW9kZWxzJztcclxuaW1wb3J0IHsgUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MgYXMgRW51bU1hcHBpbmcgfSBmcm9tICcuL0VudW1NYXBwaW5ncyc7XHJcblxyXG4vKipcclxuICogQ29udGFpbnMgbG9naWMgZm9yIGNvbnZlcnRpbmcgUGFyYW1ldGVyIG1vZGVscyBpbnRvIHRoZWlyIGVxdWl2YWxlbnQgQXBpIHZlcnNpb25zXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIge1xyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFBhcmFtZXRlckxpc3QocGFyYW1ldGVyczogQXJyYXk8UGFyYW1ldGVyQ3RybFByZXNNb2RlbD4pOiBBcnJheTxQYXJhbWV0ZXJJbmZvPiB7XHJcbiAgICByZXR1cm4gcGFyYW1ldGVycy5tYXAoUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIuY29udmVydFBhcmFtZXRlcik7XHJcbiAgfVxyXG5cclxuICAvLyBDb252ZXJ0cyBhIHNpbmdsZSBwYXJhbWV0ZXIuXHJcbiAgLy8gUm91Z2ggcG9ydCBvZiBodHRwczovL29wZW5ncm9rL3NvdXJjZS94cmVmL2Rldl9uZXNzaWUvd29ya2dyb3VwL3ZxbHdlYi9zY3JpcHRzaGFycC9zcmMvVUkvQXBpL0FwaVBhcmFtZXRlckhhbmRsZXIuY3MjOTVcclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRQYXJhbWV0ZXIocGFyYW06IFBhcmFtZXRlckN0cmxQcmVzTW9kZWwpOiBQYXJhbWV0ZXJJbmZvIHtcclxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IFBhcmFtZXRlcnNEYXRhQ29udmVydGVyLmNvbnZlcnRBbGlhc2VkRGF0YVZhbHVlKHBhcmFtLnZhbHVlQWxpYXMsIHBhcmFtLmZvcm1hdHRlZFZhbHVlKTtcclxuICAgIGNvbnN0IGFsbG93YWJsZVZhbHVlc1R5cGUgPSBFbnVtTWFwcGluZy5wYXJhbWV0ZXJUeXBlc0RvbWFpblR5cGUuY29udmVydChwYXJhbS5wYXJhbWV0ZXJEb21haW5UeXBlKTtcclxuXHJcbiAgICBjb25zdCByZXN1bHQ6IFBhcmFtZXRlckluZm8gPSB7XHJcbiAgICAgIG5hbWU6IHBhcmFtLmZpZWxkQ2FwdGlvbixcclxuICAgICAgZmllbGROYW1lOiBwYXJhbS5wYXJhbWV0ZXJOYW1lLFxyXG4gICAgICBkYXRhVHlwZTogRW51bU1hcHBpbmcuZGF0YVR5cGUuY29udmVydChwYXJhbS5kYXRhVHlwZSksXHJcbiAgICAgIGN1cnJlbnRWYWx1ZTogY3VycmVudFZhbHVlLFxyXG4gICAgICBhbGxvd2FibGVWYWx1ZXNUeXBlOiBhbGxvd2FibGVWYWx1ZXNUeXBlXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChhbGxvd2FibGVWYWx1ZXNUeXBlID09PSBEb21haW5SZXN0cmljdGlvblR5cGUuTGlzdCkge1xyXG4gICAgICBjb25zdCBhbGxvd2FibGVWYWx1ZXMgPSBuZXcgQXJyYXk8RGF0YVZhbHVlPigpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcmFtLnZhbHVlc0FsaWFzZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBhZHYgPSBwYXJhbS52YWx1ZXNBbGlhc2VzW2ldO1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gcGFyYW0uZm9ybWF0dGVkVmFsdWVzW2ldO1xyXG4gICAgICAgIGFsbG93YWJsZVZhbHVlcy5wdXNoKFBhcmFtZXRlcnNEYXRhQ29udmVydGVyLmNvbnZlcnRBbGlhc2VkRGF0YVZhbHVlKGFkdiwgZm9ybWF0dGVkVmFsdWUpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmVzdWx0LmFsbG93YWJsZVZhbHVlcyA9IGFsbG93YWJsZVZhbHVlcztcclxuXHJcbiAgICB9IGVsc2UgaWYgKGFsbG93YWJsZVZhbHVlc1R5cGUgPT09IERvbWFpblJlc3RyaWN0aW9uVHlwZS5SYW5nZSkge1xyXG4gICAgICByZXN1bHQubWluVmFsdWUgPSBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci5tYWtlRGF0YVZhbHVlKHBhcmFtLnZhbHVlTWluLCBwYXJhbS5mb3JtYXR0ZWRNaW4pO1xyXG4gICAgICByZXN1bHQubWF4VmFsdWUgPSBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci5tYWtlRGF0YVZhbHVlKHBhcmFtLnZhbHVlTWF4LCBwYXJhbS5mb3JtYXR0ZWRNYXgpO1xyXG4gICAgICByZXN1bHQuc3RlcFNpemUgPSBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci5jb252ZXJ0TnVtYmVyKHJlc3VsdC5kYXRhVHlwZSwgcGFyYW0udmFsdWVJbmMpO1xyXG4gICAgICByZXN1bHQuZGF0ZVN0ZXBQZXJpb2QgPSBFbnVtTWFwcGluZy5kYXRlU3RlcFBlcmlvZC5jb252ZXJ0KHBhcmFtLmRhdGVQZXJpb2RUeXBlLCBmYWxzZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBOb3RoaW5nIHRvIGRvIGluIHRoZSBjYXNlIHRoYXQgYWxsIHZhbHVlcyBhcmUgYWxsb3dlZFxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0TnVtYmVyKGRhdGFUeXBlOiBEYXRhVHlwZSwgdmFsdWU6IHN0cmluZyk6IG51bWJlciB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgaWYgKGRhdGFUeXBlID09PSBEYXRhVHlwZS5JbnQgfHwgZGF0YVR5cGUgPT09IERhdGFUeXBlLkRhdGUgfHwgZGF0YVR5cGUgPT09IERhdGFUeXBlLkRhdGVUaW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YVR5cGUgPT09IERhdGFUeXBlLkZsb2F0KSB7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQodmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIC8qdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gIHByaXZhdGUgc3RhdGljIG1ha2VEYXRhVmFsdWUodmFsdWU6IGFueSwgZm9ybWF0dGVkVmFsdWU6IHN0cmluZywgYWxpYXM/OiBzdHJpbmcpOiBEYXRhVmFsdWUge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhVmFsdWUgPSB7XHJcbiAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgICAgZm9ybWF0dGVkVmFsdWU6IGZvcm1hdHRlZFZhbHVlLFxyXG4gICAgICBhbGlhc2VkVmFsdWU6IGFsaWFzIHx8IGZvcm1hdHRlZFZhbHVlXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKnRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cclxuICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0QWxpYXNlZERhdGFWYWx1ZShhZHY6IGFueVtdLCBmb3JtYXR0ZWRWYWx1ZTogc3RyaW5nKTogRGF0YVZhbHVlIHtcclxuICAgIC8vIEFsaWFzZWREYXRhVmFsdWVzIGFyZSBzZXJpYWxpemVkIGluIGtpbmQgb2YgYSBzdHJhbmdlIHdheSBmcm9tIHRoZSBwbGF0Zm9ybSBjb2RlLiBUaGV5IGFyZSBvdXRwdXRcclxuICAgIC8vIGFzIGFuIGFycmF5IG9mIDIgdmFsdWVzLiBUaGUgZmlyc3QgaXMgdGhlIGFjdHVhbCB2YWx1ZSwgdGhlIHNlY29uZCBpcyB0aGUgYWxpYXMuIFNlZSBBbGlhc2VkRGF0YVZhbHVlU2VyaWFsaXplcjo6VG9TZXJpYWxpemVyXHJcbiAgICBpZiAoIWFkdiB8fCAhKGFkdiBpbnN0YW5jZW9mIEFycmF5KSkge1xyXG4gICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWQoWydhbGlhc2VkIGRhdGEgdmFsdWUnXSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmFsdWUgPSBhZHZbMF07XHJcbiAgICBjb25zdCBhbGlhcyA9IGFkdi5sZW5ndGggPCAyID8gdW5kZWZpbmVkIDogYWR2WzFdIGFzIHN0cmluZztcclxuXHJcbiAgICByZXR1cm4gUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIubWFrZURhdGFWYWx1ZSh2YWx1ZSwgZm9ybWF0dGVkVmFsdWUsIGFsaWFzKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktY29yZS9zcmMvbWFwcGluZ3MvUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIudHNcbiAqKi8iLCJpbXBvcnQgeyBBZGRJbkluc3RhbmNlUHJlc01vZGVsIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWNvcmUnO1xyXG5pbXBvcnQgKiBhcyBjb250cmFjdCBmcm9tICdAdGFibGVhdS9wcmVzbGF5ZXItYXBpLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7XHJcbiAgQWRkSW5BcGlQcmVzTGF5ZXJJbnRlcm9wT2JqZWN0LFxyXG4gIE5vdGlmaWNhdGlvbiBhcyBQcmVzTGF5ZXJOb3RpZmljYXRpb24sXHJcbn0gZnJvbSAnLi90eXBlcy9BZGRJbkFwaVByZXNMYXllckludGVyb3BPYmplY3QnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVuYXRpb24gb2YgdGhlIFByZXNlbnRhdGlvbkxheWVyIGNvbnRyYWN0IHdpdGggYSBiaXQgb2YgZXh0cmEgaW5mb3JtYXRpb25cclxuICogYWRkZWQgdG8gd29yayB3aXRoIGFkZC1pbnMuIE1vc3Qgd29yayBpcyBkZWxlZ2F0ZWQgZG93biB0byB0aGUgaW50ZXJvcE9iamVjdCB3aGljaFxyXG4gKiBjb21tdW5pY2F0ZXMgZGlyZWN0bHkgd2l0aCB0aGUgYysrIGxheWVyIHZpYSBRV2ViQ2hhbm5lbFxyXG4gKlxyXG4gKiBAY2xhc3MgQWRkSW5BcGlQcmVzTGF5ZXJJbXBsXHJcbiAqIEBpbXBsZW1lbnRzIHtjb250cmFjdC5QcmVzZW50YXRpb25MYXllcn1cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBZGRJbkFwaVByZXNMYXllckltcGwgaW1wbGVtZW50cyBjb250cmFjdC5QcmVzZW50YXRpb25MYXllciB7XHJcbiAgICBwcml2YXRlIF9ub3RpZmljYXRpb25IYW5kbGVyczogeyBbZXZlbnRpZDogc3RyaW5nXTogW2NvbnRyYWN0Lk5vdGlmaWNhdGlvbkhhbmRsZXJdIH07XHJcblxyXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ludGVyb3BPYmplY3Q6IEFkZEluQXBpUHJlc0xheWVySW50ZXJvcE9iamVjdCkge1xyXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzID0ge307XHJcbiAgICAgICAgaWYgKF9pbnRlcm9wT2JqZWN0ICYmIF9pbnRlcm9wT2JqZWN0Lk9uTm90aWZpY2F0aW9uKSB7XHJcbiAgICAgICAgICAgIF9pbnRlcm9wT2JqZWN0Lk9uTm90aWZpY2F0aW9uLmNvbm5lY3Qobm90aWZpY2F0aW9uID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgaW5zdGFuY2UgaW5mbyBmb3IgdGhpcyBwYXJ0aWN1bGFyIGFkZC1pbiBmcm9tIHRoZSBjKysgY29kZVxyXG4gICAgICpcclxuICAgICAqIEByZWFkb25seVxyXG4gICAgICogQHR5cGUge0FkZEluSW5zdGFuY2VQcmVzTW9kZWx9XHJcbiAgICAgKiBAbWVtYmVyb2YgQWRkSW5BcGlQcmVzTGF5ZXJJbXBsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgQWRkSW5JbnN0YW5jZUluZm8oKTogQWRkSW5JbnN0YW5jZVByZXNNb2RlbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ludGVyb3BPYmplY3QuYWRkSW5JbnN0YW5jZUluZm8gYXMgQWRkSW5JbnN0YW5jZVByZXNNb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgYSBjb21tYW5kIHVzaW5nIHRoZSBwcmVzLWxheWVyIGludGVyb3BcclxuICAgICAqXHJcbiAgICAgKiBAdGVtcGxhdGUgVCAtIFRoZSBleHBlY3RlZCByZXR1cm4gdHlwZVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbW1hbmROYW1lc3BhY2VcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjb21tYW5kTmFtZVxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IHBhcmFtc1xyXG4gICAgICogQHJldHVybnMge1Byb21pc2U8VD59XHJcbiAgICAgKiBAbWVtYmVyb2YgQWRkSW5BcGlQcmVzTGF5ZXJJbXBsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpbnZva2VDb21tYW5kPFQ+KGNvbW1hbmROYW1lc3BhY2U6IHN0cmluZywgY29tbWFuZE5hbWU6IHN0cmluZywgcGFyYW1zOiBvYmplY3QpOiBQcm9taXNlPFQ+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29tbWFuZE5hbWVzcGFjZSA9IGNvbW1hbmROYW1lc3BhY2UgfHwgJ3RhYmRvYyc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm9wT2JqZWN0LkV4ZWN1dGVDb21tYW5kPFQ+KFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmROYW1lc3BhY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZE5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5TdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXNnID0gJ0V4ZWN1dGVDb21tYW5kIGZhaWxlZCwgd2l0aCByZXN1bHQ6JyArIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLlJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKG1zZykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5SZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIHdpbGwgcmVnaXN0cmF0aW9uIGEgc2luZ2xlIGluc3RhbmNlIG9mIGEgbm90aWZpY2F0aW9uIGhhbmRsZXIgd2l0aCB0aGUgTmF0aXZlIEMrKyBvYmplY3QsXHJcbiAgICAvLyBhbmQgaW1wbGVtZW50IG11bHRpLWRpc3BhdGNoIHRvIHRoZSB3ZWIgb2JqZWN0cyBmcm9tIGguZXJlXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJOb3RpZmljYXRpb25IYW5kbGVyKGV2ZW50SWQ6IHN0cmluZywgaGFuZGxlcjogY29udHJhY3QuTm90aWZpY2F0aW9uSGFuZGxlcik6ICgpID0+IHZvaWQge1xyXG4gICAgICAgIGlmIChldmVudElkIGluIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzW2V2ZW50SWRdLnB1c2goaGFuZGxlcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnNbZXZlbnRJZF0gPSBbaGFuZGxlcl07XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm9wT2JqZWN0LlJlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlcihldmVudElkKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnUmVnaXN0ZXJOb3RpZmljYXRpb25IYW5kbGVyIGZhaWxlZDogJyArIGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICgpID0+IHRoaXMucmVtb3ZlTm90aWZpY2F0aW9uSGFuZGxlcihldmVudElkLCBoYW5kbGVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlbW92ZU5vdGlmaWNhdGlvbkhhbmRsZXIoZXZlbnRJZDogc3RyaW5nLCBoYW5kbGVyOiBjb250cmFjdC5Ob3RpZmljYXRpb25IYW5kbGVyKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaGFuZGxlckxpc3QgPSB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVyc1tldmVudElkXTtcclxuICAgICAgICBpZiAoIWhhbmRsZXJMaXN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZm91bmRJbmRleCA9IGhhbmRsZXJMaXN0LmluZGV4T2YoaGFuZGxlcik7XHJcbiAgICAgICAgaWYgKGZvdW5kSW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICBoYW5kbGVyTGlzdC5zcGxpY2UoZm91bmRJbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChoYW5kbGVyTGlzdC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzW2V2ZW50SWRdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgZGlzcGF0Y2hOb3RpZmljYXRpb24obm90aWZpY2F0aW9uOiBQcmVzTGF5ZXJOb3RpZmljYXRpb24pOiB2b2lkIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZygncmVjZWl2ZWQgbm90aWZpY2F0aW9uOiAnICsgSlNPTi5zdHJpbmdpZnkobm90aWZpY2F0aW9uKSk7XHJcbiAgICAgICAgbGV0IGV2ZW50SWQgPSBub3RpZmljYXRpb24uZXZlbnRJZDtcclxuICAgICAgICBsZXQgcHJlc01vZGVsID0gbm90aWZpY2F0aW9uLnByZXNNb2RlbDtcclxuICAgICAgICBpZiAoZXZlbnRJZCBpbiB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVycykge1xyXG4gICAgICAgICAgICBsZXQgaGFuZGxlcnMgPSB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVyc1tldmVudElkXTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IGhhbmRsZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgICAgICAgICBoYW5kbGVyc1tpXShwcmVzTW9kZWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9BZGRJbkFwaVByZXNMYXllckltcGwudHNcbiAqKi8iLCJpbXBvcnQgeyBBcGlFdmVudEhhbmRsZXIgfSBmcm9tICdAdGFibGVhdS9hcGktY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRXhlY3V0ZVBhcmFtZXRlcnMsXHJcbiAgRXhlY3V0ZVJlc3BvbnNlLFxyXG4gIEludGVybmFsQXBpRGlzcGF0Y2hlcixcclxuICBOb3RpZmljYXRpb25IYW5kbGVyLFxyXG4gIFZlcmJJZCxcclxuICBWZXJzaW9uTnVtYmVyLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG4vKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlIEludGVybmFsQXBpRGlzcGF0Y2hlciBmb3IgZGVza3RvcC4gU2luY2UgdGhpcyB3aWxsIHJ1biBpbiB0aGUgc2FtZVxyXG4gKiBmcmFtZSBhcyB0aGUgQXBpRXZlbnRIYW5kbGVyLCB0aGlzIGNsYXNzIG1vc3RseSBqdXN0IG1hcnNoYWxscyBkb3duIHRvIHRoYXQgaW1wbGVtZW50YXRpb25cclxuICpcclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgRGVza3RvcEFwaURpc3BhdGNoZXJcclxuICogQGltcGxlbWVudHMge0ludGVybmFsQXBpRGlzcGF0Y2hlcn1cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEZXNrdG9wQXBpRGlzcGF0Y2hlciBpbXBsZW1lbnRzIEludGVybmFsQXBpRGlzcGF0Y2hlciB7XHJcbiAgcHJpdmF0ZSBfbm90aWZpY2F0aW9uSGFuZGxlcnM6IEFycmF5PE5vdGlmaWNhdGlvbkhhbmRsZXI+O1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfYXBpRXZlbnRIYW5kbGVyOiBBcGlFdmVudEhhbmRsZXIpIHtcclxuICAgIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzID0gW107XHJcbiAgICB0aGlzLl9hcGlFdmVudEhhbmRsZXIuc2V0RXZlbnRIYW5kbGVyKChub3RpZmljYXRpb25JZCwgbW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnMuZm9yRWFjaChoYW5kbGVyID0+IGhhbmRsZXIoe1xyXG4gICAgICAgIG5vdGlmaWNhdGlvbklkOiBub3RpZmljYXRpb25JZCxcclxuICAgICAgICBkYXRhOiBtb2RlbFxyXG4gICAgICB9KSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWZXJzaW9uTnVtYmVyKHZlcnNpb25OdW1iZXI6IFZlcnNpb25OdW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2FwaUV2ZW50SGFuZGxlci5zZXRWZXJzaW9uTnVtYmVyKHZlcnNpb25OdW1iZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4ZWN1dGUodmVyYjogVmVyYklkLCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyk6IFByb21pc2U8RXhlY3V0ZVJlc3BvbnNlPiB7XHJcbiAgICAvLyBKdXN0IHBhc3MgdGhpcyByaWdodCB0aHJvdWdoIHRvIHRoZSBBcGlFdmVudEhhbmRsZXJcclxuICAgIHJldHVybiB0aGlzLl9hcGlFdmVudEhhbmRsZXIuZXhlY3V0ZSh2ZXJiLCBwYXJhbWV0ZXJzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck5vdGlmaWNhdGlvbkhhbmRsZXIoaGFuZGxlcjogTm90aWZpY2F0aW9uSGFuZGxlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnMucHVzaChoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1bnJlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlcihoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVycyA9IHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzLmZpbHRlcihoID0+IGggIT09IGhhbmRsZXIpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvRGVza3RvcEFwaURpc3BhdGNoZXIudHNcbiAqKi8iLCJpbXBvcnQgJy4vdHlwZXMvUXRUeXBlcyc7XHJcblxyXG5pbXBvcnQgeyBRV2ViQ2hhbm5lbCB9IGZyb20gJ3F3ZWJjaGFubmVsJztcclxuXHJcbmltcG9ydCB7IEFkZEluQXBpUHJlc0xheWVySW50ZXJvcE9iamVjdCB9IGZyb20gJy4vdHlwZXMvQWRkSW5BcGlQcmVzTGF5ZXJJbnRlcm9wT2JqZWN0JztcclxuXHJcbi8qKlxyXG4gKiBJbml0aWFsaXplcyB0aGUgUVdlYkNoYW5uZWwgY29udHJhY3QgYW5kIHJldHVybnMgdGhlIHByZXMgbGF5ZXIgaW50ZXJvcCBvYmplY3RcclxuICpcclxuICogQHJldHVybnMge1Byb21pc2U8QWRkSW5BcGlQcmVzTGF5ZXJJbnRlcm9wT2JqZWN0Pn1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplV2ViQ2hhbm5lbFByZXNMYXllcigpOiBQcm9taXNlPEFkZEluQXBpUHJlc0xheWVySW50ZXJvcE9iamVjdD4ge1xyXG4gIHJldHVybiBuZXcgUHJvbWlzZTxBZGRJbkFwaVByZXNMYXllckludGVyb3BPYmplY3Q+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgIHRyeSB7XHJcblxyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgbmV3IFFXZWJDaGFubmVsKHF0LndlYkNoYW5uZWxUcmFuc3BvcnQsIChjaGFubmVsKSA9PiB7XHJcblxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxyXG4gICAgICAgIGNvbnN0IGFkZEluUHJlc0xheWVyID0gY2hhbm5lbC5vYmplY3RzWydhZGRJblByZXNMYXllciddIGFzIEFkZEluQXBpUHJlc0xheWVySW50ZXJvcE9iamVjdDtcclxuICAgICAgICByZXNvbHZlKGFkZEluUHJlc0xheWVyKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHJlamVjdChlKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc1F0KCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0eXBlb2YgcXQgPT09ICdvYmplY3QnO1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9RdFdlYkNoYW5uZWxJbXBsLnRzXG4gKiovIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbioqXG4qKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIFF0IENvbXBhbnkgTHRkLlxuKiogQ29weXJpZ2h0IChDKSAyMDE0IEtsYXLDpGx2ZGFsZW5zIERhdGFrb25zdWx0IEFCLCBhIEtEQUIgR3JvdXAgY29tcGFueSwgaW5mb0BrZGFiLmNvbSwgYXV0aG9yIE1pbGlhbiBXb2xmZiA8bWlsaWFuLndvbGZmQGtkYWIuY29tPlxuKiogQ29udGFjdDogaHR0cDovL3d3dy5xdC5pby9saWNlbnNpbmcvXG4qKlxuKiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFF0V2ViQ2hhbm5lbCBtb2R1bGUgb2YgdGhlIFF0IFRvb2xraXQuXG4qKlxuKiogJFFUX0JFR0lOX0xJQ0VOU0U6TEdQTDIxJFxuKiogQ29tbWVyY2lhbCBMaWNlbnNlIFVzYWdlXG4qKiBMaWNlbnNlZXMgaG9sZGluZyB2YWxpZCBjb21tZXJjaWFsIFF0IGxpY2Vuc2VzIG1heSB1c2UgdGhpcyBmaWxlIGluXG4qKiBhY2NvcmRhbmNlIHdpdGggdGhlIGNvbW1lcmNpYWwgbGljZW5zZSBhZ3JlZW1lbnQgcHJvdmlkZWQgd2l0aCB0aGVcbioqIFNvZnR3YXJlIG9yLCBhbHRlcm5hdGl2ZWx5LCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIHRlcm1zIGNvbnRhaW5lZCBpblxuKiogYSB3cml0dGVuIGFncmVlbWVudCBiZXR3ZWVuIHlvdSBhbmQgVGhlIFF0IENvbXBhbnkuIEZvciBsaWNlbnNpbmcgdGVybXNcbioqIGFuZCBjb25kaXRpb25zIHNlZSBodHRwOi8vd3d3LnF0LmlvL3Rlcm1zLWNvbmRpdGlvbnMuIEZvciBmdXJ0aGVyXG4qKiBpbmZvcm1hdGlvbiB1c2UgdGhlIGNvbnRhY3QgZm9ybSBhdCBodHRwOi8vd3d3LnF0LmlvL2NvbnRhY3QtdXMuXG4qKlxuKiogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIFVzYWdlXG4qKiBBbHRlcm5hdGl2ZWx5LCB0aGlzIGZpbGUgbWF5IGJlIHVzZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyXG4qKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xIG9yIHZlcnNpb24gMyBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWVcbioqIFNvZnR3YXJlIEZvdW5kYXRpb24gYW5kIGFwcGVhcmluZyBpbiB0aGUgZmlsZSBMSUNFTlNFLkxHUEx2MjEgYW5kXG4qKiBMSUNFTlNFLkxHUEx2MyBpbmNsdWRlZCBpbiB0aGUgcGFja2FnaW5nIG9mIHRoaXMgZmlsZS4gUGxlYXNlIHJldmlldyB0aGVcbioqIGZvbGxvd2luZyBpbmZvcm1hdGlvbiB0byBlbnN1cmUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuKiogcmVxdWlyZW1lbnRzIHdpbGwgYmUgbWV0OiBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xncGwuaHRtbCBhbmRcbioqIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9vbGQtbGljZW5zZXMvbGdwbC0yLjEuaHRtbC5cbioqXG4qKiBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCBUaGUgUXQgQ29tcGFueSBnaXZlcyB5b3UgY2VydGFpbiBhZGRpdGlvbmFsXG4qKiByaWdodHMuIFRoZXNlIHJpZ2h0cyBhcmUgZGVzY3JpYmVkIGluIFRoZSBRdCBDb21wYW55IExHUEwgRXhjZXB0aW9uXG4qKiB2ZXJzaW9uIDEuMSwgaW5jbHVkZWQgaW4gdGhlIGZpbGUgTEdQTF9FWENFUFRJT04udHh0IGluIHRoaXMgcGFja2FnZS5cbioqXG4qKiAkUVRfRU5EX0xJQ0VOU0UkXG4qKlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBRV2ViQ2hhbm5lbE1lc3NhZ2VUeXBlcyA9IHtcbiAgICBzaWduYWw6IDEsXG4gICAgcHJvcGVydHlVcGRhdGU6IDIsXG4gICAgaW5pdDogMyxcbiAgICBpZGxlOiA0LFxuICAgIGRlYnVnOiA1LFxuICAgIGludm9rZU1ldGhvZDogNixcbiAgICBjb25uZWN0VG9TaWduYWw6IDcsXG4gICAgZGlzY29ubmVjdEZyb21TaWduYWw6IDgsXG4gICAgc2V0UHJvcGVydHk6IDksXG4gICAgcmVzcG9uc2U6IDEwLFxufTtcblxudmFyIFFXZWJDaGFubmVsID0gZnVuY3Rpb24odHJhbnNwb3J0LCBpbml0Q2FsbGJhY2spXG57XG4gICAgaWYgKHR5cGVvZiB0cmFuc3BvcnQgIT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIHRyYW5zcG9ydC5zZW5kICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIlRoZSBRV2ViQ2hhbm5lbCBleHBlY3RzIGEgdHJhbnNwb3J0IG9iamVjdCB3aXRoIGEgc2VuZCBmdW5jdGlvbiBhbmQgb25tZXNzYWdlIGNhbGxiYWNrIHByb3BlcnR5LlwiICtcbiAgICAgICAgICAgICAgICAgICAgICBcIiBHaXZlbiBpczogdHJhbnNwb3J0OiBcIiArIHR5cGVvZih0cmFuc3BvcnQpICsgXCIsIHRyYW5zcG9ydC5zZW5kOiBcIiArIHR5cGVvZih0cmFuc3BvcnQuc2VuZCkpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGNoYW5uZWwgPSB0aGlzO1xuICAgIHRoaXMudHJhbnNwb3J0ID0gdHJhbnNwb3J0O1xuXG4gICAgdGhpcy5zZW5kID0gZnVuY3Rpb24oZGF0YSlcbiAgICB7XG4gICAgICAgIGlmICh0eXBlb2YoZGF0YSkgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGRhdGEgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBjaGFubmVsLnRyYW5zcG9ydC5zZW5kKGRhdGEpO1xuICAgIH1cblxuICAgIHRoaXMudHJhbnNwb3J0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKG1lc3NhZ2UpXG4gICAge1xuICAgICAgICB2YXIgZGF0YSA9IG1lc3NhZ2UuZGF0YTtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGRhdGEudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBRV2ViQ2hhbm5lbE1lc3NhZ2VUeXBlcy5zaWduYWw6XG4gICAgICAgICAgICAgICAgY2hhbm5lbC5oYW5kbGVTaWduYWwoZGF0YSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFFXZWJDaGFubmVsTWVzc2FnZVR5cGVzLnJlc3BvbnNlOlxuICAgICAgICAgICAgICAgIGNoYW5uZWwuaGFuZGxlUmVzcG9uc2UoZGF0YSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFFXZWJDaGFubmVsTWVzc2FnZVR5cGVzLnByb3BlcnR5VXBkYXRlOlxuICAgICAgICAgICAgICAgIGNoYW5uZWwuaGFuZGxlUHJvcGVydHlVcGRhdGUoZGF0YSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJpbnZhbGlkIG1lc3NhZ2UgcmVjZWl2ZWQ6XCIsIG1lc3NhZ2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmV4ZWNDYWxsYmFja3MgPSB7fTtcbiAgICB0aGlzLmV4ZWNJZCA9IDA7XG4gICAgdGhpcy5leGVjID0gZnVuY3Rpb24oZGF0YSwgY2FsbGJhY2spXG4gICAge1xuICAgICAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICAgICAgICAvLyBpZiBubyBjYWxsYmFjayBpcyBnaXZlbiwgc2VuZCBkaXJlY3RseVxuICAgICAgICAgICAgY2hhbm5lbC5zZW5kKGRhdGEpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFubmVsLmV4ZWNJZCA9PT0gTnVtYmVyLk1BWF9WQUxVRSkge1xuICAgICAgICAgICAgLy8gd3JhcFxuICAgICAgICAgICAgY2hhbm5lbC5leGVjSWQgPSBOdW1iZXIuTUlOX1ZBTFVFO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KFwiaWRcIikpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJDYW5ub3QgZXhlYyBtZXNzYWdlIHdpdGggcHJvcGVydHkgaWQ6IFwiICsgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRhdGEuaWQgPSBjaGFubmVsLmV4ZWNJZCsrO1xuICAgICAgICBjaGFubmVsLmV4ZWNDYWxsYmFja3NbZGF0YS5pZF0gPSBjYWxsYmFjaztcbiAgICAgICAgY2hhbm5lbC5zZW5kKGRhdGEpO1xuICAgIH07XG5cbiAgICB0aGlzLm9iamVjdHMgPSB7fTtcblxuICAgIHRoaXMuaGFuZGxlU2lnbmFsID0gZnVuY3Rpb24obWVzc2FnZSlcbiAgICB7XG4gICAgICAgIHZhciBvYmplY3QgPSBjaGFubmVsLm9iamVjdHNbbWVzc2FnZS5vYmplY3RdO1xuICAgICAgICBpZiAob2JqZWN0KSB7XG4gICAgICAgICAgICBvYmplY3Quc2lnbmFsRW1pdHRlZChtZXNzYWdlLnNpZ25hbCwgbWVzc2FnZS5hcmdzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIlVuaGFuZGxlZCBzaWduYWw6IFwiICsgbWVzc2FnZS5vYmplY3QgKyBcIjo6XCIgKyBtZXNzYWdlLnNpZ25hbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZVJlc3BvbnNlID0gZnVuY3Rpb24obWVzc2FnZSlcbiAgICB7XG4gICAgICAgIGlmICghbWVzc2FnZS5oYXNPd25Qcm9wZXJ0eShcImlkXCIpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiSW52YWxpZCByZXNwb25zZSBtZXNzYWdlIHJlY2VpdmVkOiBcIiwgSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNoYW5uZWwuZXhlY0NhbGxiYWNrc1ttZXNzYWdlLmlkXShtZXNzYWdlLmRhdGEpO1xuICAgICAgICBkZWxldGUgY2hhbm5lbC5leGVjQ2FsbGJhY2tzW21lc3NhZ2UuaWRdO1xuICAgIH1cblxuICAgIHRoaXMuaGFuZGxlUHJvcGVydHlVcGRhdGUgPSBmdW5jdGlvbihtZXNzYWdlKVxuICAgIHtcbiAgICAgICAgZm9yICh2YXIgaSBpbiBtZXNzYWdlLmRhdGEpIHtcbiAgICAgICAgICAgIHZhciBkYXRhID0gbWVzc2FnZS5kYXRhW2ldO1xuICAgICAgICAgICAgdmFyIG9iamVjdCA9IGNoYW5uZWwub2JqZWN0c1tkYXRhLm9iamVjdF07XG4gICAgICAgICAgICBpZiAob2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgb2JqZWN0LnByb3BlcnR5VXBkYXRlKGRhdGEuc2lnbmFscywgZGF0YS5wcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiVW5oYW5kbGVkIHByb3BlcnR5IHVwZGF0ZTogXCIgKyBkYXRhLm9iamVjdCArIFwiOjpcIiArIGRhdGEuc2lnbmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjaGFubmVsLmV4ZWMoe3R5cGU6IFFXZWJDaGFubmVsTWVzc2FnZVR5cGVzLmlkbGV9KTtcbiAgICB9XG5cbiAgICB0aGlzLmRlYnVnID0gZnVuY3Rpb24obWVzc2FnZSlcbiAgICB7XG4gICAgICAgIGNoYW5uZWwuc2VuZCh7dHlwZTogUVdlYkNoYW5uZWxNZXNzYWdlVHlwZXMuZGVidWcsIGRhdGE6IG1lc3NhZ2V9KTtcbiAgICB9O1xuXG4gICAgY2hhbm5lbC5leGVjKHt0eXBlOiBRV2ViQ2hhbm5lbE1lc3NhZ2VUeXBlcy5pbml0fSwgZnVuY3Rpb24oZGF0YSkge1xuICAgICAgICBmb3IgKHZhciBvYmplY3ROYW1lIGluIGRhdGEpIHtcbiAgICAgICAgICAgIHZhciBvYmplY3QgPSBuZXcgUU9iamVjdChvYmplY3ROYW1lLCBkYXRhW29iamVjdE5hbWVdLCBjaGFubmVsKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBub3cgdW53cmFwIHByb3BlcnRpZXMsIHdoaWNoIG1pZ2h0IHJlZmVyZW5jZSBvdGhlciByZWdpc3RlcmVkIG9iamVjdHNcbiAgICAgICAgZm9yICh2YXIgb2JqZWN0TmFtZSBpbiBjaGFubmVsLm9iamVjdHMpIHtcbiAgICAgICAgICAgIGNoYW5uZWwub2JqZWN0c1tvYmplY3ROYW1lXS51bndyYXBQcm9wZXJ0aWVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluaXRDYWxsYmFjaykge1xuICAgICAgICAgICAgaW5pdENhbGxiYWNrKGNoYW5uZWwpO1xuICAgICAgICB9XG4gICAgICAgIGNoYW5uZWwuZXhlYyh7dHlwZTogUVdlYkNoYW5uZWxNZXNzYWdlVHlwZXMuaWRsZX0pO1xuICAgIH0pO1xufTtcblxuZnVuY3Rpb24gUU9iamVjdChuYW1lLCBkYXRhLCB3ZWJDaGFubmVsKVxue1xuICAgIHRoaXMuX19pZF9fID0gbmFtZTtcbiAgICB3ZWJDaGFubmVsLm9iamVjdHNbbmFtZV0gPSB0aGlzO1xuXG4gICAgLy8gTGlzdCBvZiBjYWxsYmFja3MgdGhhdCBnZXQgaW52b2tlZCB1cG9uIHNpZ25hbCBlbWlzc2lvblxuICAgIHRoaXMuX19vYmplY3RTaWduYWxzX18gPSB7fTtcblxuICAgIC8vIENhY2hlIG9mIGFsbCBwcm9wZXJ0aWVzLCB1cGRhdGVkIHdoZW4gYSBub3RpZnkgc2lnbmFsIGlzIGVtaXR0ZWRcbiAgICB0aGlzLl9fcHJvcGVydHlDYWNoZV9fID0ge307XG5cbiAgICB2YXIgb2JqZWN0ID0gdGhpcztcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHRoaXMudW53cmFwUU9iamVjdCA9IGZ1bmN0aW9uKHJlc3BvbnNlKVxuICAgIHtcbiAgICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIC8vIHN1cHBvcnQgbGlzdCBvZiBvYmplY3RzXG4gICAgICAgICAgICB2YXIgcmV0ID0gbmV3IEFycmF5KHJlc3BvbnNlLmxlbmd0aCk7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3BvbnNlLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgcmV0W2ldID0gb2JqZWN0LnVud3JhcFFPYmplY3QocmVzcG9uc2VbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXJlc3BvbnNlXG4gICAgICAgICAgICB8fCAhcmVzcG9uc2VbXCJfX1FPYmplY3QqX19cIl1cbiAgICAgICAgICAgIHx8IHJlc3BvbnNlW1wiaWRcIl0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG9iamVjdElkID0gcmVzcG9uc2UuaWQ7XG4gICAgICAgIGlmICh3ZWJDaGFubmVsLm9iamVjdHNbb2JqZWN0SWRdKVxuICAgICAgICAgICAgcmV0dXJuIHdlYkNoYW5uZWwub2JqZWN0c1tvYmplY3RJZF07XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQ2Fubm90IHVud3JhcCB1bmtub3duIFFPYmplY3QgXCIgKyBvYmplY3RJZCArIFwiIHdpdGhvdXQgZGF0YS5cIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcU9iamVjdCA9IG5ldyBRT2JqZWN0KCBvYmplY3RJZCwgcmVzcG9uc2UuZGF0YSwgd2ViQ2hhbm5lbCApO1xuICAgICAgICBxT2JqZWN0LmRlc3Ryb3llZC5jb25uZWN0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKHdlYkNoYW5uZWwub2JqZWN0c1tvYmplY3RJZF0gPT09IHFPYmplY3QpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgd2ViQ2hhbm5lbC5vYmplY3RzW29iamVjdElkXTtcbiAgICAgICAgICAgICAgICAvLyByZXNldCB0aGUgbm93IGRlbGV0ZWQgUU9iamVjdCB0byBhbiBlbXB0eSB7fSBvYmplY3RcbiAgICAgICAgICAgICAgICAvLyBqdXN0IGFzc2lnbmluZyB7fSB0aG91Z2ggd291bGQgbm90IGhhdmUgdGhlIGRlc2lyZWQgZWZmZWN0LCBidXQgdGhlXG4gICAgICAgICAgICAgICAgLy8gYmVsb3cgYWxzbyBlbnN1cmVzIGFsbCBleHRlcm5hbCByZWZlcmVuY2VzIHdpbGwgc2VlIHRoZSBlbXB0eSBtYXBcbiAgICAgICAgICAgICAgICAvLyBOT1RFOiB0aGlzIGRldG91ciBpcyBuZWNlc3NhcnkgdG8gd29ya2Fyb3VuZCBRVEJVRy00MDAyMVxuICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eU5hbWVzID0gW107XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgcHJvcGVydHlOYW1lIGluIHFPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5wdXNoKHByb3BlcnR5TmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAodmFyIGlkeCBpbiBwcm9wZXJ0eU5hbWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBxT2JqZWN0W3Byb3BlcnR5TmFtZXNbaWR4XV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gaGVyZSB3ZSBhcmUgYWxyZWFkeSBpbml0aWFsaXplZCwgYW5kIHRodXMgbXVzdCBkaXJlY3RseSB1bndyYXAgdGhlIHByb3BlcnRpZXNcbiAgICAgICAgcU9iamVjdC51bndyYXBQcm9wZXJ0aWVzKCk7XG4gICAgICAgIHJldHVybiBxT2JqZWN0O1xuICAgIH1cblxuICAgIHRoaXMudW53cmFwUHJvcGVydGllcyA9IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICAgIGZvciAodmFyIHByb3BlcnR5SWR4IGluIG9iamVjdC5fX3Byb3BlcnR5Q2FjaGVfXykge1xuICAgICAgICAgICAgb2JqZWN0Ll9fcHJvcGVydHlDYWNoZV9fW3Byb3BlcnR5SWR4XSA9IG9iamVjdC51bndyYXBRT2JqZWN0KG9iamVjdC5fX3Byb3BlcnR5Q2FjaGVfX1twcm9wZXJ0eUlkeF0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkU2lnbmFsKHNpZ25hbERhdGEsIGlzUHJvcGVydHlOb3RpZnlTaWduYWwpXG4gICAge1xuICAgICAgICB2YXIgc2lnbmFsTmFtZSA9IHNpZ25hbERhdGFbMF07XG4gICAgICAgIHZhciBzaWduYWxJbmRleCA9IHNpZ25hbERhdGFbMV07XG4gICAgICAgIG9iamVjdFtzaWduYWxOYW1lXSA9IHtcbiAgICAgICAgICAgIGNvbm5lY3Q6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihjYWxsYmFjaykgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQmFkIGNhbGxiYWNrIGdpdmVuIHRvIGNvbm5lY3QgdG8gc2lnbmFsIFwiICsgc2lnbmFsTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvYmplY3QuX19vYmplY3RTaWduYWxzX19bc2lnbmFsSW5kZXhdID0gb2JqZWN0Ll9fb2JqZWN0U2lnbmFsc19fW3NpZ25hbEluZGV4XSB8fCBbXTtcbiAgICAgICAgICAgICAgICBvYmplY3QuX19vYmplY3RTaWduYWxzX19bc2lnbmFsSW5kZXhdLnB1c2goY2FsbGJhY2spO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFpc1Byb3BlcnR5Tm90aWZ5U2lnbmFsICYmIHNpZ25hbE5hbWUgIT09IFwiZGVzdHJveWVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gb25seSByZXF1aXJlZCBmb3IgXCJwdXJlXCIgc2lnbmFscywgaGFuZGxlZCBzZXBhcmF0ZWx5IGZvciBwcm9wZXJ0aWVzIGluIHByb3BlcnR5VXBkYXRlXG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gbm90ZSB0aGF0IHdlIGFsd2F5cyBnZXQgbm90aWZpZWQgYWJvdXQgdGhlIGRlc3Ryb3llZCBzaWduYWxcbiAgICAgICAgICAgICAgICAgICAgd2ViQ2hhbm5lbC5leGVjKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFFXZWJDaGFubmVsTWVzc2FnZVR5cGVzLmNvbm5lY3RUb1NpZ25hbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogb2JqZWN0Ll9faWRfXyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbDogc2lnbmFsSW5kZXhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc2Nvbm5lY3Q6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihjYWxsYmFjaykgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQmFkIGNhbGxiYWNrIGdpdmVuIHRvIGRpc2Nvbm5lY3QgZnJvbSBzaWduYWwgXCIgKyBzaWduYWxOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvYmplY3QuX19vYmplY3RTaWduYWxzX19bc2lnbmFsSW5kZXhdID0gb2JqZWN0Ll9fb2JqZWN0U2lnbmFsc19fW3NpZ25hbEluZGV4XSB8fCBbXTtcbiAgICAgICAgICAgICAgICB2YXIgaWR4ID0gb2JqZWN0Ll9fb2JqZWN0U2lnbmFsc19fW3NpZ25hbEluZGV4XS5pbmRleE9mKGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoaWR4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQ2Fubm90IGZpbmQgY29ubmVjdGlvbiBvZiBzaWduYWwgXCIgKyBzaWduYWxOYW1lICsgXCIgdG8gXCIgKyBjYWxsYmFjay5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvYmplY3QuX19vYmplY3RTaWduYWxzX19bc2lnbmFsSW5kZXhdLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICAgIGlmICghaXNQcm9wZXJ0eU5vdGlmeVNpZ25hbCAmJiBvYmplY3QuX19vYmplY3RTaWduYWxzX19bc2lnbmFsSW5kZXhdLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IHJlcXVpcmVkIGZvciBcInB1cmVcIiBzaWduYWxzLCBoYW5kbGVkIHNlcGFyYXRlbHkgZm9yIHByb3BlcnRpZXMgaW4gcHJvcGVydHlVcGRhdGVcbiAgICAgICAgICAgICAgICAgICAgd2ViQ2hhbm5lbC5leGVjKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFFXZWJDaGFubmVsTWVzc2FnZVR5cGVzLmRpc2Nvbm5lY3RGcm9tU2lnbmFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiBvYmplY3QuX19pZF9fLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsOiBzaWduYWxJbmRleFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyBhbGwgY2FsbGJhY2tzIGZvciB0aGUgZ2l2ZW4gc2lnbmFsbmFtZS4gQWxzbyB3b3JrcyBmb3IgcHJvcGVydHkgbm90aWZ5IGNhbGxiYWNrcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbnZva2VTaWduYWxDYWxsYmFja3Moc2lnbmFsTmFtZSwgc2lnbmFsQXJncylcbiAgICB7XG4gICAgICAgIHZhciBjb25uZWN0aW9ucyA9IG9iamVjdC5fX29iamVjdFNpZ25hbHNfX1tzaWduYWxOYW1lXTtcbiAgICAgICAgaWYgKGNvbm5lY3Rpb25zKSB7XG4gICAgICAgICAgICBjb25uZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2suYXBwbHkoY2FsbGJhY2ssIHNpZ25hbEFyZ3MpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnByb3BlcnR5VXBkYXRlID0gZnVuY3Rpb24oc2lnbmFscywgcHJvcGVydHlNYXApXG4gICAge1xuICAgICAgICAvLyB1cGRhdGUgcHJvcGVydHkgY2FjaGVcbiAgICAgICAgZm9yICh2YXIgcHJvcGVydHlJbmRleCBpbiBwcm9wZXJ0eU1hcCkge1xuICAgICAgICAgICAgdmFyIHByb3BlcnR5VmFsdWUgPSBwcm9wZXJ0eU1hcFtwcm9wZXJ0eUluZGV4XTtcbiAgICAgICAgICAgIG9iamVjdC5fX3Byb3BlcnR5Q2FjaGVfX1twcm9wZXJ0eUluZGV4XSA9IHByb3BlcnR5VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKHZhciBzaWduYWxOYW1lIGluIHNpZ25hbHMpIHtcbiAgICAgICAgICAgIC8vIEludm9rZSBhbGwgY2FsbGJhY2tzLCBhcyBzaWduYWxFbWl0dGVkKCkgZG9lcyBub3QuIFRoaXMgZW5zdXJlcyB0aGVcbiAgICAgICAgICAgIC8vIHByb3BlcnR5IGNhY2hlIGlzIHVwZGF0ZWQgYmVmb3JlIHRoZSBjYWxsYmFja3MgYXJlIGludm9rZWQuXG4gICAgICAgICAgICBpbnZva2VTaWduYWxDYWxsYmFja3Moc2lnbmFsTmFtZSwgc2lnbmFsc1tzaWduYWxOYW1lXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNpZ25hbEVtaXR0ZWQgPSBmdW5jdGlvbihzaWduYWxOYW1lLCBzaWduYWxBcmdzKVxuICAgIHtcbiAgICAgICAgaW52b2tlU2lnbmFsQ2FsbGJhY2tzKHNpZ25hbE5hbWUsIHNpZ25hbEFyZ3MpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZE1ldGhvZChtZXRob2REYXRhKVxuICAgIHtcbiAgICAgICAgdmFyIG1ldGhvZE5hbWUgPSBtZXRob2REYXRhWzBdO1xuICAgICAgICB2YXIgbWV0aG9kSWR4ID0gbWV0aG9kRGF0YVsxXTtcbiAgICAgICAgb2JqZWN0W21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgYXJncyA9IFtdO1xuICAgICAgICAgICAgdmFyIGNhbGxiYWNrO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1tpXSA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB3ZWJDaGFubmVsLmV4ZWMoe1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBRV2ViQ2hhbm5lbE1lc3NhZ2VUeXBlcy5pbnZva2VNZXRob2QsXG4gICAgICAgICAgICAgICAgXCJvYmplY3RcIjogb2JqZWN0Ll9faWRfXyxcbiAgICAgICAgICAgICAgICBcIm1ldGhvZFwiOiBtZXRob2RJZHgsXG4gICAgICAgICAgICAgICAgXCJhcmdzXCI6IGFyZ3NcbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG9iamVjdC51bndyYXBRT2JqZWN0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAoY2FsbGJhY2spKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBiaW5kR2V0dGVyU2V0dGVyKHByb3BlcnR5SW5mbylcbiAgICB7XG4gICAgICAgIHZhciBwcm9wZXJ0eUluZGV4ID0gcHJvcGVydHlJbmZvWzBdO1xuICAgICAgICB2YXIgcHJvcGVydHlOYW1lID0gcHJvcGVydHlJbmZvWzFdO1xuICAgICAgICB2YXIgbm90aWZ5U2lnbmFsRGF0YSA9IHByb3BlcnR5SW5mb1syXTtcbiAgICAgICAgLy8gaW5pdGlhbGl6ZSBwcm9wZXJ0eSBjYWNoZSB3aXRoIGN1cnJlbnQgdmFsdWVcbiAgICAgICAgLy8gTk9URTogaWYgdGhpcyBpcyBhbiBvYmplY3QsIGl0IGlzIG5vdCBkaXJlY3RseSB1bndyYXBwZWQgYXMgaXQgbWlnaHRcbiAgICAgICAgLy8gcmVmZXJlbmNlIG90aGVyIFFPYmplY3QgdGhhdCB3ZSBkbyBub3Qga25vdyB5ZXRcbiAgICAgICAgb2JqZWN0Ll9fcHJvcGVydHlDYWNoZV9fW3Byb3BlcnR5SW5kZXhdID0gcHJvcGVydHlJbmZvWzNdO1xuXG4gICAgICAgIGlmIChub3RpZnlTaWduYWxEYXRhKSB7XG4gICAgICAgICAgICBpZiAobm90aWZ5U2lnbmFsRGF0YVswXSA9PT0gMSkge1xuICAgICAgICAgICAgICAgIC8vIHNpZ25hbCBuYW1lIGlzIG9wdGltaXplZCBhd2F5LCByZWNvbnN0cnVjdCB0aGUgYWN0dWFsIG5hbWVcbiAgICAgICAgICAgICAgICBub3RpZnlTaWduYWxEYXRhWzBdID0gcHJvcGVydHlOYW1lICsgXCJDaGFuZ2VkXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhZGRTaWduYWwobm90aWZ5U2lnbmFsRGF0YSwgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHtcbiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eVZhbHVlID0gb2JqZWN0Ll9fcHJvcGVydHlDYWNoZV9fW3Byb3BlcnR5SW5kZXhdO1xuICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eVZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIlVuZGVmaW5lZCB2YWx1ZSBpbiBwcm9wZXJ0eSBjYWNoZSBmb3IgcHJvcGVydHkgXFxcIlwiICsgcHJvcGVydHlOYW1lICsgXCJcXFwiIGluIG9iamVjdCBcIiArIG9iamVjdC5fX2lkX18pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eVZhbHVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJQcm9wZXJ0eSBzZXR0ZXIgZm9yIFwiICsgcHJvcGVydHlOYW1lICsgXCIgY2FsbGVkIHdpdGggdW5kZWZpbmVkIHZhbHVlIVwiKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvYmplY3QuX19wcm9wZXJ0eUNhY2hlX19bcHJvcGVydHlJbmRleF0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB3ZWJDaGFubmVsLmV4ZWMoe1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogUVdlYkNoYW5uZWxNZXNzYWdlVHlwZXMuc2V0UHJvcGVydHksXG4gICAgICAgICAgICAgICAgICAgIFwib2JqZWN0XCI6IG9iamVjdC5fX2lkX18sXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydHlcIjogcHJvcGVydHlJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB2YWx1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGRhdGEubWV0aG9kcy5mb3JFYWNoKGFkZE1ldGhvZCk7XG5cbiAgICBkYXRhLnByb3BlcnRpZXMuZm9yRWFjaChiaW5kR2V0dGVyU2V0dGVyKTtcblxuICAgIGRhdGEuc2lnbmFscy5mb3JFYWNoKGZ1bmN0aW9uKHNpZ25hbCkgeyBhZGRTaWduYWwoc2lnbmFsLCBmYWxzZSk7IH0pO1xuXG4gICAgZm9yICh2YXIgbmFtZSBpbiBkYXRhLmVudW1zKSB7XG4gICAgICAgIG9iamVjdFtuYW1lXSA9IGRhdGEuZW51bXNbbmFtZV07XG4gICAgfVxufVxuXG4vL3JlcXVpcmVkIGZvciB1c2Ugd2l0aCBub2RlanNcbmlmICh0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jykge1xuICAgIG1vZHVsZS5leHBvcnRzID0ge1xuICAgICAgICBRV2ViQ2hhbm5lbDogUVdlYkNoYW5uZWxcbiAgICB9O1xufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9+L3F3ZWJjaGFubmVsL3F3ZWJjaGFubmVsLmpzXG4gKiogbW9kdWxlIGlkID0gMTA0XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9
\ No newline at end of file