@cdktf/provider-aws
Version:
Prebuilt aws Provider for Terraform CDK (cdktf)
497 lines • 77.2 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Lexv2ModelsIntent = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
// generated from terraform resource schema
const index_structs_1 = require("./index-structs");
__exportStar(require("./index-structs"), exports);
const cdktf = require("cdktf");
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/lexv2models_intent aws_lexv2models_intent}
*/
class Lexv2ModelsIntent extends cdktf.TerraformResource {
// ==============
// STATIC Methods
// ==============
/**
* Generates CDKTF code for importing a Lexv2ModelsIntent resource upon running "cdktf plan <stack-name>"
* @param scope The scope in which to define this construct
* @param importToId The construct id used in the generated config for the Lexv2ModelsIntent to import
* @param importFromId The id of the existing Lexv2ModelsIntent that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/lexv2models_intent#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the Lexv2ModelsIntent to import is found
*/
static generateConfigForImport(scope, importToId, importFromId, provider) {
return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_lexv2models_intent", importId: importFromId, provider });
}
// ===========
// INITIALIZER
// ===========
/**
* Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/lexv2models_intent aws_lexv2models_intent} Resource
*
* @param scope The scope in which to define this construct
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
* @param options Lexv2ModelsIntentConfig
*/
constructor(scope, id, config) {
super(scope, id, {
terraformResourceType: 'aws_lexv2models_intent',
terraformGeneratorMetadata: {
providerName: 'aws',
providerVersion: '6.25.0',
providerVersionConstraint: '~> 6.0'
},
provider: config.provider,
dependsOn: config.dependsOn,
count: config.count,
lifecycle: config.lifecycle,
provisioners: config.provisioners,
connection: config.connection,
forEach: config.forEach
});
// closing_setting - computed: false, optional: true, required: false
this._closingSetting = new index_structs_1.Lexv2ModelsIntentClosingSettingList(this, "closing_setting", false);
// confirmation_setting - computed: false, optional: true, required: false
this._confirmationSetting = new index_structs_1.Lexv2ModelsIntentConfirmationSettingList(this, "confirmation_setting", false);
// dialog_code_hook - computed: false, optional: true, required: false
this._dialogCodeHook = new index_structs_1.Lexv2ModelsIntentDialogCodeHookList(this, "dialog_code_hook", false);
// fulfillment_code_hook - computed: false, optional: true, required: false
this._fulfillmentCodeHook = new index_structs_1.Lexv2ModelsIntentFulfillmentCodeHookList(this, "fulfillment_code_hook", false);
// initial_response_setting - computed: false, optional: true, required: false
this._initialResponseSetting = new index_structs_1.Lexv2ModelsIntentInitialResponseSettingList(this, "initial_response_setting", false);
// input_context - computed: false, optional: true, required: false
this._inputContext = new index_structs_1.Lexv2ModelsIntentInputContextList(this, "input_context", false);
// kendra_configuration - computed: false, optional: true, required: false
this._kendraConfiguration = new index_structs_1.Lexv2ModelsIntentKendraConfigurationList(this, "kendra_configuration", false);
// output_context - computed: false, optional: true, required: false
this._outputContext = new index_structs_1.Lexv2ModelsIntentOutputContextList(this, "output_context", false);
// sample_utterance - computed: false, optional: true, required: false
this._sampleUtterance = new index_structs_1.Lexv2ModelsIntentSampleUtteranceList(this, "sample_utterance", false);
// slot_priority - computed: false, optional: true, required: false
this._slotPriority = new index_structs_1.Lexv2ModelsIntentSlotPriorityList(this, "slot_priority", false);
// timeouts - computed: false, optional: true, required: false
this._timeouts = new index_structs_1.Lexv2ModelsIntentTimeoutsOutputReference(this, "timeouts");
this._botId = config.botId;
this._botVersion = config.botVersion;
this._description = config.description;
this._localeId = config.localeId;
this._name = config.name;
this._parentIntentSignature = config.parentIntentSignature;
this._region = config.region;
this._closingSetting.internalValue = config.closingSetting;
this._confirmationSetting.internalValue = config.confirmationSetting;
this._dialogCodeHook.internalValue = config.dialogCodeHook;
this._fulfillmentCodeHook.internalValue = config.fulfillmentCodeHook;
this._initialResponseSetting.internalValue = config.initialResponseSetting;
this._inputContext.internalValue = config.inputContext;
this._kendraConfiguration.internalValue = config.kendraConfiguration;
this._outputContext.internalValue = config.outputContext;
this._sampleUtterance.internalValue = config.sampleUtterance;
this._slotPriority.internalValue = config.slotPriority;
this._timeouts.internalValue = config.timeouts;
}
get botId() {
return this.getStringAttribute('bot_id');
}
set botId(value) {
this._botId = value;
}
// Temporarily expose input value. Use with caution.
get botIdInput() {
return this._botId;
}
get botVersion() {
return this.getStringAttribute('bot_version');
}
set botVersion(value) {
this._botVersion = value;
}
// Temporarily expose input value. Use with caution.
get botVersionInput() {
return this._botVersion;
}
// creation_date_time - computed: true, optional: false, required: false
get creationDateTime() {
return this.getStringAttribute('creation_date_time');
}
get description() {
return this.getStringAttribute('description');
}
set description(value) {
this._description = value;
}
resetDescription() {
this._description = undefined;
}
// Temporarily expose input value. Use with caution.
get descriptionInput() {
return this._description;
}
// id - computed: true, optional: false, required: false
get id() {
return this.getStringAttribute('id');
}
// intent_id - computed: true, optional: false, required: false
get intentId() {
return this.getStringAttribute('intent_id');
}
// last_updated_date_time - computed: true, optional: false, required: false
get lastUpdatedDateTime() {
return this.getStringAttribute('last_updated_date_time');
}
get localeId() {
return this.getStringAttribute('locale_id');
}
set localeId(value) {
this._localeId = value;
}
// Temporarily expose input value. Use with caution.
get localeIdInput() {
return this._localeId;
}
get name() {
return this.getStringAttribute('name');
}
set name(value) {
this._name = value;
}
// Temporarily expose input value. Use with caution.
get nameInput() {
return this._name;
}
get parentIntentSignature() {
return this.getStringAttribute('parent_intent_signature');
}
set parentIntentSignature(value) {
this._parentIntentSignature = value;
}
resetParentIntentSignature() {
this._parentIntentSignature = undefined;
}
// Temporarily expose input value. Use with caution.
get parentIntentSignatureInput() {
return this._parentIntentSignature;
}
get region() {
return this.getStringAttribute('region');
}
set region(value) {
this._region = value;
}
resetRegion() {
this._region = undefined;
}
// Temporarily expose input value. Use with caution.
get regionInput() {
return this._region;
}
get closingSetting() {
return this._closingSetting;
}
putClosingSetting(value) {
this._closingSetting.internalValue = value;
}
resetClosingSetting() {
this._closingSetting.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get closingSettingInput() {
return this._closingSetting.internalValue;
}
get confirmationSetting() {
return this._confirmationSetting;
}
putConfirmationSetting(value) {
this._confirmationSetting.internalValue = value;
}
resetConfirmationSetting() {
this._confirmationSetting.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get confirmationSettingInput() {
return this._confirmationSetting.internalValue;
}
get dialogCodeHook() {
return this._dialogCodeHook;
}
putDialogCodeHook(value) {
this._dialogCodeHook.internalValue = value;
}
resetDialogCodeHook() {
this._dialogCodeHook.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get dialogCodeHookInput() {
return this._dialogCodeHook.internalValue;
}
get fulfillmentCodeHook() {
return this._fulfillmentCodeHook;
}
putFulfillmentCodeHook(value) {
this._fulfillmentCodeHook.internalValue = value;
}
resetFulfillmentCodeHook() {
this._fulfillmentCodeHook.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get fulfillmentCodeHookInput() {
return this._fulfillmentCodeHook.internalValue;
}
get initialResponseSetting() {
return this._initialResponseSetting;
}
putInitialResponseSetting(value) {
this._initialResponseSetting.internalValue = value;
}
resetInitialResponseSetting() {
this._initialResponseSetting.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get initialResponseSettingInput() {
return this._initialResponseSetting.internalValue;
}
get inputContext() {
return this._inputContext;
}
putInputContext(value) {
this._inputContext.internalValue = value;
}
resetInputContext() {
this._inputContext.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get inputContextInput() {
return this._inputContext.internalValue;
}
get kendraConfiguration() {
return this._kendraConfiguration;
}
putKendraConfiguration(value) {
this._kendraConfiguration.internalValue = value;
}
resetKendraConfiguration() {
this._kendraConfiguration.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get kendraConfigurationInput() {
return this._kendraConfiguration.internalValue;
}
get outputContext() {
return this._outputContext;
}
putOutputContext(value) {
this._outputContext.internalValue = value;
}
resetOutputContext() {
this._outputContext.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get outputContextInput() {
return this._outputContext.internalValue;
}
get sampleUtterance() {
return this._sampleUtterance;
}
putSampleUtterance(value) {
this._sampleUtterance.internalValue = value;
}
resetSampleUtterance() {
this._sampleUtterance.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get sampleUtteranceInput() {
return this._sampleUtterance.internalValue;
}
get slotPriority() {
return this._slotPriority;
}
putSlotPriority(value) {
this._slotPriority.internalValue = value;
}
resetSlotPriority() {
this._slotPriority.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get slotPriorityInput() {
return this._slotPriority.internalValue;
}
get timeouts() {
return this._timeouts;
}
putTimeouts(value) {
this._timeouts.internalValue = value;
}
resetTimeouts() {
this._timeouts.internalValue = undefined;
}
// Temporarily expose input value. Use with caution.
get timeoutsInput() {
return this._timeouts.internalValue;
}
// =========
// SYNTHESIS
// =========
synthesizeAttributes() {
return {
bot_id: cdktf.stringToTerraform(this._botId),
bot_version: cdktf.stringToTerraform(this._botVersion),
description: cdktf.stringToTerraform(this._description),
locale_id: cdktf.stringToTerraform(this._localeId),
name: cdktf.stringToTerraform(this._name),
parent_intent_signature: cdktf.stringToTerraform(this._parentIntentSignature),
region: cdktf.stringToTerraform(this._region),
closing_setting: cdktf.listMapper(index_structs_1.lexv2ModelsIntentClosingSettingToTerraform, true)(this._closingSetting.internalValue),
confirmation_setting: cdktf.listMapper(index_structs_1.lexv2ModelsIntentConfirmationSettingToTerraform, true)(this._confirmationSetting.internalValue),
dialog_code_hook: cdktf.listMapper(index_structs_1.lexv2ModelsIntentDialogCodeHookToTerraform, true)(this._dialogCodeHook.internalValue),
fulfillment_code_hook: cdktf.listMapper(index_structs_1.lexv2ModelsIntentFulfillmentCodeHookToTerraform, true)(this._fulfillmentCodeHook.internalValue),
initial_response_setting: cdktf.listMapper(index_structs_1.lexv2ModelsIntentInitialResponseSettingToTerraform, true)(this._initialResponseSetting.internalValue),
input_context: cdktf.listMapper(index_structs_1.lexv2ModelsIntentInputContextToTerraform, true)(this._inputContext.internalValue),
kendra_configuration: cdktf.listMapper(index_structs_1.lexv2ModelsIntentKendraConfigurationToTerraform, true)(this._kendraConfiguration.internalValue),
output_context: cdktf.listMapper(index_structs_1.lexv2ModelsIntentOutputContextToTerraform, true)(this._outputContext.internalValue),
sample_utterance: cdktf.listMapper(index_structs_1.lexv2ModelsIntentSampleUtteranceToTerraform, true)(this._sampleUtterance.internalValue),
slot_priority: cdktf.listMapper(index_structs_1.lexv2ModelsIntentSlotPriorityToTerraform, true)(this._slotPriority.internalValue),
timeouts: (0, index_structs_1.lexv2ModelsIntentTimeoutsToTerraform)(this._timeouts.internalValue),
};
}
synthesizeHclAttributes() {
const attrs = {
bot_id: {
value: cdktf.stringToHclTerraform(this._botId),
isBlock: false,
type: "simple",
storageClassType: "string",
},
bot_version: {
value: cdktf.stringToHclTerraform(this._botVersion),
isBlock: false,
type: "simple",
storageClassType: "string",
},
description: {
value: cdktf.stringToHclTerraform(this._description),
isBlock: false,
type: "simple",
storageClassType: "string",
},
locale_id: {
value: cdktf.stringToHclTerraform(this._localeId),
isBlock: false,
type: "simple",
storageClassType: "string",
},
name: {
value: cdktf.stringToHclTerraform(this._name),
isBlock: false,
type: "simple",
storageClassType: "string",
},
parent_intent_signature: {
value: cdktf.stringToHclTerraform(this._parentIntentSignature),
isBlock: false,
type: "simple",
storageClassType: "string",
},
region: {
value: cdktf.stringToHclTerraform(this._region),
isBlock: false,
type: "simple",
storageClassType: "string",
},
closing_setting: {
value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentClosingSettingToHclTerraform, true)(this._closingSetting.internalValue),
isBlock: true,
type: "list",
storageClassType: "Lexv2ModelsIntentClosingSettingList",
},
confirmation_setting: {
value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentConfirmationSettingToHclTerraform, true)(this._confirmationSetting.internalValue),
isBlock: true,
type: "list",
storageClassType: "Lexv2ModelsIntentConfirmationSettingList",
},
dialog_code_hook: {
value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentDialogCodeHookToHclTerraform, true)(this._dialogCodeHook.internalValue),
isBlock: true,
type: "list",
storageClassType: "Lexv2ModelsIntentDialogCodeHookList",
},
fulfillment_code_hook: {
value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentFulfillmentCodeHookToHclTerraform, true)(this._fulfillmentCodeHook.internalValue),
isBlock: true,
type: "list",
storageClassType: "Lexv2ModelsIntentFulfillmentCodeHookList",
},
initial_response_setting: {
value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentInitialResponseSettingToHclTerraform, true)(this._initialResponseSetting.internalValue),
isBlock: true,
type: "list",
storageClassType: "Lexv2ModelsIntentInitialResponseSettingList",
},
input_context: {
value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentInputContextToHclTerraform, true)(this._inputContext.internalValue),
isBlock: true,
type: "list",
storageClassType: "Lexv2ModelsIntentInputContextList",
},
kendra_configuration: {
value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentKendraConfigurationToHclTerraform, true)(this._kendraConfiguration.internalValue),
isBlock: true,
type: "list",
storageClassType: "Lexv2ModelsIntentKendraConfigurationList",
},
output_context: {
value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentOutputContextToHclTerraform, true)(this._outputContext.internalValue),
isBlock: true,
type: "list",
storageClassType: "Lexv2ModelsIntentOutputContextList",
},
sample_utterance: {
value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentSampleUtteranceToHclTerraform, true)(this._sampleUtterance.internalValue),
isBlock: true,
type: "list",
storageClassType: "Lexv2ModelsIntentSampleUtteranceList",
},
slot_priority: {
value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentSlotPriorityToHclTerraform, true)(this._slotPriority.internalValue),
isBlock: true,
type: "list",
storageClassType: "Lexv2ModelsIntentSlotPriorityList",
},
timeouts: {
value: (0, index_structs_1.lexv2ModelsIntentTimeoutsToHclTerraform)(this._timeouts.internalValue),
isBlock: true,
type: "struct",
storageClassType: "Lexv2ModelsIntentTimeouts",
},
};
// remove undefined attributes
return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined));
}
}
exports.Lexv2ModelsIntent = Lexv2ModelsIntent;
_a = JSII_RTTI_SYMBOL_1;
Lexv2ModelsIntent[_a] = { fqn: "@cdktf/provider-aws.lexv2ModelsIntent.Lexv2ModelsIntent", version: "21.22.1" };
// =================
// STATIC PROPERTIES
// =================
Lexv2ModelsIntent.tfResourceType = "aws_lexv2models_intent";
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGV4djJtb2RlbHMtaW50ZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7O0dBR0c7QUFFSCwyQ0FBMkM7QUFFM0MsbURBMkNnRTtBQUNoRSxrREFBK0I7QUFFL0IsK0JBQStCO0FBb0cvQjs7RUFFRTtBQUNGLE1BQWEsaUJBQWtCLFNBQVEsS0FBSyxDQUFDLGlCQUFpQjtJQU81RCxpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQjs7Ozs7O01BTUU7SUFDSyxNQUFNLENBQUMsdUJBQXVCLENBQUMsS0FBZ0IsRUFBRSxVQUFrQixFQUFFLFlBQW9CLEVBQUUsUUFBa0M7UUFDOUgsT0FBTyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2hKLENBQUM7SUFFTCxjQUFjO0lBQ2QsY0FBYztJQUNkLGNBQWM7SUFFZDs7Ozs7O01BTUU7SUFDRixZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxNQUErQjtRQUM5RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLHFCQUFxQixFQUFFLHdCQUF3QjtZQUMvQywwQkFBMEIsRUFBRTtnQkFDMUIsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLGVBQWUsRUFBRSxRQUFRO2dCQUN6Qix5QkFBeUIsRUFBRSxRQUFRO2FBQ3BDO1lBQ0QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQzNCLFlBQVksRUFBRSxNQUFNLENBQUMs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Q0FBQztnQkFDNUUsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsZ0JBQWdCLEVBQUUsMkJBQTJCO2FBQzlDO1NBQ0YsQ0FBQztRQUVGLDhCQUE4QjtRQUM5QixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBRSxDQUFDLENBQUE7SUFDNUgsQ0FBQzs7QUE3ZkgsOENBOGZDOzs7QUE1ZkMsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDRyxnQ0FBYyxHQUFHLHdCQUF3QixBQUEzQixDQUE0QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuLy8gZ2VuZXJhdGVkIGZyb20gdGVycmFmb3JtIHJlc291cmNlIHNjaGVtYVxuXG5pbXBvcnQgeyBMZXh2Mk1vZGVsc0ludGVudENsb3NpbmdTZXR0aW5nLCBcbmxleHYyTW9kZWxzSW50ZW50Q2xvc2luZ1NldHRpbmdUb1RlcnJhZm9ybSwgXG5sZXh2Mk1vZGVsc0ludGVudENsb3NpbmdTZXR0aW5nVG9IY2xUZXJyYWZvcm0sIFxuTGV4djJNb2RlbHNJbnRlbnRDbG9zaW5nU2V0dGluZ0xpc3QsIFxuTGV4djJNb2RlbHNJbnRlbnRDb25maXJtYXRpb25TZXR0aW5nLCBcbmxleHYyTW9kZWxzSW50ZW50Q29uZmlybWF0aW9uU2V0dGluZ1RvVGVycmFmb3JtLCBcbmxleHYyTW9kZWxzSW50ZW50Q29uZmlybWF0aW9uU2V0dGluZ1RvSGNsVGVycmFmb3JtLCBcbkxleHYyTW9kZWxzSW50ZW50Q29uZmlybWF0aW9uU2V0dGluZ0xpc3QsIFxuTGV4djJNb2RlbHNJbnRlbnREaWFsb2dDb2RlSG9vaywgXG5sZXh2Mk1vZGVsc0ludGVudERpYWxvZ0NvZGVIb29rVG9UZXJyYWZvcm0sIFxubGV4djJNb2RlbHNJbnRlbnREaWFsb2dDb2RlSG9va1RvSGNsVGVycmFmb3JtLCBcbkxleHYyTW9kZWxzSW50ZW50RGlhbG9nQ29kZUhvb2tMaXN0LCBcbkxleHYyTW9kZWxzSW50ZW50RnVsZmlsbG1lbnRDb2RlSG9vaywgXG5sZXh2Mk1vZGVsc0ludGVudEZ1bGZpbGxtZW50Q29kZUhvb2tUb1RlcnJhZm9ybSwgXG5sZXh2Mk1vZGVsc0ludGVudEZ1bGZpbGxtZW50Q29kZUhvb2tUb0hjbFRlcnJhZm9ybSwgXG5MZXh2Mk1vZGVsc0ludGVudEZ1bGZpbGxtZW50Q29kZUhvb2tMaXN0LCBcbkxleHYyTW9kZWxzSW50ZW50SW5pdGlhbFJlc3BvbnNlU2V0dGluZywgXG5sZXh2Mk1vZGVsc0ludGVudEluaXRpYWxSZXNwb25zZVNldHRpbmdUb1RlcnJhZm9ybSwgXG5sZXh2Mk1vZGVsc0ludGVudEluaXRpYWxSZXNwb25zZVNldHRpbmdUb0hjbFRlcnJhZm9ybSwgXG5MZXh2Mk1vZGVsc0ludGVudEluaXRpYWxSZXNwb25zZVNldHRpbmdMaXN0LCBcbkxleHYyTW9kZWxzSW50ZW50SW5wdXRDb250ZXh0LCBcbmxleHYyTW9kZWxzSW50ZW50SW5wdXRDb250ZXh0VG9UZXJyYWZvcm0sIFxubGV4djJNb2RlbHNJbnRlbnRJbnB1dENvbnRleHRUb0hjbFRlcnJhZm9ybSwgXG5MZXh2Mk1vZGVsc0ludGVudElucHV0Q29udGV4dExpc3QsIFxuTGV4djJNb2RlbHNJbnRlbnRLZW5kcmFDb25maWd1cmF0aW9uLCBcbmxleHYyTW9kZWxzSW50ZW50S2VuZHJhQ29uZmlndXJhdGlvblRvVGVycmFmb3JtLCBcbmxleHYyTW9kZWxzSW50ZW50S2VuZHJhQ29uZmlndXJhdGlvblRvSGNsVGVycmFmb3JtLCBcbkxleHYyTW9kZWxzSW50ZW50S2VuZHJhQ29uZmlndXJhdGlvbkxpc3QsIFxuTGV4djJNb2RlbHNJbnRlbnRPdXRwdXRDb250ZXh0LCBcbmxleHYyTW9kZWxzSW50ZW50T3V0cHV0Q29udGV4dFRvVGVycmFmb3JtLCBcbmxleHYyTW9kZWxzSW50ZW50T3V0cHV0Q29udGV4dFRvSGNsVGVycmFmb3JtLCBcbkxleHYyTW9kZWxzSW50ZW50T3V0cHV0Q29udGV4dExpc3QsIFxuTGV4djJNb2RlbHNJbnRlbnRTYW1wbGVVdHRlcmFuY2UsIFxubGV4djJNb2RlbHNJbnRlbnRTYW1wbGVVdHRlcmFuY2VUb1RlcnJhZm9ybSwgXG5sZXh2Mk1vZGVsc0ludGVudFNhbXBsZVV0dGVyYW5jZVRvSGNsVGVycmFmb3JtLCBcbkxleHYyTW9kZWxzSW50ZW50U2FtcGxlVXR0ZXJhbmNlTGlzdCwgXG5MZXh2Mk1vZGVsc0ludGVudFNsb3RQcmlvcml0eSwgXG5sZXh2Mk1vZGVsc0ludGVudFNsb3RQcmlvcml0eVRvVGVycmFmb3JtLCBcbmxleHYyTW9kZWxzSW50ZW50U2xvdFByaW9yaXR5VG9IY2xUZXJyYWZvcm0sIFxuTGV4djJNb2RlbHNJbnRlbnRTbG90UHJpb3JpdHlMaXN0LCBcbkxleHYyTW9kZWxzSW50ZW50VGltZW91dHMsIFxubGV4djJNb2RlbHNJbnRlbnRUaW1lb3V0c1RvVGVycmFmb3JtLCBcbmxleHYyTW9kZWxzSW50ZW50VGltZW91dHNUb0hjbFRlcnJhZm9ybSwgXG5MZXh2Mk1vZGVsc0ludGVudFRpbWVvdXRzT3V0cHV0UmVmZXJlbmNlfSBmcm9tICcuL2luZGV4LXN0cnVjdHMnXG5leHBvcnQgKiBmcm9tICcuL2luZGV4LXN0cnVjdHMnXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIGNka3RmIGZyb20gJ2Nka3RmJztcbmV4cG9ydCBpbnRlcmZhY2UgTGV4djJNb2RlbHNJbnRlbnRDb25maWcgZXh0ZW5kcyBjZGt0Zi5UZXJyYWZvcm1NZXRhQXJndW1lbnRzIHtcbiAgLyoqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I2JvdF9pZCBMZXh2Mk1vZGVsc0ludGVudCNib3RfaWR9XG4gICovXG4gIHJlYWRvbmx5IGJvdElkOiBzdHJpbmc7XG4gIC8qKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNib3RfdmVyc2lvbiBMZXh2Mk1vZGVsc0ludGVudCNib3RfdmVyc2lvbn1cbiAgKi9cbiAgcmVhZG9ubHkgYm90VmVyc2lvbjogc3RyaW5nO1xuICAvKipcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjZGVzY3JpcHRpb24gTGV4djJNb2RlbHNJbnRlbnQjZGVzY3JpcHRpb259XG4gICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjbG9jYWxlX2lkIExleHYyTW9kZWxzSW50ZW50I2xvY2FsZV9pZH1cbiAgKi9cbiAgcmVhZG9ubHkgbG9jYWxlSWQ6IHN0cmluZztcbiAgLyoqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I25hbWUgTGV4djJNb2RlbHNJbnRlbnQjbmFtZX1cbiAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjcGFyZW50X2ludGVudF9zaWduYXR1cmUgTGV4djJNb2RlbHNJbnRlbnQjcGFyZW50X2ludGVudF9zaWduYXR1cmV9XG4gICovXG4gIHJlYWRvbmx5IHBhcmVudEludGVudFNpZ25hdHVyZT86IHN0cmluZztcbiAgLyoqXG4gICogUmVnaW9uIHdoZXJlIHRoaXMgcmVzb3VyY2Ugd2lsbCBiZSBbbWFuYWdlZF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2dlbmVyYWwvbGF0ZXN0L2dyL3JhbmRlLmh0bWwjcmVnaW9uYWwtZW5kcG9pbnRzKS4gRGVmYXVsdHMgdG8gdGhlIFJlZ2lvbiBzZXQgaW4gdGhlIFtwcm92aWRlciBjb25maWd1cmF0aW9uXShodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy9sYXRlc3QvZG9jcyNhd3MtY29uZmlndXJhdGlvbi1yZWZlcmVuY2UpLlxuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I3JlZ2lvbiBMZXh2Mk1vZGVsc0ludGVudCNyZWdpb259XG4gICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZztcbiAgLyoqXG4gICogY2xvc2luZ19zZXR0aW5nIGJsb2NrXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjY2xvc2luZ19zZXR0aW5nIExleHYyTW9kZWxzSW50ZW50I2Nsb3Npbmdfc2V0dGluZ31cbiAgKi9cbiAgcmVhZG9ubHkgY2xvc2luZ1NldHRpbmc/OiBMZXh2Mk1vZGVsc0ludGVudENsb3NpbmdTZXR0aW5nW10gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICogY29uZmlybWF0aW9uX3NldHRpbmcgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNjb25maXJtYXRpb25fc2V0dGluZyBMZXh2Mk1vZGVsc0ludGVudCNjb25maXJtYXRpb25fc2V0dGluZ31cbiAgKi9cbiAgcmVhZG9ubHkgY29uZmlybWF0aW9uU2V0dGluZz86IExleHYyTW9kZWxzSW50ZW50Q29uZmlybWF0aW9uU2V0dGluZ1tdIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIGRpYWxvZ19jb2RlX2hvb2sgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNkaWFsb2dfY29kZV9ob29rIExleHYyTW9kZWxzSW50ZW50I2RpYWxvZ19jb2RlX2hvb2t9XG4gICovXG4gIHJlYWRvbmx5IGRpYWxvZ0NvZGVIb29rPzogTGV4djJNb2RlbHNJbnRlbnREaWFsb2dDb2RlSG9va1tdIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIGZ1bGZpbGxtZW50X2NvZGVfaG9vayBibG9ja1xuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I2Z1bGZpbGxtZW50X2NvZGVfaG9vayBMZXh2Mk1vZGVsc0ludGVudCNmdWxmaWxsbWVudF9jb2RlX2hvb2t9XG4gICovXG4gIHJlYWRvbmx5IGZ1bGZpbGxtZW50Q29kZUhvb2s/OiBMZXh2Mk1vZGVsc0ludGVudEZ1bGZpbGxtZW50Q29kZUhvb2tbXSB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiBpbml0aWFsX3Jlc3BvbnNlX3NldHRpbmcgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNpbml0aWFsX3Jlc3BvbnNlX3NldHRpbmcgTGV4djJNb2RlbHNJbnRlbnQjaW5pdGlhbF9yZXNwb25zZV9zZXR0aW5nfVxuICAqL1xuICByZWFkb25seSBpbml0aWFsUmVzcG9uc2VTZXR0aW5nPzogTGV4djJNb2RlbHNJbnRlbnRJbml0aWFsUmVzcG9uc2VTZXR0aW5nW10gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICogaW5wdXRfY29udGV4dCBibG9ja1xuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I2lucHV0X2NvbnRleHQgTGV4djJNb2RlbHNJbnRlbnQjaW5wdXRfY29udGV4dH1cbiAgKi9cbiAgcmVhZG9ubHkgaW5wdXRDb250ZXh0PzogTGV4djJNb2RlbHNJbnRlbnRJbnB1dENvbnRleHRbXSB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiBrZW5kcmFfY29uZmlndXJhdGlvbiBibG9ja1xuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I2tlbmRyYV9jb25maWd1cmF0aW9uIExleHYyTW9kZWxzSW50ZW50I2tlbmRyYV9jb25maWd1cmF0aW9ufVxuICAqL1xuICByZWFkb25seSBrZW5kcmFDb25maWd1cmF0aW9uPzogTGV4djJNb2RlbHNJbnRlbnRLZW5kcmFDb25maWd1cmF0aW9uW10gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICogb3V0cHV0X2NvbnRleHQgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNvdXRwdXRfY29udGV4dCBMZXh2Mk1vZGVsc0ludGVudCNvdXRwdXRfY29udGV4dH1cbiAgKi9cbiAgcmVhZG9ubHkgb3V0cHV0Q29udGV4dD86IExleHYyTW9kZWxzSW50ZW50T3V0cHV0Q29udGV4dFtdIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIHNhbXBsZV91dHRlcmFuY2UgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNi4yNS4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNzYW1wbGVfdXR0ZXJhbmNlIExleHYyTW9kZWxzSW50ZW50I3NhbXBsZV91dHRlcmFuY2V9XG4gICovXG4gIHJlYWRvbmx5IHNhbXBsZVV0dGVyYW5jZT86IExleHYyTW9kZWxzSW50ZW50U2FtcGxlVXR0ZXJhbmNlW10gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICogc2xvdF9wcmlvcml0eSBibG9ja1xuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I3Nsb3RfcHJpb3JpdHkgTGV4djJNb2RlbHNJbnRlbnQjc2xvdF9wcmlvcml0eX1cbiAgKi9cbiAgcmVhZG9ubHkgc2xvdFByaW9yaXR5PzogTGV4djJNb2RlbHNJbnRlbnRTbG90UHJpb3JpdHlbXSB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiB0aW1lb3V0cyBibG9ja1xuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy82LjI1LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I3RpbWVvdXRzIExleHYyTW9kZWxzSW50ZW50I3RpbWVvdXRzfVxuICAqL1xuICByZWFkb25seSB0aW1lb3V0cz86IExleHYyTW9kZWxzSW50ZW50VGltZW91dHM7XG59XG5cbi8qKlxuKiBSZXByZXNlbnRzIGEge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzYuMjUuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQgYXdzX2xleHYybW9kZWxzX2ludGVudH1cbiovXG5leHBvcnQgY2xhc3MgTGV4djJNb2RlbHNJbnRlbnQgZXh0ZW5kcyBjZGt0Zi5UZXJyYWZvcm1SZXNvdXJjZSB7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT1cbiAgLy8gU1RBVElDIFBST1BFUlRJRVNcbiAgLy8gPT09PT09PT09PT09PT09PT1cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSB0ZlJlc291cmNlVHlwZSA9IFwiYXdzX2xleHYybW9kZWxzX2ludGVudFwiO1xuXG4gIC8vID09PT09PT09PT09PT09XG4gIC8vIFNUQVRJQyBNZXRob2RzXG4gIC8vID09PT09PT09PT09PT09XG4gIC8qKlxuICAqIEdlbmVyYXRlcyBDREtURiBjb2RlIGZv